@mindstudio-ai/browser-agent 0.1.23 → 0.1.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +40 -40
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
- "use strict";var __MindStudioBrowserAgent=(()=>{var Gt=Object.defineProperty;var Si=Object.getOwnPropertyDescriptor;var Ei=Object.getOwnPropertyNames;var Ci=Object.prototype.hasOwnProperty;var ki=(e,t)=>{for(var n in t)Gt(e,n,{get:t[n],enumerable:!0})},Mi=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ei(t))!Ci.call(e,i)&&i!==n&&Gt(e,i,{get:()=>t[i],enumerable:!(r=Si(t,i))||r.enumerable});return e};var Ai=e=>Mi(Gt({},"__esModule",{value:!0}),e);var fc={};ki(fc,{executeSteps:()=>Ht,getRefMap:()=>Fe,resolveElement:()=>fe,takeSnapshot:()=>Ie,takeSnapshotSync:()=>nn});var Bn="/__mindstudio_dev__/logs";var Ee=[],_e=null,ht=!1,Xe=[],Un=null;function qn(e){Un=e}function jn(){if(Ee.length===0)return;let e=Ee;Ee=[];let t=Un?.();if(t&&t.readyState===WebSocket.OPEN)try{t.send(JSON.stringify({type:"log",entries:e}));return}catch{}try{let n=new XMLHttpRequest;n.open("POST",Bn,!0),n.setRequestHeader("Content-Type","application/json"),n.send(JSON.stringify(e))}catch{}}function $i(){_e||(_e=setTimeout(()=>{_e=null,jn()},2e3))}function Li(){_e&&(clearTimeout(_e),_e=null),jn()}function Q(e){Ee.push(e),ht&&Xe.push(e),$i()}function Jt(e){Ee.push(e),ht&&Xe.push(e),Li()}function Kt(){ht=!0,Xe=[]}function Zt(){ht=!1;let e=Xe;return Xe=[],e}function zn(){window.addEventListener("beforeunload",()=>{Ee.length>0&&navigator.sendBeacon&&navigator.sendBeacon(Bn,JSON.stringify(Ee))})}var Ti={a:"link",button:"button",input:"textbox",textarea:"textbox",select:"combobox",option:"option",h1:"heading",h2:"heading",h3:"heading",h4:"heading",h5:"heading",h6:"heading",nav:"navigation",main:"main",header:"banner",footer:"contentinfo",aside:"complementary",dialog:"dialog",details:"group",summary:"button",img:"img",ul:"list",ol:"list",li:"listitem",table:"table",tr:"row",th:"columnheader",td:"cell",form:"form",article:"article",section:"region",label:"label",fieldset:"group",legend:"legend",p:"paragraph",blockquote:"blockquote",pre:"code",code:"code",hr:"separator",progress:"progressbar"};function Ce(e){let t=e.getAttribute("role");if(t)return t==="presentation"||t==="none"?null:t;let n=e.tagName.toLowerCase();if(n==="a")return e.hasAttribute("href")?"link":null;if(n==="section")return e.hasAttribute("aria-label")||e.hasAttribute("aria-labelledby")?"region":null;if(n==="form")return e.hasAttribute("aria-label")||e.hasAttribute("aria-labelledby")?"form":null;if(n==="img")return e.alt===""?null:"img";if(n==="input")switch(e.type){case"checkbox":return"checkbox";case"radio":return"radio";case"range":return"slider";case"submit":case"button":case"reset":return"button";case"hidden":return null;default:return"textbox"}return Ti[n]??null}function Vn(e){if(e.hasAttribute("onclick")||e.hasAttribute("tabindex")&&e.getAttribute("tabindex")!=="-1")return!0;try{if(getComputedStyle(e).cursor==="pointer")return!0}catch{}return!1}function Pe(e){let t=e.getAttribute("aria-label");if(t)return t.trim();let n=e.getAttribute("aria-labelledby");if(n){let a=n.split(/\s+/).map(s=>{let l=document.getElementById(s);return l?ke(l):""}).filter(Boolean).join(" ");if(a)return a}let r=e.tagName.toLowerCase();if(r==="input"||r==="textarea"||r==="select"){let a=Ni(e);if(a)return a}if(r==="img"){let a=e.alt;if(a)return a.trim()}if(r==="fieldset"){let a=e.querySelector("legend");if(a)return ke(a)}let i=ke(e);if(i)return i;let o=e.getAttribute("title");return o?o.trim():""}function ke(e){if(!e.children.length)return(e.textContent||"").trim();let t=[];for(let n of Array.from(e.childNodes))if(n.nodeType===Node.TEXT_NODE){let r=(n.textContent||"").trim();r&&t.push(r)}else if(n.nodeType===Node.ELEMENT_NODE){let r=n;if(_i(r))continue;let i=Ri(r),o=ke(r);o&&(i&&t.length>0&&t.push(" "),t.push(o),i&&t.push(" "))}return t.join("").replace(/\s+/g," ").trim()}function Ni(e){if(e.id){let n=document.querySelector(`label[for="${CSS.escape(e.id)}"]`);if(n)return ke(n)}let t=e.closest("label");if(t){let n=t.cloneNode(!0),r=n.querySelector("input, textarea, select");r&&r.remove();let i=n.textContent?.trim();if(i)return i}return null}function Ri(e){try{return!getComputedStyle(e).display.includes("inline")}catch{let t=e.tagName.toLowerCase();return["div","p","h1","h2","h3","h4","h5","h6","li","section","article","header","footer","nav","main","aside","blockquote","pre","form","fieldset","table","tr","br"].includes(t)}}function _i(e){let t=e.tagName.toLowerCase();if(t==="script"||t==="style"||t==="noscript"||t==="template"||e.getAttribute("aria-hidden")==="true")return!0;try{let n=getComputedStyle(e);if(n.display==="none"||n.visibility==="hidden")return!0}catch{}return!1}function Qt(e,t){try{let n=getComputedStyle(e,t).content;if(!n||n==="none"||n==="normal")return"";let r=n.match(/^["'](.*)["']$/);return r?r[1]:""}catch{return""}}var Ge=0;function gt(){Ge++}function Je(){Ge=Math.max(0,Ge-1)}function Yn(e=5e3,t=200){return new Promise((n,r)=>{let i=Date.now()+e,o=null;function a(){if(Date.now()>i){o&&clearTimeout(o),n();return}Ge===0?o||(o=setTimeout(()=>{Ge===0?n():(o=null,a())},t)):(o&&(clearTimeout(o),o=null),setTimeout(a,50))}a()})}var en=0,tn=new Map;function Fe(){return tn}async function Ie(){return await Yn(),nn()}function nn(){en=0,tn=new Map;let e=document.body;if(!e)return"(empty page)";let t=Xn(e);return rn(t,0).trimEnd()}function ee(e){let t=Ce(e),n=Pe(e),r=n.length>60?n.slice(0,57)+"...":n;if(t&&r)return`${t} "${r}"`;if(t)return t;if(r)return`"${r}"`;let i=e.tagName.toLowerCase();return e.id?`${i}#${e.id}`:i}function Xn(e){if(Fi(e))return[];let t=Ce(e),n=!t&&Vn(e),r=t||(n?"clickable":null),i="";if(r){i=Pe(e);let u=Qt(e,"::before"),d=Qt(e,"::after");(u||d)&&(i=[u,i,d].filter(Boolean).join(" ")),i.length>80&&(i=i.slice(0,77)+"...")}let o=Ii(e),a=t==="button"||t==="link"||t==="textbox"||t==="combobox"||t==="checkbox"||t==="radio"||t==="slider"||t==="tab"||t==="menuitem"||n,s=r&&i&&!a,l=null;(a||s)&&(en++,l=`e${en}`,tn.set(l,e));let c=Pi(e);if(r){let u=c.length===0?"":rn(c,0).trim();return[{tag:r,name:i,attrs:o,ref:l,children:u&&u===i?[]:c,element:e}]}if(c.length===0){let u=ke(e);if(u)return[{tag:null,name:u.length>80?u.slice(0,77)+"...":u,attrs:[],ref:null,children:[],element:e}]}return c}function Pi(e){let t=[];for(let n of Array.from(e.childNodes))n.nodeType===Node.ELEMENT_NODE&&t.push(...Xn(n));return t}function Fi(e){let t=e.tagName.toLowerCase();if(t==="script"||t==="style"||t==="noscript"||t==="template"||t==="head"||e.getAttribute("aria-hidden")==="true"||e.id==="__mindstudio-browser-agent"||e.id==="__mindstudio-cursor"||e.id==="__mindstudio-cursor-ripple"||e.id==="__mindstudio-notes-overlay"||e.id==="__mindstudio-notes-cursor")return!0;try{let n=getComputedStyle(e);if(n.display==="none"||n.visibility==="hidden"&&n.position!=="static")return!0}catch{}return!1}function Ii(e){let t=[],n=e.tagName.toLowerCase();if((n==="dialog"&&e.open||n==="details"&&e.open)&&t.push("open"),e.disabled&&t.push("disabled"),n==="input"){let o=e;(o.type==="checkbox"||o.type==="radio")&&o.checked&&t.push("checked")}if(n==="input"){let o=e;o.type!=="checkbox"&&o.type!=="radio"&&o.type!=="hidden"&&o.type!=="submit"&&o.type!=="button"&&o.type!=="reset"&&(t.push(`value="${o.value}"`),o.placeholder&&t.push(`placeholder="${o.placeholder}"`))}if(n==="textarea"){let o=e;t.push(`value="${o.value}"`),o.placeholder&&t.push(`placeholder="${o.placeholder}"`)}if(n==="select"){let o=e,a=o.options[o.selectedIndex];a&&t.push(`value="${a.text}"`)}let r=n.match(/^h([1-6])$/);r&&t.push(`level=${r[1]}`);let i=e.getAttribute("aria-expanded");return i==="true"&&t.push("expanded"),i==="false"&&t.push("collapsed"),e.getAttribute("aria-selected")==="true"&&t.push("selected"),e.getAttribute("aria-pressed")==="true"&&t.push("pressed"),t}function rn(e,t){let n="";for(let r of e)n+=Di(r,t);return n}function Di(e,t){let n=" ".repeat(t),r=[];e.tag&&r.push(e.tag),e.name&&r.push(`"${e.name}"`);for(let a of e.attrs)r.push(`[${a}]`);e.ref&&r.push(`[ref=${e.ref}]`);let i="";r.length>0&&(i+=`${n}${r.join(" ")}
2
- `);let o=r.length>0?t+1:t;return i+=rn(e.children,o),i}function Gn(e){if(e===null)return"null";if(e===void 0)return"undefined";if(e instanceof Error)return e.stack||e.message||String(e);if(typeof e=="object")try{return JSON.stringify(e)}catch{return String(e)}return String(e)}function U(e){return new Promise(t=>setTimeout(t,e))}var Oi=["log","info","warn","error","debug"];function Jn(){if(!console.__ms_patched){console.__ms_patched=!0;for(let e of Oi){let t=console[e];console[e]=(...n)=>{t&&t.apply(console,n),Q({type:"console",level:e,args:n.map(Gn),url:location.href})}}}}function Kn(){window.addEventListener("error",e=>{Jt({type:"error",message:e.message,stack:e.error&&e.error.stack||"",source:e.filename,line:e.lineno,column:e.colno,url:location.href})}),window.addEventListener("unhandledrejection",e=>{let t=e.reason||{};Jt({type:"error",message:t.message||String(t),stack:t.stack||"",url:location.href})})}function Zn(){if(!window.fetch||window.fetch.__ms_patched)return;let e=window.fetch;window.fetch=function(t,n){let r=(n?.method||"GET").toUpperCase(),i=typeof t=="string"?t:t instanceof URL?t.href:t.url||String(t);if(i.includes("/__mindstudio_dev__/"))return e.apply(this,[t,n]);let o=Date.now();return gt(),e.apply(this,[t,n]).then(a=>{Je();let s={type:"network",method:r,url:i,status:a.status,statusText:a.statusText,duration:Date.now()-o,ok:a.ok};if(a.ok)Q(s);else try{a.clone().text().then(l=>{s.body=l.slice(0,1e3),Q(s)}).catch(()=>Q(s))}catch{Q(s)}return a},a=>{throw Je(),Q({type:"network",method:r,url:i,error:a.message||String(a),duration:Date.now()-o,ok:!1}),a})},window.fetch.__ms_patched=!0}function Qn(){document.__ms_click_patched||(document.__ms_click_patched=!0,document.addEventListener("click",e=>{let t=e.target,n=(t?.textContent||"").trim().slice(0,100);Q({type:"interaction",event:"click",target:ee(t),text:n,url:location.href})},!0))}function er(){if(XMLHttpRequest.prototype.open.__ms_patched)return;let e=window.XMLHttpRequest,t=e.prototype.open,n=e.prototype.send;e.prototype.open=function(r,i,...o){return this.__ms_method=r.toUpperCase(),this.__ms_url=String(i),t.apply(this,[r,i,...o])},e.prototype.send=function(r){let i=this.__ms_method||"GET",o=this.__ms_url||"";if(o.includes("/__mindstudio_dev__/"))return n.apply(this,[r]);let a=Date.now();return gt(),this.addEventListener("loadend",function(){Je(),Q({type:"network",method:i,url:o,status:this.status,statusText:this.statusText,duration:Date.now()-a,ok:this.status>=200&&this.status<300,...this.status>=400?{body:(this.responseText||"").slice(0,1e3)}:{},via:"xhr"})}),n.apply(this,[r])},XMLHttpRequest.prototype.open.__ms_patched=!0}function fe(e){let t=null;if(e.ref){let n=Fe(),r=n.get(e.ref);if(r&&r.isConnected)if(de(r))t={element:r,matched:`${ee(r)} [ref=${e.ref}]`};else throw new Error(`Element [ref=${e.ref}] exists but is hidden (${on(r)}). It may be inside a closed dialog or collapsed section.`);else{let i=[...n.entries()].filter(([,o])=>o.isConnected&&de(o)).slice(0,10).map(([o,a])=>`${ee(a)} [ref=${o}]`).join(", ");throw new Error(`Element [ref=${e.ref}] not found. `+(i?`Available refs: ${i}`:"No refs available \u2014 take a snapshot first."))}}if(!t&&(e.text||e.role&&e.text)){let n=e.text,r=e.role,i=tr(n,r);if(i.length===0){let o=tr(n,r,!0);if(o.length>0)throw new Error(`Found ${r?r+" ":""}"${n}" but it is hidden (${on(o[0])}). Wait for it to become visible or check if a dialog/modal needs to be opened first.`);let a=r?`${r} "${n}"`:`"${n}"`,s=nr(r);throw new Error(`No element found matching ${a}. `+(s?`Visible ${r||"element"}s: ${s}`:"The page may still be loading \u2014 try a wait command first."))}if(i.length>1){let o=i.filter(rr),a=o.length===1?o[0]:i[0];t={element:a,matched:ee(a)}}else t={element:i[0],matched:ee(i[0])}}if(!t&&e.role&&!e.text){let n=e.role,r=Hi(n);if(r.length===0){let i=nr(n);throw new Error(`No visible element with role "${n}" found. `+(i?`Visible ${n}s: ${i}`:"The page may still be loading \u2014 try a wait command first."))}t={element:r[0],matched:ee(r[0])}}if(!t&&e.label){let n=e.label,r=Wi(n);if(!r){let i=[...document.querySelectorAll("label")].filter(de).map(o=>`"${(o.textContent||"").trim().slice(0,40)}"`).slice(0,8).join(", ");throw new Error(`No input found with label "${n}". `+(i?`Visible labels: ${i}`:"No labels found on the page."))}t={element:r,matched:`${ee(r)} via label "${n}"`}}if(!t&&e.selector){let n=e.selector,r=document.querySelector(n);if(!r)throw new Error(`No element found for selector "${n}".`);if(!de(r))throw new Error(`Found element for selector "${n}" but it is hidden (${on(r)}).`);t={element:r,matched:`${ee(r)} via selector "${n}"`}}if(!t)throw new Error("No targeting field provided (need ref, text, role, label, or selector)");return t}function tr(e,t,n=!1){let r=[],i=e.toLowerCase();for(let o of document.querySelectorAll("*")){if(!n&&!de(o)||n&&!o.isConnected||t&&Ce(o)!==t)continue;if(Pe(o).toLowerCase().includes(i)){r.push(o);continue}o.children.length||(o.textContent||"").trim().toLowerCase().includes(i)&&r.push(o)}return r}function Hi(e){let t=[];for(let n of document.querySelectorAll("*"))de(n)&&Ce(n)===e&&t.push(n);return t}function Wi(e){let t=e.toLowerCase();for(let n of document.querySelectorAll("label")){if(!(n.textContent||"").trim().toLowerCase().includes(t))continue;let i=n.getAttribute("for");if(i){let a=document.getElementById(i);if(a&&de(a))return a}let o=n.querySelector("input, textarea, select");if(o&&de(o))return o}return null}function de(e){if(!e.isConnected)return!1;try{let t=getComputedStyle(e);if(t.display==="none"||t.visibility==="hidden")return!1}catch{return!1}return!0}function rr(e){if(e.matches('a, button, input, textarea, select, [role="button"], [role="link"], [tabindex]'))return!0;try{return getComputedStyle(e).cursor==="pointer"}catch{return!1}}function on(e){try{let t=getComputedStyle(e);if(t.display==="none")return"display: none";if(t.visibility==="hidden")return"visibility: hidden"}catch{}return e.getAttribute("aria-hidden")==="true"?'aria-hidden="true"':"hidden"}function nr(e){let t=[];for(let n of document.querySelectorAll("*"))if(de(n)&&(e?Ce(n)===e&&t.push(n):rr(n)&&t.push(n),t.length>=10))break;return t.length===0?"":t.map(n=>`"${Pe(n).slice(0,40)||ee(n)}"`).join(", ")}function an(e){let t=e.getBoundingClientRect(),n=t.left+t.width/2,r=t.top+t.height/2,i={bubbles:!0,cancelable:!0,clientX:n,clientY:r,button:0};e.dispatchEvent(new PointerEvent("pointerdown",{...i,pointerId:1})),e.dispatchEvent(new MouseEvent("mousedown",i)),e instanceof HTMLElement&&e.focus(),e.dispatchEvent(new PointerEvent("pointerup",{...i,pointerId:1})),e.dispatchEvent(new MouseEvent("mouseup",i)),e.dispatchEvent(new MouseEvent("click",i))}var Bi=Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value")?.set,Ui=Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype,"value")?.set;async function ar(e,t,n={}){if(!(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement))throw new Error("type command requires an input or textarea element");e.focus(),an(e),n.clear&&(or(e,""),e.dispatchEvent(new Event("input",{bubbles:!0})));for(let r=0;r<t.length;r++){let i=t[r];e.dispatchEvent(new KeyboardEvent("keydown",{key:i,code:`Key${i.toUpperCase()}`,bubbles:!0})),e.dispatchEvent(new KeyboardEvent("keypress",{key:i,code:`Key${i.toUpperCase()}`,bubbles:!0})),or(e,e.value+i),e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new KeyboardEvent("keyup",{key:i,code:`Key${i.toUpperCase()}`,bubbles:!0})),await U(qi(i))}e.dispatchEvent(new Event("change",{bubbles:!0}))}function qi(e){let t=Math.random()*50-25;return e===" "?120+t:/[.,!?;:\-]/.test(e)?140+t:/[A-Z]/.test(e)?115+t:85+t}function or(e,t){let n=e instanceof HTMLTextAreaElement?Ui:Bi;n?n.call(e,t):e.value=t}async function lr(e){let t=e.timeout||5e3,n=Date.now(),r=n+t;for(;Date.now()<r;)try{return{...fe(e),elapsed:Date.now()-n}}catch{await U(100)}let i=e.text?`"${e.text}"`:e.role?`role "${e.role}"`:e.selector?`selector "${e.selector}"`:"element";throw new Error(`Timed out waiting for ${i} after ${t}ms`)}var ir=Object.getOwnPropertyDescriptor(HTMLSelectElement.prototype,"value")?.set;function sr(e,t){if(!(e instanceof HTMLSelectElement))throw new Error("select command requires a <select> element");let n=t.toLowerCase(),r=null;for(let i of e.options)if(i.text.toLowerCase().includes(n)||i.value.toLowerCase()===n||i.label.toLowerCase().includes(n)){r=i;break}if(!r){let i=[...e.options].map(o=>`"${o.text}"`).join(", ");throw new Error(`No option matching "${t}" in select. Available options: ${i}`)}return ir?ir.call(e,r.value):e.value=r.value,e.dispatchEvent(new Event("change",{bubbles:!0})),e.dispatchEvent(new Event("input",{bubbles:!0})),r.text}async function cr(e){try{let n=!/\b(return|;|\{)\b/.test(e.trim())?`return (${e})`:e,i=new Function(n)();return i instanceof Promise?await i:i}catch(t){throw new Error(`evaluate failed: ${t instanceof Error?t.message:String(t)}`)}}var zi=Object.defineProperty,K=(e,t)=>()=>(e&&(t=e(e=0)),t),nt=(e,t)=>{for(var n in t)zi(e,n,{get:t[n],enumerable:!0})};function Vi(e){if(e===!0)return"soft";if(e===!1)return"disabled";if(typeof e=="string"){let t=e.toLowerCase().trim();if(t==="auto")return"auto";if(t==="full")return"full";if(t==="soft"||t==="disabled")return t}return"soft"}function Yi(e="soft"){switch(C.session.__counterEpoch=(C.session.__counterEpoch||0)+1,e){case"auto":{C.session.styleMap=new Map,C.session.nodeMap=new Map;return}case"soft":{C.session.styleMap=new Map,C.session.nodeMap=new Map,C.session.styleCache=new WeakMap;return}case"full":return;case"disabled":{C.session.styleMap=new Map,C.session.nodeMap=new Map,C.session.styleCache=new WeakMap,C.computedStyle=new WeakMap,C.baseStyle=new te(50),C.defaultStyle=new te(30),C.image=new te(100),C.background=new te(100),C.resource=new te(150),C.font=new Set;return}default:{C.session.styleMap=new Map,C.session.nodeMap=new Map,C.session.styleCache=new WeakMap;return}}}var te,C,re=K(()=>{te=class extends Map{constructor(e=100,...t){super(...t),this._maxSize=e}set(e,t){if(this.size>=this._maxSize&&!this.has(e)){let n=this.keys().next().value;n!==void 0&&this.delete(n)}return super.set(e,t)}},C={image:new te(100),background:new te(100),resource:new te(150),defaultStyle:new te(30),baseStyle:new te(50),computedStyle:new WeakMap,font:new Set,session:{styleMap:new Map,styleCache:new WeakMap,nodeMap:new Map}}});function Sn(e){let t=e.match(/url\((['"]?)(.*?)(\1)\)/);if(!t)return null;let n=t[2].trim();return n.startsWith("#")?null:n}function Xi(e){if(!e||e==="none")return"";let t=e.replace(/translate[XY]?\([^)]*\)/g,"");return t=t.replace(/matrix\(([^)]+)\)/g,(n,r)=>{let i=r.split(",").map(o=>o.trim());return i.length!==6?`matrix(${r})`:(i[4]="0",i[5]="0",`matrix(${i.join(", ")})`)}),t=t.replace(/matrix3d\(([^)]+)\)/g,(n,r)=>{let i=r.split(",").map(o=>o.trim());return i.length!==16?`matrix3d(${r})`:(i[12]="0",i[13]="0",`matrix3d(${i.join(", ")})`)}),t.trim().replace(/\s{2,}/g," ")}function Ct(e){if(/%[0-9A-Fa-f]{2}/.test(e))return e;try{return encodeURI(e)}catch{return e}}function Gi(e,t){if(!e||/^(data|blob|about|#)/i.test(e.trim()))return e;try{let n=t||typeof document<"u"&&(document.baseURI||document.location?.href)||"http://localhost/";return new URL(e,n).href}catch{return e}}var Mt=K(()=>{});function Ji(e="[snapDOM]",{ttlMs:t=5*6e4,maxEntries:n=12}={}){let r=new Map,i=0;function o(a,s,l){if(i>=n)return;let c=Date.now();(r.get(s)||0)>c||(r.set(s,c+t),i++,a==="warn"&&console&&console.warn?console.warn(`${e} ${l}`):console&&console.error&&console.error(`${e} ${l}`))}return{warnOnce(a,s){o("warn",a,s)},errorOnce(a,s){o("error",a,s)},reset(){r.clear(),i=0}}}function Ki(e){return/^data:|^blob:|^about:blank$/i.test(e)}function Zi(e,t){try{let n=typeof location<"u"&&location.href?location.href:"http://localhost/",r=t.includes("{url}")?t.split("{url}")[0]:t,i=new URL(r||".",n),o=new URL(e,n);if(o.origin===i.origin)return!0;let a=o.searchParams;if(a&&(a.has("url")||a.has("target")))return!0}catch{}return!1}function Qi(e,t){if(!t||Ki(e)||Zi(e,t))return!1;try{let n=typeof location<"u"&&location.href?location.href:"http://localhost/",r=new URL(e,n);return typeof location<"u"?r.origin!==location.origin:!0}catch{return!!t}}function ea(e,t){if(!t)return e;if(t.includes("{url}"))return t.replace("{urlRaw}",Ct(e)).replace("{url}",encodeURIComponent(e));if(/[?&]url=?$/.test(t))return`${t}${encodeURIComponent(e)}`;if(t.endsWith("?"))return`${t}url=${encodeURIComponent(e)}`;if(t.endsWith("/"))return`${t}${Ct(e)}`;let n=t.includes("?")?"&":"?";return`${t}${n}url=${encodeURIComponent(e)}`}function ur(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result||"")),r.onerror=()=>n(new Error("read_failed")),r.readAsDataURL(e)})}function ta(e,t){return[t.as||"blob",t.timeout??3e3,t.useProxy||"",t.errorTTL??8e3,e].join("|")}async function ne(e,t={}){let n=t.as??"blob",r=t.timeout??3e3,i=t.useProxy||"",o=t.errorTTL??8e3,a=t.headers||{},s=!!t.silent;if(/^data:/i.test(e))try{if(n==="text")return{ok:!0,data:String(e),status:200,url:e,fromCache:!1};if(n==="dataURL")return{ok:!0,data:String(e),status:200,url:e,fromCache:!1,mime:String(e).slice(5).split(";")[0]||""};let[,m="",y=""]=String(e).match(/^data:([^,]*),(.*)$/)||[],x=/;base64/i.test(m)?atob(y):decodeURIComponent(y),b=new Uint8Array([...x].map(E=>E.charCodeAt(0))),w=new Blob([b],{type:(m||"").split(";")[0]||""});return{ok:!0,data:w,status:200,url:e,fromCache:!1,mime:w.type||""}}catch{return{ok:!1,data:null,status:0,url:e,fromCache:!1,reason:"special_url_error"}}if(/^blob:/i.test(e))try{let m=await fetch(e);if(!m.ok)return{ok:!1,data:null,status:m.status,url:e,fromCache:!1,reason:"http_error"};let y=await m.blob(),x=y.type||m.headers.get("content-type")||"";return n==="dataURL"?{ok:!0,data:await ur(y),status:m.status,url:e,fromCache:!1,mime:x}:n==="text"?{ok:!0,data:await y.text(),status:m.status,url:e,fromCache:!1,mime:x}:{ok:!0,data:y,status:m.status,url:e,fromCache:!1,mime:x}}catch{return{ok:!1,data:null,status:0,url:e,fromCache:!1,reason:"network"}}if(/^about:blank$/i.test(e))return n==="dataURL"?{ok:!0,data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==",status:200,url:e,fromCache:!1,mime:"image/png"}:{ok:!0,data:n==="text"?"":new Blob([]),status:200,url:e,fromCache:!1};let l=ta(e,{as:n,timeout:r,useProxy:i,errorTTL:o}),c=Ze.get(l);if(c&&c.until>Date.now())return{...c.result,fromCache:!0};c&&Ze.delete(l);let u=wt.get(l);if(u)return u;let d=Qi(e,i)?ea(e,i):e,f=t.credentials;if(!f)try{let m=typeof location<"u"&&location.href?location.href:"http://localhost/",y=new URL(e,m);f=typeof location<"u"&&y.origin===location.origin?"include":"omit"}catch{f="omit"}let p=new AbortController,g=setTimeout(()=>p.abort("timeout"),r),h=(async()=>{try{let m=await fetch(d,{signal:p.signal,credentials:f,headers:a});if(!m.ok){let b={ok:!1,data:null,status:m.status,url:d,fromCache:!1,reason:"http_error"};if(o>0&&Ze.set(l,{until:Date.now()+o,result:b}),!s){let w=`${m.status} ${m.statusText||""}`.trim();cn.warnOnce(`http:${m.status}:${n}:${new URL(e,location?.href??"http://localhost/").origin}`,`HTTP error ${w} while fetching ${n} ${e}`)}return t.onError&&t.onError(b),b}if(n==="text")return{ok:!0,data:await m.text(),status:m.status,url:d,fromCache:!1};let y=await m.blob(),x=y.type||m.headers.get("content-type")||"";return n==="dataURL"?{ok:!0,data:await ur(y),status:m.status,url:d,fromCache:!1,mime:x}:{ok:!0,data:y,status:m.status,url:d,fromCache:!1,mime:x}}catch(m){let y=m&&typeof m=="object"&&"name"in m&&m.name==="AbortError"?String(m.message||"").includes("timeout")?"timeout":"abort":"network",x={ok:!1,data:null,status:0,url:d,fromCache:!1,reason:y};if(!/^blob:/i.test(e)&&o>0&&Ze.set(l,{until:Date.now()+o,result:x}),!s){let b=`${y}:${n}:${new URL(e,location?.href??"http://localhost/").origin}`,w=y==="timeout"?`Timeout after ${r}ms. Consider increasing timeout or using a proxy for ${e}`:y==="abort"?`Request aborted while fetching ${n} ${e}`:`Network/CORS issue while fetching ${n} ${e}. A proxy may be required`;cn.errorOnce(b,w)}return t.onError&&t.onError(x),x}finally{clearTimeout(g),wt.delete(l)}})();return wt.set(l,h),h}var cn,wt,Ze,Ue=K(()=>{Mt(),cn=Ji("[snapDOM]",{ttlMs:3*6e4,maxEntries:10}),wt=new Map,Ze=new Map});async function Pr(e,t={}){if(/^((repeating-)?(linear|radial|conic)-gradient)\(/i.test(e)||e.trim()==="none")return e;let n=Sn(e);if(!n)return e;let r=Gi(n),i=Ct(r);if(C.background.has(i)){let o=C.background.get(i);return o?`url("${o}")`:"none"}try{let o=await ne(i,{as:"dataURL",useProxy:t.useProxy});return o.ok?(C.background.set(i,o.data),`url("${o.data}")`):(C.background.set(i,null),"none")}catch{return C.background.set(i,null),"none"}}var na=K(()=>{re(),Mt(),Ue()});function ra(e){if(e=String(e).toLowerCase(),Cn.has(e)){let o={};return C.defaultStyle.set(e,o),o}if(C.defaultStyle.has(e))return C.defaultStyle.get(e);let t=document.getElementById("snapdom-sandbox");t||(t=document.createElement("div"),t.id="snapdom-sandbox",t.setAttribute("data-snapdom-sandbox","true"),t.setAttribute("aria-hidden","true"),t.style.position="absolute",t.style.left="-9999px",t.style.top="-9999px",t.style.width="0px",t.style.height="0px",t.style.overflow="hidden",document.body.appendChild(t));let n=document.createElement(e);n.style.all="initial",t.appendChild(n);let r=getComputedStyle(n),i={};for(let o of r){if(En(o))continue;let a=r.getPropertyValue(o);i[o]=a}return t.removeChild(n),C.defaultStyle.set(e,i),i}function En(e){let t=String(e).toLowerCase();return!!(Or.has(t)||Dr.test(t)||Ir.test(t))}function un(e,t){if(t=String(t||"").toLowerCase(),Cn.has(t))return"";let n=[],r=ra(t),i=(e.display||"").toLowerCase()==="inline"||new Set(["span","small","em","strong","b","i","u","s","code","cite","mark","sub","sup"]).has(t);for(let[o,a]of Object.entries(e)){if(En(o)||i&&(o==="width"||o==="min-width"||o==="max-width"))continue;let s=r[o];a&&a!==s&&n.push(`${o}:${a}`)}return n.sort(),n.join(";")}function oa(e){let t=new Set;return e.nodeType!==Node.ELEMENT_NODE&&e.nodeType!==Node.DOCUMENT_FRAGMENT_NODE?[]:(e.tagName&&t.add(e.tagName.toLowerCase()),typeof e.querySelectorAll=="function"&&e.querySelectorAll("*").forEach(n=>t.add(n.tagName.toLowerCase())),Array.from(t))}function ia(e){let t=new Map;for(let r of e){let i=C.defaultStyle.get(r);if(!i)continue;let o=Object.entries(i).map(([a,s])=>`${a}:${s};`).sort().join("");o&&(t.has(o)||t.set(o,[]),t.get(o).push(r))}let n="";for(let[r,i]of t.entries())n+=`${i.join(",")} { ${r} }
3
- `;return n}function aa(e){let t=Array.from(new Set(e.values())).filter(Boolean).sort(),n=new Map,r=1;for(let i of t)n.set(i,`c${r++}`);return n}function la(e){try{let t=e?.ownerDocument;if(!t)return typeof window<"u"?window:null;let n=t.defaultView;if(n&&typeof n.getComputedStyle=="function")return n;if(typeof window<"u"&&window.frames)for(let r=0;r<window.frames.length;r++)try{if(window.frames[r]?.document===t)return window.frames[r]}catch{}}catch{}return typeof window<"u"?window:null}function he(e,t=null){let n=()=>{let o={length:0,getPropertyValue:()=>"",item:()=>""};return o[Symbol.iterator]=function*(){},o};if(!(e instanceof Element)){let o=typeof window<"u"?window:null;if(o&&typeof o.getComputedStyle=="function")try{return o.getComputedStyle(e,t)||n()}catch{return n()}return n()}let r=C.computedStyle.get(e);r||(r=new Map,C.computedStyle.set(e,r));let i=r.get(t);if(!i){let o=la(e),a=null;try{a=o&&typeof o.getComputedStyle=="function"?o.getComputedStyle(e,t):null}catch{}if(!a&&typeof window<"u"&&typeof window.getComputedStyle=="function")try{e.ownerDocument===document&&(a=window.getComputedStyle(e,t))}catch{}i=a||n(),r.set(t,i)}return i}function dr(e){let t={};for(let n of e)t[n]=e.getPropertyValue(n);return t}function dn(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++){let o=e[i];o==="("&&n++,o===")"&&n--,o===","&&n===0&&(t.push(e.slice(r,i).trim()),r=i+1)}return t.push(e.slice(r).trim()),t}var Fr,Cn,sa,Ir,Dr,Or,Hr=K(()=>{re(),Fr=new Set(["meta","script","noscript","title","link","template"]),Cn=new Set(["meta","link","style","title","noscript","script","template","g","defs","use","marker","mask","clipPath","pattern","path","polygon","polyline","line","circle","ellipse","rect","filter","lineargradient","radialgradient","stop"]),sa=["div","span","p","a","img","ul","li","button","input","select","textarea","label","section","article","header","footer","nav","main","aside","h1","h2","h3","h4","h5","h6","table","thead","tbody","tr","td","th"],Ir=/(?:^|-)(animation|transition)(?:-|$)/i,Dr=/^(--.+|view-timeline|scroll-timeline|animation-trigger|offset-|position-try|app-region|interactivity|overlay|view-transition|-webkit-locale|-webkit-user-(?:drag|modify)|-webkit-tap-highlight-color|-webkit-text-security)$/i,Or=new Set(["cursor","pointer-events","touch-action","user-select","print-color-adjust","speak","reading-flow","reading-order","anchor-name","anchor-scope","container-name","container-type","timeline-scope"])});function He(e,{fast:t=!1}={}){if(t)return e();"requestIdleCallback"in window?requestIdleCallback(e,{timeout:50}):setTimeout(e,1)}function ca(){if(typeof navigator>"u")return!1;if(navigator.userAgentData)return navigator.userAgentData.platform==="iOS";let e=navigator.userAgent||"",t=/iPhone|iPad|iPod/.test(e),n=navigator.maxTouchPoints>2&&/Macintosh/.test(e);return t||n}function Me(){if(typeof navigator>"u")return!1;let e=navigator.userAgent||"",t=e.toLowerCase(),n=t.includes("safari")&&!t.includes("chrome")&&!t.includes("crios")&&!t.includes("fxios")&&!t.includes("android"),r=/applewebkit/i.test(e),i=/mobile/i.test(e),o=!/safari/i.test(e),a=r&&i&&o,s=/(micromessenger|wxwork|wecom|windowswechat|macwechat)/i.test(e),l=/(baiduboxapp|baidubrowser|baidusearch|baiduboxlite)/i.test(t),c=/ipad|iphone|ipod/.test(t)&&r;return n||a||s||l||c}function ua(){if(typeof navigator>"u")return!1;let e=(navigator.userAgent||"").toLowerCase();return e.includes("firefox")||e.includes("fxios")}var rt=K(()=>{});function F(e,t,n){let r=e&&typeof e=="object"&&(e.options||e);r&&r.debug&&(n!==void 0?console.warn("[snapdom]",t,n):console.warn("[snapdom]",t))}var Wr=K(()=>{}),ie=K(()=>{na(),Hr(),rt(),Mt(),Wr()}),Br={};nt(Br,{toCanvas:()=>At});function da(e){return typeof e=="string"&&/^data:image\/svg\+xml/i.test(e)}function fa(e){let t=e.indexOf(",");return t>=0?decodeURIComponent(e.slice(t+1)):""}function ma(e){return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`}function pa(e){let t=[],n="",r=0;for(let i=0;i<e.length;i++){let o=e[i];o==="("&&r++,o===")"&&(r=Math.max(0,r-1)),o===";"&&r===0?(t.push(n),n=""):n+=o}return n.trim()&&t.push(n),t.map(i=>i.trim()).filter(Boolean)}function ha(e){let t=[],n="",r=0;for(let o=0;o<e.length;o++){let a=e[o];a==="("&&r++,a===")"&&(r=Math.max(0,r-1)),a===","&&r===0?(t.push(n.trim()),n=""):n+=a}n.trim()&&t.push(n.trim());let i=[];for(let o of t){if(/\binset\b/i.test(o))continue;let a=o.match(/-?\d+(?:\.\d+)?px/gi)||[],[s="0px",l="0px",c="0px"]=a,u=o.replace(/-?\d+(?:\.\d+)?px/gi,"").replace(/\binset\b/ig,"").trim().replace(/\s{2,}/g," "),d=!!u&&u!==",";i.push(`drop-shadow(${s} ${l} ${c}${d?` ${u}`:""})`)}return i.join(" ")}function Ur(e){let t=pa(e),n=null,r=null,i=null,o=[];for(let s of t){let l=s.indexOf(":");if(l<0)continue;let c=s.slice(0,l).trim().toLowerCase(),u=s.slice(l+1).trim();c==="box-shadow"?i=u:c==="filter"?n=u:c==="-webkit-filter"?r=u:o.push([c,u])}if(i){let s=ha(i);s&&(n=n?`${n} ${s}`:s,r=r?`${r} ${s}`:s)}let a=[...o];return n&&a.push(["filter",n]),r&&a.push(["-webkit-filter",r]),a.map(([s,l])=>`${s}:${l}`).join(";")}function ga(e){return e.replace(/([^{}]+)\{([^}]*)\}/g,(t,n,r)=>`${n}{${Ur(r)}}`)}function ya(e){return e=e.replace(/<style[^>]*>([\s\S]*?)<\/style>/gi,(t,n)=>t.replace(n,ga(n))),e=e.replace(/style=(['"])([\s\S]*?)\1/gi,(t,n,r)=>`style=${n}${Ur(r)}${n}`),e}function wa(e){if(!Me()||!da(e))return e;try{let t=fa(e),n=ya(t);return ma(n)}catch{return e}}async function At(e,t){let{width:n,height:r,scale:i=1,dpr:o=1,meta:a={},backgroundColor:s}=t;e=wa(e);let l=new Image;l.loading="eager",l.decoding="sync",l.crossOrigin="anonymous",l.src=e,await l.decode();let c=l.naturalWidth,u=l.naturalHeight,d=Number.isFinite(a.w0)?a.w0:c,f=Number.isFinite(a.h0)?a.h0:u,p,g,h=Number.isFinite(n),m=Number.isFinite(r);if(h&&m)p=Math.max(1,n),g=Math.max(1,r);else if(h){let b=n/Math.max(1,d);p=n,g=f*b}else if(m){let b=r/Math.max(1,f);g=r,p=d*b}else p=c,g=u;p=p*i,g=g*i;let y=document.createElement("canvas");y.width=p*o,y.height=g*o,y.style.width=`${p}px`,y.style.height=`${g}px`;let x=y.getContext("2d");return o!==1&&x.scale(o,o),s&&(x.save(),x.fillStyle=s,x.fillRect(0,0,p,g),x.restore()),x.drawImage(l,0,0,p,g),y}var $t=K(()=>{rt()}),bt={};nt(bt,{rasterize:()=>qr});async function qr(e,t){let n=await At(e,t),r=new Image;return r.src=n.toDataURL(`image/${t.format}`,t.quality),await r.decode(),r.style.width=`${n.width/t.dpr}px`,r.style.height=`${n.height/t.dpr}px`,r}var xt=K(()=>{$t()}),fn={};nt(fn,{toImg:()=>fr,toSvg:()=>fr});async function fr(e,t){let{scale:n=1,width:r,height:i,meta:o={}}=t,a=Number.isFinite(r),s=Number.isFinite(i),l=Number.isFinite(n)&&n!==1||a||s;if(Me()&&l)return await qr(e,{...t,format:"png",quality:1,meta:o});let c=new Image;if(c.decoding="sync",c.loading="eager",c.src=e,await c.decode(),a&&s)c.style.width=`${r}px`,c.style.height=`${i}px`;else if(a){let u=Number.isFinite(o.w0)?o.w0:c.naturalWidth,d=Number.isFinite(o.h0)?o.h0:c.naturalHeight,f=r/Math.max(1,u);c.style.width=`${r}px`,c.style.height=`${Math.round(d*f)}px`}else if(s){let u=Number.isFinite(o.w0)?o.w0:c.naturalWidth,d=Number.isFinite(o.h0)?o.h0:c.naturalHeight,f=i/Math.max(1,d);c.style.height=`${i}px`,c.style.width=`${Math.round(u*f)}px`}else{let u=Math.round(c.naturalWidth*n),d=Math.round(c.naturalHeight*n);if(c.style.width=`${u}px`,c.style.height=`${d}px`,typeof e=="string"&&e.startsWith("data:image/svg+xml"))try{let f=decodeURIComponent(e.split(",")[1]).replace(/width="[^"]*"/,`width="${u}"`).replace(/height="[^"]*"/,`height="${d}"`);e=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(f)}`,c.src=e}catch(f){F(t,"SVG width/height patch in toImg failed",f)}}return c}var mr=K(()=>{ie(),xt()}),jr={};nt(jr,{toBlob:()=>zr});async function zr(e,t){let n=t.type;if(n==="svg"){let i=decodeURIComponent(e.split(",")[1]);return new Blob([i],{type:"image/svg+xml"})}let r=await At(e,t);return new Promise(i=>r.toBlob(o=>i(o),`image/${n}`,t.quality))}var Vr=K(()=>{$t()}),Yr={};nt(Yr,{download:()=>ba});async function pr(e,t){let n=new File([e],t,{type:e.type});if(!navigator.canShare?.({files:[n]}))return!1;try{await navigator.share({files:[n],title:t})}catch(r){if(r.name!=="AbortError")return!1}return!0}async function ba(e,t){let n=(t?.format||t?.type||"").toLowerCase(),r=n==="jpg"?"jpeg":n||"png",i=t?.filename||`snapdom.${r}`,o={...t||{},format:r,type:r};o.dpr=1;let a=ca();if(r==="svg"){let c=await zr(e,{...o,type:"svg"});if(a&&await pr(c,i))return;let u=URL.createObjectURL(c),d=document.createElement("a");d.href=u,d.download=i,document.body.appendChild(d),d.click(),URL.revokeObjectURL(u),d.remove();return}let s=await At(e,o);if(a){let c=`image/${r}`,u=await new Promise(d=>s.toBlob(d,c,t?.quality));if(u&&await pr(u,i))return}let l=document.createElement("a");l.href=s.toDataURL(`image/${r}`,t?.quality),l.download=i,document.body.appendChild(l),l.click(),l.remove()}var xa=K(()=>{Vr(),$t(),rt()});ie();ie();re();var hr=new WeakMap,mn=new Map,pn=0;function Qe(){pn++}var gr=!1;function va(e=document.documentElement){if(!gr){gr=!0;try{new MutationObserver(()=>Qe()).observe(e,{subtree:!0,childList:!0,characterData:!0,attributes:!0})}catch{}try{new MutationObserver(()=>Qe()).observe(document.head,{subtree:!0,childList:!0,characterData:!0,attributes:!0})}catch{}try{let t=document.fonts;t&&(t.addEventListener?.("loadingdone",Qe),t.ready?.then(()=>Qe()).catch(()=>{}))}catch{}}}function Sa(e,t={}){let n={},r=e.getPropertyValue("visibility"),i=t.excludeStyleProps;for(let d=0;d<e.length;d++){let f=e[d];if(En(f)||i&&(i instanceof RegExp&&i.test(f)||typeof i=="function"&&i(f)))continue;let p=e.getPropertyValue(f);(f==="background-image"||f==="content")&&p.includes("url(")&&!p.includes("data:")&&(p="none"),n[f]=p}let o=["text-decoration-line","text-decoration-color","text-decoration-style","text-decoration-thickness","text-underline-offset","text-decoration-skip-ink"];for(let d of o)if(!n[d])try{let f=e.getPropertyValue(d);f&&(n[d]=f)}catch{}let a=["-webkit-text-stroke","-webkit-text-stroke-width","-webkit-text-stroke-color","paint-order"];for(let d of a)if(!n[d])try{let f=e.getPropertyValue(d);f&&(n[d]=f)}catch{}if(t.embedFonts){let d=["font-feature-settings","font-variation-settings","font-kerning","font-variant","font-variant-ligatures","font-optical-sizing"];for(let f of d)if(!n[f])try{let p=e.getPropertyValue(f);p&&(n[f]=p)}catch{}}r==="hidden"&&(n.opacity="0");let s=parseFloat(e.getPropertyValue("border-top-width")||0)||0,l=parseFloat(e.getPropertyValue("border-right-width")||0)||0,c=parseFloat(e.getPropertyValue("border-bottom-width")||0)||0,u=parseFloat(e.getPropertyValue("border-left-width")||0)||0;if(s===0&&l===0&&c===0&&u===0){let d=(e.getPropertyValue("border-image-source")||"").trim(),f=d&&d!=="none",p=["border","border-top","border-right","border-bottom","border-left","border-width","border-style","border-color","border-top-width","border-top-style","border-top-color","border-right-width","border-right-style","border-right-color","border-bottom-width","border-bottom-style","border-bottom-color","border-left-width","border-left-style","border-left-color","border-block","border-block-width","border-block-style","border-block-color","border-inline","border-inline-width","border-inline-style","border-inline-color"];for(let g of p)delete n[g];f||(n.border="none")}return n}var yr=new WeakMap;function Ea(e){let t=yr.get(e);return t||(t=Object.entries(e).sort((n,r)=>n[0]<r[0]?-1:n[0]>r[0]?1:0).map(([n,r])=>`${n}:${r}`).join(";"),yr.set(e,t),t)}function Ca(e,t=null,n={}){let r=hr.get(e);if(r&&r.epoch===pn)return r.snapshot;let i=t||getComputedStyle(e),o=Sa(i,n);return Na(e,i,o),hr.set(e,{epoch:pn,snapshot:o}),o}function ka(e,t){return e&&e.session&&e.persist?e:e&&(e.styleMap||e.styleCache||e.nodeMap)?{session:e,persist:{snapshotKeyCache:mn,defaultStyle:C.defaultStyle,baseStyle:C.baseStyle,image:C.image,resource:C.resource,background:C.background,font:C.font},options:t||{}}:{session:C.session,persist:{snapshotKeyCache:mn,defaultStyle:C.defaultStyle,baseStyle:C.baseStyle,image:C.image,resource:C.resource,background:C.background,font:C.font},options:e||t||{}}}function Ma(e,t,n){if(!(!e.style||e.style.length===0))for(let r=0;r<e.style.length;r++){let i=e.style[r],o=n.getPropertyValue(i);o&&t.style.setProperty(i,o)}}async function We(e,t,n,r){if(e.tagName==="STYLE")return;let i=ka(n,r),o=i.options&&i.options.cache||"auto";o!=="disabled"&&va(document.documentElement),o==="disabled"&&!i.session.__bumpedForDisabled&&(Qe(),mn.clear(),i.session.__bumpedForDisabled=!0);let{session:a,persist:s}=i;a.styleCache.has(e)||a.styleCache.set(e,getComputedStyle(e));let l=a.styleCache.get(e);e.getAttribute?.("style")&&Ma(e,t,l);let c=Ca(e,l,i.options),u=Ea(c),d=s.snapshotKeyCache.get(u);if(!d){let f=e.tagName?.toLowerCase()||"div";d=un(c,f),s.snapshotKeyCache.set(u,d)}a.styleMap.set(t,d)}function Aa(e){return e instanceof HTMLImageElement||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement||e instanceof HTMLIFrameElement||e instanceof SVGElement||e instanceof HTMLObjectElement||e instanceof HTMLEmbedElement}function $a(e){return e.backgroundImage&&e.backgroundImage!=="none"||e.backgroundColor&&e.backgroundColor!=="rgba(0, 0, 0, 0)"&&e.backgroundColor!=="transparent"||(parseFloat(e.borderTopWidth)||0)>0||(parseFloat(e.borderBottomWidth)||0)>0||(parseFloat(e.paddingTop)||0)>0||(parseFloat(e.paddingBottom)||0)>0?!0:(e.overflowBlock||e.overflowY||"visible")!=="visible"}function La(e){let t=e.parentElement;if(!t)return!1;let n=getComputedStyle(t).display||"";return n.includes("flex")||n.includes("grid")}function Ta(e,t){if(e.textContent&&/\S/.test(e.textContent))return!0;let n=e.firstElementChild,r=e.lastElementChild;if(n&&n.tagName==="BR"||r&&r.tagName==="BR")return!0;let i=e.scrollHeight;if(i===0)return!1;let o=parseFloat(t.paddingTop)||0,a=parseFloat(t.paddingBottom)||0;return i>o+a}function Na(e,t,n){if(e instanceof HTMLElement&&e.style&&e.style.height)return;let r=e.tagName&&e.tagName.toLowerCase();if(!r||!["div","section","article","main","aside","header","footer","nav"].includes(r))return;let i=parseFloat(t.height);if(Number.isFinite(i)&&e.scrollHeight>0&&Math.abs(i-e.scrollHeight)>2||t.aspectRatio&&t.aspectRatio!=="none"&&t.aspectRatio!=="auto")return;let o=t.display||"";if(o.includes("flex")||o.includes("grid")||Aa(e))return;let a=t.position;if(a==="absolute"||a==="fixed"||a==="sticky"||t.transform!=="none"||$a(t)||La(e))return;let s=t.overflowX||t.overflow||"visible",l=t.overflowY||t.overflow||"visible";if(s!=="visible"||l!=="visible")return;let c=t.clip;c&&c!=="auto"&&c!=="rect(auto, auto, auto, auto)"||t.visibility==="hidden"||t.opacity==="0"||Ta(e,t)&&(delete n.height,delete n["block-size"])}Hr();var Xr=["fill","stroke","color","background-color","stop-color"],wr=new Map;function Ra(e,t){let n=t+"::"+e.toLowerCase(),r=wr.get(n);if(r)return r;let i=document,o=t==="http://www.w3.org/2000/svg"?i.createElementNS(t,e):i.createElement(e),a=i.createElement("div");a.style.cssText="position:absolute;left:-99999px;top:-99999px;contain:strict;display:block;",a.appendChild(o),i.documentElement.appendChild(a);let s=getComputedStyle(o),l={};for(let c of Xr)l[c]=s.getPropertyValue(c)||"";return a.remove(),wr.set(n,l),l}function _a(e,t){if(!(e instanceof Element)||!(t instanceof Element))return;let n=e.getAttribute?.("style"),r=!!(n&&n.includes("var("));if(!r&&e.attributes?.length){let o=e.attributes;for(let a=0;a<o.length;a++){let s=o[a];if(s&&typeof s.value=="string"&&s.value.includes("var(")){r=!0;break}}}let i=null;if(r)try{i=getComputedStyle(e)}catch{}if(r){let o=e.style;if(o&&o.length)for(let a=0;a<o.length;a++){let s=o[a],l=o.getPropertyValue(s);if(!l||!l.includes("var("))continue;let c=i&&i.getPropertyValue(s);if(c)try{t.style.setProperty(s,c.trim(),o.getPropertyPriority(s))}catch{}}}if(r&&e.attributes?.length){let o=e.attributes;for(let a=0;a<o.length;a++){let s=o[a];if(!s||typeof s.value!="string"||!s.value.includes("var("))continue;let l=s.name,c=i&&i.getPropertyValue(l);if(c)try{t.style.setProperty(l,c.trim())}catch{}}}if(!r){if(!i)try{i=getComputedStyle(e)}catch{i=null}if(!i)return;let o=e.namespaceURI||"html",a=Ra(e.tagName,o);for(let s of Xr){let l=i.getPropertyValue(s)||"",c=a[s]||"";if(l&&l!==c)try{t.style.setProperty(s,l.trim())}catch{}}}}ie();ie();re();Ue();function ln(e,t,n){return Promise.all(e.map(r=>new Promise(i=>{function o(){He(a=>{!(a&&typeof a.timeRemaining=="function")||a.timeRemaining()>0?t(r,i):o()},{fast:n})}o()})))}function Pa(e){return e=e.trim(),!e||/:not\(\s*\[data-sd-slotted\]\s*\)\s*$/.test(e)?e:`${e}:not([data-sd-slotted])`}function Fa(e,t,n=!0){return e.split(",").map(r=>r.trim()).filter(Boolean).map(r=>{if(r.startsWith(":where(")||r.startsWith("@"))return r;let i=n?Pa(r):r;return`:where(${t} ${i})`}).join(", ")}function Ia(e,t){return e?(e=e.replace(/:host\(([^)]+)\)/g,(n,r)=>`:where(${t}:is(${r.trim()}))`),e=e.replace(/:host\b/g,`:where(${t})`),e=e.replace(/:host-context\(([^)]+)\)/g,(n,r)=>`:where(:where(${r.trim()}) ${t})`),e=e.replace(/::slotted\(([^)]+)\)/g,(n,r)=>`:where(${t} ${r.trim()})`),e=e.replace(/(^|})(\s*)([^@}{]+){/g,(n,r,i,o)=>{let a=Fa(o,t,!0);return`${r}${i}${a}{`}),e):""}function Da(e){return e.shadowScopeSeq=(e.shadowScopeSeq||0)+1,`s${e.shadowScopeSeq}`}function Oa(e){let t="";try{e.querySelectorAll("style").forEach(r=>{t+=(r.textContent||"")+`
1
+ "use strict";var __MindStudioBrowserAgent=(()=>{var bt=Object.defineProperty;var To=Object.getOwnPropertyDescriptor;var Ro=Object.getOwnPropertyNames;var _o=Object.prototype.hasOwnProperty;var Po=(e,t)=>{for(var n in t)bt(e,n,{get:t[n],enumerable:!0})},Fo=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ro(t))!_o.call(e,i)&&i!==n&&bt(e,i,{get:()=>t[i],enumerable:!(r=To(t,i))||r.enumerable});return e};var Do=e=>Fo(bt({},"__esModule",{value:!0}),e);var Cs={};Po(Cs,{executeSteps:()=>pt,getRefMap:()=>we,resolveElement:()=>te,takeSnapshot:()=>be,takeSnapshotSync:()=>kt});var xt="__ms";function Io(){return{ws:{ws:null,clientId:null,reconnectDelay:1e3,closing:!1,busy:!1},cursor:{el:null,rippleEl:null,x:0,y:0,visible:!1,hasPosition:!1,hideTimer:null,forcedState:null,executing:!1,targetElement:null,trackingFrame:null,settledResolve:null},snapshot:{refCounter:0,refMap:new Map},networkIdle:{activeRequests:0},transport:{buffer:[],flushTimer:null,capturing:!1,captured:[],wsGetter:null},noteLayer:{overlay:null,cursorEl:null,notes:[],currentNote:null,pointerDown:!1,startX:0,startY:0,didDrag:!1,consumedByDeactivation:!1,dragPreview:null,movingNote:null,moveOffsetX:0,moveOffsetY:0},noteElement:{counter:0},notesMode:{active:!1},messages:{handler:null},screenshot:{cameraEl:null,flashEl:null},fonts:{initialized:!1,observer:null},zoom:{pipMode:!1}}}function k(){let e=window;return e[xt]||(e[xt]=Io()),e[xt]}var on="/__mindstudio_dev__/logs",Oo=2e3;function an(e){k().transport.wsGetter=e}function ln(){let e=k().transport;if(e.buffer.length===0)return;let t=e.buffer;e.buffer=[];let n=e.wsGetter?.();if(n&&n.readyState===WebSocket.OPEN)try{n.send(JSON.stringify({type:"log",entries:t}));return}catch{}try{let r=new XMLHttpRequest;r.open("POST",on,!0),r.setRequestHeader("Content-Type","application/json"),r.send(JSON.stringify(t))}catch{}}function Ho(){let e=k().transport;e.flushTimer||(e.flushTimer=setTimeout(()=>{e.flushTimer=null,ln()},Oo))}function Wo(){let e=k().transport;e.flushTimer&&(clearTimeout(e.flushTimer),e.flushTimer=null),ln()}function V(e){let t=k().transport;t.buffer.push(e),t.capturing&&t.captured.push(e),Ho()}function vt(e){let t=k().transport;t.buffer.push(e),t.capturing&&t.captured.push(e),Wo()}function St(){let e=k().transport;e.capturing=!0,e.captured=[]}function Et(){let e=k().transport;e.capturing=!1;let t=e.captured;return e.captured=[],t}function sn(){window.addEventListener("beforeunload",()=>{let e=k().transport;e.buffer.length>0&&navigator.sendBeacon&&navigator.sendBeacon(on,JSON.stringify(e.buffer))})}var Bo={a:"link",button:"button",input:"textbox",textarea:"textbox",select:"combobox",option:"option",h1:"heading",h2:"heading",h3:"heading",h4:"heading",h5:"heading",h6:"heading",nav:"navigation",main:"main",header:"banner",footer:"contentinfo",aside:"complementary",dialog:"dialog",details:"group",summary:"button",img:"img",ul:"list",ol:"list",li:"listitem",table:"table",tr:"row",th:"columnheader",td:"cell",form:"form",article:"article",section:"region",label:"label",fieldset:"group",legend:"legend",p:"paragraph",blockquote:"blockquote",pre:"code",code:"code",hr:"separator",progress:"progressbar"};function ue(e){let t=e.getAttribute("role");if(t)return t==="presentation"||t==="none"?null:t;let n=e.tagName.toLowerCase();if(n==="a")return e.hasAttribute("href")?"link":null;if(n==="section")return e.hasAttribute("aria-label")||e.hasAttribute("aria-labelledby")?"region":null;if(n==="form")return e.hasAttribute("aria-label")||e.hasAttribute("aria-labelledby")?"form":null;if(n==="img")return e.alt===""?null:"img";if(n==="input")switch(e.type){case"checkbox":return"checkbox";case"radio":return"radio";case"range":return"slider";case"submit":case"button":case"reset":return"button";case"hidden":return null;default:return"textbox"}return Bo[n]??null}function cn(e){if(e.hasAttribute("onclick")||e.hasAttribute("tabindex")&&e.getAttribute("tabindex")!=="-1")return!0;try{if(getComputedStyle(e).cursor==="pointer")return!0}catch{}return!1}function ye(e){let t=e.getAttribute("aria-label");if(t)return t.trim();let n=e.getAttribute("aria-labelledby");if(n){let a=n.split(/\s+/).map(s=>{let l=document.getElementById(s);return l?de(l):""}).filter(Boolean).join(" ");if(a)return a}let r=e.tagName.toLowerCase();if(r==="input"||r==="textarea"||r==="select"){let a=Uo(e);if(a)return a}if(r==="img"){let a=e.alt;if(a)return a.trim()}if(r==="fieldset"){let a=e.querySelector("legend");if(a)return de(a)}let i=de(e);if(i)return i;let o=e.getAttribute("title");return o?o.trim():""}function de(e){if(!e.children.length)return(e.textContent||"").trim();let t=[];for(let n of Array.from(e.childNodes))if(n.nodeType===Node.TEXT_NODE){let r=(n.textContent||"").trim();r&&t.push(r)}else if(n.nodeType===Node.ELEMENT_NODE){let r=n;if(jo(r))continue;let i=qo(r),o=de(r);o&&(i&&t.length>0&&t.push(" "),t.push(o),i&&t.push(" "))}return t.join("").replace(/\s+/g," ").trim()}function Uo(e){if(e.id){let n=document.querySelector(`label[for="${CSS.escape(e.id)}"]`);if(n)return de(n)}let t=e.closest("label");if(t){let n=t.cloneNode(!0),r=n.querySelector("input, textarea, select");r&&r.remove();let i=n.textContent?.trim();if(i)return i}return null}function qo(e){try{return!getComputedStyle(e).display.includes("inline")}catch{let t=e.tagName.toLowerCase();return["div","p","h1","h2","h3","h4","h5","h6","li","section","article","header","footer","nav","main","aside","blockquote","pre","form","fieldset","table","tr","br"].includes(t)}}function jo(e){let t=e.tagName.toLowerCase();if(t==="script"||t==="style"||t==="noscript"||t==="template"||e.getAttribute("aria-hidden")==="true")return!0;try{let n=getComputedStyle(e);if(n.display==="none"||n.visibility==="hidden")return!0}catch{}return!1}function Ct(e,t){try{let n=getComputedStyle(e,t).content;if(!n||n==="none"||n==="normal")return"";let r=n.match(/^["'](.*)["']$/);return r?r[1]:""}catch{return""}}function Ve(){k().networkIdle.activeRequests++}function Le(){let e=k().networkIdle;e.activeRequests=Math.max(0,e.activeRequests-1)}function un(e=5e3,t=200){return new Promise((n,r)=>{let i=Date.now()+e,o=null;function a(){if(Date.now()>i){o&&clearTimeout(o),n();return}k().networkIdle.activeRequests===0?o||(o=setTimeout(()=>{k().networkIdle.activeRequests===0?n():(o=null,a())},t)):(o&&(clearTimeout(o),o=null),setTimeout(a,50))}a()})}function we(){return k().snapshot.refMap}async function be(){return await un(),kt()}function kt(){let e=k().snapshot;e.refCounter=0,e.refMap=new Map;let t=document.body;if(!t)return"(empty page)";let n=dn(t);return Mt(n,0).trimEnd()}function Y(e){let t=ue(e),n=ye(e),r=n.length>60?n.slice(0,57)+"...":n;if(t&&r)return`${t} "${r}"`;if(t)return t;if(r)return`"${r}"`;let i=e.tagName.toLowerCase();return e.id?`${i}#${e.id}`:i}function dn(e){if(Vo(e))return[];let t=ue(e),n=!t&&cn(e),r=t||(n?"clickable":null),i="";if(r){i=ye(e);let u=Ct(e,"::before"),d=Ct(e,"::after");(u||d)&&(i=[u,i,d].filter(Boolean).join(" ")),i.length>80&&(i=i.slice(0,77)+"...")}let o=Yo(e),a=t==="button"||t==="link"||t==="textbox"||t==="combobox"||t==="checkbox"||t==="radio"||t==="slider"||t==="tab"||t==="menuitem"||n,s=r&&i&&!a,l=null;if(a||s){let u=k().snapshot;u.refCounter++,l=`e${u.refCounter}`,u.refMap.set(l,e)}let c=zo(e);if(r){let u=c.length===0?"":Mt(c,0).trim();return[{tag:r,name:i,attrs:o,ref:l,children:u&&u===i?[]:c,element:e}]}if(c.length===0){let u=de(e);if(u)return[{tag:null,name:u.length>80?u.slice(0,77)+"...":u,attrs:[],ref:null,children:[],element:e}]}return c}function zo(e){let t=[];for(let n of Array.from(e.childNodes))n.nodeType===Node.ELEMENT_NODE&&t.push(...dn(n));return t}function Vo(e){let t=e.tagName.toLowerCase();if(t==="script"||t==="style"||t==="noscript"||t==="template"||t==="head"||e.getAttribute("aria-hidden")==="true"||e.id==="__mindstudio-browser-agent"||e.id==="__mindstudio-cursor"||e.id==="__mindstudio-cursor-ripple"||e.id==="__mindstudio-notes-overlay"||e.id==="__mindstudio-notes-cursor")return!0;try{let n=getComputedStyle(e);if(n.display==="none"||n.visibility==="hidden"&&n.position!=="static")return!0}catch{}return!1}function Yo(e){let t=[],n=e.tagName.toLowerCase();if((n==="dialog"&&e.open||n==="details"&&e.open)&&t.push("open"),e.disabled&&t.push("disabled"),n==="input"){let o=e;(o.type==="checkbox"||o.type==="radio")&&o.checked&&t.push("checked")}if(n==="input"){let o=e;o.type!=="checkbox"&&o.type!=="radio"&&o.type!=="hidden"&&o.type!=="submit"&&o.type!=="button"&&o.type!=="reset"&&(t.push(`value="${o.value}"`),o.placeholder&&t.push(`placeholder="${o.placeholder}"`))}if(n==="textarea"){let o=e;t.push(`value="${o.value}"`),o.placeholder&&t.push(`placeholder="${o.placeholder}"`)}if(n==="select"){let o=e,a=o.options[o.selectedIndex];a&&t.push(`value="${a.text}"`)}let r=n.match(/^h([1-6])$/);r&&t.push(`level=${r[1]}`);let i=e.getAttribute("aria-expanded");return i==="true"&&t.push("expanded"),i==="false"&&t.push("collapsed"),e.getAttribute("aria-selected")==="true"&&t.push("selected"),e.getAttribute("aria-pressed")==="true"&&t.push("pressed"),t}function Mt(e,t){let n="";for(let r of e)n+=Xo(r,t);return n}function Xo(e,t){let n=" ".repeat(t),r=[];e.tag&&r.push(e.tag),e.name&&r.push(`"${e.name}"`);for(let a of e.attrs)r.push(`[${a}]`);e.ref&&r.push(`[ref=${e.ref}]`);let i="";r.length>0&&(i+=`${n}${r.join(" ")}
2
+ `);let o=r.length>0?t+1:t;return i+=Mt(e.children,o),i}function fn(e){if(e===null)return"null";if(e===void 0)return"undefined";if(e instanceof Error)return e.stack||e.message||String(e);if(typeof e=="object")try{return JSON.stringify(e)}catch{return String(e)}return String(e)}function W(e){return new Promise(t=>setTimeout(t,e))}var Go=["log","info","warn","error","debug"];function mn(){if(!console.__ms_patched){console.__ms_patched=!0;for(let e of Go){let t=console[e];console[e]=(...n)=>{t&&t.apply(console,n),V({type:"console",level:e,args:n.map(fn),url:location.href})}}}}function pn(){window.addEventListener("error",e=>{vt({type:"error",message:e.message,stack:e.error&&e.error.stack||"",source:e.filename,line:e.lineno,column:e.colno,url:location.href})}),window.addEventListener("unhandledrejection",e=>{let t=e.reason||{};vt({type:"error",message:t.message||String(t),stack:t.stack||"",url:location.href})})}function hn(){if(!window.fetch||window.fetch.__ms_patched)return;let e=window.fetch;window.fetch=function(t,n){let r=(n?.method||"GET").toUpperCase(),i=typeof t=="string"?t:t instanceof URL?t.href:t.url||String(t);if(i.includes("/__mindstudio_dev__/"))return e.apply(this,[t,n]);let o=Date.now();return Ve(),e.apply(this,[t,n]).then(a=>{Le();let s={type:"network",method:r,url:i,status:a.status,statusText:a.statusText,duration:Date.now()-o,ok:a.ok};if(a.ok)V(s);else try{a.clone().text().then(l=>{s.body=l.slice(0,1e3),V(s)}).catch(()=>V(s))}catch{V(s)}return a},a=>{throw Le(),V({type:"network",method:r,url:i,error:a.message||String(a),duration:Date.now()-o,ok:!1}),a})},window.fetch.__ms_patched=!0}function gn(){document.__ms_click_patched||(document.__ms_click_patched=!0,document.addEventListener("click",e=>{let t=e.target,n=(t?.textContent||"").trim().slice(0,100);V({type:"interaction",event:"click",target:Y(t),text:n,url:location.href})},!0))}function yn(){if(XMLHttpRequest.prototype.open.__ms_patched)return;let e=window.XMLHttpRequest,t=e.prototype.open,n=e.prototype.send;e.prototype.open=function(r,i,...o){return this.__ms_method=r.toUpperCase(),this.__ms_url=String(i),t.apply(this,[r,i,...o])},e.prototype.send=function(r){let i=this.__ms_method||"GET",o=this.__ms_url||"";if(o.includes("/__mindstudio_dev__/"))return n.apply(this,[r]);let a=Date.now();return Ve(),this.addEventListener("loadend",function(){Le(),V({type:"network",method:i,url:o,status:this.status,statusText:this.statusText,duration:Date.now()-a,ok:this.status>=200&&this.status<300,...this.status>=400?{body:(this.responseText||"").slice(0,1e3)}:{},via:"xhr"})}),n.apply(this,[r])},XMLHttpRequest.prototype.open.__ms_patched=!0}function te(e){let t=null;if(e.ref){let n=we(),r=n.get(e.ref);if(r&&r.isConnected)if(ee(r))t={element:r,matched:`${Y(r)} [ref=${e.ref}]`};else throw new Error(`Element [ref=${e.ref}] exists but is hidden (${At(r)}). It may be inside a closed dialog or collapsed section.`);else{let i=[...n.entries()].filter(([,o])=>o.isConnected&&ee(o)).slice(0,10).map(([o,a])=>`${Y(a)} [ref=${o}]`).join(", ");throw new Error(`Element [ref=${e.ref}] not found. `+(i?`Available refs: ${i}`:"No refs available \u2014 take a snapshot first."))}}if(!t&&(e.text||e.role&&e.text)){let n=e.text,r=e.role,i=wn(n,r);if(i.length===0){let o=wn(n,r,!0);if(o.length>0)throw new Error(`Found ${r?r+" ":""}"${n}" but it is hidden (${At(o[0])}). Wait for it to become visible or check if a dialog/modal needs to be opened first.`);let a=r?`${r} "${n}"`:`"${n}"`,s=bn(r);throw new Error(`No element found matching ${a}. `+(s?`Visible ${r||"element"}s: ${s}`:"The page may still be loading \u2014 try a wait command first."))}if(i.length>1){let o=i.filter(xn),a=o.length===1?o[0]:i[0];t={element:a,matched:Y(a)}}else t={element:i[0],matched:Y(i[0])}}if(!t&&e.role&&!e.text){let n=e.role,r=Ko(n);if(r.length===0){let i=bn(n);throw new Error(`No visible element with role "${n}" found. `+(i?`Visible ${n}s: ${i}`:"The page may still be loading \u2014 try a wait command first."))}t={element:r[0],matched:Y(r[0])}}if(!t&&e.label){let n=e.label,r=Jo(n);if(!r){let i=[...document.querySelectorAll("label")].filter(ee).map(o=>`"${(o.textContent||"").trim().slice(0,40)}"`).slice(0,8).join(", ");throw new Error(`No input found with label "${n}". `+(i?`Visible labels: ${i}`:"No labels found on the page."))}t={element:r,matched:`${Y(r)} via label "${n}"`}}if(!t&&e.selector){let n=e.selector,r=document.querySelector(n);if(!r)throw new Error(`No element found for selector "${n}".`);if(!ee(r))throw new Error(`Found element for selector "${n}" but it is hidden (${At(r)}).`);t={element:r,matched:`${Y(r)} via selector "${n}"`}}if(!t)throw new Error("No targeting field provided (need ref, text, role, label, or selector)");return t}function wn(e,t,n=!1){let r=[],i=e.toLowerCase();for(let o of document.querySelectorAll("*")){if(!n&&!ee(o)||n&&!o.isConnected||t&&ue(o)!==t)continue;if(ye(o).toLowerCase().includes(i)){r.push(o);continue}o.children.length||(o.textContent||"").trim().toLowerCase().includes(i)&&r.push(o)}return r}function Ko(e){let t=[];for(let n of document.querySelectorAll("*"))ee(n)&&ue(n)===e&&t.push(n);return t}function Jo(e){let t=e.toLowerCase();for(let n of document.querySelectorAll("label")){if(!(n.textContent||"").trim().toLowerCase().includes(t))continue;let i=n.getAttribute("for");if(i){let a=document.getElementById(i);if(a&&ee(a))return a}let o=n.querySelector("input, textarea, select");if(o&&ee(o))return o}return null}function ee(e){if(!e.isConnected)return!1;try{let t=getComputedStyle(e);if(t.display==="none"||t.visibility==="hidden")return!1}catch{return!1}return!0}function xn(e){if(e.matches('a, button, input, textarea, select, [role="button"], [role="link"], [tabindex]'))return!0;try{return getComputedStyle(e).cursor==="pointer"}catch{return!1}}function At(e){try{let t=getComputedStyle(e);if(t.display==="none")return"display: none";if(t.visibility==="hidden")return"visibility: hidden"}catch{}return e.getAttribute("aria-hidden")==="true"?'aria-hidden="true"':"hidden"}function bn(e){let t=[];for(let n of document.querySelectorAll("*"))if(ee(n)&&(e?ue(n)===e&&t.push(n):xn(n)&&t.push(n),t.length>=10))break;return t.length===0?"":t.map(n=>`"${ye(n).slice(0,40)||Y(n)}"`).join(", ")}function $t(e){let t=e.getBoundingClientRect(),n=t.left+t.width/2,r=t.top+t.height/2,i={bubbles:!0,cancelable:!0,clientX:n,clientY:r,button:0};e.dispatchEvent(new PointerEvent("pointerdown",{...i,pointerId:1})),e.dispatchEvent(new MouseEvent("mousedown",i)),e instanceof HTMLElement&&e.focus(),e.dispatchEvent(new PointerEvent("pointerup",{...i,pointerId:1})),e.dispatchEvent(new MouseEvent("mouseup",i)),e.dispatchEvent(new MouseEvent("click",i))}var Zo=Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value")?.set,Qo=Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype,"value")?.set;async function En(e,t,n={}){if(!(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement))throw new Error("type command requires an input or textarea element");e.focus(),$t(e),n.clear&&(vn(e,""),e.dispatchEvent(new Event("input",{bubbles:!0})));for(let r=0;r<t.length;r++){let i=t[r];e.dispatchEvent(new KeyboardEvent("keydown",{key:i,code:`Key${i.toUpperCase()}`,bubbles:!0})),e.dispatchEvent(new KeyboardEvent("keypress",{key:i,code:`Key${i.toUpperCase()}`,bubbles:!0})),vn(e,e.value+i),e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new KeyboardEvent("keyup",{key:i,code:`Key${i.toUpperCase()}`,bubbles:!0})),await W(ei(i,t.length))}e.dispatchEvent(new Event("change",{bubbles:!0}))}function ei(e,t){let n=Math.random()*50-25,r;if(e===" "?r=120+n:/[.,!?;:\-]/.test(e)?r=140+n:/[A-Z]/.test(e)?r=115+n:r=85+n,t<=20)return r;let i=Math.max(.1,20/t);return r*i}function vn(e,t){let n=e instanceof HTMLTextAreaElement?Qo:Zo;n?n.call(e,t):e.value=t}async function Cn(e){let t=e.timeout||5e3,n=Date.now(),r=n+t;for(;Date.now()<r;)try{return{...te(e),elapsed:Date.now()-n}}catch{await W(100)}let i=e.text?`"${e.text}"`:e.role?`role "${e.role}"`:e.selector?`selector "${e.selector}"`:"element";throw new Error(`Timed out waiting for ${i} after ${t}ms`)}var Sn=Object.getOwnPropertyDescriptor(HTMLSelectElement.prototype,"value")?.set;function kn(e,t){if(!(e instanceof HTMLSelectElement))throw new Error("select command requires a <select> element");let n=t.toLowerCase(),r=null;for(let i of e.options)if(i.text.toLowerCase().includes(n)||i.value.toLowerCase()===n||i.label.toLowerCase().includes(n)){r=i;break}if(!r){let i=[...e.options].map(o=>`"${o.text}"`).join(", ");throw new Error(`No option matching "${t}" in select. Available options: ${i}`)}return Sn?Sn.call(e,r.value):e.value=r.value,e.dispatchEvent(new Event("change",{bubbles:!0})),e.dispatchEvent(new Event("input",{bubbles:!0})),r.text}async function Mn(e){try{let n=!/\b(return|;|\{)\b/.test(e.trim())?`return (${e})`:e,i=new Function(n)();return i instanceof Promise?await i:i}catch(t){throw new Error(`evaluate failed: ${t instanceof Error?t.message:String(t)}`)}}var ni=Object.defineProperty,z=(e,t)=>()=>(e&&(t=e(e=0)),t),Fe=(e,t)=>{for(var n in t)ni(e,n,{get:t[n],enumerable:!0})};function ri(e){if(e===!0)return"soft";if(e===!1)return"disabled";if(typeof e=="string"){let t=e.toLowerCase().trim();if(t==="auto")return"auto";if(t==="full")return"full";if(t==="soft"||t==="disabled")return t}return"soft"}function oi(e="soft"){switch(C.session.__counterEpoch=(C.session.__counterEpoch||0)+1,e){case"auto":{C.session.styleMap=new Map,C.session.nodeMap=new Map;return}case"soft":{C.session.styleMap=new Map,C.session.nodeMap=new Map,C.session.styleCache=new WeakMap;return}case"full":return;case"disabled":{C.session.styleMap=new Map,C.session.nodeMap=new Map,C.session.styleCache=new WeakMap,C.computedStyle=new WeakMap,C.baseStyle=new X(50),C.defaultStyle=new X(30),C.image=new X(100),C.background=new X(100),C.resource=new X(150),C.font=new Set;return}default:{C.session.styleMap=new Map,C.session.nodeMap=new Map,C.session.styleCache=new WeakMap;return}}}var X,C,K=z(()=>{X=class extends Map{constructor(e=100,...t){super(...t),this._maxSize=e}set(e,t){if(this.size>=this._maxSize&&!this.has(e)){let n=this.keys().next().value;n!==void 0&&this.delete(n)}return super.set(e,t)}},C={image:new X(100),background:new X(100),resource:new X(150),defaultStyle:new X(30),baseStyle:new X(50),computedStyle:new WeakMap,font:new Set,session:{styleMap:new Map,styleCache:new WeakMap,nodeMap:new Map}}});function jt(e){let t=e.match(/url\((['"]?)(.*?)(\1)\)/);if(!t)return null;let n=t[2].trim();return n.startsWith("#")?null:n}function ii(e){if(!e||e==="none")return"";let t=e.replace(/translate[XY]?\([^)]*\)/g,"");return t=t.replace(/matrix\(([^)]+)\)/g,(n,r)=>{let i=r.split(",").map(o=>o.trim());return i.length!==6?`matrix(${r})`:(i[4]="0",i[5]="0",`matrix(${i.join(", ")})`)}),t=t.replace(/matrix3d\(([^)]+)\)/g,(n,r)=>{let i=r.split(",").map(o=>o.trim());return i.length!==16?`matrix3d(${r})`:(i[12]="0",i[13]="0",`matrix3d(${i.join(", ")})`)}),t.trim().replace(/\s{2,}/g," ")}function et(e){if(/%[0-9A-Fa-f]{2}/.test(e))return e;try{return encodeURI(e)}catch{return e}}function ai(e,t){if(!e||/^(data|blob|about|#)/i.test(e.trim()))return e;try{let n=t||typeof document<"u"&&(document.baseURI||document.location?.href)||"http://localhost/";return new URL(e,n).href}catch{return e}}var nt=z(()=>{});function li(e="[snapDOM]",{ttlMs:t=5*6e4,maxEntries:n=12}={}){let r=new Map,i=0;function o(a,s,l){if(i>=n)return;let c=Date.now();(r.get(s)||0)>c||(r.set(s,c+t),i++,a==="warn"&&console&&console.warn?console.warn(`${e} ${l}`):console&&console.error&&console.error(`${e} ${l}`))}return{warnOnce(a,s){o("warn",a,s)},errorOnce(a,s){o("error",a,s)},reset(){r.clear(),i=0}}}function si(e){return/^data:|^blob:|^about:blank$/i.test(e)}function ci(e,t){try{let n=typeof location<"u"&&location.href?location.href:"http://localhost/",r=t.includes("{url}")?t.split("{url}")[0]:t,i=new URL(r||".",n),o=new URL(e,n);if(o.origin===i.origin)return!0;let a=o.searchParams;if(a&&(a.has("url")||a.has("target")))return!0}catch{}return!1}function ui(e,t){if(!t||si(e)||ci(e,t))return!1;try{let n=typeof location<"u"&&location.href?location.href:"http://localhost/",r=new URL(e,n);return typeof location<"u"?r.origin!==location.origin:!0}catch{return!!t}}function di(e,t){if(!t)return e;if(t.includes("{url}"))return t.replace("{urlRaw}",et(e)).replace("{url}",encodeURIComponent(e));if(/[?&]url=?$/.test(t))return`${t}${encodeURIComponent(e)}`;if(t.endsWith("?"))return`${t}url=${encodeURIComponent(e)}`;if(t.endsWith("/"))return`${t}${et(e)}`;let n=t.includes("?")?"&":"?";return`${t}${n}url=${encodeURIComponent(e)}`}function An(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result||"")),r.onerror=()=>n(new Error("read_failed")),r.readAsDataURL(e)})}function fi(e,t){return[t.as||"blob",t.timeout??3e3,t.useProxy||"",t.errorTTL??8e3,e].join("|")}async function G(e,t={}){let n=t.as??"blob",r=t.timeout??3e3,i=t.useProxy||"",o=t.errorTTL??8e3,a=t.headers||{},s=!!t.silent;if(/^data:/i.test(e))try{if(n==="text")return{ok:!0,data:String(e),status:200,url:e,fromCache:!1};if(n==="dataURL")return{ok:!0,data:String(e),status:200,url:e,fromCache:!1,mime:String(e).slice(5).split(";")[0]||""};let[,m="",y=""]=String(e).match(/^data:([^,]*),(.*)$/)||[],x=/;base64/i.test(m)?atob(y):decodeURIComponent(y),b=new Uint8Array([...x].map(E=>E.charCodeAt(0))),w=new Blob([b],{type:(m||"").split(";")[0]||""});return{ok:!0,data:w,status:200,url:e,fromCache:!1,mime:w.type||""}}catch{return{ok:!1,data:null,status:0,url:e,fromCache:!1,reason:"special_url_error"}}if(/^blob:/i.test(e))try{let m=await fetch(e);if(!m.ok)return{ok:!1,data:null,status:m.status,url:e,fromCache:!1,reason:"http_error"};let y=await m.blob(),x=y.type||m.headers.get("content-type")||"";return n==="dataURL"?{ok:!0,data:await An(y),status:m.status,url:e,fromCache:!1,mime:x}:n==="text"?{ok:!0,data:await y.text(),status:m.status,url:e,fromCache:!1,mime:x}:{ok:!0,data:y,status:m.status,url:e,fromCache:!1,mime:x}}catch{return{ok:!1,data:null,status:0,url:e,fromCache:!1,reason:"network"}}if(/^about:blank$/i.test(e))return n==="dataURL"?{ok:!0,data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==",status:200,url:e,fromCache:!1,mime:"image/png"}:{ok:!0,data:n==="text"?"":new Blob([]),status:200,url:e,fromCache:!1};let l=fi(e,{as:n,timeout:r,useProxy:i,errorTTL:o}),c=Te.get(l);if(c&&c.until>Date.now())return{...c.result,fromCache:!0};c&&Te.delete(l);let u=Xe.get(l);if(u)return u;let d=ui(e,i)?di(e,i):e,f=t.credentials;if(!f)try{let m=typeof location<"u"&&location.href?location.href:"http://localhost/",y=new URL(e,m);f=typeof location<"u"&&y.origin===location.origin?"include":"omit"}catch{f="omit"}let p=new AbortController,g=setTimeout(()=>p.abort("timeout"),r),h=(async()=>{try{let m=await fetch(d,{signal:p.signal,credentials:f,headers:a});if(!m.ok){let b={ok:!1,data:null,status:m.status,url:d,fromCache:!1,reason:"http_error"};if(o>0&&Te.set(l,{until:Date.now()+o,result:b}),!s){let w=`${m.status} ${m.statusText||""}`.trim();Tt.warnOnce(`http:${m.status}:${n}:${new URL(e,location?.href??"http://localhost/").origin}`,`HTTP error ${w} while fetching ${n} ${e}`)}return t.onError&&t.onError(b),b}if(n==="text")return{ok:!0,data:await m.text(),status:m.status,url:d,fromCache:!1};let y=await m.blob(),x=y.type||m.headers.get("content-type")||"";return n==="dataURL"?{ok:!0,data:await An(y),status:m.status,url:d,fromCache:!1,mime:x}:{ok:!0,data:y,status:m.status,url:d,fromCache:!1,mime:x}}catch(m){let y=m&&typeof m=="object"&&"name"in m&&m.name==="AbortError"?String(m.message||"").includes("timeout")?"timeout":"abort":"network",x={ok:!1,data:null,status:0,url:d,fromCache:!1,reason:y};if(!/^blob:/i.test(e)&&o>0&&Te.set(l,{until:Date.now()+o,result:x}),!s){let b=`${y}:${n}:${new URL(e,location?.href??"http://localhost/").origin}`,w=y==="timeout"?`Timeout after ${r}ms. Consider increasing timeout or using a proxy for ${e}`:y==="abort"?`Request aborted while fetching ${n} ${e}`:`Network/CORS issue while fetching ${n} ${e}. A proxy may be required`;Tt.errorOnce(b,w)}return t.onError&&t.onError(x),x}finally{clearTimeout(g),Xe.delete(l)}})();return Xe.set(l,h),h}var Tt,Xe,Te,ke=z(()=>{nt(),Tt=li("[snapDOM]",{ttlMs:3*6e4,maxEntries:10}),Xe=new Map,Te=new Map});async function Jn(e,t={}){if(/^((repeating-)?(linear|radial|conic)-gradient)\(/i.test(e)||e.trim()==="none")return e;let n=jt(e);if(!n)return e;let r=ai(n),i=et(r);if(C.background.has(i)){let o=C.background.get(i);return o?`url("${o}")`:"none"}try{let o=await G(i,{as:"dataURL",useProxy:t.useProxy});return o.ok?(C.background.set(i,o.data),`url("${o.data}")`):(C.background.set(i,null),"none")}catch{return C.background.set(i,null),"none"}}var mi=z(()=>{K(),nt(),ke()});function pi(e){if(e=String(e).toLowerCase(),Vt.has(e)){let o={};return C.defaultStyle.set(e,o),o}if(C.defaultStyle.has(e))return C.defaultStyle.get(e);let t=document.getElementById("snapdom-sandbox");t||(t=document.createElement("div"),t.id="snapdom-sandbox",t.setAttribute("data-snapdom-sandbox","true"),t.setAttribute("aria-hidden","true"),t.style.position="absolute",t.style.left="-9999px",t.style.top="-9999px",t.style.width="0px",t.style.height="0px",t.style.overflow="hidden",document.body.appendChild(t));let n=document.createElement(e);n.style.all="initial",t.appendChild(n);let r=getComputedStyle(n),i={};for(let o of r){if(zt(o))continue;let a=r.getPropertyValue(o);i[o]=a}return t.removeChild(n),C.defaultStyle.set(e,i),i}function zt(e){let t=String(e).toLowerCase();return!!(tr.has(t)||er.test(t)||Qn.test(t))}function Rt(e,t){if(t=String(t||"").toLowerCase(),Vt.has(t))return"";let n=[],r=pi(t),i=(e.display||"").toLowerCase()==="inline"||new Set(["span","small","em","strong","b","i","u","s","code","cite","mark","sub","sup"]).has(t);for(let[o,a]of Object.entries(e)){if(zt(o)||i&&(o==="width"||o==="min-width"||o==="max-width"))continue;let s=r[o];a&&a!==s&&n.push(`${o}:${a}`)}return n.sort(),n.join(";")}function hi(e){let t=new Set;return e.nodeType!==Node.ELEMENT_NODE&&e.nodeType!==Node.DOCUMENT_FRAGMENT_NODE?[]:(e.tagName&&t.add(e.tagName.toLowerCase()),typeof e.querySelectorAll=="function"&&e.querySelectorAll("*").forEach(n=>t.add(n.tagName.toLowerCase())),Array.from(t))}function gi(e){let t=new Map;for(let r of e){let i=C.defaultStyle.get(r);if(!i)continue;let o=Object.entries(i).map(([a,s])=>`${a}:${s};`).sort().join("");o&&(t.has(o)||t.set(o,[]),t.get(o).push(r))}let n="";for(let[r,i]of t.entries())n+=`${i.join(",")} { ${r} }
3
+ `;return n}function yi(e){let t=Array.from(new Set(e.values())).filter(Boolean).sort(),n=new Map,r=1;for(let i of t)n.set(i,`c${r++}`);return n}function wi(e){try{let t=e?.ownerDocument;if(!t)return typeof window<"u"?window:null;let n=t.defaultView;if(n&&typeof n.getComputedStyle=="function")return n;if(typeof window<"u"&&window.frames)for(let r=0;r<window.frames.length;r++)try{if(window.frames[r]?.document===t)return window.frames[r]}catch{}}catch{}return typeof window<"u"?window:null}function oe(e,t=null){let n=()=>{let o={length:0,getPropertyValue:()=>"",item:()=>""};return o[Symbol.iterator]=function*(){},o};if(!(e instanceof Element)){let o=typeof window<"u"?window:null;if(o&&typeof o.getComputedStyle=="function")try{return o.getComputedStyle(e,t)||n()}catch{return n()}return n()}let r=C.computedStyle.get(e);r||(r=new Map,C.computedStyle.set(e,r));let i=r.get(t);if(!i){let o=wi(e),a=null;try{a=o&&typeof o.getComputedStyle=="function"?o.getComputedStyle(e,t):null}catch{}if(!a&&typeof window<"u"&&typeof window.getComputedStyle=="function")try{e.ownerDocument===document&&(a=window.getComputedStyle(e,t))}catch{}i=a||n(),r.set(t,i)}return i}function $n(e){let t={};for(let n of e)t[n]=e.getPropertyValue(n);return t}function _t(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++){let o=e[i];o==="("&&n++,o===")"&&n--,o===","&&n===0&&(t.push(e.slice(r,i).trim()),r=i+1)}return t.push(e.slice(r).trim()),t}var Zn,Vt,bi,Qn,er,tr,nr=z(()=>{K(),Zn=new Set(["meta","script","noscript","title","link","template"]),Vt=new Set(["meta","link","style","title","noscript","script","template","g","defs","use","marker","mask","clipPath","pattern","path","polygon","polyline","line","circle","ellipse","rect","filter","lineargradient","radialgradient","stop"]),bi=["div","span","p","a","img","ul","li","button","input","select","textarea","label","section","article","header","footer","nav","main","aside","h1","h2","h3","h4","h5","h6","table","thead","tbody","tr","td","th"],Qn=/(?:^|-)(animation|transition)(?:-|$)/i,er=/^(--.+|view-timeline|scroll-timeline|animation-trigger|offset-|position-try|app-region|interactivity|overlay|view-transition|-webkit-locale|-webkit-user-(?:drag|modify)|-webkit-tap-highlight-color|-webkit-text-security)$/i,tr=new Set(["cursor","pointer-events","touch-action","user-select","print-color-adjust","speak","reading-flow","reading-order","anchor-name","anchor-scope","container-name","container-type","timeline-scope"])});function Se(e,{fast:t=!1}={}){if(t)return e();"requestIdleCallback"in window?requestIdleCallback(e,{timeout:50}):setTimeout(e,1)}function xi(){if(typeof navigator>"u")return!1;if(navigator.userAgentData)return navigator.userAgentData.platform==="iOS";let e=navigator.userAgent||"",t=/iPhone|iPad|iPod/.test(e),n=navigator.maxTouchPoints>2&&/Macintosh/.test(e);return t||n}function fe(){if(typeof navigator>"u")return!1;let e=navigator.userAgent||"",t=e.toLowerCase(),n=t.includes("safari")&&!t.includes("chrome")&&!t.includes("crios")&&!t.includes("fxios")&&!t.includes("android"),r=/applewebkit/i.test(e),i=/mobile/i.test(e),o=!/safari/i.test(e),a=r&&i&&o,s=/(micromessenger|wxwork|wecom|windowswechat|macwechat)/i.test(e),l=/(baiduboxapp|baidubrowser|baidusearch|baiduboxlite)/i.test(t),c=/ipad|iphone|ipod/.test(t)&&r;return n||a||s||l||c}function vi(){if(typeof navigator>"u")return!1;let e=(navigator.userAgent||"").toLowerCase();return e.includes("firefox")||e.includes("fxios")}var De=z(()=>{});function P(e,t,n){let r=e&&typeof e=="object"&&(e.options||e);r&&r.debug&&(n!==void 0?console.warn("[snapdom]",t,n):console.warn("[snapdom]",t))}var rr=z(()=>{}),J=z(()=>{mi(),nr(),De(),nt(),rr()}),or={};Fe(or,{toCanvas:()=>rt});function Si(e){return typeof e=="string"&&/^data:image\/svg\+xml/i.test(e)}function Ei(e){let t=e.indexOf(",");return t>=0?decodeURIComponent(e.slice(t+1)):""}function Ci(e){return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`}function ki(e){let t=[],n="",r=0;for(let i=0;i<e.length;i++){let o=e[i];o==="("&&r++,o===")"&&(r=Math.max(0,r-1)),o===";"&&r===0?(t.push(n),n=""):n+=o}return n.trim()&&t.push(n),t.map(i=>i.trim()).filter(Boolean)}function Mi(e){let t=[],n="",r=0;for(let o=0;o<e.length;o++){let a=e[o];a==="("&&r++,a===")"&&(r=Math.max(0,r-1)),a===","&&r===0?(t.push(n.trim()),n=""):n+=a}n.trim()&&t.push(n.trim());let i=[];for(let o of t){if(/\binset\b/i.test(o))continue;let a=o.match(/-?\d+(?:\.\d+)?px/gi)||[],[s="0px",l="0px",c="0px"]=a,u=o.replace(/-?\d+(?:\.\d+)?px/gi,"").replace(/\binset\b/ig,"").trim().replace(/\s{2,}/g," "),d=!!u&&u!==",";i.push(`drop-shadow(${s} ${l} ${c}${d?` ${u}`:""})`)}return i.join(" ")}function ir(e){let t=ki(e),n=null,r=null,i=null,o=[];for(let s of t){let l=s.indexOf(":");if(l<0)continue;let c=s.slice(0,l).trim().toLowerCase(),u=s.slice(l+1).trim();c==="box-shadow"?i=u:c==="filter"?n=u:c==="-webkit-filter"?r=u:o.push([c,u])}if(i){let s=Mi(i);s&&(n=n?`${n} ${s}`:s,r=r?`${r} ${s}`:s)}let a=[...o];return n&&a.push(["filter",n]),r&&a.push(["-webkit-filter",r]),a.map(([s,l])=>`${s}:${l}`).join(";")}function Ai(e){return e.replace(/([^{}]+)\{([^}]*)\}/g,(t,n,r)=>`${n}{${ir(r)}}`)}function $i(e){return e=e.replace(/<style[^>]*>([\s\S]*?)<\/style>/gi,(t,n)=>t.replace(n,Ai(n))),e=e.replace(/style=(['"])([\s\S]*?)\1/gi,(t,n,r)=>`style=${n}${ir(r)}${n}`),e}function Li(e){if(!fe()||!Si(e))return e;try{let t=Ei(e),n=$i(t);return Ci(n)}catch{return e}}async function rt(e,t){let{width:n,height:r,scale:i=1,dpr:o=1,meta:a={},backgroundColor:s}=t;e=Li(e);let l=new Image;l.loading="eager",l.decoding="sync",l.crossOrigin="anonymous",l.src=e,await l.decode();let c=l.naturalWidth,u=l.naturalHeight,d=Number.isFinite(a.w0)?a.w0:c,f=Number.isFinite(a.h0)?a.h0:u,p,g,h=Number.isFinite(n),m=Number.isFinite(r);if(h&&m)p=Math.max(1,n),g=Math.max(1,r);else if(h){let b=n/Math.max(1,d);p=n,g=f*b}else if(m){let b=r/Math.max(1,f);g=r,p=d*b}else p=c,g=u;p=p*i,g=g*i;let y=document.createElement("canvas");y.width=p*o,y.height=g*o,y.style.width=`${p}px`,y.style.height=`${g}px`;let x=y.getContext("2d");return o!==1&&x.scale(o,o),s&&(x.save(),x.fillStyle=s,x.fillRect(0,0,p,g),x.restore()),x.drawImage(l,0,0,p,g),y}var ot=z(()=>{De()}),Ge={};Fe(Ge,{rasterize:()=>ar});async function ar(e,t){let n=await rt(e,t),r=new Image;return r.src=n.toDataURL(`image/${t.format}`,t.quality),await r.decode(),r.style.width=`${n.width/t.dpr}px`,r.style.height=`${n.height/t.dpr}px`,r}var Ke=z(()=>{ot()}),Pt={};Fe(Pt,{toImg:()=>Ln,toSvg:()=>Ln});async function Ln(e,t){let{scale:n=1,width:r,height:i,meta:o={}}=t,a=Number.isFinite(r),s=Number.isFinite(i),l=Number.isFinite(n)&&n!==1||a||s;if(fe()&&l)return await ar(e,{...t,format:"png",quality:1,meta:o});let c=new Image;if(c.decoding="sync",c.loading="eager",c.src=e,await c.decode(),a&&s)c.style.width=`${r}px`,c.style.height=`${i}px`;else if(a){let u=Number.isFinite(o.w0)?o.w0:c.naturalWidth,d=Number.isFinite(o.h0)?o.h0:c.naturalHeight,f=r/Math.max(1,u);c.style.width=`${r}px`,c.style.height=`${Math.round(d*f)}px`}else if(s){let u=Number.isFinite(o.w0)?o.w0:c.naturalWidth,d=Number.isFinite(o.h0)?o.h0:c.naturalHeight,f=i/Math.max(1,d);c.style.height=`${i}px`,c.style.width=`${Math.round(u*f)}px`}else{let u=Math.round(c.naturalWidth*n),d=Math.round(c.naturalHeight*n);if(c.style.width=`${u}px`,c.style.height=`${d}px`,typeof e=="string"&&e.startsWith("data:image/svg+xml"))try{let f=decodeURIComponent(e.split(",")[1]).replace(/width="[^"]*"/,`width="${u}"`).replace(/height="[^"]*"/,`height="${d}"`);e=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(f)}`,c.src=e}catch(f){P(t,"SVG width/height patch in toImg failed",f)}}return c}var Nn=z(()=>{J(),Ke()}),lr={};Fe(lr,{toBlob:()=>sr});async function sr(e,t){let n=t.type;if(n==="svg"){let i=decodeURIComponent(e.split(",")[1]);return new Blob([i],{type:"image/svg+xml"})}let r=await rt(e,t);return new Promise(i=>r.toBlob(o=>i(o),`image/${n}`,t.quality))}var cr=z(()=>{ot()}),ur={};Fe(ur,{download:()=>Ni});async function Tn(e,t){let n=new File([e],t,{type:e.type});if(!navigator.canShare?.({files:[n]}))return!1;try{await navigator.share({files:[n],title:t})}catch(r){if(r.name!=="AbortError")return!1}return!0}async function Ni(e,t){let n=(t?.format||t?.type||"").toLowerCase(),r=n==="jpg"?"jpeg":n||"png",i=t?.filename||`snapdom.${r}`,o={...t||{},format:r,type:r};o.dpr=1;let a=xi();if(r==="svg"){let c=await sr(e,{...o,type:"svg"});if(a&&await Tn(c,i))return;let u=URL.createObjectURL(c),d=document.createElement("a");d.href=u,d.download=i,document.body.appendChild(d),d.click(),URL.revokeObjectURL(u),d.remove();return}let s=await rt(e,o);if(a){let c=`image/${r}`,u=await new Promise(d=>s.toBlob(d,c,t?.quality));if(u&&await Tn(u,i))return}let l=document.createElement("a");l.href=s.toDataURL(`image/${r}`,t?.quality),l.download=i,document.body.appendChild(l),l.click(),l.remove()}var Ti=z(()=>{cr(),ot(),De()});J();J();K();var Rn=new WeakMap,Ft=new Map,Dt=0;function Re(){Dt++}var _n=!1;function Ri(e=document.documentElement){if(!_n){_n=!0;try{new MutationObserver(()=>Re()).observe(e,{subtree:!0,childList:!0,characterData:!0,attributes:!0})}catch{}try{new MutationObserver(()=>Re()).observe(document.head,{subtree:!0,childList:!0,characterData:!0,attributes:!0})}catch{}try{let t=document.fonts;t&&(t.addEventListener?.("loadingdone",Re),t.ready?.then(()=>Re()).catch(()=>{}))}catch{}}}function _i(e,t={}){let n={},r=e.getPropertyValue("visibility"),i=t.excludeStyleProps;for(let d=0;d<e.length;d++){let f=e[d];if(zt(f)||i&&(i instanceof RegExp&&i.test(f)||typeof i=="function"&&i(f)))continue;let p=e.getPropertyValue(f);(f==="background-image"||f==="content")&&p.includes("url(")&&!p.includes("data:")&&(p="none"),n[f]=p}let o=["text-decoration-line","text-decoration-color","text-decoration-style","text-decoration-thickness","text-underline-offset","text-decoration-skip-ink"];for(let d of o)if(!n[d])try{let f=e.getPropertyValue(d);f&&(n[d]=f)}catch{}let a=["-webkit-text-stroke","-webkit-text-stroke-width","-webkit-text-stroke-color","paint-order"];for(let d of a)if(!n[d])try{let f=e.getPropertyValue(d);f&&(n[d]=f)}catch{}if(t.embedFonts){let d=["font-feature-settings","font-variation-settings","font-kerning","font-variant","font-variant-ligatures","font-optical-sizing"];for(let f of d)if(!n[f])try{let p=e.getPropertyValue(f);p&&(n[f]=p)}catch{}}r==="hidden"&&(n.opacity="0");let s=parseFloat(e.getPropertyValue("border-top-width")||0)||0,l=parseFloat(e.getPropertyValue("border-right-width")||0)||0,c=parseFloat(e.getPropertyValue("border-bottom-width")||0)||0,u=parseFloat(e.getPropertyValue("border-left-width")||0)||0;if(s===0&&l===0&&c===0&&u===0){let d=(e.getPropertyValue("border-image-source")||"").trim(),f=d&&d!=="none",p=["border","border-top","border-right","border-bottom","border-left","border-width","border-style","border-color","border-top-width","border-top-style","border-top-color","border-right-width","border-right-style","border-right-color","border-bottom-width","border-bottom-style","border-bottom-color","border-left-width","border-left-style","border-left-color","border-block","border-block-width","border-block-style","border-block-color","border-inline","border-inline-width","border-inline-style","border-inline-color"];for(let g of p)delete n[g];f||(n.border="none")}return n}var Pn=new WeakMap;function Pi(e){let t=Pn.get(e);return t||(t=Object.entries(e).sort((n,r)=>n[0]<r[0]?-1:n[0]>r[0]?1:0).map(([n,r])=>`${n}:${r}`).join(";"),Pn.set(e,t),t)}function Fi(e,t=null,n={}){let r=Rn.get(e);if(r&&r.epoch===Dt)return r.snapshot;let i=t||getComputedStyle(e),o=_i(i,n);return Ui(e,i,o),Rn.set(e,{epoch:Dt,snapshot:o}),o}function Di(e,t){return e&&e.session&&e.persist?e:e&&(e.styleMap||e.styleCache||e.nodeMap)?{session:e,persist:{snapshotKeyCache:Ft,defaultStyle:C.defaultStyle,baseStyle:C.baseStyle,image:C.image,resource:C.resource,background:C.background,font:C.font},options:t||{}}:{session:C.session,persist:{snapshotKeyCache:Ft,defaultStyle:C.defaultStyle,baseStyle:C.baseStyle,image:C.image,resource:C.resource,background:C.background,font:C.font},options:e||t||{}}}function Ii(e,t,n){if(!(!e.style||e.style.length===0))for(let r=0;r<e.style.length;r++){let i=e.style[r],o=n.getPropertyValue(i);o&&t.style.setProperty(i,o)}}async function Ee(e,t,n,r){if(e.tagName==="STYLE")return;let i=Di(n,r),o=i.options&&i.options.cache||"auto";o!=="disabled"&&Ri(document.documentElement),o==="disabled"&&!i.session.__bumpedForDisabled&&(Re(),Ft.clear(),i.session.__bumpedForDisabled=!0);let{session:a,persist:s}=i;a.styleCache.has(e)||a.styleCache.set(e,getComputedStyle(e));let l=a.styleCache.get(e);e.getAttribute?.("style")&&Ii(e,t,l);let c=Fi(e,l,i.options),u=Pi(c),d=s.snapshotKeyCache.get(u);if(!d){let f=e.tagName?.toLowerCase()||"div";d=Rt(c,f),s.snapshotKeyCache.set(u,d)}a.styleMap.set(t,d)}function Oi(e){return e instanceof HTMLImageElement||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement||e instanceof HTMLIFrameElement||e instanceof SVGElement||e instanceof HTMLObjectElement||e instanceof HTMLEmbedElement}function Hi(e){return e.backgroundImage&&e.backgroundImage!=="none"||e.backgroundColor&&e.backgroundColor!=="rgba(0, 0, 0, 0)"&&e.backgroundColor!=="transparent"||(parseFloat(e.borderTopWidth)||0)>0||(parseFloat(e.borderBottomWidth)||0)>0||(parseFloat(e.paddingTop)||0)>0||(parseFloat(e.paddingBottom)||0)>0?!0:(e.overflowBlock||e.overflowY||"visible")!=="visible"}function Wi(e){let t=e.parentElement;if(!t)return!1;let n=getComputedStyle(t).display||"";return n.includes("flex")||n.includes("grid")}function Bi(e,t){if(e.textContent&&/\S/.test(e.textContent))return!0;let n=e.firstElementChild,r=e.lastElementChild;if(n&&n.tagName==="BR"||r&&r.tagName==="BR")return!0;let i=e.scrollHeight;if(i===0)return!1;let o=parseFloat(t.paddingTop)||0,a=parseFloat(t.paddingBottom)||0;return i>o+a}function Ui(e,t,n){if(e instanceof HTMLElement&&e.style&&e.style.height)return;let r=e.tagName&&e.tagName.toLowerCase();if(!r||!["div","section","article","main","aside","header","footer","nav"].includes(r))return;let i=parseFloat(t.height);if(Number.isFinite(i)&&e.scrollHeight>0&&Math.abs(i-e.scrollHeight)>2||t.aspectRatio&&t.aspectRatio!=="none"&&t.aspectRatio!=="auto")return;let o=t.display||"";if(o.includes("flex")||o.includes("grid")||Oi(e))return;let a=t.position;if(a==="absolute"||a==="fixed"||a==="sticky"||t.transform!=="none"||Hi(t)||Wi(e))return;let s=t.overflowX||t.overflow||"visible",l=t.overflowY||t.overflow||"visible";if(s!=="visible"||l!=="visible")return;let c=t.clip;c&&c!=="auto"&&c!=="rect(auto, auto, auto, auto)"||t.visibility==="hidden"||t.opacity==="0"||Bi(e,t)&&(delete n.height,delete n["block-size"])}nr();var dr=["fill","stroke","color","background-color","stop-color"],Fn=new Map;function qi(e,t){let n=t+"::"+e.toLowerCase(),r=Fn.get(n);if(r)return r;let i=document,o=t==="http://www.w3.org/2000/svg"?i.createElementNS(t,e):i.createElement(e),a=i.createElement("div");a.style.cssText="position:absolute;left:-99999px;top:-99999px;contain:strict;display:block;",a.appendChild(o),i.documentElement.appendChild(a);let s=getComputedStyle(o),l={};for(let c of dr)l[c]=s.getPropertyValue(c)||"";return a.remove(),Fn.set(n,l),l}function ji(e,t){if(!(e instanceof Element)||!(t instanceof Element))return;let n=e.getAttribute?.("style"),r=!!(n&&n.includes("var("));if(!r&&e.attributes?.length){let o=e.attributes;for(let a=0;a<o.length;a++){let s=o[a];if(s&&typeof s.value=="string"&&s.value.includes("var(")){r=!0;break}}}let i=null;if(r)try{i=getComputedStyle(e)}catch{}if(r){let o=e.style;if(o&&o.length)for(let a=0;a<o.length;a++){let s=o[a],l=o.getPropertyValue(s);if(!l||!l.includes("var("))continue;let c=i&&i.getPropertyValue(s);if(c)try{t.style.setProperty(s,c.trim(),o.getPropertyPriority(s))}catch{}}}if(r&&e.attributes?.length){let o=e.attributes;for(let a=0;a<o.length;a++){let s=o[a];if(!s||typeof s.value!="string"||!s.value.includes("var("))continue;let l=s.name,c=i&&i.getPropertyValue(l);if(c)try{t.style.setProperty(l,c.trim())}catch{}}}if(!r){if(!i)try{i=getComputedStyle(e)}catch{i=null}if(!i)return;let o=e.namespaceURI||"html",a=qi(e.tagName,o);for(let s of dr){let l=i.getPropertyValue(s)||"",c=a[s]||"";if(l&&l!==c)try{t.style.setProperty(s,l.trim())}catch{}}}}J();J();K();ke();function Lt(e,t,n){return Promise.all(e.map(r=>new Promise(i=>{function o(){Se(a=>{!(a&&typeof a.timeRemaining=="function")||a.timeRemaining()>0?t(r,i):o()},{fast:n})}o()})))}function zi(e){return e=e.trim(),!e||/:not\(\s*\[data-sd-slotted\]\s*\)\s*$/.test(e)?e:`${e}:not([data-sd-slotted])`}function Vi(e,t,n=!0){return e.split(",").map(r=>r.trim()).filter(Boolean).map(r=>{if(r.startsWith(":where(")||r.startsWith("@"))return r;let i=n?zi(r):r;return`:where(${t} ${i})`}).join(", ")}function Yi(e,t){return e?(e=e.replace(/:host\(([^)]+)\)/g,(n,r)=>`:where(${t}:is(${r.trim()}))`),e=e.replace(/:host\b/g,`:where(${t})`),e=e.replace(/:host-context\(([^)]+)\)/g,(n,r)=>`:where(:where(${r.trim()}) ${t})`),e=e.replace(/::slotted\(([^)]+)\)/g,(n,r)=>`:where(${t} ${r.trim()})`),e=e.replace(/(^|})(\s*)([^@}{]+){/g,(n,r,i,o)=>{let a=Vi(o,t,!0);return`${r}${i}${a}{`}),e):""}function Xi(e){return e.shadowScopeSeq=(e.shadowScopeSeq||0)+1,`s${e.shadowScopeSeq}`}function Gi(e){let t="";try{e.querySelectorAll("style").forEach(r=>{t+=(r.textContent||"")+`
4
4
  `});let n=e.adoptedStyleSheets||[];for(let r of n)try{if(r&&r.cssRules)for(let i of r.cssRules)t+=i.cssText+`
5
- `}catch{}}catch{}return t}function Ha(e,t,n){if(!t)return;let r=document.createElement("style");r.setAttribute("data-sd",n),r.textContent=t,e.insertBefore(r,e.firstChild||null)}function Wa(e,t){try{let n=e.currentSrc||e.src||"";if(!n)return;t.setAttribute("src",n),t.removeAttribute("srcset"),t.removeAttribute("sizes"),t.loading="eager",t.decoding="sync"}catch{}}function Ba(e){let t=new Set;if(!e)return t;let n=/var\(\s*(--[A-Za-z0-9_-]+)\b/g,r;for(;r=n.exec(e);)t.add(r[1]);return t}function Ua(e,t){try{let n=getComputedStyle(e).getPropertyValue(t).trim();if(n)return n}catch{}try{let n=getComputedStyle(document.documentElement).getPropertyValue(t).trim();if(n)return n}catch{}return""}function qa(e,t,n){let r=[];for(let i of t){let o=Ua(e,i);o&&r.push(`${i}: ${o};`)}return r.length?`${n}{${r.join("")}}
6
- `:""}function ja(e){e&&(e.nodeType===Node.ELEMENT_NODE&&e.setAttribute("data-sd-slotted",""),e.querySelectorAll&&e.querySelectorAll("*").forEach(t=>t.setAttribute("data-sd-slotted","")))}async function za(e,t=3){let n=()=>{try{return e.contentDocument||e.contentWindow?.document||null}catch{return null}},r=n(),i=0;for(;i<t&&(!r||!r.body&&!r.documentElement);)await new Promise(o=>setTimeout(o,0)),r=n(),i++;return r&&(r.body||r.documentElement)?r:null}function Va(e){let t=e.getBoundingClientRect(),n=0,r=0,i=0,o=0;try{let l=getComputedStyle(e);n=parseFloat(l.borderLeftWidth)||0,r=parseFloat(l.borderRightWidth)||0,i=parseFloat(l.borderTopWidth)||0,o=parseFloat(l.borderBottomWidth)||0}catch{}let a=Math.max(0,Math.round(t.width-(n+r))),s=Math.max(0,Math.round(t.height-(i+o)));return{contentWidth:a,contentHeight:s,rect:t}}function me(e){let t=0,n=0;if(e.offsetWidth>0&&(t=e.offsetWidth),e.offsetHeight>0&&(n=e.offsetHeight),t===0||n===0)try{let r=getComputedStyle(e);if(t===0){let i=parseFloat(r.width);!isNaN(i)&&i>0&&(t=i)}if(n===0){let i=parseFloat(r.height);!isNaN(i)&&i>0&&(n=i)}}catch{}if(t===0||n===0)try{if(t===0){let r=parseFloat(e.getAttribute("width"));!isNaN(r)&&r>0&&(t=r)}if(n===0){let r=parseFloat(e.getAttribute("height"));!isNaN(r)&&r>0&&(n=r)}}catch{}if((t===0||n===0)&&(e.naturalWidth||e.naturalHeight))try{t===0&&e.naturalWidth>0&&(t=e.naturalWidth),n===0&&e.naturalHeight>0&&(n=e.naturalHeight)}catch{}return{width:t,height:n}}function Ya(e,t,n){let r=e.createElement("style");return r.setAttribute("data-sd-iframe-pin",""),r.textContent=`html, body {margin: 0 !important;padding: 0 !important;width: ${t}px !important;height: ${n}px !important;min-width: ${t}px !important;min-height: ${n}px !important;box-sizing: border-box !important;overflow: hidden !important;background-clip: border-box !important;}`,(e.head||e.documentElement).appendChild(r),()=>{try{r.remove()}catch{}}}async function Xa(e,t,n){let r=await za(e,3);if(!r)throw new Error("iframe document not accessible/ready");let{contentWidth:i,contentHeight:o,rect:a}=Va(e),s=n?.snap;if(!s&&typeof window<"u"&&window.snapdom&&(s=window.snapdom),!s||typeof s.toPng!="function")throw new Error("[snapdom] iframe capture requires snapdom.toPng. Use snapdom(el) or pass options.snap. With ESM, assign window.snapdom = snapdom after import if using iframes.");let l={...n,scale:1},c=Ya(r,i,o),u;try{u=await s.toPng(r.documentElement,l)}finally{c()}u.style.display="block",u.style.width=`${i}px`,u.style.height=`${o}px`;let d=document.createElement("div");return t.nodeMap.set(d,e),We(e,d,t,n),d.style.overflow="hidden",d.style.display="block",d.style.width||(d.style.width=`${Math.round(a.width)}px`),d.style.height||(d.style.height=`${Math.round(a.height)}px`),d.appendChild(u),d}function Ga(e){let{width:t,height:n}=me(e),r=e.getBoundingClientRect(),i;try{i=window.getComputedStyle(e)}catch{}let o=i?parseFloat(i.width):NaN,a=i?parseFloat(i.height):NaN,s=Math.round(t||r.width||0),l=Math.round(n||r.height||0),c=Number.isFinite(o)&&o>0?Math.round(o):Math.max(12,s||16),u=Number.isFinite(a)&&a>0?Math.round(a):Math.max(12,l||16),d=(e.type||"text").toLowerCase()==="checkbox",f=!!e.checked,p=!!e.indeterminate,g=Math.max(Math.min(c,u),12),h=document.createElement("div");h.setAttribute("data-snapdom-input-replacement",e.type||"checkbox"),h.style.cssText=`display:inline-block;width:${g}px;height:${g}px;vertical-align:middle;flex-shrink:0;line-height:0;`;let m=document.createElementNS("http://www.w3.org/2000/svg","svg");m.setAttribute("width",String(g)),m.setAttribute("height",String(g)),m.setAttribute("viewBox",`0 0 ${g} ${g}`),h.appendChild(m);function y(){let x="#0a6ed1";try{i&&(x=i.accentColor||i.color||x)}catch{}let b=2,w=b/2,E=g-b;if(m.innerHTML="",d){let S=document.createElementNS("http://www.w3.org/2000/svg","rect");if(S.setAttribute("x",String(w)),S.setAttribute("y",String(w)),S.setAttribute("width",String(E)),S.setAttribute("height",String(E)),S.setAttribute("rx","2"),S.setAttribute("ry","2"),S.setAttribute("fill",f?x:"none"),S.setAttribute("stroke",x),S.setAttribute("stroke-width",String(b)),m.appendChild(S),f){let v=document.createElementNS("http://www.w3.org/2000/svg","path");v.setAttribute("d",`M ${w+2} ${g/2} L ${g/2-1} ${g-w-2} L ${g-w-2} ${w+2}`),v.setAttribute("stroke","white"),v.setAttribute("stroke-width",String(Math.max(1.5,b))),v.setAttribute("fill","none"),v.setAttribute("stroke-linecap","round"),v.setAttribute("stroke-linejoin","round"),m.appendChild(v)}else if(p){let v=document.createElementNS("http://www.w3.org/2000/svg","rect"),k=Math.max(6,E-4);v.setAttribute("x",String((g-k)/2)),v.setAttribute("y",String((g-b)/2)),v.setAttribute("width",String(k)),v.setAttribute("height",String(b)),v.setAttribute("fill",x),v.setAttribute("rx","1"),m.appendChild(v)}}else{let S=document.createElementNS("http://www.w3.org/2000/svg","circle");if(S.setAttribute("cx",String(g/2)),S.setAttribute("cy",String(g/2)),S.setAttribute("r",String((g-b)/2)),S.setAttribute("fill",f?x:"none"),S.setAttribute("stroke",x),S.setAttribute("stroke-width",String(b)),m.appendChild(S),f){let v=document.createElementNS("http://www.w3.org/2000/svg","circle"),k=Math.max(2,(g-b*2)*.35);v.setAttribute("cx",String(g/2)),v.setAttribute("cy",String(g/2)),v.setAttribute("r",String(k)),v.setAttribute("fill","white"),m.appendChild(v)}}h.style.setProperty("width",`${g}px`,"important"),h.style.setProperty("height",`${g}px`,"important"),h.style.setProperty("min-width",`${g}px`,"important"),h.style.setProperty("min-height",`${g}px`,"important")}return y(),{el:h,applyVisual:y}}var Ke=new te(80);async function et(e){if(C.resource?.has(e))return C.resource.get(e);if(Ke.has(e))return Ke.get(e);let t=(async()=>{let n=await ne(e,{as:"dataURL",silent:!0});if(!n.ok||typeof n.data!="string")throw new Error(`[snapDOM] Failed to read blob URL: ${e}`);return C.resource?.set(e,n.data),n.data})();Ke.set(e,t);try{let n=await t;return Ke.set(e,n),n}catch(n){throw Ke.delete(e),n}}var Ja=/\bblob:[^)"'\s]+/g;async function br(e){if(!e||e.indexOf("blob:")===-1)return e;let t=Array.from(new Set(e.match(Ja)||[]));if(t.length===0)return e;let n=e;for(let r of t)try{let i=await et(r);n=n.split(r).join(i)}catch{}return n}function yt(e){return typeof e=="string"&&e.startsWith("blob:")}function Ka(e){return(e||"").split(",").map(t=>t.trim()).filter(Boolean).map(t=>{let n=t.match(/^(\S+)(\s+.+)?$/);return n?{url:n[1],desc:n[2]||""}:null}).filter(Boolean)}function Za(e){return e.map(t=>t.desc?`${t.url} ${t.desc.trim()}`:t.url).join(", ")}async function Qa(e,t=null){if(!e)return;let n=t,r=e.querySelectorAll?e.querySelectorAll("img"):[];for(let l of r)try{let c=l.getAttribute("src")||l.currentSrc||"";if(yt(c)){let d=await et(c);l.setAttribute("src",d)}let u=l.getAttribute("srcset");if(u&&u.includes("blob:")){let d=Ka(u),f=!1;for(let p of d)if(yt(p.url))try{p.url=await et(p.url),f=!0}catch(g){F(n,"blobUrlToDataUrl for srcset item failed",g)}f&&l.setAttribute("srcset",Za(d))}}catch(c){F(n,"resolveBlobUrls for img failed",c)}let i=e.querySelectorAll?e.querySelectorAll("image"):[];for(let l of i)try{let c="http://www.w3.org/1999/xlink",u=l.getAttribute("href")||l.getAttributeNS?.(c,"href");if(yt(u)){let d=await et(u);l.setAttribute("href",d),l.removeAttributeNS?.(c,"href")}}catch(c){F(n,"resolveBlobUrls for SVG image href failed",c)}let o=e.querySelectorAll?e.querySelectorAll("[style*='blob:']"):[];for(let l of o)try{let c=l.getAttribute("style");if(c&&c.includes("blob:")){let u=await br(c);l.setAttribute("style",u)}}catch(c){F(n,"replaceBlobUrls in inline style failed",c)}let a=e.querySelectorAll?e.querySelectorAll("style"):[];for(let l of a)try{let c=l.textContent||"";c.includes("blob:")&&(l.textContent=await br(c))}catch(c){F(n,"replaceBlobUrls in style tag failed",c)}let s=["poster"];for(let l of s){let c=e.querySelectorAll?e.querySelectorAll(`[${l}^='blob:']`):[];for(let u of c)try{let d=u.getAttribute(l);yt(d)&&u.setAttribute(l,await et(d))}catch(d){F(n,`resolveBlobUrls for ${l} failed`,d)}}}rt();async function vt(e,t,n){if(!e)throw new Error("Invalid node");let r=new Set,i=null,o=null;if(e.nodeType===Node.ELEMENT_NODE){let u=(e.localName||e.tagName||"").toLowerCase();if(e.id==="snapdom-sandbox"||e.hasAttribute("data-snapdom-sandbox")||Fr.has(u))return null}if(e.nodeType===Node.TEXT_NODE||e.nodeType!==Node.ELEMENT_NODE)return e.cloneNode(!0);if(e.getAttribute("data-capture")==="exclude"){if(n.excludeMode==="hide"){let u=document.createElement("div"),{width:d,height:f}=me(e),p=d||e.getBoundingClientRect().width||0,g=f||e.getBoundingClientRect().height||0;return u.style.cssText=`display:inline-block;width:${p}px;height:${g}px;visibility:hidden;`,u}else if(n.excludeMode==="remove")return null}if(n.exclude&&Array.isArray(n.exclude))for(let u of n.exclude)try{if(e.matches?.(u)){if(n.excludeMode==="hide"){let d=document.createElement("div"),{width:f,height:p}=me(e),g=f||e.getBoundingClientRect().width||0,h=p||e.getBoundingClientRect().height||0;return d.style.cssText=`display:inline-block;width:${g}px;height:${h}px;visibility:hidden;`,d}else if(n.excludeMode==="remove")return null}}catch(d){console.warn(`Invalid selector in exclude option: ${u}`,d)}if(typeof n.filter=="function")try{if(!n.filter(e)){if(n.filterMode==="hide"){let u=document.createElement("div"),{width:d,height:f}=me(e),p=d||e.getBoundingClientRect().width||0,g=f||e.getBoundingClientRect().height||0;return u.style.cssText=`display:inline-block;width:${p}px;height:${g}px;visibility:hidden;`,u}else if(n.filterMode==="remove")return null}}catch(u){console.warn("Error in filter function:",u)}if(e.tagName==="IFRAME"){let u=!1;try{u=!!(e.contentDocument||e.contentWindow?.document)}catch(d){F(t,"iframe same-origin probe failed",d)}if(u)try{return await Xa(e,t,n)}catch(d){console.warn("[SnapDOM] iframe rasterization failed, fallback:",d)}if(n.placeholders){let{width:d,height:f}=me(e),p=document.createElement("div");return p.style.cssText=`width:${d}px;height:${f}px;background-image:repeating-linear-gradient(45deg,#ddd,#ddd 5px,#f9f9f9 5px,#f9f9f9 10px);display:flex;align-items:center;justify-content:center;font-size:12px;color:#555;border:1px solid #aaa;`,We(e,p,t,n),p}else{let{width:d,height:f}=me(e),p=document.createElement("div");return p.style.cssText=`display:inline-block;width:${d}px;height:${f}px;visibility:hidden;`,We(e,p,t,n),p}}if(e.getAttribute("data-capture")==="placeholder"){let u=e.cloneNode(!1);t.nodeMap.set(u,e),We(e,u,t,n);let d=document.createElement("div");return d.textContent=e.getAttribute("data-placeholder-text")||"",d.style.cssText="color:#666;font-size:12px;text-align:center;line-height:1.4;padding:0.5em;box-sizing:border-box;",u.appendChild(d),u}if(e.tagName==="CANVAS"){let u="";try{let g=e.getContext("2d",{willReadFrequently:!0});try{g&&g.getImageData(0,0,1,1)}catch{}if(await new Promise(h=>requestAnimationFrame(h)),u=e.toDataURL("image/png"),!u||u==="data:,"){try{g&&g.getImageData(0,0,1,1)}catch{}if(await new Promise(h=>requestAnimationFrame(h)),u=e.toDataURL("image/png"),!u||u==="data:,"){let h=document.createElement("canvas");h.width=e.width,h.height=e.height;let m=h.getContext("2d");m&&(m.drawImage(e,0,0),u=h.toDataURL("image/png"))}}}catch(g){F(t,"Canvas toDataURL failed, using empty/fallback",g)}let d=document.createElement("img");try{d.decoding="sync",d.loading="eager"}catch(g){F(t,"img decoding/loading hints failed",g)}u&&(d.src=u),d.width=e.width,d.height=e.height;let{width:f,height:p}=me(e);return f>0&&(d.style.width=`${f}px`),p>0&&(d.style.height=`${p}px`),t.nodeMap.set(d,e),We(e,d,t,n),d}let a;try{if(a=e.cloneNode(!1),_a(e,a),t.nodeMap.set(a,e),e.tagName==="IMG"){Wa(e,a);try{let{width:u,height:d}=me(e),f=Math.round(u||0),p=Math.round(d||0);f&&(a.dataset.snapdomWidth=String(f)),p&&(a.dataset.snapdomHeight=String(p))}catch(u){F(t,"getUnscaledDimensions for IMG failed",u)}try{let u=e.getAttribute("style")||"",d=window.getComputedStyle(e),f=y=>{let x=u.match(new RegExp(`${y}\\s*:\\s*([^;]+)`,"i")),b=x?x[1].trim():d.getPropertyValue(y);return/%|auto/i.test(String(b||""))},p=parseInt(a.dataset.snapdomWidth||"0",10),g=parseInt(a.dataset.snapdomHeight||"0",10),h=f("width")||!p,m=f("height")||!g;h&&p&&(a.style.width=`${p}px`),m&&g&&(a.style.height=`${g}px`),p&&(a.style.minWidth=`${p}px`),g&&(a.style.minHeight=`${g}px`)}catch(u){F(t,"IMG dimension freeze failed",u)}}}catch(u){throw console.error("[Snapdom] Failed to clone node:",e,u),u}let s=null;if(e instanceof HTMLTextAreaElement){let{width:u,height:d}=me(e),f=u||e.getBoundingClientRect().width||0,p=d||e.getBoundingClientRect().height||0;f&&(a.style.width=`${f}px`),p&&(a.style.height=`${p}px`)}if(e instanceof HTMLInputElement){let u=(e.type||"text").toLowerCase();if((u==="checkbox"||u==="radio")&&ua()){let{el:d,applyVisual:f}=Ga(e);t.nodeMap.set(d,e),s=f,a=d}else a.value=e.value,a.setAttribute("value",e.value),e.checked!==void 0&&(a.checked=e.checked,e.checked&&a.setAttribute("checked",""),e.indeterminate&&(a.indeterminate=e.indeterminate))}if(e instanceof HTMLSelectElement&&(i=e.value),e instanceof HTMLTextAreaElement&&(o=e.value),We(e,a,t,n),s&&s(),e.shadowRoot){let u=function(b,w){if(b.nodeType===Node.ELEMENT_NODE&&b.tagName==="STYLE")return w(null);vt(b,t,n).then(E=>{w(E||null)}).catch(()=>{w(null)})};try{let b=e.shadowRoot.querySelectorAll("slot");for(let w of b){let E=[];try{E=w.assignedNodes?.({flatten:!0})||w.assignedNodes?.()||[]}catch{E=w.assignedNodes?.()||[]}for(let S of E)r.add(S)}}catch{}let d=Da(t),f=`[data-sd="${d}"]`;try{a.setAttribute("data-sd",d)}catch{}let p=Oa(e.shadowRoot),g=Ia(p,f),h=Ba(p),m=qa(e,h,f);Ha(a,m+g,d);let y=document.createDocumentFragment(),x=await ln(Array.from(e.shadowRoot.childNodes),u,n.fast);y.append(...x.filter(b=>!!b)),a.appendChild(y)}if(e.tagName==="SLOT"){let u=function(h,m){vt(h,t,n).then(y=>{y&&ja(y),m(y||null)}).catch(()=>{m(null)})},d=e.assignedNodes?.({flatten:!0})||[],f=d.length>0?d:Array.from(e.childNodes),p=document.createDocumentFragment(),g=await ln(Array.from(f),u,n.fast);return p.append(...g.filter(h=>!!h)),p}function l(u,d){if(r.has(u))return d(null);vt(u,t,n).then(f=>{d(f||null)}).catch(()=>{d(null)})}let c=await ln(Array.from(e.childNodes),l,n.fast);if(a.append(...c.filter(u=>!!u)),i!==null&&a instanceof HTMLSelectElement){a.value=i;for(let u of a.options)u.value===i?u.setAttribute("selected",""):u.removeAttribute("selected")}return o!==null&&a instanceof HTMLTextAreaElement&&(a.textContent=o),a}ie();Mt();re();var el=[/font\s*awesome/i,/material\s*icons/i,/ionicons/i,/glyphicons/i,/feather/i,/bootstrap\s*icons/i,/remix\s*icons/i,/heroicons/i,/layui/i,/lucide/i],De=Object.assign({materialIconsFilled:"https://fonts.gstatic.com/s/materialicons/v48/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2",materialIconsOutlined:"https://fonts.gstatic.com/s/materialiconsoutlined/v110/gok-H7zzDkdnRel8-DQ6KAXJ69wP1tGnf4ZGhUcel5euIg.woff2",materialIconsRound:"https://fonts.gstatic.com/s/materialiconsround/v109/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmPq_HTTw.woff2",materialIconsSharp:"https://fonts.gstatic.com/s/materialiconssharp/v110/oPWQ_lt5nv4pWNJpghLP75WiFR4kLh3kvmvRImcycg.woff2"},typeof window<"u"&&window.__SNAPDOM_ICON_FONTS__||{}),hn=[];function tl(e){let t=Array.isArray(e)?e:[e];for(let n of t)n instanceof RegExp?hn.push(n):typeof n=="string"?hn.push(new RegExp(n,"i")):console.warn("[snapdom] Ignored invalid iconFont value:",n)}function pe(e){let t=typeof e=="string"?e:"",n=[...el,...hn];for(let r of n)if(r instanceof RegExp&&r.test(t))return!0;return!!(/icon/i.test(t)||/glyph/i.test(t)||/symbols/i.test(t)||/feather/i.test(t)||/fontawesome/i.test(t))}function nl(e=""){let t=String(e).toLowerCase();return/\bmaterial\s*icons\b/.test(t)||/\bmaterial\s*symbols\b/.test(t)}var xr=new Map;function rl(e=""){let t=Object.create(null),n=String(e||""),r=/['"]?\s*([A-Za-z]{3,4})\s*['"]?\s*([+-]?\d+(?:\.\d+)?)\s*/g,i;for(;i=r.exec(n);)t[i[1].toUpperCase()]=Number(i[2]);return t}async function ol(e,t,n){let r=String(e||""),i=r.toLowerCase(),o=String(t||"").toLowerCase();if(/\bmaterial\s*icons\b/.test(i)&&!/\bsymbols\b/.test(i))return{familyForMeasure:r,familyForCanvas:r};if(!/\bmaterial\s*symbols\b/.test(i))return{familyForMeasure:r,familyForCanvas:r};let a=n&&(n.FILL??n.fill),s="outlined";/\brounded\b/.test(o)||/\bround\b/.test(o)?s="rounded":/\bsharp\b/.test(o)?s="sharp":/\boutlined\b/.test(o)&&(s="outlined");let l=a===1,c=null;if(l&&(s==="outlined"&&De.materialIconsFilled?c={url:De.materialIconsFilled,alias:"snapdom-mi-filled"}:s==="rounded"&&De.materialIconsRound?c={url:De.materialIconsRound,alias:"snapdom-mi-round"}:s==="sharp"&&De.materialIconsSharp&&(c={url:De.materialIconsSharp,alias:"snapdom-mi-sharp"})),!c)return{familyForMeasure:r,familyForCanvas:r};if(!xr.has(c.alias))try{let d=new FontFace(c.alias,`url(${c.url})`,{style:"normal",weight:"400"});document.fonts.add(d),await d.load(),xr.set(c.alias,!0)}catch{return{familyForMeasure:r,familyForCanvas:r}}let u=`"${c.alias}"`;return{familyForMeasure:u,familyForCanvas:u}}async function il(e="Material Icons",t=24){try{await Promise.all([document.fonts.load(`400 ${t}px "${String(e).replace(/["']/g,"")}"`),document.fonts.ready])}catch{}}function al(e){let t=e.getPropertyValue("-webkit-text-fill-color")?.trim()||"",n=/^transparent$/i.test(t)||/rgba?\(\s*0\s*,\s*0\s*,\s*0\s*,\s*0\s*\)/i.test(t);if(t&&!n&&t.toLowerCase()!=="currentcolor")return t;let r=e.color?.trim();return r&&r!=="inherit"?r:"#000"}async function ll(e,{family:t="Material Icons",weight:n="normal",fontSize:r=32,color:i="#000",variation:o="",className:a=""}={}){let s=String(t||"").replace(/^['"]+|['"]+$/g,""),l=window.devicePixelRatio||1,c=rl(o),{familyForMeasure:u,familyForCanvas:d}=await ol(s,a,c);await il(d.replace(/^["']+|["']+$/g,""),r);let f=document.createElement("span");f.textContent=e,f.style.position="absolute",f.style.visibility="hidden",f.style.left="-99999px",f.style.whiteSpace="nowrap",f.style.fontFamily=u,f.style.fontWeight=String(n||"normal"),f.style.fontSize=`${r}px`,f.style.lineHeight="1",f.style.margin="0",f.style.padding="0",f.style.fontFeatureSettings="'liga' 1",f.style.fontVariantLigatures="normal",f.style.color=i,document.body.appendChild(f);let p=f.getBoundingClientRect(),g=Math.max(1,Math.ceil(p.width)),h=Math.max(1,Math.ceil(p.height));document.body.removeChild(f);let m=document.createElement("canvas");m.width=g*l,m.height=h*l;let y=m.getContext("2d");y.scale(l,l),y.font=`${n?`${n} `:""}${r}px ${d}`,y.textAlign="left",y.textBaseline="top",y.fillStyle=i;try{y.fontKerning="normal"}catch{}return y.fillText(e,0,0),{dataUrl:m.toDataURL(),width:g,height:h}}async function sl(e,t){if(!(e instanceof Element))return 0;let n='.material-icons, [class*="material-symbols"]',r=Array.from(e.querySelectorAll(n)).filter(a=>a&&a.textContent&&a.textContent.trim());if(r.length===0)return 0;let i=t instanceof Element?Array.from(t.querySelectorAll(n)).filter(a=>a&&a.textContent&&a.textContent.trim()):[],o=0;for(let a=0;a<r.length;a++){let s=r[a],l=i[a]||null;try{let c=getComputedStyle(l||s),u=c.fontFamily||"Material Icons";if(!nl(u))continue;let d=(l||s).textContent.trim();if(!d)continue;let f=parseInt(c.fontSize,10)||24,p=c.fontWeight&&c.fontWeight!=="normal"?c.fontWeight:"normal",g=al(c),h=c.fontVariationSettings&&c.fontVariationSettings!=="normal"?c.fontVariationSettings:"",m=(l||s).className||"",{dataUrl:y,width:x,height:b}=await ll(d,{family:u,weight:p,fontSize:f,color:g,variation:h,className:m});s.textContent="";let w=s.ownerDocument.createElement("img");w.src=y,w.alt=d,w.style.height=`${f}px`,w.style.width=`${Math.max(1,Math.round(x/b*f))}px`,w.style.objectFit="contain",w.style.verticalAlign=getComputedStyle(s).verticalAlign||"baseline",s.appendChild(w),o++}catch{}}return o}Ue();async function cl(e,t,n,r=32,i="#000"){t=t.replace(/^['"]+|['"]+$/g,"");let o=window.devicePixelRatio||1;try{await document.fonts.ready}catch{}let a=document.createElement("span");a.textContent=e,a.style.position="absolute",a.style.visibility="hidden",a.style.fontFamily=`"${t}"`,a.style.fontWeight=n||"normal",a.style.fontSize=`${r}px`,a.style.lineHeight="1",a.style.whiteSpace="nowrap",a.style.padding="0",a.style.margin="0",document.body.appendChild(a);let s=a.getBoundingClientRect(),l=Math.ceil(s.width),c=Math.ceil(s.height);document.body.removeChild(a);let u=document.createElement("canvas");u.width=Math.max(1,l*o),u.height=Math.max(1,c*o);let d=u.getContext("2d");return d.scale(o,o),d.font=n?`${n} ${r}px "${t}"`:`${r}px "${t}"`,d.textAlign="left",d.textBaseline="top",d.fillStyle=i,d.fillText(e,0,0),{dataUrl:u.toDataURL(),width:l,height:c}}var ul=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","emoji","math","fangsong","ui-serif","ui-sans-serif","ui-monospace","ui-rounded"]),dl=["katex","mathjax","mathml"];function Lt(e){if(!e)return"";for(let t of e.split(",")){let n=t.trim().replace(/^['"]+|['"]+$/g,"");if(n&&!ul.has(n.toLowerCase()))return n}return""}function St(e){let t=String(e??"400").trim().toLowerCase();if(t==="normal")return 400;if(t==="bold")return 700;let n=parseInt(t,10);return Number.isFinite(n)?Math.min(900,Math.max(100,n)):400}function Et(e){let t=String(e??"normal").trim().toLowerCase();return t.startsWith("italic")?"italic":t.startsWith("oblique")?"oblique":"normal"}function fl(e){let t=String(e??"100%").match(/(\d+(?:\.\d+)?)\s*%/);return t?Math.max(50,Math.min(200,parseFloat(t[1]))):100}function ml(e){let t=String(e||"400").trim(),n=t.match(/^(\d{2,3})\s+(\d{2,3})$/);if(n){let i=St(n[1]),o=St(n[2]);return{min:Math.min(i,o),max:Math.max(i,o)}}let r=St(t);return{min:r,max:r}}function pl(e){let t=String(e||"normal").trim().toLowerCase();return t==="italic"?{kind:"italic"}:t.startsWith("oblique")?{kind:"oblique"}:{kind:"normal"}}function hl(e){let t=String(e||"100%").trim(),n=t.match(/(\d+(?:\.\d+)?)\s*%\s+(\d+(?:\.\d+)?)\s*%/);if(n){let o=parseFloat(n[1]),a=parseFloat(n[2]);return{min:Math.min(o,a),max:Math.max(o,a)}}let r=t.match(/(\d+(?:\.\d+)?)\s*%/),i=r?parseFloat(r[1]):100;return{min:i,max:i}}function gl(e){return!e||typeof e!="string"?"":e.replace(/\s+(variable|vf|v[0-9]+)$/i,"").trim().toLowerCase().replace(/\s+/g,"-")}function yl(e,t,n=[]){if(!e)return!1;try{let r=new URL(e,location.href);if(r.origin===location.origin)return!0;let i=r.host.toLowerCase();if(["fonts.googleapis.com","fonts.gstatic.com","use.typekit.net","p.typekit.net","kit.fontawesome.com","use.fontawesome.com","cdn.jsdelivr.net","unpkg.com","cdnjs.cloudflare.com","esm.sh"].some(a=>i.endsWith(a))||n.some(a=>i===a.toLowerCase()||i.endsWith("."+a.toLowerCase())))return!0;let o=(r.pathname+r.search).toLowerCase();if(/\bfont(s)?\b/.test(o)||/\.woff2?(\b|$)/.test(o)||dl.some(a=>o.includes(a)))return!0;for(let a of t){let s=a.toLowerCase().replace(/\s+/g,"+"),l=a.toLowerCase().replace(/\s+/g,"-"),c=gl(a);if(o.includes(s)||o.includes(l)||c&&o.includes(c))return!0}return!1}catch{return!1}}function wl(e){let t=new Set;for(let n of e||[]){let r=String(n).split("__")[0]?.trim();r&&t.add(r)}return t}function vr(e,t){return e&&e.replace(/url\(\s*(['"]?)([^)'"]+)\1\s*\)/g,(n,r,i)=>{let o=(i||"").trim();if(!o||/^data:|^blob:|^https?:|^file:|^about:/i.test(o))return n;let a=o;try{a=new URL(o,t||location.href).href}catch{}return`url("${a}")`})}var gn=/@import\s+(?:url\(\s*(['"]?)([^)"']+)\1\s*\)|(['"])([^"']+)\3)([^;]*);/g,kt=4;async function bl(e,t,n){if(!e)return e;let r=new Set;function i(s,l){try{return new URL(s,l||location.href).href}catch{return s}}async function o(s,l,c=0){if(c>kt)return console.warn(`[snapDOM] @import depth exceeded (${kt}) at ${l}`),s;let u="",d=0,f;for(;f=gn.exec(s);){u+=s.slice(d,f.index),d=gn.lastIndex;let p=(f[2]||f[4]||"").trim(),g=i(p,l);if(r.has(g)){console.warn(`[snapDOM] Skipping circular @import: ${g}`);continue}r.add(g);let h="";try{let m=await ne(g,{as:"text",useProxy:n,silent:!0});m.ok&&typeof m.data=="string"&&(h=m.data)}catch{}h?(h=vr(h,g),h=await o(h,g,c+1),u+=`
5
+ `}catch{}}catch{}return t}function Ki(e,t,n){if(!t)return;let r=document.createElement("style");r.setAttribute("data-sd",n),r.textContent=t,e.insertBefore(r,e.firstChild||null)}function Ji(e,t){try{let n=e.currentSrc||e.src||"";if(!n)return;t.setAttribute("src",n),t.removeAttribute("srcset"),t.removeAttribute("sizes"),t.loading="eager",t.decoding="sync"}catch{}}function Zi(e){let t=new Set;if(!e)return t;let n=/var\(\s*(--[A-Za-z0-9_-]+)\b/g,r;for(;r=n.exec(e);)t.add(r[1]);return t}function Qi(e,t){try{let n=getComputedStyle(e).getPropertyValue(t).trim();if(n)return n}catch{}try{let n=getComputedStyle(document.documentElement).getPropertyValue(t).trim();if(n)return n}catch{}return""}function ea(e,t,n){let r=[];for(let i of t){let o=Qi(e,i);o&&r.push(`${i}: ${o};`)}return r.length?`${n}{${r.join("")}}
6
+ `:""}function ta(e){e&&(e.nodeType===Node.ELEMENT_NODE&&e.setAttribute("data-sd-slotted",""),e.querySelectorAll&&e.querySelectorAll("*").forEach(t=>t.setAttribute("data-sd-slotted","")))}async function na(e,t=3){let n=()=>{try{return e.contentDocument||e.contentWindow?.document||null}catch{return null}},r=n(),i=0;for(;i<t&&(!r||!r.body&&!r.documentElement);)await new Promise(o=>setTimeout(o,0)),r=n(),i++;return r&&(r.body||r.documentElement)?r:null}function ra(e){let t=e.getBoundingClientRect(),n=0,r=0,i=0,o=0;try{let l=getComputedStyle(e);n=parseFloat(l.borderLeftWidth)||0,r=parseFloat(l.borderRightWidth)||0,i=parseFloat(l.borderTopWidth)||0,o=parseFloat(l.borderBottomWidth)||0}catch{}let a=Math.max(0,Math.round(t.width-(n+r))),s=Math.max(0,Math.round(t.height-(i+o)));return{contentWidth:a,contentHeight:s,rect:t}}function ne(e){let t=0,n=0;if(e.offsetWidth>0&&(t=e.offsetWidth),e.offsetHeight>0&&(n=e.offsetHeight),t===0||n===0)try{let r=getComputedStyle(e);if(t===0){let i=parseFloat(r.width);!isNaN(i)&&i>0&&(t=i)}if(n===0){let i=parseFloat(r.height);!isNaN(i)&&i>0&&(n=i)}}catch{}if(t===0||n===0)try{if(t===0){let r=parseFloat(e.getAttribute("width"));!isNaN(r)&&r>0&&(t=r)}if(n===0){let r=parseFloat(e.getAttribute("height"));!isNaN(r)&&r>0&&(n=r)}}catch{}if((t===0||n===0)&&(e.naturalWidth||e.naturalHeight))try{t===0&&e.naturalWidth>0&&(t=e.naturalWidth),n===0&&e.naturalHeight>0&&(n=e.naturalHeight)}catch{}return{width:t,height:n}}function oa(e,t,n){let r=e.createElement("style");return r.setAttribute("data-sd-iframe-pin",""),r.textContent=`html, body {margin: 0 !important;padding: 0 !important;width: ${t}px !important;height: ${n}px !important;min-width: ${t}px !important;min-height: ${n}px !important;box-sizing: border-box !important;overflow: hidden !important;background-clip: border-box !important;}`,(e.head||e.documentElement).appendChild(r),()=>{try{r.remove()}catch{}}}async function ia(e,t,n){let r=await na(e,3);if(!r)throw new Error("iframe document not accessible/ready");let{contentWidth:i,contentHeight:o,rect:a}=ra(e),s=n?.snap;if(!s&&typeof window<"u"&&window.snapdom&&(s=window.snapdom),!s||typeof s.toPng!="function")throw new Error("[snapdom] iframe capture requires snapdom.toPng. Use snapdom(el) or pass options.snap. With ESM, assign window.snapdom = snapdom after import if using iframes.");let l={...n,scale:1},c=oa(r,i,o),u;try{u=await s.toPng(r.documentElement,l)}finally{c()}u.style.display="block",u.style.width=`${i}px`,u.style.height=`${o}px`;let d=document.createElement("div");return t.nodeMap.set(d,e),Ee(e,d,t,n),d.style.overflow="hidden",d.style.display="block",d.style.width||(d.style.width=`${Math.round(a.width)}px`),d.style.height||(d.style.height=`${Math.round(a.height)}px`),d.appendChild(u),d}function aa(e){let{width:t,height:n}=ne(e),r=e.getBoundingClientRect(),i;try{i=window.getComputedStyle(e)}catch{}let o=i?parseFloat(i.width):NaN,a=i?parseFloat(i.height):NaN,s=Math.round(t||r.width||0),l=Math.round(n||r.height||0),c=Number.isFinite(o)&&o>0?Math.round(o):Math.max(12,s||16),u=Number.isFinite(a)&&a>0?Math.round(a):Math.max(12,l||16),d=(e.type||"text").toLowerCase()==="checkbox",f=!!e.checked,p=!!e.indeterminate,g=Math.max(Math.min(c,u),12),h=document.createElement("div");h.setAttribute("data-snapdom-input-replacement",e.type||"checkbox"),h.style.cssText=`display:inline-block;width:${g}px;height:${g}px;vertical-align:middle;flex-shrink:0;line-height:0;`;let m=document.createElementNS("http://www.w3.org/2000/svg","svg");m.setAttribute("width",String(g)),m.setAttribute("height",String(g)),m.setAttribute("viewBox",`0 0 ${g} ${g}`),h.appendChild(m);function y(){let x="#0a6ed1";try{i&&(x=i.accentColor||i.color||x)}catch{}let b=2,w=b/2,E=g-b;if(m.innerHTML="",d){let S=document.createElementNS("http://www.w3.org/2000/svg","rect");if(S.setAttribute("x",String(w)),S.setAttribute("y",String(w)),S.setAttribute("width",String(E)),S.setAttribute("height",String(E)),S.setAttribute("rx","2"),S.setAttribute("ry","2"),S.setAttribute("fill",f?x:"none"),S.setAttribute("stroke",x),S.setAttribute("stroke-width",String(b)),m.appendChild(S),f){let v=document.createElementNS("http://www.w3.org/2000/svg","path");v.setAttribute("d",`M ${w+2} ${g/2} L ${g/2-1} ${g-w-2} L ${g-w-2} ${w+2}`),v.setAttribute("stroke","white"),v.setAttribute("stroke-width",String(Math.max(1.5,b))),v.setAttribute("fill","none"),v.setAttribute("stroke-linecap","round"),v.setAttribute("stroke-linejoin","round"),m.appendChild(v)}else if(p){let v=document.createElementNS("http://www.w3.org/2000/svg","rect"),M=Math.max(6,E-4);v.setAttribute("x",String((g-M)/2)),v.setAttribute("y",String((g-b)/2)),v.setAttribute("width",String(M)),v.setAttribute("height",String(b)),v.setAttribute("fill",x),v.setAttribute("rx","1"),m.appendChild(v)}}else{let S=document.createElementNS("http://www.w3.org/2000/svg","circle");if(S.setAttribute("cx",String(g/2)),S.setAttribute("cy",String(g/2)),S.setAttribute("r",String((g-b)/2)),S.setAttribute("fill",f?x:"none"),S.setAttribute("stroke",x),S.setAttribute("stroke-width",String(b)),m.appendChild(S),f){let v=document.createElementNS("http://www.w3.org/2000/svg","circle"),M=Math.max(2,(g-b*2)*.35);v.setAttribute("cx",String(g/2)),v.setAttribute("cy",String(g/2)),v.setAttribute("r",String(M)),v.setAttribute("fill","white"),m.appendChild(v)}}h.style.setProperty("width",`${g}px`,"important"),h.style.setProperty("height",`${g}px`,"important"),h.style.setProperty("min-width",`${g}px`,"important"),h.style.setProperty("min-height",`${g}px`,"important")}return y(),{el:h,applyVisual:y}}var Ne=new X(80);async function _e(e){if(C.resource?.has(e))return C.resource.get(e);if(Ne.has(e))return Ne.get(e);let t=(async()=>{let n=await G(e,{as:"dataURL",silent:!0});if(!n.ok||typeof n.data!="string")throw new Error(`[snapDOM] Failed to read blob URL: ${e}`);return C.resource?.set(e,n.data),n.data})();Ne.set(e,t);try{let n=await t;return Ne.set(e,n),n}catch(n){throw Ne.delete(e),n}}var la=/\bblob:[^)"'\s]+/g;async function Dn(e){if(!e||e.indexOf("blob:")===-1)return e;let t=Array.from(new Set(e.match(la)||[]));if(t.length===0)return e;let n=e;for(let r of t)try{let i=await _e(r);n=n.split(r).join(i)}catch{}return n}function Ye(e){return typeof e=="string"&&e.startsWith("blob:")}function sa(e){return(e||"").split(",").map(t=>t.trim()).filter(Boolean).map(t=>{let n=t.match(/^(\S+)(\s+.+)?$/);return n?{url:n[1],desc:n[2]||""}:null}).filter(Boolean)}function ca(e){return e.map(t=>t.desc?`${t.url} ${t.desc.trim()}`:t.url).join(", ")}async function ua(e,t=null){if(!e)return;let n=t,r=e.querySelectorAll?e.querySelectorAll("img"):[];for(let l of r)try{let c=l.getAttribute("src")||l.currentSrc||"";if(Ye(c)){let d=await _e(c);l.setAttribute("src",d)}let u=l.getAttribute("srcset");if(u&&u.includes("blob:")){let d=sa(u),f=!1;for(let p of d)if(Ye(p.url))try{p.url=await _e(p.url),f=!0}catch(g){P(n,"blobUrlToDataUrl for srcset item failed",g)}f&&l.setAttribute("srcset",ca(d))}}catch(c){P(n,"resolveBlobUrls for img failed",c)}let i=e.querySelectorAll?e.querySelectorAll("image"):[];for(let l of i)try{let c="http://www.w3.org/1999/xlink",u=l.getAttribute("href")||l.getAttributeNS?.(c,"href");if(Ye(u)){let d=await _e(u);l.setAttribute("href",d),l.removeAttributeNS?.(c,"href")}}catch(c){P(n,"resolveBlobUrls for SVG image href failed",c)}let o=e.querySelectorAll?e.querySelectorAll("[style*='blob:']"):[];for(let l of o)try{let c=l.getAttribute("style");if(c&&c.includes("blob:")){let u=await Dn(c);l.setAttribute("style",u)}}catch(c){P(n,"replaceBlobUrls in inline style failed",c)}let a=e.querySelectorAll?e.querySelectorAll("style"):[];for(let l of a)try{let c=l.textContent||"";c.includes("blob:")&&(l.textContent=await Dn(c))}catch(c){P(n,"replaceBlobUrls in style tag failed",c)}let s=["poster"];for(let l of s){let c=e.querySelectorAll?e.querySelectorAll(`[${l}^='blob:']`):[];for(let u of c)try{let d=u.getAttribute(l);Ye(d)&&u.setAttribute(l,await _e(d))}catch(d){P(n,`resolveBlobUrls for ${l} failed`,d)}}}De();async function Je(e,t,n){if(!e)throw new Error("Invalid node");let r=new Set,i=null,o=null;if(e.nodeType===Node.ELEMENT_NODE){let u=(e.localName||e.tagName||"").toLowerCase();if(e.id==="snapdom-sandbox"||e.hasAttribute("data-snapdom-sandbox")||Zn.has(u))return null}if(e.nodeType===Node.TEXT_NODE||e.nodeType!==Node.ELEMENT_NODE)return e.cloneNode(!0);if(e.getAttribute("data-capture")==="exclude"){if(n.excludeMode==="hide"){let u=document.createElement("div"),{width:d,height:f}=ne(e),p=d||e.getBoundingClientRect().width||0,g=f||e.getBoundingClientRect().height||0;return u.style.cssText=`display:inline-block;width:${p}px;height:${g}px;visibility:hidden;`,u}else if(n.excludeMode==="remove")return null}if(n.exclude&&Array.isArray(n.exclude))for(let u of n.exclude)try{if(e.matches?.(u)){if(n.excludeMode==="hide"){let d=document.createElement("div"),{width:f,height:p}=ne(e),g=f||e.getBoundingClientRect().width||0,h=p||e.getBoundingClientRect().height||0;return d.style.cssText=`display:inline-block;width:${g}px;height:${h}px;visibility:hidden;`,d}else if(n.excludeMode==="remove")return null}}catch(d){console.warn(`Invalid selector in exclude option: ${u}`,d)}if(typeof n.filter=="function")try{if(!n.filter(e)){if(n.filterMode==="hide"){let u=document.createElement("div"),{width:d,height:f}=ne(e),p=d||e.getBoundingClientRect().width||0,g=f||e.getBoundingClientRect().height||0;return u.style.cssText=`display:inline-block;width:${p}px;height:${g}px;visibility:hidden;`,u}else if(n.filterMode==="remove")return null}}catch(u){console.warn("Error in filter function:",u)}if(e.tagName==="IFRAME"){let u=!1;try{u=!!(e.contentDocument||e.contentWindow?.document)}catch(d){P(t,"iframe same-origin probe failed",d)}if(u)try{return await ia(e,t,n)}catch(d){console.warn("[SnapDOM] iframe rasterization failed, fallback:",d)}if(n.placeholders){let{width:d,height:f}=ne(e),p=document.createElement("div");return p.style.cssText=`width:${d}px;height:${f}px;background-image:repeating-linear-gradient(45deg,#ddd,#ddd 5px,#f9f9f9 5px,#f9f9f9 10px);display:flex;align-items:center;justify-content:center;font-size:12px;color:#555;border:1px solid #aaa;`,Ee(e,p,t,n),p}else{let{width:d,height:f}=ne(e),p=document.createElement("div");return p.style.cssText=`display:inline-block;width:${d}px;height:${f}px;visibility:hidden;`,Ee(e,p,t,n),p}}if(e.getAttribute("data-capture")==="placeholder"){let u=e.cloneNode(!1);t.nodeMap.set(u,e),Ee(e,u,t,n);let d=document.createElement("div");return d.textContent=e.getAttribute("data-placeholder-text")||"",d.style.cssText="color:#666;font-size:12px;text-align:center;line-height:1.4;padding:0.5em;box-sizing:border-box;",u.appendChild(d),u}if(e.tagName==="CANVAS"){let u="";try{let g=e.getContext("2d",{willReadFrequently:!0});try{g&&g.getImageData(0,0,1,1)}catch{}if(await new Promise(h=>requestAnimationFrame(h)),u=e.toDataURL("image/png"),!u||u==="data:,"){try{g&&g.getImageData(0,0,1,1)}catch{}if(await new Promise(h=>requestAnimationFrame(h)),u=e.toDataURL("image/png"),!u||u==="data:,"){let h=document.createElement("canvas");h.width=e.width,h.height=e.height;let m=h.getContext("2d");m&&(m.drawImage(e,0,0),u=h.toDataURL("image/png"))}}}catch(g){P(t,"Canvas toDataURL failed, using empty/fallback",g)}let d=document.createElement("img");try{d.decoding="sync",d.loading="eager"}catch(g){P(t,"img decoding/loading hints failed",g)}u&&(d.src=u),d.width=e.width,d.height=e.height;let{width:f,height:p}=ne(e);return f>0&&(d.style.width=`${f}px`),p>0&&(d.style.height=`${p}px`),t.nodeMap.set(d,e),Ee(e,d,t,n),d}let a;try{if(a=e.cloneNode(!1),ji(e,a),t.nodeMap.set(a,e),e.tagName==="IMG"){Ji(e,a);try{let{width:u,height:d}=ne(e),f=Math.round(u||0),p=Math.round(d||0);f&&(a.dataset.snapdomWidth=String(f)),p&&(a.dataset.snapdomHeight=String(p))}catch(u){P(t,"getUnscaledDimensions for IMG failed",u)}try{let u=e.getAttribute("style")||"",d=window.getComputedStyle(e),f=y=>{let x=u.match(new RegExp(`${y}\\s*:\\s*([^;]+)`,"i")),b=x?x[1].trim():d.getPropertyValue(y);return/%|auto/i.test(String(b||""))},p=parseInt(a.dataset.snapdomWidth||"0",10),g=parseInt(a.dataset.snapdomHeight||"0",10),h=f("width")||!p,m=f("height")||!g;h&&p&&(a.style.width=`${p}px`),m&&g&&(a.style.height=`${g}px`),p&&(a.style.minWidth=`${p}px`),g&&(a.style.minHeight=`${g}px`)}catch(u){P(t,"IMG dimension freeze failed",u)}}}catch(u){throw console.error("[Snapdom] Failed to clone node:",e,u),u}let s=null;if(e instanceof HTMLTextAreaElement){let{width:u,height:d}=ne(e),f=u||e.getBoundingClientRect().width||0,p=d||e.getBoundingClientRect().height||0;f&&(a.style.width=`${f}px`),p&&(a.style.height=`${p}px`)}if(e instanceof HTMLInputElement){let u=(e.type||"text").toLowerCase();if((u==="checkbox"||u==="radio")&&vi()){let{el:d,applyVisual:f}=aa(e);t.nodeMap.set(d,e),s=f,a=d}else a.value=e.value,a.setAttribute("value",e.value),e.checked!==void 0&&(a.checked=e.checked,e.checked&&a.setAttribute("checked",""),e.indeterminate&&(a.indeterminate=e.indeterminate))}if(e instanceof HTMLSelectElement&&(i=e.value),e instanceof HTMLTextAreaElement&&(o=e.value),Ee(e,a,t,n),s&&s(),e.shadowRoot){let u=function(b,w){if(b.nodeType===Node.ELEMENT_NODE&&b.tagName==="STYLE")return w(null);Je(b,t,n).then(E=>{w(E||null)}).catch(()=>{w(null)})};try{let b=e.shadowRoot.querySelectorAll("slot");for(let w of b){let E=[];try{E=w.assignedNodes?.({flatten:!0})||w.assignedNodes?.()||[]}catch{E=w.assignedNodes?.()||[]}for(let S of E)r.add(S)}}catch{}let d=Xi(t),f=`[data-sd="${d}"]`;try{a.setAttribute("data-sd",d)}catch{}let p=Gi(e.shadowRoot),g=Yi(p,f),h=Zi(p),m=ea(e,h,f);Ki(a,m+g,d);let y=document.createDocumentFragment(),x=await Lt(Array.from(e.shadowRoot.childNodes),u,n.fast);y.append(...x.filter(b=>!!b)),a.appendChild(y)}if(e.tagName==="SLOT"){let u=function(h,m){Je(h,t,n).then(y=>{y&&ta(y),m(y||null)}).catch(()=>{m(null)})},d=e.assignedNodes?.({flatten:!0})||[],f=d.length>0?d:Array.from(e.childNodes),p=document.createDocumentFragment(),g=await Lt(Array.from(f),u,n.fast);return p.append(...g.filter(h=>!!h)),p}function l(u,d){if(r.has(u))return d(null);Je(u,t,n).then(f=>{d(f||null)}).catch(()=>{d(null)})}let c=await Lt(Array.from(e.childNodes),l,n.fast);if(a.append(...c.filter(u=>!!u)),i!==null&&a instanceof HTMLSelectElement){a.value=i;for(let u of a.options)u.value===i?u.setAttribute("selected",""):u.removeAttribute("selected")}return o!==null&&a instanceof HTMLTextAreaElement&&(a.textContent=o),a}J();nt();K();var da=[/font\s*awesome/i,/material\s*icons/i,/ionicons/i,/glyphicons/i,/feather/i,/bootstrap\s*icons/i,/remix\s*icons/i,/heroicons/i,/layui/i,/lucide/i],xe=Object.assign({materialIconsFilled:"https://fonts.gstatic.com/s/materialicons/v48/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2",materialIconsOutlined:"https://fonts.gstatic.com/s/materialiconsoutlined/v110/gok-H7zzDkdnRel8-DQ6KAXJ69wP1tGnf4ZGhUcel5euIg.woff2",materialIconsRound:"https://fonts.gstatic.com/s/materialiconsround/v109/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmPq_HTTw.woff2",materialIconsSharp:"https://fonts.gstatic.com/s/materialiconssharp/v110/oPWQ_lt5nv4pWNJpghLP75WiFR4kLh3kvmvRImcycg.woff2"},typeof window<"u"&&window.__SNAPDOM_ICON_FONTS__||{}),It=[];function fa(e){let t=Array.isArray(e)?e:[e];for(let n of t)n instanceof RegExp?It.push(n):typeof n=="string"?It.push(new RegExp(n,"i")):console.warn("[snapdom] Ignored invalid iconFont value:",n)}function re(e){let t=typeof e=="string"?e:"",n=[...da,...It];for(let r of n)if(r instanceof RegExp&&r.test(t))return!0;return!!(/icon/i.test(t)||/glyph/i.test(t)||/symbols/i.test(t)||/feather/i.test(t)||/fontawesome/i.test(t))}function ma(e=""){let t=String(e).toLowerCase();return/\bmaterial\s*icons\b/.test(t)||/\bmaterial\s*symbols\b/.test(t)}var In=new Map;function pa(e=""){let t=Object.create(null),n=String(e||""),r=/['"]?\s*([A-Za-z]{3,4})\s*['"]?\s*([+-]?\d+(?:\.\d+)?)\s*/g,i;for(;i=r.exec(n);)t[i[1].toUpperCase()]=Number(i[2]);return t}async function ha(e,t,n){let r=String(e||""),i=r.toLowerCase(),o=String(t||"").toLowerCase();if(/\bmaterial\s*icons\b/.test(i)&&!/\bsymbols\b/.test(i))return{familyForMeasure:r,familyForCanvas:r};if(!/\bmaterial\s*symbols\b/.test(i))return{familyForMeasure:r,familyForCanvas:r};let a=n&&(n.FILL??n.fill),s="outlined";/\brounded\b/.test(o)||/\bround\b/.test(o)?s="rounded":/\bsharp\b/.test(o)?s="sharp":/\boutlined\b/.test(o)&&(s="outlined");let l=a===1,c=null;if(l&&(s==="outlined"&&xe.materialIconsFilled?c={url:xe.materialIconsFilled,alias:"snapdom-mi-filled"}:s==="rounded"&&xe.materialIconsRound?c={url:xe.materialIconsRound,alias:"snapdom-mi-round"}:s==="sharp"&&xe.materialIconsSharp&&(c={url:xe.materialIconsSharp,alias:"snapdom-mi-sharp"})),!c)return{familyForMeasure:r,familyForCanvas:r};if(!In.has(c.alias))try{let d=new FontFace(c.alias,`url(${c.url})`,{style:"normal",weight:"400"});document.fonts.add(d),await d.load(),In.set(c.alias,!0)}catch{return{familyForMeasure:r,familyForCanvas:r}}let u=`"${c.alias}"`;return{familyForMeasure:u,familyForCanvas:u}}async function ga(e="Material Icons",t=24){try{await Promise.all([document.fonts.load(`400 ${t}px "${String(e).replace(/["']/g,"")}"`),document.fonts.ready])}catch{}}function ya(e){let t=e.getPropertyValue("-webkit-text-fill-color")?.trim()||"",n=/^transparent$/i.test(t)||/rgba?\(\s*0\s*,\s*0\s*,\s*0\s*,\s*0\s*\)/i.test(t);if(t&&!n&&t.toLowerCase()!=="currentcolor")return t;let r=e.color?.trim();return r&&r!=="inherit"?r:"#000"}async function wa(e,{family:t="Material Icons",weight:n="normal",fontSize:r=32,color:i="#000",variation:o="",className:a=""}={}){let s=String(t||"").replace(/^['"]+|['"]+$/g,""),l=window.devicePixelRatio||1,c=pa(o),{familyForMeasure:u,familyForCanvas:d}=await ha(s,a,c);await ga(d.replace(/^["']+|["']+$/g,""),r);let f=document.createElement("span");f.textContent=e,f.style.position="absolute",f.style.visibility="hidden",f.style.left="-99999px",f.style.whiteSpace="nowrap",f.style.fontFamily=u,f.style.fontWeight=String(n||"normal"),f.style.fontSize=`${r}px`,f.style.lineHeight="1",f.style.margin="0",f.style.padding="0",f.style.fontFeatureSettings="'liga' 1",f.style.fontVariantLigatures="normal",f.style.color=i,document.body.appendChild(f);let p=f.getBoundingClientRect(),g=Math.max(1,Math.ceil(p.width)),h=Math.max(1,Math.ceil(p.height));document.body.removeChild(f);let m=document.createElement("canvas");m.width=g*l,m.height=h*l;let y=m.getContext("2d");y.scale(l,l),y.font=`${n?`${n} `:""}${r}px ${d}`,y.textAlign="left",y.textBaseline="top",y.fillStyle=i;try{y.fontKerning="normal"}catch{}return y.fillText(e,0,0),{dataUrl:m.toDataURL(),width:g,height:h}}async function ba(e,t){if(!(e instanceof Element))return 0;let n='.material-icons, [class*="material-symbols"]',r=Array.from(e.querySelectorAll(n)).filter(a=>a&&a.textContent&&a.textContent.trim());if(r.length===0)return 0;let i=t instanceof Element?Array.from(t.querySelectorAll(n)).filter(a=>a&&a.textContent&&a.textContent.trim()):[],o=0;for(let a=0;a<r.length;a++){let s=r[a],l=i[a]||null;try{let c=getComputedStyle(l||s),u=c.fontFamily||"Material Icons";if(!ma(u))continue;let d=(l||s).textContent.trim();if(!d)continue;let f=parseInt(c.fontSize,10)||24,p=c.fontWeight&&c.fontWeight!=="normal"?c.fontWeight:"normal",g=ya(c),h=c.fontVariationSettings&&c.fontVariationSettings!=="normal"?c.fontVariationSettings:"",m=(l||s).className||"",{dataUrl:y,width:x,height:b}=await wa(d,{family:u,weight:p,fontSize:f,color:g,variation:h,className:m});s.textContent="";let w=s.ownerDocument.createElement("img");w.src=y,w.alt=d,w.style.height=`${f}px`,w.style.width=`${Math.max(1,Math.round(x/b*f))}px`,w.style.objectFit="contain",w.style.verticalAlign=getComputedStyle(s).verticalAlign||"baseline",s.appendChild(w),o++}catch{}}return o}ke();async function xa(e,t,n,r=32,i="#000"){t=t.replace(/^['"]+|['"]+$/g,"");let o=window.devicePixelRatio||1;try{await document.fonts.ready}catch{}let a=document.createElement("span");a.textContent=e,a.style.position="absolute",a.style.visibility="hidden",a.style.fontFamily=`"${t}"`,a.style.fontWeight=n||"normal",a.style.fontSize=`${r}px`,a.style.lineHeight="1",a.style.whiteSpace="nowrap",a.style.padding="0",a.style.margin="0",document.body.appendChild(a);let s=a.getBoundingClientRect(),l=Math.ceil(s.width),c=Math.ceil(s.height);document.body.removeChild(a);let u=document.createElement("canvas");u.width=Math.max(1,l*o),u.height=Math.max(1,c*o);let d=u.getContext("2d");return d.scale(o,o),d.font=n?`${n} ${r}px "${t}"`:`${r}px "${t}"`,d.textAlign="left",d.textBaseline="top",d.fillStyle=i,d.fillText(e,0,0),{dataUrl:u.toDataURL(),width:l,height:c}}var va=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","emoji","math","fangsong","ui-serif","ui-sans-serif","ui-monospace","ui-rounded"]),Sa=["katex","mathjax","mathml"];function it(e){if(!e)return"";for(let t of e.split(",")){let n=t.trim().replace(/^['"]+|['"]+$/g,"");if(n&&!va.has(n.toLowerCase()))return n}return""}function Ze(e){let t=String(e??"400").trim().toLowerCase();if(t==="normal")return 400;if(t==="bold")return 700;let n=parseInt(t,10);return Number.isFinite(n)?Math.min(900,Math.max(100,n)):400}function Qe(e){let t=String(e??"normal").trim().toLowerCase();return t.startsWith("italic")?"italic":t.startsWith("oblique")?"oblique":"normal"}function Ea(e){let t=String(e??"100%").match(/(\d+(?:\.\d+)?)\s*%/);return t?Math.max(50,Math.min(200,parseFloat(t[1]))):100}function Ca(e){let t=String(e||"400").trim(),n=t.match(/^(\d{2,3})\s+(\d{2,3})$/);if(n){let i=Ze(n[1]),o=Ze(n[2]);return{min:Math.min(i,o),max:Math.max(i,o)}}let r=Ze(t);return{min:r,max:r}}function ka(e){let t=String(e||"normal").trim().toLowerCase();return t==="italic"?{kind:"italic"}:t.startsWith("oblique")?{kind:"oblique"}:{kind:"normal"}}function Ma(e){let t=String(e||"100%").trim(),n=t.match(/(\d+(?:\.\d+)?)\s*%\s+(\d+(?:\.\d+)?)\s*%/);if(n){let o=parseFloat(n[1]),a=parseFloat(n[2]);return{min:Math.min(o,a),max:Math.max(o,a)}}let r=t.match(/(\d+(?:\.\d+)?)\s*%/),i=r?parseFloat(r[1]):100;return{min:i,max:i}}function Aa(e){return!e||typeof e!="string"?"":e.replace(/\s+(variable|vf|v[0-9]+)$/i,"").trim().toLowerCase().replace(/\s+/g,"-")}function $a(e,t,n=[]){if(!e)return!1;try{let r=new URL(e,location.href);if(r.origin===location.origin)return!0;let i=r.host.toLowerCase();if(["fonts.googleapis.com","fonts.gstatic.com","use.typekit.net","p.typekit.net","kit.fontawesome.com","use.fontawesome.com","cdn.jsdelivr.net","unpkg.com","cdnjs.cloudflare.com","esm.sh"].some(a=>i.endsWith(a))||n.some(a=>i===a.toLowerCase()||i.endsWith("."+a.toLowerCase())))return!0;let o=(r.pathname+r.search).toLowerCase();if(/\bfont(s)?\b/.test(o)||/\.woff2?(\b|$)/.test(o)||Sa.some(a=>o.includes(a)))return!0;for(let a of t){let s=a.toLowerCase().replace(/\s+/g,"+"),l=a.toLowerCase().replace(/\s+/g,"-"),c=Aa(a);if(o.includes(s)||o.includes(l)||c&&o.includes(c))return!0}return!1}catch{return!1}}function La(e){let t=new Set;for(let n of e||[]){let r=String(n).split("__")[0]?.trim();r&&t.add(r)}return t}function On(e,t){return e&&e.replace(/url\(\s*(['"]?)([^)'"]+)\1\s*\)/g,(n,r,i)=>{let o=(i||"").trim();if(!o||/^data:|^blob:|^https?:|^file:|^about:/i.test(o))return n;let a=o;try{a=new URL(o,t||location.href).href}catch{}return`url("${a}")`})}var Ot=/@import\s+(?:url\(\s*(['"]?)([^)"']+)\1\s*\)|(['"])([^"']+)\3)([^;]*);/g,tt=4;async function Na(e,t,n){if(!e)return e;let r=new Set;function i(s,l){try{return new URL(s,l||location.href).href}catch{return s}}async function o(s,l,c=0){if(c>tt)return console.warn(`[snapDOM] @import depth exceeded (${tt}) at ${l}`),s;let u="",d=0,f;for(;f=Ot.exec(s);){u+=s.slice(d,f.index),d=Ot.lastIndex;let p=(f[2]||f[4]||"").trim(),g=i(p,l);if(r.has(g)){console.warn(`[snapDOM] Skipping circular @import: ${g}`);continue}r.add(g);let h="";try{let m=await G(g,{as:"text",useProxy:n,silent:!0});m.ok&&typeof m.data=="string"&&(h=m.data)}catch{}h?(h=On(h,g),h=await o(h,g,c+1),u+=`
7
7
  /* inlined: ${g} */
8
8
  ${h}
9
- `):u+=f[0]}return u+=s.slice(d),u}let a=vr(e,t||location.href);return a=await o(a,t||location.href,0),a}var Gr=/url\((["']?)([^"')]+)\1\)/g,xl=/@font-face[^{}]*\{[^}]*\}/g;function Jr(e){if(!e)return[];let t=[],n=e.split(",").map(r=>r.trim()).filter(Boolean);for(let r of n){let i=r.match(/^U\+([0-9A-Fa-f?]+)(?:-([0-9A-Fa-f?]+))?$/);if(!i)continue;let o=i[1],a=i[2],s=l=>{if(!l.includes("?"))return parseInt(l,16);let c=parseInt(l.replace(/\?/g,"0"),16),u=parseInt(l.replace(/\?/g,"F"),16);return[c,u]};if(a){let l=s(o),c=s(a),u=Array.isArray(l)?l[0]:l,d=Array.isArray(c)?c[1]:c;t.push([Math.min(u,d),Math.max(u,d)])}else{let l=s(o);Array.isArray(l)?t.push([l[0],l[1]]):t.push([l,l])}}return t}function Kr(e,t){if(!t.length||!e||e.size===0)return!0;for(let n of e)for(let[r,i]of t)if(n>=r&&n<=i)return!0;return!1}function kn(e,t){let n=[];if(!e)return n;for(let r of e.matchAll(Gr)){let i=(r[2]||"").trim();if(!(!i||i.startsWith("data:"))){if(!/^https?:/i.test(i))try{i=new URL(i,t||location.href).href}catch{}n.push(i)}}return n}async function Zr(e,t,n=""){let r=e;for(let i of e.matchAll(Gr)){let o=Sn(i[0]);if(!o)continue;let a=o;if(!a.startsWith("http")&&!a.startsWith("data:"))try{a=new URL(a,t||location.href).href}catch{}if(!pe(a)){if(C.resource?.has(a)){C.font?.add(a),r=r.replace(i[0],`url(${C.resource.get(a)})`);continue}if(!C.font?.has(a))try{let s=await ne(a,{as:"dataURL",useProxy:n,silent:!0});if(s.ok&&typeof s.data=="string"){let l=s.data;C.resource?.set(a,l),C.font?.add(a),r=r.replace(i[0],`url(${l})`)}}catch{console.warn("[snapDOM] Failed to fetch font resource:",a)}}}return r}function vl(e){if(!e.length)return null;let t=(a,s)=>e.some(([l,c])=>!(c<a||l>s)),n=t(0,255)||t(305,305),r=t(256,591)||t(7680,7935),i=t(880,1023),o=t(1024,1279);return t(7840,7929)||t(258,259)||t(416,417)||t(431,432)?"vietnamese":o?"cyrillic":i?"greek":r?"latin-ext":n?"latin":null}function Sr(e={}){let t=new Set((e.families||[]).map(i=>String(i).toLowerCase())),n=new Set((e.domains||[]).map(i=>String(i).toLowerCase())),r=new Set((e.subsets||[]).map(i=>String(i).toLowerCase()));return(i,o)=>{if(t.size&&t.has(i.family.toLowerCase()))return!0;if(n.size)for(let a of i.srcUrls)try{if(n.has(new URL(a).host.toLowerCase()))return!0}catch{}if(r.size){let a=vl(o);if(a&&r.has(a))return!0}return!1}}function Sl(e){if(!e)return e;let t=/@font-face[^{}]*\{[^}]*\}/gi,n=new Set,r=[];for(let o of e.match(t)||[]){let a=o.match(/font-family:\s*([^;]+);/i)?.[1]||"",s=Lt(a),l=(o.match(/font-weight:\s*([^;]+);/i)?.[1]||"400").trim(),c=(o.match(/font-style:\s*([^;]+);/i)?.[1]||"normal").trim(),u=(o.match(/font-stretch:\s*([^;]+);/i)?.[1]||"100%").trim(),d=(o.match(/unicode-range:\s*([^;]+);/i)?.[1]||"").trim(),f=(o.match(/src\s*:\s*([^;}]+)[;}]/i)?.[1]||"").trim(),p=kn(f,location.href),g=p.length?p.map(m=>String(m).toLowerCase()).sort().join("|"):f.toLowerCase(),h=[String(s||"").toLowerCase(),l,c,u,d.toLowerCase(),g].join("|");n.has(h)||(n.add(h),r.push(o))}if(r.length===0)return e;let i=0;return e.replace(t,()=>r[i++]||"")}function El(e,t,n,r,i){let o=Array.from(e||[]).sort().join("|"),a=t?JSON.stringify({families:(t.families||[]).map(u=>String(u).toLowerCase()).sort(),domains:(t.domains||[]).map(u=>String(u).toLowerCase()).sort(),subsets:(t.subsets||[]).map(u=>String(u).toLowerCase()).sort()}):"",s=(n||[]).map(u=>`${(u.family||"").toLowerCase()}::${u.weight||"normal"}::${u.style||"normal"}::${u.src||""}`).sort().join("|"),l=r||"",c=(i||[]).map(u=>String(u).toLowerCase()).sort().join("|");return`fonts-embed-css::req=${o}::ex=${a}::lf=${s}::px=${l}::fd=${c}`}async function Qr(e,t,n,r){let i;try{i=e.cssRules||[]}catch{return}let o=(a,s)=>{try{return new URL(a,s||location.href).href}catch{return a}};for(let a of i){if(a.type===CSSRule.IMPORT_RULE&&a.styleSheet){let s=a.href?o(a.href,t):t;if(r.depth>=kt){console.warn(`[snapDOM] CSSOM import depth exceeded (${kt}) at ${s}`);continue}if(s&&r.visitedSheets.has(s)){console.warn(`[snapDOM] Skipping circular CSSOM import: ${s}`);continue}s&&r.visitedSheets.add(s);let l={...r,depth:(r.depth||0)+1};await Qr(a.styleSheet,s,n,l);continue}if(a.type===CSSRule.FONT_FACE_RULE){let s=(a.style.getPropertyValue("font-family")||"").trim(),l=Lt(s);if(!l||pe(l))continue;let c=(a.style.getPropertyValue("font-weight")||"400").trim(),u=(a.style.getPropertyValue("font-style")||"normal").trim(),d=(a.style.getPropertyValue("font-stretch")||"100%").trim(),f=(a.style.getPropertyValue("src")||"").trim(),p=(a.style.getPropertyValue("unicode-range")||"").trim();if(!r.faceMatchesRequired(l,u,c,d))continue;let g=Jr(p);if(!Kr(r.usedCodepoints,g))continue;let h={family:l,weightSpec:c,styleSpec:u,stretchSpec:d,unicodeRange:p,srcRaw:f,srcUrls:kn(f,t||location.href),href:t||location.href};if(r.simpleExcluder&&r.simpleExcluder(h,g))continue;if(/url\(/i.test(f)){let m=await Zr(f,t||location.href,r.useProxy);await n(`@font-face{font-family:${l};src:${m};font-style:${u};font-weight:${c};font-stretch:${d};${p?`unicode-range:${p};`:""}}`)}else await n(`@font-face{font-family:${l};src:${f};font-style:${u};font-weight:${c};font-stretch:${d};${p?`unicode-range:${p};`:""}}`)}}}async function Cl({required:e,usedCodepoints:t,exclude:n=void 0,localFonts:r=[],useProxy:i="",fontStylesheetDomains:o=[]}={}){e instanceof Set||(e=new Set),t instanceof Set||(t=new Set);let a=new Map;for(let m of e){let[y,x,b,w]=String(m).split("__");if(!y)continue;let E=a.get(y)||[];E.push({w:parseInt(x,10),s:b,st:parseInt(w,10)}),a.set(y,E)}function s(m,y,x,b){if(!a.has(m))return!1;let w=a.get(m),E=ml(x),S=pl(y),v=hl(b),k=E.min!==E.max,T=E.min,W=$=>S.kind==="normal"&&$==="normal"||S.kind!=="normal"&&($==="italic"||$==="oblique"),D=!1;for(let $ of w){let A=k?$.w>=E.min&&$.w<=E.max:$.w===T,O=W(Et($.s)),V=$.st>=v.min&&$.st<=v.max;if(A&&O&&V){D=!0;break}}if(D)return!0;if(!k)for(let $ of w){let A=W(Et($.s)),O=$.st>=v.min&&$.st<=v.max;if(Math.abs(T-$.w)<=300&&A&&O)return!0}if(!k&&S.kind==="normal"&&w.some($=>Et($.s)!=="normal"))for(let $ of w){let A=Math.abs(T-$.w)<=300,O=$.st>=v.min&&$.st<=v.max;if(A&&O)return!0}return!1}let l=Sr(n),c=El(e,n,r,i,o);if(C.resource?.has(c))return C.resource.get(c);let u=wl(e),d=[],f=gn;for(let m of document.querySelectorAll("style")){let y=m.textContent||"";for(let x of y.matchAll(f)){let b=(x[2]||x[4]||"").trim();!b||pe(b)||document.querySelector(`link[rel="stylesheet"][href="${b}"]`)||d.push(b)}}d.length&&await Promise.all(d.map(m=>new Promise(y=>{if(document.querySelector(`link[rel="stylesheet"][href="${m}"]`))return y(null);let x=document.createElement("link");x.rel="stylesheet",x.href=m,x.setAttribute("data-snapdom","injected-import"),x.onload=()=>y(x),x.onerror=()=>y(null),document.head.appendChild(x)})));let p="",g=Array.from(document.querySelectorAll('link[rel="stylesheet"]')).filter(m=>!!m.href);for(let m of g)try{if(pe(m.href))continue;let y="",x=!1;try{x=new URL(m.href,location.href).origin===location.origin}catch{}if(!x){let w=Array.isArray(o)?o:[];if(!yl(m.href,u,w))continue}if(x){let w=Array.from(document.styleSheets).find(E=>E.href===m.href);if(w)try{let E=w.cssRules||[];y=Array.from(E).map(S=>S.cssText).join("")}catch{}}if(!y){let w=await ne(m.href,{as:"text",useProxy:i});if(w?.ok&&typeof w.data=="string"&&(y=w.data),pe(m.href))continue}y=await bl(y,m.href,i);let b="";for(let w of y.match(xl)||[]){let E=(w.match(/font-family:\s*([^;]+);/i)?.[1]||"").trim(),S=Lt(E);if(!S||pe(S))continue;let v=(w.match(/font-weight:\s*([^;]+);/i)?.[1]||"400").trim(),k=(w.match(/font-style:\s*([^;]+);/i)?.[1]||"normal").trim(),T=(w.match(/font-stretch:\s*([^;]+);/i)?.[1]||"100%").trim(),W=(w.match(/unicode-range:\s*([^;]+);/i)?.[1]||"").trim(),D=(w.match(/src\s*:\s*([^;}]+)[;}]/i)?.[1]||"").trim(),$=kn(D,m.href);if(!s(S,k,v,T))continue;let A=Jr(W);if(!Kr(t,A))continue;let O={family:S,weightSpec:v,styleSpec:k,stretchSpec:T,unicodeRange:W,srcRaw:D,srcUrls:$,href:m.href};if(n&&l(O,A))continue;let V=/url\(/i.test(D)?await Zr(w,m.href,i):w;b+=V}b.trim()&&(p+=b)}catch{console.warn("[snapDOM] Failed to process stylesheet:",m.href)}let h={requiredIndex:a,usedCodepoints:t,faceMatchesRequired:s,simpleExcluder:n?Sr(n):null,useProxy:i,visitedSheets:new Set,depth:0};for(let m of document.styleSheets)if(!(m.href&&g.some(y=>y.href===m.href)))try{let y=m.href||location.origin+"/";y&&h.visitedSheets.add(y),await Qr(m,y,async x=>{p+=x},h)}catch{}try{for(let m of document.fonts||[]){if(!m||!m.family||m.status!=="loaded"||!m._snapdomSrc)continue;let y=String(m.family).replace(/^['"]+|['"]+$/g,"");if(pe(y)||!a.has(y)||n?.families&&n.families.some(b=>String(b).toLowerCase()===y.toLowerCase()))continue;let x=m._snapdomSrc;if(!String(x).startsWith("data:")){if(C.resource?.has(m._snapdomSrc))x=C.resource.get(m._snapdomSrc),C.font?.add(m._snapdomSrc);else if(!C.font?.has(m._snapdomSrc))try{let b=await ne(m._snapdomSrc,{as:"dataURL",useProxy:i,silent:!0});if(b.ok&&typeof b.data=="string")x=b.data,C.resource?.set(m._snapdomSrc,x),C.font?.add(m._snapdomSrc);else continue}catch{console.warn("[snapDOM] Failed to fetch dynamic font src:",m._snapdomSrc);continue}}p+=`@font-face{font-family:'${y}';src:url(${x});font-style:${m.style||"normal"};font-weight:${m.weight||"normal"};}`}}catch{}for(let m of r){if(!m||typeof m!="object")continue;let y=String(m.family||"").replace(/^['"]+|['"]+$/g,"");if(!y||pe(y)||!a.has(y)||n?.families&&n.families.some(v=>String(v).toLowerCase()===y.toLowerCase()))continue;let x=m.weight!=null?String(m.weight):"normal",b=m.style!=null?String(m.style):"normal",w=m.stretchPct!=null?`${m.stretchPct}%`:"100%",E=String(m.src||""),S=E;if(!S.startsWith("data:")){if(C.resource?.has(E))S=C.resource.get(E),C.font?.add(E);else if(!C.font?.has(E))try{let v=await ne(E,{as:"dataURL",useProxy:i,silent:!0});if(v.ok&&typeof v.data=="string")S=v.data,C.resource?.set(E,S),C.font?.add(E);else continue}catch{console.warn("[snapDOM] Failed to fetch localFonts src:",E);continue}}p+=`@font-face{font-family:'${y}';src:url(${S});font-style:${b};font-weight:${x};font-stretch:${w};}`}return p&&(p=Sl(p),C.resource?.set(c,p)),p}function eo(e){let t=new Set;if(!e)return t;let n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,null),r=a=>{let s=Lt(a.fontFamily);if(!s)return;let l=(c,u,d)=>`${s}__${St(c)}__${Et(u)}__${fl(d)}`;t.add(l(a.fontWeight,a.fontStyle,a.fontStretch))};r(getComputedStyle(e));let i=getComputedStyle(e,"::before");i&&i.content&&i.content!=="none"&&r(i);let o=getComputedStyle(e,"::after");for(o&&o.content&&o.content!=="none"&&r(o);n.nextNode();){let a=n.currentNode,s=getComputedStyle(a);r(s);let l=getComputedStyle(a,"::before");l&&l.content&&l.content!=="none"&&r(l);let c=getComputedStyle(a,"::after");c&&c.content&&c.content!=="none"&&r(c)}return t}function kl(e){let t=new Set,n=i=>{if(i)for(let o of i)t.add(o.codePointAt(0))},r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,null);for(;r.nextNode();){let i=r.currentNode;if(i.nodeType===Node.TEXT_NODE)n(i.nodeValue||"");else if(i.nodeType===Node.ELEMENT_NODE){let o=i;for(let a of["::before","::after"]){let s=getComputedStyle(o,a)?.getPropertyValue("content");if(!(!s||s==="none"))if(/^"/.test(s)||/^'/.test(s))n(s.slice(1,-1));else{let l=s.match(/\\[0-9A-Fa-f]{1,6}/g);if(l)for(let c of l)try{t.add(parseInt(c.slice(1),16))}catch{}}}}}return t}async function to(e,t=2){try{await document.fonts.ready}catch{}let n=Array.from(e||[]).filter(Boolean);if(n.length===0)return;let r=()=>{let i=document.createElement("div");i.style.cssText="position:absolute!important;left:-9999px!important;top:0!important;opacity:0!important;pointer-events:none!important;contain:layout size style;";for(let o of n){let a=document.createElement("span");a.textContent="AaBbGg1234\xC1\xC9\xCD\xD3\xDA\xE7\xF1\u2014\u221E",a.style.fontFamily=`"${o}"`,a.style.fontWeight="700",a.style.fontStyle="italic",a.style.fontSize="32px",a.style.lineHeight="1",a.style.whiteSpace="nowrap",a.style.margin="0",a.style.padding="0",i.appendChild(a)}document.body.appendChild(i),i.offsetWidth,document.body.removeChild(i)};for(let i=0;i<Math.max(1,t);i++)r(),await new Promise(o=>requestAnimationFrame(()=>requestAnimationFrame(o)))}re();function Ml(e){return/\bcounter\s*\(|\bcounters\s*\(/.test(e||"")}function Al(e){return(e||"").replace(/"([^"]*)"/g,"$1")}function Er(e,t=!1){let n="",r=Math.max(1,e);for(;r>0;)r--,n=String.fromCharCode(97+r%26)+n,r=Math.floor(r/26);return t?n.toUpperCase():n}function Cr(e,t=!0){let n=[[1e3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]],r=Math.max(1,Math.min(3999,e)),i="";for(let[o,a]of n)for(;r>=o;)i+=a,r-=o;return t?i:i.toLowerCase()}function kr(e,t){switch((t||"decimal").toLowerCase()){case"decimal":return String(Math.max(0,e));case"decimal-leading-zero":return(e<10?"0":"")+String(Math.max(0,e));case"lower-alpha":return Er(e,!1);case"upper-alpha":return Er(e,!0);case"lower-roman":return Cr(e,!1);case"upper-roman":return Cr(e,!0);default:return String(Math.max(0,e))}}function $l(e){let t=()=>C?.session?.__counterEpoch??0,n=t(),r=new WeakMap,i=e instanceof Document?e.documentElement:e,o=f=>f&&f.tagName==="LI",a=f=>{let p=0,g=f?.parentElement;if(!g)return 0;for(let h of g.children){if(h===f)break;h.tagName==="LI"&&p++}return p},s=f=>{let p=new Map;for(let[g,h]of f)p.set(g,h.slice());return p},l=(f,p,g)=>{let h=s(f),m;try{m=g.style?.counterReset||getComputedStyle(g).counterReset}catch{}if(m&&m!=="none")for(let x of m.split(",")){let b=x.trim().split(/\s+/),w=b[0],E=Number.isFinite(Number(b[1]))?Number(b[1]):0;if(!w)continue;let S=p.get(w);if(S&&S.length){let v=S.slice();v.push(E),h.set(w,v)}else h.set(w,[E])}let y;try{y=g.style?.counterIncrement||getComputedStyle(g).counterIncrement}catch{}if(y&&y!=="none")for(let x of y.split(",")){let b=x.trim().split(/\s+/),w=b[0],E=Number.isFinite(Number(b[1]))?Number(b[1]):1;if(!w)continue;let S=h.get(w)||[];S.length===0&&S.push(0),S[S.length-1]+=E,h.set(w,S)}try{if(getComputedStyle(g).display==="list-item"&&o(g)){let x=g.parentElement,b=1;if(x&&x.tagName==="OL"){let E=x.getAttribute("start"),S=Number.isFinite(Number(E))?Number(E):1,v=a(g),k=g.getAttribute("value");b=Number.isFinite(Number(k))?Number(k):S+v}else b=1+a(g);let w=h.get("list-item")||[];w.length===0&&w.push(0),w[w.length-1]=b,h.set("list-item",w)}}catch{}return h},c=(f,p,g)=>{let h=l(g,p,f);r.set(f,h);let m=h;for(let y of f.children)m=c(y,h,m);return h},u=new Map;c(i,u,u);function d(){let f=t();if(f!==n){n=f;let p=new Map;c(i,p,p)}}return{get(f,p){d();let g=r.get(f)?.get(p);return g&&g.length?g[g.length-1]:0},getStack(f,p){d();let g=r.get(f)?.get(p);return g?g.slice():[]}}}function Ll(e,t,n){if(!e||e==="none")return e;try{let r=/\b(counter|counters)\s*\(([^)]+)\)/g,i=e.replace(r,(o,a,s)=>{let l=String(s).split(",").map(c=>c.trim());if(a==="counter"){let c=l[0]?.replace(/^["']|["']$/g,""),u=(l[1]||"decimal").toLowerCase(),d=n.get(t,c);return kr(d,u)}else{let c=l[0]?.replace(/^["']|["']$/g,""),u=l[1]?.replace(/^["']|["']$/g,"")??"",d=(l[2]||"decimal").toLowerCase(),f=n.getStack(t,c);return f.length?f.map(p=>kr(p,d)).join(u):""}});return Al(i)}catch{return"- "}}Ue();re();var Oe=new WeakMap,Mr=300;function Tl(e,t){let n=no(e);return t?(t.__pseudoPreflightFp!==n&&(t.__pseudoPreflight=$r(e),t.__pseudoPreflightFp=n),!!t.__pseudoPreflight):$r(e)}function yn(e){try{return e&&e.cssRules?e.cssRules:null}catch{return null}}function no(e){let t=e.querySelectorAll('style,link[rel~="stylesheet"]'),n=`n:${t.length}|`,r=0;for(let o=0;o<t.length;o++){let a=t[o];if(a.tagName==="STYLE"){let s=a.textContent?a.textContent.length:0;n+=`S${s}|`;let l=a.sheet,c=l?yn(l):null;c&&(r+=c.length)}else{let s=a.getAttribute("href")||"",l=a.getAttribute("media")||"all";n+=`L${s}|m:${l}|`;let c=a.sheet,u=c?yn(c):null;u&&(r+=u.length)}}let i=e.adoptedStyleSheets;return n+=`ass:${Array.isArray(i)?i.length:0}|tr:${r}`,n}function Ar(e,t,n){let r=yn(e);if(!r)return!1;for(let i=0;i<r.length;i++){if(n.budget<=0)return!1;let o=r[i],a=o&&o.cssText?o.cssText:"";n.budget--;for(let s of t)if(a.includes(s))return!0;if(o&&o.cssRules&&o.cssRules.length)for(let s=0;s<o.cssRules.length&&n.budget>0;s++){let l=o.cssRules[s],c=l&&l.cssText?l.cssText:"";n.budget--;for(let u of t)if(c.includes(u))return!0}if(n.budget<=0)return!1}return!1}function $r(e=document){let t=no(e),n=Oe.get(e);if(n&&n.fingerprint===t)return n.result;let r=["::before","::after","::first-letter",":before",":after",":first-letter","counter(","counters(","counter-increment","counter-reset"],i=e.querySelectorAll("style");for(let a=0;a<i.length;a++){let s=i[a].textContent||"";for(let l of r)if(s.includes(l))return Oe.set(e,{fingerprint:t,result:!0}),!0}let o=e.adoptedStyleSheets;if(Array.isArray(o)&&o.length){let a={budget:Mr};try{for(let s of o)if(Ar(s,r,a))return Oe.set(e,{fingerprint:t,result:!0}),!0}catch{}}{let a=e.querySelectorAll('style,link[rel~="stylesheet"]'),s={budget:Mr};for(let l=0;l<a.length&&s.budget>0;l++){let c=a[l],u=null;if(c.tagName,u=c.sheet||null,u&&Ar(u,r,s))return Oe.set(e,{fingerprint:t,result:!0}),!0}}return e.querySelector('[style*="counter("], [style*="counters("]')?(Oe.set(e,{fingerprint:t,result:!0}),!0):(Oe.set(e,{fingerprint:t,result:!1}),!1)}var Be=new WeakMap,Lr=-1;function Nl(e){return(e||"").replace(/"([^"]*)"/g,"$1")}function Rl(e){if(!e)return"";let t=[],n=/"([^"]*)"/g,r;for(;r=n.exec(e);)t.push(r[1]);return t.length?t.join(""):Nl(e)}function wn(e,t){let n=e.parentElement,r=n?Be.get(n):null;return r?{get(i,o){let a=t.get(i,o),s=r.get(o);return typeof s=="number"?Math.max(a,s):a},getStack(i,o){let a=t.getStack(i,o);if(!a.length)return a;let s=r.get(o);if(typeof s=="number"){let l=a.slice();return l[l.length-1]=Math.max(l[l.length-1],s),l}return a}}:t}function bn(e,t,n){let r=new Map;function i(l){let c=[];if(!l||l==="none")return c;for(let u of String(l).split(",")){let d=u.trim().split(/\s+/),f=d[0],p=Number.isFinite(Number(d[1]))?Number(d[1]):void 0;f&&c.push({name:f,num:p})}return c}let o=i(t?.counterReset),a=i(t?.counterIncrement);function s(l){if(r.has(l))return r.get(l).slice();let c=n.getStack(e,l);c=c.length?c.slice():[];let u=o.find(f=>f.name===l);if(u){let f=Number.isFinite(u.num)?u.num:0;c=c.length?[...c,f]:[f]}let d=a.find(f=>f.name===l);if(d){let f=Number.isFinite(d.num)?d.num:1;c.length===0&&(c=[0]),c[c.length-1]+=f}return r.set(l,c.slice()),c}return{get(l,c){let u=s(c);return u.length?u[u.length-1]:0},getStack(l,c){return s(c)},__incs:a}}function _l(e,t,n){let r;try{r=he(e,t)}catch{}let i=r?.content;if(!i||i==="none"||i==="normal")return{text:"",incs:[]};let o=wn(e,n),a=bn(e,r,o),s=Ml(i)?Ll(i,e,a):i;return{text:Rl(s),incs:a.__incs||[]}}async function xn(e,t,n,r){if(!(e instanceof Element)||!(t instanceof Element))return;let i=e.ownerDocument||document;if(!Tl(i,n))return;let o=C?.session?.__counterEpoch??0;if(Lr!==o&&(Be=new WeakMap,n&&(n.__counterCtx=null),Lr=o),!n.__counterCtx)try{n.__counterCtx=$l(e.ownerDocument||document)}catch(l){F(n,"buildCounterContext failed",l)}let a=n.__counterCtx;for(let l of["::before","::after","::first-letter"])try{let c=he(e,l);if(!c||c.content==="none"&&c.backgroundImage==="none"&&c.backgroundColor==="transparent"&&(c.borderStyle==="none"||parseFloat(c.borderWidth)===0)&&(!c.transform||c.transform==="none")&&c.display==="inline")continue;if(l==="::first-letter"){let P=he(e);if(!(c.color!==P.color||c.fontSize!==P.fontSize||c.fontWeight!==P.fontWeight))continue;let R=Array.from(t.childNodes).find(Ye=>Ye.nodeType===Node.TEXT_NODE&&Ye.textContent?.trim().length>0);if(!R)continue;let B=R.textContent,H=B.match(/^([^\p{L}\p{N}\s]*[\p{L}\p{N}](?:['’])?)/u)?.[0],ge=B.slice(H?.length||0);if(!H||/[\uD800-\uDFFF]/.test(H))continue;let ue=document.createElement("span");ue.textContent=H,ue.dataset.snapdomPseudo="::first-letter";let Ne=dr(c),Re=un(Ne,"span");n.styleMap.set(ue,Re);let Se=document.createTextNode(ge);t.replaceChild(Se,R),t.insertBefore(ue,Se);continue}let u=c.content??"",d=u===""||u==="none"||u==="normal",{text:f,incs:p}=_l(e,l,a),g=c.backgroundImage,h=c.backgroundColor,m=c.fontFamily,y=parseInt(c.fontSize)||32,x=parseInt(c.fontWeight)||!1,b=c.color||"#000",w=c.borderStyle,E=parseFloat(c.borderWidth),S=c.transform,v=pe(m),k=!d&&f!=="",T=g&&g!=="none",W=h&&h!=="transparent"&&h!=="rgba(0, 0, 0, 0)",D=w&&w!=="none"&&E>0,$=S&&S!=="none";if(!(k||T||W||D||$)){if(p&&p.length&&e.parentElement){let P=Be.get(e.parentElement)||new Map;for(let{name:R}of p){if(!R)continue;let B=wn(e,a),H=bn(e,he(e,l),B).get(e,R);P.set(R,H)}Be.set(e.parentElement,P)}continue}let A=document.createElement("span");A.dataset.snapdomPseudo=l,A.style.pointerEvents="none";let O=dr(c),V=un(O,"span");if(n.styleMap.set(A,V),v&&f&&f.length===1){let{dataUrl:P,width:R,height:B}=await cl(f,m,x,y,b),H=document.createElement("img");H.src=P,H.style=`height:${y}px;width:${R/B*y}px;object-fit:contain;`,A.appendChild(H),t.dataset.snapdomHasIcon="true"}else if(f&&f.startsWith("url(")){let P=Sn(f);if(P?.trim())try{let R=await ne(Ct(P),{as:"dataURL",useProxy:r.useProxy});if(R?.ok&&typeof R.data=="string"){let B=document.createElement("img");B.src=R.data,B.style=`width:${y}px;height:auto;object-fit:contain;`,A.appendChild(B)}}catch(R){console.error(`[snapdom] Error in pseudo ${l} for`,e,R)}}else!v&&k&&(A.textContent=f);A.style.backgroundImage="none","maskImage"in A.style&&(A.style.maskImage="none"),"webkitMaskImage"in A.style&&(A.style.webkitMaskImage="none");try{A.style.backgroundRepeat=c.backgroundRepeat,A.style.backgroundSize=c.backgroundSize,c.backgroundPositionX&&c.backgroundPositionY?(A.style.backgroundPositionX=c.backgroundPositionX,A.style.backgroundPositionY=c.backgroundPositionY):A.style.backgroundPosition=c.backgroundPosition,A.style.backgroundOrigin=c.backgroundOrigin,A.style.backgroundClip=c.backgroundClip,A.style.backgroundAttachment=c.backgroundAttachment,A.style.backgroundBlendMode=c.backgroundBlendMode}catch{}if(T)try{let P=dn(g),R=await Promise.all(P.map(Pr));A.style.backgroundImage=R.join(", ")}catch(P){console.warn(`[snapdom] Failed to inline background-image for ${l}`,P)}W&&(A.style.backgroundColor=h);let ct=A.childNodes.length>0||A.textContent?.trim()!==""||T||W||D||$;if(p&&p.length&&e.parentElement){let P=Be.get(e.parentElement)||new Map,R=wn(e,a),B=bn(e,he(e,l),R);for(let{name:H}of p){if(!H)continue;let ge=B.get(e,H);P.set(H,ge)}Be.set(e.parentElement,P)}if(!ct)continue;l==="::before"?(t.dataset.snapdomHasBefore="1",t.insertBefore(A,t.firstChild)):(t.dataset.snapdomHasAfter="1",t.appendChild(A))}catch(c){console.warn(`[snapdom] Failed to capture ${l} for`,e,c)}let s=Array.from(t.children).filter(l=>!l.dataset.snapdomPseudo);if(n.nodeMap)for(let l of s){let c=n.nodeMap.get(l);c instanceof Element&&await xn(c,l,n,r)}else{let l=Array.from(e.children);for(let c=0;c<Math.min(l.length,s.length);c++)await xn(l[c],s[c],n,r)}}function Pl(e,t){if(!e||!(e instanceof Element))return;let n=e.ownerDocument||document,r=t||n,i=e instanceof SVGSVGElement?[e]:Array.from(e.querySelectorAll("svg"));if(i.length===0)return;let o=/url\(\s*#([^)]+)\)/g,a=["fill","stroke","filter","clip-path","mask","marker","marker-start","marker-mid","marker-end"],s=w=>window.CSS&&CSS.escape?CSS.escape(w):w.replace(/[^a-zA-Z0-9_-]/g,"\\$&"),l="http://www.w3.org/1999/xlink",c=w=>{if(!w||!w.getAttribute)return null;let E=w.getAttribute("href")||w.getAttribute("xlink:href")||(typeof w.getAttributeNS=="function"?w.getAttributeNS(l,"href"):null);if(E)return E;let S=w.attributes;if(!S)return null;for(let v=0;v<S.length;v++){let k=S[v];if(!k||!k.name)continue;if(k.name==="href")return k.value;let T=k.name.indexOf(":");if(T!==-1&&k.name.slice(T+1)==="href")return k.value}return null},u=new Set(Array.from(e.querySelectorAll("[id]")).map(w=>w.id)),d=new Set,f=!1,p=(w,E=null)=>{if(!w)return;o.lastIndex=0;let S;for(;S=o.exec(w);){f=!0;let v=(S[1]||"").trim();v&&(u.has(v)||(d.add(v),E&&!E.has(v)&&E.add(v)))}},g=w=>{let E=w.querySelectorAll("use");for(let v of E){let k=c(v);if(!k||!k.startsWith("#"))continue;f=!0;let T=k.slice(1).trim();T&&!u.has(T)&&d.add(T)}let S=w.querySelectorAll('*[style*="url("],*[fill^="url("], *[stroke^="url("],*[filter^="url("],*[clip-path^="url("],*[mask^="url("],*[marker^="url("],*[marker-start^="url("],*[marker-mid^="url("],*[marker-end^="url("]');for(let v of S){p(v.getAttribute("style")||"");for(let k of a)p(v.getAttribute(k))}};for(let w of i)g(w);if(!f)return;let h=e.querySelector("svg.inline-defs-container");h||(h=n.createElementNS("http://www.w3.org/2000/svg","svg"),h.classList.add("inline-defs-container"),h.setAttribute("aria-hidden","true"),h.setAttribute("style","position:absolute;width:0;height:0;overflow:hidden"),e.insertBefore(h,e.firstChild||null));let m=h.querySelector("defs")||null,y=w=>{if(!w||u.has(w))return null;let E=s(w),S=v=>{let k=r.querySelector(v);return k&&!e.contains(k)?k:null};return S(`svg defs > *#${E}`)||S(`svg > symbol#${E}`)||S(`*#${E}`)};if(!d.size)return;let x=new Set(d),b=new Set;for(;x.size;){let w=x.values().next().value;if(x.delete(w),!w||u.has(w)||b.has(w))continue;let E=y(w);if(!E){b.add(w);continue}m||(m=n.createElementNS("http://www.w3.org/2000/svg","defs"),h.appendChild(m));let S=E.cloneNode(!0);S.id||S.setAttribute("id",w),m.appendChild(S),b.add(w),u.add(w);let v=[S,...S.querySelectorAll("*")];for(let k of v){let T=c(k);if(T&&T.startsWith("#")){let D=T.slice(1).trim();D&&!u.has(D)&&!b.has(D)&&x.add(D)}let W=k.getAttribute?.("style")||"";W&&p(W,x);for(let D of a){let $=k.getAttribute?.(D);$&&p($,x)}}}}re();function Fl(e,t){if(!e||!t)return;let n=e.scrollTop||0;if(!n)return;getComputedStyle(t).position==="static"&&(t.style.position="relative");let r=e.getBoundingClientRect(),i=e.clientHeight,o="data-snap-ph",a=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);for(;a.nextNode();){let s=a.currentNode,l=getComputedStyle(s),c=l.position;if(c!=="sticky"&&c!=="-webkit-sticky")continue;let u=Tr(l.top),d=Tr(l.bottom);if(u==null&&d==null)continue;let f=Il(s,e),p=Dl(t,f,o);if(!p)continue;let g=s.getBoundingClientRect(),h=g.width,m=g.height,y=g.left-r.left;if(!(h>0&&m>0)||!Number.isFinite(y))continue;let x=u!=null?u+n:n+(i-m-d);if(!Number.isFinite(x))continue;let b=Number.parseInt(l.zIndex,10),w=Number.isFinite(b),E=w?Math.max(b,1)+1:2,S=w?b-1:0,v=p.cloneNode(!1);v.setAttribute(o,"1"),v.style.position="sticky",v.style.left=`${y}px`,v.style.top=`${x}px`,v.style.width=`${h}px`,v.style.height=`${m}px`,v.style.visibility="hidden",v.style.zIndex=String(S),v.style.overflow="hidden",v.style.background="transparent",v.style.boxShadow="none",v.style.filter="none",p.parentElement?.insertBefore(v,p),p.style.position="absolute",p.style.left=`${y}px`,p.style.top=`${x}px`,p.style.bottom="auto",p.style.zIndex=String(E),p.style.pointerEvents="none"}}function Tr(e){if(!e||e==="auto")return null;let t=Number.parseFloat(e);return Number.isFinite(t)?t:null}function Il(e,t){let n=[];for(let r=e;r&&r!==t;){let i=r.parentElement;if(!i)break;n.push(Array.prototype.indexOf.call(i.children,r)),r=i}return n.reverse()}function Dl(e,t,n){let r=e;for(let i=0;i<t.length;i++)if(r=Ol(r,n)[t[i]],!r)return null;return r instanceof HTMLElement?r:null}function Ol(e,t){let n=[],r=e.children;for(let i=0;i<r.length;i++){let o=r[i];o.hasAttribute(t)||n.push(o)}return n}function Hl(e){let t=getComputedStyle(e),n=t.outlineStyle,r=t.outlineWidth,i=t.borderStyle,o=t.borderWidth,a=n!=="none"&&parseFloat(r)>0,s=i==="none"||parseFloat(o)===0;a&&s&&(e.style.border=`${r} solid transparent`)}async function Wl(e,t={}){let n={styleMap:C.session.styleMap,styleCache:C.session.styleCache,nodeMap:C.session.nodeMap,options:t},r,i="",o="";Hl(e);try{Pl(e)}catch(l){console.warn("inlineExternal defs or symbol failed:",l)}try{r=await vt(e,n,t)}catch(l){throw console.warn("deepClone failed:",l),l}try{await xn(e,r,n,t)}catch(l){console.warn("inlinePseudoElements failed:",l)}await Qa(r,n);try{let l=r.querySelectorAll("style[data-sd]");for(let c of l)o+=c.textContent||"",c.remove()}catch(l){F(n,"Failed to extract shadow CSS from style[data-sd]",l)}let a=aa(n.styleMap);i=Array.from(a.entries()).map(([l,c])=>`.${c}{${l}}`).join(""),i=o+"[data-snapdom-has-after]::after,[data-snapdom-has-before]::before{content:none!important;display:none!important}"+i;for(let[l,c]of n.styleMap.entries()){if(l.tagName==="STYLE")continue;if(l.getRootNode&&l.getRootNode()instanceof ShadowRoot){l.setAttribute("style",c.replace(/;/g,"; "));continue}let u=a.get(c);u&&l.classList.add(u);let d=l.style?.backgroundImage,f=l.dataset?.snapdomHasIcon;d&&d!=="none"&&(l.style.backgroundImage=d),f&&(l.style.verticalAlign="middle",l.style.display="inline")}for(let[l,c]of n.nodeMap.entries()){let u=c.scrollLeft,d=c.scrollTop;if((u||d)&&l instanceof HTMLElement){l.style.overflow="hidden",l.style.scrollbarWidth="none",l.style.msOverflowStyle="none";let f=document.createElement("div");for(f.style.transform=`translate(${-u}px, ${-d}px)`,f.style.willChange="transform",f.style.display="inline-block",f.style.width="100%";l.firstChild;)f.appendChild(l.firstChild);l.appendChild(f)}}let s=r instanceof HTMLElement&&r.firstElementChild instanceof HTMLElement?r.firstElementChild:r;if(Fl(e,s),e===n.nodeMap.get(r)){let l=n.styleCache.get(e)||he(e);n.styleCache.set(e,l);let c=Xi(l.transform);r.style.margin="0",r.style.top="auto",r.style.left="auto",r.style.right="auto",r.style.bottom="auto",r.style.animation="none",r.style.transition="none",r.style.willChange="auto",r.style.float="none",r.style.clear="none",r.style.transform=c||""}for(let[l,c]of n.nodeMap.entries())c.tagName==="PRE"&&(l.style.marginTop="0",l.style.marginBlockStart="0");return{clone:r,classCSS:i,styleCache:n.styleCache}}Ue();var ro="http://www.w3.org/1999/xlink";function Bl(e){return e.getAttribute("href")||e.getAttribute("xlink:href")||(typeof e.getAttributeNS=="function"?e.getAttributeNS(ro,"href"):null)}function Ul(e){let t=parseInt(e.dataset?.snapdomWidth||"",10)||0,n=parseInt(e.dataset?.snapdomHeight||"",10)||0,r=parseInt(e.getAttribute("width")||"",10)||0,i=parseInt(e.getAttribute("height")||"",10)||0,o=parseFloat(e.style?.width||"")||0,a=parseFloat(e.style?.height||"")||0,s=t||o||r||e.width||e.naturalWidth||100,l=n||a||i||e.height||e.naturalHeight||100;return{width:s,height:l}}async function ql(e,t={}){let n=Array.from(e.querySelectorAll("img")),r=async a=>{if(!a.getAttribute("src")){let f=a.currentSrc||a.src||"";f&&a.setAttribute("src",f)}a.removeAttribute("srcset"),a.removeAttribute("sizes");let s=a.src||"";if(!s)return;let l=await ne(s,{as:"dataURL",useProxy:t.useProxy});if(l.ok&&typeof l.data=="string"&&l.data.startsWith("data:")){a.src=l.data,a.width||(a.width=a.naturalWidth||100),a.height||(a.height=a.naturalHeight||100);return}let{width:c,height:u}=Ul(a),{fallbackURL:d}=t||{};if(d)try{let f=typeof d=="function"?await d({width:c,height:u,src:s,element:a}):d;if(f){let p=await ne(f,{as:"dataURL",useProxy:t.useProxy});if(p?.ok&&typeof p.data=="string"){a.src=p.data,a.width||(a.width=c),a.height||(a.height=u);return}}}catch{}if(t.placeholders!==!1){let f=document.createElement("div");f.style.cssText=[`width:${c}px`,`height:${u}px`,"background:#ccc","display:inline-block","text-align:center",`line-height:${u}px`,"color:#666","font-size:12px","overflow:hidden"].join(";"),f.textContent="img",a.replaceWith(f)}else{let f=document.createElement("div");f.style.cssText=`display:inline-block;width:${c}px;height:${u}px;visibility:hidden;`,a.replaceWith(f)}};for(let a=0;a<n.length;a+=4){let s=n.slice(a,a+4).map(r);await Promise.allSettled(s)}let i=Array.from(e.querySelectorAll("image")),o=async a=>{let s=Bl(a);if(!s||s.startsWith("data:")||s.startsWith("blob:"))return;let l=await ne(s,{as:"dataURL",useProxy:t.useProxy});l.ok&&typeof l.data=="string"&&l.data.startsWith("data:")&&(a.setAttribute("href",l.data),a.removeAttribute("xlink:href"),typeof a.removeAttributeNS=="function"&&a.removeAttributeNS(ro,"href"))};for(let a=0;a<i.length;a+=4){let s=i.slice(a,a+4).map(o);await Promise.allSettled(s)}}ie();async function jl(e,t,n,r={}){let i=[[e,t]],o=["background-image","mask","mask-image","-webkit-mask","-webkit-mask-image","mask-source","mask-box-image-source","mask-border-source","-webkit-mask-box-image-source","border-image","border-image-source"],a=["mask-position","mask-size","mask-repeat","-webkit-mask-position","-webkit-mask-size","-webkit-mask-repeat","mask-origin","mask-clip","-webkit-mask-origin","-webkit-mask-clip","-webkit-mask-position-x","-webkit-mask-position-y"],s=["background-position","background-position-x","background-position-y","background-size","background-repeat","background-origin","background-clip","background-attachment","background-blend-mode"],l=["border-image-slice","border-image-width","border-image-outset","border-image-repeat"];for(;i.length;){let[c,u]=i.shift();if(!u)continue;let d=n.get(c)||he(c);n.has(c)||n.set(c,d);let f=(()=>{let h=d.getPropertyValue("border-image"),m=d.getPropertyValue("border-image-source");return h&&h!=="none"||m&&m!=="none"})();for(let h of s){let m=d.getPropertyValue(h);m&&u.style.setProperty(h,m)}for(let h of o){let m=d.getPropertyValue(h);if(h==="background-image"&&(!m||m==="none")){let b=d.getPropertyValue("background");b&&/url\s*\(/.test(b)&&(m=dn(b).find(w=>/url\s*\(/.test(w))||m)}if(!m||m==="none")continue;let y=dn(m),x=await Promise.all(y.map(b=>Pr(b,r)));x.some(b=>b&&b!=="none"&&!/^url\(undefined/.test(b))&&u.style.setProperty(h,x.join(", "))}for(let h of a){let m=d.getPropertyValue(h);!m||m==="initial"||u.style.setProperty(h,m)}if(f)for(let h of l){let m=d.getPropertyValue(h);!m||m==="initial"||u.style.setProperty(h,m)}let p=c.shadowRoot?Array.from(c.shadowRoot.children).filter(h=>h.tagName!=="STYLE"):Array.from(c.children),g=Array.from(u.children).filter(h=>!(h.dataset?.snapdomPseudo||h.tagName==="STYLE"&&h.dataset?.sd));for(let h=0;h<Math.min(p.length,g.length);h++)i.push([p[h],g[h]])}}ie();re();function zl(e){if(!e)return()=>{};let t=[];function n(r){let i=Vl(r);i&&t.push(i);for(let o of r.children||[])n(o)}return n(e),()=>t.forEach(r=>r())}function Vl(e){if(!e)return()=>{};let t=Yl(e);if(t<=0)return()=>{};if(!Jl(e))return()=>{};let n=getComputedStyle(e),r=Math.round(Xl(n)*t+Gl(n)),i=e.textContent??"",o=i;if(e.scrollHeight<=r+.5)return()=>{};let a=0,s=i.length,l=-1;for(;a<=s;){let c=a+s>>1;e.textContent=i.slice(0,c)+"\u2026",e.scrollHeight<=r+.5?(l=c,a=c+1):s=c-1}return e.textContent=(l>=0?i.slice(0,l):"")+"\u2026",()=>{e.textContent=o}}function Yl(e){let t=getComputedStyle(e),n=t.getPropertyValue("-webkit-line-clamp")||t.getPropertyValue("line-clamp");n=(n||"").trim();let r=parseInt(n,10);return Number.isFinite(r)&&r>0?r:0}function Xl(e){let t=(e.lineHeight||"").trim(),n=parseFloat(e.fontSize)||16;return!t||t==="normal"?Math.round(n*1.2):t.endsWith("px")?parseFloat(t):/^\d+(\.\d+)?$/.test(t)?Math.round(parseFloat(t)*n):t.endsWith("%")?Math.round(parseFloat(t)/100*n):Math.round(n*1.2)}function Gl(e){return(parseFloat(e.paddingTop)||0)+(parseFloat(e.paddingBottom)||0)}function Jl(e){return e.childElementCount>0?!1:Array.from(e.childNodes).some(t=>t.nodeType===Node.TEXT_NODE)}var tt=[];function oo(e){if(!e)return null;if(Array.isArray(e)){let[t,n]=e;return typeof t=="function"?t(n):t}if(typeof e=="object"&&"plugin"in e){let{plugin:t,options:n}=e;return typeof t=="function"?t(n):t}return typeof e=="function"?e():e}function Kl(...e){let t=e.flat();for(let n of t){let r=oo(n);r&&(tt.some(i=>i&&i.name&&r.name&&i.name===r.name)||tt.push(r))}}function io(e){return(e&&Array.isArray(e.plugins)?e.plugins:tt)||tt}async function be(e,t,n){let r=n,i=io(t);for(let o of i){let a=o&&typeof o[e]=="function"?o[e]:null;if(!a)continue;let s=await a(t,r);typeof s<"u"&&(r=s)}return r}async function Zl(e,t,n){let r=[],i=io(t);for(let o of i){let a=o&&typeof o[e]=="function"?o[e]:null;if(!a)continue;let s=await a(t,n);typeof s<"u"&&r.push(s)}return r}function Ql(e){let t=[];if(Array.isArray(e))for(let n of e){let r=oo(n);if(!r||!r.name)continue;let i=t.findIndex(o=>o&&o.name===r.name);i>=0&&t.splice(i,1),t.push(r)}for(let n of tt)n&&n.name&&!t.some(r=>r.name===n.name)&&t.push(n);return Object.freeze(t)}function es(e,t,n=!1){return!e||e.plugins&&!n||(e.plugins=Ql(t)),e}ie();function ts(e,t,n={}){if(!e||!t||!t.style)return;let r=getComputedStyle(e);try{t.style.boxShadow="none"}catch(o){F(n,"stripRootShadows boxShadow",o)}try{t.style.textShadow="none"}catch(o){F(n,"stripRootShadows textShadow",o)}try{t.style.outline="none"}catch(o){F(n,"stripRootShadows outline",o)}let i=(r.filter||"").replace(/\bblur\([^()]*\)\s*/gi,"").replace(/\bdrop-shadow\([^()]*\)\s*/gi,"").trim().replace(/\s+/g," ");try{t.style.filter=i.length?i:"none"}catch(o){F(n,"stripRootShadows filter",o)}}function ns(e){let t=document.createTreeWalker(e,NodeFilter.SHOW_COMMENT),n=[];for(;t.nextNode();)n.push(t.currentNode);for(let r of n)r.remove()}function rs(e,t={}){let{stripFrameworkDirectives:n=!0}=t,r=new Set(["xml","xlink"]),i=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);for(;i.nextNode();){let o=i.currentNode;for(let a of Array.from(o.attributes)){let s=a.name;if(s.includes("@")){o.removeAttribute(s);continue}if(s.includes(":")){let l=s.split(":",1)[0];if(!r.has(l)){o.removeAttribute(s);continue}}if(n&&(s.startsWith("x-")||s.startsWith("v-")||s.startsWith(":")||s.startsWith("on:")||s.startsWith("bind:")||s.startsWith("let:")||s.startsWith("class:"))){o.removeAttribute(s);continue}}}}function os(e,t={}){e&&(rs(e,t),ns(e))}function is(e){try{let t=e.getAttribute?.("style")||"";return/\b(height|width|block-size|inline-size)\s*:/.test(t)}catch{return!1}}function as(e){return e instanceof HTMLImageElement||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement||e instanceof HTMLIFrameElement||e instanceof SVGElement||e instanceof HTMLObjectElement||e instanceof HTMLEmbedElement}function ls(e,t){if(!(e instanceof Element)||is(e)||as(e))return!1;let n=t.position;if(n==="absolute"||n==="fixed"||n==="sticky")return!1;let r=t.display||"";return!(r.includes("flex")||r.includes("grid")||r.startsWith("table")||t.transform&&t.transform!=="none")}function ss(e,t,n=new Map){function r(i,o){if(!(i instanceof Element)||!(o instanceof Element))return;let a=i.childElementCount>o.childElementCount,s=n.get(i)||getComputedStyle(i);if(n.has(i)||n.set(i,s),a&&ls(i,s)){o.style.height||(o.style.height="auto"),o.style.width||(o.style.width="auto"),o.style.removeProperty("block-size"),o.style.removeProperty("inline-size"),o.style.minHeight||(o.style.minHeight="0"),o.style.minWidth||(o.style.minWidth="0"),o.style.maxHeight||(o.style.maxHeight="none"),o.style.maxWidth||(o.style.maxWidth="none");let u=s.overflowY||s.overflowBlock||"visible",d=s.overflowX||s.overflowInline||"visible";(u!=="visible"||d!=="visible")&&(o.style.overflow="visible")}let l=Array.from(i.children),c=Array.from(o.children);for(let u=0;u<Math.min(l.length,c.length);u++)r(l[u],c[u])}r(e,t)}function cs(e){let t=getComputedStyle(e);return!(t.display==="none"||t.position==="absolute"||t.position==="fixed")}function us(e,t){if(!(e instanceof Element))return!1;if(e.getAttribute("data-capture")==="exclude"&&t?.excludeMode==="remove")return!0;if(Array.isArray(t?.exclude))for(let n of t.exclude)try{if(e.matches(n))return t.excludeMode==="remove"}catch(r){F(t,"exclude selector match failed",r)}return!1}function ds(e,t){let n=getComputedStyle(e),r=e.getBoundingClientRect(),i=1/0,o=-1/0,a=!1,s=Array.from(e.children);for(let p of s){if(us(p,t)||!cs(p))continue;let g=p.getBoundingClientRect(),h=g.top-r.top,m=g.bottom-r.top;m<=h||(h<i&&(i=h),m>o&&(o=m),a=!0)}let l=a?Math.max(0,o-i):0,c=parseFloat(n.borderTopWidth)||0,u=parseFloat(n.borderBottomWidth)||0,d=parseFloat(n.paddingTop)||0,f=parseFloat(n.paddingBottom)||0;return c+u+d+f+l}var M=(e,t=3)=>Number.isFinite(e)?Math.round(e*10**t)/10**t:e,fs=/::-webkit-scrollbar(-[a-z]+)?\b/i;function vn(e,t=new Set){let n="";if(!e)return n;for(let r=0;r<e.length;r++){let i=e[r];try{if(i.type===CSSRule.IMPORT_RULE&&i.styleSheet){n+=vn(i.styleSheet.cssRules,t);continue}if(i.type===CSSRule.MEDIA_RULE&&i.cssRules){let o=vn(i.cssRules,t);o&&(n+=`@media ${i.conditionText}{${o}}`);continue}if(i.type===CSSRule.STYLE_RULE){let o=i.selectorText||"";if(fs.test(o)){let a=i.cssText;a&&!t.has(a)&&(t.add(a),n+=a)}}}catch{}}return n}function ms(e){if(!e||!e.styleSheets)return"";let t=new Set,n="";for(let r of Array.from(e.styleSheets))try{let i=r.cssRules;i&&(n+=vn(i,t))}catch{}return n}function ps(e){let t=e.boxShadow||"";if(!t||t==="none")return{top:0,right:0,bottom:0,left:0};let n=t.split(/\),(?=(?:[^()]*\([^()]*\))*[^()]*$)/).map(s=>s.trim()),r=0,i=0,o=0,a=0;for(let s of n){let l=s.match(/-?\d+(\.\d+)?px/g)?.map(h=>parseFloat(h))||[];if(l.length<2)continue;let[c,u,d=0,f=0]=l,p=Math.abs(c)+d+f,g=Math.abs(u)+d+f;i=Math.max(i,p+Math.max(c,0)),a=Math.max(a,p+Math.max(-c,0)),o=Math.max(o,g+Math.max(u,0)),r=Math.max(r,g+Math.max(-u,0))}return{top:Math.ceil(r),right:Math.ceil(i),bottom:Math.ceil(o),left:Math.ceil(a)}}function hs(e){let t=(e.filter||"").match(/blur\(\s*([0-9.]+)px\s*\)/),n=t?Math.ceil(parseFloat(t[1])||0):0;return{top:n,right:n,bottom:n,left:n}}function gs(e){if((e.outlineStyle||"none")==="none")return{top:0,right:0,bottom:0,left:0};let t=Math.ceil(parseFloat(e.outlineWidth||"0")||0);return{top:t,right:t,bottom:t,left:t}}function ys(e){let t=`${e.filter||""} ${e.webkitFilter||""}`.trim();if(!t||t==="none")return{bleed:{top:0,right:0,bottom:0,left:0},has:!1};let n=t.match(/drop-shadow\((?:[^()]|\([^()]*\))*\)/gi)||[],r=0,i=0,o=0,a=0,s=!1;for(let l of n){s=!0;let c=l.match(/-?\d+(?:\.\d+)?px/gi)?.map(h=>parseFloat(h))||[],[u=0,d=0,f=0]=c,p=Math.abs(u)+f,g=Math.abs(d)+f;i=Math.max(i,p+Math.max(u,0)),a=Math.max(a,p+Math.max(-u,0)),o=Math.max(o,g+Math.max(d,0)),r=Math.max(r,g+Math.max(-d,0))}return{bleed:{top:M(r),right:M(i),bottom:M(o),left:M(a)},has:s}}function ws(e,t){if(!e||!t||!t.style)return null;let n=getComputedStyle(e);try{t.style.transformOrigin="0 0"}catch{}try{"translate"in t.style&&(t.style.translate="none"),"rotate"in t.style&&(t.style.rotate="none")}catch{}let r=n.transform||"none";if(!r||r==="none")try{let o=ao(e);if(o.a===1&&o.b===0&&o.c===0&&o.d===1)return t.style.transform="none",{a:1,b:0,c:0,d:1}}catch{}let i=r.match(/^matrix\(\s*([^)]+)\)$/i);if(i){let o=i[1].split(",").map(a=>parseFloat(a.trim()));if(o.length===6&&o.every(Number.isFinite)){let[a,s,l,c]=o,u=Math.sqrt(a*a+s*s)||0,d=0,f=0,p=0,g=0,h=0,m=0;u>0&&(d=a/u,f=s/u,p=d*l+f*c,g=l-d*p,h=c-f*p,m=Math.sqrt(g*g+h*h)||0,m>0?p=p/m:p=0);let y=u,x=0,b=p*m,w=m;try{t.style.transform=`matrix(${y}, ${x}, ${b}, ${w}, 0, 0)`}catch{}return{a:y,b:x,c:b,d:w}}}try{let o=String(r).trim();return t.style.transform=o+" translate(0px, 0px) rotate(0deg)",null}catch{return null}}function Nr(e,t,n,r,i){let o=n.a,a=n.b,s=n.c,l=n.d,c=n.e||0,u=n.f||0;function d(y,x){let b=y-r,w=x-i,E=o*b+s*w,S=a*b+l*w;return E+=r+c,S+=i+u,[E,S]}let f=[d(0,0),d(e,0),d(0,t),d(e,t)],p=1/0,g=1/0,h=-1/0,m=-1/0;for(let[y,x]of f)y<p&&(p=y),x<g&&(g=x),y>h&&(h=y),x>m&&(m=x);return{minX:p,minY:g,maxX:h,maxY:m,width:h-p,height:m-g}}function bs(e,t,n){let r=(e.transformOrigin||"0 0").trim().split(/\s+/),[i,o]=[r[0]||"0",r[1]||"0"],a=(s,l)=>{let c=s.toLowerCase();return c==="left"||c==="top"?0:c==="center"?l/2:c==="right"||c==="bottom"?l:c.endsWith("px")?parseFloat(c)||0:c.endsWith("%")?(parseFloat(c)||0)*l/100:/^-?\d+(\.\d+)?$/.test(c)&&parseFloat(c)||0};return{ox:a(i,t),oy:a(o,n)}}function xs(e){let t={rotate:"0deg",scale:null,translate:null},n=typeof e.computedStyleMap=="function"?e.computedStyleMap():null;if(n){let i=l=>{try{return typeof n.has=="function"&&!n.has(l)||typeof n.get!="function"?null:n.get(l)}catch{return null}},o=i("rotate");if(o)if(o.angle){let l=o.angle;t.rotate=l.unit==="rad"?l.value*180/Math.PI+"deg":l.value+l.unit}else o.unit?t.rotate=o.unit==="rad"?o.value*180/Math.PI+"deg":o.value+o.unit:t.rotate=String(o);else{let l=getComputedStyle(e);t.rotate=l.rotate&&l.rotate!=="none"?l.rotate:"0deg"}let a=i("scale");if(a){let l="x"in a&&a.x?.value!=null?a.x.value:Array.isArray(a)?a[0]?.value:Number(a)||1,c="y"in a&&a.y?.value!=null?a.y.value:Array.isArray(a)?a[1]?.value:l;t.scale=`${l} ${c}`}else{let l=getComputedStyle(e);t.scale=l.scale&&l.scale!=="none"?l.scale:null}let s=i("translate");if(s){let l="x"in s&&"value"in s.x?s.x.value:Array.isArray(s)?s[0]?.value:0,c="y"in s&&"value"in s.y?s.y.value:Array.isArray(s)?s[1]?.value:0,u="x"in s&&s.x?.unit?s.x.unit:"px",d="y"in s&&s.y?.unit?s.y.unit:"px";t.translate=`${l}${u} ${c}${d}`}else{let l=getComputedStyle(e);t.translate=l.translate&&l.translate!=="none"?l.translate:null}return t}let r=getComputedStyle(e);return t.rotate=r.rotate&&r.rotate!=="none"?r.rotate:"0deg",t.scale=r.scale&&r.scale!=="none"?r.scale:null,t.translate=r.translate&&r.translate!=="none"?r.translate:null,t}var sn=null;function vs(){if(sn)return sn;let e=document.createElement("div");return e.id="snapdom-measure-slot",e.setAttribute("aria-hidden","true"),Object.assign(e.style,{position:"absolute",left:"-99999px",top:"0px",width:"0px",height:"0px",overflow:"hidden",opacity:"0",pointerEvents:"none",contain:"size layout style"}),document.documentElement.appendChild(e),sn=e,e}function Ss(e){let t=vs(),n=document.createElement("div");n.style.transformOrigin="0 0",e.baseTransform&&(n.style.transform=e.baseTransform),e.rotate&&(n.style.rotate=e.rotate),e.scale&&(n.style.scale=e.scale),e.translate&&(n.style.translate=e.translate),t.appendChild(n);let r=ao(n);return t.removeChild(n),r}function Es(e){let t=getComputedStyle(e),n=t.transform||"none";if(n!=="none"&&!/^matrix\(\s*1\s*,\s*0\s*,\s*0\s*,\s*1\s*,\s*0\s*,\s*0\s*\)$/i.test(n))return!0;let r=t.rotate&&t.rotate!=="none"&&t.rotate!=="0deg",i=t.scale&&t.scale!=="none"&&t.scale!=="1",o=t.translate&&t.translate!=="none"&&t.translate!=="0px 0px";return!!(r||i||o)}function ao(e){let t=getComputedStyle(e).transform;if(!t||t==="none")return new DOMMatrix;try{return new DOMMatrix(t)}catch{return new WebKitCSSMatrix(t)}}async function lo(e,t){if(!e)throw new Error("Element cannot be null or undefined");Yi(t.cache);let n=t.fast,r=t.outerTransforms!==!1,i=!!t.outerShadows,o={element:e,options:t,plugins:t.plugins},a,s,l,c="",u="",d,f,p=null;await be("beforeSnap",o),await be("beforeClone",o);let g=zl(o.element);try{({clone:a,classCSS:s,styleCache:l}=await Wl(o.element,o.options)),!r&&a&&(p=ws(o.element,a)),!i&&a&&ts(o.element,a,o.options)}finally{g()}if(o={clone:a,classCSS:s,styleCache:l,...o},await be("afterClone",o),os(o.clone),o.options?.excludeMode==="remove")try{ss(o.element,o.clone,o.styleCache)}catch(b){console.warn("[snapdom] shrink pass failed:",b)}try{await sl(o.clone,o.element)}catch{}await new Promise(b=>{He(async()=>{await ql(o.clone,o.options),b()},{fast:n})}),await new Promise(b=>{He(async()=>{await jl(o.element,o.clone,o.styleCache,o.options),b()},{fast:n})}),t.embedFonts&&await new Promise(b=>{He(async()=>{let w=eo(o.element),E=kl(o.element);if(Me()){let S=new Set(Array.from(w).map(v=>String(v).split("__")[0]).filter(Boolean));await to(S,1)}c=await Cl({required:w,usedCodepoints:E,preCached:!1,exclude:o.options.excludeFonts,useProxy:o.options.useProxy,fontStylesheetDomains:o.options.fontStylesheetDomains}),b()},{fast:n})});let h=oa(o.clone).sort(),m=h.join(",");C.baseStyle.has(m)?u=C.baseStyle.get(m):await new Promise(b=>{He(()=>{u=ia(h),C.baseStyle.set(m,u),b()},{fast:n})});let y=ms(o.element?.ownerDocument||document);o={fontsCSS:c,baseCSS:u,scrollbarCSS:y,...o},await be("beforeRender",o),await new Promise(b=>{He(()=>{let w=he(o.element),E=o.element.getBoundingClientRect(),S=Math.max(1,M(o.element.offsetWidth||parseFloat(w.width)||E.width||1)),v=Math.max(1,M(o.element.offsetHeight||parseFloat(w.height)||E.height||1)),k=o.element.ownerDocument||document;if(o.element===k.body||o.element===k.documentElement){let Y=Math.max(o.element.scrollHeight||0,k.documentElement?.scrollHeight||0,k.body?.scrollHeight||0),J=Math.max(o.element.scrollWidth||0,k.documentElement?.scrollWidth||0,k.body?.scrollWidth||0);Y>0&&(v=Math.max(v,M(Y))),J>0&&(S=Math.max(S,M(J)));try{let X=k.createElement("div");X.style.cssText="position:absolute!important;left:-9999px!important;top:0!important;width:"+S+"px!important;overflow:visible!important;visibility:hidden!important;";let dt=k.createElement("style");dt.textContent=(o.scrollbarCSS||"")+o.baseCSS+o.fontsCSS+"svg{overflow:visible;} foreignObject{overflow:visible;}"+o.classCSS,X.appendChild(dt),X.appendChild(o.clone.cloneNode(!0)),k.body.appendChild(X);let ft=X.scrollHeight,mt=X.scrollWidth;k.body.removeChild(X),ft>0&&(v=Math.max(v,M(ft))),mt>0&&(S=Math.max(S,M(mt)))}catch{}}if(o.options?.excludeMode==="remove"){let Y=ds(o.element,o.options);Number.isFinite(Y)&&Y>0&&(v=Math.max(1,Math.min(v,M(Y+1))))}let T=(Y,J=NaN)=>{let X=typeof Y=="string"?parseFloat(Y):Y;return Number.isFinite(X)?X:J},W=T(o.options.width),D=T(o.options.height),$=S,A=v,O=Number.isFinite(W),V=Number.isFinite(D),ct=v>0?S/v:1;O&&V?($=Math.max(1,M(W)),A=Math.max(1,M(D))):O?($=Math.max(1,M(W)),A=Math.max(1,M($/(ct||1)))):V?(A=Math.max(1,M(D)),$=Math.max(1,M(A*(ct||1)))):($=S,A=v);let P=0,R=0,B=S,H=v;if(!r&&p&&Number.isFinite(p.a)){let Y={a:p.a,b:p.b||0,c:p.c||0,d:p.d||1,e:0,f:0},J=Nr(S,v,Y,0,0);P=M(J.minX),R=M(J.minY),B=M(J.maxX),H=M(J.maxY)}else if(r&&Rr(o.element)){let Y=w.transform&&w.transform!=="none"?w.transform:"",J=xs(o.element),X=Ss({baseTransform:Y,rotate:J.rotate||"0deg",scale:J.scale,translate:J.translate}),{ox:dt,oy:ft}=bs(w,S,v),mt=X.is2D?X:new DOMMatrix(X.toString()),pt=Nr(S,v,mt,dt,ft);P=M(pt.minX),R=M(pt.minY),B=M(pt.maxX),H=M(pt.maxY)}let ge=ps(w),ue=hs(w),Ne=gs(w),Re=ys(w),Se=i?{top:M(ge.top+ue.top+Ne.top+Re.bleed.top),right:M(ge.right+ue.right+Ne.right+Re.bleed.right),bottom:M(ge.bottom+ue.bottom+Ne.bottom+Re.bleed.bottom),left:M(ge.left+ue.left+Ne.left+Re.bleed.left)}:{top:0,right:0,bottom:0,left:0};P=M(P-Se.left),R=M(R-Se.top),B=M(B+Se.right),H=M(H+Se.bottom);let Ye=Math.max(1,M(B-P)),Dn=Math.max(1,M(H-R)),di=O||V?M($/S):1,fi=V||O?M(A/v):1,mi=Math.max(1,M(Ye*di)),pi=Math.max(1,M(Dn*fi)),On="http://www.w3.org/2000/svg",hi=Me()&&Rr(o.element)?1:0,ye=M(hi+(r?0:1)),we=document.createElementNS(On,"foreignObject"),gi=M(P),yi=M(R);we.setAttribute("x",String(M(-(gi-ye)))),we.setAttribute("y",String(M(-(yi-ye)))),we.setAttribute("width",String(M(S+ye*2))),we.setAttribute("height",String(M(v+ye*2))),we.style.overflow="visible";let Hn=document.createElement("style");Hn.textContent=(o.scrollbarCSS||"")+o.baseCSS+o.fontsCSS+"svg{overflow:visible;} foreignObject{overflow:visible;}"+o.classCSS,we.appendChild(Hn);let ut=document.createElement("div");ut.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),ut.style.cssText=`all:initial;box-sizing:border-box;display:block;overflow:visible;width:${M(S)}px;height:${M(v)}px`,ut.appendChild(o.clone),we.appendChild(ut);let wi=new XMLSerializer().serializeToString(we),Yt=M(Ye+ye*2),Xt=M(Dn+ye*2),Wn=O||V;t.meta={w0:S,h0:v,vbW:Yt,vbH:Xt,targetW:$,targetH:A};let bi=Me()&&Wn?Yt:M(mi+ye*2),xi=Me()&&Wn?Xt:M(pi+ye*2),vi=parseFloat(he(k.documentElement)?.fontSize)||16;f=`<svg xmlns="${On}" width="${bi}" height="${xi}" viewBox="0 0 ${Yt} ${Xt}" font-size="${vi}px">`+wi+"</svg>",d=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(f)}`,o={svgString:f,dataURL:d,...o},b()},{fast:n})}),await be("afterRender",o);let x=document.getElementById("snapdom-sandbox");return x&&x.style.position==="absolute"&&x.remove(),o.dataURL}function Rr(e){return Es(e)}re();function Cs(e={}){let t=e.format??"png";t==="jpg"&&(t="jpeg");let n=Vi(e.cache);return{debug:e.debug??!1,fast:e.fast??!0,scale:e.scale??1,exclude:e.exclude??[],excludeMode:e.excludeMode??"hide",filter:e.filter??null,filterMode:e.filterMode??"hide",placeholders:e.placeholders!==!1,embedFonts:e.embedFonts??!1,iconFonts:Array.isArray(e.iconFonts)?e.iconFonts:e.iconFonts?[e.iconFonts]:[],localFonts:Array.isArray(e.localFonts)?e.localFonts:[],excludeFonts:e.excludeFonts??void 0,fontStylesheetDomains:Array.isArray(e.fontStylesheetDomains)?e.fontStylesheetDomains:[],fallbackURL:e.fallbackURL??void 0,cache:n,useProxy:typeof e.useProxy=="string"?e.useProxy:"",width:e.width??null,height:e.height??null,format:t,type:e.type??"svg",quality:e.quality??.92,dpr:e.dpr??(window.devicePixelRatio||1),backgroundColor:e.backgroundColor??(["jpeg","webp"].includes(t)?"#ffffff":null),filename:e.filename??"snapDOM",outerTransforms:e.outerTransforms??!0,outerShadows:e.outerShadows??!1,safariWarmupAttempts:Math.min(3,Math.max(1,(e.safariWarmupAttempts??3)|0)),excludeStyleProps:e.excludeStyleProps??null}}rt();Wr();ie();Ue();re();function ks(...e){return Kl(...e),_}var _=Object.assign(As,{plugins:ks}),so=Symbol("snapdom.internal"),Ms=Symbol("snapdom.internal.silent"),_r=!1;async function As(e,t){if(!e)throw new Error("Element cannot be null or undefined");let n=Cs(t);if(es(n,t&&t.plugins),Me()&&(n.embedFonts===!0||Ls(e))){if(n.embedFonts)try{let i=eo(e),o=new Set([...i].map(a=>String(a).split("__")[0]).filter(Boolean));await to(o,1)}catch{}let r=n.safariWarmupAttempts??3;for(let i=0;i<r;i++)try{await $s(e,t)}catch{}}return n.iconFonts&&n.iconFonts.length>0&&tl(n.iconFonts),n.snap||(n.snap={toPng:(r,i)=>_.toPng(r,i),toSvg:(r,i)=>_.toSvg(r,i)}),_.capture(e,n,so)}_.capture=async(e,t,n)=>{if(n!==so)throw new Error("[snapdom.capture] is internal. Use snapdom(...) instead.");let r=await lo(e,t),i={img:async(h,m)=>{let{toImg:y}=await Promise.resolve().then(()=>(mr(),fn));return y(r,{...h,...m||{}})},svg:async(h,m)=>{let{toSvg:y}=await Promise.resolve().then(()=>(mr(),fn));return y(r,{...h,...m||{}})},canvas:async(h,m)=>{let{toCanvas:y}=await Promise.resolve().then(()=>($t(),Br));return y(r,{...h,...m||{}})},blob:async(h,m)=>{let{toBlob:y}=await Promise.resolve().then(()=>(Vr(),jr));return y(r,{...h,...m||{}})},png:async(h,m)=>{let{rasterize:y}=await Promise.resolve().then(()=>(xt(),bt));return y(r,{...h,...m||{},format:"png"})},jpeg:async(h,m)=>{let{rasterize:y}=await Promise.resolve().then(()=>(xt(),bt));return y(r,{...h,...m||{},format:"jpeg"})},webp:async(h,m)=>{let{rasterize:y}=await Promise.resolve().then(()=>(xt(),bt));return y(r,{...h,...m||{},format:"webp"})},download:async(h,m)=>{let{download:y}=await Promise.resolve().then(()=>(xa(),Yr));return y(r,{...h,...m||{}})}},o={};for(let h of["img","svg","canvas","blob","png","jpeg","webp"])o[h]=async m=>i[h](t,{...m||{},[Ms]:!0});o.jpg=o.jpeg;let a={...t,export:{url:r},exports:o},s=await Zl("defineExports",a),l=Object.assign({},...s.filter(h=>h&&typeof h=="object")),c={...i,...l};c.jpeg&&!c.jpg&&(c.jpg=(h,m)=>c.jpeg(h,m));function u(h,m){let y={...t,...m||{}};return(h==="jpeg"||h==="jpg")&&(y.backgroundColor==null||y.backgroundColor==="transparent")&&(y.backgroundColor="#ffffff"),y}let d=!1,f=Promise.resolve();async function p(h,m){let y=async()=>{let x=c[h];if(!x)throw new Error(`[snapdom] Unknown export type: ${h}`);let b=u(h,m),w={...t,export:{type:h,options:b,url:r}};await be("beforeExport",w);let E=await x(w,b);return await be("afterExport",w,E),d||(d=!0,await be("afterSnap",t)),E};return f=f.then(y)}let g={url:r,toRaw:()=>r,to:(h,m)=>p(h,m),toImg:h=>p("img",h),toSvg:h=>p("svg",h),toCanvas:h=>p("canvas",h),toBlob:h=>p("blob",h),toPng:h=>p("png",h),toJpg:h=>p("jpg",h),toWebp:h=>p("webp",h),download:h=>p("download",h)};for(let h of Object.keys(c)){let m="to"+h.charAt(0).toUpperCase()+h.slice(1);g[m]||(g[m]=y=>p(h,y))}return g};_.toRaw=(e,t)=>_(e,t).then(n=>n.toRaw());_.toImg=(e,t)=>_(e,t).then(n=>n.toImg());_.toSvg=(e,t)=>_(e,t).then(n=>n.toSvg());_.toCanvas=(e,t)=>_(e,t).then(n=>n.toCanvas());_.toBlob=(e,t)=>_(e,t).then(n=>n.toBlob());_.toPng=(e,t)=>_(e,{...t,format:"png"}).then(n=>n.toPng());_.toJpg=(e,t)=>_(e,{...t,format:"jpeg"}).then(n=>n.toJpg());_.toWebp=(e,t)=>_(e,{...t,format:"webp"}).then(n=>n.toWebp());_.download=(e,t)=>_(e,t).then(n=>n.download());async function $s(e,t){if(_r)return;let n={...t,fast:!0,embedFonts:!0,scale:.2},r;try{r=await lo(e,n)}catch(i){F(t,"safariWarmup pre-capture failed",i)}await new Promise(i=>requestAnimationFrame(()=>requestAnimationFrame(i))),r&&await new Promise(i=>{let o=new Image;try{o.decoding="sync",o.loading="eager"}catch(a){F(t,"safariWarmup img hints failed",a)}o.style.cssText="position:fixed;left:0px;top:0px;width:10px;height:10px;opacity:0.01;pointer-events:none;",o.src=r,document.body.appendChild(o),(async()=>{try{typeof o.decode=="function"&&await o.decode()}catch(s){F(t,"safariWarmup img.decode failed",s)}let a=performance.now();for(;!(o.complete&&o.naturalWidth>0)&&performance.now()-a<900;)await new Promise(s=>setTimeout(s,200));await new Promise(s=>requestAnimationFrame(s));try{let s=document.createElement("canvas");s.width=Math.max(1,o.naturalWidth||10),s.height=Math.max(1,o.naturalHeight||10);let l=s.getContext("2d");l&&l.drawImage(o,0,0)}catch{}await new Promise(s=>requestAnimationFrame(s));try{o.remove()}catch(s){F(t,"safariWarmup img.remove failed",s)}i()})()}),e.querySelectorAll("canvas").forEach(i=>{try{let o=i.getContext("2d",{willReadFrequently:!0});o&&o.getImageData(0,0,1,1)}catch(o){F(t,"safariWarmup canvas poke failed",o)}}),_r=!0}function Ls(e){let t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);for(;t.nextNode();){let n=t.currentNode,r=getComputedStyle(n),i=r.backgroundImage&&r.backgroundImage!=="none",o=r.maskImage&&r.maskImage!=="none"||r.webkitMaskImage&&r.webkitMaskImage!=="none";if(i||o||n.tagName==="CANVAS")return!0}return!1}var co=!1,Mn=null;function uo(e){if(e.dataset.fontProxied||!e.rel||!e.rel.includes("stylesheet"))return!1;let t=e.href||"";try{return new URL(t).origin!==window.location.origin}catch{return!1}}function fo(e){let t=`/__mindstudio_dev__/font-proxy?url=${encodeURIComponent(e.href)}`,n=document.createElement("link");n.rel="stylesheet",n.href=t,n.dataset.fontProxied="true",e.media&&(n.media=e.media),n.onload=()=>{e.remove()},n.onerror=()=>{n.remove()},e.parentNode?.insertBefore(n,e.nextSibling)}function mo(){let e=document.querySelectorAll('link[rel~="stylesheet"]');for(let t of e)uo(t)&&fo(t)}function Ts(){Mn||(Mn=new MutationObserver(e=>{for(let t of e)for(let n of t.addedNodes)n instanceof HTMLLinkElement&&uo(n)&&fo(n)}),Mn.observe(document.documentElement,{childList:!0,subtree:!0}))}function po(){co||(co=!0,mo(),Ts())}async function ho(){mo();try{await document.fonts.ready}catch{}}var Ns=750,Rs=400;var Ae=2,yo=["#__mindstudio-cursor","#__mindstudio-cursor-ripple","#__mindstudio-notes-cursor","#__mindstudio-camera","#__mindstudio-flash"],_s="#DD2590",Ps=`<svg width="44" height="44" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
9
+ `):u+=f[0]}return u+=s.slice(d),u}let a=On(e,t||location.href);return a=await o(a,t||location.href,0),a}var fr=/url\((["']?)([^"')]+)\1\)/g,Ta=/@font-face[^{}]*\{[^}]*\}/g;function mr(e){if(!e)return[];let t=[],n=e.split(",").map(r=>r.trim()).filter(Boolean);for(let r of n){let i=r.match(/^U\+([0-9A-Fa-f?]+)(?:-([0-9A-Fa-f?]+))?$/);if(!i)continue;let o=i[1],a=i[2],s=l=>{if(!l.includes("?"))return parseInt(l,16);let c=parseInt(l.replace(/\?/g,"0"),16),u=parseInt(l.replace(/\?/g,"F"),16);return[c,u]};if(a){let l=s(o),c=s(a),u=Array.isArray(l)?l[0]:l,d=Array.isArray(c)?c[1]:c;t.push([Math.min(u,d),Math.max(u,d)])}else{let l=s(o);Array.isArray(l)?t.push([l[0],l[1]]):t.push([l,l])}}return t}function pr(e,t){if(!t.length||!e||e.size===0)return!0;for(let n of e)for(let[r,i]of t)if(n>=r&&n<=i)return!0;return!1}function Yt(e,t){let n=[];if(!e)return n;for(let r of e.matchAll(fr)){let i=(r[2]||"").trim();if(!(!i||i.startsWith("data:"))){if(!/^https?:/i.test(i))try{i=new URL(i,t||location.href).href}catch{}n.push(i)}}return n}async function hr(e,t,n=""){let r=e;for(let i of e.matchAll(fr)){let o=jt(i[0]);if(!o)continue;let a=o;if(!a.startsWith("http")&&!a.startsWith("data:"))try{a=new URL(a,t||location.href).href}catch{}if(!re(a)){if(C.resource?.has(a)){C.font?.add(a),r=r.replace(i[0],`url(${C.resource.get(a)})`);continue}if(!C.font?.has(a))try{let s=await G(a,{as:"dataURL",useProxy:n,silent:!0});if(s.ok&&typeof s.data=="string"){let l=s.data;C.resource?.set(a,l),C.font?.add(a),r=r.replace(i[0],`url(${l})`)}}catch{console.warn("[snapDOM] Failed to fetch font resource:",a)}}}return r}function Ra(e){if(!e.length)return null;let t=(a,s)=>e.some(([l,c])=>!(c<a||l>s)),n=t(0,255)||t(305,305),r=t(256,591)||t(7680,7935),i=t(880,1023),o=t(1024,1279);return t(7840,7929)||t(258,259)||t(416,417)||t(431,432)?"vietnamese":o?"cyrillic":i?"greek":r?"latin-ext":n?"latin":null}function Hn(e={}){let t=new Set((e.families||[]).map(i=>String(i).toLowerCase())),n=new Set((e.domains||[]).map(i=>String(i).toLowerCase())),r=new Set((e.subsets||[]).map(i=>String(i).toLowerCase()));return(i,o)=>{if(t.size&&t.has(i.family.toLowerCase()))return!0;if(n.size)for(let a of i.srcUrls)try{if(n.has(new URL(a).host.toLowerCase()))return!0}catch{}if(r.size){let a=Ra(o);if(a&&r.has(a))return!0}return!1}}function _a(e){if(!e)return e;let t=/@font-face[^{}]*\{[^}]*\}/gi,n=new Set,r=[];for(let o of e.match(t)||[]){let a=o.match(/font-family:\s*([^;]+);/i)?.[1]||"",s=it(a),l=(o.match(/font-weight:\s*([^;]+);/i)?.[1]||"400").trim(),c=(o.match(/font-style:\s*([^;]+);/i)?.[1]||"normal").trim(),u=(o.match(/font-stretch:\s*([^;]+);/i)?.[1]||"100%").trim(),d=(o.match(/unicode-range:\s*([^;]+);/i)?.[1]||"").trim(),f=(o.match(/src\s*:\s*([^;}]+)[;}]/i)?.[1]||"").trim(),p=Yt(f,location.href),g=p.length?p.map(m=>String(m).toLowerCase()).sort().join("|"):f.toLowerCase(),h=[String(s||"").toLowerCase(),l,c,u,d.toLowerCase(),g].join("|");n.has(h)||(n.add(h),r.push(o))}if(r.length===0)return e;let i=0;return e.replace(t,()=>r[i++]||"")}function Pa(e,t,n,r,i){let o=Array.from(e||[]).sort().join("|"),a=t?JSON.stringify({families:(t.families||[]).map(u=>String(u).toLowerCase()).sort(),domains:(t.domains||[]).map(u=>String(u).toLowerCase()).sort(),subsets:(t.subsets||[]).map(u=>String(u).toLowerCase()).sort()}):"",s=(n||[]).map(u=>`${(u.family||"").toLowerCase()}::${u.weight||"normal"}::${u.style||"normal"}::${u.src||""}`).sort().join("|"),l=r||"",c=(i||[]).map(u=>String(u).toLowerCase()).sort().join("|");return`fonts-embed-css::req=${o}::ex=${a}::lf=${s}::px=${l}::fd=${c}`}async function gr(e,t,n,r){let i;try{i=e.cssRules||[]}catch{return}let o=(a,s)=>{try{return new URL(a,s||location.href).href}catch{return a}};for(let a of i){if(a.type===CSSRule.IMPORT_RULE&&a.styleSheet){let s=a.href?o(a.href,t):t;if(r.depth>=tt){console.warn(`[snapDOM] CSSOM import depth exceeded (${tt}) at ${s}`);continue}if(s&&r.visitedSheets.has(s)){console.warn(`[snapDOM] Skipping circular CSSOM import: ${s}`);continue}s&&r.visitedSheets.add(s);let l={...r,depth:(r.depth||0)+1};await gr(a.styleSheet,s,n,l);continue}if(a.type===CSSRule.FONT_FACE_RULE){let s=(a.style.getPropertyValue("font-family")||"").trim(),l=it(s);if(!l||re(l))continue;let c=(a.style.getPropertyValue("font-weight")||"400").trim(),u=(a.style.getPropertyValue("font-style")||"normal").trim(),d=(a.style.getPropertyValue("font-stretch")||"100%").trim(),f=(a.style.getPropertyValue("src")||"").trim(),p=(a.style.getPropertyValue("unicode-range")||"").trim();if(!r.faceMatchesRequired(l,u,c,d))continue;let g=mr(p);if(!pr(r.usedCodepoints,g))continue;let h={family:l,weightSpec:c,styleSpec:u,stretchSpec:d,unicodeRange:p,srcRaw:f,srcUrls:Yt(f,t||location.href),href:t||location.href};if(r.simpleExcluder&&r.simpleExcluder(h,g))continue;if(/url\(/i.test(f)){let m=await hr(f,t||location.href,r.useProxy);await n(`@font-face{font-family:${l};src:${m};font-style:${u};font-weight:${c};font-stretch:${d};${p?`unicode-range:${p};`:""}}`)}else await n(`@font-face{font-family:${l};src:${f};font-style:${u};font-weight:${c};font-stretch:${d};${p?`unicode-range:${p};`:""}}`)}}}async function Fa({required:e,usedCodepoints:t,exclude:n=void 0,localFonts:r=[],useProxy:i="",fontStylesheetDomains:o=[]}={}){e instanceof Set||(e=new Set),t instanceof Set||(t=new Set);let a=new Map;for(let m of e){let[y,x,b,w]=String(m).split("__");if(!y)continue;let E=a.get(y)||[];E.push({w:parseInt(x,10),s:b,st:parseInt(w,10)}),a.set(y,E)}function s(m,y,x,b){if(!a.has(m))return!1;let w=a.get(m),E=Ca(x),S=ka(y),v=Ma(b),M=E.min!==E.max,N=E.min,O=L=>S.kind==="normal"&&L==="normal"||S.kind!=="normal"&&(L==="italic"||L==="oblique"),F=!1;for(let L of w){let $=M?L.w>=E.min&&L.w<=E.max:L.w===N,D=O(Qe(L.s)),B=L.st>=v.min&&L.st<=v.max;if($&&D&&B){F=!0;break}}if(F)return!0;if(!M)for(let L of w){let $=O(Qe(L.s)),D=L.st>=v.min&&L.st<=v.max;if(Math.abs(N-L.w)<=300&&$&&D)return!0}if(!M&&S.kind==="normal"&&w.some(L=>Qe(L.s)!=="normal"))for(let L of w){let $=Math.abs(N-L.w)<=300,D=L.st>=v.min&&L.st<=v.max;if($&&D)return!0}return!1}let l=Hn(n),c=Pa(e,n,r,i,o);if(C.resource?.has(c))return C.resource.get(c);let u=La(e),d=[],f=Ot;for(let m of document.querySelectorAll("style")){let y=m.textContent||"";for(let x of y.matchAll(f)){let b=(x[2]||x[4]||"").trim();!b||re(b)||document.querySelector(`link[rel="stylesheet"][href="${b}"]`)||d.push(b)}}d.length&&await Promise.all(d.map(m=>new Promise(y=>{if(document.querySelector(`link[rel="stylesheet"][href="${m}"]`))return y(null);let x=document.createElement("link");x.rel="stylesheet",x.href=m,x.setAttribute("data-snapdom","injected-import"),x.onload=()=>y(x),x.onerror=()=>y(null),document.head.appendChild(x)})));let p="",g=Array.from(document.querySelectorAll('link[rel="stylesheet"]')).filter(m=>!!m.href);for(let m of g)try{if(re(m.href))continue;let y="",x=!1;try{x=new URL(m.href,location.href).origin===location.origin}catch{}if(!x){let w=Array.isArray(o)?o:[];if(!$a(m.href,u,w))continue}if(x){let w=Array.from(document.styleSheets).find(E=>E.href===m.href);if(w)try{let E=w.cssRules||[];y=Array.from(E).map(S=>S.cssText).join("")}catch{}}if(!y){let w=await G(m.href,{as:"text",useProxy:i});if(w?.ok&&typeof w.data=="string"&&(y=w.data),re(m.href))continue}y=await Na(y,m.href,i);let b="";for(let w of y.match(Ta)||[]){let E=(w.match(/font-family:\s*([^;]+);/i)?.[1]||"").trim(),S=it(E);if(!S||re(S))continue;let v=(w.match(/font-weight:\s*([^;]+);/i)?.[1]||"400").trim(),M=(w.match(/font-style:\s*([^;]+);/i)?.[1]||"normal").trim(),N=(w.match(/font-stretch:\s*([^;]+);/i)?.[1]||"100%").trim(),O=(w.match(/unicode-range:\s*([^;]+);/i)?.[1]||"").trim(),F=(w.match(/src\s*:\s*([^;}]+)[;}]/i)?.[1]||"").trim(),L=Yt(F,m.href);if(!s(S,M,v,N))continue;let $=mr(O);if(!pr(t,$))continue;let D={family:S,weightSpec:v,styleSpec:M,stretchSpec:N,unicodeRange:O,srcRaw:F,srcUrls:L,href:m.href};if(n&&l(D,$))continue;let B=/url\(/i.test(F)?await hr(w,m.href,i):w;b+=B}b.trim()&&(p+=b)}catch{console.warn("[snapDOM] Failed to process stylesheet:",m.href)}let h={requiredIndex:a,usedCodepoints:t,faceMatchesRequired:s,simpleExcluder:n?Hn(n):null,useProxy:i,visitedSheets:new Set,depth:0};for(let m of document.styleSheets)if(!(m.href&&g.some(y=>y.href===m.href)))try{let y=m.href||location.origin+"/";y&&h.visitedSheets.add(y),await gr(m,y,async x=>{p+=x},h)}catch{}try{for(let m of document.fonts||[]){if(!m||!m.family||m.status!=="loaded"||!m._snapdomSrc)continue;let y=String(m.family).replace(/^['"]+|['"]+$/g,"");if(re(y)||!a.has(y)||n?.families&&n.families.some(b=>String(b).toLowerCase()===y.toLowerCase()))continue;let x=m._snapdomSrc;if(!String(x).startsWith("data:")){if(C.resource?.has(m._snapdomSrc))x=C.resource.get(m._snapdomSrc),C.font?.add(m._snapdomSrc);else if(!C.font?.has(m._snapdomSrc))try{let b=await G(m._snapdomSrc,{as:"dataURL",useProxy:i,silent:!0});if(b.ok&&typeof b.data=="string")x=b.data,C.resource?.set(m._snapdomSrc,x),C.font?.add(m._snapdomSrc);else continue}catch{console.warn("[snapDOM] Failed to fetch dynamic font src:",m._snapdomSrc);continue}}p+=`@font-face{font-family:'${y}';src:url(${x});font-style:${m.style||"normal"};font-weight:${m.weight||"normal"};}`}}catch{}for(let m of r){if(!m||typeof m!="object")continue;let y=String(m.family||"").replace(/^['"]+|['"]+$/g,"");if(!y||re(y)||!a.has(y)||n?.families&&n.families.some(v=>String(v).toLowerCase()===y.toLowerCase()))continue;let x=m.weight!=null?String(m.weight):"normal",b=m.style!=null?String(m.style):"normal",w=m.stretchPct!=null?`${m.stretchPct}%`:"100%",E=String(m.src||""),S=E;if(!S.startsWith("data:")){if(C.resource?.has(E))S=C.resource.get(E),C.font?.add(E);else if(!C.font?.has(E))try{let v=await G(E,{as:"dataURL",useProxy:i,silent:!0});if(v.ok&&typeof v.data=="string")S=v.data,C.resource?.set(E,S),C.font?.add(E);else continue}catch{console.warn("[snapDOM] Failed to fetch localFonts src:",E);continue}}p+=`@font-face{font-family:'${y}';src:url(${S});font-style:${b};font-weight:${x};font-stretch:${w};}`}return p&&(p=_a(p),C.resource?.set(c,p)),p}function yr(e){let t=new Set;if(!e)return t;let n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,null),r=a=>{let s=it(a.fontFamily);if(!s)return;let l=(c,u,d)=>`${s}__${Ze(c)}__${Qe(u)}__${Ea(d)}`;t.add(l(a.fontWeight,a.fontStyle,a.fontStretch))};r(getComputedStyle(e));let i=getComputedStyle(e,"::before");i&&i.content&&i.content!=="none"&&r(i);let o=getComputedStyle(e,"::after");for(o&&o.content&&o.content!=="none"&&r(o);n.nextNode();){let a=n.currentNode,s=getComputedStyle(a);r(s);let l=getComputedStyle(a,"::before");l&&l.content&&l.content!=="none"&&r(l);let c=getComputedStyle(a,"::after");c&&c.content&&c.content!=="none"&&r(c)}return t}function Da(e){let t=new Set,n=i=>{if(i)for(let o of i)t.add(o.codePointAt(0))},r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,null);for(;r.nextNode();){let i=r.currentNode;if(i.nodeType===Node.TEXT_NODE)n(i.nodeValue||"");else if(i.nodeType===Node.ELEMENT_NODE){let o=i;for(let a of["::before","::after"]){let s=getComputedStyle(o,a)?.getPropertyValue("content");if(!(!s||s==="none"))if(/^"/.test(s)||/^'/.test(s))n(s.slice(1,-1));else{let l=s.match(/\\[0-9A-Fa-f]{1,6}/g);if(l)for(let c of l)try{t.add(parseInt(c.slice(1),16))}catch{}}}}}return t}async function wr(e,t=2){try{await document.fonts.ready}catch{}let n=Array.from(e||[]).filter(Boolean);if(n.length===0)return;let r=()=>{let i=document.createElement("div");i.style.cssText="position:absolute!important;left:-9999px!important;top:0!important;opacity:0!important;pointer-events:none!important;contain:layout size style;";for(let o of n){let a=document.createElement("span");a.textContent="AaBbGg1234\xC1\xC9\xCD\xD3\xDA\xE7\xF1\u2014\u221E",a.style.fontFamily=`"${o}"`,a.style.fontWeight="700",a.style.fontStyle="italic",a.style.fontSize="32px",a.style.lineHeight="1",a.style.whiteSpace="nowrap",a.style.margin="0",a.style.padding="0",i.appendChild(a)}document.body.appendChild(i),i.offsetWidth,document.body.removeChild(i)};for(let i=0;i<Math.max(1,t);i++)r(),await new Promise(o=>requestAnimationFrame(()=>requestAnimationFrame(o)))}K();function Ia(e){return/\bcounter\s*\(|\bcounters\s*\(/.test(e||"")}function Oa(e){return(e||"").replace(/"([^"]*)"/g,"$1")}function Wn(e,t=!1){let n="",r=Math.max(1,e);for(;r>0;)r--,n=String.fromCharCode(97+r%26)+n,r=Math.floor(r/26);return t?n.toUpperCase():n}function Bn(e,t=!0){let n=[[1e3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]],r=Math.max(1,Math.min(3999,e)),i="";for(let[o,a]of n)for(;r>=o;)i+=a,r-=o;return t?i:i.toLowerCase()}function Un(e,t){switch((t||"decimal").toLowerCase()){case"decimal":return String(Math.max(0,e));case"decimal-leading-zero":return(e<10?"0":"")+String(Math.max(0,e));case"lower-alpha":return Wn(e,!1);case"upper-alpha":return Wn(e,!0);case"lower-roman":return Bn(e,!1);case"upper-roman":return Bn(e,!0);default:return String(Math.max(0,e))}}function Ha(e){let t=()=>C?.session?.__counterEpoch??0,n=t(),r=new WeakMap,i=e instanceof Document?e.documentElement:e,o=f=>f&&f.tagName==="LI",a=f=>{let p=0,g=f?.parentElement;if(!g)return 0;for(let h of g.children){if(h===f)break;h.tagName==="LI"&&p++}return p},s=f=>{let p=new Map;for(let[g,h]of f)p.set(g,h.slice());return p},l=(f,p,g)=>{let h=s(f),m;try{m=g.style?.counterReset||getComputedStyle(g).counterReset}catch{}if(m&&m!=="none")for(let x of m.split(",")){let b=x.trim().split(/\s+/),w=b[0],E=Number.isFinite(Number(b[1]))?Number(b[1]):0;if(!w)continue;let S=p.get(w);if(S&&S.length){let v=S.slice();v.push(E),h.set(w,v)}else h.set(w,[E])}let y;try{y=g.style?.counterIncrement||getComputedStyle(g).counterIncrement}catch{}if(y&&y!=="none")for(let x of y.split(",")){let b=x.trim().split(/\s+/),w=b[0],E=Number.isFinite(Number(b[1]))?Number(b[1]):1;if(!w)continue;let S=h.get(w)||[];S.length===0&&S.push(0),S[S.length-1]+=E,h.set(w,S)}try{if(getComputedStyle(g).display==="list-item"&&o(g)){let x=g.parentElement,b=1;if(x&&x.tagName==="OL"){let E=x.getAttribute("start"),S=Number.isFinite(Number(E))?Number(E):1,v=a(g),M=g.getAttribute("value");b=Number.isFinite(Number(M))?Number(M):S+v}else b=1+a(g);let w=h.get("list-item")||[];w.length===0&&w.push(0),w[w.length-1]=b,h.set("list-item",w)}}catch{}return h},c=(f,p,g)=>{let h=l(g,p,f);r.set(f,h);let m=h;for(let y of f.children)m=c(y,h,m);return h},u=new Map;c(i,u,u);function d(){let f=t();if(f!==n){n=f;let p=new Map;c(i,p,p)}}return{get(f,p){d();let g=r.get(f)?.get(p);return g&&g.length?g[g.length-1]:0},getStack(f,p){d();let g=r.get(f)?.get(p);return g?g.slice():[]}}}function Wa(e,t,n){if(!e||e==="none")return e;try{let r=/\b(counter|counters)\s*\(([^)]+)\)/g,i=e.replace(r,(o,a,s)=>{let l=String(s).split(",").map(c=>c.trim());if(a==="counter"){let c=l[0]?.replace(/^["']|["']$/g,""),u=(l[1]||"decimal").toLowerCase(),d=n.get(t,c);return Un(d,u)}else{let c=l[0]?.replace(/^["']|["']$/g,""),u=l[1]?.replace(/^["']|["']$/g,"")??"",d=(l[2]||"decimal").toLowerCase(),f=n.getStack(t,c);return f.length?f.map(p=>Un(p,d)).join(u):""}});return Oa(i)}catch{return"- "}}ke();K();var ve=new WeakMap,qn=300;function Ba(e,t){let n=br(e);return t?(t.__pseudoPreflightFp!==n&&(t.__pseudoPreflight=zn(e),t.__pseudoPreflightFp=n),!!t.__pseudoPreflight):zn(e)}function Ht(e){try{return e&&e.cssRules?e.cssRules:null}catch{return null}}function br(e){let t=e.querySelectorAll('style,link[rel~="stylesheet"]'),n=`n:${t.length}|`,r=0;for(let o=0;o<t.length;o++){let a=t[o];if(a.tagName==="STYLE"){let s=a.textContent?a.textContent.length:0;n+=`S${s}|`;let l=a.sheet,c=l?Ht(l):null;c&&(r+=c.length)}else{let s=a.getAttribute("href")||"",l=a.getAttribute("media")||"all";n+=`L${s}|m:${l}|`;let c=a.sheet,u=c?Ht(c):null;u&&(r+=u.length)}}let i=e.adoptedStyleSheets;return n+=`ass:${Array.isArray(i)?i.length:0}|tr:${r}`,n}function jn(e,t,n){let r=Ht(e);if(!r)return!1;for(let i=0;i<r.length;i++){if(n.budget<=0)return!1;let o=r[i],a=o&&o.cssText?o.cssText:"";n.budget--;for(let s of t)if(a.includes(s))return!0;if(o&&o.cssRules&&o.cssRules.length)for(let s=0;s<o.cssRules.length&&n.budget>0;s++){let l=o.cssRules[s],c=l&&l.cssText?l.cssText:"";n.budget--;for(let u of t)if(c.includes(u))return!0}if(n.budget<=0)return!1}return!1}function zn(e=document){let t=br(e),n=ve.get(e);if(n&&n.fingerprint===t)return n.result;let r=["::before","::after","::first-letter",":before",":after",":first-letter","counter(","counters(","counter-increment","counter-reset"],i=e.querySelectorAll("style");for(let a=0;a<i.length;a++){let s=i[a].textContent||"";for(let l of r)if(s.includes(l))return ve.set(e,{fingerprint:t,result:!0}),!0}let o=e.adoptedStyleSheets;if(Array.isArray(o)&&o.length){let a={budget:qn};try{for(let s of o)if(jn(s,r,a))return ve.set(e,{fingerprint:t,result:!0}),!0}catch{}}{let a=e.querySelectorAll('style,link[rel~="stylesheet"]'),s={budget:qn};for(let l=0;l<a.length&&s.budget>0;l++){let c=a[l],u=null;if(c.tagName,u=c.sheet||null,u&&jn(u,r,s))return ve.set(e,{fingerprint:t,result:!0}),!0}}return e.querySelector('[style*="counter("], [style*="counters("]')?(ve.set(e,{fingerprint:t,result:!0}),!0):(ve.set(e,{fingerprint:t,result:!1}),!1)}var Ce=new WeakMap,Vn=-1;function Ua(e){return(e||"").replace(/"([^"]*)"/g,"$1")}function qa(e){if(!e)return"";let t=[],n=/"([^"]*)"/g,r;for(;r=n.exec(e);)t.push(r[1]);return t.length?t.join(""):Ua(e)}function Wt(e,t){let n=e.parentElement,r=n?Ce.get(n):null;return r?{get(i,o){let a=t.get(i,o),s=r.get(o);return typeof s=="number"?Math.max(a,s):a},getStack(i,o){let a=t.getStack(i,o);if(!a.length)return a;let s=r.get(o);if(typeof s=="number"){let l=a.slice();return l[l.length-1]=Math.max(l[l.length-1],s),l}return a}}:t}function Bt(e,t,n){let r=new Map;function i(l){let c=[];if(!l||l==="none")return c;for(let u of String(l).split(",")){let d=u.trim().split(/\s+/),f=d[0],p=Number.isFinite(Number(d[1]))?Number(d[1]):void 0;f&&c.push({name:f,num:p})}return c}let o=i(t?.counterReset),a=i(t?.counterIncrement);function s(l){if(r.has(l))return r.get(l).slice();let c=n.getStack(e,l);c=c.length?c.slice():[];let u=o.find(f=>f.name===l);if(u){let f=Number.isFinite(u.num)?u.num:0;c=c.length?[...c,f]:[f]}let d=a.find(f=>f.name===l);if(d){let f=Number.isFinite(d.num)?d.num:1;c.length===0&&(c=[0]),c[c.length-1]+=f}return r.set(l,c.slice()),c}return{get(l,c){let u=s(c);return u.length?u[u.length-1]:0},getStack(l,c){return s(c)},__incs:a}}function ja(e,t,n){let r;try{r=oe(e,t)}catch{}let i=r?.content;if(!i||i==="none"||i==="normal")return{text:"",incs:[]};let o=Wt(e,n),a=Bt(e,r,o),s=Ia(i)?Wa(i,e,a):i;return{text:qa(s),incs:a.__incs||[]}}async function Ut(e,t,n,r){if(!(e instanceof Element)||!(t instanceof Element))return;let i=e.ownerDocument||document;if(!Ba(i,n))return;let o=C?.session?.__counterEpoch??0;if(Vn!==o&&(Ce=new WeakMap,n&&(n.__counterCtx=null),Vn=o),!n.__counterCtx)try{n.__counterCtx=Ha(e.ownerDocument||document)}catch(l){P(n,"buildCounterContext failed",l)}let a=n.__counterCtx;for(let l of["::before","::after","::first-letter"])try{let c=oe(e,l);if(!c||c.content==="none"&&c.backgroundImage==="none"&&c.backgroundColor==="transparent"&&(c.borderStyle==="none"||parseFloat(c.borderWidth)===0)&&(!c.transform||c.transform==="none")&&c.display==="inline")continue;if(l==="::first-letter"){let _=oe(e);if(!(c.color!==_.color||c.fontSize!==_.fontSize||c.fontWeight!==_.fontWeight))continue;let T=Array.from(t.childNodes).find($e=>$e.nodeType===Node.TEXT_NODE&&$e.textContent?.trim().length>0);if(!T)continue;let H=T.textContent,I=H.match(/^([^\p{L}\p{N}\s]*[\p{L}\p{N}](?:['’])?)/u)?.[0],ie=H.slice(I?.length||0);if(!I||/[\uD800-\uDFFF]/.test(I))continue;let Q=document.createElement("span");Q.textContent=I,Q.dataset.snapdomPseudo="::first-letter";let he=$n(c),ge=Rt(he,"span");n.styleMap.set(Q,ge);let ce=document.createTextNode(ie);t.replaceChild(ce,T),t.insertBefore(Q,ce);continue}let u=c.content??"",d=u===""||u==="none"||u==="normal",{text:f,incs:p}=ja(e,l,a),g=c.backgroundImage,h=c.backgroundColor,m=c.fontFamily,y=parseInt(c.fontSize)||32,x=parseInt(c.fontWeight)||!1,b=c.color||"#000",w=c.borderStyle,E=parseFloat(c.borderWidth),S=c.transform,v=re(m),M=!d&&f!=="",N=g&&g!=="none",O=h&&h!=="transparent"&&h!=="rgba(0, 0, 0, 0)",F=w&&w!=="none"&&E>0,L=S&&S!=="none";if(!(M||N||O||F||L)){if(p&&p.length&&e.parentElement){let _=Ce.get(e.parentElement)||new Map;for(let{name:T}of p){if(!T)continue;let H=Wt(e,a),I=Bt(e,oe(e,l),H).get(e,T);_.set(T,I)}Ce.set(e.parentElement,_)}continue}let $=document.createElement("span");$.dataset.snapdomPseudo=l,$.style.pointerEvents="none";let D=$n(c),B=Rt(D,"span");if(n.styleMap.set($,B),v&&f&&f.length===1){let{dataUrl:_,width:T,height:H}=await xa(f,m,x,y,b),I=document.createElement("img");I.src=_,I.style=`height:${y}px;width:${T/H*y}px;object-fit:contain;`,$.appendChild(I),t.dataset.snapdomHasIcon="true"}else if(f&&f.startsWith("url(")){let _=jt(f);if(_?.trim())try{let T=await G(et(_),{as:"dataURL",useProxy:r.useProxy});if(T?.ok&&typeof T.data=="string"){let H=document.createElement("img");H.src=T.data,H.style=`width:${y}px;height:auto;object-fit:contain;`,$.appendChild(H)}}catch(T){console.error(`[snapdom] Error in pseudo ${l} for`,e,T)}}else!v&&M&&($.textContent=f);$.style.backgroundImage="none","maskImage"in $.style&&($.style.maskImage="none"),"webkitMaskImage"in $.style&&($.style.webkitMaskImage="none");try{$.style.backgroundRepeat=c.backgroundRepeat,$.style.backgroundSize=c.backgroundSize,c.backgroundPositionX&&c.backgroundPositionY?($.style.backgroundPositionX=c.backgroundPositionX,$.style.backgroundPositionY=c.backgroundPositionY):$.style.backgroundPosition=c.backgroundPosition,$.style.backgroundOrigin=c.backgroundOrigin,$.style.backgroundClip=c.backgroundClip,$.style.backgroundAttachment=c.backgroundAttachment,$.style.backgroundBlendMode=c.backgroundBlendMode}catch{}if(N)try{let _=_t(g),T=await Promise.all(_.map(Jn));$.style.backgroundImage=T.join(", ")}catch(_){console.warn(`[snapdom] Failed to inline background-image for ${l}`,_)}O&&($.style.backgroundColor=h);let We=$.childNodes.length>0||$.textContent?.trim()!==""||N||O||F||L;if(p&&p.length&&e.parentElement){let _=Ce.get(e.parentElement)||new Map,T=Wt(e,a),H=Bt(e,oe(e,l),T);for(let{name:I}of p){if(!I)continue;let ie=H.get(e,I);_.set(I,ie)}Ce.set(e.parentElement,_)}if(!We)continue;l==="::before"?(t.dataset.snapdomHasBefore="1",t.insertBefore($,t.firstChild)):(t.dataset.snapdomHasAfter="1",t.appendChild($))}catch(c){console.warn(`[snapdom] Failed to capture ${l} for`,e,c)}let s=Array.from(t.children).filter(l=>!l.dataset.snapdomPseudo);if(n.nodeMap)for(let l of s){let c=n.nodeMap.get(l);c instanceof Element&&await Ut(c,l,n,r)}else{let l=Array.from(e.children);for(let c=0;c<Math.min(l.length,s.length);c++)await Ut(l[c],s[c],n,r)}}function za(e,t){if(!e||!(e instanceof Element))return;let n=e.ownerDocument||document,r=t||n,i=e instanceof SVGSVGElement?[e]:Array.from(e.querySelectorAll("svg"));if(i.length===0)return;let o=/url\(\s*#([^)]+)\)/g,a=["fill","stroke","filter","clip-path","mask","marker","marker-start","marker-mid","marker-end"],s=w=>window.CSS&&CSS.escape?CSS.escape(w):w.replace(/[^a-zA-Z0-9_-]/g,"\\$&"),l="http://www.w3.org/1999/xlink",c=w=>{if(!w||!w.getAttribute)return null;let E=w.getAttribute("href")||w.getAttribute("xlink:href")||(typeof w.getAttributeNS=="function"?w.getAttributeNS(l,"href"):null);if(E)return E;let S=w.attributes;if(!S)return null;for(let v=0;v<S.length;v++){let M=S[v];if(!M||!M.name)continue;if(M.name==="href")return M.value;let N=M.name.indexOf(":");if(N!==-1&&M.name.slice(N+1)==="href")return M.value}return null},u=new Set(Array.from(e.querySelectorAll("[id]")).map(w=>w.id)),d=new Set,f=!1,p=(w,E=null)=>{if(!w)return;o.lastIndex=0;let S;for(;S=o.exec(w);){f=!0;let v=(S[1]||"").trim();v&&(u.has(v)||(d.add(v),E&&!E.has(v)&&E.add(v)))}},g=w=>{let E=w.querySelectorAll("use");for(let v of E){let M=c(v);if(!M||!M.startsWith("#"))continue;f=!0;let N=M.slice(1).trim();N&&!u.has(N)&&d.add(N)}let S=w.querySelectorAll('*[style*="url("],*[fill^="url("], *[stroke^="url("],*[filter^="url("],*[clip-path^="url("],*[mask^="url("],*[marker^="url("],*[marker-start^="url("],*[marker-mid^="url("],*[marker-end^="url("]');for(let v of S){p(v.getAttribute("style")||"");for(let M of a)p(v.getAttribute(M))}};for(let w of i)g(w);if(!f)return;let h=e.querySelector("svg.inline-defs-container");h||(h=n.createElementNS("http://www.w3.org/2000/svg","svg"),h.classList.add("inline-defs-container"),h.setAttribute("aria-hidden","true"),h.setAttribute("style","position:absolute;width:0;height:0;overflow:hidden"),e.insertBefore(h,e.firstChild||null));let m=h.querySelector("defs")||null,y=w=>{if(!w||u.has(w))return null;let E=s(w),S=v=>{let M=r.querySelector(v);return M&&!e.contains(M)?M:null};return S(`svg defs > *#${E}`)||S(`svg > symbol#${E}`)||S(`*#${E}`)};if(!d.size)return;let x=new Set(d),b=new Set;for(;x.size;){let w=x.values().next().value;if(x.delete(w),!w||u.has(w)||b.has(w))continue;let E=y(w);if(!E){b.add(w);continue}m||(m=n.createElementNS("http://www.w3.org/2000/svg","defs"),h.appendChild(m));let S=E.cloneNode(!0);S.id||S.setAttribute("id",w),m.appendChild(S),b.add(w),u.add(w);let v=[S,...S.querySelectorAll("*")];for(let M of v){let N=c(M);if(N&&N.startsWith("#")){let F=N.slice(1).trim();F&&!u.has(F)&&!b.has(F)&&x.add(F)}let O=M.getAttribute?.("style")||"";O&&p(O,x);for(let F of a){let L=M.getAttribute?.(F);L&&p(L,x)}}}}K();function Va(e,t){if(!e||!t)return;let n=e.scrollTop||0;if(!n)return;getComputedStyle(t).position==="static"&&(t.style.position="relative");let r=e.getBoundingClientRect(),i=e.clientHeight,o="data-snap-ph",a=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);for(;a.nextNode();){let s=a.currentNode,l=getComputedStyle(s),c=l.position;if(c!=="sticky"&&c!=="-webkit-sticky")continue;let u=Yn(l.top),d=Yn(l.bottom);if(u==null&&d==null)continue;let f=Ya(s,e),p=Xa(t,f,o);if(!p)continue;let g=s.getBoundingClientRect(),h=g.width,m=g.height,y=g.left-r.left;if(!(h>0&&m>0)||!Number.isFinite(y))continue;let x=u!=null?u+n:n+(i-m-d);if(!Number.isFinite(x))continue;let b=Number.parseInt(l.zIndex,10),w=Number.isFinite(b),E=w?Math.max(b,1)+1:2,S=w?b-1:0,v=p.cloneNode(!1);v.setAttribute(o,"1"),v.style.position="sticky",v.style.left=`${y}px`,v.style.top=`${x}px`,v.style.width=`${h}px`,v.style.height=`${m}px`,v.style.visibility="hidden",v.style.zIndex=String(S),v.style.overflow="hidden",v.style.background="transparent",v.style.boxShadow="none",v.style.filter="none",p.parentElement?.insertBefore(v,p),p.style.position="absolute",p.style.left=`${y}px`,p.style.top=`${x}px`,p.style.bottom="auto",p.style.zIndex=String(E),p.style.pointerEvents="none"}}function Yn(e){if(!e||e==="auto")return null;let t=Number.parseFloat(e);return Number.isFinite(t)?t:null}function Ya(e,t){let n=[];for(let r=e;r&&r!==t;){let i=r.parentElement;if(!i)break;n.push(Array.prototype.indexOf.call(i.children,r)),r=i}return n.reverse()}function Xa(e,t,n){let r=e;for(let i=0;i<t.length;i++)if(r=Ga(r,n)[t[i]],!r)return null;return r instanceof HTMLElement?r:null}function Ga(e,t){let n=[],r=e.children;for(let i=0;i<r.length;i++){let o=r[i];o.hasAttribute(t)||n.push(o)}return n}function Ka(e){let t=getComputedStyle(e),n=t.outlineStyle,r=t.outlineWidth,i=t.borderStyle,o=t.borderWidth,a=n!=="none"&&parseFloat(r)>0,s=i==="none"||parseFloat(o)===0;a&&s&&(e.style.border=`${r} solid transparent`)}async function Ja(e,t={}){let n={styleMap:C.session.styleMap,styleCache:C.session.styleCache,nodeMap:C.session.nodeMap,options:t},r,i="",o="";Ka(e);try{za(e)}catch(l){console.warn("inlineExternal defs or symbol failed:",l)}try{r=await Je(e,n,t)}catch(l){throw console.warn("deepClone failed:",l),l}try{await Ut(e,r,n,t)}catch(l){console.warn("inlinePseudoElements failed:",l)}await ua(r,n);try{let l=r.querySelectorAll("style[data-sd]");for(let c of l)o+=c.textContent||"",c.remove()}catch(l){P(n,"Failed to extract shadow CSS from style[data-sd]",l)}let a=yi(n.styleMap);i=Array.from(a.entries()).map(([l,c])=>`.${c}{${l}}`).join(""),i=o+"[data-snapdom-has-after]::after,[data-snapdom-has-before]::before{content:none!important;display:none!important}"+i;for(let[l,c]of n.styleMap.entries()){if(l.tagName==="STYLE")continue;if(l.getRootNode&&l.getRootNode()instanceof ShadowRoot){l.setAttribute("style",c.replace(/;/g,"; "));continue}let u=a.get(c);u&&l.classList.add(u);let d=l.style?.backgroundImage,f=l.dataset?.snapdomHasIcon;d&&d!=="none"&&(l.style.backgroundImage=d),f&&(l.style.verticalAlign="middle",l.style.display="inline")}for(let[l,c]of n.nodeMap.entries()){let u=c.scrollLeft,d=c.scrollTop;if((u||d)&&l instanceof HTMLElement){l.style.overflow="hidden",l.style.scrollbarWidth="none",l.style.msOverflowStyle="none";let f=document.createElement("div");for(f.style.transform=`translate(${-u}px, ${-d}px)`,f.style.willChange="transform",f.style.display="inline-block",f.style.width="100%";l.firstChild;)f.appendChild(l.firstChild);l.appendChild(f)}}let s=r instanceof HTMLElement&&r.firstElementChild instanceof HTMLElement?r.firstElementChild:r;if(Va(e,s),e===n.nodeMap.get(r)){let l=n.styleCache.get(e)||oe(e);n.styleCache.set(e,l);let c=ii(l.transform);r.style.margin="0",r.style.top="auto",r.style.left="auto",r.style.right="auto",r.style.bottom="auto",r.style.animation="none",r.style.transition="none",r.style.willChange="auto",r.style.float="none",r.style.clear="none",r.style.transform=c||""}for(let[l,c]of n.nodeMap.entries())c.tagName==="PRE"&&(l.style.marginTop="0",l.style.marginBlockStart="0");return{clone:r,classCSS:i,styleCache:n.styleCache}}ke();var xr="http://www.w3.org/1999/xlink";function Za(e){return e.getAttribute("href")||e.getAttribute("xlink:href")||(typeof e.getAttributeNS=="function"?e.getAttributeNS(xr,"href"):null)}function Qa(e){let t=parseInt(e.dataset?.snapdomWidth||"",10)||0,n=parseInt(e.dataset?.snapdomHeight||"",10)||0,r=parseInt(e.getAttribute("width")||"",10)||0,i=parseInt(e.getAttribute("height")||"",10)||0,o=parseFloat(e.style?.width||"")||0,a=parseFloat(e.style?.height||"")||0,s=t||o||r||e.width||e.naturalWidth||100,l=n||a||i||e.height||e.naturalHeight||100;return{width:s,height:l}}async function el(e,t={}){let n=Array.from(e.querySelectorAll("img")),r=async a=>{if(!a.getAttribute("src")){let f=a.currentSrc||a.src||"";f&&a.setAttribute("src",f)}a.removeAttribute("srcset"),a.removeAttribute("sizes");let s=a.src||"";if(!s)return;let l=await G(s,{as:"dataURL",useProxy:t.useProxy});if(l.ok&&typeof l.data=="string"&&l.data.startsWith("data:")){a.src=l.data,a.width||(a.width=a.naturalWidth||100),a.height||(a.height=a.naturalHeight||100);return}let{width:c,height:u}=Qa(a),{fallbackURL:d}=t||{};if(d)try{let f=typeof d=="function"?await d({width:c,height:u,src:s,element:a}):d;if(f){let p=await G(f,{as:"dataURL",useProxy:t.useProxy});if(p?.ok&&typeof p.data=="string"){a.src=p.data,a.width||(a.width=c),a.height||(a.height=u);return}}}catch{}if(t.placeholders!==!1){let f=document.createElement("div");f.style.cssText=[`width:${c}px`,`height:${u}px`,"background:#ccc","display:inline-block","text-align:center",`line-height:${u}px`,"color:#666","font-size:12px","overflow:hidden"].join(";"),f.textContent="img",a.replaceWith(f)}else{let f=document.createElement("div");f.style.cssText=`display:inline-block;width:${c}px;height:${u}px;visibility:hidden;`,a.replaceWith(f)}};for(let a=0;a<n.length;a+=4){let s=n.slice(a,a+4).map(r);await Promise.allSettled(s)}let i=Array.from(e.querySelectorAll("image")),o=async a=>{let s=Za(a);if(!s||s.startsWith("data:")||s.startsWith("blob:"))return;let l=await G(s,{as:"dataURL",useProxy:t.useProxy});l.ok&&typeof l.data=="string"&&l.data.startsWith("data:")&&(a.setAttribute("href",l.data),a.removeAttribute("xlink:href"),typeof a.removeAttributeNS=="function"&&a.removeAttributeNS(xr,"href"))};for(let a=0;a<i.length;a+=4){let s=i.slice(a,a+4).map(o);await Promise.allSettled(s)}}J();async function tl(e,t,n,r={}){let i=[[e,t]],o=["background-image","mask","mask-image","-webkit-mask","-webkit-mask-image","mask-source","mask-box-image-source","mask-border-source","-webkit-mask-box-image-source","border-image","border-image-source"],a=["mask-position","mask-size","mask-repeat","-webkit-mask-position","-webkit-mask-size","-webkit-mask-repeat","mask-origin","mask-clip","-webkit-mask-origin","-webkit-mask-clip","-webkit-mask-position-x","-webkit-mask-position-y"],s=["background-position","background-position-x","background-position-y","background-size","background-repeat","background-origin","background-clip","background-attachment","background-blend-mode"],l=["border-image-slice","border-image-width","border-image-outset","border-image-repeat"];for(;i.length;){let[c,u]=i.shift();if(!u)continue;let d=n.get(c)||oe(c);n.has(c)||n.set(c,d);let f=(()=>{let h=d.getPropertyValue("border-image"),m=d.getPropertyValue("border-image-source");return h&&h!=="none"||m&&m!=="none"})();for(let h of s){let m=d.getPropertyValue(h);m&&u.style.setProperty(h,m)}for(let h of o){let m=d.getPropertyValue(h);if(h==="background-image"&&(!m||m==="none")){let b=d.getPropertyValue("background");b&&/url\s*\(/.test(b)&&(m=_t(b).find(w=>/url\s*\(/.test(w))||m)}if(!m||m==="none")continue;let y=_t(m),x=await Promise.all(y.map(b=>Jn(b,r)));x.some(b=>b&&b!=="none"&&!/^url\(undefined/.test(b))&&u.style.setProperty(h,x.join(", "))}for(let h of a){let m=d.getPropertyValue(h);!m||m==="initial"||u.style.setProperty(h,m)}if(f)for(let h of l){let m=d.getPropertyValue(h);!m||m==="initial"||u.style.setProperty(h,m)}let p=c.shadowRoot?Array.from(c.shadowRoot.children).filter(h=>h.tagName!=="STYLE"):Array.from(c.children),g=Array.from(u.children).filter(h=>!(h.dataset?.snapdomPseudo||h.tagName==="STYLE"&&h.dataset?.sd));for(let h=0;h<Math.min(p.length,g.length);h++)i.push([p[h],g[h]])}}J();K();function nl(e){if(!e)return()=>{};let t=[];function n(r){let i=rl(r);i&&t.push(i);for(let o of r.children||[])n(o)}return n(e),()=>t.forEach(r=>r())}function rl(e){if(!e)return()=>{};let t=ol(e);if(t<=0)return()=>{};if(!ll(e))return()=>{};let n=getComputedStyle(e),r=Math.round(il(n)*t+al(n)),i=e.textContent??"",o=i;if(e.scrollHeight<=r+.5)return()=>{};let a=0,s=i.length,l=-1;for(;a<=s;){let c=a+s>>1;e.textContent=i.slice(0,c)+"\u2026",e.scrollHeight<=r+.5?(l=c,a=c+1):s=c-1}return e.textContent=(l>=0?i.slice(0,l):"")+"\u2026",()=>{e.textContent=o}}function ol(e){let t=getComputedStyle(e),n=t.getPropertyValue("-webkit-line-clamp")||t.getPropertyValue("line-clamp");n=(n||"").trim();let r=parseInt(n,10);return Number.isFinite(r)&&r>0?r:0}function il(e){let t=(e.lineHeight||"").trim(),n=parseFloat(e.fontSize)||16;return!t||t==="normal"?Math.round(n*1.2):t.endsWith("px")?parseFloat(t):/^\d+(\.\d+)?$/.test(t)?Math.round(parseFloat(t)*n):t.endsWith("%")?Math.round(parseFloat(t)/100*n):Math.round(n*1.2)}function al(e){return(parseFloat(e.paddingTop)||0)+(parseFloat(e.paddingBottom)||0)}function ll(e){return e.childElementCount>0?!1:Array.from(e.childNodes).some(t=>t.nodeType===Node.TEXT_NODE)}var Pe=[];function vr(e){if(!e)return null;if(Array.isArray(e)){let[t,n]=e;return typeof t=="function"?t(n):t}if(typeof e=="object"&&"plugin"in e){let{plugin:t,options:n}=e;return typeof t=="function"?t(n):t}return typeof e=="function"?e():e}function sl(...e){let t=e.flat();for(let n of t){let r=vr(n);r&&(Pe.some(i=>i&&i.name&&r.name&&i.name===r.name)||Pe.push(r))}}function Sr(e){return(e&&Array.isArray(e.plugins)?e.plugins:Pe)||Pe}async function se(e,t,n){let r=n,i=Sr(t);for(let o of i){let a=o&&typeof o[e]=="function"?o[e]:null;if(!a)continue;let s=await a(t,r);typeof s<"u"&&(r=s)}return r}async function cl(e,t,n){let r=[],i=Sr(t);for(let o of i){let a=o&&typeof o[e]=="function"?o[e]:null;if(!a)continue;let s=await a(t,n);typeof s<"u"&&r.push(s)}return r}function ul(e){let t=[];if(Array.isArray(e))for(let n of e){let r=vr(n);if(!r||!r.name)continue;let i=t.findIndex(o=>o&&o.name===r.name);i>=0&&t.splice(i,1),t.push(r)}for(let n of Pe)n&&n.name&&!t.some(r=>r.name===n.name)&&t.push(n);return Object.freeze(t)}function dl(e,t,n=!1){return!e||e.plugins&&!n||(e.plugins=ul(t)),e}J();function fl(e,t,n={}){if(!e||!t||!t.style)return;let r=getComputedStyle(e);try{t.style.boxShadow="none"}catch(o){P(n,"stripRootShadows boxShadow",o)}try{t.style.textShadow="none"}catch(o){P(n,"stripRootShadows textShadow",o)}try{t.style.outline="none"}catch(o){P(n,"stripRootShadows outline",o)}let i=(r.filter||"").replace(/\bblur\([^()]*\)\s*/gi,"").replace(/\bdrop-shadow\([^()]*\)\s*/gi,"").trim().replace(/\s+/g," ");try{t.style.filter=i.length?i:"none"}catch(o){P(n,"stripRootShadows filter",o)}}function ml(e){let t=document.createTreeWalker(e,NodeFilter.SHOW_COMMENT),n=[];for(;t.nextNode();)n.push(t.currentNode);for(let r of n)r.remove()}function pl(e,t={}){let{stripFrameworkDirectives:n=!0}=t,r=new Set(["xml","xlink"]),i=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);for(;i.nextNode();){let o=i.currentNode;for(let a of Array.from(o.attributes)){let s=a.name;if(s.includes("@")){o.removeAttribute(s);continue}if(s.includes(":")){let l=s.split(":",1)[0];if(!r.has(l)){o.removeAttribute(s);continue}}if(n&&(s.startsWith("x-")||s.startsWith("v-")||s.startsWith(":")||s.startsWith("on:")||s.startsWith("bind:")||s.startsWith("let:")||s.startsWith("class:"))){o.removeAttribute(s);continue}}}}function hl(e,t={}){e&&(pl(e,t),ml(e))}function gl(e){try{let t=e.getAttribute?.("style")||"";return/\b(height|width|block-size|inline-size)\s*:/.test(t)}catch{return!1}}function yl(e){return e instanceof HTMLImageElement||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement||e instanceof HTMLIFrameElement||e instanceof SVGElement||e instanceof HTMLObjectElement||e instanceof HTMLEmbedElement}function wl(e,t){if(!(e instanceof Element)||gl(e)||yl(e))return!1;let n=t.position;if(n==="absolute"||n==="fixed"||n==="sticky")return!1;let r=t.display||"";return!(r.includes("flex")||r.includes("grid")||r.startsWith("table")||t.transform&&t.transform!=="none")}function bl(e,t,n=new Map){function r(i,o){if(!(i instanceof Element)||!(o instanceof Element))return;let a=i.childElementCount>o.childElementCount,s=n.get(i)||getComputedStyle(i);if(n.has(i)||n.set(i,s),a&&wl(i,s)){o.style.height||(o.style.height="auto"),o.style.width||(o.style.width="auto"),o.style.removeProperty("block-size"),o.style.removeProperty("inline-size"),o.style.minHeight||(o.style.minHeight="0"),o.style.minWidth||(o.style.minWidth="0"),o.style.maxHeight||(o.style.maxHeight="none"),o.style.maxWidth||(o.style.maxWidth="none");let u=s.overflowY||s.overflowBlock||"visible",d=s.overflowX||s.overflowInline||"visible";(u!=="visible"||d!=="visible")&&(o.style.overflow="visible")}let l=Array.from(i.children),c=Array.from(o.children);for(let u=0;u<Math.min(l.length,c.length);u++)r(l[u],c[u])}r(e,t)}function xl(e){let t=getComputedStyle(e);return!(t.display==="none"||t.position==="absolute"||t.position==="fixed")}function vl(e,t){if(!(e instanceof Element))return!1;if(e.getAttribute("data-capture")==="exclude"&&t?.excludeMode==="remove")return!0;if(Array.isArray(t?.exclude))for(let n of t.exclude)try{if(e.matches(n))return t.excludeMode==="remove"}catch(r){P(t,"exclude selector match failed",r)}return!1}function Sl(e,t){let n=getComputedStyle(e),r=e.getBoundingClientRect(),i=1/0,o=-1/0,a=!1,s=Array.from(e.children);for(let p of s){if(vl(p,t)||!xl(p))continue;let g=p.getBoundingClientRect(),h=g.top-r.top,m=g.bottom-r.top;m<=h||(h<i&&(i=h),m>o&&(o=m),a=!0)}let l=a?Math.max(0,o-i):0,c=parseFloat(n.borderTopWidth)||0,u=parseFloat(n.borderBottomWidth)||0,d=parseFloat(n.paddingTop)||0,f=parseFloat(n.paddingBottom)||0;return c+u+d+f+l}var A=(e,t=3)=>Number.isFinite(e)?Math.round(e*10**t)/10**t:e,El=/::-webkit-scrollbar(-[a-z]+)?\b/i;function qt(e,t=new Set){let n="";if(!e)return n;for(let r=0;r<e.length;r++){let i=e[r];try{if(i.type===CSSRule.IMPORT_RULE&&i.styleSheet){n+=qt(i.styleSheet.cssRules,t);continue}if(i.type===CSSRule.MEDIA_RULE&&i.cssRules){let o=qt(i.cssRules,t);o&&(n+=`@media ${i.conditionText}{${o}}`);continue}if(i.type===CSSRule.STYLE_RULE){let o=i.selectorText||"";if(El.test(o)){let a=i.cssText;a&&!t.has(a)&&(t.add(a),n+=a)}}}catch{}}return n}function Cl(e){if(!e||!e.styleSheets)return"";let t=new Set,n="";for(let r of Array.from(e.styleSheets))try{let i=r.cssRules;i&&(n+=qt(i,t))}catch{}return n}function kl(e){let t=e.boxShadow||"";if(!t||t==="none")return{top:0,right:0,bottom:0,left:0};let n=t.split(/\),(?=(?:[^()]*\([^()]*\))*[^()]*$)/).map(s=>s.trim()),r=0,i=0,o=0,a=0;for(let s of n){let l=s.match(/-?\d+(\.\d+)?px/g)?.map(h=>parseFloat(h))||[];if(l.length<2)continue;let[c,u,d=0,f=0]=l,p=Math.abs(c)+d+f,g=Math.abs(u)+d+f;i=Math.max(i,p+Math.max(c,0)),a=Math.max(a,p+Math.max(-c,0)),o=Math.max(o,g+Math.max(u,0)),r=Math.max(r,g+Math.max(-u,0))}return{top:Math.ceil(r),right:Math.ceil(i),bottom:Math.ceil(o),left:Math.ceil(a)}}function Ml(e){let t=(e.filter||"").match(/blur\(\s*([0-9.]+)px\s*\)/),n=t?Math.ceil(parseFloat(t[1])||0):0;return{top:n,right:n,bottom:n,left:n}}function Al(e){if((e.outlineStyle||"none")==="none")return{top:0,right:0,bottom:0,left:0};let t=Math.ceil(parseFloat(e.outlineWidth||"0")||0);return{top:t,right:t,bottom:t,left:t}}function $l(e){let t=`${e.filter||""} ${e.webkitFilter||""}`.trim();if(!t||t==="none")return{bleed:{top:0,right:0,bottom:0,left:0},has:!1};let n=t.match(/drop-shadow\((?:[^()]|\([^()]*\))*\)/gi)||[],r=0,i=0,o=0,a=0,s=!1;for(let l of n){s=!0;let c=l.match(/-?\d+(?:\.\d+)?px/gi)?.map(h=>parseFloat(h))||[],[u=0,d=0,f=0]=c,p=Math.abs(u)+f,g=Math.abs(d)+f;i=Math.max(i,p+Math.max(u,0)),a=Math.max(a,p+Math.max(-u,0)),o=Math.max(o,g+Math.max(d,0)),r=Math.max(r,g+Math.max(-d,0))}return{bleed:{top:A(r),right:A(i),bottom:A(o),left:A(a)},has:s}}function Ll(e,t){if(!e||!t||!t.style)return null;let n=getComputedStyle(e);try{t.style.transformOrigin="0 0"}catch{}try{"translate"in t.style&&(t.style.translate="none"),"rotate"in t.style&&(t.style.rotate="none")}catch{}let r=n.transform||"none";if(!r||r==="none")try{let o=Er(e);if(o.a===1&&o.b===0&&o.c===0&&o.d===1)return t.style.transform="none",{a:1,b:0,c:0,d:1}}catch{}let i=r.match(/^matrix\(\s*([^)]+)\)$/i);if(i){let o=i[1].split(",").map(a=>parseFloat(a.trim()));if(o.length===6&&o.every(Number.isFinite)){let[a,s,l,c]=o,u=Math.sqrt(a*a+s*s)||0,d=0,f=0,p=0,g=0,h=0,m=0;u>0&&(d=a/u,f=s/u,p=d*l+f*c,g=l-d*p,h=c-f*p,m=Math.sqrt(g*g+h*h)||0,m>0?p=p/m:p=0);let y=u,x=0,b=p*m,w=m;try{t.style.transform=`matrix(${y}, ${x}, ${b}, ${w}, 0, 0)`}catch{}return{a:y,b:x,c:b,d:w}}}try{let o=String(r).trim();return t.style.transform=o+" translate(0px, 0px) rotate(0deg)",null}catch{return null}}function Xn(e,t,n,r,i){let o=n.a,a=n.b,s=n.c,l=n.d,c=n.e||0,u=n.f||0;function d(y,x){let b=y-r,w=x-i,E=o*b+s*w,S=a*b+l*w;return E+=r+c,S+=i+u,[E,S]}let f=[d(0,0),d(e,0),d(0,t),d(e,t)],p=1/0,g=1/0,h=-1/0,m=-1/0;for(let[y,x]of f)y<p&&(p=y),x<g&&(g=x),y>h&&(h=y),x>m&&(m=x);return{minX:p,minY:g,maxX:h,maxY:m,width:h-p,height:m-g}}function Nl(e,t,n){let r=(e.transformOrigin||"0 0").trim().split(/\s+/),[i,o]=[r[0]||"0",r[1]||"0"],a=(s,l)=>{let c=s.toLowerCase();return c==="left"||c==="top"?0:c==="center"?l/2:c==="right"||c==="bottom"?l:c.endsWith("px")?parseFloat(c)||0:c.endsWith("%")?(parseFloat(c)||0)*l/100:/^-?\d+(\.\d+)?$/.test(c)&&parseFloat(c)||0};return{ox:a(i,t),oy:a(o,n)}}function Tl(e){let t={rotate:"0deg",scale:null,translate:null},n=typeof e.computedStyleMap=="function"?e.computedStyleMap():null;if(n){let i=l=>{try{return typeof n.has=="function"&&!n.has(l)||typeof n.get!="function"?null:n.get(l)}catch{return null}},o=i("rotate");if(o)if(o.angle){let l=o.angle;t.rotate=l.unit==="rad"?l.value*180/Math.PI+"deg":l.value+l.unit}else o.unit?t.rotate=o.unit==="rad"?o.value*180/Math.PI+"deg":o.value+o.unit:t.rotate=String(o);else{let l=getComputedStyle(e);t.rotate=l.rotate&&l.rotate!=="none"?l.rotate:"0deg"}let a=i("scale");if(a){let l="x"in a&&a.x?.value!=null?a.x.value:Array.isArray(a)?a[0]?.value:Number(a)||1,c="y"in a&&a.y?.value!=null?a.y.value:Array.isArray(a)?a[1]?.value:l;t.scale=`${l} ${c}`}else{let l=getComputedStyle(e);t.scale=l.scale&&l.scale!=="none"?l.scale:null}let s=i("translate");if(s){let l="x"in s&&"value"in s.x?s.x.value:Array.isArray(s)?s[0]?.value:0,c="y"in s&&"value"in s.y?s.y.value:Array.isArray(s)?s[1]?.value:0,u="x"in s&&s.x?.unit?s.x.unit:"px",d="y"in s&&s.y?.unit?s.y.unit:"px";t.translate=`${l}${u} ${c}${d}`}else{let l=getComputedStyle(e);t.translate=l.translate&&l.translate!=="none"?l.translate:null}return t}let r=getComputedStyle(e);return t.rotate=r.rotate&&r.rotate!=="none"?r.rotate:"0deg",t.scale=r.scale&&r.scale!=="none"?r.scale:null,t.translate=r.translate&&r.translate!=="none"?r.translate:null,t}var Nt=null;function Rl(){if(Nt)return Nt;let e=document.createElement("div");return e.id="snapdom-measure-slot",e.setAttribute("aria-hidden","true"),Object.assign(e.style,{position:"absolute",left:"-99999px",top:"0px",width:"0px",height:"0px",overflow:"hidden",opacity:"0",pointerEvents:"none",contain:"size layout style"}),document.documentElement.appendChild(e),Nt=e,e}function _l(e){let t=Rl(),n=document.createElement("div");n.style.transformOrigin="0 0",e.baseTransform&&(n.style.transform=e.baseTransform),e.rotate&&(n.style.rotate=e.rotate),e.scale&&(n.style.scale=e.scale),e.translate&&(n.style.translate=e.translate),t.appendChild(n);let r=Er(n);return t.removeChild(n),r}function Pl(e){let t=getComputedStyle(e),n=t.transform||"none";if(n!=="none"&&!/^matrix\(\s*1\s*,\s*0\s*,\s*0\s*,\s*1\s*,\s*0\s*,\s*0\s*\)$/i.test(n))return!0;let r=t.rotate&&t.rotate!=="none"&&t.rotate!=="0deg",i=t.scale&&t.scale!=="none"&&t.scale!=="1",o=t.translate&&t.translate!=="none"&&t.translate!=="0px 0px";return!!(r||i||o)}function Er(e){let t=getComputedStyle(e).transform;if(!t||t==="none")return new DOMMatrix;try{return new DOMMatrix(t)}catch{return new WebKitCSSMatrix(t)}}async function Cr(e,t){if(!e)throw new Error("Element cannot be null or undefined");oi(t.cache);let n=t.fast,r=t.outerTransforms!==!1,i=!!t.outerShadows,o={element:e,options:t,plugins:t.plugins},a,s,l,c="",u="",d,f,p=null;await se("beforeSnap",o),await se("beforeClone",o);let g=nl(o.element);try{({clone:a,classCSS:s,styleCache:l}=await Ja(o.element,o.options)),!r&&a&&(p=Ll(o.element,a)),!i&&a&&fl(o.element,a,o.options)}finally{g()}if(o={clone:a,classCSS:s,styleCache:l,...o},await se("afterClone",o),hl(o.clone),o.options?.excludeMode==="remove")try{bl(o.element,o.clone,o.styleCache)}catch(b){console.warn("[snapdom] shrink pass failed:",b)}try{await ba(o.clone,o.element)}catch{}await new Promise(b=>{Se(async()=>{await el(o.clone,o.options),b()},{fast:n})}),await new Promise(b=>{Se(async()=>{await tl(o.element,o.clone,o.styleCache,o.options),b()},{fast:n})}),t.embedFonts&&await new Promise(b=>{Se(async()=>{let w=yr(o.element),E=Da(o.element);if(fe()){let S=new Set(Array.from(w).map(v=>String(v).split("__")[0]).filter(Boolean));await wr(S,1)}c=await Fa({required:w,usedCodepoints:E,preCached:!1,exclude:o.options.excludeFonts,useProxy:o.options.useProxy,fontStylesheetDomains:o.options.fontStylesheetDomains}),b()},{fast:n})});let h=hi(o.clone).sort(),m=h.join(",");C.baseStyle.has(m)?u=C.baseStyle.get(m):await new Promise(b=>{Se(()=>{u=gi(h),C.baseStyle.set(m,u),b()},{fast:n})});let y=Cl(o.element?.ownerDocument||document);o={fontsCSS:c,baseCSS:u,scrollbarCSS:y,...o},await se("beforeRender",o),await new Promise(b=>{Se(()=>{let w=oe(o.element),E=o.element.getBoundingClientRect(),S=Math.max(1,A(o.element.offsetWidth||parseFloat(w.width)||E.width||1)),v=Math.max(1,A(o.element.offsetHeight||parseFloat(w.height)||E.height||1)),M=o.element.ownerDocument||document;if(o.element===M.body||o.element===M.documentElement){let U=Math.max(o.element.scrollHeight||0,M.documentElement?.scrollHeight||0,M.body?.scrollHeight||0),j=Math.max(o.element.scrollWidth||0,M.documentElement?.scrollWidth||0,M.body?.scrollWidth||0);U>0&&(v=Math.max(v,A(U))),j>0&&(S=Math.max(S,A(j)));try{let q=M.createElement("div");q.style.cssText="position:absolute!important;left:-9999px!important;top:0!important;width:"+S+"px!important;overflow:visible!important;visibility:hidden!important;";let Ue=M.createElement("style");Ue.textContent=(o.scrollbarCSS||"")+o.baseCSS+o.fontsCSS+"svg{overflow:visible;} foreignObject{overflow:visible;}"+o.classCSS,q.appendChild(Ue),q.appendChild(o.clone.cloneNode(!0)),M.body.appendChild(q);let qe=q.scrollHeight,je=q.scrollWidth;M.body.removeChild(q),qe>0&&(v=Math.max(v,A(qe))),je>0&&(S=Math.max(S,A(je)))}catch{}}if(o.options?.excludeMode==="remove"){let U=Sl(o.element,o.options);Number.isFinite(U)&&U>0&&(v=Math.max(1,Math.min(v,A(U+1))))}let N=(U,j=NaN)=>{let q=typeof U=="string"?parseFloat(U):U;return Number.isFinite(q)?q:j},O=N(o.options.width),F=N(o.options.height),L=S,$=v,D=Number.isFinite(O),B=Number.isFinite(F),We=v>0?S/v:1;D&&B?(L=Math.max(1,A(O)),$=Math.max(1,A(F))):D?(L=Math.max(1,A(O)),$=Math.max(1,A(L/(We||1)))):B?($=Math.max(1,A(F)),L=Math.max(1,A($*(We||1)))):(L=S,$=v);let _=0,T=0,H=S,I=v;if(!r&&p&&Number.isFinite(p.a)){let U={a:p.a,b:p.b||0,c:p.c||0,d:p.d||1,e:0,f:0},j=Xn(S,v,U,0,0);_=A(j.minX),T=A(j.minY),H=A(j.maxX),I=A(j.maxY)}else if(r&&Gn(o.element)){let U=w.transform&&w.transform!=="none"?w.transform:"",j=Tl(o.element),q=_l({baseTransform:U,rotate:j.rotate||"0deg",scale:j.scale,translate:j.translate}),{ox:Ue,oy:qe}=Nl(w,S,v),je=q.is2D?q:new DOMMatrix(q.toString()),ze=Xn(S,v,je,Ue,qe);_=A(ze.minX),T=A(ze.minY),H=A(ze.maxX),I=A(ze.maxY)}let ie=kl(w),Q=Ml(w),he=Al(w),ge=$l(w),ce=i?{top:A(ie.top+Q.top+he.top+ge.bleed.top),right:A(ie.right+Q.right+he.right+ge.bleed.right),bottom:A(ie.bottom+Q.bottom+he.bottom+ge.bleed.bottom),left:A(ie.left+Q.left+he.left+ge.bleed.left)}:{top:0,right:0,bottom:0,left:0};_=A(_-ce.left),T=A(T-ce.top),H=A(H+ce.right),I=A(I+ce.bottom);let $e=Math.max(1,A(H-_)),en=Math.max(1,A(I-T)),xo=D||B?A(L/S):1,vo=B||D?A($/v):1,So=Math.max(1,A($e*xo)),Eo=Math.max(1,A(en*vo)),tn="http://www.w3.org/2000/svg",Co=fe()&&Gn(o.element)?1:0,ae=A(Co+(r?0:1)),le=document.createElementNS(tn,"foreignObject"),ko=A(_),Mo=A(T);le.setAttribute("x",String(A(-(ko-ae)))),le.setAttribute("y",String(A(-(Mo-ae)))),le.setAttribute("width",String(A(S+ae*2))),le.setAttribute("height",String(A(v+ae*2))),le.style.overflow="visible";let nn=document.createElement("style");nn.textContent=(o.scrollbarCSS||"")+o.baseCSS+o.fontsCSS+"svg{overflow:visible;} foreignObject{overflow:visible;}"+o.classCSS,le.appendChild(nn);let Be=document.createElement("div");Be.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),Be.style.cssText=`all:initial;box-sizing:border-box;display:block;overflow:visible;width:${A(S)}px;height:${A(v)}px`,Be.appendChild(o.clone),le.appendChild(Be);let Ao=new XMLSerializer().serializeToString(le),yt=A($e+ae*2),wt=A(en+ae*2),rn=D||B;t.meta={w0:S,h0:v,vbW:yt,vbH:wt,targetW:L,targetH:$};let $o=fe()&&rn?yt:A(So+ae*2),Lo=fe()&&rn?wt:A(Eo+ae*2),No=parseFloat(oe(M.documentElement)?.fontSize)||16;f=`<svg xmlns="${tn}" width="${$o}" height="${Lo}" viewBox="0 0 ${yt} ${wt}" font-size="${No}px">`+Ao+"</svg>",d=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(f)}`,o={svgString:f,dataURL:d,...o},b()},{fast:n})}),await se("afterRender",o);let x=document.getElementById("snapdom-sandbox");return x&&x.style.position==="absolute"&&x.remove(),o.dataURL}function Gn(e){return Pl(e)}K();function Fl(e={}){let t=e.format??"png";t==="jpg"&&(t="jpeg");let n=ri(e.cache);return{debug:e.debug??!1,fast:e.fast??!0,scale:e.scale??1,exclude:e.exclude??[],excludeMode:e.excludeMode??"hide",filter:e.filter??null,filterMode:e.filterMode??"hide",placeholders:e.placeholders!==!1,embedFonts:e.embedFonts??!1,iconFonts:Array.isArray(e.iconFonts)?e.iconFonts:e.iconFonts?[e.iconFonts]:[],localFonts:Array.isArray(e.localFonts)?e.localFonts:[],excludeFonts:e.excludeFonts??void 0,fontStylesheetDomains:Array.isArray(e.fontStylesheetDomains)?e.fontStylesheetDomains:[],fallbackURL:e.fallbackURL??void 0,cache:n,useProxy:typeof e.useProxy=="string"?e.useProxy:"",width:e.width??null,height:e.height??null,format:t,type:e.type??"svg",quality:e.quality??.92,dpr:e.dpr??(window.devicePixelRatio||1),backgroundColor:e.backgroundColor??(["jpeg","webp"].includes(t)?"#ffffff":null),filename:e.filename??"snapDOM",outerTransforms:e.outerTransforms??!0,outerShadows:e.outerShadows??!1,safariWarmupAttempts:Math.min(3,Math.max(1,(e.safariWarmupAttempts??3)|0)),excludeStyleProps:e.excludeStyleProps??null}}De();rr();J();ke();K();function Dl(...e){return sl(...e),R}var R=Object.assign(Ol,{plugins:Dl}),kr=Symbol("snapdom.internal"),Il=Symbol("snapdom.internal.silent"),Kn=!1;async function Ol(e,t){if(!e)throw new Error("Element cannot be null or undefined");let n=Fl(t);if(dl(n,t&&t.plugins),fe()&&(n.embedFonts===!0||Wl(e))){if(n.embedFonts)try{let i=yr(e),o=new Set([...i].map(a=>String(a).split("__")[0]).filter(Boolean));await wr(o,1)}catch{}let r=n.safariWarmupAttempts??3;for(let i=0;i<r;i++)try{await Hl(e,t)}catch{}}return n.iconFonts&&n.iconFonts.length>0&&fa(n.iconFonts),n.snap||(n.snap={toPng:(r,i)=>R.toPng(r,i),toSvg:(r,i)=>R.toSvg(r,i)}),R.capture(e,n,kr)}R.capture=async(e,t,n)=>{if(n!==kr)throw new Error("[snapdom.capture] is internal. Use snapdom(...) instead.");let r=await Cr(e,t),i={img:async(h,m)=>{let{toImg:y}=await Promise.resolve().then(()=>(Nn(),Pt));return y(r,{...h,...m||{}})},svg:async(h,m)=>{let{toSvg:y}=await Promise.resolve().then(()=>(Nn(),Pt));return y(r,{...h,...m||{}})},canvas:async(h,m)=>{let{toCanvas:y}=await Promise.resolve().then(()=>(ot(),or));return y(r,{...h,...m||{}})},blob:async(h,m)=>{let{toBlob:y}=await Promise.resolve().then(()=>(cr(),lr));return y(r,{...h,...m||{}})},png:async(h,m)=>{let{rasterize:y}=await Promise.resolve().then(()=>(Ke(),Ge));return y(r,{...h,...m||{},format:"png"})},jpeg:async(h,m)=>{let{rasterize:y}=await Promise.resolve().then(()=>(Ke(),Ge));return y(r,{...h,...m||{},format:"jpeg"})},webp:async(h,m)=>{let{rasterize:y}=await Promise.resolve().then(()=>(Ke(),Ge));return y(r,{...h,...m||{},format:"webp"})},download:async(h,m)=>{let{download:y}=await Promise.resolve().then(()=>(Ti(),ur));return y(r,{...h,...m||{}})}},o={};for(let h of["img","svg","canvas","blob","png","jpeg","webp"])o[h]=async m=>i[h](t,{...m||{},[Il]:!0});o.jpg=o.jpeg;let a={...t,export:{url:r},exports:o},s=await cl("defineExports",a),l=Object.assign({},...s.filter(h=>h&&typeof h=="object")),c={...i,...l};c.jpeg&&!c.jpg&&(c.jpg=(h,m)=>c.jpeg(h,m));function u(h,m){let y={...t,...m||{}};return(h==="jpeg"||h==="jpg")&&(y.backgroundColor==null||y.backgroundColor==="transparent")&&(y.backgroundColor="#ffffff"),y}let d=!1,f=Promise.resolve();async function p(h,m){let y=async()=>{let x=c[h];if(!x)throw new Error(`[snapdom] Unknown export type: ${h}`);let b=u(h,m),w={...t,export:{type:h,options:b,url:r}};await se("beforeExport",w);let E=await x(w,b);return await se("afterExport",w,E),d||(d=!0,await se("afterSnap",t)),E};return f=f.then(y)}let g={url:r,toRaw:()=>r,to:(h,m)=>p(h,m),toImg:h=>p("img",h),toSvg:h=>p("svg",h),toCanvas:h=>p("canvas",h),toBlob:h=>p("blob",h),toPng:h=>p("png",h),toJpg:h=>p("jpg",h),toWebp:h=>p("webp",h),download:h=>p("download",h)};for(let h of Object.keys(c)){let m="to"+h.charAt(0).toUpperCase()+h.slice(1);g[m]||(g[m]=y=>p(h,y))}return g};R.toRaw=(e,t)=>R(e,t).then(n=>n.toRaw());R.toImg=(e,t)=>R(e,t).then(n=>n.toImg());R.toSvg=(e,t)=>R(e,t).then(n=>n.toSvg());R.toCanvas=(e,t)=>R(e,t).then(n=>n.toCanvas());R.toBlob=(e,t)=>R(e,t).then(n=>n.toBlob());R.toPng=(e,t)=>R(e,{...t,format:"png"}).then(n=>n.toPng());R.toJpg=(e,t)=>R(e,{...t,format:"jpeg"}).then(n=>n.toJpg());R.toWebp=(e,t)=>R(e,{...t,format:"webp"}).then(n=>n.toWebp());R.download=(e,t)=>R(e,t).then(n=>n.download());async function Hl(e,t){if(Kn)return;let n={...t,fast:!0,embedFonts:!0,scale:.2},r;try{r=await Cr(e,n)}catch(i){P(t,"safariWarmup pre-capture failed",i)}await new Promise(i=>requestAnimationFrame(()=>requestAnimationFrame(i))),r&&await new Promise(i=>{let o=new Image;try{o.decoding="sync",o.loading="eager"}catch(a){P(t,"safariWarmup img hints failed",a)}o.style.cssText="position:fixed;left:0px;top:0px;width:10px;height:10px;opacity:0.01;pointer-events:none;",o.src=r,document.body.appendChild(o),(async()=>{try{typeof o.decode=="function"&&await o.decode()}catch(s){P(t,"safariWarmup img.decode failed",s)}let a=performance.now();for(;!(o.complete&&o.naturalWidth>0)&&performance.now()-a<900;)await new Promise(s=>setTimeout(s,200));await new Promise(s=>requestAnimationFrame(s));try{let s=document.createElement("canvas");s.width=Math.max(1,o.naturalWidth||10),s.height=Math.max(1,o.naturalHeight||10);let l=s.getContext("2d");l&&l.drawImage(o,0,0)}catch{}await new Promise(s=>requestAnimationFrame(s));try{o.remove()}catch(s){P(t,"safariWarmup img.remove failed",s)}i()})()}),e.querySelectorAll("canvas").forEach(i=>{try{let o=i.getContext("2d",{willReadFrequently:!0});o&&o.getImageData(0,0,1,1)}catch(o){P(t,"safariWarmup canvas poke failed",o)}}),Kn=!0}function Wl(e){let t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);for(;t.nextNode();){let n=t.currentNode,r=getComputedStyle(n),i=r.backgroundImage&&r.backgroundImage!=="none",o=r.maskImage&&r.maskImage!=="none"||r.webkitMaskImage&&r.webkitMaskImage!=="none";if(i||o||n.tagName==="CANVAS")return!0}return!1}function Mr(e){if(e.dataset.fontProxied||!e.rel||!e.rel.includes("stylesheet"))return!1;let t=e.href||"";try{return new URL(t).origin!==window.location.origin}catch{return!1}}function Ar(e){let t=`/__mindstudio_dev__/font-proxy?url=${encodeURIComponent(e.href)}`,n=document.createElement("link");n.rel="stylesheet",n.href=t,n.dataset.fontProxied="true",e.media&&(n.media=e.media),n.onload=()=>{e.remove()},n.onerror=()=>{n.remove()},e.parentNode?.insertBefore(n,e.nextSibling)}function $r(){let e=document.querySelectorAll('link[rel~="stylesheet"]');for(let t of e)Mr(t)&&Ar(t)}function Bl(){let e=k().fonts;e.observer||(e.observer=new MutationObserver(t=>{for(let n of t)for(let r of n.addedNodes)r instanceof HTMLLinkElement&&Mr(r)&&Ar(r)}),e.observer.observe(document.documentElement,{childList:!0,subtree:!0}))}function Lr(){let e=k().fonts;e.initialized||(e.initialized=!0,$r(),Bl())}async function Nr(){$r();try{await document.fonts.ready}catch{}}var Ul=750,ql=400;var me=2,Rr=["#__mindstudio-cursor","#__mindstudio-cursor-ripple","#__mindstudio-notes-cursor","#__mindstudio-camera","#__mindstudio-flash"],jl="#DD2590",zl=`<svg width="44" height="44" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
10
10
  <g filter="url(#filter0_d_2_302)">
11
11
  <path fill-rule="evenodd" clip-rule="evenodd" d="M6.5 21C4.57 21 3 19.43 3 17.5V10.5C3 8.57 4.57 7 6.5 7H7.5C7.966 7 8.387 6.49 8.605 6.053C9.239 4.786 10.028 4 12 4H16C17.972 4 18.761 4.786 19.395 6.053C19.613 6.49 20.034 7 20.5 7H21.5C23.43 7 25 8.57 25 10.5V17.5C25 19.43 23.43 21 21.5 21H6.5Z" fill="white"/>
12
12
  <path fill-rule="evenodd" clip-rule="evenodd" d="M14 18C11.238 18 9 15.762 9 13C9 10.238 11.238 8 14 8C16.762 8 19 10.238 19 13C19 15.762 16.762 18 14 18ZM21.5 8H20.5C19.5 8 18.816 7.132 18.5 6.5C18 5.5 17.5 5 16 5H14H12C10.5 5 10 5.5 9.5 6.5C9.184 7.132 8.5 8 7.5 8H6.5C5.119 8 4 9.119 4 10.5V17.5C4 18.881 5.119 20 6.5 20H21.5C22.881 20 24 18.881 24 17.5V10.5C24 9.119 22.881 8 21.5 8Z" fill="black"/>
@@ -23,13 +23,13 @@ ${h}
23
23
  <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_2_302" result="shape"/>
24
24
  </filter>
25
25
  </defs>
26
- </svg>`,An="__mindstudio-camera",wo="__mindstudio-flash",oe=null,xe=null;function Fs(){if(document.getElementById(An))return;let e=document.createElement("div");e.id=An,e.innerHTML=`
27
- ${Ps}
26
+ </svg>`,Xt="__mindstudio-camera",_r="__mindstudio-flash";function Vl(){if(document.getElementById(Xt))return;let e=k().screenshot,t=document.createElement("div");t.id=Xt,t.innerHTML=`
27
+ ${zl}
28
28
  <div style="
29
29
  position: absolute;
30
30
  left: 48px;
31
31
  top: 12px;
32
- background: ${_s};
32
+ background: ${jl};
33
33
  color: white;
34
34
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
35
35
  font-size: 11px;
@@ -40,10 +40,10 @@ ${h}
40
40
  white-space: nowrap;
41
41
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
42
42
  ">Remy</div>
43
- `,e.style.cssText=["position: fixed","z-index: 2147483647","pointer-events: none","opacity: 0","transition: opacity 300ms ease, left 600ms cubic-bezier(0.4, 0, 0, 1), top 600ms cubic-bezier(0.4, 0, 0, 1)","will-change: left, top, opacity"].join("; ");let t=document.createElement("div");t.id=wo,t.style.cssText=["position: fixed","top: 0","left: 0","width: 100vw","height: 100vh","background: white","opacity: 0","z-index: 2147483646","pointer-events: none","transition: opacity 600ms ease-out"].join("; "),document.documentElement.appendChild(t),document.documentElement.appendChild(e),oe=e,xe=t}function Is(e,t){oe&&(oe.style.left=`${e}px`,oe.style.top=`${t}px`,oe.style.opacity="1")}function go(e,t){oe&&(oe.style.left=`${e}px`,oe.style.top=`${t}px`)}async function Ds(){xe&&(xe.style.transition="none",xe.style.opacity="0.7",xe.offsetWidth,xe.style.transition="opacity 600ms ease-out",xe.style.opacity="0",await U(600))}function Os(){oe&&(oe.style.opacity="0")}function Hs(){document.getElementById(An)?.remove(),document.getElementById(wo)?.remove(),oe=null,xe=null}function Ws(e,t){return new Promise(n=>{let r=window.scrollY,i=e-r;if(Math.abs(i)<1){n();return}let o=Math.abs(i),s=Math.max(t,o/2),l=performance.now();function c(u){let d=u-l,f=Math.min(d/s,1),p=f<.5?4*f*f*f:1-Math.pow(-2*f+2,3)/2;window.scrollTo(0,r+i*p),f<1?requestAnimationFrame(c):n()}requestAnimationFrame(c)})}async function Tt(e){await ho();let t=window.innerWidth,n=window.innerHeight;if(e?.viewportOnly)return Bs(t,n);let r=window.scrollY,i=document.documentElement.style.scrollBehavior;document.documentElement.style.scrollBehavior="auto",Fs();try{let o=Math.random()<.5?t+30:-60,a=n*.3+Math.random()*n*.4;Is(o,a),await U(200);let s=t*.4+Math.random()*t*.15,l=n*.35+Math.random()*n*.15;go(s,l),await U(700);let c=[],u=0,d=()=>Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);for(;u<d();){let x=d()-n,b=Math.min(u,x);Math.abs(b-window.scrollY)>1&&(await Ws(b,Rs),go(s,l),await U(Ns));let E=d(),S=window.scrollY,v=Math.min(n,E-S);await Ds();try{let T=await(await _(document.body,{embedFonts:!0,exclude:yo,excludeMode:"remove"})).toCanvas({width:t});if(T){let W=T.height/E,D=Math.round(S*W),$=Math.round(v*W),A=T.width,O=document.createElement("canvas");O.width=A,O.height=$;let V=O.getContext("2d");V&&(V.drawImage(T,0,D,A,$,0,0,A,$),c.push({y:S,canvas:O}))}}catch{}u+=n}if(c.length===0)throw new Error("Screenshot capture produced no image data");let f=d(),p=c[0].canvas.width/t,g=document.createElement("canvas");g.width=c[0].canvas.width,g.height=Math.round(f*p);let h=g.getContext("2d");if(!h)throw new Error("Failed to create output canvas");for(let x of c)h.drawImage(x.canvas,0,Math.round(x.y*p));let y=g.toDataURL("image/jpeg",.85).replace(/^data:image\/jpeg;base64,/,"");if(!y)throw new Error("Canvas export produced no image data");return{image:y,width:g.width,height:g.height}}finally{Os(),Hs(),document.documentElement.style.scrollBehavior="auto",window.scrollTo(0,r),document.documentElement.style.scrollBehavior=i}}async function Bs(e,t){let r=await(await _(document.body,{embedFonts:!0,exclude:yo,excludeMode:"remove"})).toCanvas({width:e,scale:Ae});if(!r)throw new Error("SnapDOM viewport capture returned empty result");let i=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),o=document.createElement("canvas");o.width=e*Ae,o.height=t*Ae;let a=o.getContext("2d");if(!a)throw new Error("Failed to create canvas context");let s=window.scrollY/i*r.height,l=t/i*r.height;a.drawImage(r,0,s,r.width,l,0,0,e*Ae,t*Ae);let u=o.toDataURL("image/jpeg",.85).replace(/^data:image\/jpeg;base64,/,"");if(!u)throw new Error("Canvas export produced no image data");return{image:u,width:e*Ae,height:t*Ae}}var $n=!1;function bo(){$n=new URLSearchParams(window.location.search).get("display-mode")==="pip",window.addEventListener("message",t=>{!t.data||typeof t.data.command!="string"||(t.data.command==="display-mode-pip"?$n=!0:t.data.command==="display-mode-full"&&($n=!1))})}var xo="__mindstudio-cursor",Us="__mindstudio-cursor-ripple",vo=.07,qs=250,Rt=300,js=2e3,Nt=10,So=1,_t="#DD2590",zs=`<svg width="40" height="41" viewBox="0 0 31 32" fill="none" xmlns="http://www.w3.org/2000/svg">
43
+ `,t.style.cssText=["position: fixed","z-index: 2147483647","pointer-events: none","opacity: 0","transition: opacity 300ms ease, left 600ms cubic-bezier(0.4, 0, 0, 1), top 600ms cubic-bezier(0.4, 0, 0, 1)","will-change: left, top, opacity"].join("; ");let n=document.createElement("div");n.id=_r,n.style.cssText=["position: fixed","top: 0","left: 0","width: 100vw","height: 100vh","background: white","opacity: 0","z-index: 2147483646","pointer-events: none","transition: opacity 600ms ease-out"].join("; "),document.documentElement.appendChild(n),document.documentElement.appendChild(t),e.cameraEl=t,e.flashEl=n}function Yl(e,t){let{cameraEl:n}=k().screenshot;n&&(n.style.left=`${e}px`,n.style.top=`${t}px`,n.style.opacity="1")}function Tr(e,t){let{cameraEl:n}=k().screenshot;n&&(n.style.left=`${e}px`,n.style.top=`${t}px`)}async function Xl(){let{flashEl:e}=k().screenshot;e&&(e.style.transition="none",e.style.opacity="0.7",e.offsetWidth,e.style.transition="opacity 600ms ease-out",e.style.opacity="0",await W(600))}function Gl(){let{cameraEl:e}=k().screenshot;e&&(e.style.opacity="0")}function Kl(){let e=k().screenshot;document.getElementById(Xt)?.remove(),document.getElementById(_r)?.remove(),e.cameraEl=null,e.flashEl=null}function Jl(e,t){return new Promise(n=>{let r=window.scrollY,i=e-r;if(Math.abs(i)<1){n();return}let o=Math.abs(i),s=Math.max(t,o/2),l=performance.now();function c(u){let d=u-l,f=Math.min(d/s,1),p=f<.5?4*f*f*f:1-Math.pow(-2*f+2,3)/2;window.scrollTo(0,r+i*p),f<1?requestAnimationFrame(c):n()}requestAnimationFrame(c)})}async function Ie(e){await Nr();let t=window.innerWidth,n=window.innerHeight;if(e?.viewportOnly)return Zl(t,n);let r=window.scrollY,i=document.documentElement.style.scrollBehavior;document.documentElement.style.scrollBehavior="auto",Vl();try{let o=Math.random()<.5?t+30:-60,a=n*.3+Math.random()*n*.4;Yl(o,a),await W(200);let s=t*.4+Math.random()*t*.15,l=n*.35+Math.random()*n*.15;Tr(s,l),await W(700);let c=[],u=0,d=()=>Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);for(;u<d();){let x=d()-n,b=Math.min(u,x);Math.abs(b-window.scrollY)>1&&(await Jl(b,ql),Tr(s,l),await W(Ul));let E=d(),S=window.scrollY,v=Math.min(n,E-S);await Xl();try{let N=await(await R(document.body,{embedFonts:!0,exclude:Rr,excludeMode:"remove"})).toCanvas({width:t});if(N){let O=N.height/E,F=Math.round(S*O),L=Math.round(v*O),$=N.width,D=document.createElement("canvas");D.width=$,D.height=L;let B=D.getContext("2d");B&&(B.drawImage(N,0,F,$,L,0,0,$,L),c.push({y:S,canvas:D}))}}catch{}u+=n}if(c.length===0)throw new Error("Screenshot capture produced no image data");let f=d(),p=c[0].canvas.width/t,g=document.createElement("canvas");g.width=c[0].canvas.width,g.height=Math.round(f*p);let h=g.getContext("2d");if(!h)throw new Error("Failed to create output canvas");for(let x of c)h.drawImage(x.canvas,0,Math.round(x.y*p));let y=g.toDataURL("image/jpeg",.85).replace(/^data:image\/jpeg;base64,/,"");if(!y)throw new Error("Canvas export produced no image data");return{image:y,width:g.width,height:g.height}}finally{Gl(),Kl(),document.documentElement.style.scrollBehavior="auto",window.scrollTo(0,r),document.documentElement.style.scrollBehavior=i}}async function Zl(e,t){let r=await(await R(document.body,{embedFonts:!0,exclude:Rr,excludeMode:"remove"})).toCanvas({width:e,scale:me});if(!r)throw new Error("SnapDOM viewport capture returned empty result");let i=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),o=document.createElement("canvas");o.width=e*me,o.height=t*me;let a=o.getContext("2d");if(!a)throw new Error("Failed to create canvas context");let s=window.scrollY/i*r.height,l=t/i*r.height;a.drawImage(r,0,s,r.width,l,0,0,e*me,t*me);let u=o.toDataURL("image/jpeg",.85).replace(/^data:image\/jpeg;base64,/,"");if(!u)throw new Error("Canvas export produced no image data");return{image:u,width:e*me,height:t*me}}function Pr(){let e=k().zoom,t=new URLSearchParams(window.location.search);e.pipMode=t.get("display-mode")==="pip",window.addEventListener("message",n=>{!n.data||typeof n.data.command!="string"||(n.data.command==="display-mode-pip"?e.pipMode=!0:n.data.command==="display-mode-full"&&(e.pipMode=!1))})}var Fr="__mindstudio-cursor",Ql="__mindstudio-cursor-ripple",Dr=.07,es=250,lt=300,ts=2e3,at=10,Ir=1,st="#DD2590",ns=`<svg width="40" height="41" viewBox="0 0 31 32" fill="none" xmlns="http://www.w3.org/2000/svg">
44
44
  <g filter="url(#filter0_d_4_78)">
45
- <path d="M12.5448 26L6.72762 5.59339L26 14.8132L17.1816 17.9377L12.5448 26Z" fill="${_t}"/>
46
- <path d="M6.9457 5.14539L26.2178 14.3651L27.2985 14.8826L26.1697 15.2813L17.5259 18.3444L12.9812 26.2464L12.3881 27.2792L12.0614 26.1349L6.24434 5.72851L5.94119 4.66488L6.9457 5.14539Z" stroke="${_t}"/>
45
+ <path d="M12.5448 26L6.72762 5.59339L26 14.8132L17.1816 17.9377L12.5448 26Z" fill="${st}"/>
46
+ <path d="M6.9457 5.14539L26.2178 14.3651L27.2985 14.8826L26.1697 15.2813L17.5259 18.3444L12.9812 26.2464L12.3881 27.2792L12.0614 26.1349L6.24434 5.72851L5.94119 4.66488L6.9457 5.14539Z" stroke="${st}"/>
47
47
  </g>
48
48
  <defs>
49
49
  <filter id="filter0_d_4_78" x="3.15491" y="2.73625" width="27.442" height="28.8217" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
@@ -57,13 +57,13 @@ ${h}
57
57
  <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_4_78" result="shape"/>
58
58
  </filter>
59
59
  </defs>
60
- </svg>`,Vs="Remy",N=null,Z=null,ae=0,le=0,it=!1,Eo=!1,j=null,Ln=null,ko=!1,ve=null,ot=null,$e=null;function Co(e,t,n){return e+(t-e)*n}function Mo(){window.location.search.includes("mode=iframe")&&(Ao(),bo())}function Ao(){if(document.getElementById(xo))return;let e=document.createElement("div");e.id=xo,e.innerHTML=`
61
- ${zs}
60
+ </svg>`,rs="Remy";function Or(e,t,n){return e+(t-e)*n}function Hr(){window.location.search.includes("mode=iframe")&&(Wr(),Pr())}function Wr(){if(document.getElementById(Fr))return;let e=k().cursor,t=document.createElement("div");t.id=Fr,t.innerHTML=`
61
+ ${ns}
62
62
  <div style="
63
63
  position: absolute;
64
64
  left: 33px;
65
65
  top: 23px;
66
- background: ${_t};
66
+ background: ${st};
67
67
  color: white;
68
68
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
69
69
  font-size: 12px;
@@ -74,14 +74,14 @@ ${h}
74
74
  white-space: nowrap;
75
75
  letter-spacing: 0.3px;
76
76
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
77
- ">${Vs}</div>
78
- `,e.style.cssText=["position: fixed","top: 0","left: 0","z-index: 2147483647","pointer-events: none","will-change: left, top, transform, opacity","opacity: 0"].join("; ");let t=document.createElement("div");t.id=Us,t.style.cssText=["position: fixed","z-index: 2147483646","pointer-events: none","width: 0","height: 0","border-radius: 50%",`background: ${_t}`,"opacity: 0","transform: translate(-50%, -50%)","transition: width 400ms ease-out, height 400ms ease-out, opacity 400ms ease-out"].join("; "),document.documentElement.appendChild(t),document.documentElement.appendChild(e),N=e,Z=t}function Ys(){ot===null&&Lo()}function $o(){ot!==null&&(cancelAnimationFrame(ot),ot=null),ve=null}function Lo(){if(N){if(ve&&ve.isConnected){let e=ve.getBoundingClientRect(),t=e.left+e.width/2,n=e.top+e.height/2,r=window.innerWidth,i=window.innerHeight,o=Math.max(Nt,Math.min(t,r-Nt)),a=Math.max(Nt,Math.min(n,i-Nt));if(ae=Co(ae,o,vo),le=Co(le,a,vo),N.style.transition="none",N.style.left=`${ae}px`,N.style.top=`${le}px`,Math.abs(ae-o)<So&&Math.abs(le-a)<So&&(ae=o,le=a,N.style.left=`${ae}px`,N.style.top=`${le}px`,$e)){let s=$e;$e=null,s()}}else if(ve&&!ve.isConnected&&$e){let e=$e;$e=null,e()}ot=requestAnimationFrame(Lo)}}async function Pt(e){if(N){if(j&&(clearTimeout(j),j=null),ve=e,!it){let t=e.getBoundingClientRect(),n=t.left+t.width/2,r=t.top+t.height/2;if(!Eo){let i=Math.max(window.innerWidth,100),o=Math.max(window.innerHeight,100);Math.random()<.5?(ae=i+20,le=r+(Math.random()-.5)*100):(ae=n+(Math.random()-.5)*100,le=o+20),N.style.transition="none",N.style.left=`${ae}px`,N.style.top=`${le}px`,N.style.opacity="0",N.offsetWidth}N.style.transition=`opacity ${Rt}ms ease`,N.style.opacity="1",it=!0,Eo=!0,await U(Rt)}return Ys(),new Promise(t=>{$e=t})}}async function To(){N&&(N.style.transform="scale(0.85) translateY(1px)",Z&&(Z.style.transition="none",Z.style.left=`${ae}px`,Z.style.top=`${le}px`,Z.style.width="0",Z.style.height="0",Z.style.opacity="0.35",Z.offsetWidth,Z.style.transition="width 400ms ease-out, height 400ms ease-out, opacity 400ms ease-out",Z.style.width="40px",Z.style.height="40px",Z.style.opacity="0"),await U(qs),N&&(N.style.transform="scale(1) translateY(0)"),await U(100))}function at(e){ko=e}function Tn(){j&&(clearTimeout(j),j=null)}function Ft(){N&&Ln!=="visible"&&(ve=null,j&&clearTimeout(j),j=setTimeout(()=>{Ln!=="visible"&&(N&&(N.style.transition=`opacity ${Rt}ms ease`,N.style.opacity="0",it=!1),$o(),j=null)},js))}function It(e){ko||(Ln=e,e==="visible"&&!N&&Ao(),N&&(e==="visible"?(j&&(clearTimeout(j),j=null),N.style.transition=`opacity ${Rt}ms ease`,N.style.opacity="1",it=!0):e==="hidden"?(j&&(clearTimeout(j),j=null),N.style.opacity="0",it=!1,$o()):Ft()))}var Gs=["backgroundColor","color","fontFamily","fontSize","fontWeight","fontStyle","lineHeight","letterSpacing","textAlign","textDecoration","textTransform","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","margin","marginTop","marginRight","marginBottom","marginLeft","borderRadius","borderColor","borderWidth","borderStyle","boxShadow","opacity","width","height","display","flexDirection","justifyContent","alignItems","gap"];function Js(e,t){let n=t??Gs;if(e.ref||e.text||e.role||e.label||e.selector){let{element:o,matched:a}=fe(e);return{...No(o,e.ref,n),matched:a}}let r=Fe(),i=[];for(let[o,a]of r)a.isConnected&&i.push(No(a,o,n));return i}function No(e,t,n){let r=window.getComputedStyle(e),i={};t&&(i.ref=t),i.tag=e.tagName.toLowerCase();let o=e.textContent?.trim();o&&(i.text=o.length>60?o.slice(0,60)+"\u2026":o);for(let a of n){let s=r.getPropertyValue(a.replace(/([A-Z])/g,"-$1").toLowerCase());s&&(i[a]=s)}return i}var Ro=150,Ot=100,Dt="__mindstudio_pending_nav";async function Nn(e=300,t=2e3){return new Promise(n=>{let r=Date.now()+t,i=Date.now(),o=window.scrollY,a=window.scrollX,s=document.body.scrollTop,l=document.documentElement.scrollTop,c=document.body.scrollHeight,u=document.body.scrollWidth;function d(){if(Date.now()>r){n();return}let f=window.scrollY,p=window.scrollX,g=document.body.scrollTop,h=document.documentElement.scrollTop,m=document.body.scrollHeight,y=document.body.scrollWidth;(f!==o||p!==a||g!==s||h!==l||m!==c||y!==u)&&(o=f,a=p,s=g,l=h,c=m,u=y,i=Date.now()),Date.now()-i>=e?n():requestAnimationFrame(d)}requestAnimationFrame(d)})}var Ks=350;async function Rn(e){let t=Zs(e),n=t.map(a=>({el:a,top:a.scrollTop,left:a.scrollLeft})),r=document.documentElement.style.scrollBehavior;document.documentElement.style.scrollBehavior="auto",e.scrollIntoView({block:"center",inline:"nearest",behavior:"instant"}),document.documentElement.style.scrollBehavior=r;let i=t.map(a=>({top:a.scrollTop,left:a.scrollLeft})),o=[];for(let a=0;a<t.length;a++)(n[a].top!==i[a].top||n[a].left!==i[a].left)&&o.push({el:t[a],fromTop:n[a].top,fromLeft:n[a].left,toTop:i[a].top,toLeft:i[a].left});if(o.length===0){await new Promise(a=>requestAnimationFrame(()=>a()));return}for(let a of o)a.el.scrollTop=a.fromTop,a.el.scrollLeft=a.fromLeft;await new Promise(a=>{let s=performance.now();function l(c){let u=c-s,d=Math.min(u/Ks,1),f=1-Math.pow(1-d,3);for(let p of o)p.el.scrollTop=p.fromTop+(p.toTop-p.fromTop)*f,p.el.scrollLeft=p.fromLeft+(p.toLeft-p.fromLeft)*f;d<1?requestAnimationFrame(l):a()}requestAnimationFrame(l)})}function Zs(e){let t=[],n=e.parentElement;for(;n;){let r=getComputedStyle(n),i=r.overflowY,o=r.overflowX;(i==="auto"||i==="scroll"||o==="auto"||o==="scroll")&&t.push(n),n=n.parentElement}return t.push(document.scrollingElement||document.documentElement),t}async function Ht(e,t){let n=Date.now(),r=[],i=[],o="",a=!1;at(!0),Tn(),Kt();try{for(let s=0;s<t.length;s++){let l=t[s],c=l.command;try{if(s>0&&await U(Ro+Math.random()*Ot-Ot/2),c==="navigate"){let d=l.url;if(!d)throw new Error('navigate command requires a "url" field');let f=t.slice(s+1);if(f.length>0)try{sessionStorage.setItem(Dt,JSON.stringify({id:e,startTime:n,completedSteps:r,remainingSteps:f,stepOffset:s+1}))}catch{}r.push({index:s,command:c,result:"ok"}),a=!0,window.location.href=d,await new Promise(()=>{})}let u=await Po(l);r.push({index:s,command:c,...u})}catch(u){r.push({index:s,command:c,error:u instanceof Error?u.message:String(u)});break}}i=Zt();try{o=await Ie()}catch{}}finally{at(!1),Ft()}return{id:e,steps:r,snapshot:o,logs:i,duration:Date.now()-n}}async function _o(){let e=null;try{let i=sessionStorage.getItem(Dt);if(!i)return null;sessionStorage.removeItem(Dt),e=JSON.parse(i)}catch{return null}if(!e)return null;let t=[...e.completedSteps],n=[],r="";at(!0),Tn(),Kt();try{for(let i=0;i<e.remainingSteps.length;i++){let o=e.remainingSteps[i],a=o.command,s=e.stepOffset+i;try{if(i>0&&await U(Ro+Math.random()*Ot-Ot/2),a==="navigate"){let c=o.url;if(!c)throw new Error('navigate command requires a "url" field');let u=e.remainingSteps.slice(i+1);if(u.length>0)try{sessionStorage.setItem(Dt,JSON.stringify({id:e.id,startTime:e.startTime,completedSteps:t,remainingSteps:u,stepOffset:s+1}))}catch{}t.push({index:s,command:a,result:"ok"}),window.location.href=c,await new Promise(()=>{})}let l=await Po(o);t.push({index:s,command:a,...l})}catch(l){t.push({index:s,command:a,error:l instanceof Error?l.message:String(l)});break}}n=Zt();try{r=await Ie()}catch{}}finally{at(!1),Ft()}return{id:e.id,steps:t,snapshot:r,logs:n,duration:Date.now()-e.startTime}}async function Po(e){switch(e.command){case"snapshot":return{result:await Ie()};case"click":{let{element:t,matched:n}=fe(e);return await Rn(t),await Pt(t),await To(),an(t),await Nn(),await U(1e3),{result:"ok",matched:n}}case"type":{let{element:t,matched:n}=fe(e),r=e.text;if(!r&&r!=="")throw new Error('type command requires a "text" field');return await Rn(t),await Pt(t),await ar(t,r,{clear:!!e.clear}),await Nn(),{result:"ok",matched:n}}case"select":{let{element:t,matched:n}=fe(e),r=e.option;if(!r)throw new Error('select command requires an "option" field');await Rn(t),await Pt(t);let i=sr(t,r);return await Nn(),{result:`selected "${i}"`,matched:n}}case"wait":{let{matched:t,elapsed:n}=await lr(e);return{result:"ok",matched:t,elapsed:n}}case"styles":{let t=e.properties;return{result:Js(e,t)}}case"evaluate":{let t=e.script;if(!t)throw new Error('evaluate command requires a "script" field');return{result:await cr(t)}}case"screenshot":{let t=e.fullPage===!0;e.scrollToTop&&(window.scrollTo({top:0,behavior:"instant"}),await U(500));let{image:n,width:r,height:i}=await Tt({viewportOnly:!t}),o=e.uploadUrl,a=e.uploadFields;if(o&&a){let s=atob(n),l=new Uint8Array(s.length);for(let f=0;f<s.length;f++)l[f]=s.charCodeAt(f);let c=new FormData;for(let[f,p]of Object.entries(a))c.append(f,p);c.append("file",new Blob([l],{type:"image/jpeg"}),"screenshot.jpg");let u=await fetch(o,{method:"POST",body:c});if(!u.ok)throw new Error(`Screenshot upload failed: ${u.status}`);let d=e._publicUrl;return{result:{width:r,height:i,uploaded:!0,...d?{_publicUrl:d}:{}}}}return{result:{image:n,width:r,height:i}}}case"reload":return location.reload(),{result:"ok"};default:throw new Error(`Unknown command: ${e.command}`)}}var Qs="/__mindstudio_dev__/ws",Do=1e3,ec=1e4,G=null,Fo=null,Wt=Do,Ut=!1,_n=!1;function Oo(){G||(qn(Ho),window.addEventListener("beforeunload",()=>{Ut=!0,G&&G.close()}),Wo())}function Ho(){return G&&G.readyState===WebSocket.OPEN?G:null}function tc(){return`${location.protocol==="https:"?"wss:":"ws:"}//${location.host}${Qs}`}function nc(){return window.location.search.includes("mode=iframe")?"iframe":"standalone"}function Wo(){if(!Ut){try{G=new WebSocket(tc())}catch{Io();return}G.onopen=()=>{try{G.send(JSON.stringify({type:"hello",mode:nc(),url:location.href,viewport:{w:window.innerWidth,h:window.innerHeight}}))}catch{G?.close()}},G.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch{return}switch(t.type){case"ack":Fo=t.clientId,Wt=Do,oc();break;case"command":rc(t.id,t.steps);break;case"broadcast":ic(t.action,t.payload);break}},G.onclose=()=>{G=null,Fo=null,Ut||Io()},G.onerror=()=>{}}}function Io(){Ut||(setTimeout(()=>Wo(),Wt),Wt=Math.min(Wt*2,ec))}async function rc(e,t){if(_n){Bt({id:e,steps:[],snapshot:"",logs:[],duration:0,error:"Browser agent is busy"});return}_n=!0,Pn("command-started",{id:e,steps:t.map(n=>n.command)});try{let n=await Ht(e,t);Bt(n),Pn("command-completed",{id:e,success:!0})}catch{Bt({id:e,steps:[],snapshot:"",logs:[],duration:0}),Pn("command-completed",{id:e,success:!1})}finally{_n=!1}}function Bt(e){try{let t=Ho();t&&t.send(JSON.stringify({type:"result",...e}))}catch{}}async function oc(){let e=await _o();e&&Bt(e)}function Pn(e,t){window.parent!==window&&window.parent.postMessage({channel:"mindstudio-browser-agent",command:e,...t},"*")}function ic(e,t){e==="reload"&&location.reload()}var se="#DD2590";var Bo="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",ac=200,Uo=`
79
- width: ${ac}px;
80
- background: ${se};
77
+ ">${rs}</div>
78
+ `,t.style.cssText=["position: fixed","top: 0","left: 0","z-index: 2147483647","pointer-events: none","will-change: left, top, transform, opacity","opacity: 0"].join("; ");let n=document.createElement("div");n.id=Ql,n.style.cssText=["position: fixed","z-index: 2147483646","pointer-events: none","width: 0","height: 0","border-radius: 50%",`background: ${st}`,"opacity: 0","transform: translate(-50%, -50%)","transition: width 400ms ease-out, height 400ms ease-out, opacity 400ms ease-out"].join("; "),document.documentElement.appendChild(n),document.documentElement.appendChild(t),e.el=t,e.rippleEl=n}function os(){k().cursor.trackingFrame===null&&Ur()}function Br(){let e=k().cursor;e.trackingFrame!==null&&(cancelAnimationFrame(e.trackingFrame),e.trackingFrame=null),e.targetElement=null}function Ur(){let e=k().cursor;if(e.el){if(e.targetElement&&e.targetElement.isConnected){let t=e.targetElement.getBoundingClientRect(),n=t.left+t.width/2,r=t.top+t.height/2,i=window.innerWidth,o=window.innerHeight,a=Math.max(at,Math.min(n,i-at)),s=Math.max(at,Math.min(r,o-at));if(e.x=Or(e.x,a,Dr),e.y=Or(e.y,s,Dr),e.el.style.transition="none",e.el.style.left=`${e.x}px`,e.el.style.top=`${e.y}px`,Math.abs(e.x-a)<Ir&&Math.abs(e.y-s)<Ir&&(e.x=a,e.y=s,e.el.style.left=`${e.x}px`,e.el.style.top=`${e.y}px`,e.settledResolve)){let l=e.settledResolve;e.settledResolve=null,l()}}else if(e.targetElement&&!e.targetElement.isConnected&&e.settledResolve){let t=e.settledResolve;e.settledResolve=null,t()}e.trackingFrame=requestAnimationFrame(Ur)}}async function ct(e){let t=k().cursor;if(t.el){if(t.hideTimer&&(clearTimeout(t.hideTimer),t.hideTimer=null),t.targetElement=e,!t.visible){let n=e.getBoundingClientRect(),r=n.left+n.width/2,i=n.top+n.height/2;if(!t.hasPosition){let o=Math.max(window.innerWidth,100),a=Math.max(window.innerHeight,100);Math.random()<.5?(t.x=o+20,t.y=i+(Math.random()-.5)*100):(t.x=r+(Math.random()-.5)*100,t.y=a+20),t.el.style.transition="none",t.el.style.left=`${t.x}px`,t.el.style.top=`${t.y}px`,t.el.style.opacity="0",t.el.offsetWidth}t.el.style.transition=`opacity ${lt}ms ease`,t.el.style.opacity="1",t.visible=!0,t.hasPosition=!0,await W(lt)}return os(),new Promise(n=>{t.settledResolve=n})}}async function qr(){let e=k().cursor;e.el&&(e.el.style.transform="scale(0.85) translateY(1px)",e.rippleEl&&(e.rippleEl.style.transition="none",e.rippleEl.style.left=`${e.x}px`,e.rippleEl.style.top=`${e.y}px`,e.rippleEl.style.width="0",e.rippleEl.style.height="0",e.rippleEl.style.opacity="0.35",e.rippleEl.offsetWidth,e.rippleEl.style.transition="width 400ms ease-out, height 400ms ease-out, opacity 400ms ease-out",e.rippleEl.style.width="40px",e.rippleEl.style.height="40px",e.rippleEl.style.opacity="0"),await W(es),e.el&&(e.el.style.transform="scale(1) translateY(0)"),await W(100))}function Oe(e){k().cursor.executing=e}function Gt(){let e=k().cursor;e.hideTimer&&(clearTimeout(e.hideTimer),e.hideTimer=null)}function ut(){let e=k().cursor;e.el&&e.forcedState!=="visible"&&(e.targetElement=null,e.hideTimer&&clearTimeout(e.hideTimer),e.hideTimer=setTimeout(()=>{e.forcedState!=="visible"&&(e.el&&(e.el.style.transition=`opacity ${lt}ms ease`,e.el.style.opacity="0",e.visible=!1),Br(),e.hideTimer=null)},ts))}function dt(e){let t=k().cursor;t.executing||(t.forcedState=e,e==="visible"&&!t.el&&Wr(),t.el&&(e==="visible"?(t.hideTimer&&(clearTimeout(t.hideTimer),t.hideTimer=null),t.el.style.transition=`opacity ${lt}ms ease`,t.el.style.opacity="1",t.visible=!0):e==="hidden"?(t.hideTimer&&(clearTimeout(t.hideTimer),t.hideTimer=null),t.el.style.opacity="0",t.visible=!1,Br()):ut()))}var as=["backgroundColor","color","fontFamily","fontSize","fontWeight","fontStyle","lineHeight","letterSpacing","textAlign","textDecoration","textTransform","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","margin","marginTop","marginRight","marginBottom","marginLeft","borderRadius","borderColor","borderWidth","borderStyle","boxShadow","opacity","width","height","display","flexDirection","justifyContent","alignItems","gap"];function ls(e,t){let n=t??as;if(e.ref||e.text||e.role||e.label||e.selector){let{element:o,matched:a}=te(e);return{...jr(o,e.ref,n),matched:a}}let r=we(),i=[];for(let[o,a]of r)a.isConnected&&i.push(jr(a,o,n));return i}function jr(e,t,n){let r=window.getComputedStyle(e),i={};t&&(i.ref=t),i.tag=e.tagName.toLowerCase();let o=e.textContent?.trim();o&&(i.text=o.length>60?o.slice(0,60)+"\u2026":o);for(let a of n){let s=r.getPropertyValue(a.replace(/([A-Z])/g,"-$1").toLowerCase());s&&(i[a]=s)}return i}var zr=150,mt=100,ft="__mindstudio_pending_nav";async function Kt(e=300,t=2e3){return new Promise(n=>{let r=Date.now()+t,i=Date.now(),o=window.scrollY,a=window.scrollX,s=document.body.scrollTop,l=document.documentElement.scrollTop,c=document.body.scrollHeight,u=document.body.scrollWidth;function d(){if(Date.now()>r){n();return}let f=window.scrollY,p=window.scrollX,g=document.body.scrollTop,h=document.documentElement.scrollTop,m=document.body.scrollHeight,y=document.body.scrollWidth;(f!==o||p!==a||g!==s||h!==l||m!==c||y!==u)&&(o=f,a=p,s=g,l=h,c=m,u=y,i=Date.now()),Date.now()-i>=e?n():requestAnimationFrame(d)}requestAnimationFrame(d)})}var ss=350;async function Jt(e){let t=cs(e),n=t.map(a=>({el:a,top:a.scrollTop,left:a.scrollLeft})),r=document.documentElement.style.scrollBehavior;document.documentElement.style.scrollBehavior="auto",e.scrollIntoView({block:"center",inline:"nearest",behavior:"instant"}),document.documentElement.style.scrollBehavior=r;let i=t.map(a=>({top:a.scrollTop,left:a.scrollLeft})),o=[];for(let a=0;a<t.length;a++)(n[a].top!==i[a].top||n[a].left!==i[a].left)&&o.push({el:t[a],fromTop:n[a].top,fromLeft:n[a].left,toTop:i[a].top,toLeft:i[a].left});if(o.length===0){await new Promise(a=>requestAnimationFrame(()=>a()));return}for(let a of o)a.el.scrollTop=a.fromTop,a.el.scrollLeft=a.fromLeft;await new Promise(a=>{let s=performance.now();function l(c){let u=c-s,d=Math.min(u/ss,1),f=1-Math.pow(1-d,3);for(let p of o)p.el.scrollTop=p.fromTop+(p.toTop-p.fromTop)*f,p.el.scrollLeft=p.fromLeft+(p.toLeft-p.fromLeft)*f;d<1?requestAnimationFrame(l):a()}requestAnimationFrame(l)})}function cs(e){let t=[],n=e.parentElement;for(;n;){let r=getComputedStyle(n),i=r.overflowY,o=r.overflowX;(i==="auto"||i==="scroll"||o==="auto"||o==="scroll")&&t.push(n),n=n.parentElement}return t.push(document.scrollingElement||document.documentElement),t}async function pt(e,t){let n=Date.now(),r=[],i=[],o="",a=!1;Oe(!0),Gt(),St();try{for(let s=0;s<t.length;s++){let l=t[s],c=l.command;try{if(s>0&&await W(zr+Math.random()*mt-mt/2),c==="navigate"){let d=l.url;if(!d)throw new Error('navigate command requires a "url" field');let f=t.slice(s+1);if(f.length>0)try{sessionStorage.setItem(ft,JSON.stringify({id:e,startTime:n,completedSteps:r,remainingSteps:f,stepOffset:s+1}))}catch{}r.push({index:s,command:c,result:"ok"}),a=!0,window.location.href=d,await new Promise(()=>{})}let u=await Yr(l);r.push({index:s,command:c,...u})}catch(u){r.push({index:s,command:c,error:u instanceof Error?u.message:String(u)});break}}i=Et();try{o=await be()}catch{}}finally{Oe(!1),ut()}return{id:e,steps:r,snapshot:o,logs:i,duration:Date.now()-n}}async function Vr(){let e=null;try{let i=sessionStorage.getItem(ft);if(!i)return null;sessionStorage.removeItem(ft),e=JSON.parse(i)}catch{return null}if(!e)return null;let t=[...e.completedSteps],n=[],r="";Oe(!0),Gt(),St();try{for(let i=0;i<e.remainingSteps.length;i++){let o=e.remainingSteps[i],a=o.command,s=e.stepOffset+i;try{if(i>0&&await W(zr+Math.random()*mt-mt/2),a==="navigate"){let c=o.url;if(!c)throw new Error('navigate command requires a "url" field');let u=e.remainingSteps.slice(i+1);if(u.length>0)try{sessionStorage.setItem(ft,JSON.stringify({id:e.id,startTime:e.startTime,completedSteps:t,remainingSteps:u,stepOffset:s+1}))}catch{}t.push({index:s,command:a,result:"ok"}),window.location.href=c,await new Promise(()=>{})}let l=await Yr(o);t.push({index:s,command:a,...l})}catch(l){t.push({index:s,command:a,error:l instanceof Error?l.message:String(l)});break}}n=Et();try{r=await be()}catch{}}finally{Oe(!1),ut()}return{id:e.id,steps:t,snapshot:r,logs:n,duration:Date.now()-e.startTime}}async function Yr(e){switch(e.command){case"snapshot":return{result:await be()};case"click":{let{element:t,matched:n}=te(e);return await Jt(t),await ct(t),await qr(),$t(t),await Kt(),await W(1e3),{result:"ok",matched:n}}case"type":{let{element:t,matched:n}=te(e),r=e.text;if(!r&&r!=="")throw new Error('type command requires a "text" field');return await Jt(t),await ct(t),await En(t,r,{clear:!!e.clear}),await Kt(),{result:"ok",matched:n}}case"select":{let{element:t,matched:n}=te(e),r=e.option;if(!r)throw new Error('select command requires an "option" field');await Jt(t),await ct(t);let i=kn(t,r);return await Kt(),{result:`selected "${i}"`,matched:n}}case"wait":{let{matched:t,elapsed:n}=await Cn(e);return{result:"ok",matched:t,elapsed:n}}case"styles":{let t=e.properties;return{result:ls(e,t)}}case"evaluate":{let t=e.script;if(!t)throw new Error('evaluate command requires a "script" field');return{result:await Mn(t)}}case"screenshotFullPage":{window.scrollTo({top:0,behavior:"instant"}),await W(500);let{image:t,width:n,height:r}=await Ie(),i=e.uploadUrl,o=e.uploadFields;if(i&&o){let a=atob(t),s=new Uint8Array(a.length);for(let d=0;d<a.length;d++)s[d]=a.charCodeAt(d);let l=new FormData;for(let[d,f]of Object.entries(o))l.append(d,f);l.append("file",new Blob([s],{type:"image/jpeg"}),"screenshot.jpg");let c=await fetch(i,{method:"POST",body:l});if(!c.ok)throw new Error(`Screenshot upload failed: ${c.status}`);let u=e._publicUrl;return{result:{width:n,height:r,uploaded:!0,...u?{_publicUrl:u}:{}}}}return{result:{image:t,width:n,height:r}}}case"screenshotViewport":{let{image:t,width:n,height:r}=await Ie({viewportOnly:!0}),i=e.uploadUrl,o=e.uploadFields;if(i&&o){let a=atob(t),s=new Uint8Array(a.length);for(let d=0;d<a.length;d++)s[d]=a.charCodeAt(d);let l=new FormData;for(let[d,f]of Object.entries(o))l.append(d,f);l.append("file",new Blob([s],{type:"image/jpeg"}),"screenshot.jpg");let c=await fetch(i,{method:"POST",body:l});if(!c.ok)throw new Error(`Screenshot upload failed: ${c.status}`);let u=e._publicUrl;return{result:{width:n,height:r,uploaded:!0,...u?{_publicUrl:u}:{}}}}return{result:{image:t,width:n,height:r}}}case"reload":return location.reload(),{result:"ok"};default:throw new Error(`Unknown command: ${e.command}`)}}var us="/__mindstudio_dev__/ws",ds=1e3,fs=1e4;function Gr(){let e=k().ws;e.ws||(an(Kr),window.addEventListener("beforeunload",()=>{e.closing=!0,e.ws&&e.ws.close()}),Jr())}function Kr(){let{ws:e}=k().ws;return e&&e.readyState===WebSocket.OPEN?e:null}function ms(){return`${location.protocol==="https:"?"wss:":"ws:"}//${location.host}${us}`}function ps(){return window.location.search.includes("mode=iframe")?"iframe":"standalone"}function Jr(){let e=k().ws;if(!e.closing){try{e.ws=new WebSocket(ms())}catch{Xr();return}e.ws.onopen=()=>{try{e.ws.send(JSON.stringify({type:"hello",mode:ps(),url:location.href,viewport:{w:window.innerWidth,h:window.innerHeight}}))}catch{e.ws?.close()}},e.ws.onmessage=t=>{let n;try{n=JSON.parse(t.data)}catch{return}switch(n.type){case"ack":e.clientId=n.clientId,e.reconnectDelay=ds,gs();break;case"command":hs(n.id,n.steps);break;case"broadcast":ys(n.action,n.payload);break}},e.ws.onclose=()=>{e.ws=null,e.clientId=null,e.closing||Xr()},e.ws.onerror=()=>{}}}function Xr(){let e=k().ws;e.closing||(setTimeout(()=>Jr(),e.reconnectDelay),e.reconnectDelay=Math.min(e.reconnectDelay*2,fs))}async function hs(e,t){let n=k().ws;if(n.busy){ht({id:e,steps:[],snapshot:"",logs:[],duration:0,error:"Browser agent is busy"});return}n.busy=!0,Zt("command-started",{id:e,steps:t.map(r=>r.command)});try{let r=await pt(e,t);ht(r),Zt("command-completed",{id:e,success:!0})}catch{ht({id:e,steps:[],snapshot:"",logs:[],duration:0}),Zt("command-completed",{id:e,success:!1})}finally{k().ws.busy=!1}}function ht(e){try{let t=Kr();t&&t.send(JSON.stringify({type:"result",...e}))}catch{}}async function gs(){let e=await Vr();e&&ht(e)}function Zt(e,t){window.parent!==window&&window.parent.postMessage({channel:"mindstudio-browser-agent",command:e,...t},"*")}function ys(e,t){e==="reload"&&location.reload()}var Z="#DD2590";var Zr="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",ws=200,Qr=`
79
+ width: ${ws}px;
80
+ background: ${Z};
81
81
  border-radius: 19px 120px 120px;
82
82
  font-weight: bold;
83
83
  padding: 8px 18px 10px 18px;
84
- font-family: ${Bo};
84
+ font-family: ${Zr};
85
85
  font-size: 14px;
86
86
  line-height: 1.4;
87
87
  color: white;
@@ -89,15 +89,15 @@ ${h}
89
89
  overflow-wrap: break-word;
90
90
  white-space: pre-wrap;
91
91
  transition: box-shadow 0.15s;
92
- `.trim(),lt={inactive:"0 2px 6px rgba(0, 0, 0, 0.15)",selected:"rgba(221, 37, 144, 0.45) 0px 2px 12px, white 0px 0px 0px 3px",editing:"rgba(221, 37, 144, 0.45) 0px 2px 12px, white 0px 0px 0px 3px"},lc=`
92
+ `.trim(),He={inactive:"0 2px 6px rgba(0, 0, 0, 0.15)",selected:"rgba(221, 37, 144, 0.45) 0px 2px 12px, white 0px 0px 0px 3px",editing:"rgba(221, 37, 144, 0.45) 0px 2px 12px, white 0px 0px 0px 3px"},bs=`
93
93
  position: absolute;
94
94
  top: -8px;
95
95
  right: -4px;
96
96
  width: 22px;
97
97
  height: 22px;
98
98
  background: white;
99
- color: ${se};
100
- border: 2px solid ${se};
99
+ color: ${Z};
100
+ border: 2px solid ${Z};
101
101
  border-radius: 50%;
102
102
  font-size: 12px;
103
103
  line-height: 16px;
@@ -106,9 +106,9 @@ ${h}
106
106
  pointer-events: auto;
107
107
  display: none;
108
108
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
109
- font-family: ${Bo};
109
+ font-family: ${Zr};
110
110
  font-weight: bold;
111
- `.trim(),qo=0;function jo(){let e=document.createElement("div");return e.dataset.deleteBtn="true",e.innerHTML="\xD7",e.style.cssText=lc,e}function zo(e,t){let n=`note-${++qo}`,r=document.createElement("div");r.id=n,r.dataset.noteId=n,r.style.cssText=`
111
+ `.trim();function eo(){let e=document.createElement("div");return e.dataset.deleteBtn="true",e.innerHTML="\xD7",e.style.cssText=bs,e}function to(e,t){let n=`note-${++k().noteElement.counter}`,r=document.createElement("div");r.id=n,r.dataset.noteId=n,r.style.cssText=`
112
112
  position: absolute;
113
113
  left: ${e}px;
114
114
  top: ${t}px;
@@ -117,7 +117,7 @@ ${h}
117
117
  `;let i=document.createElement("div");i.style.cssText=`
118
118
  width: 14px;
119
119
  height: 14px;
120
- background: ${se};
120
+ background: ${Z};
121
121
  border: 2px solid white;
122
122
  border-radius: 50%;
123
123
  box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px;
@@ -127,10 +127,10 @@ ${h}
127
127
  pointer-events: none;
128
128
  z-index: 2;
129
129
  `;let o=document.createElement("div");o.style.cssText="position: relative;";let a=document.createElement("div");a.dataset.bubble="true",a.style.cssText=`
130
- ${Uo}
131
- box-shadow: ${lt.inactive};
130
+ ${Qr}
131
+ box-shadow: ${He.inactive};
132
132
  cursor: grab;
133
- `;let s=jo();return o.appendChild(a),o.appendChild(s),r.appendChild(i),r.appendChild(o),{id:n,type:"pin",x:e,y:t,element:r,bubble:a,deleteBtn:s,state:"inactive"}}function Vo(e,t,n,r){let i=`note-${++qo}`,o=document.createElement("div");o.id=i,o.dataset.noteId=i,o.style.cssText=`
133
+ `;let s=eo();return o.appendChild(a),o.appendChild(s),r.appendChild(i),r.appendChild(o),{id:n,type:"pin",x:e,y:t,element:r,bubble:a,deleteBtn:s,state:"inactive"}}function no(e,t,n,r){let i=`note-${++k().noteElement.counter}`,o=document.createElement("div");o.id=i,o.dataset.noteId=i,o.style.cssText=`
134
134
  position: absolute;
135
135
  left: ${e}px;
136
136
  top: ${t}px;
@@ -139,7 +139,7 @@ ${h}
139
139
  `;let a=document.createElement("div");a.style.cssText=`
140
140
  width: ${n}px;
141
141
  height: ${r}px;
142
- border: 4px dashed ${se};
142
+ border: 4px dashed ${Z};
143
143
  border-radius: 12px;
144
144
  pointer-events: none;
145
145
  `;let s=document.createElement("div");s.style.cssText=`
@@ -147,13 +147,13 @@ ${h}
147
147
  left: 0;
148
148
  top: ${r+8}px;
149
149
  `;let l=document.createElement("div");l.dataset.bubble="true",l.style.cssText=`
150
- ${Uo}
151
- box-shadow: ${lt.inactive};
150
+ ${Qr}
151
+ box-shadow: ${He.inactive};
152
152
  cursor: grab;
153
- `;let c=jo();return s.appendChild(l),s.appendChild(c),o.appendChild(a),o.appendChild(s),{id:i,type:"area",x:e,y:t,width:n,height:r,element:o,bubble:l,deleteBtn:c,state:"inactive"}}function Yo(e){e.state="selected",e.bubble.contentEditable="false",e.bubble.style.boxShadow=lt.selected,e.bubble.style.cursor="grab",e.deleteBtn.style.display="block"}function qt(e){e.state="editing",e.bubble.contentEditable="true",e.bubble.style.boxShadow=lt.editing,e.bubble.style.cursor="text",e.deleteBtn.style.display="block",e.bubble.focus();let t=window.getSelection();t&&(t.selectAllChildren(e.bubble),t.collapseToEnd())}function qe(e){return e.bubble.textContent?.trim()||""?(e.state="inactive",e.bubble.contentEditable="false",e.bubble.style.boxShadow=lt.inactive,e.bubble.style.cursor="grab",e.deleteBtn.style.display="none",!0):!1}var sc="__mindstudio-notes-overlay",cc="__mindstudio-notes-cursor",uc=5,dc=`<svg width="25" height="26" viewBox="0 0 31 32" fill="none" xmlns="http://www.w3.org/2000/svg">
153
+ `;let c=eo();return s.appendChild(l),s.appendChild(c),o.appendChild(a),o.appendChild(s),{id:i,type:"area",x:e,y:t,width:n,height:r,element:o,bubble:l,deleteBtn:c,state:"inactive"}}function ro(e){e.state="selected",e.bubble.contentEditable="false",e.bubble.style.boxShadow=He.selected,e.bubble.style.cursor="grab",e.deleteBtn.style.display="block"}function gt(e){e.state="editing",e.bubble.contentEditable="true",e.bubble.style.boxShadow=He.editing,e.bubble.style.cursor="text",e.deleteBtn.style.display="block",e.bubble.focus();let t=window.getSelection();t&&(t.selectAllChildren(e.bubble),t.collapseToEnd())}function Me(e){return e.bubble.textContent?.trim()||""?(e.state="inactive",e.bubble.contentEditable="false",e.bubble.style.boxShadow=He.inactive,e.bubble.style.cursor="grab",e.deleteBtn.style.display="none",!0):!1}var xs="__mindstudio-notes-overlay",vs="__mindstudio-notes-cursor",Ss=5,Es=`<svg width="25" height="26" viewBox="0 0 31 32" fill="none" xmlns="http://www.w3.org/2000/svg">
154
154
  <g filter="url(#filter0_d_notes)">
155
- <path d="M12.5448 26L6.72762 5.59339L26 14.8132L17.1816 17.9377L12.5448 26Z" fill="${se}"/>
156
- <path d="M6.9457 5.14539L26.2178 14.3651L27.2985 14.8826L26.1697 15.2813L17.5259 18.3444L12.9812 26.2464L12.3881 27.2792L12.0614 26.1349L6.24434 5.72851L5.94119 4.66488L6.9457 5.14539Z" stroke="${se}"/>
155
+ <path d="M12.5448 26L6.72762 5.59339L26 14.8132L17.1816 17.9377L12.5448 26Z" fill="${Z}"/>
156
+ <path d="M6.9457 5.14539L26.2178 14.3651L27.2985 14.8826L26.1697 15.2813L17.5259 18.3444L12.9812 26.2464L12.3881 27.2792L12.0614 26.1349L6.24434 5.72851L5.94119 4.66488L6.9457 5.14539Z" stroke="${Z}"/>
157
157
  </g>
158
158
  <defs>
159
159
  <filter id="filter0_d_notes" x="3.15491" y="2.73625" width="27.442" height="28.8217" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
@@ -167,23 +167,23 @@ ${h}
167
167
  <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
168
168
  </filter>
169
169
  </defs>
170
- </svg>`,I=null,z=null,Te=[],L=null,jt=!1,ze=0,Ve=0,zt=!1,st=!1,q=null,ce=null,Go=0,Jo=0;function Ko(){I||(I=document.createElement("div"),I.id=sc,I.style.cssText=`
170
+ </svg>`;function io(){let e=k().noteLayer;e.overlay||(e.overlay=document.createElement("div"),e.overlay.id=xs,e.overlay.style.cssText=`
171
171
  position: fixed;
172
172
  inset: 0;
173
173
  z-index: 2147483646;
174
174
  cursor: none;
175
175
  touch-action: none;
176
- `,z=document.createElement("div"),z.id=cc,z.innerHTML=dc,z.style.cssText=`
176
+ `,e.cursorEl=document.createElement("div"),e.cursorEl.id=vs,e.cursorEl.innerHTML=Es,e.cursorEl.style.cssText=`
177
177
  position: fixed;
178
178
  top: 0;
179
179
  left: 0;
180
180
  z-index: 2147483647;
181
181
  pointer-events: none;
182
182
  will-change: left, top;
183
- `,I.addEventListener("pointerdown",ti),I.addEventListener("pointermove",ei),document.addEventListener("pointermove",ni,{capture:!0}),document.addEventListener("pointerup",ri,{capture:!0}),document.addEventListener("pointercancel",oi,{capture:!0}),document.addEventListener("keydown",ii),document.body.appendChild(I),document.body.appendChild(z))}function Zo(){document.removeEventListener("pointermove",ni,{capture:!0}),document.removeEventListener("pointerup",ri,{capture:!0}),document.removeEventListener("pointercancel",oi,{capture:!0}),document.removeEventListener("keydown",ii),I&&(I.removeEventListener("pointerdown",ti),I.removeEventListener("pointermove",ei),I.remove(),I=null),z&&(z.remove(),z=null),Te=[],L=null,je()}function Qo(){z&&(z.style.display="none"),ce=null,st=!1,je()}function ei(e){if(!z||!I)return;z.style.left=`${e.clientX}px`,z.style.top=`${e.clientY}px`,ai(e.target)?(z.style.display="none",I.style.cursor=""):(z.style.display="",I.style.cursor="none")}function ti(e){if(!I)return;let t=e.target;if(t.dataset?.deleteBtn==="true"||t.closest("[data-delete-btn]")){let r=t.closest("[data-note-id]");if(r){let i=Te.find(o=>o.id===r.id);if(i){Le(i),e.preventDefault(),e.stopPropagation();return}}}I.setPointerCapture(e.pointerId);let n=ai(e.target);if(n){if(n.state==="editing")return;if(n.state==="selected"){let r=e.target;if(r.dataset?.bubble==="true"||r.closest("[data-bubble]")){qt(n),L=n,e.preventDefault();return}Xo(n,e),e.preventDefault();return}L&&L!==n&&(qe(L)||Le(L)),Yo(n),L=n,Xo(n,e),e.preventDefault();return}if(L&&(L.state==="editing"||L.state==="selected")){qe(L)||Le(L),L=null,st=!0,e.preventDefault();return}jt=!0,ze=e.clientX,Ve=e.clientY,zt=!1,st=!1,e.preventDefault()}function ni(e){if(ce){let r=e.clientX-Go,i=e.clientY-Jo;ce.x=r,ce.y=i,ce.element.style.left=`${r}px`,ce.element.style.top=`${i}px`;return}if(!jt||!I)return;let t=e.clientX-ze,n=e.clientY-Ve;Math.sqrt(t*t+n*n)>uc&&(zt=!0,q||(q=document.createElement("div"),q.style.cssText=`
183
+ `,e.overlay.addEventListener("pointerdown",co),e.overlay.addEventListener("pointermove",so),document.addEventListener("pointermove",uo,{capture:!0}),document.addEventListener("pointerup",fo,{capture:!0}),document.addEventListener("pointercancel",mo,{capture:!0}),document.addEventListener("keydown",po),document.body.appendChild(e.overlay),document.body.appendChild(e.cursorEl))}function ao(){let e=k().noteLayer;document.removeEventListener("pointermove",uo,{capture:!0}),document.removeEventListener("pointerup",fo,{capture:!0}),document.removeEventListener("pointercancel",mo,{capture:!0}),document.removeEventListener("keydown",po),e.overlay&&(e.overlay.removeEventListener("pointerdown",co),e.overlay.removeEventListener("pointermove",so),e.overlay.remove(),e.overlay=null),e.cursorEl&&(e.cursorEl.remove(),e.cursorEl=null),e.notes=[],e.currentNote=null,Ae()}function lo(){let e=k().noteLayer;e.cursorEl&&(e.cursorEl.style.display="none"),e.movingNote=null,e.consumedByDeactivation=!1,Ae()}function so(e){let t=k().noteLayer;if(!t.cursorEl||!t.overlay)return;t.cursorEl.style.left=`${e.clientX}px`,t.cursorEl.style.top=`${e.clientY}px`,ho(e.target)?(t.cursorEl.style.display="none",t.overlay.style.cursor=""):(t.cursorEl.style.display="",t.overlay.style.cursor="none")}function co(e){let t=k().noteLayer;if(!t.overlay)return;let n=e.target;if(n.dataset?.deleteBtn==="true"||n.closest("[data-delete-btn]")){let i=n.closest("[data-note-id]");if(i){let o=t.notes.find(a=>a.id===i.id);if(o){pe(o),e.preventDefault(),e.stopPropagation();return}}}t.overlay.setPointerCapture(e.pointerId);let r=ho(e.target);if(r){if(r.state==="editing")return;if(r.state==="selected"){let i=e.target;if(i.dataset?.bubble==="true"||i.closest("[data-bubble]")){gt(r),t.currentNote=r,e.preventDefault();return}oo(r,e),e.preventDefault();return}t.currentNote&&t.currentNote!==r&&(Me(t.currentNote)||pe(t.currentNote)),ro(r),t.currentNote=r,oo(r,e),e.preventDefault();return}if(t.currentNote&&(t.currentNote.state==="editing"||t.currentNote.state==="selected")){Me(t.currentNote)||pe(t.currentNote),t.currentNote=null,t.consumedByDeactivation=!0,e.preventDefault();return}t.pointerDown=!0,t.startX=e.clientX,t.startY=e.clientY,t.didDrag=!1,t.consumedByDeactivation=!1,e.preventDefault()}function uo(e){let t=k().noteLayer;if(t.movingNote){let i=e.clientX-t.moveOffsetX,o=e.clientY-t.moveOffsetY;t.movingNote.x=i,t.movingNote.y=o,t.movingNote.element.style.left=`${i}px`,t.movingNote.element.style.top=`${o}px`;return}if(!t.pointerDown||!t.overlay)return;let n=e.clientX-t.startX,r=e.clientY-t.startY;Math.sqrt(n*n+r*r)>Ss&&(t.didDrag=!0,t.dragPreview||(t.dragPreview=document.createElement("div"),t.dragPreview.style.cssText=`
184
184
  position: fixed;
185
- border: 4px dashed ${se};
185
+ border: 4px dashed ${Z};
186
186
  border-radius: 12px;
187
187
  pointer-events: none;
188
188
  z-index: 2;
189
- `,I.appendChild(q)),q.style.left=`${Math.min(ze,e.clientX)}px`,q.style.top=`${Math.min(Ve,e.clientY)}px`,q.style.width=`${Math.abs(t)}px`,q.style.height=`${Math.abs(n)}px`)}function ri(e){if(I)try{I.releasePointerCapture(e.pointerId)}catch{}if(ce){ce=null;return}if(st){st=!1,je();return}if(!jt||!I){je();return}if(zt){q&&(q.remove(),q=null);let t=Math.min(ze,e.clientX),n=Math.min(Ve,e.clientY),r=Math.abs(e.clientX-ze),i=Math.abs(e.clientY-Ve);if(r>10&&i>10){let o=Vo(t,n,r,i);I.appendChild(o.element),Te.push(o),qt(o),L=o}}else{let t=zo(e.clientX,e.clientY);I.appendChild(t.element),Te.push(t),qt(t),L=t}je()}function oi(){q&&(q.remove(),q=null),ce=null,je()}function ii(e){if(L){if(e.key==="Enter"&&!e.shiftKey&&L.state==="editing"){qe(L)||Le(L),L=null,e.preventDefault();return}if(e.key==="Escape"){L.state==="editing"?(qe(L)||Le(L),L=null):L.state==="selected"&&(qe(L),L=null),e.preventDefault();return}if(L.state==="selected"&&(e.key==="Delete"||e.key==="Backspace")){Le(L),L=null,e.preventDefault();return}L.state==="editing"&&(e.key==="Backspace"||e.key==="Delete")&&L.bubble.textContent?.trim()===""&&(Le(L),L=null,e.preventDefault())}}function Xo(e,t){ce=e,Go=t.clientX-e.x,Jo=t.clientY-e.y}function ai(e){for(let t of Te)if(t.element.contains(e))return t;return null}function Le(e){e.element.remove(),Te=Te.filter(t=>t.id!==e.id),L===e&&(L=null)}function je(){jt=!1,ze=0,Ve=0,zt=!1,q&&(q.remove(),q=null)}var Vt=!1;function li(){Vt||(Vt=!0,Ko())}function si(){Vt&&(Vt=!1,Zo())}async function ci(){let{image:e}=await Tt({viewportOnly:!0});return e}var Fn="mindstudio-browser-agent",In=null;function ui(){In||(In=async e=>{if(e.source===window)return;let t=e.data;if(!(!t||t.channel!==Fn))switch(t.command){case"notes-enter":li();break;case"notes-exit":si();break;case"notes-cursor-hide":Qo();break;case"cursor-show":It("visible");break;case"cursor-hide":It("hidden");break;case"cursor-auto":It(null);break;case"notes-screenshot":{try{let n=await ci();window.parent.postMessage({channel:Fn,command:"screenshot-result",image:n},"*")}catch(n){window.parent.postMessage({channel:Fn,command:"screenshot-result",error:n instanceof Error?n.message:"Screenshot failed"},"*")}break}}},window.addEventListener("message",In))}window.__MINDSTUDIO_BROWSER_AGENT__||(window.__MINDSTUDIO_BROWSER_AGENT__=!0,zn(),Jn(),Kn(),Zn(),er(),Qn(),Oo(),Mo(),ui(),po(),window.parent!==window&&window.parent.postMessage({channel:"mindstudio-browser-agent",command:"ready"},"*"));return Ai(fc);})();
189
+ `,t.overlay.appendChild(t.dragPreview)),t.dragPreview.style.left=`${Math.min(t.startX,e.clientX)}px`,t.dragPreview.style.top=`${Math.min(t.startY,e.clientY)}px`,t.dragPreview.style.width=`${Math.abs(n)}px`,t.dragPreview.style.height=`${Math.abs(r)}px`)}function fo(e){let t=k().noteLayer;if(t.overlay)try{t.overlay.releasePointerCapture(e.pointerId)}catch{}if(t.movingNote){t.movingNote=null;return}if(t.consumedByDeactivation){t.consumedByDeactivation=!1,Ae();return}if(!t.pointerDown||!t.overlay){Ae();return}if(t.didDrag){t.dragPreview&&(t.dragPreview.remove(),t.dragPreview=null);let n=Math.min(t.startX,e.clientX),r=Math.min(t.startY,e.clientY),i=Math.abs(e.clientX-t.startX),o=Math.abs(e.clientY-t.startY);if(i>10&&o>10){let a=no(n,r,i,o);t.overlay.appendChild(a.element),t.notes.push(a),gt(a),t.currentNote=a}}else{let n=to(e.clientX,e.clientY);t.overlay.appendChild(n.element),t.notes.push(n),gt(n),t.currentNote=n}Ae()}function mo(){let e=k().noteLayer;e.dragPreview&&(e.dragPreview.remove(),e.dragPreview=null),e.movingNote=null,Ae()}function po(e){let t=k().noteLayer;if(t.currentNote){if(e.key==="Enter"&&!e.shiftKey&&t.currentNote.state==="editing"){Me(t.currentNote)||pe(t.currentNote),t.currentNote=null,e.preventDefault();return}if(e.key==="Escape"){t.currentNote.state==="editing"?(Me(t.currentNote)||pe(t.currentNote),t.currentNote=null):t.currentNote.state==="selected"&&(Me(t.currentNote),t.currentNote=null),e.preventDefault();return}if(t.currentNote.state==="selected"&&(e.key==="Delete"||e.key==="Backspace")){pe(t.currentNote),t.currentNote=null,e.preventDefault();return}t.currentNote.state==="editing"&&(e.key==="Backspace"||e.key==="Delete")&&t.currentNote.bubble.textContent?.trim()===""&&(pe(t.currentNote),t.currentNote=null,e.preventDefault())}}function oo(e,t){let n=k().noteLayer;n.movingNote=e,n.moveOffsetX=t.clientX-e.x,n.moveOffsetY=t.clientY-e.y}function ho(e){let t=k().noteLayer;for(let n of t.notes)if(n.element.contains(e))return n;return null}function pe(e){let t=k().noteLayer;e.element.remove(),t.notes=t.notes.filter(n=>n.id!==e.id),t.currentNote===e&&(t.currentNote=null)}function Ae(){let e=k().noteLayer;e.pointerDown=!1,e.startX=0,e.startY=0,e.didDrag=!1,e.dragPreview&&(e.dragPreview.remove(),e.dragPreview=null)}function go(){let e=k().notesMode;e.active||(e.active=!0,io())}function yo(){let e=k().notesMode;e.active&&(e.active=!1,ao())}async function wo(){let{image:e}=await Ie({viewportOnly:!0});return e}var Qt="mindstudio-browser-agent";function bo(){let e=k().messages;e.handler||(e.handler=async t=>{if(t.source===window)return;let n=t.data;if(!(!n||n.channel!==Qt))switch(n.command){case"notes-enter":go();break;case"notes-exit":yo();break;case"notes-cursor-hide":lo();break;case"cursor-show":dt("visible");break;case"cursor-hide":dt("hidden");break;case"cursor-auto":dt(null);break;case"notes-screenshot":{try{let r=await wo();window.parent.postMessage({channel:Qt,command:"screenshot-result",image:r},"*")}catch(r){window.parent.postMessage({channel:Qt,command:"screenshot-result",error:r instanceof Error?r.message:"Screenshot failed"},"*")}break}}},window.addEventListener("message",e.handler))}window.__MINDSTUDIO_BROWSER_AGENT__||(window.__MINDSTUDIO_BROWSER_AGENT__=!0,sn(),mn(),pn(),hn(),yn(),gn(),Gr(),Hr(),bo(),Lr(),window.parent!==window&&window.parent.postMessage({channel:"mindstudio-browser-agent",command:"ready"},"*"));return Do(Cs);})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindstudio-ai/browser-agent",
3
- "version": "0.1.23",
3
+ "version": "0.1.25",
4
4
  "description": "Browser-side agent for MindStudio dev previews — captures logs, provides DOM snapshots, and enables remote interaction.",
5
5
  "main": "dist/index.js",
6
6
  "files": [