hyperframes 0.7.25 → 0.7.27
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.
- package/dist/cli.js +804 -266
- package/dist/hyperframe-runtime.js +1 -1
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +1 -1
- package/dist/hyperframes-slideshow.global.js +20 -20
- package/dist/studio/assets/{index-Bmd8RnCq.js → index-C07SnkBi.js} +1 -1
- package/dist/studio/assets/{index-CF35g_E4.js → index-CoIF_vfx.js} +1 -1
- package/dist/studio/assets/{index-HBY-OdAh.js → index-DueKwqDv.js} +183 -183
- package/dist/studio/index.d.ts +6 -0
- package/dist/studio/index.html +1 -1
- package/dist/studio/index.js +377 -210
- package/dist/studio/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -50,7 +50,7 @@ var VERSION;
|
|
|
50
50
|
var init_version = __esm({
|
|
51
51
|
"src/version.ts"() {
|
|
52
52
|
"use strict";
|
|
53
|
-
VERSION = true ? "0.7.
|
|
53
|
+
VERSION = true ? "0.7.27" : "0.0.0-dev";
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
|
|
@@ -55967,7 +55967,7 @@ var RUNTIME_IIFE;
|
|
|
55967
55967
|
var init_runtime_inline = __esm({
|
|
55968
55968
|
"../core/dist/generated/runtime-inline.js"() {
|
|
55969
55969
|
"use strict";
|
|
55970
|
-
RUNTIME_IIFE = '"use strict";(()=>{var Na=Object.create;var zn=Object.defineProperty;var _a=Object.getOwnPropertyDescriptor;var Ta=Object.getOwnPropertyNames;var La=Object.getPrototypeOf,va=Object.prototype.hasOwnProperty;var ka=(t,e,n)=>e in t?zn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var te=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Ra=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Ta(e))!va.call(t,r)&&r!==n&&zn(t,r,{get:()=>e[r],enumerable:!(i=_a(e,r))||i.enumerable});return t};var Da=(t,e,n)=>(n=t!=null?Na(La(t)):{},Ra(e||!t||!t.__esModule?zn(n,"default",{value:t,enumerable:!0}):n,t));var ge=(t,e,n)=>ka(t,typeof e!="symbol"?e+"":e,n);var Gr=te((Am,ii)=>{var Y=String,Wr=function(){return{isColorSupported:!1,reset:Y,bold:Y,dim:Y,italic:Y,underline:Y,inverse:Y,hidden:Y,strikethrough:Y,black:Y,red:Y,green:Y,yellow:Y,blue:Y,magenta:Y,cyan:Y,white:Y,gray:Y,bgBlack:Y,bgRed:Y,bgGreen:Y,bgYellow:Y,bgBlue:Y,bgMagenta:Y,bgCyan:Y,bgWhite:Y,blackBright:Y,redBright:Y,greenBright:Y,yellowBright:Y,blueBright:Y,magentaBright:Y,cyanBright:Y,whiteBright:Y,bgBlackBright:Y,bgRedBright:Y,bgGreenBright:Y,bgYellowBright:Y,bgBlueBright:Y,bgMagentaBright:Y,bgCyanBright:Y,bgWhiteBright:Y}};ii.exports=Wr();ii.exports.createColors=Wr});var ri=te(()=>{});var cn=te((Cm,zr)=>{"use strict";var Ur=Gr(),Vr=ri(),kt=class t extends Error{constructor(e,n,i,r,o,s){super(e),this.name="CssSyntaxError",this.reason=e,o&&(this.file=o),r&&(this.source=r),s&&(this.plugin=s),typeof n<"u"&&typeof i<"u"&&(typeof n=="number"?(this.line=n,this.column=i):(this.line=n.line,this.column=n.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,t)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let n=this.source;e==null&&(e=Ur.isColorSupported);let i=u=>u,r=u=>u,o=u=>u;if(e){let{bold:u,gray:m,red:f}=Ur.createColors(!0);r=g=>u(f(g)),i=g=>m(g),Vr&&(o=g=>Vr(g))}let s=n.split(/\\r?\\n/),c=Math.max(this.line-3,0),a=Math.min(this.line+2,s.length),l=String(a).length;return s.slice(c,a).map((u,m)=>{let f=c+1+m,g=" "+(" "+f).slice(-l)+" | ";if(f===this.line){if(u.length>160){let y=20,x=Math.max(0,this.column-y),w=Math.max(this.column+y,this.endColumn+y),N=u.slice(x,w),L=i(g.replace(/\\d/g," "))+u.slice(0,Math.min(this.column-1,y-1)).replace(/[^\\t]/g," ");return r(">")+i(g)+o(N)+`\n `+L+r("^")}let A=i(g.replace(/\\d/g," "))+u.slice(0,this.column-1).replace(/[^\\t]/g," ");return r(">")+i(g)+o(u)+`\n `+A+r("^")}return" "+i(g)+o(u)}).join(`\n`)}toString(){let e=this.showSourceCode();return e&&(e=`\n\n`+e+`\n`),this.name+": "+this.message+e}};zr.exports=kt;kt.default=kt});var oi=te((Fm,qr)=>{"use strict";var pl=/(<)(\\/?style\\b)/gi,hl=/(<)(!--)/g;function je(t){return typeof t!="string"||!t.includes("<")?t:t.replace(pl,"\\\\3c $2").replace(hl,"\\\\3c $2")}var jr={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function xl(t){return t[0].toUpperCase()+t.slice(1)}var Rt=class{constructor(e){this.builder=e}atrule(e,n){let i=e.raws,r="@"+e.name,o=e.params?this.rawValue(e,"params"):"";if(typeof i.afterName<"u"?r+=i.afterName:o&&(r+=" "),e.nodes)this.block(e,r+o);else{let s=(i.between||"")+(n?";":"");this.builder(je(r+o+s),e)}}beforeAfter(e,n){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):n==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let r=e.parent,o=0;for(;r&&r.type!=="root";)o+=1,r=r.parent;if(i.includes(`\n`)){let s=this.raw(e,null,"indent");if(s.length)for(let c=0;c<o;c++)i+=s}return i}block(e,n){let i=this.raw(e,"between","beforeOpen");this.builder(je(n+i)+"{",e,"start");let r;e.nodes&&e.nodes.length?(this.body(e),r=this.raw(e,"after")):r=this.raw(e,"after","emptyBody"),r&&this.builder(je(r)),this.builder("}",e,"end")}body(e){let n=e.nodes,i=n.length-1;for(;i>0&&n[i].type==="comment";)i-=1;let r=this.raw(e,"semicolon"),o=e.type==="document";for(let s=0;s<n.length;s++){let c=n[s],a=this.raw(c,"before");a&&this.builder(o?a:je(a)),this.stringify(c,i!==s||r)}}comment(e){let n=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder(je("/*"+n+e.text+i+"*/"),e)}decl(e,n){let i=e.raws,r=this.raw(e,"between","colon"),o=e.prop+r+this.rawValue(e,"value");e.important&&(o+=i.important||" !important"),n&&(o+=";"),this.builder(je(o),e)}document(e){this.body(e)}raw(e,n,i){let r;if(i||(i=n),n&&(r=e.raws[n],typeof r<"u"))return r;let o=e.parent;if(i==="before"&&(!o||o.type==="root"&&o.first===e||o&&o.type==="document"))return"";if(!o)return jr[i];let s=e.root(),c=s.rawCache||(s.rawCache={});if(typeof c[i]<"u")return c[i];if(i==="before"||i==="after")return this.beforeAfter(e,i);{let a="raw"+xl(i);this[a]?r=this[a](s,e):s.walk(l=>{if(r=l.raws[n],typeof r<"u")return!1})}return typeof r>"u"&&(r=jr[i]),c[i]=r,r}rawBeforeClose(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after<"u")return n=i.raws.after,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawBeforeComment(e,n){let i;return e.walkComments(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeDecl"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeDecl(e,n){let i;return e.walkDecls(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeRule"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeOpen(e){let n;return e.walk(i=>{if(i.type!=="decl"&&(n=i.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(e){let n;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before<"u")return n=i.raws.before,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawColon(e){let n;return e.walkDecls(i=>{if(typeof i.raws.between<"u")return n=i.raws.between.replace(/[^\\s:]/g,""),!1}),n}rawEmptyBody(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(n=i.raws.after,typeof n<"u"))return!1}),n}rawIndent(e){if(e.raws.indent)return e.raws.indent;let n;return e.walk(i=>{let r=i.parent;if(r&&r!==e&&r.parent&&r.parent===e&&typeof i.raws.before<"u"){let o=i.raws.before.split(`\n`);return n=o[o.length-1],n=n.replace(/\\S/g,""),!1}}),n}rawSemicolon(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(n=i.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(e,n){let i=e[n],r=e.raws[n];return r&&r.value===i?r.raw:i}root(e){if(this.body(e),e.raws.after){let n=e.raws.after,i=e.parent&&e.parent.type==="document";this.builder(i?n:je(n))}}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(je(e.raws.ownSemicolon),e,"end")}stringify(e,n){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,n)}};qr.exports=Rt;Rt.default=Rt});var Dt=te((Mm,$r)=>{"use strict";var gl=oi();function si(t,e){new gl(e).stringify(t)}$r.exports=si;si.default=si});var dn=te((Nm,ai)=>{"use strict";ai.exports.isClean=Symbol("isClean");ai.exports.my=Symbol("my")});var Ot=te((_m,Kr)=>{"use strict";var yl=cn(),bl=oi(),Sl=Dt(),{isClean:It,my:Al}=dn();function li(t,e){let n=new t.constructor;for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i)||i==="proxyCache")continue;let r=t[i],o=typeof r;i==="parent"&&o==="object"?e&&(n[i]=e):i==="source"?n[i]=r:Array.isArray(r)?n[i]=r.map(s=>li(s,n)):(o==="object"&&r!==null&&(r=li(r)),n[i]=r)}return n}function Ge(t,e){if(e&&typeof e.offset<"u")return e.offset;let n=1,i=1,r=0;for(let o=0;o<t.length;o++){if(i===e.line&&n===e.column){r=o;break}t[o]===`\n`?(n=1,i+=1):n+=1}return r}var Pt=class{get proxyOf(){return this}constructor(e={}){this.raws={},this[It]=!1,this[Al]=!0;for(let n in e)if(n==="nodes"){this.nodes=[];for(let i of e[n])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[n]=e[n]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\\n\\s{4}at /.test(e.stack)){let n=this.source;e.stack=e.stack.replace(/\\n\\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let n in e)this[n]=e[n];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let n=li(this);for(let i in e)n[i]=e[i];return n}cloneAfter(e={}){let n=this.clone(e);return this.parent.insertAfter(this,n),n}cloneBefore(e={}){let n=this.clone(e);return this.parent.insertBefore(this,n),n}error(e,n={}){if(this.source){let{end:i,start:r}=this.rangeBy(n);return this.source.input.error(e,{column:r.column,line:r.line},{column:i.column,line:i.line},n)}return new yl(e)}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:n==="root"?()=>e.root().toProxy():e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&e.markDirty()),!0}}}markClean(){this[It]=!0}markDirty(){if(this[It]){this[It]=!1;let e=this;for(;e=e.parent;)e[It]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let n=this.source.start;if(e.index)n=this.positionInside(e.index);else if(e.word){let i="document"in this.source.input?this.source.input.document:this.source.input.css,o=i.slice(Ge(i,this.source.start),Ge(i,this.source.end)).indexOf(e.word);o!==-1&&(n=this.positionInside(o))}return n}positionInside(e){let n=this.source.start.column,i=this.source.start.line,r="document"in this.source.input?this.source.input.document:this.source.input.css,o=Ge(r,this.source.start),s=o+e;for(let c=o;c<s;c++)r[c]===`\n`?(n=1,i+=1):n+=1;return{column:n,line:i,offset:s}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e={}){let n="document"in this.source.input?this.source.input.document:this.source.input.css,i={column:this.source.start.column,line:this.source.start.line,offset:Ge(n,this.source.start)},r=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:Ge(n,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(e.word){let s=n.slice(Ge(n,this.source.start),Ge(n,this.source.end)).indexOf(e.word);s!==-1&&(i=this.positionInside(s),r=this.positionInside(s+e.word.length))}else e.start?i={column:e.start.column,line:e.start.line,offset:Ge(n,e.start)}:e.index&&(i=this.positionInside(e.index)),e.end?r={column:e.end.column,line:e.end.line,offset:Ge(n,e.end)}:typeof e.endIndex=="number"?r=this.positionInside(e.endIndex):e.index&&(r=this.positionInside(e.index+1));return(r.line<i.line||r.line===i.line&&r.column<=i.column)&&(r={column:i.column+1,line:i.line,offset:i.offset+1}),{end:r,start:i}}raw(e,n){return new bl().raw(this,e,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let n=this,i=!1;for(let r of e)r===this?i=!0:i?(this.parent.insertAfter(n,r),n=r):this.parent.insertBefore(n,r);i||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,n){let i={},r=n==null;n=n||new Map;let o=0;for(let s in this){if(!Object.prototype.hasOwnProperty.call(this,s)||s==="parent"||s==="proxyCache")continue;let c=this[s];if(Array.isArray(c))i[s]=c.map(a=>typeof a=="object"&&a.toJSON?a.toJSON(null,n):a);else if(typeof c=="object"&&c.toJSON)i[s]=c.toJSON(null,n);else if(s==="source"){if(c==null)continue;let a=n.get(c.input);a==null&&(a=o,n.set(c.input,o),o++),i[s]={end:c.end,inputId:a,start:c.start}}else i[s]=c}return r&&(i.inputs=[...n.keys()].map(s=>s.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=Sl){e.stringify&&(e=e.stringify);let n="";return e(this,i=>{n+=i}),n}warn(e,n,i={}){let r={node:this};for(let o in i)r[o]=i[o];return e.warn(n,r)}};Kr.exports=Pt;Pt.default=Pt});var Ht=te((Tm,Jr)=>{"use strict";var El=Ot(),Bt=class extends El{constructor(e){super(e),this.type="comment"}};Jr.exports=Bt;Bt.default=Bt});var Gt=te((Lm,Yr)=>{"use strict";var wl=Ot(),Wt=class extends wl{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}};Yr.exports=Wt;Wt.default=Wt});var qe=te((vm,oo)=>{"use strict";var Xr=Ht(),Qr=Gt(),Cl=Ot(),{isClean:Zr,my:eo}=dn(),ui,to,no,ci;function io(t){return t.map(e=>(e.nodes&&(e.nodes=io(e.nodes)),delete e.source,e))}function ro(t){if(t[Zr]=!1,t.proxyOf.nodes)for(let e of t.proxyOf.nodes)ro(e)}var Re=class t extends Cl{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...e){for(let n of e){let i=this.normalize(n,this.last);for(let r of i)this.proxyOf.nodes.push(r)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let n of this.nodes)n.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let n=this.getIterator(),i,r;for(;this.indexes[n]<this.proxyOf.nodes.length&&(i=this.indexes[n],r=e(this.proxyOf.nodes[i],i),r!==!1);)this.indexes[n]+=1;return delete this.indexes[n],r}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:e[n]?n==="each"||typeof n=="string"&&n.startsWith("walk")?(...i)=>e[n](...i.map(r=>typeof r=="function"?(o,s)=>r(o.toProxy(),s):r)):n==="every"||n==="some"?i=>e[n]((r,...o)=>i(r.toProxy(),...o)):n==="root"?()=>e.root().toProxy():n==="nodes"?e.nodes.map(i=>i.toProxy()):n==="first"||n==="last"?e[n].toProxy():e[n]:e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="name"||n==="params"||n==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,n){let i=this.index(e),r=this.normalize(n,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let s of r)this.proxyOf.nodes.splice(i+1,0,s);let o;for(let s in this.indexes)o=this.indexes[s],i<o&&(this.indexes[s]=o+r.length);return this.markDirty(),this}insertBefore(e,n){let i=this.index(e),r=i===0?"prepend":!1,o=this.normalize(n,this.proxyOf.nodes[i],r).reverse();i=this.index(e);for(let c of o)this.proxyOf.nodes.splice(i,0,c);let s;for(let c in this.indexes)s=this.indexes[c],i<=s&&(this.indexes[c]=s+o.length);return this.markDirty(),this}normalize(e,n){if(typeof e=="string")e=io(to(e).nodes);else if(typeof e>"u")e=[];else if(Array.isArray(e)){e=e.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>"u")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new Qr(e)]}else if(e.selector||e.selectors)e=[new ci(e)];else if(e.name)e=[new ui(e)];else if(e.text)e=[new Xr(e)];else throw new Error("Unknown node type in node creation");return e.map(r=>(r[eo]||t.rebuild(r),r=r.proxyOf,r.parent&&r.parent.removeChild(r),r[Zr]&&ro(r),r.raws||(r.raws={}),typeof r.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(r.raws.before=n.raws.before.replace(/\\S/g,"")),r.parent=this.proxyOf,r))}prepend(...e){e=e.reverse();for(let n of e){let i=this.normalize(n,this.first,"prepend").reverse();for(let r of i)this.proxyOf.nodes.unshift(r);for(let r in this.indexes)this.indexes[r]=this.indexes[r]+i.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let n;for(let i in this.indexes)n=this.indexes[i],n>=e&&(this.indexes[i]=n-1);return this.markDirty(),this}replaceValues(e,n,i){return i||(i=n,n={}),this.walkDecls(r=>{n.props&&!n.props.includes(r.prop)||n.fast&&!r.value.includes(n.fast)||(r.value=r.value.replace(e,i))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((n,i)=>{let r;try{r=e(n,i)}catch(o){throw n.addToError(o)}return r!==!1&&n.walk&&(r=n.walk(e)),r})}walkAtRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="atrule"&&e.test(i.name))return n(i,r)}):this.walk((i,r)=>{if(i.type==="atrule"&&i.name===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="atrule")return n(i,r)}))}walkComments(e){return this.walk((n,i)=>{if(n.type==="comment")return e(n,i)})}walkDecls(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="decl"&&e.test(i.prop))return n(i,r)}):this.walk((i,r)=>{if(i.type==="decl"&&i.prop===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="decl")return n(i,r)}))}walkRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="rule"&&e.test(i.selector))return n(i,r)}):this.walk((i,r)=>{if(i.type==="rule"&&i.selector===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="rule")return n(i,r)}))}};Re.registerParse=t=>{to=t};Re.registerRule=t=>{ci=t};Re.registerAtRule=t=>{ui=t};Re.registerRoot=t=>{no=t};oo.exports=Re;Re.default=Re;Re.rebuild=t=>{t.type==="atrule"?Object.setPrototypeOf(t,ui.prototype):t.type==="rule"?Object.setPrototypeOf(t,ci.prototype):t.type==="decl"?Object.setPrototypeOf(t,Qr.prototype):t.type==="comment"?Object.setPrototypeOf(t,Xr.prototype):t.type==="root"&&Object.setPrototypeOf(t,no.prototype),t[eo]=!0,t.nodes&&t.nodes.forEach(e=>{Re.rebuild(e)})}});var fn=te((km,ao)=>{"use strict";var so=qe(),ct=class extends so{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};ao.exports=ct;ct.default=ct;so.registerAtRule(ct)});var mn=te((Rm,co)=>{"use strict";var Fl=qe(),lo,uo,rt=class extends Fl{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new lo(new uo,this,e).stringify()}};rt.registerLazyResult=t=>{lo=t};rt.registerProcessor=t=>{uo=t};co.exports=rt;rt.default=rt});var mo=te((Dm,fo)=>{var Ml="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Nl=(t,e=21)=>(n=e)=>{let i="",r=n|0;for(;r--;)i+=t[Math.random()*t.length|0];return i},_l=(t=21)=>{let e="",n=t|0;for(;n--;)e+=Ml[Math.random()*64|0];return e};fo.exports={nanoid:_l,customAlphabet:Nl}});var pn=te(()=>{});var hn=te(()=>{});var di=te(()=>{});var po=te(()=>{});var mi=te((Vm,go)=>{"use strict";var{existsSync:Tl,readFileSync:Ll}=po(),{dirname:fi,join:vl}=pn(),{SourceMapConsumer:ho,SourceMapGenerator:xo}=hn();function kl(t){return Buffer?Buffer.from(t,"base64").toString():window.atob(t)}var Ut=class{constructor(e,n){if(n.map===!1)return;n.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let i=n.map?n.map.prev:void 0,r=this.loadMap(n.from,i);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=fi(this.mapFile)),r&&(this.text=r)}consumer(){return this.consumerCache||(this.consumerCache=new ho(this.json||this.text)),this.consumerCache}decodeInline(e){let n=/^data:application\\/json;charset=utf-?8;base64,/,i=/^data:application\\/json;base64,/,r=/^data:application\\/json;charset=utf-?8,/,o=/^data:application\\/json,/,s=e.match(r)||e.match(o);if(s)return decodeURIComponent(e.substr(s[0].length));let c=e.match(n)||e.match(i);if(c)return kl(e.substr(c[0].length));let a=e.slice(22);throw a=a.slice(0,a.indexOf(",")),new Error("Unsupported source map encoding "+a)}getAnnotationURL(e){return e.replace(/^\\/\\*\\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let n=e.match(/\\/\\*\\s*# sourceMappingURL=/g);if(!n)return;let i=e.lastIndexOf(n.pop()),r=e.indexOf("*/",i);i>-1&&r>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,r)))}loadFile(e,n,i){if(!(!i&&!this.unsafeMap&&!/\\.map$/i.test(e))&&(this.root=fi(e),Tl(e)))return this.mapFile=e,Ll(e,"utf-8").toString().trim()}loadMap(e,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let i=n(e);if(i){let r=this.loadFile(i,e,!0);if(!r)throw new Error("Unable to load previous source map: "+i.toString());return r}}else{if(n instanceof ho)return xo.fromSourceMap(n).toString();if(n instanceof xo)return n.toString();if(this.isMap(n))return JSON.stringify(n);throw new Error("Unsupported previous source map format: "+n.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;e&&(i=vl(fi(e),i));let r=this.loadFile(i,e,!1);if(r)try{this.json=JSON.parse(r.replace(/^\\)]}\'[^\\n]*\\n/,""))}catch{return}return r}}}startWith(e,n){return e?e.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};go.exports=Ut;Ut.default=Ut});var Vt=te((zm,Eo)=>{"use strict";var{nanoid:Rl}=mo(),{isAbsolute:xi,resolve:gi}=pn(),{SourceMapConsumer:Dl,SourceMapGenerator:Il}=hn(),{fileURLToPath:yo,pathToFileURL:xn}=di(),bo=cn(),Pl=mi(),pi=ri(),hi=Symbol("lineToIndexCache"),Ol=!!(Dl&&Il),So=!!(gi&&xi);function Ao(t){if(t[hi])return t[hi];let e=t.css.split(`\n`),n=new Array(e.length),i=0;for(let r=0,o=e.length;r<o;r++)n[r]=i,i+=e[r].length+1;return t[hi]=n,n}var dt=class{get from(){return this.file||this.id}constructor(e,n={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\\uFEFF"||this.css[0]==="\\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,n.document&&(this.document=n.document.toString()),n.from&&(!So||/^\\w+:\\/\\//.test(n.from)||xi(n.from)?this.file=n.from:this.file=gi(n.from)),So&&Ol){let i=new Pl(this.css,n);if(i.text){this.map=i;let r=i.consumer().file;!this.file&&r&&(this.file=this.mapResolve(r))}}this.file||(this.id="<input css "+Rl(6)+">"),this.map&&(this.map.file=this.from)}error(e,n,i,r={}){let o,s,c,a,l;if(n&&typeof n=="object"){let m=n,f=i;if(typeof m.offset=="number"){a=m.offset;let g=this.fromOffset(a);n=g.line,i=g.col}else n=m.line,i=m.column,a=this.fromLineAndColumn(n,i);if(typeof f.offset=="number"){c=f.offset;let g=this.fromOffset(c);s=g.line,o=g.col}else s=f.line,o=f.column,c=this.fromLineAndColumn(f.line,f.column)}else if(i)a=this.fromLineAndColumn(n,i);else{a=n;let m=this.fromOffset(a);n=m.line,i=m.col}let u=this.origin(n,i,s,o);return u?l=new bo(e,u.endLine===void 0?u.line:{column:u.column,line:u.line},u.endLine===void 0?u.column:{column:u.endColumn,line:u.endLine},u.source,u.file,r.plugin):l=new bo(e,s===void 0?n:{column:i,line:n},s===void 0?i:{column:o,line:s},this.css,this.file,r.plugin),l.input={column:i,endColumn:o,endLine:s,endOffset:c,line:n,offset:a,source:this.css},this.file&&(xn&&(l.input.url=xn(this.file).toString()),l.input.file=this.file),l}fromLineAndColumn(e,n){return Ao(this)[e-1]+n-1}fromOffset(e){let n=Ao(this),i=n[n.length-1],r=0;if(e>=i)r=n.length-1;else{let o=n.length-2,s;for(;r<o;)if(s=r+(o-r>>1),e<n[s])o=s-1;else if(e>=n[s+1])r=s+1;else{r=s;break}}return{col:e-n[r]+1,line:r+1}}mapResolve(e){return/^\\w+:\\/\\//.test(e)?e:gi(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,n,i,r){if(!this.map)return!1;let o=this.map.consumer(),s=o.originalPositionFor({column:n,line:e});if(!s.source)return!1;let c;typeof i=="number"&&(c=o.originalPositionFor({column:r,line:i}));let a;xi(s.source)?a=xn(s.source):a=new URL(s.source,this.map.consumer().sourceRoot||xn(this.map.mapFile));let l={column:s.column,endColumn:c&&c.column,endLine:c&&c.line,line:s.line,url:a.toString()};if(a.protocol==="file:")if(yo)l.file=yo(a);else throw new Error("file: protocol is not available in this PostCSS build");let u=o.sourceContentFor(s.source);return u&&(l.source=u),l}toJSON(){let e={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(e[n]=this[n]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};Eo.exports=dt;dt.default=dt;pi&&pi.registerInput&&pi.registerInput(dt)});var ft=te((jm,Mo)=>{"use strict";var wo=qe(),Co,Fo,$e=class extends wo{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,n,i){let r=super.normalize(e);if(n){if(i==="prepend")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let o of r)o.raws.before=n.raws.before}return r}removeChild(e,n){let i=this.index(e);return!n&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new Co(new Fo,this,e).stringify()}};$e.registerLazyResult=t=>{Co=t};$e.registerProcessor=t=>{Fo=t};Mo.exports=$e;$e.default=$e;wo.registerRoot($e)});var yi=te((qm,No)=>{"use strict";var zt={comma(t){return zt.split(t,[","],!0)},space(t){let e=[" ",`\n`," "];return zt.split(t,e)},split(t,e,n){let i=[],r="",o=!1,s=0,c=!1,a="",l=!1;for(let u of t)l?l=!1:u==="\\\\"?l=!0:c?u===a&&(c=!1):u===\'"\'||u==="\'"?(c=!0,a=u):u==="("?s+=1:u===")"?s>0&&(s-=1):s===0&&e.includes(u)&&(o=!0),o?(r!==""&&i.push(r.trim()),r="",o=!1):r+=u;return(n||r!=="")&&i.push(r.trim()),i}};No.exports=zt;zt.default=zt});var gn=te(($m,To)=>{"use strict";var _o=qe(),Bl=yi(),mt=class extends _o{get selectors(){return Bl.comma(this.selector)}set selectors(e){let n=this.selector?this.selector.match(/,\\s*/):null,i=n?n[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}};To.exports=mt;mt.default=mt;_o.registerRule(mt)});var vo=te((Km,Lo)=>{"use strict";var Hl=fn(),Wl=Ht(),Gl=Gt(),Ul=Vt(),Vl=mi(),zl=ft(),jl=gn();function jt(t,e){if(Array.isArray(t))return t.map(r=>jt(r));let{inputs:n,...i}=t;if(n){e=[];for(let r of n){let o={...r,__proto__:Ul.prototype};o.map&&(o.map={...o.map,__proto__:Vl.prototype}),e.push(o)}}if(i.nodes&&(i.nodes=t.nodes.map(r=>jt(r,e))),i.source){let{inputId:r,...o}=i.source;i.source=o,r!=null&&(i.source.input=e[r])}if(i.type==="root")return new zl(i);if(i.type==="decl")return new Gl(i);if(i.type==="rule")return new jl(i);if(i.type==="comment")return new Wl(i);if(i.type==="atrule")return new Hl(i);throw new Error("Unknown node type: "+t.type)}Lo.exports=jt;jt.default=jt});var Si=te((Jm,Oo)=>{"use strict";var{dirname:yn,relative:Ro,resolve:Do,sep:Io}=pn(),{SourceMapConsumer:Po,SourceMapGenerator:bn}=hn(),{pathToFileURL:ko}=di(),ql=Vt(),$l=!!(Po&&bn),Kl=!!(yn&&Do&&Ro&&Io),bi=class{constructor(e,n,i,r){this.stringify=e,this.mapOpts=i.map||{},this.root=n,this.opts=i,this.css=r,this.originalCSS=r,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let n=`\n`;this.css.includes(`\\r\n`)&&(n=`\\r\n`),this.css+=n+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let n=this.toUrl(this.path(e.file)),i=e.root||yn(e.file),r;this.mapOpts.sourcesContent===!1?(r=new Po(e.text),r.sourcesContent&&(r.sourcesContent=null)):r=e.consumer(),this.map.applySourceMap(r,n,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let e;for(let n=this.root.nodes.length-1;n>=0;n--)e=this.root.nodes[n],e.type==="comment"&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else if(this.css){let e;for(;(e=this.css.lastIndexOf("/*#"))!==-1;){let n=this.css.indexOf("*/",e+3);if(n===-1)break;for(;e>0&&this.css[e-1]===`\n`;)e--;this.css=this.css.slice(0,e)+this.css.slice(n+2)}}}}generate(){if(this.clearAnnotation(),Kl&&$l&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,n=>{e+=n}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=bn.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new bn({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new bn({file:this.outputFile(),ignoreInvalidMapping:!0});let e=1,n=1,i="<no source>",r={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,s;this.stringify(this.root,(c,a,l)=>{if(this.css+=c,a&&l!=="end"&&(r.generated.line=e,r.generated.column=n-1,a.source&&a.source.start?(r.source=this.sourcePath(a),r.original.line=a.source.start.line,r.original.column=a.source.start.column-1,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,this.map.addMapping(r))),s=c.match(/\\n/g),s?(e+=s.length,o=c.lastIndexOf(`\n`),n=c.length-o):n+=c.length,a&&l!=="start"){let u=a.parent||{raws:{}};(!(a.type==="decl"||a.type==="atrule"&&!a.nodes)||a!==u.last||u.raws.semicolon)&&(a.source&&a.source.end?(r.source=this.sourcePath(a),r.original.line=a.source.end.line,r.original.column=a.source.end.column-1,r.generated.line=e,r.generated.column=n-2,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,r.generated.line=e,r.generated.column=n-1,this.map.addMapping(r)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(n=>n.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\\w+:\\/\\//.test(e))return e;let n=this.memoizedPaths.get(e);if(n)return n;let i=this.opts.to?yn(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=yn(Do(i,this.mapOpts.annotation)));let r=Ro(i,e);return this.memoizedPaths.set(e,r),r}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let n=e.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let e=new ql(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(n=>{if(n.source){let i=n.source.input.from;if(i&&!e[i]){e[i]=!0;let r=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(r,n.source.input.css)}}});else if(this.css){let n=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(n,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let n=this.memoizedFileURLs.get(e);if(n)return n;if(ko){let i=ko(e).toString();return this.memoizedFileURLs.set(e,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let n=this.memoizedURLs.get(e);if(n)return n;Io==="\\\\"&&(e=e.replace(/\\\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};Oo.exports=bi});var Wo=te((Ym,Ho)=>{"use strict";var Sn=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,An=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,Jl=/.[\\r\\n"\'(/\\\\]/,Bo=/[\\da-f]/i;Ho.exports=function(e,n={}){let i=e.css.valueOf(),r=n.ignoreErrors,o,s,c,a,l,u,m,f,g,A,y=i.length,x=0,w=[],N=[],L=-1;function $(){return x}function B(F){throw e.error("Unclosed "+F,x)}function _(){return N.length===0&&x>=y}function S(F){if(N.length)return N.pop();if(x>=y)return;let T=F?F.ignoreUnclosed:!1;switch(o=i.charCodeAt(x),o){case 10:case 32:case 9:case 13:case 12:{a=x;do a+=1,o=i.charCodeAt(a);while(o===32||o===10||o===9||o===13||o===12);u=["space",i.slice(x,a)],x=a-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let k=String.fromCharCode(o);u=[k,k,x];break}case 40:{if(A=w.length?w.pop()[1]:"",g=i.charCodeAt(x+1),A==="url"&&g!==39&&g!==34&&g!==32&&g!==10&&g!==9&&g!==12&&g!==13){a=x;do{if(m=!1,a=i.indexOf(")",a+1),a===-1)if(r||T){a=x;break}else B("bracket");for(f=a;i.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);u=["brackets",i.slice(x,a+1),x,a],x=a}else x<=L?u=["(","(",x]:(a=i.indexOf(")",x+1),s=i.slice(x,a+1),a===-1||Jl.test(s)?(L=a===-1?y:a,u=["(","(",x]):(u=["brackets",s,x,a],x=a));break}case 39:case 34:{l=o===39?"\'":\'"\',a=x;do{if(m=!1,a=i.indexOf(l,a+1),a===-1)if(r||T){a=x+1;break}else B("string");for(f=a;i.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);u=["string",i.slice(x,a+1),x,a],x=a;break}case 64:{Sn.lastIndex=x+1,Sn.test(i),Sn.lastIndex===0?a=i.length-1:a=Sn.lastIndex-2,u=["at-word",i.slice(x,a+1),x,a],x=a;break}case 92:{for(a=x,c=!0;i.charCodeAt(a+1)===92;)a+=1,c=!c;if(o=i.charCodeAt(a+1),c&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(a+=1,Bo.test(i.charAt(a)))){for(;Bo.test(i.charAt(a+1));)a+=1;i.charCodeAt(a+1)===32&&(a+=1)}u=["word",i.slice(x,a+1),x,a],x=a;break}default:{o===47&&i.charCodeAt(x+1)===42?(a=i.indexOf("*/",x+2)+1,a===0&&(r||T?a=i.length:B("comment")),u=["comment",i.slice(x,a+1),x,a],x=a):(An.lastIndex=x+1,An.test(i),An.lastIndex===0?a=i.length-1:a=An.lastIndex-2,u=["word",i.slice(x,a+1),x,a],w.push(u),x=a);break}}return x++,u}function C(F){N.push(F)}return{back:C,endOfFile:_,nextToken:S,position:$}}});var zo=te((Xm,Vo)=>{"use strict";var Yl=fn(),Xl=Ht(),Ql=Gt(),Zl=ft(),Go=gn(),eu=Wo(),Uo={empty:!0,space:!0};function tu(t){for(let e=t.length-1;e>=0;e--){let n=t[e],i=n[3]||n[2];if(i)return i}}var Ai=class{constructor(e){this.input=e,this.root=new Zl,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let n=new Yl;n.name=e[1].slice(1),n.name===""&&this.unnamedAtrule(n,e),this.init(n,e[2]);let i,r,o,s=!1,c=!1,a=[],l=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?l.push(i==="("?")":"]"):i==="{"&&l.length>0?l.push("}"):i===l[l.length-1]&&l.pop(),l.length===0)if(i===";"){n.source.end=this.getPosition(e[2]),n.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){c=!0;break}else if(i==="}"){if(a.length>0){for(o=a.length-1,r=a[o];r&&r[0]==="space";)r=a[--o];r&&(n.source.end=this.getPosition(r[3]||r[2]),n.source.end.offset++)}this.end(e);break}else a.push(e);else a.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(n.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(n,"params",a),s&&(e=a[a.length-1],n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),c&&(n.nodes=[],this.current=n)}checkMissedSemicolon(e){let n=this.colon(e);if(n===!1)return;let i=0,r;for(let o=n-1;o>=0&&(r=e[o],!(r[0]!=="space"&&(i+=1,i===2)));o--);throw this.input.error("Missed semicolon",r[0]==="word"?r[3]+1:r[2])}colon(e){let n=0,i,r,o;for(let[s,c]of e.entries()){if(r=c,o=r[0],o==="("&&(n+=1),o===")"&&(n-=1),n===0&&o===":")if(!i)this.doubleColon(r);else{if(i[0]==="word"&&i[1]==="progid")continue;return s}i=r}return!1}comment(e){let n=new Xl;this.init(n,e[2]),n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++;let i=e[1].slice(2,-2);if(!i.trim())n.text="",n.raws.left=i,n.raws.right="";else{let r=i.match(/^(\\s*)([^]*\\S)(\\s*)$/);n.text=r[2],n.raws.left=r[1],n.raws.right=r[3]}}createTokenizer(){this.tokenizer=eu(this.input)}decl(e,n){let i=new Ql;this.init(i,e[0][2]);let r=e[e.length-1];for(r[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(r[3]||r[2]||tu(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let l=e[0][0];if(l===":"||l==="space"||l==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let o;for(;e.length;)if(o=e.shift(),o[0]===":"){i.raws.between+=o[1];break}else o[0]==="word"&&/\\w/.test(o[1])&&this.unknownWord([o]),i.raws.between+=o[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let s=[],c;for(;e.length&&(c=e[0][0],!(c!=="space"&&c!=="comment"));)s.push(e.shift());this.precheckMissedSemicolon(e);for(let l=e.length-1;l>=0;l--){if(o=e[l],o[1].toLowerCase()==="!important"){i.important=!0;let u=this.stringFrom(e,l);u=this.spacesFromEnd(e)+u,u!==" !important"&&(i.raws.important=u);break}else if(o[1].toLowerCase()==="important"){let u=e.slice(0),m="";for(let f=l;f>0;f--){let g=u[f][0];if(m.trim().startsWith("!")&&g!=="space")break;m=u.pop()[1]+m}m.trim().startsWith("!")&&(i.important=!0,i.raws.important=m,e=u)}if(o[0]!=="space"&&o[0]!=="comment")break}e.some(l=>l[0]!=="space"&&l[0]!=="comment")&&(i.raws.between+=s.map(l=>l[1]).join(""),s=[]),this.raw(i,"value",s.concat(e),n),i.value.includes(":")&&!n&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let n=new Go;this.init(n,e[2]),n.selector="",n.raws.between="",this.current=n}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type==="rule"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces="",n.source.end=this.getPosition(e[2]),n.source.end.offset+=n.raws.ownSemicolon.length)}}getPosition(e){let n=this.input.fromOffset(e);return{column:n.col,line:n.line,offset:e}}init(e,n){this.current.push(e),e.source={input:this.input,start:this.getPosition(n)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let n=!1,i=null,r=!1,o=null,s=[],c=e[1].startsWith("--"),a=[],l=e;for(;l;){if(i=l[0],a.push(l),i==="("||i==="[")o||(o=l),s.push(i==="("?")":"]");else if(c&&r&&i==="{")o||(o=l),s.push("}");else if(s.length===0)if(i===";")if(r){this.decl(a,c);return}else break;else if(i==="{"){this.rule(a);return}else if(i==="}"){this.tokenizer.back(a.pop()),n=!0;break}else i===":"&&(r=!0);else i===s[s.length-1]&&(s.pop(),s.length===0&&(o=null));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),s.length>0&&this.unclosedBracket(o),n&&r){if(!c)for(;a.length&&(l=a[a.length-1][0],!(l!=="space"&&l!=="comment"));)this.tokenizer.back(a.pop());this.decl(a,c)}else this.unknownWord(a)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,n,i,r){let o,s,c=i.length,a="",l=!0,u,m;for(let f=0;f<c;f+=1)o=i[f],s=o[0],s==="space"&&f===c-1&&!r?l=!1:s==="comment"?(m=i[f-1]?i[f-1][0]:"empty",u=i[f+1]?i[f+1][0]:"empty",!Uo[m]&&!Uo[u]?a.slice(-1)===","?l=!1:a+=o[1]:l=!1):a+=o[1];if(!l){let f=i.reduce((g,A)=>g+A[1],"");e.raws[n]={raw:f,value:a}}e[n]=a}rule(e){e.pop();let n=new Go;this.init(n,e[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(n,"selector",e),this.current=n}spacesAndCommentsFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],!(n!=="space"&&n!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let n,i="";for(;e.length&&(n=e[0][0],!(n!=="space"&&n!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],n==="space");)i=e.pop()[1]+i;return i}stringFrom(e,n){let i="";for(let r=n;r<e.length;r++)i+=e[r][1];return e.splice(n,e.length-n),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word "+e[0][1],{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,n){throw this.input.error("At-rule without name",{offset:n[2]},{offset:n[2]+n[1].length})}};Vo.exports=Ai});var wn=te((Qm,jo)=>{"use strict";var nu=qe(),iu=Vt(),ru=zo();function En(t,e){let n=new iu(t,e),i=new ru(n);try{i.parse()}catch(r){throw r}return i.root}jo.exports=En;En.default=En;nu.registerParse(En)});var Ei=te((Zm,qo)=>{"use strict";var qt=class{constructor(e,n={}){if(this.type="warning",this.text=e,n.node&&n.node.source){let i=n.node.rangeBy(n);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in n)this[i]=n[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};qo.exports=qt;qt.default=qt});var Cn=te((ep,$o)=>{"use strict";var ou=Ei(),$t=class{get content(){return this.css}constructor(e,n,i){this.processor=e,this.messages=[],this.root=n,this.opts=i,this.css="",this.map=void 0}toString(){return this.css}warn(e,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let i=new ou(e,n);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}};$o.exports=$t;$t.default=$t});var wi=te((tp,Jo)=>{"use strict";var Ko={};Jo.exports=function(e){Ko[e]||(Ko[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))}});var Mi=te((ip,Zo)=>{"use strict";var su=qe(),au=mn(),lu=Si(),uu=wn(),Yo=Cn(),cu=ft(),du=Dt(),{isClean:Be,my:fu}=dn(),np=wi(),mu={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},pu={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},hu={Once:!0,postcssPlugin:!0,prepare:!0},pt=0;function Kt(t){return typeof t=="object"&&typeof t.then=="function"}function Qo(t){let e=!1,n=mu[t.type];return t.type==="decl"?e=t.prop.toLowerCase():t.type==="atrule"&&(e=t.name.toLowerCase()),e&&t.append?[n,n+"-"+e,pt,n+"Exit",n+"Exit-"+e]:e?[n,n+"-"+e,n+"Exit",n+"Exit-"+e]:t.append?[n,pt,n+"Exit"]:[n,n+"Exit"]}function Xo(t){let e;return t.type==="document"?e=["Document",pt,"DocumentExit"]:t.type==="root"?e=["Root",pt,"RootExit"]:e=Qo(t),{eventIndex:0,events:e,iterator:0,node:t,visitorIndex:0,visitors:[]}}function Ci(t){return t[Be]=!1,t.nodes&&t.nodes.forEach(e=>Ci(e)),t}var Fi={},Ke=class t{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(e,n,i){this.stringified=!1,this.processed=!1;let r;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))r=Ci(n);else if(n instanceof t||n instanceof Yo)r=Ci(n.root),n.map&&(typeof i.map>"u"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=n.map);else{let o=uu;i.syntax&&(o=i.syntax.parse),i.parser&&(o=i.parser),o.parse&&(o=o.parse);try{r=o(n,i)}catch(s){this.processed=!0,this.error=s}r&&!r[fu]&&su.rebuild(r)}this.result=new Yo(e,r,i),this.helpers={...Fi,postcss:Fi,result:this.result},this.plugins=this.processor.plugins.map(o=>typeof o=="object"&&o.prepare?{...o,...o.prepare(this.result)}:o)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,n){let i=this.result.lastPlugin;try{n&&n.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(r){console&&console.error&&console.error(r)}return e}prepareVisitors(){this.listeners={};let e=(n,i,r)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([n,r])};for(let n of this.plugins)if(typeof n=="object")for(let i in n){if(!pu[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!hu[i])if(typeof n[i]=="object")for(let r in n[i])r==="*"?e(n,i,n[i][r]):e(n,i+"-"+r.toLowerCase(),n[i][r]);else typeof n[i]=="function"&&e(n,i,n[i])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let n=this.plugins[e],i=this.runOnRoot(n);if(Kt(i))try{await i}catch(r){throw this.handleError(r)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Be];){e[Be]=!0;let n=[Xo(e)];for(;n.length>0;){let i=this.visitTick(n);if(Kt(i))try{await i}catch(r){let o=n[n.length-1].node;throw this.handleError(r,o)}}}if(this.listeners.OnceExit)for(let[n,i]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(e.type==="document"){let r=e.nodes.map(o=>i(o,this.helpers));await Promise.all(r)}else await i(e,this.helpers)}catch(r){throw this.handleError(r)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return Kt(n[0])?Promise.all(n):n}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(n){throw this.handleError(n)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,n=du;e.syntax&&(n=e.syntax.stringify),e.stringifier&&(n=e.stringifier),n.stringify&&(n=n.stringify);let i=this.result.root.source;if(e.map===void 0&&!(i&&i.input&&i.input.map)){let s="";return n(this.result.root,c=>{s+=c}),this.result.css=s,this.result}let o=new lu(n,this.result.root,this.result.opts).generate();return this.result.css=o[0],this.result.map=o[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let n=this.runOnRoot(e);if(Kt(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Be];)e[Be]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let n of e.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,n){return this.async().then(e,n)}toString(){return this.css}visitSync(e,n){for(let[i,r]of e){this.result.lastPlugin=i;let o;try{o=r(n,this.helpers)}catch(s){throw this.handleError(s,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(Kt(o))throw this.getAsyncError()}}visitTick(e){let n=e[e.length-1],{node:i,visitors:r}=n;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(r.length>0&&n.visitorIndex<r.length){let[s,c]=r[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===r.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=s;try{return c(i.toProxy(),this.helpers)}catch(a){throw this.handleError(a,i)}}if(n.iterator!==0){let s=n.iterator,c;for(;c=i.nodes[i.indexes[s]];)if(i.indexes[s]+=1,!c[Be]){c[Be]=!0,e.push(Xo(c));return}n.iterator=0,delete i.indexes[s]}let o=n.events;for(;n.eventIndex<o.length;){let s=o[n.eventIndex];if(n.eventIndex+=1,s===pt){i.nodes&&i.nodes.length&&(i[Be]=!0,n.iterator=i.getIterator());return}else if(this.listeners[s]){n.visitors=this.listeners[s];return}}e.pop()}walkSync(e){e[Be]=!0;let n=Qo(e);for(let i of n)if(i===pt)e.nodes&&e.each(r=>{r[Be]||this.walkSync(r)});else{let r=this.listeners[i];if(r&&this.visitSync(r,e.toProxy()))return}}warnings(){return this.sync().warnings()}};Ke.registerPostcss=t=>{Fi=t};Zo.exports=Ke;Ke.default=Ke;cu.registerLazyResult(Ke);au.registerLazyResult(Ke)});var ts=te((op,es)=>{"use strict";var xu=Si(),gu=wn(),yu=Cn(),bu=Dt(),rp=wi(),Jt=class{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,n=gu;try{e=n(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,n,i){n=n.toString(),this.stringified=!1,this._processor=e,this._css=n,this._opts=i,this._map=void 0;let r=bu;this.result=new yu(this._processor,void 0,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let s=new xu(r,void 0,this._opts,n);if(s.isMap()){let[c,a]=s.generate();c&&(this.result.css=c),a&&(this.result.map=a)}else s.clearAnnotation(),this.result.css=s.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,n){return this.async().then(e,n)}toString(){return this._css}warnings(){return[]}};es.exports=Jt;Jt.default=Jt});var is=te((sp,ns)=>{"use strict";var Su=mn(),Au=Mi(),Eu=ts(),wu=ft(),ot=class{constructor(e=[]){this.version="8.5.14",this.plugins=this.normalize(e)}normalize(e){let n=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))n=n.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)n.push(i);else if(typeof i=="function")n.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return n}process(e,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new Eu(this,e,n):new Au(this,e,n)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};ns.exports=ot;ot.default=ot;wu.registerProcessor(ot);Su.registerProcessor(ot)});var ds=te((ap,cs)=>{"use strict";var rs=fn(),os=Ht(),Cu=qe(),Fu=cn(),ss=Gt(),as=mn(),Mu=vo(),Nu=Vt(),_u=Mi(),Tu=yi(),Lu=Ot(),vu=wn(),Ni=is(),ku=Cn(),ls=ft(),us=gn(),Ru=Dt(),Du=Ei();function le(...t){return t.length===1&&Array.isArray(t[0])&&(t=t[0]),new Ni(t)}le.plugin=function(e,n){let i=!1;function r(...s){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let c=n(...s);return c.postcssPlugin=e,c.postcssVersion=new Ni().version,c}let o;return Object.defineProperty(r,"postcss",{get(){return o||(o=r()),o}}),r.process=function(s,c,a){return le([r(a)]).process(s,c)},r};le.stringify=Ru;le.parse=vu;le.fromJSON=Mu;le.list=Tu;le.comment=t=>new os(t);le.atRule=t=>new rs(t);le.decl=t=>new ss(t);le.rule=t=>new us(t);le.root=t=>new ls(t);le.document=t=>new as(t);le.CssSyntaxError=Fu;le.Declaration=ss;le.Container=Cu;le.Processor=Ni;le.Document=as;le.Comment=os;le.Warning=Du;le.AtRule=rs;le.Result=ku;le.Input=Nu;le.Rule=us;le.Root=ls;le.Node=Lu;_u.registerPostcss(le);cs.exports=le;le.default=le});function ln(){return globalThis}function v(t,e){if(typeof window>"u")return;let n=ln(),i=n.__hf?.onSwallowed;if(i)try{i({label:t,error:e})}catch(r){}(n.__hfDebug||n.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${t} swallowed:`,e)}function Ee(t){try{window.parent.postMessage(t,"*")}catch(e){v("bridge.postMessage",e)}}var Ia={play:(t,e)=>e.onPlay(),pause:(t,e)=>e.onPause(),"stop-media":(t,e)=>e.onStopMedia(),seek:(t,e)=>e.onSeek(Number(t.frame??0),t.seekMode??"commit"),tick:(t,e)=>e.onTick(),"set-muted":(t,e)=>e.onSetMuted(!!t.muted),"set-volume":(t,e)=>e.onSetVolume(Math.max(0,Math.min(1,Number(t.volume??1)))),"set-media-output-muted":(t,e)=>e.onSetMediaOutputMuted(!!t.muted),"set-native-media-sync-disabled":(t,e)=>e.onSetNativeMediaSyncDisabled(!!t.disabled),"set-web-audio-media-disabled":(t,e)=>e.onSetWebAudioMediaDisabled(!!t.disabled),"set-playback-rate":(t,e)=>e.onSetPlaybackRate(Number(t.playbackRate??1)),"set-color-grading":(t,e)=>e.onSetColorGrading(t.target??null,t.grading??null),"set-color-grading-compare":(t,e)=>e.onSetColorGradingCompare(t.target??null,t.compare??null),"enable-pick-mode":(t,e)=>e.onEnablePickMode(),"disable-pick-mode":(t,e)=>e.onDisablePickMode(),"flash-elements":t=>Pa(t)};function Pa(t){let e=t.selectors,n=t.duration||800;e&&Oa(e,n)}function ar(t){let e=n=>{let i=n.data;if(!i||i.source!=="hf-parent"||i.type!=="control")return;let r=i.action;if(typeof r!="string")return;let o=Ia[r];o&&o(i,t)};return window.addEventListener("message",e),Ee({source:"hf-preview",type:"ready"}),e}function Oa(t,e){if(!document.getElementById("__hf-flash-styles")){let n=document.createElement("style");n.id="__hf-flash-styles",n.textContent=`\n .__hf-flash {\n outline: 2px solid rgba(59, 130, 246, 0.6) !important;\n outline-offset: 2px !important;\n animation: __hf-flash-pulse ${e}ms ease-out forwards !important;\n }\n @keyframes __hf-flash-pulse {\n 0% { outline-color: rgba(59, 130, 246, 0.8); }\n 100% { outline-color: transparent; }\n }\n `,document.head.appendChild(n)}for(let n of t)try{document.querySelectorAll(n).forEach(r=>{r.classList.add("__hf-flash"),setTimeout(()=>r.classList.remove("__hf-flash"),e)})}catch(i){v("bridge.flashElements.querySelector",i)}}var jn=null;function lr(t){jn=t}function Ct(t,e){if(jn)try{jn({source:"hf-preview",type:"analytics",event:t,properties:e??{}})}catch(n){v("runtime.analytics.site1",n)}}function ur(t){let e=[],n=l=>{if(typeof l.getAnimations!="function")return[];try{return l.getAnimations()}catch{return[]}},i=l=>t?.resolveStartSeconds?t.resolveStartSeconds(l):Number.parseFloat(l.getAttribute("data-start")??"0")||0,r=(l,u)=>{let m=null;try{m=l.effect?.getComputedTiming?.()??null}catch(g){v("runtime.adapters.css.site5",g)}if(!m)return{};let f=Number(m.endTime);return Number.isFinite(f)?{endSeconds:u+f/1e3}:{unbounded:!0}},o=(l,u)=>{for(let m of l){try{m.currentTime=u}catch(f){v("runtime.adapters.css.site1",f)}try{m.pause()}catch(f){v("runtime.adapters.css.site2",f)}}},s=l=>{for(let u of l)try{u.play()}catch(m){v("runtime.adapters.css.site3",m)}},c=l=>{for(let u of l)try{u.pause()}catch(m){v("runtime.adapters.css.site4",m)}},a=l=>{l.baseDelay?l.el.style.animationDelay=l.baseDelay:l.el.style.removeProperty("animation-delay"),l.basePlayState?l.el.style.animationPlayState=l.basePlayState:l.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{e=[];let l=document.querySelectorAll("*");for(let u of l){if(!(u instanceof HTMLElement))continue;let m=window.getComputedStyle(u);!m.animationName||m.animationName==="none"||e.push({el:u,baseDelay:u.style.animationDelay||"",basePlayState:u.style.animationPlayState||"",animations:n(u)})}},getInferredDurationSeconds:()=>{let l=0;for(let u of e){if(!u.el.isConnected)continue;let m=i(u.el);for(let f of n(u.el)){let g=r(f,m);g.endSeconds!=null&&(l=Math.max(l,g.endSeconds))}}return l>0?l:null},seek:l=>{let u=Number(l.time)||0;for(let m of e){if(!m.el.isConnected)continue;let f=i(m.el),g=Math.max(0,u-f)*1e3,A=m.animations;if(A.length>0){o(A,g);continue}m.el.style.animationPlayState="paused",m.el.style.animationDelay=`-${(g/1e3).toFixed(3)}s`}},pause:()=>{for(let l of e){if(!l.el.isConnected)continue;let u=l.animations;u.length>0&&c(u),a(l)}},play:()=>{for(let l of e)l.el.isConnected&&(a(l),s(l.animations))},revert:()=>{e=[]}}}function cr(t){return{name:"gsap",discover:()=>{},seek:e=>{let n=t.getTimeline();if(!n)return;n.pause();let i=Math.max(0,Number(e.time)||0);typeof n.totalTime=="function"?(n.totalTime(i+.001,!0),n.totalTime(i,!1)):n.seek(i,!1)},pause:()=>{let e=t.getTimeline();e&&e.pause()}}}function dr(){return{name:"animejs",discover:()=>{try{let t=window.anime;if(!t||typeof t.running>"u")return;let e=t.running;if(!Array.isArray(e)||e.length===0)return;let n=window.__hfAnime??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfAnime=n}catch(t){v("runtime.adapters.animejs.site1",t)}},seek:t=>{let e=Math.max(0,(Number(t.time)||0)*1e3),n=window.__hfAnime;if(!(!n||n.length===0))for(let i of n)try{typeof i.seek=="function"&&i.seek(e)}catch(r){v("runtime.adapters.animejs.site2",r)}},pause:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.pause=="function"&&e.pause()}catch(n){v("runtime.adapters.animejs.site3",n)}},play:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.play=="function"&&e.play()}catch(n){v("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function mr(){return{name:"lottie",discover:()=>{try{let t=window.lottie;if(t&&typeof t.getRegisteredAnimations=="function"){let e=t.getRegisteredAnimations();if(Array.isArray(e)&&e.length>0){let n=window.__hfLottie??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfLottie=n}}}catch(t){v("runtime.adapters.lottie.site1",t)}},seek:t=>{let e=Math.max(0,Number(t.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let i of n)try{if(qn(i))i.goToAndStop(e*1e3,!1);else if($n(i)){if(typeof i.setCurrentRawFrameValue=="function"){let r=i.totalFrames??0,o=i.frameRate??30,s=e*o;r>0&&i.setCurrentRawFrameValue(Math.min(s,r-1))}else if(typeof i.seek=="function"){let r=i.duration??1,o=Math.min(100,e/r*100);i.seek(o)}}}catch(r){v("runtime.adapters.lottie.site2",r)}},pause:()=>{let t=window.__hfLottie;if(!(!t||t.length===0))for(let e of t)try{(qn(e)||$n(e))&&e.pause()}catch(n){v("runtime.adapters.lottie.site3",n)}},revert:()=>{},getInferredDurationSeconds:()=>{let t=window.__hfLottie;if(!t||t.length===0)return null;let e=0,n=!1;for(let i of t){let r=null;try{r=Ba(i)}catch(o){v("runtime.adapters.lottie.site4",o)}r!=null&&(n=!0,e=Math.max(e,r))}return n?e:null}}}function fr(t,e){return!Number.isFinite(t)||!t||t<=0||!Number.isFinite(e)||!e||e<=0?null:t/e}function Ba(t){return qn(t)?fr(t.totalFrames,t.frameRate):$n(t)?Number.isFinite(t.duration)&&(t.duration??0)>0?t.duration??null:fr(t.totalFrames,t.frameRate):null}function qn(t){return typeof t=="object"&&t!==null&&typeof t.goToAndStop=="function"}function $n(t){return typeof t=="object"&&t!==null&&typeof t.pause=="function"&&("totalFrames"in t||"duration"in t)}var Kn=-1;function un(t){if(t!==Kn){Kn=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){v("runtime.adapters.seek-dispatch.site1",e)}}}function pr(t){Kn=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){v("runtime.adapters.seek-dispatch.force",e)}}function hr(){let t=null,e=0,n=null,i=null,r=null,o=null,s=()=>{if(typeof window>"u")return null;let u=window.THREE?.DefaultLoadingManager;return!u||typeof u!="object"||typeof u.itemsLoaded!="number"||typeof u.itemsTotal!="number"?null:u},c=l=>{o||l.itemsTotal<=l.itemsLoaded||(o=new Promise(u=>{l.onLoad=function(){try{r?.call(this)}finally{o=null,l.onLoad=r??null,u()}}}))},a=l=>{n!==l&&(n=l,i=l.onStart??null,r=l.onLoad??null,l.onStart=function(u,m,f){try{i?.call(this,u,m,f)}finally{c(l)}})};return{name:"three",discover:()=>{let l=s();l&&(a(l),c(l))},seek:l=>{t=Math.max(0,Number(l.time)||0),e=t,window.__hfThreeTime=t,un(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0},getReadyPromise:()=>{let l=s();return!l||l.itemsTotal<=l.itemsLoaded?null:(o||c(l),o)}}}function Oe(t){let e=null,n=new WeakSet;return{name:t.name,discover:()=>{},seek:()=>{},pause:()=>{},play:()=>{},revert:()=>{},getReadyPromise:()=>{let i=t.getInstances();if(i.length===0)return null;let r=i.filter(o=>!n.has(o));return r.length===0?null:e||(e=Promise.allSettled(r.map(o=>t.waitFor(o).then(()=>{n.add(o)}))).then(()=>{e=null}),e)}}}function xr(){return Oe({name:"mapbox",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfMapbox;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{if(t.loaded()){e();return}t.on("load",e)})})}function gr(){return Oe({name:"leaflet",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfLeaflet;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>t.whenReady(e))})}function yr(){return Oe({name:"google-maps",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfGoogleMaps;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{let n=t.addListener("tilesloaded",()=>{n.remove(),e()})})})}function br(){return Oe({name:"maplibre",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfMaplibre;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{if(t.loaded()){e();return}t.on("load",e)})})}function Sr(){return Oe({name:"d3",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfD3;return Array.isArray(t)?t:[]},waitFor:t=>t.end()})}function Ar(){let t=null,e=0;return{name:"typegpu",discover:()=>{},seek:n=>{t=Math.max(0,Number(n.time)||0),e=t,window.__hfTypegpuTime=t,un(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0}}}function Er(t){let e=t.nextElementSibling;if(e instanceof HTMLImageElement&&e.classList.contains("__render_frame__")&&e.complete&&e.naturalWidth>0)return e;if(t.id){let n=document.getElementById(`__render_frame_${t.id}__`);if(n instanceof HTMLImageElement&&n.complete&&n.naturalWidth>0)return n}return null}function wr(){let t=globalThis.GPUQueue;if(!t?.prototype?.copyExternalImageToTexture)return;let e=t.prototype.copyExternalImageToTexture;t.prototype.copyExternalImageToTexture=function(n,i,r){if(n?.source instanceof HTMLVideoElement){let o=Er(n.source);if(o)return e.call(this,{...n,source:o},i,r)}return e.call(this,n,i,r)}}function Cr(){let t=[globalThis.WebGL2RenderingContext,globalThis.WebGLRenderingContext],e=["texImage2D","texSubImage2D"];for(let n of t){let i=n?.prototype;if(i)for(let r of e){let o=i[r];if(typeof o!="function"||o.__hfVideoPatched)continue;let s=function(...c){let a=c.length-1,l=c[a];if(l instanceof HTMLVideoElement){let u=Er(l);u&&(c[a]=u)}return o.apply(this,c)};s.__hfVideoPatched=!0,i[r]=s}}}function Fr(){let t=!1,e=0,n=!1,i,r,o,s=new Set,c=new WeakMap,a=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},l=x=>{let w=Number(x.currentTime);return Number.isFinite(w)&&w>0?w:0},u=(x,w)=>w<=0?x:x>=w?Math.max(0,x-w):x,m=(x,w)=>{let N=c.get(x);if(N)return N;let L={compositionTimeMs:w,animationTimeMs:t?u(l(x),w):l(x)};return c.set(x,L),L},f=(x,w)=>{if(!s.has(x)){s.add(x);let N=()=>{s.delete(x)};try{x.addEventListener("finish",N,{once:!0}),x.addEventListener("cancel",N,{once:!0})}catch(L){v("runtime.adapters.waapi.site4",L)}}m(x,w)},g=(x,w)=>{for(let N of x)f(N,w)},A=()=>{if(n||typeof Element>"u")return;let x=Element.prototype;if(typeof x.animate!="function"||x.__hfOriginalAnimate)return;let w=x.animate;try{Object.defineProperty(x,"__hfOriginalAnimate",{value:w,configurable:!0});let N=function(...L){let $=w.apply(this,L);return f($,e),$};x.animate=N,i=x,r=w,o=N,n=!0}catch{}},y=x=>{let w=null;try{w=x.effect?.getComputedTiming?.()??null}catch($){v("runtime.adapters.waapi.site4",$)}if(!w)return{};let N=Number(w.endTime);return Number.isFinite(N)?{endSeconds:(c.get(x)?.compositionTimeMs??0)/1e3+N/1e3}:{unbounded:!0}};return{name:"waapi",discover:()=>{t=!0,A(),g(a(),e)},seek:x=>{let w=Math.max(0,(Number(x.time)||0)*1e3);e=w,(!t||s.size>0)&&g(a(),t?w:0);for(let N of s){let L=t?m(N,w):m(N,0),$=L.animationTimeMs+Math.max(0,w-L.compositionTimeMs);try{N.currentTime=$}catch(B){v("runtime.adapters.waapi.site1",B)}try{N.pause()}catch(B){v("runtime.adapters.waapi.site2",B)}}},pause:()=>{t||g(a(),e);for(let x of s)try{x.pause()}catch(w){v("runtime.adapters.waapi.site3",w)}},revert:()=>{if(s.clear(),c=new WeakMap,t=!1,e=0,i&&r&&o&&i.animate===o)try{i.animate=r,i.__hfOriginalAnimate===r&&delete i.__hfOriginalAnimate}catch(x){v("runtime.adapters.waapi.site5",x)}i=void 0,r=void 0,o=void 0,n=!1},getInferredDurationSeconds:()=>{let x=0;for(let w of a()){let N=y(w);N.endSeconds!=null&&(x=Math.max(x,N.endSeconds))}return x>0?x:null}}}function Mr(t,e){if(t.length===0)return 1;let n=0;for(;n<t.length-2&&e>=t[n+1].time;)n+=1;let i=t[n],r=t[n+1]??i,o=r.time-i.time,s=o<=0?0:Math.min(1,Math.max(0,(e-i.time)/o));return i.volume+(r.volume-i.volume)*s}function Ha(t,e,n,i){let r=Number.parseFloat(t.dataset.start??"0")||0,o=Number.parseFloat(t.dataset.end??""),s=Number.parseFloat(t.dataset.duration??""),c=Number.isFinite(o)&&o>r?o:Number.isFinite(s)&&s>0?r+s:n,a=Number.parseFloat(t.dataset.volume??""),l=Number.isFinite(a)?Math.max(0,Math.min(1,a)):1;t.volume=l;let u=1/Math.min(60,Math.max(1,i)),m=Math.max(0,r),f=Math.min(n,c),g=[];for(let y=m;y<=f+1e-6;y+=u){let x=Math.min(f,y);e(x);let w=Number(t.volume);if(!Number.isFinite(w))continue;let N=Math.max(0,Math.min(1,w)),L=g.at(-1);if((!L||Math.abs(L.volume-N)>1e-4||x===f)&&g.push({time:Number(x.toFixed(6)),volume:Number(N.toFixed(6))}),x===f)break}return g.some(y=>Math.abs(y.volume-l)>1e-4)?g:null}function Nr(t,e,n,i){if(!e||!(t instanceof HTMLAudioElement)&&!(t instanceof HTMLVideoElement)||n<=0)return;let o=Ha(t,s=>{try{typeof e.totalTime=="function"?e.totalTime(s,!0):typeof e.seek=="function"&&e.seek(s,!0)}catch{}},n,60);o&&i.set(t,o)}function Nt(t){let e=t.defaultPlaybackRate;return Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1}function _r(t){let e=Array.from(document.querySelectorAll("video, audio")),n=t?.shouldIncludeElement?e.filter(s=>t.shouldIncludeElement?.(s)):e.filter(s=>s.hasAttribute("data-start")),i=[],r=[],o=0;for(let s of n){let c=t?.resolveStartSeconds?t.resolveStartSeconds(s):Number.parseFloat(s.dataset.start??"0");if(!Number.isFinite(c))continue;let a=Number.parseFloat(s.dataset.playbackStart??s.dataset.mediaStart??"0")||0,l=Nt(s),u=s.loop,m=Number.isFinite(s.duration)&&s.duration>0?s.duration:null,f=t?.resolveDurationSeconds?.(s)??Number.parseFloat(s.dataset.duration??"");(!Number.isFinite(f)||f<=0)&&m!=null&&(f=Math.max(0,(m-a)/l));let g=Number.isFinite(f)&&f>0?c+f:Number.POSITIVE_INFINITY,A=Number.parseFloat(s.dataset.volume??""),y={el:s,start:c,mediaStart:a,duration:Number.isFinite(f)&&f>0?f:Number.POSITIVE_INFINITY,end:g,volume:Number.isFinite(A)?A:null,playbackRate:l,loop:u,sourceDuration:m};i.push(y),s.tagName==="VIDEO"&&r.push(y),Number.isFinite(g)&&(o=Math.max(o,g))}return{timedMediaEls:n,mediaClips:i,videoClips:r,maxMediaEnd:o}}var Jn=new WeakMap,Ft=new WeakMap,Yn=new WeakSet,lt=new WeakSet;function Wa(t){if(lt.has(t))return;lt.add(t);let e=()=>lt.delete(t);t.addEventListener("playing",e,{once:!0}),t.addEventListener("pause",e,{once:!0}),t.addEventListener("error",e,{once:!0})}var Ga=3;function Ua(t){return t.error!=null||t.networkState===Ga}var Xn=new WeakMap;function Mt(t){return Number.isFinite(t)?Math.max(0,Math.min(1,t)):1}function Tr(t){let e=!!(t.outputMuted||t.userMuted);for(let n of t.clips){let{el:i}=n;if(!i.isConnected)continue;let r=(t.timeSeconds-n.start)*n.playbackRate+n.mediaStart;if(t.timeSeconds>=n.start&&t.timeSeconds<=n.end&&r>=0&&(!i.ended||n.loop)){if(n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let T=n.sourceDuration-n.mediaStart;T>0&&r>=n.sourceDuration&&(r=n.mediaStart+(r-n.mediaStart)%T)}let s=Mt(t.userVolume??1),c=Mt(n.volume??1),a=Xn.get(i),l=Mt(i.volume),u;n.volumeKeyframes&&n.volumeKeyframes.length>0?u=Mt(Mr(n.volumeKeyframes,r)):a===void 0||Math.abs(l-a)>1e-4?u=l:u=c;let m=Mt(u*s);i.volume=m,Xn.set(i,m),t.onElementVolume?.(i,m),(e||t.isWebAudioOwned?.(i))&&(i.muted=!0),i.preload!=="auto"&&(i.preload="auto");try{i.playbackRate=n.playbackRate*t.playbackRate}catch(T){v("runtime.media.site1",T)}let f=.04,g=2,A=i.currentTime||0,y=Math.abs(A-r),x=r-A,w=Jn.get(i);Jn.set(i,x);let N=w===void 0,L=!N&&Math.abs(x-w)>.5,$=y>3,B=y>.5&&(N||L||$),_=i.tagName==="VIDEO"&&!i.paused,S=w!==void 0&&Math.abs(x-w)<.004,C=!1;if(!_&&!B&&!N&&S&&y>f){let T=(Ft.get(i)??0)+1;Ft.set(i,T),T>=g&&(C=!0,Ft.set(i,0))}else y<=f&&Ft.set(i,0);let F=!_&&t.forceSync&&y>.02;if(B||C||F){if(!(i.tagName==="VIDEO"&&i.id&&!!document.getElementById(`__render_frame_${i.id}__`))){try{i.currentTime=r}catch(k){v("runtime.media.site2",k)}if(Math.abs(i.currentTime-r)>.5&&!Yn.has(i)){Yn.add(i),i.load();try{i.currentTime=r}catch(k){v("runtime.media.site3",k)}}}lt.delete(i)}t.playing&&i.paused&&!lt.has(i)&&!Ua(i)?(Wa(i),i.play().catch(T=>{lt.delete(i),(T&&typeof T=="object"&&"name"in T?String(T.name??""):"")==="NotAllowedError"&&t.onAutoplayBlocked?.()})):!t.playing&&!i.paused&&i.pause();continue}Jn.delete(i),Ft.delete(i),Yn.delete(i),Xn.delete(i),i.paused||i.pause()}}var Va=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),za=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(","),ja="data-hf-color-grading-source-hidden";function Lr(t){let e=!1,n=null,i=null,r=null,o=null;function s(S,C){try{window.dispatchEvent(new CustomEvent(S,{detail:C}))}catch(F){v("runtime.picker.site1",F)}}function c(S){r=S,s("hyperframe:picker:hovered",{elementInfo:r,isPickMode:e,timestamp:Date.now()})}function a(S){o=S,s("hyperframe:picker:selected",{elementInfo:o,isPickMode:e,timestamp:Date.now()})}function l(S){let C=S.ownerDocument.defaultView;if(!C)return!1;let F=S;for(;F&&F!==document.body&&F!==document.documentElement;){let T=C.getComputedStyle(F);if(T.display==="none"||T.visibility==="hidden"||T.pointerEvents==="none")return!0;let k=Number.parseFloat(T.opacity);if(Number.isFinite(k)&&k<=.01&&!F.hasAttribute(ja))return!0;F=F.parentElement}return!1}function u(S){if(!S||S===document.body||S===document.documentElement)return!1;let C=S.tagName.toLowerCase();return!(C==="script"||C==="style"||C==="link"||C==="meta"||S.classList.contains("__hf-pick-highlight")||S.closest(Va)||l(S))}function m(S){return!!S?.closest(za)}function f(S){let C=S;if(C.id)return`#${C.id}`;let F=S.getAttribute("data-composition-id");if(F)return`[data-composition-id="${CSS.escape(F)}"]`;let T=S.getAttribute("data-composition-src");if(T)return`[data-composition-src="${CSS.escape(T)}"]`;let k=S.getAttribute("data-track-index");if(k)return`[data-track-index="${CSS.escape(k)}"]`;let G=S.tagName.toLowerCase(),j=S.parentElement;if(!j)return G;let ie=j.querySelectorAll(`:scope > ${G}`);if(ie.length===1)return G;for(let P=0;P<ie.length;P+=1)if(ie[P]===S)return`${G}:nth-of-type(${P+1})`;return G}function g(S){let C=S.tagName.toLowerCase(),F=(S.textContent??"").trim().replace(/\\s+/g," "),T=(k,G)=>k.length>G?`${k.slice(0,G-1)}\\u2026`:k;return C==="h1"||C==="h2"||C==="h3"?"Heading":C==="p"||C==="span"||C==="div"?F.length>0?T(F,56):"Text":C==="img"?"Image":C==="video"?"Video":C==="audio"?"Audio":C==="svg"?"Shape":S.getAttribute("data-composition-src")?"Composition":C==="section"?"Section":`${C.charAt(0).toUpperCase()}${C.slice(1)}`}function A(S,C,F){let T=typeof F=="number"&&F>0?F:8,k=[];if(document.elementsFromPoint)k=document.elementsFromPoint(S,C);else if(document.elementFromPoint){let ie=document.elementFromPoint(S,C);k=ie?[ie]:[]}if(m(k[0]??null))return[];let G={},j=[];for(let ie=0;ie<k.length;ie+=1){let P=k[ie];if(!u(P))continue;let se=`${P.tagName}::${P.id||""}::${ie}`;if(!G[se]&&(G[se]=!0,j.push(P),j.length>=T))break}return j}function y(S){let C=S.getBoundingClientRect(),F={};for(let k=0;k<S.attributes.length;k+=1){let G=S.attributes[k];G.name.startsWith("data-")&&(F[G.name]=G.value)}return{id:S.id||null,tagName:S.tagName.toLowerCase(),selector:f(S),label:g(S),boundingBox:{x:C.left,y:C.top,width:C.width,height:C.height},textContent:S.textContent?S.textContent.trim().slice(0,200):null,src:S.getAttribute("src")||S.getAttribute("data-composition-src")||null,dataAttributes:F}}function x(S,C,F){return A(S,C,F).map(y)}function w(S){if(!e)return;let F=A(S.clientX,S.clientY,1)[0]??(S.target instanceof Element?S.target:null);if(!u(F)||n===F)return;n&&n.classList.remove("__hf-pick-highlight"),n=F,F.classList.add("__hf-pick-highlight");let T=y(F);c(T),t.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:T})}function N(S){if(!e)return;S.preventDefault(),S.stopPropagation(),S.stopImmediatePropagation();let C=x(S.clientX,S.clientY,8);C.length!==0&&(c(C[0]??null),t.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:C,selectedIndex:0,point:{x:S.clientX,y:S.clientY}}))}function L(S){S.key==="Escape"&&(B(),t.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function $(){e||(e=!0,i=document.createElement("style"),i.textContent=[".__hf-pick-highlight { outline: 2px solid #4f8cf7 !important; outline-offset: 2px; cursor: crosshair !important; }",".__hf-pick-active * { cursor: crosshair !important; }"].join(`\n`),document.head.appendChild(i),document.body.classList.add("__hf-pick-active"),document.addEventListener("mousemove",w,!0),document.addEventListener("click",N,!0),document.addEventListener("keydown",L,!0),s("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function B(){e&&(e=!1,n&&(n.classList.remove("__hf-pick-highlight"),n=null),i&&(i.remove(),i=null),document.body.classList.remove("__hf-pick-active"),document.removeEventListener("mousemove",w,!0),document.removeEventListener("click",N,!0),document.removeEventListener("keydown",L,!0),s("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function _(){window.__HF_PICKER_API={enable:$,disable:B,isActive:()=>e,getHovered:()=>r,getSelected:()=>o,getCandidatesAtPoint:(S,C,F)=>Number.isFinite(S)&&Number.isFinite(C)?x(S,C,F):[],pickAtPoint:(S,C,F)=>{if(!Number.isFinite(S)||!Number.isFinite(C))return null;let T=x(S,C,8);if(!T.length)return null;let k=Math.max(0,Math.min(T.length-1,Number(F??0))),G=T[k]??null;return G?(a(G),t.postMessage({source:"hf-preview",type:"element-picked",elementInfo:G}),B(),G):null},pickManyAtPoint:(S,C,F)=>{if(!Number.isFinite(S)||!Number.isFinite(C))return[];let T=x(S,C,8);if(!T.length)return[];let k=[],G=Array.isArray(F)?F:[0];for(let j of G){let ie=Math.max(0,Math.min(T.length-1,Math.floor(Number(j)))),P=T[ie];if(!P)continue;k.some(Se=>Se.selector===P.selector&&Se.tagName===P.tagName)||k.push(P)}return k.length?(a(k[0]??null),t.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:k}),B(),k):[]}},s("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:$,disablePickMode:B,installPickerApi:_}}var qa=["width","height","top","left","right","bottom","inset","object-fit","object-position","z-index","opacity","visibility","filter","mix-blend-mode","backdrop-filter","border-radius","overflow","clip-path","mask","mask-image","mask-size","mask-position","mask-repeat","transform","transform-origin","translate","rotate","scale","box-sizing"];function ut(t,e){let n=Number.isFinite(e)&&e>0?e:30,i=Number.isFinite(t)&&t>0?t:0;return Math.floor(i*n+1e-9)/n}function vr(t,e,n=qa){for(let i of n){let r=e.getPropertyValue(i);r&&t.setProperty(i,r)}}function _t(t,e,n){let i=t?.[e];return typeof i=="function"?Number(i.call(t))||n:typeof i=="number"&&Number.isFinite(i)?i:(i!=null&&v("runtime.player.nonConformantNum",{prop:e,actual:typeof i}),n)}function ke(t,e){let n=t?.[e];if(typeof n=="function"){n.call(t);return}n!==void 0&&v("runtime.player.nonConformantVoid",{method:e,actual:typeof n})}function Tt(t,e,n){if(t){for(let i of Object.values(t))if(!(!i||i===e))try{n(i)}catch(r){v("runtime.player.site1",r)}}}function kr(t,e,n){let i=ut(e,n);return ke(t,"pause"),typeof t.totalTime=="function"?t.totalTime(i,!1):typeof t.seek=="function"&&t.seek(i,!1),i}function $a(t,e,n,i){let r=[];Tt(t,e,o=>{ke(o,"play"),r.push(o)});try{return kr(e,n,i)}finally{for(let o of r)try{ke(o,"pause")}catch(s){v("runtime.player.site2",s)}}}function Ka(t,e){Tt(t,e,n=>{ke(n,"play")})}function Rr(t){return{_timeline:null,play:()=>{let e=t.getTimeline();if(!e||t.getIsPlaying())return;let n=Math.max(0,Number(t.getSafeDuration?.()??_t(e,"duration",0))||0);n>0&&Math.max(0,_t(e,"time",0))>=n&&(ke(e,"pause"),typeof e.seek=="function"&&e.seek(0,!1),t.onDeterministicSeek(0),t.setIsPlaying(!1),t.onSyncMedia(0,!1),t.onRenderFrameSeek(0)),typeof e.timeScale=="function"&&e.timeScale(t.getPlaybackRate()),ke(e,"play"),Tt(t.getTimelineRegistry?.(),e,i=>{typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),ke(i,"play")}),t.onDeterministicPlay(),t.setIsPlaying(!0),t.onShowNativeVideos(),t.onStatePost(!0)},pause:()=>{let e=t.getTimeline();if(!e)return;ke(e,"pause"),Tt(t.getTimelineRegistry?.(),e,i=>{ke(i,"pause")});let n=Math.max(0,_t(e,"time",0));t.onDeterministicSeek(n),t.onDeterministicPause(),t.setIsPlaying(!1),t.onSyncMedia(n,!1),t.onRenderFrameSeek(n),t.onStatePost(!0)},seek:(e,n)=>{let i=t.getTimeline();if(!i)return;let r=Math.max(0,Number(e)||0),o=t.getIsPlaying(),s=$a(t.getTimelineRegistry?.(),i,r,t.getCanonicalFps());t.onDeterministicSeek(s),n?.keepPlaying&&o?(typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),ke(i,"play"),Tt(t.getTimelineRegistry?.(),i,c=>{typeof c.timeScale=="function"&&c.timeScale(t.getPlaybackRate()),ke(c,"play")}),t.onDeterministicPlay(),t.onShowNativeVideos(),t.onSyncMedia(s,!0)):(t.setIsPlaying(!1),t.onSyncMedia(s,!1)),t.onRenderFrameSeek(s),t.onStatePost(!0)},renderSeek:e=>{let n=t.getTimeline(),i=t.getCanonicalFps(),r=n?(Ka(t.getTimelineRegistry?.(),n),kr(n,e,i)):ut(Math.max(0,Number(e)||0),i);t.onDeterministicSeek(r),t.setIsPlaying(!1),t.onSyncMedia(r,!1),t.onRenderFrameSeek(r),t.onStatePost(!0)},getTime:()=>_t(t.getTimeline(),"time",0),getDuration:()=>_t(t.getTimeline(),"duration",0),isPlaying:()=>t.getIsPlaying(),setPlaybackRate:e=>t.setPlaybackRate(e),getPlaybackRate:()=>t.getPlaybackRate()}}function Dr(){return{capturedTimeline:null,isPlaying:!1,currentTime:0,deterministicAdapters:[],canonicalFps:30,bridgeMuted:!1,bridgeVolume:1,mediaOutputMuted:!1,nativeMediaSyncDisabled:!1,webAudioMediaDisabled:!1,mediaAutoplayBlockedPosted:!1,mediaForceSyncNextTick:!1,playbackRate:1,bridgeLastPostedFrame:-1,bridgeLastPostedAt:0,bridgeLastPostedPlaying:!1,bridgeLastPostedMuted:!1,bridgeMaxPostIntervalMs:80,controlBridgeHandler:null,beforeUnloadHandler:null,injectedCompStyles:[],injectedCompScripts:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,transportClock:null,transportRafId:null}}var Ja=new Set(["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"]);function Zn(t){return t.id||t.getAttribute("data-hf-id")||null}function Qn(t){if(t==null)return null;let e=Number(t);return Number.isFinite(e)?e:null}function Ya(t,e){let n=t.getAttribute("data-composition-id");if(!n)return null;let i=Number(e[n]?.duration?.());return Number.isFinite(i)&&i>0?i:null}function Xa(t){if(!(t instanceof HTMLMediaElement)||!Number.isFinite(t.duration))return null;let e=Qn(t.getAttribute("data-playback-start"))??Qn(t.getAttribute("data-media-start"))??0;return t.duration>e?t.duration-e:null}function Qa(t,e,n,i){let r=Qn(t.getAttribute("data-duration"));return r!=null&&r>0?r:Ya(t,e)??Xa(t)??Math.max(0,n-i)}function Za(t){for(let[e,n]of t){let i=e.parentElement;for(;i;){let r=t.get(i);if(r){n.parentId=r.id,r.children.push(n);break}i=i.parentElement}}}function Ir(t){let{startResolver:e,timelineRegistry:n,rootDuration:i}=t,r=new Map,o=document.querySelector("[data-composition-id]"),s=0;for(let c of document.querySelectorAll("[data-start]")){if(c===o||Ja.has(c.tagName))continue;let a=e.resolveStartForElement(c,0);if(Qa(c,n,i,a)<=0)continue;let l={id:Zn(c)??`__clip-${s++}`,element:c,parentId:null,children:[]};r.set(c,l)}return Za(r),{roots:Array.from(r.values()).filter(c=>c.parentId===null)}}var el="data-hf-authored-duration",tl="data-hf-authored-end";function it(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function nl(t){return it(t.getAttribute("data-duration"))}function il(t){return it(t.getAttribute("data-end"))}function rl(t){return it(t.getAttribute(el))}function ol(t){return it(t.getAttribute(tl))}function sl(t){let e=(t??"").trim();if(!e)return null;let n=it(e);if(n!=null)return{kind:"absolute",value:n};let i=e.match(/^([A-Za-z0-9_.:-]+)(?:\\s*([+-])\\s*([0-9]*\\.?[0-9]+))?$/);if(!i)return null;let r=(i[1]??"").trim();if(!r)return null;let o=i[2]??"+",s=i[3]??"0",c=Number.parseFloat(s),a=Number.isFinite(c)?Math.max(0,c):0,l=o==="-"?-a:a;return{kind:"reference",refId:r,offset:l}}function ze(t){let e=t.timelineRegistry??{},n=t.includeAuthoredTimingAttrs??!1,i=new WeakMap,r=new WeakMap,o=new Set,s=u=>{let m=document.getElementById(u);return m||(document.querySelector(`[data-composition-id="${CSS.escape(u)}"]`)??null)},c=u=>{let m=r.get(u);if(m!==void 0)return m;let f=null,g=nl(u)??(n?rl(u):null);if(g!=null&&g>0&&(f=g),f==null||f<=0){let A=il(u)??(n?ol(u):null);if(A!=null){let y=l(u,0),x=A-y;Number.isFinite(x)&&x>0&&(f=x)}}if((f==null||f<=0)&&u instanceof HTMLMediaElement){let A=it(u.getAttribute("data-playback-start"))??it(u.getAttribute("data-media-start"))??0;Number.isFinite(u.duration)&&u.duration>A&&(f=(u.duration-A)/Nt(u))}if(f==null||f<=0){let A=u.getAttribute("data-composition-id");if(A){let y=e[A]??null;if(y&&typeof y.duration=="function")try{let x=Number(y.duration());Number.isFinite(x)&&x>0&&(f=x)}catch(x){v("runtime.startResolver.site1",x)}}}return f!=null&&Number.isFinite(f)&&f>0?(r.set(u,f),f):(r.set(u,null),null)},a=(u,m)=>{if(u.hasAttribute("data-composition-id")){let g=u.parentElement?.closest("[data-composition-id]");return g?l(g,m):0}let f=u.closest("[data-composition-id]");return f?l(f,m):0},l=(u,m)=>{let f=i.get(u);if(f!==void 0)return f??m;if(o.has(u))return m;o.add(u);try{let g=sl(u.getAttribute("data-start"));if(!g){if(u.hasAttribute("data-composition-id")){let N=u.parentElement;if(N&&(N.hasAttribute("data-composition-src")||N.hasAttribute("data-composition-id"))){let L=l(N,m);return i.set(u,L),L}}return i.set(u,m),m}if(g.kind==="absolute"){let N=Math.max(0,g.value),L=Math.max(0,a(u,m)+N);return i.set(u,L),L}let A=s(g.refId);if(!A)return i.set(u,m),m;let y=l(A,0),x=c(A);if(x==null||x<=0){let N=Math.max(0,y+g.offset);return i.set(u,N),N}let w=Math.max(0,y+x+g.offset);return i.set(u,w),w}finally{o.delete(u)}};return{resolveStartForElement:(u,m=0)=>l(u,Math.max(0,m)),resolveDurationForElement:u=>c(u)}}function ei(t){let e=t.trim().toLowerCase();return!(!e||e==="main"||e.includes("caption")||e.includes("ambient"))}var al="data-hf-authored-duration",ll="data-hf-authored-end";function Ce(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function ti(t){return Ce(t.getAttribute("data-duration"))??Ce(t.getAttribute(al))}function Pr(t){return Ce(t.getAttribute("data-end"))??Ce(t.getAttribute(ll))}function ni(...t){let e=t.filter(n=>Number.isFinite(n??null));return e.length===0?null:Math.max(...e)}var Or={composition:0,video:1,image:2,element:3,audio:4};function ul(t){if(t.length===0)return;let e=new Map;for(let s of t){let c=e.get(s.track)??new Set;c.add(s.kind),e.set(s.track,c)}if(!Array.from(e.values()).some(s=>s.size>1))return;let i=0,r=new Map,o=[...e.keys()].sort((s,c)=>s-c);for(let s of o){let c=e.get(s);if(c.size===1)r.set(`${s}:${[...c][0]}`,i++);else{let a=[...c].sort((l,u)=>(Or[l]??99)-(Or[u]??99));for(let l of a)r.set(`${s}:${l}`,i++)}}for(let s of t){let c=`${s.track}:${s.kind}`,a=r.get(c);a!=null&&(s.track=a)}}function vt(t){let e=String(t??"").trim();if(!e)return null;let n=e.toLowerCase();if(n.startsWith("data:")||n.startsWith("javascript:"))return null;try{return new URL(e,document.baseURI).toString()}catch{return e}}function Br(t){let e=t.getAttribute("src")??t.getAttribute("data-src");if(e)return vt(e);let n=t.getAttribute("data-composition-src");if(n)return vt(n);let i=t.querySelector("img[src], video[src], audio[src], source[src]");return i?vt(i.getAttribute("src")):null}function cl(t){let e=t.className;return typeof e!="string"?null:e.split(/\\s+/).map(n=>n.trim()).find(n=>n&&n!=="clip"&&!n.startsWith("__hf-"))??null}function dl(t){if(!t)return null;try{return new URL(t,document.baseURI).pathname.split("/").filter(Boolean).at(-1)??null}catch{return t.split(/[\\\\/]/).filter(Boolean).at(-1)??null}}function fl(t){let e=t.textContent?.replace(/\\s+/g," ").trim();return e?e.length>32?`${e.slice(0,31)}...`:e:null}function Lt(t){let e=t.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return e?e.replace(/\\b\\w/g,n=>n.toUpperCase()):t}function ml(t,e,n){let i=t.getAttribute("data-timeline-label")??t.getAttribute("data-label")??t.getAttribute("aria-label")??null;if(i?.trim())return i.trim();let r=t.getAttribute("data-composition-id");if(r)return Lt(r);let o=t.id;if(o)return Lt(o);let s=cl(t);if(s)return Lt(s);let c=dl(Br(t));if(c)return Lt(c);let a=fl(t);return a||`${Lt(e)} ${n+1}`}function Hr(t){let n=window.__timelines??{},i=ze({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),r=O=>{if(!O)return null;let D=n[O]??null;if(!D||typeof D.duration!="function")return null;try{let W=Number(D.duration());return Number.isFinite(W)&&W>0?W:null}catch{return null}},o=O=>{let D=Ce(O.getAttribute("data-duration"));if(D!=null&&D>0)return D;let W=Ce(O.getAttribute("data-playback-start"))??Ce(O.getAttribute("data-media-start"))??0;return Number.isFinite(O.duration)&&O.duration>W?Math.max(0,(O.duration-W)/Nt(O)):null},s=()=>{let O=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(O.length===0)return null;let D=0;for(let W of O){let Q=W.hasAttribute("data-hf-auto-start")?i.resolveStartForElement(W,0):Math.max(0,Number(W.getAttribute("data-start")??0)||0);if(!Number.isFinite(Q))continue;let ae=o(W);ae==null||ae<=0||(D=Math.max(D,Math.max(0,Q)+ae))}return D>0?D:null},c=(O,D)=>{let W=[],Q=null,ae=null,q=null,z=O.parentElement;for(;z;){let X=z.getAttribute("data-composition-id");X&&(W.push(X),!q&&z!==D&&(q=X),Q==null&&(Q=i.resolveStartForElement(z,0)),ae==null&&(ae=Ce(z.getAttribute("data-duration"))??r(X)??null)),z=z.parentElement}return{parentCompositionId:q,compositionAncestors:W.reverse(),inheritedStart:Q,inheritedDuration:ae}},a=document.querySelector("[data-composition-id]"),l=Array.from(document.querySelectorAll("[data-composition-id]")),u=a?.getAttribute("data-composition-id")??null,m=a?i.resolveStartForElement(a,0):0,f=s(),g=f!=null?Math.max(0,f-Math.max(0,m)):null,A=r(u),y=ti(a??document.body),x=ni(...l.filter(O=>O!==a).map(O=>{let D=i.resolveStartForElement(O,0),W=i.resolveDurationForElement(O)??r(O.getAttribute("data-composition-id"))??null;return!Number.isFinite(D)||W==null||W<=0?null:Math.max(0,D)+W})),w=x!=null?Math.max(0,x-Math.max(0,m)):null,N=typeof A=="number"&&Number.isFinite(A)&&A>0?A:null,L=typeof y=="number"&&Number.isFinite(y)&&y>0?y:null,$=typeof g=="number"&&Number.isFinite(g)&&g>0?g:null,B=typeof w=="number"&&Number.isFinite(w)&&w>0?w:null,_=ni($,B),S=N!=null&&_!=null&&N>_+1,F=L??(S?_:ni(N,$,B))??null,k=(F!=null?m+F:null)??(typeof f=="number"&&Number.isFinite(f)&&f>0?f:null),G=(O,D)=>!Number.isFinite(D)||D<=0?0:k==null||!Number.isFinite(k)?D:!Number.isFinite(O)||O>=k?0:Math.max(0,Math.min(D,k-O)),j=[],ie=[],P=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),se=0;for(let O=0;O<P.length;O+=1){let D=P[O];if(D===a||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(D.tagName))continue;let W=c(D,a),Q=i.resolveStartForElement(D,W.inheritedStart??0),ae=D.getAttribute("data-composition-id"),q=ti(D);if((q==null||q<=0)&&ae&&ae!==u&&(q=r(ae)),(q==null||q<=0)&&D instanceof HTMLMediaElement){let Me=Ce(D.getAttribute("data-playback-start"))??Ce(D.getAttribute("data-media-start"))??0;Number.isFinite(D.duration)&&D.duration>0&&(q=Math.max(0,D.duration-Me))}if(q==null||q<=0){let Me=W.inheritedDuration;if(Me!=null&&Me>0){let He=(W.inheritedStart??0)+Me;q=Math.max(0,He-Q)}}if(q==null||q<=0||(q=G(Q,q),q<=0))continue;let z=Q+q;se=Math.max(se,z);let X=D.tagName.toLowerCase(),Ie=ae&&ae!==u?"composition":X==="video"?"video":X==="audio"?"audio":X==="img"?"image":"element";j.push({id:Zn(D)??ae??null,label:ml(D,Ie,j.length),start:Q,duration:q,track:Number.parseInt(D.getAttribute("data-track-index")??D.getAttribute("data-track")??String(O),10)||0,kind:Ie,tagName:X,compositionId:D.getAttribute("data-composition-id"),compositionAncestors:W.compositionAncestors,parentCompositionId:W.parentCompositionId,nodePath:null,compositionSrc:vt(D.getAttribute("data-composition-src")),assetUrl:Br(D),timelineRole:D.getAttribute("data-timeline-role"),timelineLabel:D.getAttribute("data-timeline-label"),timelineGroup:D.getAttribute("data-timeline-group"),timelinePriority:Ce(D.getAttribute("data-timeline-priority"))})}let Se=new Set(j.map(O=>O.id)),H=a?.getAttribute("data-composition-id")??null,U=H?n[H]??null:null;if(U&&a){let O=U;if(typeof O.getChildren=="function")try{let D=O.getChildren(!0,!0,!1)??[],W=new Map;for(let q of a.children){let z=q;if(!z.id)continue;let X=z.tagName.toLowerCase();X==="script"||X==="style"||X==="link"||W.set(z,{id:z.id,start:1/0,end:-1/0})}let Q=q=>{let z=q;for(;z;){if(W.has(z))return z;if(z===a)return null;z=z.parentElement}return null};for(let q of D){if(typeof q.targets!="function"||typeof q.startTime!="function"||typeof q.duration!="function")continue;let z=q.startTime(),X=q.parent;for(;X&&X!==U&&typeof X.startTime=="function";)z+=X.startTime(),X=X.parent;let Ie=z+q.duration();if(!(!Number.isFinite(z)||!Number.isFinite(Ie)))for(let Me of q.targets()){if(!(Me instanceof Element))continue;let bt=Q(Me);if(!bt)continue;let He=W.get(bt);He&&(He.start=Math.min(He.start,z),He.end=Math.max(He.end,Ie))}}let ae=j.length>0?Math.max(...j.map(q=>q.track))+1:0;for(let[q,z]of W){if(z.start===1/0||z.end===-1/0)continue;let X=q;if(Se.has(X.id))continue;let Ie=Math.max(0,z.end-z.start);if(Ie<=0)continue;let Me=G(z.start,Ie);Me<=0||(se=Math.max(se,z.start+Me),j.push({id:X.id,label:X.getAttribute("data-timeline-label")??X.getAttribute("data-label")??X.getAttribute("aria-label")??X.id,start:z.start,duration:Me,track:Number.parseInt(X.getAttribute("data-track-index")??X.getAttribute("data-track")??"",10)||ae,kind:"element",tagName:X.tagName.toLowerCase(),compositionId:X.getAttribute("data-composition-id"),compositionAncestors:H?[H]:[],parentCompositionId:H,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:X.getAttribute("data-timeline-role"),timelineLabel:X.getAttribute("data-timeline-label"),timelineGroup:X.getAttribute("data-timeline-group"),timelinePriority:Ce(X.getAttribute("data-timeline-priority"))}),Se.add(X.id))}}catch(D){v("runtime.timeline.site1",D)}}if(a&&F!=null&&F>0){let O=j.length>0?Math.max(...j.map(D=>D.track))+1:0;for(let D of a.children){let W=D;if(!W.id||Se.has(W.id))continue;let Q=W.getAttribute("data-timeline-role");if(Q!=="overlay"&&Q!=="persistent-overlay")continue;let ae=W.tagName.toLowerCase();if(ae==="script"||ae==="style"||ae==="link"||ae==="meta"||window.getComputedStyle(W).display==="none")continue;let z=G(0,F);z<=0||(se=Math.max(se,z),j.push({id:W.id,label:W.getAttribute("data-timeline-label")??W.getAttribute("data-label")??W.getAttribute("aria-label")??W.id,start:0,duration:z,track:Number.parseInt(W.getAttribute("data-track-index")??W.getAttribute("data-track")??"",10)||O,kind:"element",tagName:ae,compositionId:W.getAttribute("data-composition-id"),compositionAncestors:H?[H]:[],parentCompositionId:H,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:Q,timelineLabel:W.getAttribute("data-timeline-label"),timelineGroup:W.getAttribute("data-timeline-group"),timelinePriority:Ce(W.getAttribute("data-timeline-priority"))}),Se.add(W.id))}}ul(j);for(let O of l){if(O===a)continue;let D=O.getAttribute("data-composition-id");if(!D||!ei(D))continue;let W=i.resolveStartForElement(O,0),Q=ti(O);if((Q==null||Q<=0)&&Pr(O)!=null){let X=Pr(O);Q=Math.max(0,X-W)}let ae=r(D),q=Q&&Q>0?Q:ae;if(q==null||q<=0)continue;let z=G(W,q);z<=0||ie.push({id:D,label:O.getAttribute("data-label")??D,start:W,duration:z,thumbnailUrl:vt(O.getAttribute("data-thumbnail-url")),avatarName:null})}let V=Math.max(1,se||1,F??0);return{source:"hf-preview",type:"timeline",durationInFrames:S&&L==null?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(V*Math.max(1,t.canonicalFps))),clips:j,scenes:ie,compositionWidth:Ce(a?.getAttribute("data-width"))??1920,compositionHeight:Ce(a?.getAttribute("data-height"))??1080}}var ce=Da(ds(),1),fs=ce.default,lp=ce.default.stringify,up=ce.default.fromJSON,cp=ce.default.plugin,dp=ce.default.parse,fp=ce.default.list,mp=ce.default.document,pp=ce.default.comment,hp=ce.default.atRule,xp=ce.default.rule,gp=ce.default.decl,yp=ce.default.root,bp=ce.default.CssSyntaxError,Sp=ce.default.Declaration,Ap=ce.default.Container,Ep=ce.default.Processor,wp=ce.default.Document,Cp=ce.default.Comment,Fp=ce.default.Warning,Mp=ce.default.AtRule,Np=ce.default.Result,_p=ce.default.Input,Tp=ce.default.Rule,Lp=ce.default.Root,vp=ce.default.Node;var _i="data-hf-authored-id";function Ti(t){return t.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function Li(t){return t.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function Iu(t){return t&&t.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function ms(t){let e=t.trim();return e?Array.from(new Set([e,Iu(e)])).filter(Boolean):[]}function Pu(t){return!!t&&/[\\w-]/.test(t)}function Ou(t,e,n){let i=ms(e).sort((c,a)=>a.length-c.length);if(i.length===0)return t;let r="",o=0,s=null;for(let c=0;c<t.length;c+=1){let a=t[c],l=c>0?t[c-1]:"";if(s){r+=a,a===s&&l!=="\\\\"&&(s=null);continue}if(a===\'"\'||a==="\'"){s=a,r+=a;continue}if(a==="["){o+=1,r+=a;continue}if(a==="]"){o=Math.max(0,o-1),r+=a;continue}if(a==="#"&&o===0){let u=i.find(m=>t.startsWith(m,c+1));if(u){let m=t[c+1+u.length];if(!Pu(m)){r+=n,c+=u.length;continue}}}r+=a}return r}function Bu(t,e){let n=e?.trim();return n?Ou(t,n,`[${_i}="${Li(n)}"]`):t}function Hu(t,e,n,i,r){let o=Bu(t,i),s=Wu(o,e,n),c=s.trim();if(!c||/^(html|body|:root|\\*)$/i.test(c))return t;let a=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*=\\\\s*(["\'])${Ti(n)}\\\\1\\\\s*\\\\]`,"g");if(a.test(c))return s.replace(a,e);let l=s.match(/^\\s*/)?.[0]??"",u=s.match(/\\s*$/)?.[0]??"";if(r){let m=i?`[${_i}="${Li(i)}"]`:null;if(m&&c.startsWith(m)){let f=c.slice(m.length);return`${l}${e}${m}${f}${u}`}}return`${l}${e} ${c}${u}`}function Wu(t,e,n){let i=Ti(n),r=String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${i}"|\'${i}\')\\s*\\]`,o=String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`;return t.replace(new RegExp(`${r}(?:${o})+`,"g"),e).replace(new RegExp(`(?:${o})+${r}`,"g"),e)}var Gu=new Set(["keyframes","-webkit-keyframes","font-face"]);function Uu(t){return t?.type==="atrule"}function Vu(t){let e=t.parent;for(;e;){if(Uu(e)&&Gu.has(e.name.toLowerCase()))return!0;e=e.parent}return!1}function vi(t,e,n,i,r){let o=e.trim();if(!t||!o)return t;let s=n||`[data-composition-id="${Li(o)}"]`,c=fs.parse(t);return c.walkRules(a=>{Vu(a)||(a.selectors=a.selectors.map(l=>Hu(l,s,o,i,r?.compoundAuthoredRoot)))}),c.toResult({map:!1}).css}function ps(t,e,n="[HyperFrames] composition script error:",i,r=e,o){let s=JSON.stringify(e),c=JSON.stringify(r),a=JSON.stringify(n),l=Ti(e),u=JSON.stringify(o?.trim()||null),m=JSON.stringify(i??null),f=JSON.stringify(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${l}"|\'${l}\')\\s*\\]`),g=JSON.stringify(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),A=JSON.stringify(ms(o?.trim()||""));return`(function(){\n var __hfCompId = ${s};\n var __hfTimelineCompId = ${c};\n var __hfErrorLabel = ${a};\n var __hfAuthoredRootId = ${u};\n var __hfAuthoredRootAttr = ${JSON.stringify(_i)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${m} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${f};\n var __hfTimingSelectorPattern = ${g};\n var __hfAuthoredRootIdForms = ${A};\n var __hfAuthoredRootSelector = __hfAuthoredRootId\n ? "[" + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(__hfAuthoredRootId) + \'"]\'\n : "";\n var __hfIsSelectorNameChar = function(char) {\n return !!char && /[\\\\w-]/.test(char);\n };\n var __hfReplaceAuthoredRootIdSelectors = function(selector) {\n if (!__hfAuthoredRootSelector || !__hfAuthoredRootIdForms.length || typeof selector !== "string") {\n return selector;\n }\n var result = "";\n var bracketDepth = 0;\n var quote = null;\n for (var index = 0; index < selector.length; index += 1) {\n var char = selector[index];\n var previousChar = index > 0 ? selector[index - 1] : "";\n if (quote) {\n result += char;\n if (char === quote && previousChar !== "\\\\\\\\") {\n quote = null;\n }\n continue;\n }\n if (char === \'"\' || char === "\'") {\n quote = char;\n result += char;\n continue;\n }\n if (char === "[") {\n bracketDepth += 1;\n result += char;\n continue;\n }\n if (char === "]") {\n bracketDepth = Math.max(0, bracketDepth - 1);\n result += char;\n continue;\n }\n if (char === "#" && bracketDepth === 0) {\n var matchedForm = null;\n for (var formIndex = 0; formIndex < __hfAuthoredRootIdForms.length; formIndex += 1) {\n var form = __hfAuthoredRootIdForms[formIndex];\n if (selector.slice(index + 1, index + 1 + form.length) === form) {\n matchedForm = form;\n break;\n }\n }\n if (matchedForm) {\n var nextChar = selector[index + 1 + matchedForm.length];\n if (!__hfIsSelectorNameChar(nextChar)) {\n result += __hfAuthoredRootSelector;\n index += matchedForm.length;\n continue;\n }\n }\n }\n result += char;\n }\n return result;\n };\n var __hfNormalizeSelector = function(selector) {\n if (!__hfCompId || typeof selector !== "string") return selector;\n var normalized = selector\n .replace(new RegExp(__hfRootSelectorPattern + \'(?:\' + __hfTimingSelectorPattern + \')+\', \'g\'), __hfRootSelector)\n .replace(new RegExp(\'(?:\' + __hfTimingSelectorPattern + \')+\' + __hfRootSelectorPattern, \'g\'), __hfRootSelector);\n if (__hfAuthoredRootSelector) {\n normalized = __hfReplaceAuthoredRootIdSelectors(normalized);\n }\n return normalized;\n };\n var __hfFindRoot = function() {\n if (!__hfRoot && __hfRootSelector) {\n __hfRoot = window.document.querySelector(__hfRootSelector);\n }\n return __hfRoot;\n };\n var __hfContains = function(node) {\n var root = __hfFindRoot();\n return !root || node === root || root.contains(node);\n };\n var __hfQueryAll = function(selector) {\n var root = __hfFindRoot();\n if (!root || typeof selector !== "string") {\n return window.document.querySelectorAll(selector);\n }\n return Array.prototype.filter.call(window.document.querySelectorAll(__hfNormalizeSelector(selector)), function(node) {\n return __hfContains(node);\n });\n };\n var __hfQueryOne = function(selector) {\n var matches = __hfQueryAll(selector);\n return matches[0] || null;\n };\n var __hfGetElementById = function(id) {\n var found = window.document.getElementById(id);\n if (found && __hfContains(found)) return found;\n var root = __hfFindRoot();\n if (!root) return found || null;\n var idValue = id + "";\n if (__hfAuthoredRootId && __hfAuthoredRootId === idValue && root.getAttribute && root.getAttribute(__hfAuthoredRootAttr) === idValue) {\n return root;\n }\n if (root.id === idValue) return root;\n if (typeof root.querySelector !== "function") return null;\n try {\n var authoredRootMatch = root.querySelector(\'[\' + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(idValue) + \'"]\');\n if (authoredRootMatch) return authoredRootMatch;\n } catch {}\n if (typeof CSS !== "undefined" && CSS && typeof CSS.escape === "function") {\n try {\n return root.querySelector("#" + CSS.escape(idValue)) || null;\n } catch {}\n }\n try {\n return root.querySelector(\'[id="\' + __hfEscapeAttr(idValue) + \'"]\') || null;\n } catch {}\n return null;\n };\n var __hfScopedDocument = typeof Proxy === "function"\n ? new Proxy(window.document, {\n get: function(target, prop, receiver) {\n if (prop === "querySelector") return __hfQueryOne;\n if (prop === "querySelectorAll") return __hfQueryAll;\n if (prop === "getElementById") return __hfGetElementById;\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n })\n : window.document;\n var __hfTimelineRegistryProxy = null;\n var __hfGetTimelineRegistry = function() {\n window.__timelines = window.__timelines || {};\n if (!__hfCompId || __hfCompId === __hfTimelineCompId || typeof Proxy !== "function") {\n return window.__timelines;\n }\n if (!__hfTimelineRegistryProxy) {\n __hfTimelineRegistryProxy = new Proxy(window.__timelines, {\n get: function(target, prop, receiver) {\n return Reflect.get(target, prop === __hfCompId ? __hfTimelineCompId : prop, target);\n },\n set: function(target, prop, value, receiver) {\n return Reflect.set(target, prop === __hfCompId ? __hfTimelineCompId : prop, value, target);\n },\n });\n }\n return __hfTimelineRegistryProxy;\n };\n var __hfScopedWindow = typeof Proxy === "function"\n ? new Proxy(window, {\n get: function(target, prop, receiver) {\n if (prop === "__timelines") return __hfGetTimelineRegistry();\n return Reflect.get(target, prop, target);\n },\n set: function(target, prop, value, receiver) {\n if (prop === "__timelines") {\n target.__timelines = value || {};\n __hfTimelineRegistryProxy = null;\n return true;\n }\n return Reflect.set(target, prop, value, target);\n },\n })\n : window;\n var __hfResolveGsapTarget = function(target) {\n if (typeof target !== "string") return target;\n return __hfQueryAll(target);\n };\n var __hfScopeTimeline = function(timeline) {\n if (!timeline || timeline.__hfScopedCompositionRoot === __hfFindRoot()) return timeline;\n ["to", "from", "fromTo", "set"].forEach(function(method) {\n var original = timeline[method];\n if (typeof original !== "function") return;\n timeline[method] = function(target) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(target);\n return original.apply(timeline, args);\n };\n });\n try {\n Object.defineProperty(timeline, "__hfScopedCompositionRoot", {\n value: __hfFindRoot(),\n configurable: true,\n });\n } catch {\n // Best-effort: timelines coming from user code may have a frozen target\n // or a non-extensible defineProperty path. Swallow \\u2014 the scoped root\n // is an enrichment, not a correctness invariant for playback.\n }\n return timeline;\n };\n var __hfBaseGsap = typeof gsap === "undefined" ? window.gsap : gsap;\n var __hfScopedGsap = !__hfBaseGsap || typeof Proxy !== "function"\n ? __hfBaseGsap\n : new Proxy(__hfBaseGsap, {\n get: function(target, prop, receiver) {\n if (prop === "timeline") {\n return function() {\n return __hfScopeTimeline(target.timeline.apply(target, arguments));\n };\n }\n if (prop === "to" || prop === "from" || prop === "fromTo" || prop === "set") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return target[prop].apply(target, args);\n };\n }\n if (prop === "utils" && target.utils && typeof Proxy === "function") {\n return new Proxy(target.utils, {\n get: function(utilsTarget, utilsProp, utilsReceiver) {\n if (utilsProp === "toArray") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return utilsTarget.toArray.apply(utilsTarget, args);\n };\n }\n if (utilsProp === "selector") {\n return function(base) {\n var baseEl = typeof base === "string" ? __hfQueryOne(base) : base;\n var root = baseEl || __hfFindRoot();\n return function(selector) {\n if (!root || typeof selector !== "string") return [];\n return Array.prototype.filter.call(\n window.document.querySelectorAll(__hfNormalizeSelector(selector)),\n function(node) {\n return node === root || (typeof root.contains === "function" && root.contains(node));\n },\n );\n };\n };\n }\n var value = Reflect.get(utilsTarget, utilsProp, utilsTarget);\n return typeof value === "function" ? value.bind(utilsTarget) : value;\n },\n });\n }\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n });\n var __hfBaseHyperframes = window.__hyperframes;\n var __hfScopedHyperframes = !__hfBaseHyperframes\n ? __hfBaseHyperframes\n : Object.assign({}, __hfBaseHyperframes, {\n getVariables: function() {\n var byComp = window.__hfVariablesByComp;\n var scoped = byComp && __hfTimelineCompId ? byComp[__hfTimelineCompId] : null;\n return scoped ? Object.assign({}, scoped) : {};\n },\n });\n var __hfRun = function() {\n try {\n (function(document, gsap, window, __hyperframes) {\n${t.replace(/<\\/(script)/gi,"<\\\\/$1")}\n }).call(window, __hfScopedDocument, __hfScopedGsap, __hfScopedWindow, __hfScopedHyperframes);\n } catch (_err) {\n console.error(__hfErrorLabel, __hfCompId, _err);\n }\n };\n __hfFindRoot();\n __hfRun();\n})();`}function hs(){if(typeof document>"u")return{};let t=ki(document.documentElement),e=zu();return{...t,...e}}function ki(t){if(!t)return{};let e=t.getAttribute("data-composition-variables");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}if(!Array.isArray(n))return{};let i={};for(let r of n){if(!r||typeof r!="object")continue;let o=r;typeof o.id!="string"||!("default"in o)||(i[o.id]=o.default)}return i}function zu(){if(typeof window>"u")return{};let t=window.__hfVariables;return!t||typeof t!="object"||Array.isArray(t)?{}:t}var ju=8e3,qu=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,$u=/\\burl\\(\\s*(["\']?)([^)"\']+)\\1\\s*\\)/g,Ku=["src","href"];function Ju(t){return!t||t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//")||t.startsWith("data:")||t.startsWith("#")||t.startsWith("/")}function gs(t,e){if(!e)return t;let n=t.trim();if(Ju(n)||!n.startsWith("../")&&n!=="..")return t;try{return new URL(n,e).href}catch{return t}}function ys(t,e){return!e||!t?t:t.replace($u,(n,i,r)=>{let o=gs(r||"",e);return o===r?n:`url(${i||""}${o}${i||""})`})}function Yu(t,e){for(let n of Array.from(t.querySelectorAll("[src], [href]")))for(let i of Ku){let r=n.getAttribute(i);if(r==null)continue;let o=gs(r,e);o!==r&&n.setAttribute(i,o)}}function Xu(t,e){for(let n of Array.from(t.querySelectorAll("[style]"))){let i=n.getAttribute("style");if(i==null)continue;let r=ys(i,e);r!==i&&n.setAttribute("style",r)}}function Qu(t,e){for(let n of Array.from(t.querySelectorAll("style"))){let i=n.textContent||"",r=ys(i,e);r!==i&&(n.textContent=r)}}function bs(t,e){if(e){Yu(t,e),Xu(t,e),Qu(t,e);for(let n of Array.from(t.querySelectorAll("template")))bs(n.content,e)}}function Zu(t,e){return`${t}__hf${e}`}var ec=t=>new Promise(e=>{let n=!1,i=Date.now(),r=null,o=s=>{n||(n=!0,r!=null&&window.clearTimeout(r),e({status:s,elapsedMs:Math.max(0,Date.now()-i)}))};t.addEventListener("load",()=>o("load"),{once:!0}),t.addEventListener("error",()=>o("error"),{once:!0}),r=window.setTimeout(()=>o("timeout"),ju)});function Ri(t){for(;t.firstChild;)t.removeChild(t.firstChild);t.textContent=""}var tc=["data-composition-id","data-composition-file","data-start","data-duration","data-end","data-track-index","data-track","data-composition-src","data-hf-authored-duration","data-hf-authored-end"];function nc(t){let e=document.importNode(t,!0),n=e.getAttribute("id")?.trim();for(let o of tc)e.removeAttribute(o);n&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",n)),e.setAttribute("data-hf-inner-root","true");let i=e.getAttribute("data-width"),r=e.getAttribute("data-height");return e.style.width=i?`${i}px`:"100%",e.style.height=r?`${r}px`:"100%",e}function xs(t,e){let n=t.trim();if(!n)return t;try{return qu.test(n)?new URL(n,document.baseURI).toString():e?new URL(n,e).toString():new URL(n,document.baseURI).toString()}catch{return t}}function ic(t){let e=t.getAttribute("data-variable-values");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}return!n||typeof n!="object"||Array.isArray(n)?{}:n}function Fn(t){let e=(t.getAttribute("data-composition-id")||"").trim()||null;return{authoredCompositionId:(t.getAttribute("data-hf-original-composition-id")||e||"").trim()||null,runtimeCompositionId:e}}function rc(t){let e=new Map;for(let n of t){let i=Fn(n).authoredCompositionId||"";i&&e.set(i,(e.get(i)||0)+1)}return e}function Ss(t){let e=Fn(t).authoredCompositionId;return e?!!document.querySelector(`template#${CSS.escape(e)}-template`):!1}function oc(t){return!!t.querySelector(\'[data-hf-inner-root="true"]\')}function sc(t){return t.hasAttribute("data-composition-src")?!0:Ss(t)?t.children.length===0||t.hasAttribute("data-hf-original-composition-id")?!0:oc(t):!1}function Ii(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(e=>e.hasAttribute("data-composition-src")?!0:Ss(e))}function As(){let t=window.__hfVariablesByComp;if(!t)return;let e=new Set(Ii().map(n=>Fn(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(t))e.has(n)||delete t[n]}function Es(t,e=rc(t)){let n=new Map,i=new Map;for(let r of t){let{authoredCompositionId:o,runtimeCompositionId:s}=Fn(r),c=sc(r);if(!o){i.set(r,{authoredCompositionId:null,runtimeCompositionId:s});continue}let a=(e.get(o)||0)>1,l=s||o;if(c){let u=a?(n.get(o)||0)+1:0;a&&n.set(o,u),l=a?Zu(o,u):o,a?r.setAttribute("data-hf-original-composition-id",o):r.removeAttribute("data-hf-original-composition-id"),r.setAttribute("data-composition-id",l),s&&s!==l&&window.__hfVariablesByComp&&delete window.__hfVariablesByComp[s]}i.set(r,{authoredCompositionId:o,runtimeCompositionId:l})}return i}async function Di(t){let e=null;t.authoredCompositionId&&(e=Array.from(t.sourceNode.querySelectorAll("[data-composition-id]")).find(g=>g.getAttribute("data-composition-id")===t.authoredCompositionId)??null);let n=e??t.sourceNode,i=e?.getAttribute("data-composition-id")?.trim()||t.authoredCompositionId||null,r=t.runtimeCompositionId||i||null,o=e?.getAttribute("id")?.trim()||null,s=r?`[data-composition-id="${CSS.escape(r)}"]`:void 0;if(t.headLinks)for(let f of t.headLinks){let g=f.getAttribute("href")||"";g&&(document.head.querySelector(`link[href="${CSS.escape(g)}"]`)||document.head.appendChild(f.cloneNode(!0)))}if(t.headStyles)for(let f of t.headStyles){let g=f.cloneNode(!0);g instanceof HTMLStyleElement&&(i&&(g.textContent=vi(g.textContent||"",i,s,o)),document.head.appendChild(g),t.injectedStyles.push(g))}let c=Array.from(n.querySelectorAll("style"));for(let f of c){let g=f.cloneNode(!0);g instanceof HTMLStyleElement&&(i&&(g.textContent=vi(g.textContent||"",i,s,o)),document.head.appendChild(g),t.injectedStyles.push(g))}let a=[];if(t.headScripts)for(let f of t.headScripts){let g=f.getAttribute("type")?.trim()??"",A=f.getAttribute("src")?.trim()??"";if(A){let y=xs(A,t.compositionUrl);a.push({kind:"external",src:y,type:g})}else{let y=f.textContent?.trim()??"";y&&a.push({kind:"inline",content:y,type:g,scopeCompositionId:i})}}let l=Array.from(n.querySelectorAll("script")),u=[...a];for(let f of l){let g=f.getAttribute("type")?.trim()??"",A=f.getAttribute("src")?.trim()??"";if(A){let y=xs(A,t.compositionUrl);u.push({kind:"external",src:y,type:g})}else{let y=f.textContent?.trim()??"";y&&u.push({kind:"inline",content:y,type:g,scopeCompositionId:i})}f.parentNode?.removeChild(f)}let m=Array.from(n.querySelectorAll("style"));for(let f of m)f.parentNode?.removeChild(f);if(e){let f=e.getAttribute("data-width"),g=e.getAttribute("data-height"),A=t.parseDimensionPx(f),y=t.parseDimensionPx(g);f&&t.host.setAttribute("data-width",f),g&&t.host.setAttribute("data-height",g),A&&t.host instanceof HTMLElement&&(t.host.style.width=A),y&&t.host instanceof HTMLElement&&(t.host.style.height=y),e.hasAttribute("data-timeline-locked")&&t.host.setAttribute("data-timeline-locked",""),t.host.appendChild(nc(e))}else t.hasTemplate?t.host.appendChild(document.importNode(n,!0)):t.host.innerHTML=t.fallbackBodyInnerHtml;if(r){let f={...t.declaredVariableDefaults??{},...ic(t.host)};Object.keys(f).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[r]=f):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[r]}for(let f of u){let g=document.createElement("script");if(f.type&&(g.type=f.type),g.async=!1,f.kind==="external"?g.src=f.src:f.type.toLowerCase()==="module"?g.textContent=f.content:f.scopeCompositionId?g.textContent=ps(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,r||f.scopeCompositionId,o):g.textContent=`(function(){${f.content}})();`,document.body.appendChild(g),t.injectedScripts.push(g),f.kind==="external"){let A=await ec(g);A.status!=="load"&&t.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:t.authoredCompositionId,runtimeCompositionId:t.runtimeCompositionId,hostCompositionSrc:t.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:A.status,elapsedMs:A.elapsedMs}})}}}async function ws(t){let e=Ii();if(As(),e.length===0)return;let n=Es(e),i=e.filter(r=>{if(r.hasAttribute("data-composition-src")||r.children.length>0)return!1;let o=n.get(r)?.authoredCompositionId;return o?!!document.querySelector(`template#${CSS.escape(o)}-template`):!1});if(i.length!==0)for(let r of i){let o=n.get(r),s=o?.authoredCompositionId;if(!s)continue;let c=document.querySelector(`template#${CSS.escape(s)}-template`);Ri(r),await Di({host:r,authoredCompositionId:s,runtimeCompositionId:o?.runtimeCompositionId||s,hostCompositionSrc:`template#${s}-template`,sourceNode:c.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic})}}async function Cs(t){let e=Ii();if(As(),e.length===0)return;let n=Es(e),i=e.filter(r=>r.hasAttribute("data-composition-src"));i.length!==0&&await Promise.all(i.map(async r=>{let o=r.getAttribute("data-composition-src");if(!o)return;let s=n.get(r),c=s?.authoredCompositionId||null,a=s?.runtimeCompositionId||c||null,l=null;try{l=new URL(o,document.baseURI)}catch{l=null}Ri(r);try{let u=c!=null?document.querySelector(`template#${CSS.escape(c)}-template`):null;if(u){await Di({host:r,authoredCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:u.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:l,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic});return}let m=await fetch(o);if(!m.ok)throw new Error(`HTTP ${m.status}`);let f=await m.text(),A=new DOMParser().parseFromString(f,"text/html");bs(A,l);let y=(c?A.querySelector(`template#${CSS.escape(c)}-template`):null)??A.querySelector("template"),x=y?y.content:A.body,w=y?void 0:Array.from(A.head.querySelectorAll("style")),N=y?void 0:Array.from(A.head.querySelectorAll("script")),L=y?void 0:Array.from(A.head.querySelectorAll(\'link[rel="stylesheet"], link[rel="preconnect"]\'));await Di({host:r,authoredCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:x,hasTemplate:!!y,fallbackBodyInnerHtml:A.body.innerHTML,compositionUrl:l,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,headStyles:w,headScripts:N,headLinks:L,declaredVariableDefaults:ki(A.documentElement),onDiagnostic:t.onDiagnostic})}catch(u){t.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,errorMessage:u instanceof Error?u.message:"unknown_error"}}),Ri(r)}}))}function ac(t){return t instanceof HTMLElement?t.dataset.captionWrapper!=="true"?t:t.querySelector(":scope > span")??null:null}function lc(){let t=[],e=document.querySelectorAll(".caption-group");for(let n of e)for(let i of n.children){if(!(i instanceof HTMLElement))continue;let r=i.dataset.captionWrapper==="true"?i.querySelector(":scope > span"):i.tagName==="SPAN"?i:null;r&&t.push(r)}return t}function uc(t){let e=t.parentElement;if(e?.dataset.captionWrapper==="true")return e;let n=document.createElement("span");return n.style.display="inline-block",n.dataset.captionWrapper="true",t.parentNode?.insertBefore(n,t),n.appendChild(t),n}function Pi(){let t=window.gsap;t&&document.querySelectorAll(".caption-group").length!==0&&fetch("caption-overrides.json").then(e=>e.ok?e.json():null).then(e=>{if(!e||!Array.isArray(e)||e.length===0)return;let n=lc();for(let i of e){let r=null;if(i.wordId&&(r=ac(document.getElementById(i.wordId))),!r&&i.wordIndex!==void 0&&(r=n[i.wordIndex]??null),!r)continue;let o={},s={};if(i.x!==void 0&&(o.x=i.x),i.y!==void 0&&(o.y=i.y),i.scale!==void 0&&(o.scale=i.scale),i.rotation!==void 0&&(o.rotation=i.rotation),i.opacity!==void 0&&(s.opacity=i.opacity),i.fontSize!==void 0&&(s.fontSize=`${i.fontSize}px`),i.fontWeight!==void 0&&(s.fontWeight=i.fontWeight),i.fontFamily!==void 0&&(s.fontFamily=i.fontFamily),i.activeColor||i.dimColor){let a=t.getTweensOf(r).filter(u=>u.vars.color!==void 0).sort((u,m)=>u.startTime()-m.startTime()),l=a.length>0?String(a[0].vars.color):"";for(let u of a)String(u.vars.color)===l?i.dimColor&&(u.vars.color=i.dimColor):i.activeColor&&(u.vars.color=i.activeColor);i.dimColor&&t.set(r,{color:i.dimColor})}if(Object.keys(s).length>0&&t.set(r,s),Object.keys(o).length>0){let c=uc(r);t.set(c,o)}}}).catch(()=>{})}var Xt="data-color-grading",cc="rec709",Je={exposure:0,contrast:0,highlights:0,shadows:0,whites:0,blacks:0,temperature:0,tint:0,saturation:0},Fs=["exposure","contrast","highlights","shadows","whites","blacks","temperature","tint","saturation"],dc=[{id:"neutral",label:"Neutral",adjust:{...Je}},{id:"warm-clean",label:"Warm Clean",adjust:{...Je,exposure:.05,contrast:.08,highlights:-.08,shadows:.08,temperature:.16,saturation:.06}},{id:"cool-clean",label:"Cool Clean",adjust:{...Je,contrast:.06,highlights:-.06,shadows:.06,temperature:-.12,tint:.04,saturation:.04}},{id:"soft-boost",label:"Soft Boost",adjust:{...Je,exposure:.06,contrast:-.04,highlights:-.14,shadows:.16,saturation:.1}},{id:"bright-pop",label:"Bright Pop",adjust:{...Je,exposure:.12,contrast:.12,whites:.08,blacks:-.04,saturation:.14}},{id:"deep-contrast",label:"Deep Contrast",adjust:{...Je,exposure:-.03,contrast:.2,highlights:-.08,shadows:-.08,blacks:-.12,saturation:.06}}],fc=new Map(dc.map(t=>[t.id,t])),mc=/^\\$(?:\\{([A-Za-z0-9_.:-]+)\\}|([A-Za-z0-9_.:-]+))$/,pc={exposure:{min:-2,max:2},contrast:{min:-1,max:1},highlights:{min:-1,max:1},shadows:{min:-1,max:1},whites:{min:-1,max:1},blacks:{min:-1,max:1},temperature:{min:-1,max:1},tint:{min:-1,max:1},saturation:{min:-1,max:1}};function Yt(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function hc(t,e,n){return Number.isFinite(t)?Math.min(n,Math.max(e,t)):0}function Ms(t,e){let n=typeof t=="number"?t:Number(t);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):e}function xc(t,e){let n=typeof t=="number"?t:Number(t);if(!Number.isFinite(n))return 0;let i=pc[e];return hc(n,i.min,i.max)}function gc(t){if(t==null)return null;let e=String(t).trim();return e||null}function yc(t){if(t==null)return null;if(typeof t=="string"){let n=t.trim();return n?{src:n,intensity:1}:null}if(!Yt(t))return null;let e=t.src;return typeof e!="string"||e.trim()===""?null:{src:e.trim(),intensity:Ms(t.intensity,1)}}function bc(t){if(typeof t=="string"){let e=t.trim();if(!e)return null;if(e.startsWith("{"))try{let n=JSON.parse(e);return Yt(n)?n:null}catch{return null}return{preset:e,intensity:1}}return Yt(t)?t:null}function Sc(t,e){let n=t.trim().match(mc);if(!n)return t;let i=n[1]??n[2]??"";return i&&Object.hasOwn(e,i)?e[i]:t}function Oi(t,e){if(typeof t=="string"){let i=Sc(t,e);if(i!==t)return i;let r=t.trim();if(!r.startsWith("{"))return t;try{return Oi(JSON.parse(r),e)}catch{return t}}if(!Yt(t))return t;let n={};for(let[i,r]of Object.entries(t))n[i]=Oi(r,e);return n}function Ac(t){return t?fc.get(t)??null:null}function Bi(t){let e=bc(t);if(!e||e.enabled===!1)return null;let n=gc(e.preset),r=Ac(n)?.adjust??Je,o=Yt(e.adjust)?e.adjust:{},s=Fs.reduce((c,a)=>(c[a]=xc(o[a]??r[a],a),c),{...Je});return{enabled:!0,preset:n,intensity:Ms(e.intensity,1),adjust:s,lut:yc(e.lut),colorSpace:typeof e.colorSpace=="string"&&e.colorSpace.trim()?e.colorSpace.trim():cc}}function Ns(t,e){return Bi(Oi(t,e))}function Qt(t){return!t?.enabled||t.intensity===0?!1:t.lut&&t.lut.intensity!==0?!0:Fs.some(e=>Math.abs(t.adjust[e])>1e-4)}var we=class extends Error{constructor(n,i=null){super(i==null?n:`${n} at line ${i}`);ge(this,"lineNumber");this.name="CubeLutParseError",this.lineNumber=i}},Ec=[0,0,0],wc=[1,1,1],Cc=64;function Fc(t){let e=!1;for(let n=0;n<t.length;n++){let i=t[n];if(i===\'"\'&&(e=!e),i==="#"&&!e)return t.slice(0,n)}return t}function ht(t,e){let n=Number(t);if(!Number.isFinite(n))throw new we(`Invalid number "${t}"`,e);return n}function _s(t,e,n){if(t.length!==3)throw new we(`${e} expects three numbers`,n);return[ht(t[0],n),ht(t[1],n),ht(t[2],n)]}function Ts(t,e,n){if(!t)throw new we(`${e} expects a size`,n);let i=Number(t);if(!Number.isInteger(i)||i<2)throw new we(`${e} must be an integer greater than 1`,n);return i}function Mc(t,e){if(e[0]<=t[0]||e[1]<=t[1]||e[2]<=t[2])throw new we("DOMAIN_MAX values must be greater than DOMAIN_MIN values")}function Nc(t){let e=/^TITLE\\s+"([^"]*)"\\s*$/i.exec(t);if(e)return e[1]??null;let n=/^TITLE\\s+(.+)\\s*$/i.exec(t);return n&&(n[1]??"").trim()||null}function _c(t){return/^[+-]?(?:\\d|\\.\\d)/.test(t)}function Ls(t,e={}){let n=e.maxSize??Cc,i=null,r=Ec,o=wc,s=null,c=null,a=[],l=t.replace(/^\\uFEFF/,"").split(/\\r?\\n/);for(let m=0;m<l.length;m++){let f=m+1,g=Fc(l[m]??"").trim();if(!g)continue;let A=g.split(/\\s+/),y=(A[0]??"").toUpperCase(),x=A.slice(1);if(y==="TITLE"){i=Nc(g);continue}if(y==="DOMAIN_MIN"){r=_s(x,y,f);continue}if(y==="DOMAIN_MAX"){o=_s(x,y,f);continue}if(y==="LUT_1D_SIZE"){s=Ts(x[0],y,f);continue}if(y==="LUT_3D_SIZE"){if(c=Ts(x[0],y,f),c>n)throw new we(`LUT_3D_SIZE ${c} exceeds max ${n}`,f);continue}if(!_c(y)){if(y.startsWith("LUT_"))throw new we(`Unsupported cube keyword ${y}`,f);continue}if(!c)throw s?new we("1D cube LUTs are not supported yet",f):new we("LUT data appears before LUT_3D_SIZE",f);if(A.length!==3)throw new we("LUT data rows must contain three numbers",f);a.push(ht(A[0],f),ht(A[1],f),ht(A[2],f))}if(s&&c)throw new we("Mixed 1D and 3D cube LUTs are not supported yet");if(!c)throw s?new we("1D cube LUTs are not supported yet"):new we("Missing LUT_3D_SIZE");Mc(r,o);let u=c*c*c;if(a.length!==u*3)throw new we(`Expected ${u} LUT rows for size ${c}, found ${a.length/3}`);return{title:i,size:c,domainMin:r,domainMax:o,data:new Float32Array(a)}}function Tc(t){return Number.isFinite(t)?Math.min(1,Math.max(0,t)):0}function Hi(t){return Math.round(Tc(t)*255)}function vs(t){let e=t.size,n=e*e,i=e,r=new Uint8Array(n*i*4);for(let o=0;o<e;o++)for(let s=0;s<e;s++)for(let c=0;c<e;c++){let a=((o*e+s)*e+c)*3,l=(s*n+o*e+c)*4;r[l]=Hi(t.data[a]??0),r[l+1]=Hi(t.data[a+1]??0),r[l+2]=Hi(t.data[a+2]??0),r[l+3]=255}return{width:n,height:i,data:r}}var Mn=new Map,Lc="data-hf-color-grading-canvas",Ps="data-hf-color-grading-source-hidden",vc="__hf_color_grading_canvas__",kc=64,Zt={enabled:!1,position:.5,softness:0,lineWidth:2};function Rc(t){let e=window,i=t.closest("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()??"",r=i?e.__hfVariablesByComp?.[i]:void 0;if(r)return r;let o=e.__hyperframes?.getVariables?.();return o&&typeof o=="object"?o:e.__hfVariables??{}}function Wi(t){let e=t.getAttribute(Xt);return e==null?null:Ns(e,Rc(t))}var Dc=["attribute vec2 a_pos;","varying vec2 v_uv;","void main(){"," v_uv = a_pos * 0.5 + 0.5;"," gl_Position = vec4(a_pos, 0.0, 1.0);","}"].join(`\n`),Ic=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform sampler2D u_lut;","uniform vec2 u_resolution;","uniform vec2 u_uvScale;","uniform vec2 u_uvOffset;","uniform float u_lutEnabled;","uniform float u_lutSize;","uniform vec2 u_lutTextureSize;","uniform vec3 u_lutDomainMin;","uniform vec3 u_lutDomainMax;","uniform float u_lutIntensity;","uniform float u_exposure;","uniform float u_contrast;","uniform float u_highlights;","uniform float u_shadows;","uniform float u_whites;","uniform float u_blacks;","uniform float u_temperature;","uniform float u_tint;","uniform float u_saturation;","uniform float u_intensity;","uniform float u_compareEnabled;","uniform float u_comparePosition;","uniform float u_compareSoftness;","uniform float u_compareLineWidth;","float lumaOf(vec3 c){ return dot(c, vec3(0.2126, 0.7152, 0.0722)); }","vec3 sampleLut(float r, float g, float b){"," float size = max(u_lutSize, 2.0);"," float x = (r + b * size + 0.5) / max(u_lutTextureSize.x, 1.0);"," float y = (g + 0.5) / max(u_lutTextureSize.y, 1.0);"," return texture2D(u_lut, vec2(x, y)).rgb;","}","vec3 applyLut(vec3 color){"," if (u_lutEnabled < 0.5) return color;"," float size = max(u_lutSize, 2.0);"," vec3 span = max(u_lutDomainMax - u_lutDomainMin, vec3(0.00001));"," vec3 scaled = clamp((color - u_lutDomainMin) / span, 0.0, 1.0) * (size - 1.0);"," vec3 lo = floor(scaled);"," vec3 hi = min(lo + 1.0, vec3(size - 1.0));"," vec3 f = scaled - lo;"," vec3 c000 = sampleLut(lo.r, lo.g, lo.b);"," vec3 c100 = sampleLut(hi.r, lo.g, lo.b);"," vec3 c010 = sampleLut(lo.r, hi.g, lo.b);"," vec3 c110 = sampleLut(hi.r, hi.g, lo.b);"," vec3 c001 = sampleLut(lo.r, lo.g, hi.b);"," vec3 c101 = sampleLut(hi.r, lo.g, hi.b);"," vec3 c011 = sampleLut(lo.r, hi.g, hi.b);"," vec3 c111 = sampleLut(hi.r, hi.g, hi.b);"," vec3 c00 = mix(c000, c100, f.r);"," vec3 c10 = mix(c010, c110, f.r);"," vec3 c01 = mix(c001, c101, f.r);"," vec3 c11 = mix(c011, c111, f.r);"," vec3 c0 = mix(c00, c10, f.g);"," vec3 c1 = mix(c01, c11, f.g);"," vec3 lutColor = mix(c0, c1, f.b);"," return mix(color, lutColor, clamp(u_lutIntensity, 0.0, 1.0));","}","void main(){"," vec2 uv = (v_uv - u_uvOffset) / u_uvScale;"," if (uv.x < 0.0 || uv.y < 0.0 || uv.x > 1.0 || uv.y > 1.0) {"," gl_FragColor = vec4(0.0);"," return;"," }"," vec4 sampleColor = texture2D(u_source, uv);"," vec3 original = sampleColor.rgb;"," vec3 color = original * pow(2.0, u_exposure);"," float y = lumaOf(color);"," float shadowMask = 1.0 - smoothstep(0.0, 0.65, y);"," float highlightMask = smoothstep(0.35, 1.0, y);"," color += u_shadows * 0.35 * shadowMask;"," color += u_highlights * 0.35 * highlightMask;"," color += u_blacks * 0.25 * (1.0 - smoothstep(0.0, 0.35, y));"," color += u_whites * 0.25 * smoothstep(0.65, 1.0, y);"," color.r += u_temperature * 0.08 + u_tint * 0.04;"," color.b -= u_temperature * 0.08 - u_tint * 0.04;"," color.g -= u_tint * 0.08;"," color = (color - 0.5) * max(0.0, 1.0 + u_contrast) + 0.5;"," float satLuma = lumaOf(color);"," color = mix(vec3(satLuma), color, max(0.0, 1.0 + u_saturation));"," color = clamp(color, 0.0, 1.0);"," color = clamp(applyLut(color), 0.0, 1.0);"," vec3 graded = mix(original, color, u_intensity);"," if (u_compareEnabled > 0.5) {"," float pos = clamp(u_comparePosition, 0.0, 1.0);"," float softness = max(u_compareSoftness, 0.00001);"," float afterMask = smoothstep(pos - softness, pos + softness, v_uv.x);"," vec3 splitColor = mix(original, graded, afterMask);"," float lineMask = 0.0;"," if (u_compareLineWidth > 0.0) {"," float lineWidth = max(u_compareLineWidth / max(u_resolution.x, 1.0), 0.00001);"," lineMask = 1.0 - smoothstep(lineWidth, lineWidth * 1.8, abs(v_uv.x - pos));"," }"," gl_FragColor = vec4(mix(splitColor, vec3(1.0), lineMask * 0.82), sampleColor.a);"," return;"," }"," gl_FragColor = vec4(graded, sampleColor.a);","}"].join(`\n`);function st(t){return t instanceof HTMLVideoElement||t instanceof HTMLImageElement}function ks(t,e,n){let i=t.createShader(n);return i?(t.shaderSource(i,e),t.compileShader(i),t.getShaderParameter(i,t.COMPILE_STATUS)?i:(v("runtime.colorGrading.compileShader",t.getShaderInfoLog(i)),t.deleteShader(i),null)):null}function Pc(t){let e=ks(t,Dc,t.VERTEX_SHADER),n=ks(t,Ic,t.FRAGMENT_SHADER);if(!e||!n)return e&&t.deleteShader(e),n&&t.deleteShader(n),null;let i=t.createProgram();return i?(t.attachShader(i,e),t.attachShader(i,n),t.linkProgram(i),t.deleteShader(e),t.deleteShader(n),t.getProgramParameter(i,t.LINK_STATUS)?i:(v("runtime.colorGrading.linkProgram",t.getProgramInfoLog(i)),t.deleteProgram(i),null)):null}function Rs(t,e=t.LINEAR){let n=t.createTexture();return n?(t.bindTexture(t.TEXTURE_2D,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,e),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,null),n):null}function Oc(t){let e=t.getContext("webgl",{alpha:!0,premultipliedAlpha:!1,preserveDrawingBuffer:!0});if(!e)return null;let n=Pc(e),i=Rs(e),r=Rs(e,e.NEAREST);if(!n||!i||!r)return n&&e.deleteProgram(n),i&&e.deleteTexture(i),r&&e.deleteTexture(r),null;let o=e.createBuffer();return o?(e.bindBuffer(e.ARRAY_BUFFER,o),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),e.STATIC_DRAW),{gl:e,program:{program:n,texture:i,lutTexture:r,position:e.getAttribLocation(n,"a_pos"),source:e.getUniformLocation(n,"u_source"),lut:e.getUniformLocation(n,"u_lut"),resolution:e.getUniformLocation(n,"u_resolution"),uvScale:e.getUniformLocation(n,"u_uvScale"),uvOffset:e.getUniformLocation(n,"u_uvOffset"),lutEnabled:e.getUniformLocation(n,"u_lutEnabled"),lutSize:e.getUniformLocation(n,"u_lutSize"),lutTextureSize:e.getUniformLocation(n,"u_lutTextureSize"),lutDomainMin:e.getUniformLocation(n,"u_lutDomainMin"),lutDomainMax:e.getUniformLocation(n,"u_lutDomainMax"),lutIntensity:e.getUniformLocation(n,"u_lutIntensity"),exposure:e.getUniformLocation(n,"u_exposure"),contrast:e.getUniformLocation(n,"u_contrast"),highlights:e.getUniformLocation(n,"u_highlights"),shadows:e.getUniformLocation(n,"u_shadows"),whites:e.getUniformLocation(n,"u_whites"),blacks:e.getUniformLocation(n,"u_blacks"),temperature:e.getUniformLocation(n,"u_temperature"),tint:e.getUniformLocation(n,"u_tint"),saturation:e.getUniformLocation(n,"u_saturation"),intensity:e.getUniformLocation(n,"u_intensity"),compareEnabled:e.getUniformLocation(n,"u_compareEnabled"),comparePosition:e.getUniformLocation(n,"u_comparePosition"),compareSoftness:e.getUniformLocation(n,"u_compareSoftness"),compareLineWidth:e.getUniformLocation(n,"u_compareLineWidth")}}):(e.deleteProgram(n),e.deleteTexture(i),e.deleteTexture(r),null)}function Bc(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Hc(t){if(!Bc(t))return{...Zt};let e=(n,i,r,o)=>{let s=typeof n=="number"?n:Number(n);return Math.min(o,Math.max(r,Number.isFinite(s)?s:i))};return{enabled:t.enabled===!0,position:e(t.position,Zt.position,0,1),softness:e(t.softness,Zt.softness,0,.25),lineWidth:e(t.lineWidth,Zt.lineWidth,0,12)}}function Os(t){try{let e=new URL(t,document.baseURI);return e.protocol==="data:"?{href:e.href}:e.protocol!=="http:"&&e.protocol!=="https:"?{error:"LUT must be project-local or a data URL"}:e.origin!==window.location.origin?{error:"Remote LUT URLs are not supported"}:{href:e.href}}catch{return{error:"Invalid LUT URL"}}}function Ui(t){return t instanceof Error?t.message:"LUT failed to load"}function Wc(t){let e=Os(t);if("error"in e)return{state:"error",message:e.error};let n=Mn.get(e.href);if(n)return n;let i=fetch(e.href,{credentials:"same-origin"}).then(o=>{if(!o.ok)throw new Error(`Failed to load LUT (${o.status})`);return o.text()}).then(o=>Ls(o,{maxSize:kc})),r={state:"pending",promise:i};return Mn.set(e.href,r),i.then(o=>Mn.set(e.href,{state:"ready",lut:o}),o=>Mn.set(e.href,{state:"error",message:Ui(o)})),r}function Ds(t,e,n){if(t.lut?.src===e)return t.lut;let i=vs(n),{gl:r,program:o}=t;try{return r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,o.lutTexture),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,i.width,i.height,0,r.RGBA,r.UNSIGNED_BYTE,i.data),t.lut={src:e,title:n.title,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:i.width,textureHeight:i.height},t.lutError=null,t.lutLoadingSrc=null,t.lut}catch(s){return t.lut=null,t.lutError=Ui(s),t.lutLoadingSrc=null,v("runtime.colorGrading.uploadLut",s),null}}function Gc(t){let e=t.grading.lut?.src.trim()??"",n=t.grading.lut?.intensity??1;if(!e||n<=0)return t.lut=null,t.lutLoadingSrc=null,t.lutError=null,null;let i=Os(e);if("error"in i)return t.lut=null,t.lutLoadingSrc=null,t.lutError=i.error,null;if(t.lut?.src===i.href)return t.lut;t.lut=null;let r=Wc(e);return r.state==="ready"?Ds(t,i.href,r.lut):r.state==="error"?(t.lutError=r.message,t.lutLoadingSrc=null,null):(t.lutLoadingSrc!==i.href&&(t.lutLoadingSrc=i.href,t.lutError=null,r.promise.then(o=>{t.destroyed||t.grading.lut?.src.trim()!==e||(Ds(t,i.href,o),Ue(t))},o=>{t.destroyed||t.grading.lut?.src.trim()!==e||(t.lut=null,t.lutError=Ui(o),t.lutLoadingSrc=null,Ue(t))})),null)}function Gi(t){if(!t)return null;if(typeof t=="string"){let e=t.trim();if(!e)return null;let n=document.getElementById(e.replace(/^#/,""));if(n&&st(n))return n;try{let i=document.querySelector(e);return i&&st(i)?i:null}catch{return null}}if(t.hfId){let e=document.querySelector(`[data-hf-id="${CSS.escape(t.hfId)}"]`);if(e&&st(e))return e}if(t.id){let e=document.getElementById(t.id);if(e&&st(e))return e}if(!t.selector)return null;try{let e=Array.from(document.querySelectorAll(t.selector)),n=Math.max(0,Math.floor(Number(t.selectorIndex??0)||0)),i=e[n]??null;return i&&st(i)?i:null}catch{return null}}function Uc(t){return t instanceof HTMLVideoElement?t.videoWidth>0&&t.videoHeight>0?{width:t.videoWidth,height:t.videoHeight}:null:t instanceof HTMLImageElement&&t.naturalWidth>0&&t.naturalHeight>0?{width:t.naturalWidth,height:t.naturalHeight}:null}function Bs(t){return t instanceof HTMLVideoElement?t.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&t.videoWidth>0&&t.videoHeight>0:t instanceof HTMLImageElement?t.complete&&t.naturalWidth>0&&t.naturalHeight>0:!1}function Vc(t){if(!t.id)return null;let e=document.getElementById(`__render_frame_${t.id}__`);return e instanceof HTMLImageElement&&Bs(e)?e:null}function zc(t){if(t instanceof HTMLVideoElement){let e=Vc(t);if(e)return e}return Bs(t)?t:null}function Is(t,e){let n=t.toLowerCase();if(n==="center")return .5;if(e==="x"){if(n==="left")return 0;if(n==="right")return 1}else{if(n==="top")return 0;if(n==="bottom")return 1}if(n.endsWith("%")){let i=Number.parseFloat(n);return Number.isFinite(i)?i/100:null}return null}function jc(t){let e=t.trim().split(/\\s+/).filter(Boolean),n=.5,i=.5;for(let r=0;r<e.length;r++){let o=e[r]??"",s=Is(o,"x"),c=Is(o,"y");if(s!==null&&(o==="left"||o==="right"||o.endsWith("%")&&r===0)){n=s;continue}if(c!==null&&(o==="top"||o==="bottom"||o.endsWith("%")&&r>0)){i=c;continue}}return{x:n,y:i}}function qc(t,e,n,i,r,o){if(t<=0||e<=0||n<=0||i<=0)return{scaleX:1,scaleY:1,offsetX:0,offsetY:0};let s=r||"fill",c=t,a=e;if(s==="contain"||s==="cover"||s==="scale-down"){let f=s==="cover"?Math.max(t/n,e/i):Math.min(t/n,e/i);c=n*f,a=i*f,s==="scale-down"&&c>n&&a>i&&(c=n,a=i)}else s==="none"&&(c=n,a=i);let l=jc(o||"center"),u=(t-c)*l.x/t,m=(e-a)*l.y/e;return{scaleX:c/t,scaleY:a/e,offsetX:u,offsetY:m}}function $c(t,e){window.getComputedStyle(e).position==="static"&&(t.touchedParent||(t.touchedParent=e,t.parentInlinePosition=e.style.position||null),e.style.position="relative")}function Kc(t,e){let{element:n,canvas:i}=t,r=n.parentElement;r&&$c(t,r);let o=window.getComputedStyle(e);vr(i.style,o),i.style.pointerEvents="none",i.style.position="absolute",i.style.inset="auto",i.style.left=`${n.offsetLeft}px`,i.style.top=`${n.offsetTop}px`,i.style.right="auto",i.style.bottom="auto",i.style.width=`${n.offsetWidth}px`,i.style.height=`${n.offsetHeight}px`,i.style.display="block",i.style.opacity=t.sourceOpacityForCanvas,i.style.visibility=t.sourceVisibleForCanvas?"visible":"hidden";let s=n.getBoundingClientRect(),c=Math.max(0,Math.round(n.offsetWidth||s.width)),a=Math.max(0,Math.round(n.offsetHeight||s.height));return c<=0||a<=0?(i.style.display="none",null):(i.width!==c&&(i.width=c),i.height!==a&&(i.height=a),{width:c,height:a})}function Jc(t,e,n,i,r,o,s){t.uniform1i(e.source,0),t.uniform1i(e.lut,1),t.uniform2f(e.resolution,o.width,o.height),t.uniform2f(e.uvScale,s.scaleX,s.scaleY),t.uniform2f(e.uvOffset,s.offsetX,s.offsetY),t.uniform1f(e.lutEnabled,i?1:0),t.uniform1f(e.lutSize,i?.size??2),t.uniform2f(e.lutTextureSize,i?.textureWidth??1,i?.textureHeight??1),t.uniform3f(e.lutDomainMin,i?.domainMin[0]??0,i?.domainMin[1]??0,i?.domainMin[2]??0),t.uniform3f(e.lutDomainMax,i?.domainMax[0]??1,i?.domainMax[1]??1,i?.domainMax[2]??1),t.uniform1f(e.lutIntensity,n.lut?.intensity??0),t.uniform1f(e.exposure,n.adjust.exposure),t.uniform1f(e.contrast,n.adjust.contrast),t.uniform1f(e.highlights,n.adjust.highlights),t.uniform1f(e.shadows,n.adjust.shadows),t.uniform1f(e.whites,n.adjust.whites),t.uniform1f(e.blacks,n.adjust.blacks),t.uniform1f(e.temperature,n.adjust.temperature),t.uniform1f(e.tint,n.adjust.tint),t.uniform1f(e.saturation,n.adjust.saturation),t.uniform1f(e.intensity,n.intensity),t.uniform1f(e.compareEnabled,r.enabled?1:0),t.uniform1f(e.comparePosition,r.position),t.uniform1f(e.compareSoftness,r.softness),t.uniform1f(e.compareLineWidth,r.lineWidth)}function Yc(t){t.sourceHidden||(t.sourceInlineOpacity=t.element.style.getPropertyValue("opacity")||null,t.sourceInlineOpacityPriority=t.element.style.getPropertyPriority("opacity")),t.element.setAttribute(Ps,"true"),t.element.style.setProperty("opacity","0","important"),t.sourceHidden=!0}function Ue(t){if(t.destroyed)return!1;let e=zc(t.element);if(!e)return t.hasDrawn||(t.canvas.style.display="none"),!1;let n=Uc(e);if(!n)return!1;let i=e instanceof HTMLElement?e:t.element,r=t.element.style.getPropertyValue("opacity"),o=t.element.style.getPropertyPriority("opacity"),s=t.sourceHidden&&r==="0"&&o==="important",c=t.element.style.getPropertyValue("visibility");if(!s){let g=window.getComputedStyle(t.element);t.sourceOpacityForCanvas=g.opacity||"1",t.sourceVisibleForCanvas=c!=="hidden"&&g.visibility!=="hidden"}let a=Kc(t,i);if(!a)return!1;let l=window.getComputedStyle(i),u=qc(a.width,a.height,n.width,n.height,l.objectFit,l.objectPosition),{gl:m,program:f}=t;try{let g=Gc(t);return m.viewport(0,0,a.width,a.height),m.useProgram(f.program),m.activeTexture(m.TEXTURE0),m.bindTexture(m.TEXTURE_2D,f.texture),m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL,!0),m.texImage2D(m.TEXTURE_2D,0,m.RGBA,m.RGBA,m.UNSIGNED_BYTE,e),m.activeTexture(m.TEXTURE1),m.bindTexture(m.TEXTURE_2D,f.lutTexture),Jc(m,f,t.grading,g,t.compare,a,u),m.enableVertexAttribArray(f.position),m.vertexAttribPointer(f.position,2,m.FLOAT,!1,0,0),m.drawArrays(m.TRIANGLE_STRIP,0,4),Yc(t),t.hasDrawn=!0,!0}catch(g){return v("runtime.colorGrading.drawEntry",g),!1}}function Ye(t,e,n,i){e.addEventListener(n,i),t.cleanup.push(()=>e.removeEventListener(n,i))}function Xc(t){t.animationFrame!==null&&(window.cancelAnimationFrame(t.animationFrame),t.animationFrame=null),t.videoFrameHandle!==null&&t.element instanceof HTMLVideoElement&&(t.element.cancelVideoFrameCallback?.(t.videoFrameHandle),t.videoFrameHandle=null)}function en(t){if(t.destroyed||!(t.element instanceof HTMLVideoElement)||t.videoFrameHandle!==null||t.animationFrame!==null)return;let e=t.element,n=e;if(typeof n.requestVideoFrameCallback=="function"){t.videoFrameHandle=n.requestVideoFrameCallback(()=>{t.videoFrameHandle=null,Ue(t),!t.destroyed&&!e.paused&&!e.ended&&en(t)});return}t.animationFrame=window.requestAnimationFrame(()=>{t.animationFrame=null,Ue(t),!t.destroyed&&!e.paused&&!e.ended&&en(t)})}function Qc(t){let e=()=>{Ue(t)};Ye(t,t.element,"load",e),Ye(t,t.element,"loadedmetadata",e),Ye(t,t.element,"loadeddata",e),Ye(t,t.element,"seeked",e),Ye(t,t.element,"timeupdate",e),Ye(t,window,"resize",e),t.element instanceof HTMLVideoElement&&(Ye(t,t.element,"play",()=>en(t)),Ye(t,t.element,"pause",e)),typeof ResizeObserver<"u"&&(t.resizeObserver=new ResizeObserver(e),t.resizeObserver.observe(t.element))}function Zc(t){if(!t.destroyed){t.destroyed=!0,Xc(t),t.resizeObserver?.disconnect();for(let e of t.cleanup)e();if(t.cleanup.length=0,t.canvas.remove(),t.gl.deleteTexture(t.program.texture),t.gl.deleteTexture(t.program.lutTexture),t.gl.deleteProgram(t.program.program),t.sourceHidden){t.element.removeAttribute(Ps);let e=t.element.style.getPropertyValue("opacity"),n=t.element.style.getPropertyPriority("opacity");e==="0"&&n==="important"&&(t.sourceInlineOpacity===null?t.element.style.removeProperty("opacity"):t.element.style.setProperty("opacity",t.sourceInlineOpacity,t.sourceInlineOpacityPriority))}t.touchedParent&&(t.parentInlinePosition===null?t.touchedParent.style.removeProperty("position"):t.touchedParent.style.position=t.parentInlinePosition)}}function ed(t){let e=document.createElement("canvas");return e.className=vc,e.setAttribute(Lc,"true"),e.setAttribute("data-hyperframes-ignore",""),e.setAttribute("data-hyperframes-picker-ignore",""),e.setAttribute("data-hf-ignore",""),e.setAttribute("aria-hidden","true"),e.style.pointerEvents="none",e.style.display="none",t.parentNode?.insertBefore(e,t.nextSibling),e}function Hs(){let t=new WeakMap,e=new Set,n=null,i=!1,r=(y,x,w)=>{let N=t.get(y);if(N)return N.grading=x,N.source=w,Ue(N),y instanceof HTMLVideoElement&&!y.paused&&en(N),!0;let L=ed(y),$=Oc(L);if(!$)return L.remove(),!1;let B={element:y,canvas:L,gl:$.gl,program:$.program,grading:x,compare:{...Zt},lut:null,lutLoadingSrc:null,lutError:null,source:w,animationFrame:null,videoFrameHandle:null,resizeObserver:null,cleanup:[],touchedParent:null,parentInlinePosition:null,sourceHidden:!1,sourceInlineOpacity:null,sourceInlineOpacityPriority:"",sourceOpacityForCanvas:window.getComputedStyle(y).opacity||"1",sourceVisibleForCanvas:window.getComputedStyle(y).visibility!=="hidden",hasDrawn:!1,destroyed:!1};return t.set(y,B),e.add(y),Qc(B),Ue(B),y instanceof HTMLVideoElement&&!y.paused&&en(B),!0},o=(y,x)=>{if(i)return!1;let w=Gi(y);if(!w)return!1;let N=t.get(w);if(!N){let L=Wi(w);if(!Qt(L)||!r(w,L,"attribute"))return!1;N=t.get(w)}return N?(N.compare=Hc(x),Ue(N),!0):!1},s=y=>{let x=t.get(y);x&&(Zc(x),t.delete(y),e.delete(y))},c=()=>{if(i)return 0;let y=new Set;document.querySelectorAll(`video[${Xt}], img[${Xt}]`).forEach(w=>{if(!st(w))return;y.add(w);let N=Wi(w);Qt(N)?r(w,N,"attribute"):s(w)});for(let w of Array.from(e)){let N=t.get(w);N&&(!w.isConnected||N.source==="attribute"&&!y.has(w))&&s(w)}return e.size},a=()=>{if(i)return 0;let y=0;for(let x of Array.from(e,w=>t.get(w)))x&&Ue(x)&&(y+=1);return y},l=(y,x)=>{if(i)return!1;let w=Gi(y);if(!w)return!1;let N=Bi(x);return Qt(N)?r(w,N,"live"):(s(w),!0)},u=(y,x)=>{if(!st(y))return!1;let w=t.get(y);return w?(w.sourceVisibleForCanvas=x,!0):!1},m=y=>{let x=Gi(y);if(!x)return{state:"missing",message:"Media not found"};let w=t.get(x);if(w)return w.lutError?{state:"unavailable",message:w.lutError}:w.grading.lut&&w.lutLoadingSrc?{state:"pending",message:"Loading LUT"}:w.canvas.style.display==="none"?{state:"pending",message:"Waiting for media frame"}:{state:"active",message:w.lut?"Shader + LUT active":"Shader active"};let N=Wi(x);return Qt(N)?{state:"unavailable",message:"WebGL unavailable"}:{state:"inactive",message:"No grading applied"}},f=()=>{if(!i){i=!0,n?.disconnect(),n=null;for(let y of Array.from(e))s(y)}};document.body&&(n=new MutationObserver(()=>c()),n.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[Xt]}));let g={refresh:c,redraw:a,setGrading:l,setCompare:o,setSourceVisibility:u,getStatus:m,destroy:f},A=window;return A.__hf=A.__hf||{},A.__hf.colorGrading=g,c(),g}var Nn=class{constructor(e){ge(this,"_baseTime",0);ge(this,"_playStartMs",null);ge(this,"_rate",1);ge(this,"_duration",1/0);ge(this,"_nowMs");ge(this,"_audioSource",null);this._baseTime=e?.initialTime??0,this._rate=e?.rate??1,this._duration=e?.duration??1/0,this._nowMs=e?.nowMs??(()=>performance.now())}now(){if(this._playStartMs===null)return this._baseTime;if(this._audioSource){let i=null;if("currentTimeSeconds"in this._audioSource)i=this._audioSource.currentTimeSeconds;else{let{el:r,compositionStart:o,mediaStart:s}=this._audioSource;!r.paused&&Number.isFinite(r.currentTime)&&(i=(r.currentTime-s)/(r.playbackRate>0?r.playbackRate:1)*this._rate+o)}if(i!==null)return Number.isFinite(this._duration)&&i>=this._duration?this._duration:Math.max(0,i)}let e=(this._nowMs()-this._playStartMs)/1e3,n=this._baseTime+e*this._rate;return Number.isFinite(this._duration)&&n>=this._duration?this._duration:Math.max(0,n)}play(){return this._playStartMs!==null||Number.isFinite(this._duration)&&this._baseTime>=this._duration?!1:(this._playStartMs=this._nowMs(),!0)}pause(){return this._playStartMs===null?!1:(this._baseTime=this.now(),this._playStartMs=null,!0)}seek(e){let n=Number.isFinite(this._duration)?Math.max(0,Math.min(e,this._duration)):Math.max(0,e);this._baseTime=n,this._playStartMs!==null&&(this._playStartMs=this._nowMs())}isPlaying(){return this._playStartMs!==null}setRate(e){let n=Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1;this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._rate=n}getRate(){return this._rate}setDuration(e){this._duration=Number.isFinite(e)&&e>0?e:1/0,this._baseTime>this._duration&&(this._baseTime=this._duration)}getDuration(){return this._duration}attachAudioSource(e){this._audioSource=e}detachAudioSource(){this._audioSource&&this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._audioSource=null}hasAudioSource(){return this._audioSource!==null}getSource(){if(this._audioSource&&this._playStartMs!==null){if("currentTimeSeconds"in this._audioSource)return"audio";let{el:e}=this._audioSource;if(!e.paused&&Number.isFinite(e.currentTime))return"audio"}return"monotonic"}snapshot(){return{time:this.now(),playing:this.isPlaying(),rate:this._rate,duration:this._duration,source:this.getSource()}}reachedEnd(){return Number.isFinite(this._duration)&&this.now()>=this._duration}};function Ws(t){return!Number.isFinite(t)||t<=0?1:t}function td(t,e){e||t.paused||!ln().__hfDebug||console.debug("[hyperframes] webAudioTransport claimed fallback-playing element:",t.currentSrc||t.getAttribute("src")||"")}function nd(t,e){let{elapsed:n,mediaStart:i,scheduledAt:r,safeRate:o,clipDuration:s}=e,c=Number.isFinite(s)&&s>0,a=s*o;if(n>=0){let u=a-n;return c&&u<=0?!1:(c?t.start(0,n+i,u):t.start(0,n+i),!0)}let l=-n/o;return c?t.start(r+l,i,a):t.start(r+l,i),!0}var _n=class{constructor(){ge(this,"_ctx",null);ge(this,"_bufferCache",new Map);ge(this,"_failedSrcs",new Set);ge(this,"_activeSources",[]);ge(this,"_masterGain",null);ge(this,"_rateAnchorCtx",0);ge(this,"_rateAnchorComp",0);ge(this,"_rate",1);ge(this,"_paused",!0);ge(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._masterGain.connect(this._ctx.destination),!0}catch{return!1}}get context(){return this._ctx}getTime(){return!this._ctx||this._paused?-1:this._rateAnchorComp+(this._ctx.currentTime-this._rateAnchorCtx)*this._rate}async decodeAudioElement(e){let n=e.currentSrc||e.getAttribute("src");if(!n)return null;if(this._bufferCache.has(n))return this._bufferCache.get(n);if(this._failedSrcs.has(n)||!this._ctx)return null;let i;try{let r=await fetch(n,{cache:"no-store"});if(!r.ok)return v("webAudioTransport.fetch",new Error(`${r.status} ${n}`)),null;i=await r.arrayBuffer()}catch(r){return v("webAudioTransport.fetch",r),null}try{let r=await this._ctx.decodeAudioData(i);return this._bufferCache.set(n,r),r}catch(r){return this._failedSrcs.add(n),v("webAudioTransport.decode",r),null}}startGeneration(){return this._playGeneration+=1,this._playGeneration}currentGeneration(){return this._playGeneration}async schedulePlayback(e,n,i,r,o,s,c,a=1,l=Number.POSITIVE_INFINITY){if(!this._ctx||!this._masterGain||c!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),c!==this._playGeneration)return null;let u=Ws(a),m=this._ctx.createBufferSource();m.buffer=n,m.playbackRate.value=u;let f=this._ctx.createGain();f.gain.value=s,m.connect(f),f.connect(this._masterGain);let g=o-i,A=this._ctx.currentTime;if(this._rate=u,this._rateAnchorCtx=A,this._rateAnchorComp=o,!nd(m,{elapsed:g,mediaStart:r,scheduledAt:A,safeRate:u,clipDuration:l}))return m.disconnect(),f.disconnect(),null;let y=e.muted;e.muted=!0,td(e,y);let x={el:e,sourceNode:m,gainNode:f,compositionStart:i,mediaStart:r,scheduledAt:A,priorMuted:y,bounded:Number.isFinite(l)&&l>0};return this._activeSources.push(x),this._paused=!1,m.addEventListener("ended",()=>{let w=this._activeSources.indexOf(x);w!==-1&&(this._activeSources.splice(w,1),e.muted=y,this._activeSources.length===0&&(this._paused=!0))}),x}catch(u){return v("webAudioTransport.schedule",u),null}}setRate(e){let n=Ws(e);if(n===this._rate)return!1;this._ctx&&!this._paused&&(this._rateAnchorComp=this.getTime(),this._rateAnchorCtx=this._ctx.currentTime),this._rate=n;for(let i of this._activeSources)try{i.sourceNode.playbackRate.value=n}catch(r){v("webAudioTransport.setRate",r)}return!0}hasBoundedActiveSources(){return this._activeSources.some(e=>e.bounded)}stopAll(){for(let e of this._activeSources){try{e.sourceNode.stop(),e.sourceNode.disconnect(),e.gainNode.disconnect()}catch{}e.el.muted=e.priorMuted}this._activeSources=[],this._paused=!0}setVolume(e){this._masterGain&&(this._masterGain.gain.value=Math.max(0,Math.min(1,e)))}setElementVolume(e,n){let i=Math.max(0,Math.min(1,n));for(let r of this._activeSources)if(r.el===e)try{r.gainNode.gain.value=i}catch(o){v("webAudioTransport.setElementVolume",o)}}setMuted(e){this._masterGain&&(this._masterGain.gain.value=e?0:1)}isActive(){return this._activeSources.length>0&&!this._paused}ownsElement(e){return!this._paused&&this._activeSources.some(n=>n.el===e)}destroy(){if(this.stopAll(),this._bufferCache.clear(),this._failedSrcs.clear(),this._ctx)try{this._ctx.close()}catch{}this._ctx=null,this._masterGain=null}};var Gs="data-hf-studio-manual-edit-gesture";var Vi="data-hf-authored-duration",zi="data-hf-authored-end";function id(){let t=window.__HF_EXPORT_RENDER_SEEK_CONFIG,e=t?.fps,n=t?.fpsSource,i=Number(e);return!t||e==null?{fps:null,source:"default",rawFpsSource:n,rawFps:e,fallbackReason:"missing"}:!Number.isFinite(i)||i<=0?{fps:null,source:"default",rawFpsSource:n,rawFps:e,fallbackReason:"invalid"}:{fps:i,source:n==="render-options"||n==="default"?n:"unknown",rawFpsSource:n,rawFps:e,fallbackReason:t.fpsFallbackReason}}function Us(){let t=Dr(),e=id();t.canonicalFps=e.fps??t.canonicalFps,window.__HF_EXPORT_RENDER_SEEK_CONFIG&&console.info("[hyperframes] render runtime fps",{canonicalFps:t.canonicalFps,source:e.source,rawFpsSource:e.rawFpsSource,rawFps:e.rawFps,fallbackReason:e.fallbackReason});let n=null,i=null,r=null,o=[],s=new Set,c=null;if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(d){v("runtime.init.site1",d)}(()=>{let d=window.gsap,p=window;if(!(!d?.registerPlugin||p.__hfAutoNoopRegistered))try{d.registerPlugin({name:"_auto",init:()=>!1}),p.__hfAutoNoopRegistered=!0}catch{}})(),document.documentElement&&(document.documentElement.style.margin="0",document.documentElement.style.padding="0",document.documentElement.style.overflow="hidden"),document.body&&(document.body.style.margin="0",document.body.style.padding="0",document.body.style.overflow="hidden"),window.__timelines=window.__timelines||{};let l=()=>{let d=document.querySelector(\'[data-composition-id][data-root="true"]\');if(d instanceof HTMLElement)return d;let p=Array.from(document.querySelectorAll("[data-composition-id]"));return p.find(h=>!h.parentElement?.closest("[data-composition-id]"))??p[0]??null};if(Array.isArray(window.__timelines)){let d=window.__timelines,p=l()?.getAttribute("data-composition-id")??"root",h={};if(d.length===1)h[p]=d[0];else for(let b=0;b<d.length;b++)h[`tl-${b}`]=d[b];window.__timelines=h}let u=l();u&&!u.hasAttribute("data-start")&&u.setAttribute("data-start","0");let m=d=>{o.push(d)},f=(d,p,h)=>{let b=h??`${d}:${JSON.stringify(p)}`;s.has(b)||(s.add(b),Ee({source:"hf-preview",type:"diagnostic",code:d,details:p}))},g=d=>{let p={scale:1,focusX:960,focusY:540},h=[],b=[],E={time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying(),renderMode:!1,timelineDirty:!1};return{play:d.play,pause:d.pause,seek:d.seek,getTime:d.getTime,getDuration:d.getDuration,isPlaying:d.isPlaying,getMainTimeline:()=>null,getElementBounds:()=>{},getElementsAtPoint:()=>{},setElementPosition:()=>{},previewElementPosition:()=>{},setElementKeyframes:()=>{},setElementScale:()=>{},setElementFontSize:()=>{},setElementTextContent:()=>{},setElementTextColor:()=>{},setElementTextShadow:()=>{},setElementTextFontWeight:()=>{},setElementTextFontFamily:()=>{},setElementTextOutline:()=>{},setElementTextHighlight:()=>{},setElementVolume:()=>{},setStageZoom:()=>{},getStageZoom:()=>p,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>h,addElement:()=>!1,removeElement:()=>!1,updateElementTiming:()=>!1,setElementTiming:()=>{},updateElementSrc:()=>!1,updateElementLayer:()=>!1,updateElementBasePosition:()=>!1,markTimelineDirty:()=>{},isTimelineDirty:()=>!1,rebuildTimeline:()=>{},ensureTimeline:()=>{},enableRenderMode:()=>{},disableRenderMode:()=>{},renderSeek:d.renderSeek,getElementVisibility:()=>({visible:!1}),getVisibleElements:()=>b,getRenderState:()=>({...E,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},A=1/60,y=.75,x=2,w=.05,N=100,L=240,$=d=>{if(d instanceof Error)return d.message||String(d);if(typeof d=="string")return d;try{return JSON.stringify(d)}catch{return String(d??"")}},B=d=>{let p=d.toLowerCase();return p.includes("cannot read properties of null")||p.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:p.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:p.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},_=d=>{if(d==null||d.trim()==="")return null;let p=Number.parseFloat(d);return!Number.isFinite(p)||p<=0?null:`${p}px`},S=()=>l(),C=()=>{let d=S();if(!d)return;let p=_(d.getAttribute("data-width")),h=_(d.getAttribute("data-height"));p&&(d.style.width=p),h&&(d.style.height=h),p&&d.style.setProperty("--comp-width",p),h&&d.style.setProperty("--comp-height",h)},F=()=>{let d=S(),p=Array.from(document.querySelectorAll("[data-composition-id]")).filter(h=>h.hasAttribute("data-duration")||h.hasAttribute("data-end"));for(let h of p){if(d&&h===d)continue;let b=h.getAttribute("data-duration"),E=h.getAttribute("data-end");b!=null&&!h.hasAttribute(Vi)&&h.setAttribute(Vi,b),E!=null&&!h.hasAttribute(zi)&&h.setAttribute(zi,E),h.removeAttribute("data-duration"),h.removeAttribute("data-end")}},T=()=>{let d=S();if(!d)return;d.style.position||(d.style.position="relative"),d.style.overflow="hidden";let p=_(d.getAttribute("data-width")),h=_(d.getAttribute("data-height"));p&&(d.style.width=p),h&&(d.style.height=h);let b=Array.from(d.children);for(let E of b){let M=E.tagName.toLowerCase();if(M==="script"||M==="style"||M==="link"||M==="meta"||!E.hasAttribute("data-start")||E.hasAttribute("data-hf-autostamped"))continue;let R=(E.style.top==="0px"||E.style.top==="0")&&(E.style.left==="0px"||E.style.left==="0")&&E.style.width==="100%"&&E.style.height==="100%",J=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(E.style.transform);if(R&&J&&!E.hasAttribute("data-width")&&!E.hasAttribute("data-height")){let ye=E.style.top,nt=E.style.left,Ae=E.style.width,wt=E.style.height;E.style.top="",E.style.left="",E.style.width="",E.style.height="";let ne=window.getComputedStyle(E);ne.top!=="auto"||ne.bottom!=="auto"||ne.left!=="auto"||ne.right!=="auto"||ne.width!=="0px"||ne.height!=="0px"||(E.style.top=ye,E.style.left=nt,E.style.width=Ae,E.style.height=wt)}let K=window.getComputedStyle(E),me=K.position;if(me!=="absolute"&&me!=="fixed"&&(E.style.position="absolute"),!!E.style.top||!!E.style.bottom||K.top!=="auto"||K.bottom!=="auto"||(E.style.top="0"),!!E.style.left||!!E.style.right||K.left!=="auto"||K.right!=="auto"||(E.style.left="0"),M!=="audio"){let ye=_(E.getAttribute("data-width")),nt=_(E.getAttribute("data-height")),Ae=K.width!=="0px"&&K.width!=="auto",wt=K.height!=="0px"&&K.height!=="auto";ye?!E.style.width&&!Ae&&(E.style.width=ye):!E.style.width&&K.width==="0px"&&(E.style.width="100%"),nt?!E.style.height&&!wt&&(E.style.height=nt):!E.style.height&&K.height==="0px"&&(E.style.height="100%")}}},k=(d,p=0,h)=>ze({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:h?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,p),G=(d,p)=>ze({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:p?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),j=(d,p=0)=>!d.hasAttribute("data-hf-auto-start")&&d.hasAttribute("data-start")?Math.max(0,Number(d.getAttribute("data-start")??0)||0):k(d,p),ie=(d,p)=>{let h=d.tagName.toLowerCase();if(h==="script"||h==="style"||h==="link"||h==="meta")return!1;let b=h==="video"||h==="audio"?j(d,0):k(d,0),E=G(d),M=d.getAttribute("data-composition-id");if(M){let J=(window.__timelines??{})[M],K=null;if(J&&typeof J.duration=="function"){let be=Number(J.duration());Number.isFinite(be)&&be>0&&(K=be)}!(d.hasAttribute("data-duration")||d.hasAttribute("data-end")||d.hasAttribute(Vi)||d.hasAttribute(zi))&&(E==null||E<=0)&&K!=null&&(E=K)}let R=E!=null&&E>0?b+E:Number.POSITIVE_INFINITY;return p>=b&&(Number.isFinite(R)?p<=R:!0)},P=!!document.querySelector("[data-composition-src]"),se=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let p of d){let h=p.getAttribute("data-composition-id");if(h&&p.children.length===0&&document.querySelector(`template#${CSS.escape(h)}-template`)){se=!0;break}}}let Se=!P&&!se,H=d=>{if(!d||typeof d.duration!="function")return null;try{let p=Number(d.duration());return Number.isFinite(p)?Math.max(0,p):null}catch{return null}},U=d=>typeof d=="number"&&Number.isFinite(d)&&d>A,V=d=>{let p=Number(d.getAttribute("data-duration"));if(Number.isFinite(p)&&p>0)return p;let h=Number(d.getAttribute("data-playback-start")??d.getAttribute("data-media-start")??"0"),b=Number.isFinite(h)?Math.max(0,h):0;return Number.isFinite(d.duration)&&d.duration>b?Math.max(0,d.duration-b):null},re=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let p=0;for(let h of d){let b=j(h,0);if(!Number.isFinite(b))continue;let E=V(h);E==null||E<=A||(p=Math.max(p,Math.max(0,b)+E))}return p>A?p:null},Fe=()=>{let d=S();if(!d)return null;let p=window.__timelines??{},h=ze({timelineRegistry:p,includeAuthoredTimingAttrs:!0}),b=0,E=Number.parseFloat(d.getAttribute("data-duration")??"");Number.isFinite(E)&&E>0&&(b=E);let M=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let R of M){if(!(R instanceof Element)||R.parentElement?.closest("[data-composition-id]")!==d)continue;let K=h.resolveStartForElement(R,0),me=h.resolveDurationForElement(R);!Number.isFinite(K)||me==null||me<=0||(b=Math.max(b,Math.max(0,K)+me))}return b>A?b:null},O=()=>{let d=re();return typeof d!="number"||!Number.isFinite(d)||d<=A?null:d},D=d=>U(d)?Math.max(A,d*y):A,W=()=>{let d=0;for(let p of t.deterministicAdapters){let h=p.getInferredDurationSeconds;if(typeof h!="function")continue;let b=null;try{b=h()}catch(E){v("runtime.init.adapterDuration",E)}typeof b=="number"&&Number.isFinite(b)&&b>0&&(d=Math.max(d,b))}return d>A?d:null},Q=(d,p=0)=>{let h=H(d),b=O(),E=Fe(),M=W(),R=Math.max(b??0,E??0,M??0),J=Number.isFinite(p)&&p>A?p:0,K=0;return U(h)?K=Math.max(h,R,J):U(R)?K=Math.max(R,J):K=J,K>0?Math.max(0,K):0},ae=()=>{let d=window.__timelines??{},p=ne=>{let ee=Object.entries(d).filter(xe=>!!xe[1]&&typeof xe[1].play=="function"&&typeof xe[1].pause=="function");if(ee.length!==1)return{timeline:null};let[fe,pe]=ee[0];return{timeline:pe,selectedTimelineIds:[fe],selectedDurationSeconds:H(pe),diagnostics:{code:"root_timeline_sole_registered_fallback",details:{reason:ne,soleTimelineId:fe}}}},h=ze({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),b=O(),E=Fe(),M=Math.max(b??0,E??0)||null,R=D(M),J=ne=>{let ee=document.querySelector(`[data-composition-id="${CSS.escape(ne)}"]`);return ee?h.resolveStartForElement(ee,0):0},K=ne=>{let ee=window.gsap;if(!ee||typeof ee.timeline!="function")return null;let fe=ee.timeline({paused:!0});for(let pe of ne)fe.add(pe.timeline,J(pe.compositionId));return fe},me=(ne,ee)=>{if(!U(ne))return null;let fe=window.gsap;if(!fe||typeof fe.timeline!="function")return null;let pe=fe.timeline({paused:!0});if(ee)try{pe.add(ee,0)}catch(ue){v("runtime.init.site2",ue)}let xe=pe;if(typeof xe.to=="function")try{xe.to({},{duration:ne})}catch(ue){v("runtime.init.site3",ue)}return pe},be=(ne,ee)=>{let fe=ne;if(typeof fe.getChildren!="function")return[];try{let pe=fe.getChildren(!0,!0,!0)??[];if(!Array.isArray(pe))return[];let xe=[];for(let ue of ee)if(!pe.some(ve=>ve===ue.timeline))try{let ve=J(ue.compositionId);ne.add(ue.timeline,ve),xe.push(ue.compositionId)}catch(ve){v("runtime.init.site4",ve)}return xe}catch{return[]}},oe=S(),Z=oe?.getAttribute("data-composition-id")??null;if(!Z)return p("root_missing_composition_id");let ye=d[Z]??null,Ae=(()=>{if(!oe)return[];let ne=new Set,ee=Array.from(oe.querySelectorAll("[data-composition-id]")),fe=[];for(let pe of ee){let xe=pe.getAttribute("data-composition-id");if(!xe||xe===Z||ne.has(xe))continue;ne.add(xe);let ue=d[xe]??null;if(!ue||typeof ue.play!="function"||typeof ue.pause!="function")continue;let Ne=H(ue);fe.push({compositionId:xe,timeline:ue,durationSeconds:Ne??0})}return fe})(),wt=ne=>{for(let ee of ne){let fe=ee.timeline;if(typeof fe.paused=="function")try{fe.paused(!1)}catch(pe){v("runtime.init.site5",pe)}}};if(Ae.length>0&&wt(Ae),ye){let ne=Ae.length>0?be(ye,Ae):[];if((Ae.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+Z+"\'])"))&&(q=!0),ne.length>0)try{let ue=ye.time();ye.seek(ue,!1)}catch{}let ee=H(ye);if(!U(ee)&&Ae.length>0){let ue=Ae.map(Ma=>Ma.compositionId),Ne=K(Ae),ve=H(Ne);if(Ne&&U(ve))return{timeline:Ne,selectedTimelineIds:ue,selectedDurationSeconds:ve,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:R,selectedDurationSeconds:ve,mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedTimelineIds:ue,autoNestedChildren:ne}}};let Un=me(M??0,ye),Vn=H(Un);if(Un&&U(Vn))return{timeline:Un,selectedTimelineIds:[Z],selectedDurationSeconds:Vn,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedDurationSeconds:Vn,selectedTimelineIds:[Z],autoNestedChildren:ne}}}}if(!U(ee)&&Ae.length===0){let ue=me(M??0,ye),Ne=H(ue);if(ue&&U(Ne))return{timeline:ue,selectedTimelineIds:[Z],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedDurationSeconds:Ne,selectedTimelineIds:[Z]}}}}let fe=oe?.getAttribute("data-duration"),pe=fe?parseFloat(fe):null,xe=Math.max(U(pe)?pe:0,E??0);if(xe>0&&U(xe)&&U(ee)&&xe>=ee+.5){let ue=ye;if(typeof ue.to=="function")try{ue.to({},{duration:0},xe)}catch(ve){v("runtime.init.site6",ve)}let Ne=H(ye);if(U(Ne))return{timeline:ye,selectedTimelineIds:[Z],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:Z,rootDurationSeconds:ee,rootDeclaredDur:pe,authoredCompositionDurationFloorSeconds:E,newDur:Ne}}}}return{timeline:ye,selectedTimelineIds:[Z],selectedDurationSeconds:ee,mediaDurationFloorSeconds:b,diagnostics:ne.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:Z,selectedDurationSeconds:ee,autoNestedChildren:ne}}:void 0}}if(Ae.length>0){let ne=Ae.map(pe=>pe.compositionId),ee=K(Ae),fe=H(ee);if(ee)return{timeline:ee,selectedTimelineIds:ne,selectedDurationSeconds:fe,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:Z,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:R,selectedDurationSeconds:fe,mediaDurationFloorSeconds:b,selectedTimelineIds:ne}}}}return p("root_composition_id_unmatched_in_registry")},q=!1,z=()=>{if(!Se)return!1;let d=t.capturedTimeline,p=H(d),h=U(p);if(d&&h&&q)return!1;let b=ae();if(!b.timeline)return!1;if(d&&d===b.timeline)return typeof d.timeScale=="function"&&d.timeScale(t.playbackRate),!1;t.capturedTimeline=b.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let E=Q(t.capturedTimeline,0);if(E<=0&&typeof t.capturedTimeline.progress=="function"&&(t.capturedTimeline.progress(1,!0),t.capturedTimeline.progress(0,!1),t.capturedTimeline.pause()),E>0){try{I.setDuration(E)}catch{}if(typeof t.capturedTimeline.totalTime=="function"){typeof t.capturedTimeline.progress=="function"&&t.capturedTimeline.progress(1e-4,!0);let R=Math.max(0,t.currentTime||0);t.capturedTimeline.totalTime(R,!1),t.capturedTimeline.pause()}let M=window.__hfStudioManualEditsApply;typeof M=="function"&&M()}if(b.diagnostics&&Ee({source:"hf-preview",type:"diagnostic",code:b.diagnostics.code,details:b.diagnostics.details}),Ee({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:b.selectedTimelineIds??[],selectedDurationSeconds:b.selectedDurationSeconds??null,mediaDurationFloorSeconds:b.mediaDurationFloorSeconds??null}}),window.parent!==window){let M=S(),R=E>0?E:0,J=String(R>0?R:1),K=new Set,me=new Set(document.querySelectorAll("[data-start]")),be=oe=>{let Z=oe.parentElement;for(;Z&&Z!==M;){if(me.has(Z))return!0;Z=Z.parentElement}return!1};if(t.capturedTimeline.getChildren)try{for(let oe of t.capturedTimeline.getChildren(!0))if(typeof oe.targets=="function")for(let Z of oe.targets())Z instanceof HTMLElement&&Z!==M&&(Z.hasAttribute("data-start")||be(Z)||K.has(Z)||(K.add(Z),Z.setAttribute("data-start","0"),Z.setAttribute("data-duration",J),Z.setAttribute("data-hf-autostamped","1")))}catch{}if(M instanceof HTMLElement)for(let oe of M.querySelectorAll("[id]"))oe instanceof HTMLElement&&oe!==M&&(oe.hasAttribute("data-start")||be(oe)||K.has(oe)||oe.tagName==="SCRIPT"||oe.tagName==="STYLE"||oe.tagName==="LINK"||(K.add(oe),oe.setAttribute("data-start","0"),oe.setAttribute("data-duration",J),oe.setAttribute("data-hf-autostamped","1")))}for(let M of St)rn.delete(M),er(M);return!0};window.__hfForceTimelineRebind=()=>{q=!1,z()};let X=()=>{let d=S();if(!(d instanceof HTMLElement))return;let p=d.getBoundingClientRect(),h=Number(d.getAttribute("data-width")),b=Number(d.getAttribute("data-height")),E=window.getComputedStyle(d),M=Number.isFinite(h)&&h>0&&Number.isFinite(b)&&b>0,R=p.width<=0||p.height<=0||d.clientWidth<=0||d.clientHeight<=0;!M||!R||f("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:h,declaredHeight:b,rectWidth:Math.round(p.width),rectHeight:Math.round(p.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:E.display,visibility:E.visibility,overflow:E.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},Ie=()=>{t.tornDown||(c!=null&&window.cancelAnimationFrame(c),c=window.requestAnimationFrame(()=>{c=null,X()}))},Me=()=>{i=d=>{let p=$(d.error??d.message).slice(0,L);if(!p)return;let h=B(p);Ee({source:"hf-preview",type:"diagnostic",code:h.code,details:{category:h.category,message:p,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},r=d=>{let p=$(d.reason).slice(0,L);if(!p)return;let h=B(p);Ee({source:"hf-preview",type:"diagnostic",code:`${h.code}_unhandled_rejection`,details:{category:`${h.category}-unhandled-rejection`,message:p}})},window.addEventListener("error",i),window.addEventListener("unhandledrejection",r)},bt=()=>{let d=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let h of d){let b=()=>{if(!(h instanceof Element))return;let E=h.tagName.toLowerCase(),M=h.getAttribute("src")??h.getAttribute("href")??h.getAttribute("poster")??null,R=E==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";f(R,{tagName:E,assetUrl:M,currentSrc:(h instanceof HTMLImageElement||h instanceof HTMLMediaElement)&&h.currentSrc||null,readyState:h instanceof HTMLMediaElement?h.readyState:null,networkState:h instanceof HTMLMediaElement?h.networkState:null},`${R}:${E}:${M??"unknown"}`)};h.addEventListener("error",b),m(()=>{h.removeEventListener("error",b)})}let p=document.fonts;p&&p.ready.then(()=>{if(t.tornDown)return;let h=Array.from(p).filter(b=>b.status==="error").map(b=>b.family).filter(b=>!!b).slice(0,10);h.length!==0&&f("runtime_font_load_issue",{failedFamilies:h,totalFaces:Array.from(p).length},`runtime-font-load-issue:${h.join("|")}`)}).catch(()=>{})},He=(d,p)=>{if(!d.timeline)return!1;let h=t.capturedTimeline;if(h&&h===d.timeline)return!1;let b=Math.max(0,t.currentTime||0),E=t.isPlaying;t.capturedTimeline=d.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);try{t.capturedTimeline.pause(),t.capturedTimeline.seek(b,!1),E&&t.capturedTimeline.play()}catch(M){v("runtime.init.site7",M)}return Ee({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:p,previousTime:b,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},Ze=null,Zi=!1,St=new Set,rn=new WeakMap,on=()=>{t.tornDown||(Ze!=null&&window.clearTimeout(Ze),Ze=window.setTimeout(()=>{if(t.tornDown)return;Ze=null;let d=ae();if(!d.timeline||!U(d.mediaDurationFloorSeconds??null))return;if(!t.capturedTimeline){z()&&(at(),_e(!0));return}if(Zi)return;let h=H(t.capturedTimeline),b=d.selectedDurationSeconds??H(d.timeline);U(b)&&(!U(h)||b>=h+w)&&He(d,"manual")&&(Zi=!0,Ee({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:h??null,selectedDurationSeconds:b??null,selectedTimelineIds:d.selectedTimelineIds??[],mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),at(),_e(!0))},N))},ha=()=>{for(let d of St)d.removeEventListener("loadedmetadata",on),d.removeEventListener("durationchange",on);St.clear()},Dn=()=>{if(t.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio"));for(let p of d){if(St.has(p))continue;St.add(p);let h=Number.parseFloat(p.dataset.volume??"");Number.isFinite(h)&&(p.volume=Math.max(0,Math.min(1,h))),p.addEventListener("loadedmetadata",on),p.addEventListener("durationchange",on),p.preload!=="auto"&&(p.preload="auto"),p.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&p.load(),er(p)}},er=d=>{rn.has(d)||Nr(d,t.capturedTimeline,Q(t.capturedTimeline,0),rn)},In=new WeakMap,tr=d=>{let p=In.get(d);if(p!==void 0)return p;let h=window.getComputedStyle(d).position,b=h==="static"||h==="relative"||h==="sticky";return In.set(d,b),b},Pn=new WeakMap,xa=d=>{let p=Pn.get(d);if(p!==void 0)return p;let h=d.querySelector("[data-start]")===null;return Pn.set(d,h),h},ga=()=>{In=new WeakMap,Pn=new WeakMap},Le=()=>{let d=M=>{let R=M.closest("[data-composition-id]"),J=R?k(R,0):null,K=R?G(R,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:R,inheritedStart:J,inheritedDuration:K}},p=_r({shouldIncludeElement:M=>M.hasAttribute("data-start")||!!d(M).compositionRoot,resolveStartSeconds:M=>{let R=d(M);return j(M,R.inheritedStart??0)},resolveDurationSeconds:M=>{let R=d(M),J=j(M,R.inheritedStart??0),K=Number.parseFloat(M.dataset.playbackStart??M.dataset.mediaStart??"0")||0,me=R.inheritedStart!=null&&R.inheritedDuration!=null&&R.inheritedDuration>0?Math.max(0,R.inheritedStart+R.inheritedDuration-J):null,be=Number.isFinite(M.duration)&&M.duration>K?Math.max(0,M.duration-K):null,oe=Number.parseFloat(M.dataset.duration??""),Z=Number.isFinite(oe)&&oe>0?oe:null,ye=[be,me,Z].filter(nt=>nt!=null);return ye.length>0?Math.min(...ye):null}});for(let M of p.mediaClips){let R=rn.get(M.el);R&&(M.volumeKeyframes=R)}let h=t.mediaForceSyncNextTick;h&&(t.mediaForceSyncNextTick=!1),t.nativeMediaSyncDisabled||Tr({clips:p.mediaClips,timeSeconds:t.currentTime,playing:t.isPlaying,playbackRate:t.playbackRate,outputMuted:t.mediaOutputMuted||!t.webAudioMediaDisabled&&!t.nativeMediaSyncDisabled&&de.isActive(),userMuted:t.bridgeMuted,userVolume:t.bridgeVolume,forceSync:h,onElementVolume:(M,R)=>de.setElementVolume(M,R),isWebAudioOwned:M=>de.ownsElement(M),onAutoplayBlocked:()=>{t.mediaAutoplayBlockedPosted||(t.mediaAutoplayBlockedPosted=!0,Ee({source:"hf-preview",type:"media-autoplay-blocked"}))}});let b=Array.from(document.querySelectorAll("[data-start]")),E=S();for(let M of b){if(!(M instanceof HTMLElement))continue;let R=ie(M,t.currentTime);if(R){let J=M.parentElement;for(;J&&J!==E;){if(J instanceof HTMLElement&&J.hasAttribute("data-start")&&!ie(J,t.currentTime)){R=!1;break}J=J.parentElement}}M.style.visibility=R?"visible":"hidden",(M instanceof HTMLVideoElement||M instanceof HTMLImageElement)&&n?.setSourceVisibility(M,R),R?tr(M)&&M.style.removeProperty("display"):tr(M)&&xa(M)&&(M.style.display="none")}},_e=d=>{let p=Math.max(0,Math.round((t.currentTime||0)*t.canonicalFps)),h=Date.now();(d||p!==t.bridgeLastPostedFrame||t.isPlaying!==t.bridgeLastPostedPlaying||t.bridgeMuted!==t.bridgeLastPostedMuted||h-t.bridgeLastPostedAt>=t.bridgeMaxPostIntervalMs)&&(t.bridgeLastPostedFrame=p,t.bridgeLastPostedPlaying=t.isPlaying,t.bridgeLastPostedMuted=t.bridgeMuted,t.bridgeLastPostedAt=h,Ee({source:"hf-preview",type:"state",frame:p,isPlaying:t.isPlaying,muted:t.bridgeMuted,playbackRate:t.playbackRate}))},On="",ya=()=>{let d="";for(let p of document.querySelectorAll("[data-start]"))d+=`${p.id}:${p.tagName}|`;return d},at=()=>{F(),C(),T();let d=S();if(d){let b=_(d.getAttribute("data-width")),E=_(d.getAttribute("data-height")),M=b?parseInt(b,10):0,R=E?parseInt(E,10):0;M>0&&R>0&&Ee({source:"hf-preview",type:"stage-size",width:M,height:R})}z();let p=Hr({canonicalFps:t.canonicalFps});window.__clipManifest=p;let h=ya();if(On!==h&&ga(),!window.__clipTree||On!==h){let b=window;window.__clipTree=Ir({startResolver:ze({timelineRegistry:b.__timelines??{},includeAuthoredTimingAttrs:!0}),timelineRegistry:b.__timelines??{},rootDuration:p.durationInFrames/t.canonicalFps}),On=h}Ee(p),Ie()},Pe=(d,p=0)=>{for(let h of t.deterministicAdapters){try{d==="discover"&&h.discover(),d==="pause"&&h.pause(),d==="play"&&h.play&&h.play()}catch(b){v("runtime.init.site8",b)}if(d==="discover")try{h.seek({time:p})}catch(b){v("runtime.init.site9",b)}}},et=()=>{window.__renderReady=!1},At=null,Et=!0,ba=()=>{let d=[];for(let p of t.deterministicAdapters){let h=p.getReadyPromise;if(typeof h=="function")try{let b=h();b&&d.push(b)}catch(b){v("runtime.init.adapterReady",b)}}return d},Sa=()=>{let d=ba();if(d.length===0)return At=null,Et=!0,!0;let p=d.length===1?d[0]:Promise.all(d);return p!==At&&(At=p,Et=!1,Promise.resolve(p).then(()=>{At===p&&(Et=!0,et())},h=>{At===p&&(Et=!0,v("runtime.init.adapterReady",h),et())})),Et};if(Se)Pi();else{let d={injectedStyles:t.injectedCompStyles,injectedScripts:t.injectedCompScripts,parseDimensionPx:_,onDiagnostic:({code:p,details:h})=>{Ee({source:"hf-preview",type:"diagnostic",code:p,details:h})}};Cs(d).then(()=>ws(d)).finally(()=>{Se=!0,Dn(),bt(),Pi(),et()})}let sn=Lr({postMessage:d=>Ee(d)});sn.installPickerApi();let We=Hs();n=We,m(()=>{We.destroy(),n=null});let Bn=d=>{let p=Number(d);!Number.isFinite(p)||p<=0?t.playbackRate=1:t.playbackRate=Math.max(.1,Math.min(5,p)),t.mediaForceSyncNextTick=!0,t.capturedTimeline&&typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let h=document.querySelectorAll("video, audio");for(let b of h)if(b instanceof HTMLMediaElement)try{b.playbackRate=t.playbackRate}catch(E){v("runtime.init.site10",E)}},he=Rr({getTimeline:()=>t.capturedTimeline,setTimeline:d=>{t.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>t.isPlaying,setIsPlaying:d=>{t.isPlaying!==d&&(t.mediaForceSyncNextTick=!0),t.isPlaying=d},getPlaybackRate:()=>t.playbackRate,setPlaybackRate:Bn,getCanonicalFps:()=>t.canonicalFps,onSyncMedia:(d,p)=>{t.currentTime=Math.max(0,Number(d)||0),t.isPlaying!==p&&(t.mediaForceSyncNextTick=!0),t.isPlaying=p,Le()},onStatePost:_e,onDeterministicSeek:d=>{for(let p of t.deterministicAdapters)try{p.seek({time:Number(d)||0})}catch(h){v("runtime.init.site11",h)}},onDeterministicPause:()=>Pe("pause"),onDeterministicPlay:()=>Pe("play"),onRenderFrameSeek:()=>{We.redraw()},onShowNativeVideos:()=>{},getSafeDuration:()=>Q(t.capturedTimeline,0)});window.__player=g(he),window.__playerReady=!0,lr(Ee),Ct("composition_loaded",{duration:he.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),t.controlBridgeHandler=ar({onPlay:()=>{he.play(),Ct("composition_played",{time:he.getTime()})},onPause:()=>{he.pause(),Ct("composition_paused",{time:he.getTime()})},onStopMedia:()=>{de.stopAll();let d=document.querySelectorAll("video, audio");for(let p of d)p instanceof HTMLMediaElement&&!p.paused&&p.pause()},onSeek:(d,p)=>{let h=Math.max(0,d)/t.canonicalFps;he.seek(h),Ct("composition_seeked",{time:h})},onSetMuted:d=>{t.bridgeMuted=d;let p=d||t.mediaOutputMuted;de.setMuted(p);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=p||b.defaultMuted)},onSetVolume:d=>{t.bridgeVolume=d,de.setVolume(d);let p=document.querySelectorAll("video, audio");for(let h of p){if(!(h instanceof HTMLMediaElement))continue;let b=parseFloat(h.dataset.volume??""),E=Number.isFinite(b)?b:1;h.volume=E*d}},onSetMediaOutputMuted:d=>{t.mediaOutputMuted=d;let p=d||t.bridgeMuted;de.setMuted(p);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=p||b.defaultMuted)},onSetNativeMediaSyncDisabled:d=>{t.nativeMediaSyncDisabled!==d&&(t.nativeMediaSyncDisabled=d,t.mediaForceSyncNextTick=!0,d?(de.stopAll(),I.detachAudioSource()):Le())},onSetWebAudioMediaDisabled:d=>{t.webAudioMediaDisabled!==d&&(t.webAudioMediaDisabled=d,t.mediaForceSyncNextTick=!0,d&&(de.stopAll(),I.detachAudioSource()),Le())},onSetPlaybackRate:d=>{Bn(d),t.transportClock&&t.transportClock.setRate(t.playbackRate),or()},onSetColorGrading:(d,p)=>{We.setGrading(d,p)},onSetColorGradingCompare:(d,p)=>{We.setCompare(d,p)},onTick:()=>{if(t.tornDown||!I.isPlaying())return;let d=I.now();if(t.currentTime=d,tt(d),I.reachedEnd()){de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,tt(p)),Pe("pause"),Le(),_e(!0)}},onEnablePickMode:()=>sn.enablePickMode(),onDisablePickMode:()=>sn.disablePickMode()}),t.deterministicAdapters=[Fr(),ur({resolveStartSeconds:d=>k(d,0)}),dr(),mr(),hr(),xr(),gr(),yr(),br(),Sr(),Ar(),cr({getTimeline:()=>t.capturedTimeline})],wr(),Cr(),window.__hfReseekGpu=d=>{let p=Math.max(0,Number(d)||0);window.__hfThreeTime=p,window.__hfTypegpuTime=p,pr(p)},Me(),Dn(),Pe("discover");let I=new Nn;t.transportClock=I;let de=new _n,Hn=!1;de.init().then(d=>{Hn=d});let Aa=()=>{let d=t.capturedTimeline,p=z();t.capturedTimeline&&(p||t.capturedTimeline!==d||!he._timeline)&&(he._timeline=t.capturedTimeline);let h=Q(t.capturedTimeline,0);if(h>0&&I.setDuration(h),Pe("discover",t.currentTime),!t.capturedTimeline){let b=window.__timelines??{},E=Object.keys(b).filter(M=>b[M]);if(E.length>0){let R=S()?.getAttribute("data-composition-id")??null;f("root_timeline_unbound_registry_present",{reason:R?"root data-composition-id has no matching key in window.__timelines":"root composition element has no data-composition-id attribute",rootCompositionId:R,registeredTimelineKeys:E},"root_timeline_unbound_registry_present"),console.warn("[hyperframes] Root timeline not bound \\u2014 render will freeze at t=0. "+(R?`Root data-composition-id is "${R}" but window.__timelines has no such key. `:"Root composition element has no data-composition-id. ")+`Registered timeline keys: [${E.join(", ")}]. Register the root timeline under its data-composition-id (window.__timelines["${R??"<root-id>"}"] = tl).`)}}window.__renderReady=!0,at(),_e(!0)};if(et=()=>{if(!Se||window.__hfTimelinesBuilding){window.__renderReady=!1;return}if(Pe("discover",t.currentTime),!Sa()){window.__renderReady=!1;return}Aa()},window.__hfTimelinesBuilding){window.__renderReady=!1;let d=()=>{window.removeEventListener("hf-timelines-built",d),et()};window.addEventListener("hf-timelines-built",d)}et(),Se&&setTimeout(()=>{et()},0);let an=0,Wn=!1,Ea=(d,p,h)=>{try{d.pause(),typeof d.totalTime=="function"?d.totalTime(p,!1):d.seek(p,!1)}catch(b){v(h,b)}},wa=d=>{let p=window.__timelines??{},h=S()?.getAttribute("data-composition-id")??null;for(let[b,E]of Object.entries(p)){if(!E||b===h)continue;let M=document.querySelector(`[data-composition-id="${CSS.escape(b)}"]`);if(!M)continue;let R=k(M,0);if(!Number.isFinite(R))continue;let J=G(M,{includeAuthoredTimingAttrs:!0}),K=H(E),me=J!=null&&J>0?J:K,be=Math.max(0,me!=null&&me>0?Math.min(me,d-R):d-R);Ea(E,be,"runtime.init.transport.childTimeline")}},Ca=d=>{let p=window.__timelines??{};for(let h of Object.values(p))if(!(!h||h===d))try{h.play()}catch(b){v("runtime.init.activateSiblings",b)}},tt=(d,p)=>{let h=t.capturedTimeline;if(h){p?.activateChildren&&Ca(h);let b=h,E=d;if(typeof b.totalDuration=="function")try{let M=Number(b.totalDuration());Number.isFinite(M)&&M>0&&d>M&&(E=M)}catch(M){v("runtime.init.transport.clampDuration",M)}try{typeof h.totalTime=="function"?h.totalTime(E,!1):h.seek(E,!1)}catch(M){v("runtime.init.transport.seek",M)}}else wa(d);for(let b of t.deterministicAdapters)try{b.seek({time:d})}catch(E){v("runtime.init.transport.adapter",E)}},Fa=()=>{try{return document.querySelector(`[${Gs}]`)!=null}catch{return!1}},nr=()=>{if(!(t.tornDown||Wn)){Wn=!0;try{if(t.transportRafId=window.requestAnimationFrame(nr),an+=1,an%60===0&&!(I.isPlaying()&&t.capturedTimeline!=null&&I.now()<x)){let h=t.capturedTimeline;if(z()){t.capturedTimeline&&!he._timeline&&(he._timeline=t.capturedTimeline),t.capturedTimeline&&t.capturedTimeline!==h&&t.capturedTimeline.pause();let b=Q(t.capturedTimeline,0);b>0&&I.setDuration(b),at()}}if(an%20===0&&at(),an%30===0&&Dn(),t.capturedTimeline){let p=Q(t.capturedTimeline,0);p>0&&(!I.isPlaying()||p>=I.getDuration())&&I.setDuration(p)}if(I.isPlaying()&&!t.mediaOutputMuted)if(!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&de.isActive()&&de.context){let p=de.getTime();p>=0&&I.attachAudioSource({currentTimeSeconds:p})}else{let p=document.querySelectorAll("audio[data-start]"),h=!1;for(let b of p){if(!(b instanceof HTMLMediaElement)||!b.isConnected)continue;let E=Number.parseFloat(b.dataset.start??""),M=Number.parseFloat(b.dataset.duration??""),R=Number.isFinite(M)&&M>0?E+M:1/0,J=Number.parseFloat(b.dataset.playbackStart??b.dataset.mediaStart??"0")||0;if(Number.isFinite(E)&&t.currentTime>=E&&t.currentTime<=R){b.paused?!b.error&&b.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(I.attachAudioSource({currentTimeSeconds:t.currentTime}),h=!0):(I.attachAudioSource({el:b,compositionStart:E,mediaStart:J}),h=!0);break}}!h&&I.hasAudioSource()&&I.detachAudioSource()}else I.hasAudioSource()&&I.detachAudioSource();let d=I.now();if(t.currentTime=d,(I.isPlaying()||!Fa())&&tt(d),I.isPlaying()&&I.reachedEnd()){de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,tt(p)),Pe("pause"),Le(),_e(!0);return}I.isPlaying()&&Le(),_e(!1)}finally{Wn=!1}}},ir=d=>{let p=document.querySelectorAll("video, audio");for(let h of p){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let b=Number.parseFloat(h.dataset.start??"");if(!Number.isFinite(b))continue;let E=Number.parseFloat(h.dataset.duration??""),M=Number.isFinite(E)&&E>0?b+E:1/0;if(d<b||d>=M)continue;let R=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,J=d-b+R;if(J>=0)try{h.currentTime=J}catch{}}},rr=()=>{if(t.nativeMediaSyncDisabled||t.webAudioMediaDisabled)return;let d=de.startGeneration(),p=document.querySelectorAll("audio[data-start]");for(let h of p){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let b=Number.parseFloat(h.dataset.start??"");if(!Number.isFinite(b))continue;let E=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,M=Number.parseFloat(h.dataset.volume??""),R=Number.isFinite(M)?M:1,J=Number.parseFloat(h.dataset.duration??""),K=Number.isFinite(J)&&J>0?J:Number.POSITIVE_INFINITY,me=h.closest("[data-composition-id]");if(me){let be=k(me,0),oe=G(me,{includeAuthoredTimingAttrs:!0});oe!=null&&oe>0&&(K=Math.min(K,Math.max(0,be+oe-b)))}de.decodeAudioElement(h).then(be=>{!be||!I.isPlaying()||de.schedulePlayback(h,be,b,E,I.now(),R*t.bridgeVolume,d,t.playbackRate,K)})}},or=()=>{de.setRate(t.playbackRate)&&!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&Hn&&I.isPlaying()&&de.hasBoundedActiveSources()&&(de.stopAll(),rr())};if(he.play=()=>{let d=t.capturedTimeline;if(I.isPlaying())return;let p=Q(d,0);if(p>0)I.setDuration(p),I.reachedEnd()&&(I.seek(0),t.currentTime=0,tt(0));else{let h=S(),b=Number(h?.getAttribute("data-duration")??0);b>0&&I.setDuration(b)}d&&d.pause(),I.play()&&(t.isPlaying=!0,t.mediaForceSyncNextTick=!0,ir(I.now()),Hn&&!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&rr(),Pe("play"),Le(),We.redraw(),_e(!0))},he.pause=()=>{if(!I.isPlaying())return;de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1,t.currentTime=I.now(),t.mediaForceSyncNextTick=!0,ir(t.currentTime);let d=t.capturedTimeline;d&&d.pause(),Pe("pause"),Le(),We.redraw(),_e(!0)},he.seek=d=>{let p=ut(Math.max(0,Number(d)||0),t.canonicalFps);de.stopAll(),I.detachAudioSource(),I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0;let b=t.capturedTimeline;b&&b.pause(),tt(t.currentTime),Pe("pause"),Le(),We.redraw(),_e(!0)},he.renderSeek=d=>{let p=ut(Math.max(0,Number(d)||0),t.canonicalFps);I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0,tt(t.currentTime,{activateChildren:!0}),Le(),We.redraw(),_e(!0)},he.getTime=()=>I.now(),he.getDuration=()=>{let d=I.getDuration();return Number.isFinite(d)?d:0},he.isPlaying=()=>I.isPlaying(),he.setPlaybackRate=d=>{Bn(d),I.setRate(t.playbackRate),or()},t.capturedTimeline){let d=Q(t.capturedTimeline,0);d>0&&I.setDuration(d),t.capturedTimeline.pause()}let sr=window.__player;if(sr){let d=["play","pause","seek","renderSeek","getTime","getDuration","isPlaying"];for(let p of d)Object.defineProperty(sr,p,{get:()=>he[p],set:h=>{he[p]=h},configurable:!0})}t.transportRafId=window.requestAnimationFrame(nr),at(),_e(!0);let Gn=()=>{if(!t.tornDown){t.tornDown=!0,t.transportRafId!=null&&(window.cancelAnimationFrame(t.transportRafId),t.transportRafId=null),t.transportClock=null,de.destroy(),Ze!=null&&(window.clearTimeout(Ze),Ze=null),c!=null&&(window.cancelAnimationFrame(c),c=null),ha(),t.controlBridgeHandler&&(window.removeEventListener("message",t.controlBridgeHandler),t.controlBridgeHandler=null),i&&(window.removeEventListener("error",i),i=null),r&&(window.removeEventListener("unhandledrejection",r),r=null),t.beforeUnloadHandler&&(window.removeEventListener("beforeunload",t.beforeUnloadHandler),t.beforeUnloadHandler=null),sn.disablePickMode();for(let d of t.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch(p){v("runtime.init.site12",p)}t.deterministicAdapters=[];for(let d of o.splice(0))try{d()}catch(p){v("runtime.init.site13",p)}for(let d of t.injectedCompStyles)try{d.remove()}catch(p){v("runtime.init.site14",p)}t.injectedCompStyles=[];for(let d of t.injectedCompScripts)try{d.remove()}catch(p){v("runtime.init.site15",p)}t.injectedCompScripts=[],t.capturedTimeline=null,window.__hfRuntimeTeardown===Gn&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=Gn,t.beforeUnloadHandler=Gn,window.addEventListener("beforeunload",t.beforeUnloadHandler)}var Vs=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],ji=[[697,698,"ON"],[706,719,"ON"],[722,735,"ON"],[741,749,"ON"],[751,767,"ON"],[768,879,"NSM"],[884,885,"ON"],[894,894,"ON"],[900,901,"ON"],[903,903,"ON"],[1014,1014,"ON"],[1155,1161,"NSM"],[1418,1418,"ON"],[1421,1422,"ON"],[1423,1423,"ET"],[1424,1424,"R"],[1425,1469,"NSM"],[1470,1470,"R"],[1471,1471,"NSM"],[1472,1472,"R"],[1473,1474,"NSM"],[1475,1475,"R"],[1476,1477,"NSM"],[1478,1478,"R"],[1479,1479,"NSM"],[1480,1535,"R"],[1536,1541,"AN"],[1542,1543,"ON"],[1544,1544,"AL"],[1545,1546,"ET"],[1547,1547,"AL"],[1548,1548,"CS"],[1549,1549,"AL"],[1550,1551,"ON"],[1552,1562,"NSM"],[1563,1610,"AL"],[1611,1631,"NSM"],[1632,1641,"AN"],[1642,1642,"ET"],[1643,1644,"AN"],[1645,1647,"AL"],[1648,1648,"NSM"],[1649,1749,"AL"],[1750,1756,"NSM"],[1757,1757,"AN"],[1758,1758,"ON"],[1759,1764,"NSM"],[1765,1766,"AL"],[1767,1768,"NSM"],[1769,1769,"ON"],[1770,1773,"NSM"],[1774,1775,"AL"],[1776,1785,"EN"],[1786,1808,"AL"],[1809,1809,"NSM"],[1810,1839,"AL"],[1840,1866,"NSM"],[1867,1957,"AL"],[1958,1968,"NSM"],[1969,1983,"AL"],[1984,2026,"R"],[2027,2035,"NSM"],[2036,2037,"R"],[2038,2041,"ON"],[2042,2044,"R"],[2045,2045,"NSM"],[2046,2069,"R"],[2070,2073,"NSM"],[2074,2074,"R"],[2075,2083,"NSM"],[2084,2084,"R"],[2085,2087,"NSM"],[2088,2088,"R"],[2089,2093,"NSM"],[2094,2136,"R"],[2137,2139,"NSM"],[2140,2143,"R"],[2144,2191,"AL"],[2192,2193,"AN"],[2194,2198,"AL"],[2199,2207,"NSM"],[2208,2249,"AL"],[2250,2273,"NSM"],[2274,2274,"AN"],[2275,2306,"NSM"],[2362,2362,"NSM"],[2364,2364,"NSM"],[2369,2376,"NSM"],[2381,2381,"NSM"],[2385,2391,"NSM"],[2402,2403,"NSM"],[2433,2433,"NSM"],[2492,2492,"NSM"],[2497,2500,"NSM"],[2509,2509,"NSM"],[2530,2531,"NSM"],[2546,2547,"ET"],[2555,2555,"ET"],[2558,2558,"NSM"],[2561,2562,"NSM"],[2620,2620,"NSM"],[2625,2626,"NSM"],[2631,2632,"NSM"],[2635,2637,"NSM"],[2641,2641,"NSM"],[2672,2673,"NSM"],[2677,2677,"NSM"],[2689,2690,"NSM"],[2748,2748,"NSM"],[2753,2757,"NSM"],[2759,2760,"NSM"],[2765,2765,"NSM"],[2786,2787,"NSM"],[2801,2801,"ET"],[2810,2815,"NSM"],[2817,2817,"NSM"],[2876,2876,"NSM"],[2879,2879,"NSM"],[2881,2884,"NSM"],[2893,2893,"NSM"],[2901,2902,"NSM"],[2914,2915,"NSM"],[2946,2946,"NSM"],[3008,3008,"NSM"],[3021,3021,"NSM"],[3059,3064,"ON"],[3065,3065,"ET"],[3066,3066,"ON"],[3072,3072,"NSM"],[3076,3076,"NSM"],[3132,3132,"NSM"],[3134,3136,"NSM"],[3142,3144,"NSM"],[3146,3149,"NSM"],[3157,3158,"NSM"],[3170,3171,"NSM"],[3192,3198,"ON"],[3201,3201,"NSM"],[3260,3260,"NSM"],[3276,3277,"NSM"],[3298,3299,"NSM"],[3328,3329,"NSM"],[3387,3388,"NSM"],[3393,3396,"NSM"],[3405,3405,"NSM"],[3426,3427,"NSM"],[3457,3457,"NSM"],[3530,3530,"NSM"],[3538,3540,"NSM"],[3542,3542,"NSM"],[3633,3633,"NSM"],[3636,3642,"NSM"],[3647,3647,"ET"],[3655,3662,"NSM"],[3761,3761,"NSM"],[3764,3772,"NSM"],[3784,3790,"NSM"],[3864,3865,"NSM"],[3893,3893,"NSM"],[3895,3895,"NSM"],[3897,3897,"NSM"],[3898,3901,"ON"],[3953,3966,"NSM"],[3968,3972,"NSM"],[3974,3975,"NSM"],[3981,3991,"NSM"],[3993,4028,"NSM"],[4038,4038,"NSM"],[4141,4144,"NSM"],[4146,4151,"NSM"],[4153,4154,"NSM"],[4157,4158,"NSM"],[4184,4185,"NSM"],[4190,4192,"NSM"],[4209,4212,"NSM"],[4226,4226,"NSM"],[4229,4230,"NSM"],[4237,4237,"NSM"],[4253,4253,"NSM"],[4957,4959,"NSM"],[5008,5017,"ON"],[5120,5120,"ON"],[5760,5760,"WS"],[5787,5788,"ON"],[5906,5908,"NSM"],[5938,5939,"NSM"],[5970,5971,"NSM"],[6002,6003,"NSM"],[6068,6069,"NSM"],[6071,6077,"NSM"],[6086,6086,"NSM"],[6089,6099,"NSM"],[6107,6107,"ET"],[6109,6109,"NSM"],[6128,6137,"ON"],[6144,6154,"ON"],[6155,6157,"NSM"],[6158,6158,"BN"],[6159,6159,"NSM"],[6277,6278,"NSM"],[6313,6313,"NSM"],[6432,6434,"NSM"],[6439,6440,"NSM"],[6450,6450,"NSM"],[6457,6459,"NSM"],[6464,6464,"ON"],[6468,6469,"ON"],[6622,6655,"ON"],[6679,6680,"NSM"],[6683,6683,"NSM"],[6742,6742,"NSM"],[6744,6750,"NSM"],[6752,6752,"NSM"],[6754,6754,"NSM"],[6757,6764,"NSM"],[6771,6780,"NSM"],[6783,6783,"NSM"],[6832,6877,"NSM"],[6880,6891,"NSM"],[6912,6915,"NSM"],[6964,6964,"NSM"],[6966,6970,"NSM"],[6972,6972,"NSM"],[6978,6978,"NSM"],[7019,7027,"NSM"],[7040,7041,"NSM"],[7074,7077,"NSM"],[7080,7081,"NSM"],[7083,7085,"NSM"],[7142,7142,"NSM"],[7144,7145,"NSM"],[7149,7149,"NSM"],[7151,7153,"NSM"],[7212,7219,"NSM"],[7222,7223,"NSM"],[7376,7378,"NSM"],[7380,7392,"NSM"],[7394,7400,"NSM"],[7405,7405,"NSM"],[7412,7412,"NSM"],[7416,7417,"NSM"],[7616,7679,"NSM"],[8125,8125,"ON"],[8127,8129,"ON"],[8141,8143,"ON"],[8157,8159,"ON"],[8173,8175,"ON"],[8189,8190,"ON"],[8192,8202,"WS"],[8203,8205,"BN"],[8207,8207,"R"],[8208,8231,"ON"],[8232,8232,"WS"],[8233,8233,"B"],[8234,8238,"BN"],[8239,8239,"CS"],[8240,8244,"ET"],[8245,8259,"ON"],[8260,8260,"CS"],[8261,8286,"ON"],[8287,8287,"WS"],[8288,8303,"BN"],[8304,8304,"EN"],[8308,8313,"EN"],[8314,8315,"ES"],[8316,8318,"ON"],[8320,8329,"EN"],[8330,8331,"ES"],[8332,8334,"ON"],[8352,8399,"ET"],[8400,8432,"NSM"],[8448,8449,"ON"],[8451,8454,"ON"],[8456,8457,"ON"],[8468,8468,"ON"],[8470,8472,"ON"],[8478,8483,"ON"],[8485,8485,"ON"],[8487,8487,"ON"],[8489,8489,"ON"],[8494,8494,"ET"],[8506,8507,"ON"],[8512,8516,"ON"],[8522,8525,"ON"],[8528,8543,"ON"],[8585,8587,"ON"],[8592,8721,"ON"],[8722,8722,"ES"],[8723,8723,"ET"],[8724,9013,"ON"],[9083,9108,"ON"],[9110,9257,"ON"],[9280,9290,"ON"],[9312,9351,"ON"],[9352,9371,"EN"],[9450,9899,"ON"],[9901,10239,"ON"],[10496,11123,"ON"],[11126,11263,"ON"],[11493,11498,"ON"],[11503,11505,"NSM"],[11513,11519,"ON"],[11647,11647,"NSM"],[11744,11775,"NSM"],[11776,11869,"ON"],[11904,11929,"ON"],[11931,12019,"ON"],[12032,12245,"ON"],[12272,12287,"ON"],[12288,12288,"WS"],[12289,12292,"ON"],[12296,12320,"ON"],[12330,12333,"NSM"],[12336,12336,"ON"],[12342,12343,"ON"],[12349,12351,"ON"],[12441,12442,"NSM"],[12443,12444,"ON"],[12448,12448,"ON"],[12539,12539,"ON"],[12736,12773,"ON"],[12783,12783,"ON"],[12829,12830,"ON"],[12880,12895,"ON"],[12924,12926,"ON"],[12977,12991,"ON"],[13004,13007,"ON"],[13175,13178,"ON"],[13278,13279,"ON"],[13311,13311,"ON"],[19904,19967,"ON"],[42128,42182,"ON"],[42509,42511,"ON"],[42607,42610,"NSM"],[42611,42611,"ON"],[42612,42621,"NSM"],[42622,42623,"ON"],[42654,42655,"NSM"],[42736,42737,"NSM"],[42752,42785,"ON"],[42888,42888,"ON"],[43010,43010,"NSM"],[43014,43014,"NSM"],[43019,43019,"NSM"],[43045,43046,"NSM"],[43048,43051,"ON"],[43052,43052,"NSM"],[43064,43065,"ET"],[43124,43127,"ON"],[43204,43205,"NSM"],[43232,43249,"NSM"],[43263,43263,"NSM"],[43302,43309,"NSM"],[43335,43345,"NSM"],[43392,43394,"NSM"],[43443,43443,"NSM"],[43446,43449,"NSM"],[43452,43453,"NSM"],[43493,43493,"NSM"],[43561,43566,"NSM"],[43569,43570,"NSM"],[43573,43574,"NSM"],[43587,43587,"NSM"],[43596,43596,"NSM"],[43644,43644,"NSM"],[43696,43696,"NSM"],[43698,43700,"NSM"],[43703,43704,"NSM"],[43710,43711,"NSM"],[43713,43713,"NSM"],[43756,43757,"NSM"],[43766,43766,"NSM"],[43882,43883,"ON"],[44005,44005,"NSM"],[44008,44008,"NSM"],[44013,44013,"NSM"],[64285,64285,"R"],[64286,64286,"NSM"],[64287,64296,"R"],[64297,64297,"ES"],[64298,64335,"R"],[64336,64450,"AL"],[64451,64466,"ON"],[64467,64829,"AL"],[64830,64847,"ON"],[64848,64911,"AL"],[64912,64913,"ON"],[64914,64967,"AL"],[64968,64975,"ON"],[64976,65007,"BN"],[65008,65020,"AL"],[65021,65023,"ON"],[65024,65039,"NSM"],[65040,65049,"ON"],[65056,65071,"NSM"],[65072,65103,"ON"],[65104,65104,"CS"],[65105,65105,"ON"],[65106,65106,"CS"],[65108,65108,"ON"],[65109,65109,"CS"],[65110,65118,"ON"],[65119,65119,"ET"],[65120,65121,"ON"],[65122,65123,"ES"],[65124,65126,"ON"],[65128,65128,"ON"],[65129,65130,"ET"],[65131,65131,"ON"],[65136,65278,"AL"],[65279,65279,"BN"],[65281,65282,"ON"],[65283,65285,"ET"],[65286,65290,"ON"],[65291,65291,"ES"],[65292,65292,"CS"],[65293,65293,"ES"],[65294,65295,"CS"],[65296,65305,"EN"],[65306,65306,"CS"],[65307,65312,"ON"],[65339,65344,"ON"],[65371,65381,"ON"],[65504,65505,"ET"],[65506,65508,"ON"],[65509,65510,"ET"],[65512,65518,"ON"],[65520,65528,"BN"],[65529,65533,"ON"],[65534,65535,"BN"],[65793,65793,"ON"],[65856,65932,"ON"],[65936,65948,"ON"],[65952,65952,"ON"],[66045,66045,"NSM"],[66272,66272,"NSM"],[66273,66299,"EN"],[66422,66426,"NSM"],[67584,67870,"R"],[67871,67871,"ON"],[67872,68096,"R"],[68097,68099,"NSM"],[68100,68100,"R"],[68101,68102,"NSM"],[68103,68107,"R"],[68108,68111,"NSM"],[68112,68151,"R"],[68152,68154,"NSM"],[68155,68158,"R"],[68159,68159,"NSM"],[68160,68324,"R"],[68325,68326,"NSM"],[68327,68408,"R"],[68409,68415,"ON"],[68416,68863,"R"],[68864,68899,"AL"],[68900,68903,"NSM"],[68904,68911,"AL"],[68912,68921,"AN"],[68922,68927,"AL"],[68928,68937,"AN"],[68938,68968,"R"],[68969,68973,"NSM"],[68974,68974,"ON"],[68975,69215,"R"],[69216,69246,"AN"],[69247,69290,"R"],[69291,69292,"NSM"],[69293,69311,"R"],[69312,69327,"AL"],[69328,69336,"ON"],[69337,69369,"AL"],[69370,69375,"NSM"],[69376,69423,"R"],[69424,69445,"AL"],[69446,69456,"NSM"],[69457,69487,"AL"],[69488,69505,"R"],[69506,69509,"NSM"],[69510,69631,"R"],[69633,69633,"NSM"],[69688,69702,"NSM"],[69714,69733,"ON"],[69744,69744,"NSM"],[69747,69748,"NSM"],[69759,69761,"NSM"],[69811,69814,"NSM"],[69817,69818,"NSM"],[69826,69826,"NSM"],[69888,69890,"NSM"],[69927,69931,"NSM"],[69933,69940,"NSM"],[70003,70003,"NSM"],[70016,70017,"NSM"],[70070,70078,"NSM"],[70089,70092,"NSM"],[70095,70095,"NSM"],[70191,70193,"NSM"],[70196,70196,"NSM"],[70198,70199,"NSM"],[70206,70206,"NSM"],[70209,70209,"NSM"],[70367,70367,"NSM"],[70371,70378,"NSM"],[70400,70401,"NSM"],[70459,70460,"NSM"],[70464,70464,"NSM"],[70502,70508,"NSM"],[70512,70516,"NSM"],[70587,70592,"NSM"],[70606,70606,"NSM"],[70608,70608,"NSM"],[70610,70610,"NSM"],[70625,70626,"NSM"],[70712,70719,"NSM"],[70722,70724,"NSM"],[70726,70726,"NSM"],[70750,70750,"NSM"],[70835,70840,"NSM"],[70842,70842,"NSM"],[70847,70848,"NSM"],[70850,70851,"NSM"],[71090,71093,"NSM"],[71100,71101,"NSM"],[71103,71104,"NSM"],[71132,71133,"NSM"],[71219,71226,"NSM"],[71229,71229,"NSM"],[71231,71232,"NSM"],[71264,71276,"ON"],[71339,71339,"NSM"],[71341,71341,"NSM"],[71344,71349,"NSM"],[71351,71351,"NSM"],[71453,71453,"NSM"],[71455,71455,"NSM"],[71458,71461,"NSM"],[71463,71467,"NSM"],[71727,71735,"NSM"],[71737,71738,"NSM"],[71995,71996,"NSM"],[71998,71998,"NSM"],[72003,72003,"NSM"],[72148,72151,"NSM"],[72154,72155,"NSM"],[72160,72160,"NSM"],[72193,72198,"NSM"],[72201,72202,"NSM"],[72243,72248,"NSM"],[72251,72254,"NSM"],[72263,72263,"NSM"],[72273,72278,"NSM"],[72281,72283,"NSM"],[72330,72342,"NSM"],[72344,72345,"NSM"],[72544,72544,"NSM"],[72546,72548,"NSM"],[72550,72550,"NSM"],[72752,72758,"NSM"],[72760,72765,"NSM"],[72850,72871,"NSM"],[72874,72880,"NSM"],[72882,72883,"NSM"],[72885,72886,"NSM"],[73009,73014,"NSM"],[73018,73018,"NSM"],[73020,73021,"NSM"],[73023,73029,"NSM"],[73031,73031,"NSM"],[73104,73105,"NSM"],[73109,73109,"NSM"],[73111,73111,"NSM"],[73459,73460,"NSM"],[73472,73473,"NSM"],[73526,73530,"NSM"],[73536,73536,"NSM"],[73538,73538,"NSM"],[73562,73562,"NSM"],[73685,73692,"ON"],[73693,73696,"ET"],[73697,73713,"ON"],[78912,78912,"NSM"],[78919,78933,"NSM"],[90398,90409,"NSM"],[90413,90415,"NSM"],[92912,92916,"NSM"],[92976,92982,"NSM"],[94031,94031,"NSM"],[94095,94098,"NSM"],[94178,94178,"ON"],[94180,94180,"NSM"],[113821,113822,"NSM"],[113824,113827,"BN"],[117760,117973,"ON"],[118e3,118009,"EN"],[118010,118012,"ON"],[118016,118451,"ON"],[118458,118480,"ON"],[118496,118512,"ON"],[118528,118573,"NSM"],[118576,118598,"NSM"],[119143,119145,"NSM"],[119155,119162,"BN"],[119163,119170,"NSM"],[119173,119179,"NSM"],[119210,119213,"NSM"],[119273,119274,"ON"],[119296,119361,"ON"],[119362,119364,"NSM"],[119365,119365,"ON"],[119552,119638,"ON"],[120513,120513,"ON"],[120539,120539,"ON"],[120571,120571,"ON"],[120597,120597,"ON"],[120629,120629,"ON"],[120655,120655,"ON"],[120687,120687,"ON"],[120713,120713,"ON"],[120745,120745,"ON"],[120771,120771,"ON"],[120782,120831,"EN"],[121344,121398,"NSM"],[121403,121452,"NSM"],[121461,121461,"NSM"],[121476,121476,"NSM"],[121499,121503,"NSM"],[121505,121519,"NSM"],[122880,122886,"NSM"],[122888,122904,"NSM"],[122907,122913,"NSM"],[122915,122916,"NSM"],[122918,122922,"NSM"],[123023,123023,"NSM"],[123184,123190,"NSM"],[123566,123566,"NSM"],[123628,123631,"NSM"],[123647,123647,"ET"],[124140,124143,"NSM"],[124398,124399,"NSM"],[124643,124643,"NSM"],[124646,124646,"NSM"],[124654,124655,"NSM"],[124661,124661,"NSM"],[124928,125135,"R"],[125136,125142,"NSM"],[125143,125251,"R"],[125252,125258,"NSM"],[125259,126063,"R"],[126064,126143,"AL"],[126144,126207,"R"],[126208,126287,"AL"],[126288,126463,"R"],[126464,126703,"AL"],[126704,126705,"ON"],[126706,126719,"AL"],[126720,126975,"R"],[126976,127019,"ON"],[127024,127123,"ON"],[127136,127150,"ON"],[127153,127167,"ON"],[127169,127183,"ON"],[127185,127221,"ON"],[127232,127242,"EN"],[127243,127247,"ON"],[127279,127279,"ON"],[127338,127343,"ON"],[127405,127405,"ON"],[127584,127589,"ON"],[127744,128728,"ON"],[128732,128748,"ON"],[128752,128764,"ON"],[128768,128985,"ON"],[128992,129003,"ON"],[129008,129008,"ON"],[129024,129035,"ON"],[129040,129095,"ON"],[129104,129113,"ON"],[129120,129159,"ON"],[129168,129197,"ON"],[129200,129211,"ON"],[129216,129217,"ON"],[129232,129240,"ON"],[129280,129623,"ON"],[129632,129645,"ON"],[129648,129660,"ON"],[129664,129674,"ON"],[129678,129734,"ON"],[129736,129736,"ON"],[129741,129756,"ON"],[129759,129770,"ON"],[129775,129784,"ON"],[129792,129938,"ON"],[129940,130031,"ON"],[130032,130041,"EN"],[130042,130042,"ON"],[131070,131071,"BN"],[196606,196607,"BN"],[262142,262143,"BN"],[327678,327679,"BN"],[393214,393215,"BN"],[458750,458751,"BN"],[524286,524287,"BN"],[589822,589823,"BN"],[655358,655359,"BN"],[720894,720895,"BN"],[786430,786431,"BN"],[851966,851967,"BN"],[917502,917759,"BN"],[917760,917999,"NSM"],[918e3,921599,"BN"],[983038,983039,"BN"],[1048574,1048575,"BN"],[1114110,1114111,"BN"]];function rd(t){if(t<=255)return Vs[t];let e=0,n=ji.length-1;for(;e<=n;){let i=e+n>>1,r=ji[i];if(t<r[0]){n=i-1;continue}if(t>r[1]){e=i+1;continue}return r[2]}return"L"}function od(t){let e=t.length;if(e===0)return null;let n=new Array(e),i=!1;for(let l=0;l<e;){let u=t.charCodeAt(l),m=u,f=1;if(u>=55296&&u<=56319&&l+1<e){let A=t.charCodeAt(l+1);A>=56320&&A<=57343&&(m=(u-55296<<10)+(A-56320)+65536,f=2)}let g=rd(m);(g==="R"||g==="AL"||g==="AN")&&(i=!0);for(let A=0;A<f;A++)n[l+A]=g;l+=f}if(!i)return null;let r=0;for(let l=0;l<e;l++){let u=n[l];if(u==="L"){r=0;break}if(u==="R"||u==="AL"){r=1;break}}let o=new Int8Array(e);for(let l=0;l<e;l++)o[l]=r;let s=r&1?"R":"L",c=s,a=c;for(let l=0;l<e;l++)n[l]==="NSM"?n[l]=a:a=n[l];a=c;for(let l=0;l<e;l++){let u=n[l];u==="EN"?n[l]=a==="AL"?"AN":"EN":(u==="R"||u==="L"||u==="AL")&&(a=u)}for(let l=0;l<e;l++)n[l]==="AL"&&(n[l]="R");for(let l=1;l<e-1;l++)n[l]==="ES"&&n[l-1]==="EN"&&n[l+1]==="EN"&&(n[l]="EN"),n[l]==="CS"&&(n[l-1]==="EN"||n[l-1]==="AN")&&n[l+1]===n[l-1]&&(n[l]=n[l-1]);for(let l=0;l<e;l++){if(n[l]!=="EN")continue;let u;for(u=l-1;u>=0&&n[u]==="ET";u--)n[u]="EN";for(u=l+1;u<e&&n[u]==="ET";u++)n[u]="EN"}for(let l=0;l<e;l++){let u=n[l];(u==="WS"||u==="ES"||u==="ET"||u==="CS")&&(n[l]="ON")}a=c;for(let l=0;l<e;l++){let u=n[l];u==="EN"?n[l]=a==="L"?"L":"EN":(u==="R"||u==="L")&&(a=u)}for(let l=0;l<e;l++){if(n[l]!=="ON")continue;let u=l+1;for(;u<e&&n[u]==="ON";)u++;let m=l>0?n[l-1]:c,f=u<e?n[u]:c,g=m!=="L"?"R":"L";if(g===(f!=="L"?"R":"L"))for(let y=l;y<u;y++)n[y]=g;l=u-1}for(let l=0;l<e;l++)n[l]==="ON"&&(n[l]=s);for(let l=0;l<e;l++){let u=n[l];(o[l]&1)===0?u==="R"?o[l]++:(u==="AN"||u==="EN")&&(o[l]+=2):(u==="L"||u==="AN"||u==="EN")&&o[l]++}return o}function zs(t,e){let n=od(t);if(n===null)return null;let i=new Int8Array(e.length);for(let r=0;r<e.length;r++)i[r]=n[e[r]];return i}var sd=/[ \\t\\n\\r\\f]+/g,ad=/[\\t\\n\\r\\f]| {2,}|^ | $/;function ld(t){let e=t??"normal";return e==="pre-wrap"?{mode:e,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:e,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function ud(t){if(!ad.test(t))return t;let e=t.replace(sd," ");return e.charCodeAt(0)===32&&(e=e.slice(1)),e.length>0&&e.charCodeAt(e.length-1)===32&&(e=e.slice(0,-1)),e}function cd(t){return/[\\r\\f]/.test(t)?t.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):t.replace(/\\r\\n/g,`\n`)}var qi=null,dd;function fd(){return qi===null&&(qi=new Intl.Segmenter(dd,{granularity:"word"})),qi}var md=/\\p{Script=Arabic}/u,Tn=/\\p{M}/u,Qs=/\\p{Nd}/u;function js(t){return md.test(t)}function qs(t){return t>=19968&&t<=40959||t>=13312&&t<=19903||t>=131072&&t<=173791||t>=173824&&t<=177983||t>=177984&&t<=178207||t>=178208&&t<=183983||t>=183984&&t<=191471||t>=191472&&t<=192093||t>=194560&&t<=195103||t>=196608&&t<=201551||t>=201552&&t<=205743||t>=205744&&t<=210041||t>=63744&&t<=64255||t>=12288&&t<=12351||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=65280&&t<=65519}function De(t){for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);if(!(n<12288)){if(n>=55296&&n<=56319&&e+1<t.length){let i=t.charCodeAt(e+1);if(i>=56320&&i<=57343){let r=(n-55296<<10)+(i-56320)+65536;if(qs(r))return!0;e++;continue}}if(qs(n))return!0}}return!1}function pd(t){let e=kn(t);return e!==null&&(vn.has(e)||Xe.has(e))}var hd=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function xd(t){return De(t)}function gd(t){let e=kn(t);return e!==null&&hd.has(e)}function Ln(t){return!pd(t)&&!gd(t)}var vn=new Set(["\\uFF0C","\\uFF0E","\\uFF01","\\uFF1A","\\uFF1B","\\uFF1F","\\u3001","\\u3002","\\u30FB","\\uFF09","\\u3015","\\u3009","\\u300B","\\u300D","\\u300F","\\u3011","\\u3017","\\u3019","\\u301B","\\u30FC","\\u3005","\\u303B","\\u309D","\\u309E","\\u30FD","\\u30FE"]),nn=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),Ki=new Set(["\'","\\u2019"]),Xe=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),yd=new Set([":",".","\\u060C","\\u061B"]),bd=new Set(["\\u104F"]),Sd=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function Ad(t){if(Ji(t))return!0;let e=!1;for(let n of t){if(Xe.has(n)){e=!0;continue}if(!(e&&Tn.test(n)))return!1}return e}function Ed(t){for(let e of t)if(!vn.has(e)&&!Xe.has(e))return!1;return t.length>0}function wd(t){if(Ji(t))return!0;for(let e of t)if(!nn.has(e)&&!Ki.has(e)&&!Tn.test(e))return!1;return t.length>0}function Ji(t){let e=!1;for(let n of t)if(!(n==="\\\\"||Tn.test(n))){if(nn.has(n)||Xe.has(n)||Ki.has(n)){e=!0;continue}return!1}return e}function Zs(t,e){let n=e-1;if(n<=0)return Math.max(n,0);let i=t.charCodeAt(n);if(i<56320||i>57343)return n;let r=n-1;if(r<0)return n;let o=t.charCodeAt(r);return o>=55296&&o<=56319?r:n}function kn(t){if(t.length===0)return null;let e=Zs(t,t.length);return t.slice(e)}function Cd(t){let e=Array.from(t),n=e.length;for(;n>0;){let i=e[n-1];if(Tn.test(i)){n--;continue}if(nn.has(i)||Ki.has(i)){n--;continue}break}return n<=0||n===e.length?null:{head:e.slice(0,n).join(""),tail:e.slice(n).join("")}}function Fd(t,e,n){return n==="text"&&!e&&t.length===1&&t!=="-"&&t!=="\\u2014"?t:null}function $s(t,e,n,i){let r=e[i],o=t[i];if(r==null)return o;let s=n[i];if(o.length===s)return o;let c=r.repeat(s);return t[i]=c,c}function Ks(t,e){return t&&e!==null&&yd.has(e)}function Md(t){let e=kn(t);return e!==null&&bd.has(e)}function Nd(t){if(t.length<2||t[0]!==" ")return null;let e=t.slice(1);return/^\\p{M}+$/u.test(e)?{space:" ",marks:e}:null}function Rn(t){let e=t.length;for(;e>0;){let n=Zs(t,e),i=t.slice(n,e);if(Sd.has(i))return!0;if(!Xe.has(i))return!1;e=n}return!1}function _d(t,e){if(e.preserveOrdinarySpaces||e.preserveHardBreaks){if(t===" ")return"preserved-space";if(t===" ")return"tab";if(e.preserveHardBreaks&&t===`\n`)return"hard-break"}return t===" "?"space":t==="\\xA0"||t==="\\u202F"||t==="\\u2060"||t==="\\uFEFF"?"glue":t==="\\u200B"?"zero-width-break":t==="\\xAD"?"soft-hyphen":"text"}var Td=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function Te(t){return t.length===1?t[0]:t.join("")}function Ld(t,e){let n=[];for(let i=t.length-1;i>=0;i--)n.push(t[i]);return n.push(e),Te(n)}function vd(t,e,n,i){if(!Td.test(t))return[{text:t,isWordLike:e,kind:"text",start:n}];let r=[],o=null,s=[],c=n,a=!1,l=0;for(let u of t){let m=_d(u,i),f=m==="text"&&e;if(o!==null&&m===o&&f===a){s.push(u),l+=u.length;continue}o!==null&&r.push({text:Te(s),isWordLike:a,kind:o,start:c}),o=m,s=[u],c=n+l,a=f,l+=u.length}return o!==null&&r.push({text:Te(s),isWordLike:a,kind:o,start:c}),r}function $i(t){return t==="space"||t==="preserved-space"||t==="zero-width-break"||t==="hard-break"}var kd=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function Rd(t,e){let n=t.texts[e];return n.startsWith("www.")?!0:kd.test(n)&&e+1<t.len&&t.kinds[e+1]==="text"&&t.texts[e+1]==="//"}function Dd(t){return t.includes("?")&&(t.includes("://")||t.startsWith("www."))}function Id(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let s=0;s<t.len;s++){if(i[s]!=="text"||!Rd(t,s))continue;let c=[e[s]],a=s+1;for(;a<t.len&&!$i(i[a]);){c.push(e[a]),n[s]=!0;let l=e[a].includes("?");if(i[a]="text",e[a]="",a++,l)break}e[s]=Te(c)}let o=0;for(let s=0;s<e.length;s++){let c=e[s];c.length!==0&&(o!==s&&(e[o]=c,n[o]=n[s],i[o]=i[s],r[o]=r[s]),o++)}return e.length=o,n.length=o,i.length=o,r.length=o,{len:o,texts:e,isWordLike:n,kinds:i,starts:r}}function Pd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o]),!Dd(s))continue;let c=o+1;if(c>=t.len||$i(t.kinds[c]))continue;let a=[],l=t.starts[c],u=c;for(;u<t.len&&!$i(t.kinds[u]);)a.push(t.texts[u]),u++;a.length>0&&(e.push(Te(a)),n.push(!0),i.push("text"),r.push(l),o=u-1)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}var Od=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Js=/^[A-Za-z0-9_]+[,:;]*$/,Ys=/[,:;]+$/;function ea(t){for(let e of t)if(Qs.test(e))return!0;return!1}function tn(t){if(t.length===0)return!1;for(let e of t)if(!(Qs.test(e)||Od.has(e)))return!1;return!0}function Bd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],c=t.kinds[o];if(c==="text"&&tn(s)&&ea(s)){let a=[s],l=o+1;for(;l<t.len&&t.kinds[l]==="text"&&tn(t.texts[l]);)a.push(t.texts[l]),l++;e.push(Te(a)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=l-1;continue}e.push(s),n.push(t.isWordLike[o]),i.push(c),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Hd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],c=t.kinds[o],a=t.isWordLike[o];if(c==="text"&&a&&Js.test(s)){let l=[s],u=Ys.test(s),m=o+1;for(;u&&m<t.len&&t.kinds[m]==="text"&&t.isWordLike[m]&&Js.test(t.texts[m]);){let f=t.texts[m];l.push(f),u=Ys.test(f),m++}e.push(Te(l)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=m-1;continue}e.push(s),n.push(a),i.push(c),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Wd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(t.kinds[o]==="text"&&s.includes("-")){let c=s.split("-"),a=c.length>1;for(let l=0;l<c.length;l++){let u=c[l];if(!a)break;(u.length===0||!ea(u)||!tn(u))&&(a=!1)}if(a){let l=0;for(let u=0;u<c.length;u++){let m=c[u],f=u<c.length-1?`${m}-`:m;e.push(f),n.push(!0),i.push("text"),r.push(t.starts[o]+l),l+=f.length}continue}}e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Gd(t){let e=[],n=[],i=[],r=[],o=0;for(;o<t.len;){let s=[t.texts[o]],c=t.isWordLike[o],a=t.kinds[o],l=t.starts[o];if(a==="glue"){let u=[s[0]],m=l;for(o++;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let f=Te(u);if(o<t.len&&t.kinds[o]==="text")s[0]=f,s.push(t.texts[o]),c=t.isWordLike[o],a="text",l=m,o++;else{e.push(f),n.push(!1),i.push("glue"),r.push(m);continue}}else o++;if(a==="text")for(;o<t.len&&t.kinds[o]==="glue";){let u=[];for(;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let m=Te(u);if(o<t.len&&t.kinds[o]==="text"){s.push(m,t.texts[o]),c=c||t.isWordLike[o],o++;continue}s.push(m)}e.push(Te(s)),n.push(c),i.push(a),r.push(l)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Ud(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let o=0;o<e.length-1;o++){if(i[o]!=="text"||i[o+1]!=="text"||!De(e[o])||!De(e[o+1]))continue;let s=Cd(e[o]);s!==null&&(e[o]=s.head,e[o+1]=s.tail+e[o+1],r[o+1]=r[o]+s.head.length)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Xs(t,e,n){let i=fd(),r=0,o=[],s=[],c=[],a=[],l=[],u=[],m=[],f=[],g=[],A=[],y=[],x=[];for(let _ of i.segment(t))for(let S of vd(_.segment,_.isWordLike??!1,_.index,n)){let se=function(){u[P]!==null&&(s[P]=[$s(o,u,m,P)],u[P]=null),s[P].push(S.text),c[P]=c[P]||S.isWordLike,f[P]=f[P]||T,g[P]=g[P]||k,A[P]=j,y[P]=ie,x[P]=Ks(g[P],G)},C=S.kind==="text",F=Fd(S.text,S.isWordLike,S.kind),T=De(S.text),k=js(S.text),G=kn(S.text),j=Rn(S.text),ie=Md(S.text),P=r-1;e.carryCJKAfterClosingQuote&&C&&r>0&&a[P]==="text"&&T&&f[P]&&A[P]||C&&r>0&&a[P]==="text"&&Ed(S.text)&&f[P]||C&&r>0&&a[P]==="text"&&y[P]?se():C&&r>0&&a[P]==="text"&&S.isWordLike&&k&&x[P]?(se(),c[P]=!0):F!==null&&r>0&&a[P]==="text"&&u[P]===F?m[P]=(m[P]??1)+1:C&&!S.isWordLike&&r>0&&a[P]==="text"&&(Ad(S.text)||S.text==="-"&&c[P])?se():(o[r]=S.text,s[r]=[S.text],c[r]=S.isWordLike,a[r]=S.kind,l[r]=S.start,u[r]=F,m[r]=F===null?0:1,f[r]=T,g[r]=k,A[r]=j,y[r]=ie,x[r]=Ks(k,G),r++)}for(let _=0;_<r;_++){if(u[_]!==null){o[_]=$s(o,u,m,_);continue}o[_]=Te(s[_])}for(let _=1;_<r;_++)a[_]==="text"&&!c[_]&&Ji(o[_])&&a[_-1]==="text"&&(o[_-1]+=o[_],c[_-1]=c[_-1]||c[_],o[_]="");let w=Array.from({length:r},()=>null),N=-1;for(let _=r-1;_>=0;_--){let S=o[_];if(S.length!==0){if(a[_]==="text"&&!c[_]&&wd(S)&&N>=0&&a[N]==="text"){let C=w[N]??[];C.push(S),w[N]=C,l[N]=l[_],o[_]="";continue}N=_}}for(let _=0;_<r;_++){let S=w[_];S!=null&&(o[_]=Ld(S,o[_]))}let L=0;for(let _=0;_<r;_++){let S=o[_];S.length!==0&&(L!==_&&(o[L]=S,c[L]=c[_],a[L]=a[_],l[L]=l[_]),L++)}o.length=L,c.length=L,a.length=L,l.length=L;let $=Gd({len:L,texts:o,isWordLike:c,kinds:a,starts:l}),B=Ud(Hd(Wd(Bd(Pd(Id($))))));for(let _=0;_<B.len-1;_++){let S=Nd(B.texts[_]);S!==null&&(B.kinds[_]!=="space"&&B.kinds[_]!=="preserved-space"||B.kinds[_+1]!=="text"||!js(B.texts[_+1])||(B.texts[_]=S.space,B.isWordLike[_]=!1,B.kinds[_]=B.kinds[_]==="preserved-space"?"preserved-space":"space",B.texts[_+1]=S.marks+B.texts[_+1],B.starts[_+1]=B.starts[_]+S.space.length))}return B}function Vd(t,e){if(t.len===0)return[];if(!e.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}];let n=[],i=0;for(let r=0;r<t.len;r++)t.kinds[r]==="hard-break"&&(n.push({startSegmentIndex:i,endSegmentIndex:r,consumedEndSegmentIndex:r+1}),i=r+1);return i<t.len&&n.push({startSegmentIndex:i,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}),n}function zd(t){if(t.len<=1)return t;let e=[],n=[],i=[],r=[],o=null,s=!1,c=0,a=!1,l=!1;function u(){o!==null&&(e.push(Te(o)),n.push(s),i.push("text"),r.push(c),o=null)}for(let m=0;m<t.len;m++){let f=t.texts[m],g=t.kinds[m],A=t.isWordLike[m],y=t.starts[m];if(g==="text"){let x=xd(f),w=Ln(f);if(o!==null&&a&&l){o.push(f),s=s||A,a=a||x,l=w;continue}u(),o=[f],s=A,c=y,a=x,l=w;continue}u(),e.push(f),n.push(A),i.push(g),r.push(y)}return u(),{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function ta(t,e,n="normal",i="normal"){let r=ld(n),o=r.mode==="pre-wrap"?cd(t):ud(t);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let s=i==="keep-all"?zd(Xs(o,e,r)):Xs(o,e,r);return{normalized:o,chunks:Vd(s,r),...s}}var xt=null,na=new Map,gt=null,jd=96,qd=/\\p{Emoji_Presentation}/u,$d=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,Yi=null,ia=new Map;function Xi(){if(xt!==null)return xt;if(typeof OffscreenCanvas<"u")return xt=new OffscreenCanvas(1,1).getContext("2d"),xt;if(typeof document<"u")return xt=document.createElement("canvas").getContext("2d"),xt;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function Kd(t){let e=na.get(t);return e||(e=new Map,na.set(t,e)),e}function Ve(t,e){let n=e.get(t);return n===void 0&&(n={width:Xi().measureText(t).width,containsCJK:De(t)},e.set(t,n)),n}function yt(){if(gt!==null)return gt;if(typeof navigator>"u")return gt={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},gt;let t=navigator.userAgent,n=navigator.vendor==="Apple Computer, Inc."&&t.includes("Safari/")&&!t.includes("Chrome/")&&!t.includes("Chromium/")&&!t.includes("CriOS/")&&!t.includes("FxiOS/")&&!t.includes("EdgiOS/"),i=t.includes("Chrome/")||t.includes("Chromium/")||t.includes("CriOS/")||t.includes("Edg/");return gt={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:i,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},gt}function Jd(t){let e=t.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return e?parseFloat(e[1]):16}function ra(){return Yi===null&&(Yi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Yi}function Yd(t){return qd.test(t)||t.includes("\\uFE0F")}function oa(t){return $d.test(t)}function Xd(t,e){let n=ia.get(t);if(n!==void 0)return n;let i=Xi();i.font=t;let r=i.measureText("\\u{1F600}").width;if(n=0,r>e+.5&&typeof document<"u"&&document.body!==null){let o=document.createElement("span");o.style.font=t,o.style.display="inline-block",o.style.visibility="hidden",o.style.position="absolute",o.textContent="\\u{1F600}",document.body.appendChild(o);let s=o.getBoundingClientRect().width;document.body.removeChild(o),r-s>.5&&(n=r-s)}return ia.set(t,n),n}function Qd(t){let e=0,n=ra();for(let i of n.segment(t))Yd(i.segment)&&e++;return e}function Zd(t,e){return e.emojiCount===void 0&&(e.emojiCount=Qd(t)),e.emojiCount}function Qe(t,e,n){return n===0?e.width:e.width-Zd(t,e)*n}function sa(t,e,n,i,r){if(e.breakableFitAdvances!==void 0)return e.breakableFitAdvances;let o=ra(),s=[];for(let u of o.segment(t))s.push(u.segment);if(s.length<=1)return e.breakableFitAdvances=null,e.breakableFitAdvances;if(r==="sum-graphemes"){let u=[];for(let m of s){let f=Ve(m,n);u.push(Qe(m,f,i))}return e.breakableFitAdvances=u,e.breakableFitAdvances}if(r==="pair-context"||s.length>jd){let u=[],m=null,f=0;for(let g of s){let A=Ve(g,n),y=Qe(g,A,i);if(m===null)u.push(y);else{let x=m+g,w=Ve(x,n);u.push(Qe(x,w,i)-f)}m=g,f=y}return e.breakableFitAdvances=u,e.breakableFitAdvances}let c=[],a="",l=0;for(let u of s){a+=u;let m=Ve(a,n),f=Qe(a,m,i);c.push(f-l),l=f}return e.breakableFitAdvances=c,e.breakableFitAdvances}function aa(t,e){let n=Xi();n.font=t;let i=Kd(t),r=Jd(t),o=e?Xd(t,r):0;return{cache:i,fontSize:r,emojiCorrection:o}}function ef(t,e){for(;e<t.widths.length;){let n=t.kinds[e];if(n!=="space"&&n!=="zero-width-break"&&n!=="soft-hyphen")break;e++}return e}function tf(t,e){if(e<=0)return 0;let n=t%e;return Math.abs(n)<=1e-6?e:e-n}function nf(t,e,n,i,r){let o=0,s=e;for(;o<t.length;){let c=s+t[o];if((o+1<t.length?c+r:c)>n+i)break;s=c,o++}return{fitCount:o,fittedWidth:s}}function la(t,e){return t.simpleLineWalkFastPath?ua(t,e):ca(t,e)}function ua(t,e,n){let{widths:i,kinds:r,breakableFitAdvances:o}=t;if(i.length===0)return 0;let c=yt().lineFitEpsilon,a=e+c,l=0,u=0,m=!1,f=0,g=0,A=0,y=0,x=-1,w=0;function N(){x=-1,w=0}function L(F=A,T=y,k=u){l++,n?.({startSegmentIndex:f,startGraphemeIndex:g,endSegmentIndex:F,endGraphemeIndex:T,width:k}),u=0,m=!1,N()}function $(F,T){m=!0,f=F,g=0,A=F+1,y=0,u=T}function B(F,T,k){m=!0,f=F,g=T,A=F,y=T+1,u=k}function _(F,T){if(!m){$(F,T);return}u+=T,A=F+1,y=0}function S(F,T){let k=o[F];for(let G=T;G<k.length;G++){let j=k[G];m?u+j>a?(L(),B(F,G,j)):(u+=j,A=F,y=G+1):B(F,G,j)}m&&A===F&&y===k.length&&(A=F+1,y=0)}let C=0;for(;C<i.length&&!(!m&&(C=ef(t,C),C>=i.length));){let F=i[C],T=r[C],k=T==="space"||T==="preserved-space"||T==="tab"||T==="zero-width-break"||T==="soft-hyphen";if(!m){F>e&&o[C]!==null?S(C,0):$(C,F),k&&(x=C+1,w=u-F),C++;continue}if(u+F>a){if(k){_(C,F),L(C+1,0,u-F),C++;continue}if(x>=0){if(A>x||A===x&&y>0){L();continue}L(x,0,w);continue}if(F>e&&o[C]!==null){L(),S(C,0),C++;continue}L();continue}_(C,F),k&&(x=C+1,w=u-F),C++}return m&&L(),l}function ca(t,e,n){if(t.simpleLineWalkFastPath)return ua(t,e,n);let{widths:i,lineEndFitAdvances:r,lineEndPaintAdvances:o,kinds:s,breakableFitAdvances:c,discretionaryHyphenWidth:a,tabStopAdvance:l,chunks:u}=t;if(i.length===0||u.length===0)return 0;let m=yt(),f=m.lineFitEpsilon,g=e+f,A=0,y=0,x=!1,w=0,N=0,L=0,$=0,B=-1,_=0,S=0,C=null;function F(){B=-1,_=0,S=0,C=null}function T(H=L,U=$,V=y){A++,n?.({startSegmentIndex:w,startGraphemeIndex:N,endSegmentIndex:H,endGraphemeIndex:U,width:V}),y=0,x=!1,F()}function k(H,U){x=!0,w=H,N=0,L=H+1,$=0,y=U}function G(H,U,V){x=!0,w=H,N=U,L=H,$=U+1,y=V}function j(H,U){if(!x){k(H,U);return}y+=U,L=H+1,$=0}function ie(H,U,V,re){if(!U)return;let Fe=H==="tab"?0:r[V],O=H==="tab"?re:o[V];B=V+1,_=y-re+Fe,S=y-re+O,C=H}function P(H,U){let V=c[H];for(let re=U;re<V.length;re++){let Fe=V[re];x?y+Fe>g?(T(),G(H,re,Fe)):(y+=Fe,L=H,$=re+1):G(H,re,Fe)}x&&L===H&&$===V.length&&(L=H+1,$=0)}function se(H){if(C!=="soft-hyphen")return!1;let U=c[H];if(U==null)return!1;let{fitCount:V,fittedWidth:re}=nf(U,y,e,f,a);return V===0?!1:(y=re,L=H,$=V,F(),V===U.length?(L=H+1,$=0,!0):(T(H,V,re+a),P(H,V),!0))}function Se(H){A++,n?.({startSegmentIndex:H.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:H.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),F()}for(let H=0;H<u.length;H++){let U=u[H];if(U.startSegmentIndex===U.endSegmentIndex){Se(U);continue}x=!1,y=0,w=U.startSegmentIndex,N=0,L=U.startSegmentIndex,$=0,F();let V=U.startSegmentIndex;for(;V<U.endSegmentIndex;){let re=s[V],Fe=re==="space"||re==="preserved-space"||re==="tab"||re==="zero-width-break"||re==="soft-hyphen",O=re==="tab"?tf(y,l):i[V];if(re==="soft-hyphen"){x&&(L=V+1,$=0,B=V+1,_=y+a,S=y+a,C=re),V++;continue}if(!x){O>e&&c[V]!==null?P(V,0):k(V,O),ie(re,Fe,V,O),V++;continue}if(y+O>g){let W=y+(re==="tab"?0:r[V]),Q=y+(re==="tab"?O:o[V]);if(C==="soft-hyphen"&&m.preferEarlySoftHyphenBreak&&_<=g){T(B,0,S);continue}if(C==="soft-hyphen"&&se(V)){V++;continue}if(Fe&&W<=g){j(V,O),T(V+1,0,Q),V++;continue}if(B>=0&&_<=g){if(L>B||L===B&&$>0){T();continue}let ae=B;T(ae,0,S),V=ae;continue}if(O>e&&c[V]!==null){T(),P(V,0),V++;continue}T();continue}j(V,O),ie(re,Fe,V,O),V++}if(x){let re=B===U.consumedEndSegmentIndex?S:y;T(U.consumedEndSegmentIndex,0,re)}}return A}var Qi=null;function rf(){return Qi===null&&(Qi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Qi}function of(t){return t?{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[],segments:[]}:{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[]}}function sf(t,e){let n=[],i=[],r=0,o=!1,s=!1,c=!1;function a(){i.length!==0&&(n.push({text:i.length===1?i[0]:i.join(""),start:r}),i=[],o=!1,s=!1,c=!1)}function l(m,f,g){i=[m],r=f,o=g,s=Rn(m),c=nn.has(m)}function u(m,f){i.push(m),o=o||f;let g=Rn(m);m.length===1&&Xe.has(m)?s=s||g:s=g,c=!1}for(let m of rf().segment(t)){let f=m.segment,g=De(f);if(i.length===0){l(f,m.index,g);continue}if(c||vn.has(f)||Xe.has(f)||e.carryCJKAfterClosingQuote&&g&&s){u(f,g);continue}if(!o&&!g){u(f,g);continue}a(),l(f,m.index,g)}return a(),n}function af(t){if(t.length<=1)return t;let e=[],n=[t[0].text],i=t[0].start,r=De(t[0].text),o=Ln(t[0].text);function s(){e.push({text:n.length===1?n[0]:n.join(""),start:i})}for(let c=1;c<t.length;c++){let a=t[c],l=De(a.text),u=Ln(a.text);if(r&&o){n.push(a.text),r=r||l,o=u;continue}s(),n=[a.text],i=a.start,r=l,o=u}return s(),e}function lf(t,e,n,i){let r=yt(),{cache:o,emojiCorrection:s}=aa(e,oa(t.normalized)),c=Qe("-",Ve("-",o),s),l=Qe(" ",Ve(" ",o),s)*8;if(t.len===0)return of(n);let u=[],m=[],f=[],g=[],A=t.chunks.length<=1,y=n?[]:null,x=[],w=n?[]:null,N=Array.from({length:t.len});function L(S,C,F,T,k,G,j){k!=="text"&&k!=="space"&&k!=="zero-width-break"&&(A=!1),u.push(C),m.push(F),f.push(T),g.push(k),y?.push(G),x.push(j),w!==null&&w.push(S)}function $(S,C,F,T,k){let G=Ve(S,o),j=Qe(S,G,s),ie=C==="space"||C==="preserved-space"||C==="zero-width-break"?0:j,P=C==="space"||C==="zero-width-break"?0:j;if(k&&T&&S.length>1){let se="sum-graphemes";tn(S)?se="pair-context":r.preferPrefixWidthsForBreakableRuns&&(se="segment-prefixes");let Se=sa(S,G,o,s,se);L(S,j,ie,P,C,F,Se);return}L(S,j,ie,P,C,F,null)}for(let S=0;S<t.len;S++){N[S]=u.length;let C=t.texts[S],F=t.isWordLike[S],T=t.kinds[S],k=t.starts[S];if(T==="soft-hyphen"){L(C,0,c,c,T,k,null);continue}if(T==="hard-break"){L(C,0,0,0,T,k,null);continue}if(T==="tab"){L(C,0,0,0,T,k,null);continue}let G=Ve(C,o);if(T==="text"&&G.containsCJK){let j=sf(C,r),ie=i==="keep-all"?af(j):j;for(let P=0;P<ie.length;P++){let se=ie[P];$(se.text,"text",k+se.start,F,i==="keep-all"||!De(se.text))}continue}$(C,T,k,F,!0)}let B=uf(t.chunks,N,u.length),_=y===null?null:zs(t.normalized,y);return w!==null?{widths:u,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:g,simpleLineWalkFastPath:A,segLevels:_,breakableFitAdvances:x,discretionaryHyphenWidth:c,tabStopAdvance:l,chunks:B,segments:w}:{widths:u,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:g,simpleLineWalkFastPath:A,segLevels:_,breakableFitAdvances:x,discretionaryHyphenWidth:c,tabStopAdvance:l,chunks:B}}function uf(t,e,n){let i=[];for(let r=0;r<t.length;r++){let o=t[r],s=o.startSegmentIndex<e.length?e[o.startSegmentIndex]:n,c=o.endSegmentIndex<e.length?e[o.endSegmentIndex]:n,a=o.consumedEndSegmentIndex<e.length?e[o.consumedEndSegmentIndex]:n;i.push({startSegmentIndex:s,endSegmentIndex:c,consumedEndSegmentIndex:a})}return i}function cf(t,e,n,i){let r=i?.wordBreak??"normal",o=ta(t,yt(),i?.whiteSpace,r);return lf(o,e,n,r)}function da(t,e,n){return cf(t,e,!1,n)}function fa(t,e,n){let i=la(t,e);return{lineCount:i,height:i*n}}var df={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function ma(t,e){let n={...df,...e},i=1.2;for(let r=n.baseFontSize;r>=n.minFontSize;r-=n.step){let o=`${n.fontWeight} ${r}px ${n.fontFamily}`,s=da(t,o),{lineCount:c}=fa(s,n.maxWidth,r*i);if(c<=1)return{fontSize:r,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}window.__timelines=window.__timelines||{};window.__hyperframes={fitTextFontSize:ma,getVariables:hs};function pa(){let t=window;t.__hyperframeRuntimeBootstrapped||(t.__hyperframeRuntimeBootstrapped=!0,Us())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",pa,{once:!0}):pa();})();\n';
|
|
55970
|
+
RUNTIME_IIFE = '"use strict";(()=>{var Na=Object.create;var zn=Object.defineProperty;var _a=Object.getOwnPropertyDescriptor;var Ta=Object.getOwnPropertyNames;var La=Object.getPrototypeOf,va=Object.prototype.hasOwnProperty;var ka=(t,e,n)=>e in t?zn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var te=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Ra=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Ta(e))!va.call(t,r)&&r!==n&&zn(t,r,{get:()=>e[r],enumerable:!(i=_a(e,r))||i.enumerable});return t};var Da=(t,e,n)=>(n=t!=null?Na(La(t)):{},Ra(e||!t||!t.__esModule?zn(n,"default",{value:t,enumerable:!0}):n,t));var ge=(t,e,n)=>ka(t,typeof e!="symbol"?e+"":e,n);var Gr=te((Am,ii)=>{var Y=String,Wr=function(){return{isColorSupported:!1,reset:Y,bold:Y,dim:Y,italic:Y,underline:Y,inverse:Y,hidden:Y,strikethrough:Y,black:Y,red:Y,green:Y,yellow:Y,blue:Y,magenta:Y,cyan:Y,white:Y,gray:Y,bgBlack:Y,bgRed:Y,bgGreen:Y,bgYellow:Y,bgBlue:Y,bgMagenta:Y,bgCyan:Y,bgWhite:Y,blackBright:Y,redBright:Y,greenBright:Y,yellowBright:Y,blueBright:Y,magentaBright:Y,cyanBright:Y,whiteBright:Y,bgBlackBright:Y,bgRedBright:Y,bgGreenBright:Y,bgYellowBright:Y,bgBlueBright:Y,bgMagentaBright:Y,bgCyanBright:Y,bgWhiteBright:Y}};ii.exports=Wr();ii.exports.createColors=Wr});var ri=te(()=>{});var cn=te((Cm,zr)=>{"use strict";var Ur=Gr(),Vr=ri(),kt=class t extends Error{constructor(e,n,i,r,o,s){super(e),this.name="CssSyntaxError",this.reason=e,o&&(this.file=o),r&&(this.source=r),s&&(this.plugin=s),typeof n<"u"&&typeof i<"u"&&(typeof n=="number"?(this.line=n,this.column=i):(this.line=n.line,this.column=n.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,t)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let n=this.source;e==null&&(e=Ur.isColorSupported);let i=u=>u,r=u=>u,o=u=>u;if(e){let{bold:u,gray:m,red:f}=Ur.createColors(!0);r=g=>u(f(g)),i=g=>m(g),Vr&&(o=g=>Vr(g))}let s=n.split(/\\r?\\n/),c=Math.max(this.line-3,0),a=Math.min(this.line+2,s.length),l=String(a).length;return s.slice(c,a).map((u,m)=>{let f=c+1+m,g=" "+(" "+f).slice(-l)+" | ";if(f===this.line){if(u.length>160){let y=20,x=Math.max(0,this.column-y),w=Math.max(this.column+y,this.endColumn+y),N=u.slice(x,w),L=i(g.replace(/\\d/g," "))+u.slice(0,Math.min(this.column-1,y-1)).replace(/[^\\t]/g," ");return r(">")+i(g)+o(N)+`\n `+L+r("^")}let A=i(g.replace(/\\d/g," "))+u.slice(0,this.column-1).replace(/[^\\t]/g," ");return r(">")+i(g)+o(u)+`\n `+A+r("^")}return" "+i(g)+o(u)}).join(`\n`)}toString(){let e=this.showSourceCode();return e&&(e=`\n\n`+e+`\n`),this.name+": "+this.message+e}};zr.exports=kt;kt.default=kt});var oi=te((Fm,qr)=>{"use strict";var pl=/(<)(\\/?style\\b)/gi,hl=/(<)(!--)/g;function je(t){return typeof t!="string"||!t.includes("<")?t:t.replace(pl,"\\\\3c $2").replace(hl,"\\\\3c $2")}var jr={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function xl(t){return t[0].toUpperCase()+t.slice(1)}var Rt=class{constructor(e){this.builder=e}atrule(e,n){let i=e.raws,r="@"+e.name,o=e.params?this.rawValue(e,"params"):"";if(typeof i.afterName<"u"?r+=i.afterName:o&&(r+=" "),e.nodes)this.block(e,r+o);else{let s=(i.between||"")+(n?";":"");this.builder(je(r+o+s),e)}}beforeAfter(e,n){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):n==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let r=e.parent,o=0;for(;r&&r.type!=="root";)o+=1,r=r.parent;if(i.includes(`\n`)){let s=this.raw(e,null,"indent");if(s.length)for(let c=0;c<o;c++)i+=s}return i}block(e,n){let i=this.raw(e,"between","beforeOpen");this.builder(je(n+i)+"{",e,"start");let r;e.nodes&&e.nodes.length?(this.body(e),r=this.raw(e,"after")):r=this.raw(e,"after","emptyBody"),r&&this.builder(je(r)),this.builder("}",e,"end")}body(e){let n=e.nodes,i=n.length-1;for(;i>0&&n[i].type==="comment";)i-=1;let r=this.raw(e,"semicolon"),o=e.type==="document";for(let s=0;s<n.length;s++){let c=n[s],a=this.raw(c,"before");a&&this.builder(o?a:je(a)),this.stringify(c,i!==s||r)}}comment(e){let n=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder(je("/*"+n+e.text+i+"*/"),e)}decl(e,n){let i=e.raws,r=this.raw(e,"between","colon"),o=e.prop+r+this.rawValue(e,"value");e.important&&(o+=i.important||" !important"),n&&(o+=";"),this.builder(je(o),e)}document(e){this.body(e)}raw(e,n,i){let r;if(i||(i=n),n&&(r=e.raws[n],typeof r<"u"))return r;let o=e.parent;if(i==="before"&&(!o||o.type==="root"&&o.first===e||o&&o.type==="document"))return"";if(!o)return jr[i];let s=e.root(),c=s.rawCache||(s.rawCache={});if(typeof c[i]<"u")return c[i];if(i==="before"||i==="after")return this.beforeAfter(e,i);{let a="raw"+xl(i);this[a]?r=this[a](s,e):s.walk(l=>{if(r=l.raws[n],typeof r<"u")return!1})}return typeof r>"u"&&(r=jr[i]),c[i]=r,r}rawBeforeClose(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after<"u")return n=i.raws.after,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawBeforeComment(e,n){let i;return e.walkComments(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeDecl"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeDecl(e,n){let i;return e.walkDecls(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeRule"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeOpen(e){let n;return e.walk(i=>{if(i.type!=="decl"&&(n=i.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(e){let n;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before<"u")return n=i.raws.before,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawColon(e){let n;return e.walkDecls(i=>{if(typeof i.raws.between<"u")return n=i.raws.between.replace(/[^\\s:]/g,""),!1}),n}rawEmptyBody(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(n=i.raws.after,typeof n<"u"))return!1}),n}rawIndent(e){if(e.raws.indent)return e.raws.indent;let n;return e.walk(i=>{let r=i.parent;if(r&&r!==e&&r.parent&&r.parent===e&&typeof i.raws.before<"u"){let o=i.raws.before.split(`\n`);return n=o[o.length-1],n=n.replace(/\\S/g,""),!1}}),n}rawSemicolon(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(n=i.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(e,n){let i=e[n],r=e.raws[n];return r&&r.value===i?r.raw:i}root(e){if(this.body(e),e.raws.after){let n=e.raws.after,i=e.parent&&e.parent.type==="document";this.builder(i?n:je(n))}}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(je(e.raws.ownSemicolon),e,"end")}stringify(e,n){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,n)}};qr.exports=Rt;Rt.default=Rt});var Dt=te((Mm,$r)=>{"use strict";var gl=oi();function si(t,e){new gl(e).stringify(t)}$r.exports=si;si.default=si});var dn=te((Nm,ai)=>{"use strict";ai.exports.isClean=Symbol("isClean");ai.exports.my=Symbol("my")});var Ot=te((_m,Kr)=>{"use strict";var yl=cn(),bl=oi(),Sl=Dt(),{isClean:It,my:Al}=dn();function li(t,e){let n=new t.constructor;for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i)||i==="proxyCache")continue;let r=t[i],o=typeof r;i==="parent"&&o==="object"?e&&(n[i]=e):i==="source"?n[i]=r:Array.isArray(r)?n[i]=r.map(s=>li(s,n)):(o==="object"&&r!==null&&(r=li(r)),n[i]=r)}return n}function Ge(t,e){if(e&&typeof e.offset<"u")return e.offset;let n=1,i=1,r=0;for(let o=0;o<t.length;o++){if(i===e.line&&n===e.column){r=o;break}t[o]===`\n`?(n=1,i+=1):n+=1}return r}var Pt=class{get proxyOf(){return this}constructor(e={}){this.raws={},this[It]=!1,this[Al]=!0;for(let n in e)if(n==="nodes"){this.nodes=[];for(let i of e[n])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[n]=e[n]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\\n\\s{4}at /.test(e.stack)){let n=this.source;e.stack=e.stack.replace(/\\n\\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let n in e)this[n]=e[n];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let n=li(this);for(let i in e)n[i]=e[i];return n}cloneAfter(e={}){let n=this.clone(e);return this.parent.insertAfter(this,n),n}cloneBefore(e={}){let n=this.clone(e);return this.parent.insertBefore(this,n),n}error(e,n={}){if(this.source){let{end:i,start:r}=this.rangeBy(n);return this.source.input.error(e,{column:r.column,line:r.line},{column:i.column,line:i.line},n)}return new yl(e)}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:n==="root"?()=>e.root().toProxy():e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&e.markDirty()),!0}}}markClean(){this[It]=!0}markDirty(){if(this[It]){this[It]=!1;let e=this;for(;e=e.parent;)e[It]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let n=this.source.start;if(e.index)n=this.positionInside(e.index);else if(e.word){let i="document"in this.source.input?this.source.input.document:this.source.input.css,o=i.slice(Ge(i,this.source.start),Ge(i,this.source.end)).indexOf(e.word);o!==-1&&(n=this.positionInside(o))}return n}positionInside(e){let n=this.source.start.column,i=this.source.start.line,r="document"in this.source.input?this.source.input.document:this.source.input.css,o=Ge(r,this.source.start),s=o+e;for(let c=o;c<s;c++)r[c]===`\n`?(n=1,i+=1):n+=1;return{column:n,line:i,offset:s}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e={}){let n="document"in this.source.input?this.source.input.document:this.source.input.css,i={column:this.source.start.column,line:this.source.start.line,offset:Ge(n,this.source.start)},r=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:Ge(n,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(e.word){let s=n.slice(Ge(n,this.source.start),Ge(n,this.source.end)).indexOf(e.word);s!==-1&&(i=this.positionInside(s),r=this.positionInside(s+e.word.length))}else e.start?i={column:e.start.column,line:e.start.line,offset:Ge(n,e.start)}:e.index&&(i=this.positionInside(e.index)),e.end?r={column:e.end.column,line:e.end.line,offset:Ge(n,e.end)}:typeof e.endIndex=="number"?r=this.positionInside(e.endIndex):e.index&&(r=this.positionInside(e.index+1));return(r.line<i.line||r.line===i.line&&r.column<=i.column)&&(r={column:i.column+1,line:i.line,offset:i.offset+1}),{end:r,start:i}}raw(e,n){return new bl().raw(this,e,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let n=this,i=!1;for(let r of e)r===this?i=!0:i?(this.parent.insertAfter(n,r),n=r):this.parent.insertBefore(n,r);i||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,n){let i={},r=n==null;n=n||new Map;let o=0;for(let s in this){if(!Object.prototype.hasOwnProperty.call(this,s)||s==="parent"||s==="proxyCache")continue;let c=this[s];if(Array.isArray(c))i[s]=c.map(a=>typeof a=="object"&&a.toJSON?a.toJSON(null,n):a);else if(typeof c=="object"&&c.toJSON)i[s]=c.toJSON(null,n);else if(s==="source"){if(c==null)continue;let a=n.get(c.input);a==null&&(a=o,n.set(c.input,o),o++),i[s]={end:c.end,inputId:a,start:c.start}}else i[s]=c}return r&&(i.inputs=[...n.keys()].map(s=>s.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=Sl){e.stringify&&(e=e.stringify);let n="";return e(this,i=>{n+=i}),n}warn(e,n,i={}){let r={node:this};for(let o in i)r[o]=i[o];return e.warn(n,r)}};Kr.exports=Pt;Pt.default=Pt});var Ht=te((Tm,Jr)=>{"use strict";var El=Ot(),Bt=class extends El{constructor(e){super(e),this.type="comment"}};Jr.exports=Bt;Bt.default=Bt});var Gt=te((Lm,Yr)=>{"use strict";var wl=Ot(),Wt=class extends wl{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}};Yr.exports=Wt;Wt.default=Wt});var qe=te((vm,oo)=>{"use strict";var Xr=Ht(),Qr=Gt(),Cl=Ot(),{isClean:Zr,my:eo}=dn(),ui,to,no,ci;function io(t){return t.map(e=>(e.nodes&&(e.nodes=io(e.nodes)),delete e.source,e))}function ro(t){if(t[Zr]=!1,t.proxyOf.nodes)for(let e of t.proxyOf.nodes)ro(e)}var Re=class t extends Cl{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...e){for(let n of e){let i=this.normalize(n,this.last);for(let r of i)this.proxyOf.nodes.push(r)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let n of this.nodes)n.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let n=this.getIterator(),i,r;for(;this.indexes[n]<this.proxyOf.nodes.length&&(i=this.indexes[n],r=e(this.proxyOf.nodes[i],i),r!==!1);)this.indexes[n]+=1;return delete this.indexes[n],r}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:e[n]?n==="each"||typeof n=="string"&&n.startsWith("walk")?(...i)=>e[n](...i.map(r=>typeof r=="function"?(o,s)=>r(o.toProxy(),s):r)):n==="every"||n==="some"?i=>e[n]((r,...o)=>i(r.toProxy(),...o)):n==="root"?()=>e.root().toProxy():n==="nodes"?e.nodes.map(i=>i.toProxy()):n==="first"||n==="last"?e[n].toProxy():e[n]:e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="name"||n==="params"||n==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,n){let i=this.index(e),r=this.normalize(n,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let s of r)this.proxyOf.nodes.splice(i+1,0,s);let o;for(let s in this.indexes)o=this.indexes[s],i<o&&(this.indexes[s]=o+r.length);return this.markDirty(),this}insertBefore(e,n){let i=this.index(e),r=i===0?"prepend":!1,o=this.normalize(n,this.proxyOf.nodes[i],r).reverse();i=this.index(e);for(let c of o)this.proxyOf.nodes.splice(i,0,c);let s;for(let c in this.indexes)s=this.indexes[c],i<=s&&(this.indexes[c]=s+o.length);return this.markDirty(),this}normalize(e,n){if(typeof e=="string")e=io(to(e).nodes);else if(typeof e>"u")e=[];else if(Array.isArray(e)){e=e.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>"u")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new Qr(e)]}else if(e.selector||e.selectors)e=[new ci(e)];else if(e.name)e=[new ui(e)];else if(e.text)e=[new Xr(e)];else throw new Error("Unknown node type in node creation");return e.map(r=>(r[eo]||t.rebuild(r),r=r.proxyOf,r.parent&&r.parent.removeChild(r),r[Zr]&&ro(r),r.raws||(r.raws={}),typeof r.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(r.raws.before=n.raws.before.replace(/\\S/g,"")),r.parent=this.proxyOf,r))}prepend(...e){e=e.reverse();for(let n of e){let i=this.normalize(n,this.first,"prepend").reverse();for(let r of i)this.proxyOf.nodes.unshift(r);for(let r in this.indexes)this.indexes[r]=this.indexes[r]+i.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let n;for(let i in this.indexes)n=this.indexes[i],n>=e&&(this.indexes[i]=n-1);return this.markDirty(),this}replaceValues(e,n,i){return i||(i=n,n={}),this.walkDecls(r=>{n.props&&!n.props.includes(r.prop)||n.fast&&!r.value.includes(n.fast)||(r.value=r.value.replace(e,i))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((n,i)=>{let r;try{r=e(n,i)}catch(o){throw n.addToError(o)}return r!==!1&&n.walk&&(r=n.walk(e)),r})}walkAtRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="atrule"&&e.test(i.name))return n(i,r)}):this.walk((i,r)=>{if(i.type==="atrule"&&i.name===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="atrule")return n(i,r)}))}walkComments(e){return this.walk((n,i)=>{if(n.type==="comment")return e(n,i)})}walkDecls(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="decl"&&e.test(i.prop))return n(i,r)}):this.walk((i,r)=>{if(i.type==="decl"&&i.prop===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="decl")return n(i,r)}))}walkRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="rule"&&e.test(i.selector))return n(i,r)}):this.walk((i,r)=>{if(i.type==="rule"&&i.selector===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="rule")return n(i,r)}))}};Re.registerParse=t=>{to=t};Re.registerRule=t=>{ci=t};Re.registerAtRule=t=>{ui=t};Re.registerRoot=t=>{no=t};oo.exports=Re;Re.default=Re;Re.rebuild=t=>{t.type==="atrule"?Object.setPrototypeOf(t,ui.prototype):t.type==="rule"?Object.setPrototypeOf(t,ci.prototype):t.type==="decl"?Object.setPrototypeOf(t,Qr.prototype):t.type==="comment"?Object.setPrototypeOf(t,Xr.prototype):t.type==="root"&&Object.setPrototypeOf(t,no.prototype),t[eo]=!0,t.nodes&&t.nodes.forEach(e=>{Re.rebuild(e)})}});var fn=te((km,ao)=>{"use strict";var so=qe(),ct=class extends so{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};ao.exports=ct;ct.default=ct;so.registerAtRule(ct)});var mn=te((Rm,co)=>{"use strict";var Fl=qe(),lo,uo,rt=class extends Fl{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new lo(new uo,this,e).stringify()}};rt.registerLazyResult=t=>{lo=t};rt.registerProcessor=t=>{uo=t};co.exports=rt;rt.default=rt});var mo=te((Dm,fo)=>{var Ml="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Nl=(t,e=21)=>(n=e)=>{let i="",r=n|0;for(;r--;)i+=t[Math.random()*t.length|0];return i},_l=(t=21)=>{let e="",n=t|0;for(;n--;)e+=Ml[Math.random()*64|0];return e};fo.exports={nanoid:_l,customAlphabet:Nl}});var pn=te(()=>{});var hn=te(()=>{});var di=te(()=>{});var po=te(()=>{});var mi=te((Vm,go)=>{"use strict";var{existsSync:Tl,readFileSync:Ll}=po(),{dirname:fi,join:vl}=pn(),{SourceMapConsumer:ho,SourceMapGenerator:xo}=hn();function kl(t){return Buffer?Buffer.from(t,"base64").toString():window.atob(t)}var Ut=class{constructor(e,n){if(n.map===!1)return;n.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let i=n.map?n.map.prev:void 0,r=this.loadMap(n.from,i);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=fi(this.mapFile)),r&&(this.text=r)}consumer(){return this.consumerCache||(this.consumerCache=new ho(this.json||this.text)),this.consumerCache}decodeInline(e){let n=/^data:application\\/json;charset=utf-?8;base64,/,i=/^data:application\\/json;base64,/,r=/^data:application\\/json;charset=utf-?8,/,o=/^data:application\\/json,/,s=e.match(r)||e.match(o);if(s)return decodeURIComponent(e.substr(s[0].length));let c=e.match(n)||e.match(i);if(c)return kl(e.substr(c[0].length));let a=e.slice(22);throw a=a.slice(0,a.indexOf(",")),new Error("Unsupported source map encoding "+a)}getAnnotationURL(e){return e.replace(/^\\/\\*\\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let n=e.match(/\\/\\*\\s*# sourceMappingURL=/g);if(!n)return;let i=e.lastIndexOf(n.pop()),r=e.indexOf("*/",i);i>-1&&r>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,r)))}loadFile(e,n,i){if(!(!i&&!this.unsafeMap&&!/\\.map$/i.test(e))&&(this.root=fi(e),Tl(e)))return this.mapFile=e,Ll(e,"utf-8").toString().trim()}loadMap(e,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let i=n(e);if(i){let r=this.loadFile(i,e,!0);if(!r)throw new Error("Unable to load previous source map: "+i.toString());return r}}else{if(n instanceof ho)return xo.fromSourceMap(n).toString();if(n instanceof xo)return n.toString();if(this.isMap(n))return JSON.stringify(n);throw new Error("Unsupported previous source map format: "+n.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;e&&(i=vl(fi(e),i));let r=this.loadFile(i,e,!1);if(r)try{this.json=JSON.parse(r.replace(/^\\)]}\'[^\\n]*\\n/,""))}catch{return}return r}}}startWith(e,n){return e?e.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};go.exports=Ut;Ut.default=Ut});var Vt=te((zm,Eo)=>{"use strict";var{nanoid:Rl}=mo(),{isAbsolute:xi,resolve:gi}=pn(),{SourceMapConsumer:Dl,SourceMapGenerator:Il}=hn(),{fileURLToPath:yo,pathToFileURL:xn}=di(),bo=cn(),Pl=mi(),pi=ri(),hi=Symbol("lineToIndexCache"),Ol=!!(Dl&&Il),So=!!(gi&&xi);function Ao(t){if(t[hi])return t[hi];let e=t.css.split(`\n`),n=new Array(e.length),i=0;for(let r=0,o=e.length;r<o;r++)n[r]=i,i+=e[r].length+1;return t[hi]=n,n}var dt=class{get from(){return this.file||this.id}constructor(e,n={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\\uFEFF"||this.css[0]==="\\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,n.document&&(this.document=n.document.toString()),n.from&&(!So||/^\\w+:\\/\\//.test(n.from)||xi(n.from)?this.file=n.from:this.file=gi(n.from)),So&&Ol){let i=new Pl(this.css,n);if(i.text){this.map=i;let r=i.consumer().file;!this.file&&r&&(this.file=this.mapResolve(r))}}this.file||(this.id="<input css "+Rl(6)+">"),this.map&&(this.map.file=this.from)}error(e,n,i,r={}){let o,s,c,a,l;if(n&&typeof n=="object"){let m=n,f=i;if(typeof m.offset=="number"){a=m.offset;let g=this.fromOffset(a);n=g.line,i=g.col}else n=m.line,i=m.column,a=this.fromLineAndColumn(n,i);if(typeof f.offset=="number"){c=f.offset;let g=this.fromOffset(c);s=g.line,o=g.col}else s=f.line,o=f.column,c=this.fromLineAndColumn(f.line,f.column)}else if(i)a=this.fromLineAndColumn(n,i);else{a=n;let m=this.fromOffset(a);n=m.line,i=m.col}let u=this.origin(n,i,s,o);return u?l=new bo(e,u.endLine===void 0?u.line:{column:u.column,line:u.line},u.endLine===void 0?u.column:{column:u.endColumn,line:u.endLine},u.source,u.file,r.plugin):l=new bo(e,s===void 0?n:{column:i,line:n},s===void 0?i:{column:o,line:s},this.css,this.file,r.plugin),l.input={column:i,endColumn:o,endLine:s,endOffset:c,line:n,offset:a,source:this.css},this.file&&(xn&&(l.input.url=xn(this.file).toString()),l.input.file=this.file),l}fromLineAndColumn(e,n){return Ao(this)[e-1]+n-1}fromOffset(e){let n=Ao(this),i=n[n.length-1],r=0;if(e>=i)r=n.length-1;else{let o=n.length-2,s;for(;r<o;)if(s=r+(o-r>>1),e<n[s])o=s-1;else if(e>=n[s+1])r=s+1;else{r=s;break}}return{col:e-n[r]+1,line:r+1}}mapResolve(e){return/^\\w+:\\/\\//.test(e)?e:gi(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,n,i,r){if(!this.map)return!1;let o=this.map.consumer(),s=o.originalPositionFor({column:n,line:e});if(!s.source)return!1;let c;typeof i=="number"&&(c=o.originalPositionFor({column:r,line:i}));let a;xi(s.source)?a=xn(s.source):a=new URL(s.source,this.map.consumer().sourceRoot||xn(this.map.mapFile));let l={column:s.column,endColumn:c&&c.column,endLine:c&&c.line,line:s.line,url:a.toString()};if(a.protocol==="file:")if(yo)l.file=yo(a);else throw new Error("file: protocol is not available in this PostCSS build");let u=o.sourceContentFor(s.source);return u&&(l.source=u),l}toJSON(){let e={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(e[n]=this[n]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};Eo.exports=dt;dt.default=dt;pi&&pi.registerInput&&pi.registerInput(dt)});var ft=te((jm,Mo)=>{"use strict";var wo=qe(),Co,Fo,$e=class extends wo{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,n,i){let r=super.normalize(e);if(n){if(i==="prepend")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let o of r)o.raws.before=n.raws.before}return r}removeChild(e,n){let i=this.index(e);return!n&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new Co(new Fo,this,e).stringify()}};$e.registerLazyResult=t=>{Co=t};$e.registerProcessor=t=>{Fo=t};Mo.exports=$e;$e.default=$e;wo.registerRoot($e)});var yi=te((qm,No)=>{"use strict";var zt={comma(t){return zt.split(t,[","],!0)},space(t){let e=[" ",`\n`," "];return zt.split(t,e)},split(t,e,n){let i=[],r="",o=!1,s=0,c=!1,a="",l=!1;for(let u of t)l?l=!1:u==="\\\\"?l=!0:c?u===a&&(c=!1):u===\'"\'||u==="\'"?(c=!0,a=u):u==="("?s+=1:u===")"?s>0&&(s-=1):s===0&&e.includes(u)&&(o=!0),o?(r!==""&&i.push(r.trim()),r="",o=!1):r+=u;return(n||r!=="")&&i.push(r.trim()),i}};No.exports=zt;zt.default=zt});var gn=te(($m,To)=>{"use strict";var _o=qe(),Bl=yi(),mt=class extends _o{get selectors(){return Bl.comma(this.selector)}set selectors(e){let n=this.selector?this.selector.match(/,\\s*/):null,i=n?n[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}};To.exports=mt;mt.default=mt;_o.registerRule(mt)});var vo=te((Km,Lo)=>{"use strict";var Hl=fn(),Wl=Ht(),Gl=Gt(),Ul=Vt(),Vl=mi(),zl=ft(),jl=gn();function jt(t,e){if(Array.isArray(t))return t.map(r=>jt(r));let{inputs:n,...i}=t;if(n){e=[];for(let r of n){let o={...r,__proto__:Ul.prototype};o.map&&(o.map={...o.map,__proto__:Vl.prototype}),e.push(o)}}if(i.nodes&&(i.nodes=t.nodes.map(r=>jt(r,e))),i.source){let{inputId:r,...o}=i.source;i.source=o,r!=null&&(i.source.input=e[r])}if(i.type==="root")return new zl(i);if(i.type==="decl")return new Gl(i);if(i.type==="rule")return new jl(i);if(i.type==="comment")return new Wl(i);if(i.type==="atrule")return new Hl(i);throw new Error("Unknown node type: "+t.type)}Lo.exports=jt;jt.default=jt});var Si=te((Jm,Oo)=>{"use strict";var{dirname:yn,relative:Ro,resolve:Do,sep:Io}=pn(),{SourceMapConsumer:Po,SourceMapGenerator:bn}=hn(),{pathToFileURL:ko}=di(),ql=Vt(),$l=!!(Po&&bn),Kl=!!(yn&&Do&&Ro&&Io),bi=class{constructor(e,n,i,r){this.stringify=e,this.mapOpts=i.map||{},this.root=n,this.opts=i,this.css=r,this.originalCSS=r,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let n=`\n`;this.css.includes(`\\r\n`)&&(n=`\\r\n`),this.css+=n+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let n=this.toUrl(this.path(e.file)),i=e.root||yn(e.file),r;this.mapOpts.sourcesContent===!1?(r=new Po(e.text),r.sourcesContent&&(r.sourcesContent=null)):r=e.consumer(),this.map.applySourceMap(r,n,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let e;for(let n=this.root.nodes.length-1;n>=0;n--)e=this.root.nodes[n],e.type==="comment"&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else if(this.css){let e;for(;(e=this.css.lastIndexOf("/*#"))!==-1;){let n=this.css.indexOf("*/",e+3);if(n===-1)break;for(;e>0&&this.css[e-1]===`\n`;)e--;this.css=this.css.slice(0,e)+this.css.slice(n+2)}}}}generate(){if(this.clearAnnotation(),Kl&&$l&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,n=>{e+=n}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=bn.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new bn({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new bn({file:this.outputFile(),ignoreInvalidMapping:!0});let e=1,n=1,i="<no source>",r={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,s;this.stringify(this.root,(c,a,l)=>{if(this.css+=c,a&&l!=="end"&&(r.generated.line=e,r.generated.column=n-1,a.source&&a.source.start?(r.source=this.sourcePath(a),r.original.line=a.source.start.line,r.original.column=a.source.start.column-1,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,this.map.addMapping(r))),s=c.match(/\\n/g),s?(e+=s.length,o=c.lastIndexOf(`\n`),n=c.length-o):n+=c.length,a&&l!=="start"){let u=a.parent||{raws:{}};(!(a.type==="decl"||a.type==="atrule"&&!a.nodes)||a!==u.last||u.raws.semicolon)&&(a.source&&a.source.end?(r.source=this.sourcePath(a),r.original.line=a.source.end.line,r.original.column=a.source.end.column-1,r.generated.line=e,r.generated.column=n-2,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,r.generated.line=e,r.generated.column=n-1,this.map.addMapping(r)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(n=>n.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\\w+:\\/\\//.test(e))return e;let n=this.memoizedPaths.get(e);if(n)return n;let i=this.opts.to?yn(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=yn(Do(i,this.mapOpts.annotation)));let r=Ro(i,e);return this.memoizedPaths.set(e,r),r}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let n=e.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let e=new ql(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(n=>{if(n.source){let i=n.source.input.from;if(i&&!e[i]){e[i]=!0;let r=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(r,n.source.input.css)}}});else if(this.css){let n=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(n,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let n=this.memoizedFileURLs.get(e);if(n)return n;if(ko){let i=ko(e).toString();return this.memoizedFileURLs.set(e,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let n=this.memoizedURLs.get(e);if(n)return n;Io==="\\\\"&&(e=e.replace(/\\\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};Oo.exports=bi});var Wo=te((Ym,Ho)=>{"use strict";var Sn=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,An=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,Jl=/.[\\r\\n"\'(/\\\\]/,Bo=/[\\da-f]/i;Ho.exports=function(e,n={}){let i=e.css.valueOf(),r=n.ignoreErrors,o,s,c,a,l,u,m,f,g,A,y=i.length,x=0,w=[],N=[],L=-1;function $(){return x}function B(F){throw e.error("Unclosed "+F,x)}function _(){return N.length===0&&x>=y}function S(F){if(N.length)return N.pop();if(x>=y)return;let T=F?F.ignoreUnclosed:!1;switch(o=i.charCodeAt(x),o){case 10:case 32:case 9:case 13:case 12:{a=x;do a+=1,o=i.charCodeAt(a);while(o===32||o===10||o===9||o===13||o===12);u=["space",i.slice(x,a)],x=a-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let k=String.fromCharCode(o);u=[k,k,x];break}case 40:{if(A=w.length?w.pop()[1]:"",g=i.charCodeAt(x+1),A==="url"&&g!==39&&g!==34&&g!==32&&g!==10&&g!==9&&g!==12&&g!==13){a=x;do{if(m=!1,a=i.indexOf(")",a+1),a===-1)if(r||T){a=x;break}else B("bracket");for(f=a;i.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);u=["brackets",i.slice(x,a+1),x,a],x=a}else x<=L?u=["(","(",x]:(a=i.indexOf(")",x+1),s=i.slice(x,a+1),a===-1||Jl.test(s)?(L=a===-1?y:a,u=["(","(",x]):(u=["brackets",s,x,a],x=a));break}case 39:case 34:{l=o===39?"\'":\'"\',a=x;do{if(m=!1,a=i.indexOf(l,a+1),a===-1)if(r||T){a=x+1;break}else B("string");for(f=a;i.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);u=["string",i.slice(x,a+1),x,a],x=a;break}case 64:{Sn.lastIndex=x+1,Sn.test(i),Sn.lastIndex===0?a=i.length-1:a=Sn.lastIndex-2,u=["at-word",i.slice(x,a+1),x,a],x=a;break}case 92:{for(a=x,c=!0;i.charCodeAt(a+1)===92;)a+=1,c=!c;if(o=i.charCodeAt(a+1),c&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(a+=1,Bo.test(i.charAt(a)))){for(;Bo.test(i.charAt(a+1));)a+=1;i.charCodeAt(a+1)===32&&(a+=1)}u=["word",i.slice(x,a+1),x,a],x=a;break}default:{o===47&&i.charCodeAt(x+1)===42?(a=i.indexOf("*/",x+2)+1,a===0&&(r||T?a=i.length:B("comment")),u=["comment",i.slice(x,a+1),x,a],x=a):(An.lastIndex=x+1,An.test(i),An.lastIndex===0?a=i.length-1:a=An.lastIndex-2,u=["word",i.slice(x,a+1),x,a],w.push(u),x=a);break}}return x++,u}function C(F){N.push(F)}return{back:C,endOfFile:_,nextToken:S,position:$}}});var zo=te((Xm,Vo)=>{"use strict";var Yl=fn(),Xl=Ht(),Ql=Gt(),Zl=ft(),Go=gn(),eu=Wo(),Uo={empty:!0,space:!0};function tu(t){for(let e=t.length-1;e>=0;e--){let n=t[e],i=n[3]||n[2];if(i)return i}}var Ai=class{constructor(e){this.input=e,this.root=new Zl,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let n=new Yl;n.name=e[1].slice(1),n.name===""&&this.unnamedAtrule(n,e),this.init(n,e[2]);let i,r,o,s=!1,c=!1,a=[],l=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?l.push(i==="("?")":"]"):i==="{"&&l.length>0?l.push("}"):i===l[l.length-1]&&l.pop(),l.length===0)if(i===";"){n.source.end=this.getPosition(e[2]),n.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){c=!0;break}else if(i==="}"){if(a.length>0){for(o=a.length-1,r=a[o];r&&r[0]==="space";)r=a[--o];r&&(n.source.end=this.getPosition(r[3]||r[2]),n.source.end.offset++)}this.end(e);break}else a.push(e);else a.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(n.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(n,"params",a),s&&(e=a[a.length-1],n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),c&&(n.nodes=[],this.current=n)}checkMissedSemicolon(e){let n=this.colon(e);if(n===!1)return;let i=0,r;for(let o=n-1;o>=0&&(r=e[o],!(r[0]!=="space"&&(i+=1,i===2)));o--);throw this.input.error("Missed semicolon",r[0]==="word"?r[3]+1:r[2])}colon(e){let n=0,i,r,o;for(let[s,c]of e.entries()){if(r=c,o=r[0],o==="("&&(n+=1),o===")"&&(n-=1),n===0&&o===":")if(!i)this.doubleColon(r);else{if(i[0]==="word"&&i[1]==="progid")continue;return s}i=r}return!1}comment(e){let n=new Xl;this.init(n,e[2]),n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++;let i=e[1].slice(2,-2);if(!i.trim())n.text="",n.raws.left=i,n.raws.right="";else{let r=i.match(/^(\\s*)([^]*\\S)(\\s*)$/);n.text=r[2],n.raws.left=r[1],n.raws.right=r[3]}}createTokenizer(){this.tokenizer=eu(this.input)}decl(e,n){let i=new Ql;this.init(i,e[0][2]);let r=e[e.length-1];for(r[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(r[3]||r[2]||tu(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let l=e[0][0];if(l===":"||l==="space"||l==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let o;for(;e.length;)if(o=e.shift(),o[0]===":"){i.raws.between+=o[1];break}else o[0]==="word"&&/\\w/.test(o[1])&&this.unknownWord([o]),i.raws.between+=o[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let s=[],c;for(;e.length&&(c=e[0][0],!(c!=="space"&&c!=="comment"));)s.push(e.shift());this.precheckMissedSemicolon(e);for(let l=e.length-1;l>=0;l--){if(o=e[l],o[1].toLowerCase()==="!important"){i.important=!0;let u=this.stringFrom(e,l);u=this.spacesFromEnd(e)+u,u!==" !important"&&(i.raws.important=u);break}else if(o[1].toLowerCase()==="important"){let u=e.slice(0),m="";for(let f=l;f>0;f--){let g=u[f][0];if(m.trim().startsWith("!")&&g!=="space")break;m=u.pop()[1]+m}m.trim().startsWith("!")&&(i.important=!0,i.raws.important=m,e=u)}if(o[0]!=="space"&&o[0]!=="comment")break}e.some(l=>l[0]!=="space"&&l[0]!=="comment")&&(i.raws.between+=s.map(l=>l[1]).join(""),s=[]),this.raw(i,"value",s.concat(e),n),i.value.includes(":")&&!n&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let n=new Go;this.init(n,e[2]),n.selector="",n.raws.between="",this.current=n}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type==="rule"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces="",n.source.end=this.getPosition(e[2]),n.source.end.offset+=n.raws.ownSemicolon.length)}}getPosition(e){let n=this.input.fromOffset(e);return{column:n.col,line:n.line,offset:e}}init(e,n){this.current.push(e),e.source={input:this.input,start:this.getPosition(n)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let n=!1,i=null,r=!1,o=null,s=[],c=e[1].startsWith("--"),a=[],l=e;for(;l;){if(i=l[0],a.push(l),i==="("||i==="[")o||(o=l),s.push(i==="("?")":"]");else if(c&&r&&i==="{")o||(o=l),s.push("}");else if(s.length===0)if(i===";")if(r){this.decl(a,c);return}else break;else if(i==="{"){this.rule(a);return}else if(i==="}"){this.tokenizer.back(a.pop()),n=!0;break}else i===":"&&(r=!0);else i===s[s.length-1]&&(s.pop(),s.length===0&&(o=null));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),s.length>0&&this.unclosedBracket(o),n&&r){if(!c)for(;a.length&&(l=a[a.length-1][0],!(l!=="space"&&l!=="comment"));)this.tokenizer.back(a.pop());this.decl(a,c)}else this.unknownWord(a)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,n,i,r){let o,s,c=i.length,a="",l=!0,u,m;for(let f=0;f<c;f+=1)o=i[f],s=o[0],s==="space"&&f===c-1&&!r?l=!1:s==="comment"?(m=i[f-1]?i[f-1][0]:"empty",u=i[f+1]?i[f+1][0]:"empty",!Uo[m]&&!Uo[u]?a.slice(-1)===","?l=!1:a+=o[1]:l=!1):a+=o[1];if(!l){let f=i.reduce((g,A)=>g+A[1],"");e.raws[n]={raw:f,value:a}}e[n]=a}rule(e){e.pop();let n=new Go;this.init(n,e[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(n,"selector",e),this.current=n}spacesAndCommentsFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],!(n!=="space"&&n!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let n,i="";for(;e.length&&(n=e[0][0],!(n!=="space"&&n!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],n==="space");)i=e.pop()[1]+i;return i}stringFrom(e,n){let i="";for(let r=n;r<e.length;r++)i+=e[r][1];return e.splice(n,e.length-n),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word "+e[0][1],{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,n){throw this.input.error("At-rule without name",{offset:n[2]},{offset:n[2]+n[1].length})}};Vo.exports=Ai});var wn=te((Qm,jo)=>{"use strict";var nu=qe(),iu=Vt(),ru=zo();function En(t,e){let n=new iu(t,e),i=new ru(n);try{i.parse()}catch(r){throw r}return i.root}jo.exports=En;En.default=En;nu.registerParse(En)});var Ei=te((Zm,qo)=>{"use strict";var qt=class{constructor(e,n={}){if(this.type="warning",this.text=e,n.node&&n.node.source){let i=n.node.rangeBy(n);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in n)this[i]=n[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};qo.exports=qt;qt.default=qt});var Cn=te((ep,$o)=>{"use strict";var ou=Ei(),$t=class{get content(){return this.css}constructor(e,n,i){this.processor=e,this.messages=[],this.root=n,this.opts=i,this.css="",this.map=void 0}toString(){return this.css}warn(e,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let i=new ou(e,n);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}};$o.exports=$t;$t.default=$t});var wi=te((tp,Jo)=>{"use strict";var Ko={};Jo.exports=function(e){Ko[e]||(Ko[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))}});var Mi=te((ip,Zo)=>{"use strict";var su=qe(),au=mn(),lu=Si(),uu=wn(),Yo=Cn(),cu=ft(),du=Dt(),{isClean:Be,my:fu}=dn(),np=wi(),mu={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},pu={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},hu={Once:!0,postcssPlugin:!0,prepare:!0},pt=0;function Kt(t){return typeof t=="object"&&typeof t.then=="function"}function Qo(t){let e=!1,n=mu[t.type];return t.type==="decl"?e=t.prop.toLowerCase():t.type==="atrule"&&(e=t.name.toLowerCase()),e&&t.append?[n,n+"-"+e,pt,n+"Exit",n+"Exit-"+e]:e?[n,n+"-"+e,n+"Exit",n+"Exit-"+e]:t.append?[n,pt,n+"Exit"]:[n,n+"Exit"]}function Xo(t){let e;return t.type==="document"?e=["Document",pt,"DocumentExit"]:t.type==="root"?e=["Root",pt,"RootExit"]:e=Qo(t),{eventIndex:0,events:e,iterator:0,node:t,visitorIndex:0,visitors:[]}}function Ci(t){return t[Be]=!1,t.nodes&&t.nodes.forEach(e=>Ci(e)),t}var Fi={},Ke=class t{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(e,n,i){this.stringified=!1,this.processed=!1;let r;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))r=Ci(n);else if(n instanceof t||n instanceof Yo)r=Ci(n.root),n.map&&(typeof i.map>"u"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=n.map);else{let o=uu;i.syntax&&(o=i.syntax.parse),i.parser&&(o=i.parser),o.parse&&(o=o.parse);try{r=o(n,i)}catch(s){this.processed=!0,this.error=s}r&&!r[fu]&&su.rebuild(r)}this.result=new Yo(e,r,i),this.helpers={...Fi,postcss:Fi,result:this.result},this.plugins=this.processor.plugins.map(o=>typeof o=="object"&&o.prepare?{...o,...o.prepare(this.result)}:o)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,n){let i=this.result.lastPlugin;try{n&&n.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(r){console&&console.error&&console.error(r)}return e}prepareVisitors(){this.listeners={};let e=(n,i,r)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([n,r])};for(let n of this.plugins)if(typeof n=="object")for(let i in n){if(!pu[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!hu[i])if(typeof n[i]=="object")for(let r in n[i])r==="*"?e(n,i,n[i][r]):e(n,i+"-"+r.toLowerCase(),n[i][r]);else typeof n[i]=="function"&&e(n,i,n[i])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let n=this.plugins[e],i=this.runOnRoot(n);if(Kt(i))try{await i}catch(r){throw this.handleError(r)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Be];){e[Be]=!0;let n=[Xo(e)];for(;n.length>0;){let i=this.visitTick(n);if(Kt(i))try{await i}catch(r){let o=n[n.length-1].node;throw this.handleError(r,o)}}}if(this.listeners.OnceExit)for(let[n,i]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(e.type==="document"){let r=e.nodes.map(o=>i(o,this.helpers));await Promise.all(r)}else await i(e,this.helpers)}catch(r){throw this.handleError(r)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return Kt(n[0])?Promise.all(n):n}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(n){throw this.handleError(n)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,n=du;e.syntax&&(n=e.syntax.stringify),e.stringifier&&(n=e.stringifier),n.stringify&&(n=n.stringify);let i=this.result.root.source;if(e.map===void 0&&!(i&&i.input&&i.input.map)){let s="";return n(this.result.root,c=>{s+=c}),this.result.css=s,this.result}let o=new lu(n,this.result.root,this.result.opts).generate();return this.result.css=o[0],this.result.map=o[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let n=this.runOnRoot(e);if(Kt(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Be];)e[Be]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let n of e.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,n){return this.async().then(e,n)}toString(){return this.css}visitSync(e,n){for(let[i,r]of e){this.result.lastPlugin=i;let o;try{o=r(n,this.helpers)}catch(s){throw this.handleError(s,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(Kt(o))throw this.getAsyncError()}}visitTick(e){let n=e[e.length-1],{node:i,visitors:r}=n;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(r.length>0&&n.visitorIndex<r.length){let[s,c]=r[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===r.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=s;try{return c(i.toProxy(),this.helpers)}catch(a){throw this.handleError(a,i)}}if(n.iterator!==0){let s=n.iterator,c;for(;c=i.nodes[i.indexes[s]];)if(i.indexes[s]+=1,!c[Be]){c[Be]=!0,e.push(Xo(c));return}n.iterator=0,delete i.indexes[s]}let o=n.events;for(;n.eventIndex<o.length;){let s=o[n.eventIndex];if(n.eventIndex+=1,s===pt){i.nodes&&i.nodes.length&&(i[Be]=!0,n.iterator=i.getIterator());return}else if(this.listeners[s]){n.visitors=this.listeners[s];return}}e.pop()}walkSync(e){e[Be]=!0;let n=Qo(e);for(let i of n)if(i===pt)e.nodes&&e.each(r=>{r[Be]||this.walkSync(r)});else{let r=this.listeners[i];if(r&&this.visitSync(r,e.toProxy()))return}}warnings(){return this.sync().warnings()}};Ke.registerPostcss=t=>{Fi=t};Zo.exports=Ke;Ke.default=Ke;cu.registerLazyResult(Ke);au.registerLazyResult(Ke)});var ts=te((op,es)=>{"use strict";var xu=Si(),gu=wn(),yu=Cn(),bu=Dt(),rp=wi(),Jt=class{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,n=gu;try{e=n(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,n,i){n=n.toString(),this.stringified=!1,this._processor=e,this._css=n,this._opts=i,this._map=void 0;let r=bu;this.result=new yu(this._processor,void 0,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let s=new xu(r,void 0,this._opts,n);if(s.isMap()){let[c,a]=s.generate();c&&(this.result.css=c),a&&(this.result.map=a)}else s.clearAnnotation(),this.result.css=s.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,n){return this.async().then(e,n)}toString(){return this._css}warnings(){return[]}};es.exports=Jt;Jt.default=Jt});var is=te((sp,ns)=>{"use strict";var Su=mn(),Au=Mi(),Eu=ts(),wu=ft(),ot=class{constructor(e=[]){this.version="8.5.14",this.plugins=this.normalize(e)}normalize(e){let n=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))n=n.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)n.push(i);else if(typeof i=="function")n.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return n}process(e,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new Eu(this,e,n):new Au(this,e,n)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};ns.exports=ot;ot.default=ot;wu.registerProcessor(ot);Su.registerProcessor(ot)});var ds=te((ap,cs)=>{"use strict";var rs=fn(),os=Ht(),Cu=qe(),Fu=cn(),ss=Gt(),as=mn(),Mu=vo(),Nu=Vt(),_u=Mi(),Tu=yi(),Lu=Ot(),vu=wn(),Ni=is(),ku=Cn(),ls=ft(),us=gn(),Ru=Dt(),Du=Ei();function le(...t){return t.length===1&&Array.isArray(t[0])&&(t=t[0]),new Ni(t)}le.plugin=function(e,n){let i=!1;function r(...s){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let c=n(...s);return c.postcssPlugin=e,c.postcssVersion=new Ni().version,c}let o;return Object.defineProperty(r,"postcss",{get(){return o||(o=r()),o}}),r.process=function(s,c,a){return le([r(a)]).process(s,c)},r};le.stringify=Ru;le.parse=vu;le.fromJSON=Mu;le.list=Tu;le.comment=t=>new os(t);le.atRule=t=>new rs(t);le.decl=t=>new ss(t);le.rule=t=>new us(t);le.root=t=>new ls(t);le.document=t=>new as(t);le.CssSyntaxError=Fu;le.Declaration=ss;le.Container=Cu;le.Processor=Ni;le.Document=as;le.Comment=os;le.Warning=Du;le.AtRule=rs;le.Result=ku;le.Input=Nu;le.Rule=us;le.Root=ls;le.Node=Lu;_u.registerPostcss(le);cs.exports=le;le.default=le});function ln(){return globalThis}function v(t,e){if(typeof window>"u")return;let n=ln(),i=n.__hf?.onSwallowed;if(i)try{i({label:t,error:e})}catch(r){}(n.__hfDebug||n.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${t} swallowed:`,e)}function Ee(t){try{window.parent.postMessage(t,"*")}catch(e){v("bridge.postMessage",e)}}var Ia={play:(t,e)=>e.onPlay(),pause:(t,e)=>e.onPause(),"stop-media":(t,e)=>e.onStopMedia(),seek:(t,e)=>e.onSeek(Number(t.frame??0),t.seekMode??"commit"),tick:(t,e)=>e.onTick(),"set-muted":(t,e)=>e.onSetMuted(!!t.muted),"set-volume":(t,e)=>e.onSetVolume(Math.max(0,Math.min(1,Number(t.volume??1)))),"set-media-output-muted":(t,e)=>e.onSetMediaOutputMuted(!!t.muted),"set-native-media-sync-disabled":(t,e)=>e.onSetNativeMediaSyncDisabled(!!t.disabled),"set-web-audio-media-disabled":(t,e)=>e.onSetWebAudioMediaDisabled(!!t.disabled),"set-playback-rate":(t,e)=>e.onSetPlaybackRate(Number(t.playbackRate??1)),"set-color-grading":(t,e)=>e.onSetColorGrading(t.target??null,t.grading??null),"set-color-grading-compare":(t,e)=>e.onSetColorGradingCompare(t.target??null,t.compare??null),"enable-pick-mode":(t,e)=>e.onEnablePickMode(),"disable-pick-mode":(t,e)=>e.onDisablePickMode(),"flash-elements":t=>Pa(t)};function Pa(t){let e=t.selectors,n=t.duration||800;e&&Oa(e,n)}function ar(t){let e=n=>{let i=n.data;if(!i||i.source!=="hf-parent"||i.type!=="control")return;let r=i.action;if(typeof r!="string")return;let o=Ia[r];o&&o(i,t)};return window.addEventListener("message",e),Ee({source:"hf-preview",type:"ready"}),e}function Oa(t,e){if(!document.getElementById("__hf-flash-styles")){let n=document.createElement("style");n.id="__hf-flash-styles",n.textContent=`\n .__hf-flash {\n outline: 2px solid rgba(59, 130, 246, 0.6) !important;\n outline-offset: 2px !important;\n animation: __hf-flash-pulse ${e}ms ease-out forwards !important;\n }\n @keyframes __hf-flash-pulse {\n 0% { outline-color: rgba(59, 130, 246, 0.8); }\n 100% { outline-color: transparent; }\n }\n `,document.head.appendChild(n)}for(let n of t)try{document.querySelectorAll(n).forEach(r=>{r.classList.add("__hf-flash"),setTimeout(()=>r.classList.remove("__hf-flash"),e)})}catch(i){v("bridge.flashElements.querySelector",i)}}var jn=null;function lr(t){jn=t}function Ct(t,e){if(jn)try{jn({source:"hf-preview",type:"analytics",event:t,properties:e??{}})}catch(n){v("runtime.analytics.site1",n)}}function ur(t){let e=[],n=l=>{if(typeof l.getAnimations!="function")return[];try{return l.getAnimations()}catch{return[]}},i=l=>t?.resolveStartSeconds?t.resolveStartSeconds(l):Number.parseFloat(l.getAttribute("data-start")??"0")||0,r=(l,u)=>{let m=null;try{m=l.effect?.getComputedTiming?.()??null}catch(g){v("runtime.adapters.css.site5",g)}if(!m)return{};let f=Number(m.endTime);return Number.isFinite(f)?{endSeconds:u+f/1e3}:{unbounded:!0}},o=(l,u)=>{for(let m of l){try{m.currentTime=u}catch(f){v("runtime.adapters.css.site1",f)}try{m.pause()}catch(f){v("runtime.adapters.css.site2",f)}}},s=l=>{for(let u of l)try{u.play()}catch(m){v("runtime.adapters.css.site3",m)}},c=l=>{for(let u of l)try{u.pause()}catch(m){v("runtime.adapters.css.site4",m)}},a=l=>{l.baseDelay?l.el.style.animationDelay=l.baseDelay:l.el.style.removeProperty("animation-delay"),l.basePlayState?l.el.style.animationPlayState=l.basePlayState:l.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{e=[];let l=document.querySelectorAll("*");for(let u of l){if(!(u instanceof HTMLElement))continue;let m=window.getComputedStyle(u);!m.animationName||m.animationName==="none"||e.push({el:u,baseDelay:u.style.animationDelay||"",basePlayState:u.style.animationPlayState||"",animations:n(u)})}},getInferredDurationSeconds:()=>{let l=0;for(let u of e){if(!u.el.isConnected)continue;let m=i(u.el);for(let f of n(u.el)){let g=r(f,m);g.endSeconds!=null&&(l=Math.max(l,g.endSeconds))}}return l>0?l:null},seek:l=>{let u=Number(l.time)||0;for(let m of e){if(!m.el.isConnected)continue;let f=i(m.el),g=Math.max(0,u-f)*1e3,A=m.animations;if(A.length>0){o(A,g);continue}m.el.style.animationPlayState="paused",m.el.style.animationDelay=`-${(g/1e3).toFixed(3)}s`}},pause:()=>{for(let l of e){if(!l.el.isConnected)continue;let u=l.animations;u.length>0&&c(u),a(l)}},play:()=>{for(let l of e)l.el.isConnected&&(a(l),s(l.animations))},revert:()=>{e=[]}}}function cr(t){return{name:"gsap",discover:()=>{},seek:e=>{let n=t.getTimeline();if(!n)return;n.pause();let i=Math.max(0,Number(e.time)||0);typeof n.totalTime=="function"?(n.totalTime(i+.001,!0),n.totalTime(i,!1)):n.seek(i,!1)},pause:()=>{let e=t.getTimeline();e&&e.pause()}}}function dr(){return{name:"animejs",discover:()=>{try{let t=window.anime;if(!t||typeof t.running>"u")return;let e=t.running;if(!Array.isArray(e)||e.length===0)return;let n=window.__hfAnime??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfAnime=n}catch(t){v("runtime.adapters.animejs.site1",t)}},seek:t=>{let e=Math.max(0,(Number(t.time)||0)*1e3),n=window.__hfAnime;if(!(!n||n.length===0))for(let i of n)try{typeof i.seek=="function"&&i.seek(e)}catch(r){v("runtime.adapters.animejs.site2",r)}},pause:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.pause=="function"&&e.pause()}catch(n){v("runtime.adapters.animejs.site3",n)}},play:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.play=="function"&&e.play()}catch(n){v("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function mr(){return{name:"lottie",discover:()=>{try{let t=window.lottie;if(t&&typeof t.getRegisteredAnimations=="function"){let e=t.getRegisteredAnimations();if(Array.isArray(e)&&e.length>0){let n=window.__hfLottie??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfLottie=n}}}catch(t){v("runtime.adapters.lottie.site1",t)}},seek:t=>{let e=Math.max(0,Number(t.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let i of n)try{if(qn(i))i.goToAndStop(e*1e3,!1);else if($n(i)){if(typeof i.setCurrentRawFrameValue=="function"){let r=i.totalFrames??0,o=i.frameRate??30,s=e*o;r>0&&i.setCurrentRawFrameValue(Math.min(s,r-1))}else if(typeof i.seek=="function"){let r=i.duration??1,o=Math.min(100,e/r*100);i.seek(o)}}}catch(r){v("runtime.adapters.lottie.site2",r)}},pause:()=>{let t=window.__hfLottie;if(!(!t||t.length===0))for(let e of t)try{(qn(e)||$n(e))&&e.pause()}catch(n){v("runtime.adapters.lottie.site3",n)}},revert:()=>{},getInferredDurationSeconds:()=>{let t=window.__hfLottie;if(!t||t.length===0)return null;let e=0,n=!1;for(let i of t){let r=null;try{r=Ba(i)}catch(o){v("runtime.adapters.lottie.site4",o)}r!=null&&(n=!0,e=Math.max(e,r))}return n?e:null}}}function fr(t,e){return!Number.isFinite(t)||!t||t<=0||!Number.isFinite(e)||!e||e<=0?null:t/e}function Ba(t){return qn(t)?fr(t.totalFrames,t.frameRate):$n(t)?Number.isFinite(t.duration)&&(t.duration??0)>0?t.duration??null:fr(t.totalFrames,t.frameRate):null}function qn(t){return typeof t=="object"&&t!==null&&typeof t.goToAndStop=="function"}function $n(t){return typeof t=="object"&&t!==null&&typeof t.pause=="function"&&("totalFrames"in t||"duration"in t)}var Kn=-1;function un(t){if(t!==Kn){Kn=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){v("runtime.adapters.seek-dispatch.site1",e)}}}function pr(t){Kn=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){v("runtime.adapters.seek-dispatch.force",e)}}function hr(){let t=null,e=0,n=null,i=null,r=null,o=null,s=()=>{if(typeof window>"u")return null;let u=window.THREE?.DefaultLoadingManager;return!u||typeof u!="object"||typeof u.itemsLoaded!="number"||typeof u.itemsTotal!="number"?null:u},c=l=>{o||l.itemsTotal<=l.itemsLoaded||(o=new Promise(u=>{l.onLoad=function(){try{r?.call(this)}finally{o=null,l.onLoad=r??null,u()}}}))},a=l=>{n!==l&&(n=l,i=l.onStart??null,r=l.onLoad??null,l.onStart=function(u,m,f){try{i?.call(this,u,m,f)}finally{c(l)}})};return{name:"three",discover:()=>{let l=s();l&&(a(l),c(l))},seek:l=>{t=Math.max(0,Number(l.time)||0),e=t,window.__hfThreeTime=t,un(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0},getReadyPromise:()=>{let l=s();return!l||l.itemsTotal<=l.itemsLoaded?null:(o||c(l),o)}}}function Oe(t){let e=null,n=new WeakSet;return{name:t.name,discover:()=>{},seek:()=>{},pause:()=>{},play:()=>{},revert:()=>{},getReadyPromise:()=>{let i=t.getInstances();if(i.length===0)return null;let r=i.filter(o=>!n.has(o));return r.length===0?null:e||(e=Promise.allSettled(r.map(o=>t.waitFor(o).then(()=>{n.add(o)}))).then(()=>{e=null}),e)}}}function xr(){return Oe({name:"mapbox",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfMapbox;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{if(t.loaded()){e();return}t.on("load",e)})})}function gr(){return Oe({name:"leaflet",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfLeaflet;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>t.whenReady(e))})}function yr(){return Oe({name:"google-maps",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfGoogleMaps;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{let n=t.addListener("tilesloaded",()=>{n.remove(),e()})})})}function br(){return Oe({name:"maplibre",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfMaplibre;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{if(t.loaded()){e();return}t.on("load",e)})})}function Sr(){return Oe({name:"d3",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfD3;return Array.isArray(t)?t:[]},waitFor:t=>t.end()})}function Ar(){let t=null,e=0;return{name:"typegpu",discover:()=>{},seek:n=>{t=Math.max(0,Number(n.time)||0),e=t,window.__hfTypegpuTime=t,un(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0}}}function Er(t){let e=t.nextElementSibling;if(e instanceof HTMLImageElement&&e.classList.contains("__render_frame__")&&e.complete&&e.naturalWidth>0)return e;if(t.id){let n=document.getElementById(`__render_frame_${t.id}__`);if(n instanceof HTMLImageElement&&n.complete&&n.naturalWidth>0)return n}return null}function wr(){let t=globalThis.GPUQueue;if(!t?.prototype?.copyExternalImageToTexture)return;let e=t.prototype.copyExternalImageToTexture;t.prototype.copyExternalImageToTexture=function(n,i,r){if(n?.source instanceof HTMLVideoElement){let o=Er(n.source);if(o)return e.call(this,{...n,source:o},i,r)}return e.call(this,n,i,r)}}function Cr(){let t=[globalThis.WebGL2RenderingContext,globalThis.WebGLRenderingContext],e=["texImage2D","texSubImage2D"];for(let n of t){let i=n?.prototype;if(i)for(let r of e){let o=i[r];if(typeof o!="function"||o.__hfVideoPatched)continue;let s=function(...c){let a=c.length-1,l=c[a];if(l instanceof HTMLVideoElement){let u=Er(l);u&&(c[a]=u)}return o.apply(this,c)};s.__hfVideoPatched=!0,i[r]=s}}}function Fr(){let t=!1,e=0,n=!1,i,r,o,s=new Set,c=new WeakMap,a=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},l=x=>{let w=Number(x.currentTime);return Number.isFinite(w)&&w>0?w:0},u=(x,w)=>w<=0?x:x>=w?Math.max(0,x-w):x,m=(x,w)=>{let N=c.get(x);if(N)return N;let L={compositionTimeMs:w,animationTimeMs:t?u(l(x),w):l(x)};return c.set(x,L),L},f=(x,w)=>{if(!s.has(x)){s.add(x);let N=()=>{s.delete(x)};try{x.addEventListener("finish",N,{once:!0}),x.addEventListener("cancel",N,{once:!0})}catch(L){v("runtime.adapters.waapi.site4",L)}}m(x,w)},g=(x,w)=>{for(let N of x)f(N,w)},A=()=>{if(n||typeof Element>"u")return;let x=Element.prototype;if(typeof x.animate!="function"||x.__hfOriginalAnimate)return;let w=x.animate;try{Object.defineProperty(x,"__hfOriginalAnimate",{value:w,configurable:!0});let N=function(...L){let $=w.apply(this,L);return f($,e),$};x.animate=N,i=x,r=w,o=N,n=!0}catch{}},y=x=>{let w=null;try{w=x.effect?.getComputedTiming?.()??null}catch($){v("runtime.adapters.waapi.site4",$)}if(!w)return{};let N=Number(w.endTime);return Number.isFinite(N)?{endSeconds:(c.get(x)?.compositionTimeMs??0)/1e3+N/1e3}:{unbounded:!0}};return{name:"waapi",discover:()=>{t=!0,A(),g(a(),e)},seek:x=>{let w=Math.max(0,(Number(x.time)||0)*1e3);e=w,(!t||s.size>0)&&g(a(),t?w:0);for(let N of s){let L=t?m(N,w):m(N,0),$=L.animationTimeMs+Math.max(0,w-L.compositionTimeMs);try{N.currentTime=$}catch(B){v("runtime.adapters.waapi.site1",B)}try{N.pause()}catch(B){v("runtime.adapters.waapi.site2",B)}}},pause:()=>{t||g(a(),e);for(let x of s)try{x.pause()}catch(w){v("runtime.adapters.waapi.site3",w)}},revert:()=>{if(s.clear(),c=new WeakMap,t=!1,e=0,i&&r&&o&&i.animate===o)try{i.animate=r,i.__hfOriginalAnimate===r&&delete i.__hfOriginalAnimate}catch(x){v("runtime.adapters.waapi.site5",x)}i=void 0,r=void 0,o=void 0,n=!1},getInferredDurationSeconds:()=>{let x=0;for(let w of a()){let N=y(w);N.endSeconds!=null&&(x=Math.max(x,N.endSeconds))}return x>0?x:null}}}function Mr(t,e){if(t.length===0)return 1;let n=0;for(;n<t.length-2&&e>=t[n+1].time;)n+=1;let i=t[n],r=t[n+1]??i,o=r.time-i.time,s=o<=0?0:Math.min(1,Math.max(0,(e-i.time)/o));return i.volume+(r.volume-i.volume)*s}function Ha(t,e,n,i){let r=Number.parseFloat(t.dataset.start??"0")||0,o=Number.parseFloat(t.dataset.end??""),s=Number.parseFloat(t.dataset.duration??""),c=Number.isFinite(o)&&o>r?o:Number.isFinite(s)&&s>0?r+s:n,a=Number.parseFloat(t.dataset.volume??""),l=Number.isFinite(a)?Math.max(0,Math.min(1,a)):1;t.volume=l;let u=1/Math.min(60,Math.max(1,i)),m=Math.max(0,r),f=Math.min(n,c),g=[];for(let y=m;y<=f+1e-6;y+=u){let x=Math.min(f,y);e(x);let w=Number(t.volume);if(!Number.isFinite(w))continue;let N=Math.max(0,Math.min(1,w)),L=g.at(-1);if((!L||Math.abs(L.volume-N)>1e-4||x===f)&&g.push({time:Number(x.toFixed(6)),volume:Number(N.toFixed(6))}),x===f)break}return g.some(y=>Math.abs(y.volume-l)>1e-4)?g:null}function Nr(t,e,n,i){if(!e||!(t instanceof HTMLAudioElement)&&!(t instanceof HTMLVideoElement)||n<=0)return;let o=Ha(t,s=>{try{typeof e.totalTime=="function"?e.totalTime(s,!0):typeof e.seek=="function"&&e.seek(s,!0)}catch{}},n,60);o&&i.set(t,o)}function Nt(t){let e=t.defaultPlaybackRate;return Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1}function _r(t){let e=Array.from(document.querySelectorAll("video, audio")),n=t?.shouldIncludeElement?e.filter(s=>t.shouldIncludeElement?.(s)):e.filter(s=>s.hasAttribute("data-start")),i=[],r=[],o=0;for(let s of n){let c=t?.resolveStartSeconds?t.resolveStartSeconds(s):Number.parseFloat(s.dataset.start??"0");if(!Number.isFinite(c))continue;let a=Number.parseFloat(s.dataset.playbackStart??s.dataset.mediaStart??"0")||0,l=Nt(s),u=s.loop,m=Number.isFinite(s.duration)&&s.duration>0?s.duration:null,f=t?.resolveDurationSeconds?.(s)??Number.parseFloat(s.dataset.duration??"");(!Number.isFinite(f)||f<=0)&&m!=null&&(f=Math.max(0,(m-a)/l));let g=Number.isFinite(f)&&f>0?c+f:Number.POSITIVE_INFINITY,A=Number.parseFloat(s.dataset.volume??""),y={el:s,start:c,mediaStart:a,duration:Number.isFinite(f)&&f>0?f:Number.POSITIVE_INFINITY,end:g,volume:Number.isFinite(A)?A:null,playbackRate:l,loop:u,sourceDuration:m};i.push(y),s.tagName==="VIDEO"&&r.push(y),Number.isFinite(g)&&(o=Math.max(o,g))}return{timedMediaEls:n,mediaClips:i,videoClips:r,maxMediaEnd:o}}var Jn=new WeakMap,Ft=new WeakMap,Yn=new WeakSet,lt=new WeakSet;function Wa(t){if(lt.has(t))return;lt.add(t);let e=()=>lt.delete(t);t.addEventListener("playing",e,{once:!0}),t.addEventListener("pause",e,{once:!0}),t.addEventListener("error",e,{once:!0})}var Ga=3;function Ua(t){return t.error!=null||t.networkState===Ga}var Xn=new WeakMap;function Mt(t){return Number.isFinite(t)?Math.max(0,Math.min(1,t)):1}function Tr(t){let e=!!(t.outputMuted||t.userMuted);for(let n of t.clips){let{el:i}=n;if(!i.isConnected)continue;let r=(t.timeSeconds-n.start)*n.playbackRate+n.mediaStart;if(t.timeSeconds>=n.start&&t.timeSeconds<=n.end&&r>=0&&(!i.ended||n.loop)){if(n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let T=n.sourceDuration-n.mediaStart;T>0&&r>=n.sourceDuration&&(r=n.mediaStart+(r-n.mediaStart)%T)}let s=Mt(t.userVolume??1),c=Mt(n.volume??1),a=Xn.get(i),l=Mt(i.volume),u;n.volumeKeyframes&&n.volumeKeyframes.length>0?u=Mt(Mr(n.volumeKeyframes,r)):a===void 0||Math.abs(l-a)>1e-4?u=l:u=c;let m=Mt(u*s);i.volume=m,Xn.set(i,m),t.onElementVolume?.(i,m),(e||t.isWebAudioOwned?.(i))&&(i.muted=!0),i.preload!=="auto"&&(i.preload="auto");try{i.playbackRate=n.playbackRate*t.playbackRate}catch(T){v("runtime.media.site1",T)}let f=.04,g=2,A=i.currentTime||0,y=Math.abs(A-r),x=r-A,w=Jn.get(i);Jn.set(i,x);let N=w===void 0,L=!N&&Math.abs(x-w)>.5,$=y>3,B=y>.5&&(N||L||$),_=i.tagName==="VIDEO"&&!i.paused,S=w!==void 0&&Math.abs(x-w)<.004,C=!1;if(!_&&!B&&!N&&S&&y>f){let T=(Ft.get(i)??0)+1;Ft.set(i,T),T>=g&&(C=!0,Ft.set(i,0))}else y<=f&&Ft.set(i,0);let F=!_&&t.forceSync&&y>.02;if(B||C||F){if(!(i.tagName==="VIDEO"&&i.id&&!!document.getElementById(`__render_frame_${i.id}__`))){try{i.currentTime=r}catch(k){v("runtime.media.site2",k)}if(Math.abs(i.currentTime-r)>.5&&!Yn.has(i)){Yn.add(i),i.load();try{i.currentTime=r}catch(k){v("runtime.media.site3",k)}}}lt.delete(i)}t.playing&&i.paused&&!lt.has(i)&&!Ua(i)?(Wa(i),i.play().catch(T=>{lt.delete(i),(T&&typeof T=="object"&&"name"in T?String(T.name??""):"")==="NotAllowedError"&&t.onAutoplayBlocked?.()})):!t.playing&&!i.paused&&i.pause();continue}Jn.delete(i),Ft.delete(i),Yn.delete(i),Xn.delete(i),i.paused||i.pause()}}var Va=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),za=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(","),ja="data-hf-color-grading-source-hidden";function Lr(t){let e=!1,n=null,i=null,r=null,o=null;function s(S,C){try{window.dispatchEvent(new CustomEvent(S,{detail:C}))}catch(F){v("runtime.picker.site1",F)}}function c(S){r=S,s("hyperframe:picker:hovered",{elementInfo:r,isPickMode:e,timestamp:Date.now()})}function a(S){o=S,s("hyperframe:picker:selected",{elementInfo:o,isPickMode:e,timestamp:Date.now()})}function l(S){let C=S.ownerDocument.defaultView;if(!C)return!1;let F=S;for(;F&&F!==document.body&&F!==document.documentElement;){let T=C.getComputedStyle(F);if(T.display==="none"||T.visibility==="hidden"||T.pointerEvents==="none")return!0;let k=Number.parseFloat(T.opacity);if(Number.isFinite(k)&&k<=.01&&!F.hasAttribute(ja))return!0;F=F.parentElement}return!1}function u(S){if(!S||S===document.body||S===document.documentElement)return!1;let C=S.tagName.toLowerCase();return!(C==="script"||C==="style"||C==="link"||C==="meta"||S.classList.contains("__hf-pick-highlight")||S.closest(Va)||l(S))}function m(S){return!!S?.closest(za)}function f(S){let C=S;if(C.id)return`#${C.id}`;let F=S.getAttribute("data-composition-id");if(F)return`[data-composition-id="${CSS.escape(F)}"]`;let T=S.getAttribute("data-composition-src");if(T)return`[data-composition-src="${CSS.escape(T)}"]`;let k=S.getAttribute("data-track-index");if(k)return`[data-track-index="${CSS.escape(k)}"]`;let G=S.tagName.toLowerCase(),j=S.parentElement;if(!j)return G;let ie=j.querySelectorAll(`:scope > ${G}`);if(ie.length===1)return G;for(let P=0;P<ie.length;P+=1)if(ie[P]===S)return`${G}:nth-of-type(${P+1})`;return G}function g(S){let C=S.tagName.toLowerCase(),F=(S.textContent??"").trim().replace(/\\s+/g," "),T=(k,G)=>k.length>G?`${k.slice(0,G-1)}\\u2026`:k;return C==="h1"||C==="h2"||C==="h3"?"Heading":C==="p"||C==="span"||C==="div"?F.length>0?T(F,56):"Text":C==="img"?"Image":C==="video"?"Video":C==="audio"?"Audio":C==="svg"?"Shape":S.getAttribute("data-composition-src")?"Composition":C==="section"?"Section":`${C.charAt(0).toUpperCase()}${C.slice(1)}`}function A(S,C,F){let T=typeof F=="number"&&F>0?F:8,k=[];if(document.elementsFromPoint)k=document.elementsFromPoint(S,C);else if(document.elementFromPoint){let ie=document.elementFromPoint(S,C);k=ie?[ie]:[]}if(m(k[0]??null))return[];let G={},j=[];for(let ie=0;ie<k.length;ie+=1){let P=k[ie];if(!u(P))continue;let se=`${P.tagName}::${P.id||""}::${ie}`;if(!G[se]&&(G[se]=!0,j.push(P),j.length>=T))break}return j}function y(S){let C=S.getBoundingClientRect(),F={};for(let k=0;k<S.attributes.length;k+=1){let G=S.attributes[k];G.name.startsWith("data-")&&(F[G.name]=G.value)}return{id:S.id||null,tagName:S.tagName.toLowerCase(),selector:f(S),label:g(S),boundingBox:{x:C.left,y:C.top,width:C.width,height:C.height},textContent:S.textContent?S.textContent.trim().slice(0,200):null,src:S.getAttribute("src")||S.getAttribute("data-composition-src")||null,dataAttributes:F}}function x(S,C,F){return A(S,C,F).map(y)}function w(S){if(!e)return;let F=A(S.clientX,S.clientY,1)[0]??(S.target instanceof Element?S.target:null);if(!u(F)||n===F)return;n&&n.classList.remove("__hf-pick-highlight"),n=F,F.classList.add("__hf-pick-highlight");let T=y(F);c(T),t.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:T})}function N(S){if(!e)return;S.preventDefault(),S.stopPropagation(),S.stopImmediatePropagation();let C=x(S.clientX,S.clientY,8);C.length!==0&&(c(C[0]??null),t.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:C,selectedIndex:0,point:{x:S.clientX,y:S.clientY}}))}function L(S){S.key==="Escape"&&(B(),t.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function $(){e||(e=!0,i=document.createElement("style"),i.textContent=[".__hf-pick-highlight { outline: 2px solid #4f8cf7 !important; outline-offset: 2px; cursor: crosshair !important; }",".__hf-pick-active * { cursor: crosshair !important; }"].join(`\n`),document.head.appendChild(i),document.body.classList.add("__hf-pick-active"),document.addEventListener("mousemove",w,!0),document.addEventListener("click",N,!0),document.addEventListener("keydown",L,!0),s("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function B(){e&&(e=!1,n&&(n.classList.remove("__hf-pick-highlight"),n=null),i&&(i.remove(),i=null),document.body.classList.remove("__hf-pick-active"),document.removeEventListener("mousemove",w,!0),document.removeEventListener("click",N,!0),document.removeEventListener("keydown",L,!0),s("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function _(){window.__HF_PICKER_API={enable:$,disable:B,isActive:()=>e,getHovered:()=>r,getSelected:()=>o,getCandidatesAtPoint:(S,C,F)=>Number.isFinite(S)&&Number.isFinite(C)?x(S,C,F):[],pickAtPoint:(S,C,F)=>{if(!Number.isFinite(S)||!Number.isFinite(C))return null;let T=x(S,C,8);if(!T.length)return null;let k=Math.max(0,Math.min(T.length-1,Number(F??0))),G=T[k]??null;return G?(a(G),t.postMessage({source:"hf-preview",type:"element-picked",elementInfo:G}),B(),G):null},pickManyAtPoint:(S,C,F)=>{if(!Number.isFinite(S)||!Number.isFinite(C))return[];let T=x(S,C,8);if(!T.length)return[];let k=[],G=Array.isArray(F)?F:[0];for(let j of G){let ie=Math.max(0,Math.min(T.length-1,Math.floor(Number(j)))),P=T[ie];if(!P)continue;k.some(Se=>Se.selector===P.selector&&Se.tagName===P.tagName)||k.push(P)}return k.length?(a(k[0]??null),t.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:k}),B(),k):[]}},s("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:$,disablePickMode:B,installPickerApi:_}}var qa=["width","height","top","left","right","bottom","inset","object-fit","object-position","z-index","opacity","visibility","filter","mix-blend-mode","backdrop-filter","border-radius","overflow","clip-path","mask","mask-image","mask-size","mask-position","mask-repeat","transform","transform-origin","translate","rotate","scale","box-sizing"];function ut(t,e){let n=Number.isFinite(e)&&e>0?e:30,i=Number.isFinite(t)&&t>0?t:0;return Math.floor(i*n+1e-9)/n}function vr(t,e,n=qa){for(let i of n){let r=e.getPropertyValue(i);r&&t.setProperty(i,r)}}function _t(t,e,n){let i=t?.[e];return typeof i=="function"?Number(i.call(t))||n:typeof i=="number"&&Number.isFinite(i)?i:(i!=null&&v("runtime.player.nonConformantNum",{prop:e,actual:typeof i}),n)}function ke(t,e){let n=t?.[e];if(typeof n=="function"){n.call(t);return}n!==void 0&&v("runtime.player.nonConformantVoid",{method:e,actual:typeof n})}function Tt(t,e,n){if(t){for(let i of Object.values(t))if(!(!i||i===e))try{n(i)}catch(r){v("runtime.player.site1",r)}}}function kr(t,e,n){let i=ut(e,n);return ke(t,"pause"),typeof t.totalTime=="function"?t.totalTime(i,!1):typeof t.seek=="function"&&t.seek(i,!1),i}function $a(t,e,n,i){let r=[];Tt(t,e,o=>{ke(o,"play"),r.push(o)});try{return kr(e,n,i)}finally{for(let o of r)try{ke(o,"pause")}catch(s){v("runtime.player.site2",s)}}}function Ka(t,e){Tt(t,e,n=>{ke(n,"play")})}function Rr(t){return{_timeline:null,play:()=>{let e=t.getTimeline();if(!e||t.getIsPlaying())return;let n=Math.max(0,Number(t.getSafeDuration?.()??_t(e,"duration",0))||0);n>0&&Math.max(0,_t(e,"time",0))>=n&&(ke(e,"pause"),typeof e.seek=="function"&&e.seek(0,!1),t.onDeterministicSeek(0),t.setIsPlaying(!1),t.onSyncMedia(0,!1),t.onRenderFrameSeek(0)),typeof e.timeScale=="function"&&e.timeScale(t.getPlaybackRate()),ke(e,"play"),Tt(t.getTimelineRegistry?.(),e,i=>{typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),ke(i,"play")}),t.onDeterministicPlay(),t.setIsPlaying(!0),t.onShowNativeVideos(),t.onStatePost(!0)},pause:()=>{let e=t.getTimeline();if(!e)return;ke(e,"pause"),Tt(t.getTimelineRegistry?.(),e,i=>{ke(i,"pause")});let n=Math.max(0,_t(e,"time",0));t.onDeterministicSeek(n),t.onDeterministicPause(),t.setIsPlaying(!1),t.onSyncMedia(n,!1),t.onRenderFrameSeek(n),t.onStatePost(!0)},seek:(e,n)=>{let i=t.getTimeline();if(!i)return;let r=Math.max(0,Number(e)||0),o=t.getIsPlaying(),s=$a(t.getTimelineRegistry?.(),i,r,t.getCanonicalFps());t.onDeterministicSeek(s),n?.keepPlaying&&o?(typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),ke(i,"play"),Tt(t.getTimelineRegistry?.(),i,c=>{typeof c.timeScale=="function"&&c.timeScale(t.getPlaybackRate()),ke(c,"play")}),t.onDeterministicPlay(),t.onShowNativeVideos(),t.onSyncMedia(s,!0)):(t.setIsPlaying(!1),t.onSyncMedia(s,!1)),t.onRenderFrameSeek(s),t.onStatePost(!0)},renderSeek:e=>{let n=t.getTimeline(),i=t.getCanonicalFps(),r=n?(Ka(t.getTimelineRegistry?.(),n),kr(n,e,i)):ut(Math.max(0,Number(e)||0),i);t.onDeterministicSeek(r),t.setIsPlaying(!1),t.onSyncMedia(r,!1),t.onRenderFrameSeek(r),t.onStatePost(!0)},getTime:()=>_t(t.getTimeline(),"time",0),getDuration:()=>_t(t.getTimeline(),"duration",0),isPlaying:()=>t.getIsPlaying(),setPlaybackRate:e=>t.setPlaybackRate(e),getPlaybackRate:()=>t.getPlaybackRate()}}function Dr(){return{capturedTimeline:null,isPlaying:!1,currentTime:0,deterministicAdapters:[],canonicalFps:30,bridgeMuted:!1,bridgeVolume:1,mediaOutputMuted:!1,nativeMediaSyncDisabled:!1,webAudioMediaDisabled:!1,mediaAutoplayBlockedPosted:!1,mediaForceSyncNextTick:!1,playbackRate:1,bridgeLastPostedFrame:-1,bridgeLastPostedAt:0,bridgeLastPostedPlaying:!1,bridgeLastPostedMuted:!1,bridgeMaxPostIntervalMs:80,controlBridgeHandler:null,beforeUnloadHandler:null,injectedCompStyles:[],injectedCompScripts:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,transportClock:null,transportRafId:null}}var Ja=new Set(["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"]);function Zn(t){return t.id||t.getAttribute("data-hf-id")||null}function Qn(t){if(t==null)return null;let e=Number(t);return Number.isFinite(e)?e:null}function Ya(t,e){let n=t.getAttribute("data-composition-id");if(!n)return null;let i=Number(e[n]?.duration?.());return Number.isFinite(i)&&i>0?i:null}function Xa(t){if(!(t instanceof HTMLMediaElement)||!Number.isFinite(t.duration))return null;let e=Qn(t.getAttribute("data-playback-start"))??Qn(t.getAttribute("data-media-start"))??0;return t.duration>e?t.duration-e:null}function Qa(t,e,n,i){let r=Qn(t.getAttribute("data-duration"));return r!=null&&r>0?r:Ya(t,e)??Xa(t)??Math.max(0,n-i)}function Za(t){for(let[e,n]of t){let i=e.parentElement;for(;i;){let r=t.get(i);if(r){n.parentId=r.id,r.children.push(n);break}i=i.parentElement}}}function Ir(t){let{startResolver:e,timelineRegistry:n,rootDuration:i}=t,r=new Map,o=document.querySelector("[data-composition-id]"),s=0;for(let c of document.querySelectorAll("[data-start]")){if(c===o||Ja.has(c.tagName))continue;let a=e.resolveStartForElement(c,0);if(Qa(c,n,i,a)<=0)continue;let l={id:Zn(c)??`__clip-${s++}`,element:c,parentId:null,children:[]};r.set(c,l)}return Za(r),{roots:Array.from(r.values()).filter(c=>c.parentId===null)}}var el="data-hf-authored-duration",tl="data-hf-authored-end";function it(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function nl(t){return it(t.getAttribute("data-duration"))}function il(t){return it(t.getAttribute("data-end"))}function rl(t){return it(t.getAttribute(el))}function ol(t){return it(t.getAttribute(tl))}function sl(t){let e=(t??"").trim();if(!e)return null;let n=it(e);if(n!=null)return{kind:"absolute",value:n};let i=e.match(/^([A-Za-z0-9_.:-]+)(?:\\s*([+-])\\s*([0-9]*\\.?[0-9]+))?$/);if(!i)return null;let r=(i[1]??"").trim();if(!r)return null;let o=i[2]??"+",s=i[3]??"0",c=Number.parseFloat(s),a=Number.isFinite(c)?Math.max(0,c):0,l=o==="-"?-a:a;return{kind:"reference",refId:r,offset:l}}function ze(t){let e=t.timelineRegistry??{},n=t.includeAuthoredTimingAttrs??!1,i=new WeakMap,r=new WeakMap,o=new Set,s=u=>{let m=document.getElementById(u);return m||(document.querySelector(`[data-composition-id="${CSS.escape(u)}"]`)??null)},c=u=>{let m=r.get(u);if(m!==void 0)return m;let f=null,g=nl(u)??(n?rl(u):null);if(g!=null&&g>0&&(f=g),f==null||f<=0){let A=il(u)??(n?ol(u):null);if(A!=null){let y=l(u,0),x=A-y;Number.isFinite(x)&&x>0&&(f=x)}}if((f==null||f<=0)&&u instanceof HTMLMediaElement){let A=it(u.getAttribute("data-playback-start"))??it(u.getAttribute("data-media-start"))??0;Number.isFinite(u.duration)&&u.duration>A&&(f=(u.duration-A)/Nt(u))}if(f==null||f<=0){let A=u.getAttribute("data-composition-id");if(A){let y=e[A]??null;if(y&&typeof y.duration=="function")try{let x=Number(y.duration());Number.isFinite(x)&&x>0&&(f=x)}catch(x){v("runtime.startResolver.site1",x)}}}return f!=null&&Number.isFinite(f)&&f>0?(r.set(u,f),f):(r.set(u,null),null)},a=(u,m)=>{if(u.hasAttribute("data-composition-id")){let g=u.parentElement?.closest("[data-composition-id]");return g?l(g,m):0}let f=u.closest("[data-composition-id]");return f?l(f,m):0},l=(u,m)=>{let f=i.get(u);if(f!==void 0)return f??m;if(o.has(u))return m;o.add(u);try{let g=sl(u.getAttribute("data-start"));if(!g){if(u.hasAttribute("data-composition-id")){let N=u.parentElement;if(N&&(N.hasAttribute("data-composition-src")||N.hasAttribute("data-composition-id"))){let L=l(N,m);return i.set(u,L),L}}return i.set(u,m),m}if(g.kind==="absolute"){let N=Math.max(0,g.value),L=Math.max(0,a(u,m)+N);return i.set(u,L),L}let A=s(g.refId);if(!A)return i.set(u,m),m;let y=l(A,0),x=c(A);if(x==null||x<=0){let N=Math.max(0,y+g.offset);return i.set(u,N),N}let w=Math.max(0,y+x+g.offset);return i.set(u,w),w}finally{o.delete(u)}};return{resolveStartForElement:(u,m=0)=>l(u,Math.max(0,m)),resolveDurationForElement:u=>c(u)}}function ei(t){let e=t.trim().toLowerCase();return!(!e||e==="main"||e.includes("caption")||e.includes("ambient"))}var al="data-hf-authored-duration",ll="data-hf-authored-end";function Ce(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function ti(t){return Ce(t.getAttribute("data-duration"))??Ce(t.getAttribute(al))}function Pr(t){return Ce(t.getAttribute("data-end"))??Ce(t.getAttribute(ll))}function ni(...t){let e=t.filter(n=>Number.isFinite(n??null));return e.length===0?null:Math.max(...e)}var Or={composition:0,video:1,image:2,element:3,audio:4};function ul(t){if(t.length===0)return;let e=new Map;for(let s of t){let c=e.get(s.track)??new Set;c.add(s.kind),e.set(s.track,c)}if(!Array.from(e.values()).some(s=>s.size>1))return;let i=0,r=new Map,o=[...e.keys()].sort((s,c)=>s-c);for(let s of o){let c=e.get(s);if(c.size===1)r.set(`${s}:${[...c][0]}`,i++);else{let a=[...c].sort((l,u)=>(Or[l]??99)-(Or[u]??99));for(let l of a)r.set(`${s}:${l}`,i++)}}for(let s of t){let c=`${s.track}:${s.kind}`,a=r.get(c);a!=null&&(s.track=a)}}function vt(t){let e=String(t??"").trim();if(!e)return null;let n=e.toLowerCase();if(n.startsWith("data:")||n.startsWith("javascript:"))return null;try{return new URL(e,document.baseURI).toString()}catch{return e}}function Br(t){let e=t.getAttribute("src")??t.getAttribute("data-src");if(e)return vt(e);let n=t.getAttribute("data-composition-src");if(n)return vt(n);let i=t.querySelector("img[src], video[src], audio[src], source[src]");return i?vt(i.getAttribute("src")):null}function cl(t){let e=t.className;return typeof e!="string"?null:e.split(/\\s+/).map(n=>n.trim()).find(n=>n&&n!=="clip"&&!n.startsWith("__hf-"))??null}function dl(t){if(!t)return null;try{return new URL(t,document.baseURI).pathname.split("/").filter(Boolean).at(-1)??null}catch{return t.split(/[\\\\/]/).filter(Boolean).at(-1)??null}}function fl(t){let e=t.textContent?.replace(/\\s+/g," ").trim();return e?e.length>32?`${e.slice(0,31)}...`:e:null}function Lt(t){let e=t.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return e?e.replace(/\\b\\w/g,n=>n.toUpperCase()):t}function ml(t,e,n){let i=t.getAttribute("data-timeline-label")??t.getAttribute("data-label")??t.getAttribute("aria-label")??null;if(i?.trim())return i.trim();let r=t.getAttribute("data-composition-id");if(r)return Lt(r);let o=t.id;if(o)return Lt(o);let s=cl(t);if(s)return Lt(s);let c=dl(Br(t));if(c)return Lt(c);let a=fl(t);return a||`${Lt(e)} ${n+1}`}function Hr(t){let n=window.__timelines??{},i=ze({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),r=O=>{if(!O)return null;let D=n[O]??null;if(!D||typeof D.duration!="function")return null;try{let W=Number(D.duration());return Number.isFinite(W)&&W>0?W:null}catch{return null}},o=O=>{let D=Ce(O.getAttribute("data-duration"));if(D!=null&&D>0)return D;let W=Ce(O.getAttribute("data-playback-start"))??Ce(O.getAttribute("data-media-start"))??0;return Number.isFinite(O.duration)&&O.duration>W?Math.max(0,(O.duration-W)/Nt(O)):null},s=()=>{let O=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(O.length===0)return null;let D=0;for(let W of O){let Q=W.hasAttribute("data-hf-auto-start")?i.resolveStartForElement(W,0):Math.max(0,Number(W.getAttribute("data-start")??0)||0);if(!Number.isFinite(Q))continue;let ae=o(W);ae==null||ae<=0||(D=Math.max(D,Math.max(0,Q)+ae))}return D>0?D:null},c=(O,D)=>{let W=[],Q=null,ae=null,q=null,z=O.parentElement;for(;z;){let X=z.getAttribute("data-composition-id");X&&(W.push(X),!q&&z!==D&&(q=X),Q==null&&(Q=i.resolveStartForElement(z,0)),ae==null&&(ae=Ce(z.getAttribute("data-duration"))??r(X)??null)),z=z.parentElement}return{parentCompositionId:q,compositionAncestors:W.reverse(),inheritedStart:Q,inheritedDuration:ae}},a=document.querySelector("[data-composition-id]"),l=Array.from(document.querySelectorAll("[data-composition-id]")),u=a?.getAttribute("data-composition-id")??null,m=a?i.resolveStartForElement(a,0):0,f=s(),g=f!=null?Math.max(0,f-Math.max(0,m)):null,A=r(u),y=ti(a??document.body),x=ni(...l.filter(O=>O!==a).map(O=>{let D=i.resolveStartForElement(O,0),W=i.resolveDurationForElement(O)??r(O.getAttribute("data-composition-id"))??null;return!Number.isFinite(D)||W==null||W<=0?null:Math.max(0,D)+W})),w=x!=null?Math.max(0,x-Math.max(0,m)):null,N=typeof A=="number"&&Number.isFinite(A)&&A>0?A:null,L=typeof y=="number"&&Number.isFinite(y)&&y>0?y:null,$=typeof g=="number"&&Number.isFinite(g)&&g>0?g:null,B=typeof w=="number"&&Number.isFinite(w)&&w>0?w:null,_=ni($,B),S=N!=null&&_!=null&&N>_+1,F=L??(S?_:ni(N,$,B))??null,k=(F!=null?m+F:null)??(typeof f=="number"&&Number.isFinite(f)&&f>0?f:null),G=(O,D)=>!Number.isFinite(D)||D<=0?0:k==null||!Number.isFinite(k)?D:!Number.isFinite(O)||O>=k?0:Math.max(0,Math.min(D,k-O)),j=[],ie=[],P=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),se=0;for(let O=0;O<P.length;O+=1){let D=P[O];if(D===a||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(D.tagName))continue;let W=c(D,a),Q=i.resolveStartForElement(D,W.inheritedStart??0),ae=D.getAttribute("data-composition-id"),q=ti(D);if((q==null||q<=0)&&ae&&ae!==u&&(q=r(ae)),(q==null||q<=0)&&D instanceof HTMLMediaElement){let Me=Ce(D.getAttribute("data-playback-start"))??Ce(D.getAttribute("data-media-start"))??0;Number.isFinite(D.duration)&&D.duration>0&&(q=Math.max(0,D.duration-Me))}if(q==null||q<=0){let Me=W.inheritedDuration;if(Me!=null&&Me>0){let He=(W.inheritedStart??0)+Me;q=Math.max(0,He-Q)}}if(q==null||q<=0||(q=G(Q,q),q<=0))continue;let z=Q+q;se=Math.max(se,z);let X=D.tagName.toLowerCase(),Ie=ae&&ae!==u?"composition":X==="video"?"video":X==="audio"?"audio":X==="img"?"image":"element";j.push({id:Zn(D)??ae??null,label:ml(D,Ie,j.length),start:Q,duration:q,track:Number.parseInt(D.getAttribute("data-track-index")??D.getAttribute("data-track")??String(O),10)||0,kind:Ie,tagName:X,compositionId:D.getAttribute("data-composition-id"),compositionAncestors:W.compositionAncestors,parentCompositionId:W.parentCompositionId,nodePath:null,compositionSrc:vt(D.getAttribute("data-composition-src")),assetUrl:Br(D),timelineRole:D.getAttribute("data-timeline-role"),timelineLabel:D.getAttribute("data-timeline-label"),timelineGroup:D.getAttribute("data-timeline-group"),timelinePriority:Ce(D.getAttribute("data-timeline-priority"))})}let Se=new Set(j.map(O=>O.id)),H=a?.getAttribute("data-composition-id")??null,U=H?n[H]??null:null;if(U&&a){let O=U;if(typeof O.getChildren=="function")try{let D=O.getChildren(!0,!0,!1)??[],W=new Map;for(let q of a.children){let z=q;if(!z.id)continue;let X=z.tagName.toLowerCase();X==="script"||X==="style"||X==="link"||W.set(z,{id:z.id,start:1/0,end:-1/0})}let Q=q=>{let z=q;for(;z;){if(W.has(z))return z;if(z===a)return null;z=z.parentElement}return null};for(let q of D){if(typeof q.targets!="function"||typeof q.startTime!="function"||typeof q.duration!="function")continue;let z=q.startTime(),X=q.parent;for(;X&&X!==U&&typeof X.startTime=="function";)z+=X.startTime(),X=X.parent;let Ie=z+q.duration();if(!(!Number.isFinite(z)||!Number.isFinite(Ie)))for(let Me of q.targets()){if(!(Me instanceof Element))continue;let bt=Q(Me);if(!bt)continue;let He=W.get(bt);He&&(He.start=Math.min(He.start,z),He.end=Math.max(He.end,Ie))}}let ae=j.length>0?Math.max(...j.map(q=>q.track))+1:0;for(let[q,z]of W){if(z.start===1/0||z.end===-1/0)continue;let X=q;if(Se.has(X.id))continue;let Ie=Math.max(0,z.end-z.start);if(Ie<=0)continue;let Me=G(z.start,Ie);Me<=0||(se=Math.max(se,z.start+Me),j.push({id:X.id,label:X.getAttribute("data-timeline-label")??X.getAttribute("data-label")??X.getAttribute("aria-label")??X.id,start:z.start,duration:Me,track:Number.parseInt(X.getAttribute("data-track-index")??X.getAttribute("data-track")??"",10)||ae,kind:"element",tagName:X.tagName.toLowerCase(),compositionId:X.getAttribute("data-composition-id"),compositionAncestors:H?[H]:[],parentCompositionId:H,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:X.getAttribute("data-timeline-role"),timelineLabel:X.getAttribute("data-timeline-label"),timelineGroup:X.getAttribute("data-timeline-group"),timelinePriority:Ce(X.getAttribute("data-timeline-priority"))}),Se.add(X.id))}}catch(D){v("runtime.timeline.site1",D)}}if(a&&F!=null&&F>0){let O=j.length>0?Math.max(...j.map(D=>D.track))+1:0;for(let D of a.children){let W=D;if(!W.id||Se.has(W.id))continue;let Q=W.getAttribute("data-timeline-role");if(Q!=="overlay"&&Q!=="persistent-overlay")continue;let ae=W.tagName.toLowerCase();if(ae==="script"||ae==="style"||ae==="link"||ae==="meta"||window.getComputedStyle(W).display==="none")continue;let z=G(0,F);z<=0||(se=Math.max(se,z),j.push({id:W.id,label:W.getAttribute("data-timeline-label")??W.getAttribute("data-label")??W.getAttribute("aria-label")??W.id,start:0,duration:z,track:Number.parseInt(W.getAttribute("data-track-index")??W.getAttribute("data-track")??"",10)||O,kind:"element",tagName:ae,compositionId:W.getAttribute("data-composition-id"),compositionAncestors:H?[H]:[],parentCompositionId:H,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:Q,timelineLabel:W.getAttribute("data-timeline-label"),timelineGroup:W.getAttribute("data-timeline-group"),timelinePriority:Ce(W.getAttribute("data-timeline-priority"))}),Se.add(W.id))}}ul(j);for(let O of l){if(O===a)continue;let D=O.getAttribute("data-composition-id");if(!D||!ei(D))continue;let W=i.resolveStartForElement(O,0),Q=ti(O);if((Q==null||Q<=0)&&Pr(O)!=null){let X=Pr(O);Q=Math.max(0,X-W)}let ae=r(D),q=Q&&Q>0?Q:ae;if(q==null||q<=0)continue;let z=G(W,q);z<=0||ie.push({id:D,label:O.getAttribute("data-label")??D,start:W,duration:z,thumbnailUrl:vt(O.getAttribute("data-thumbnail-url")),avatarName:null})}let V=Math.max(1,se||1,F??0);return{source:"hf-preview",type:"timeline",durationInFrames:S&&L==null?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(V*Math.max(1,t.canonicalFps))),clips:j,scenes:ie,compositionWidth:Ce(a?.getAttribute("data-width"))??1920,compositionHeight:Ce(a?.getAttribute("data-height"))??1080}}var ce=Da(ds(),1),fs=ce.default,lp=ce.default.stringify,up=ce.default.fromJSON,cp=ce.default.plugin,dp=ce.default.parse,fp=ce.default.list,mp=ce.default.document,pp=ce.default.comment,hp=ce.default.atRule,xp=ce.default.rule,gp=ce.default.decl,yp=ce.default.root,bp=ce.default.CssSyntaxError,Sp=ce.default.Declaration,Ap=ce.default.Container,Ep=ce.default.Processor,wp=ce.default.Document,Cp=ce.default.Comment,Fp=ce.default.Warning,Mp=ce.default.AtRule,Np=ce.default.Result,_p=ce.default.Input,Tp=ce.default.Rule,Lp=ce.default.Root,vp=ce.default.Node;var _i="data-hf-authored-id";function Ti(t){return t.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function Li(t){return t.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function Iu(t){return t&&t.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function ms(t){let e=t.trim();return e?Array.from(new Set([e,Iu(e)])).filter(Boolean):[]}function Pu(t){return!!t&&/[\\w-]/.test(t)}function Ou(t,e,n){let i=ms(e).sort((c,a)=>a.length-c.length);if(i.length===0)return t;let r="",o=0,s=null;for(let c=0;c<t.length;c+=1){let a=t[c],l=c>0?t[c-1]:"";if(s){r+=a,a===s&&l!=="\\\\"&&(s=null);continue}if(a===\'"\'||a==="\'"){s=a,r+=a;continue}if(a==="["){o+=1,r+=a;continue}if(a==="]"){o=Math.max(0,o-1),r+=a;continue}if(a==="#"&&o===0){let u=i.find(m=>t.startsWith(m,c+1));if(u){let m=t[c+1+u.length];if(!Pu(m)){r+=n,c+=u.length;continue}}}r+=a}return r}function Bu(t,e){let n=e?.trim();return n?Ou(t,n,`[${_i}="${Li(n)}"]`):t}function Hu(t,e,n,i,r){let o=Bu(t,i),s=Wu(o,e,n),c=s.trim();if(!c||/^(html|body|:root|\\*)$/i.test(c))return t;let a=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*=\\\\s*(["\'])${Ti(n)}\\\\1\\\\s*\\\\]`,"g");if(a.test(c))return s.replace(a,e);let l=s.match(/^\\s*/)?.[0]??"",u=s.match(/\\s*$/)?.[0]??"";if(r){let m=i?`[${_i}="${Li(i)}"]`:null;if(m&&c.startsWith(m)){let f=c.slice(m.length);return`${l}${e}${m}${f}${u}`}}return`${l}${e} ${c}${u}`}function Wu(t,e,n){let i=Ti(n),r=String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${i}"|\'${i}\')\\s*\\]`,o=String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`;return t.replace(new RegExp(`${r}(?:${o})+`,"g"),e).replace(new RegExp(`(?:${o})+${r}`,"g"),e)}var Gu=new Set(["keyframes","-webkit-keyframes","font-face"]);function Uu(t){return t?.type==="atrule"}function Vu(t){let e=t.parent;for(;e;){if(Uu(e)&&Gu.has(e.name.toLowerCase()))return!0;e=e.parent}return!1}function vi(t,e,n,i,r){let o=e.trim();if(!t||!o)return t;let s=n||`[data-composition-id="${Li(o)}"]`,c=fs.parse(t);return c.walkRules(a=>{Vu(a)||(a.selectors=a.selectors.map(l=>Hu(l,s,o,i,r?.compoundAuthoredRoot)))}),c.toResult({map:!1}).css}function ps(t,e,n="[HyperFrames] composition script error:",i,r=e,o){let s=JSON.stringify(e),c=JSON.stringify(r),a=JSON.stringify(n),l=Ti(e),u=JSON.stringify(o?.trim()||null),m=JSON.stringify(i??null),f=JSON.stringify(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${l}"|\'${l}\')\\s*\\]`),g=JSON.stringify(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),A=JSON.stringify(ms(o?.trim()||""));return`(function(){\n var __hfCompId = ${s};\n var __hfTimelineCompId = ${c};\n var __hfErrorLabel = ${a};\n var __hfAuthoredRootId = ${u};\n var __hfAuthoredRootAttr = ${JSON.stringify(_i)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${m} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${f};\n var __hfTimingSelectorPattern = ${g};\n var __hfAuthoredRootIdForms = ${A};\n var __hfAuthoredRootSelector = __hfAuthoredRootId\n ? "[" + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(__hfAuthoredRootId) + \'"]\'\n : "";\n var __hfIsSelectorNameChar = function(char) {\n return !!char && /[\\\\w-]/.test(char);\n };\n var __hfReplaceAuthoredRootIdSelectors = function(selector) {\n if (!__hfAuthoredRootSelector || !__hfAuthoredRootIdForms.length || typeof selector !== "string") {\n return selector;\n }\n var result = "";\n var bracketDepth = 0;\n var quote = null;\n for (var index = 0; index < selector.length; index += 1) {\n var char = selector[index];\n var previousChar = index > 0 ? selector[index - 1] : "";\n if (quote) {\n result += char;\n if (char === quote && previousChar !== "\\\\\\\\") {\n quote = null;\n }\n continue;\n }\n if (char === \'"\' || char === "\'") {\n quote = char;\n result += char;\n continue;\n }\n if (char === "[") {\n bracketDepth += 1;\n result += char;\n continue;\n }\n if (char === "]") {\n bracketDepth = Math.max(0, bracketDepth - 1);\n result += char;\n continue;\n }\n if (char === "#" && bracketDepth === 0) {\n var matchedForm = null;\n for (var formIndex = 0; formIndex < __hfAuthoredRootIdForms.length; formIndex += 1) {\n var form = __hfAuthoredRootIdForms[formIndex];\n if (selector.slice(index + 1, index + 1 + form.length) === form) {\n matchedForm = form;\n break;\n }\n }\n if (matchedForm) {\n var nextChar = selector[index + 1 + matchedForm.length];\n if (!__hfIsSelectorNameChar(nextChar)) {\n result += __hfAuthoredRootSelector;\n index += matchedForm.length;\n continue;\n }\n }\n }\n result += char;\n }\n return result;\n };\n var __hfNormalizeSelector = function(selector) {\n if (!__hfCompId || typeof selector !== "string") return selector;\n var normalized = selector\n .replace(new RegExp(__hfRootSelectorPattern + \'(?:\' + __hfTimingSelectorPattern + \')+\', \'g\'), __hfRootSelector)\n .replace(new RegExp(\'(?:\' + __hfTimingSelectorPattern + \')+\' + __hfRootSelectorPattern, \'g\'), __hfRootSelector);\n if (__hfAuthoredRootSelector) {\n normalized = __hfReplaceAuthoredRootIdSelectors(normalized);\n }\n return normalized;\n };\n var __hfFindRoot = function() {\n if (!__hfRoot && __hfRootSelector) {\n __hfRoot = window.document.querySelector(__hfRootSelector);\n }\n return __hfRoot;\n };\n var __hfContains = function(node) {\n var root = __hfFindRoot();\n return !root || node === root || root.contains(node);\n };\n var __hfQueryAll = function(selector) {\n var root = __hfFindRoot();\n if (!root || typeof selector !== "string") {\n return window.document.querySelectorAll(selector);\n }\n return Array.prototype.filter.call(window.document.querySelectorAll(__hfNormalizeSelector(selector)), function(node) {\n return __hfContains(node);\n });\n };\n var __hfQueryOne = function(selector) {\n var matches = __hfQueryAll(selector);\n return matches[0] || null;\n };\n var __hfGetElementById = function(id) {\n var found = window.document.getElementById(id);\n if (found && __hfContains(found)) return found;\n var root = __hfFindRoot();\n if (!root) return found || null;\n var idValue = id + "";\n if (__hfAuthoredRootId && __hfAuthoredRootId === idValue && root.getAttribute && root.getAttribute(__hfAuthoredRootAttr) === idValue) {\n return root;\n }\n if (root.id === idValue) return root;\n if (typeof root.querySelector !== "function") return null;\n try {\n var authoredRootMatch = root.querySelector(\'[\' + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(idValue) + \'"]\');\n if (authoredRootMatch) return authoredRootMatch;\n } catch {}\n if (typeof CSS !== "undefined" && CSS && typeof CSS.escape === "function") {\n try {\n return root.querySelector("#" + CSS.escape(idValue)) || null;\n } catch {}\n }\n try {\n return root.querySelector(\'[id="\' + __hfEscapeAttr(idValue) + \'"]\') || null;\n } catch {}\n return null;\n };\n var __hfScopedDocument = typeof Proxy === "function"\n ? new Proxy(window.document, {\n get: function(target, prop, receiver) {\n if (prop === "querySelector") return __hfQueryOne;\n if (prop === "querySelectorAll") return __hfQueryAll;\n if (prop === "getElementById") return __hfGetElementById;\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n })\n : window.document;\n var __hfTimelineRegistryProxy = null;\n var __hfGetTimelineRegistry = function() {\n window.__timelines = window.__timelines || {};\n if (!__hfCompId || __hfCompId === __hfTimelineCompId || typeof Proxy !== "function") {\n return window.__timelines;\n }\n if (!__hfTimelineRegistryProxy) {\n __hfTimelineRegistryProxy = new Proxy(window.__timelines, {\n get: function(target, prop, receiver) {\n return Reflect.get(target, prop === __hfCompId ? __hfTimelineCompId : prop, target);\n },\n set: function(target, prop, value, receiver) {\n return Reflect.set(target, prop === __hfCompId ? __hfTimelineCompId : prop, value, target);\n },\n });\n }\n return __hfTimelineRegistryProxy;\n };\n var __hfScopedWindow = typeof Proxy === "function"\n ? new Proxy(window, {\n get: function(target, prop, receiver) {\n if (prop === "__timelines") return __hfGetTimelineRegistry();\n return Reflect.get(target, prop, target);\n },\n set: function(target, prop, value, receiver) {\n if (prop === "__timelines") {\n target.__timelines = value || {};\n __hfTimelineRegistryProxy = null;\n return true;\n }\n return Reflect.set(target, prop, value, target);\n },\n })\n : window;\n var __hfResolveGsapTarget = function(target) {\n if (typeof target !== "string") return target;\n return __hfQueryAll(target);\n };\n var __hfScopeTimeline = function(timeline) {\n if (!timeline || timeline.__hfScopedCompositionRoot === __hfFindRoot()) return timeline;\n ["to", "from", "fromTo", "set"].forEach(function(method) {\n var original = timeline[method];\n if (typeof original !== "function") return;\n timeline[method] = function(target) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(target);\n return original.apply(timeline, args);\n };\n });\n try {\n Object.defineProperty(timeline, "__hfScopedCompositionRoot", {\n value: __hfFindRoot(),\n configurable: true,\n });\n } catch {\n // Best-effort: timelines coming from user code may have a frozen target\n // or a non-extensible defineProperty path. Swallow \\u2014 the scoped root\n // is an enrichment, not a correctness invariant for playback.\n }\n return timeline;\n };\n var __hfBaseGsap = typeof gsap === "undefined" ? window.gsap : gsap;\n var __hfScopedGsap = !__hfBaseGsap || typeof Proxy !== "function"\n ? __hfBaseGsap\n : new Proxy(__hfBaseGsap, {\n get: function(target, prop, receiver) {\n if (prop === "timeline") {\n return function() {\n return __hfScopeTimeline(target.timeline.apply(target, arguments));\n };\n }\n if (prop === "to" || prop === "from" || prop === "fromTo" || prop === "set") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return target[prop].apply(target, args);\n };\n }\n if (prop === "utils" && target.utils && typeof Proxy === "function") {\n return new Proxy(target.utils, {\n get: function(utilsTarget, utilsProp, utilsReceiver) {\n if (utilsProp === "toArray") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return utilsTarget.toArray.apply(utilsTarget, args);\n };\n }\n if (utilsProp === "selector") {\n return function(base) {\n var baseEl = typeof base === "string" ? __hfQueryOne(base) : base;\n var root = baseEl || __hfFindRoot();\n return function(selector) {\n if (!root || typeof selector !== "string") return [];\n return Array.prototype.filter.call(\n window.document.querySelectorAll(__hfNormalizeSelector(selector)),\n function(node) {\n return node === root || (typeof root.contains === "function" && root.contains(node));\n },\n );\n };\n };\n }\n var value = Reflect.get(utilsTarget, utilsProp, utilsTarget);\n return typeof value === "function" ? value.bind(utilsTarget) : value;\n },\n });\n }\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n });\n var __hfBaseHyperframes = window.__hyperframes;\n var __hfScopedHyperframes = !__hfBaseHyperframes\n ? __hfBaseHyperframes\n : Object.assign({}, __hfBaseHyperframes, {\n getVariables: function() {\n var byComp = window.__hfVariablesByComp;\n var scoped = byComp && __hfTimelineCompId ? byComp[__hfTimelineCompId] : null;\n return scoped ? Object.assign({}, scoped) : {};\n },\n });\n var __hfRun = function() {\n try {\n (function(document, gsap, window, __hyperframes) {\n${t.replace(/<\\/(script)/gi,"<\\\\/$1")}\n }).call(window, __hfScopedDocument, __hfScopedGsap, __hfScopedWindow, __hfScopedHyperframes);\n } catch (_err) {\n console.error(__hfErrorLabel, __hfCompId, _err);\n }\n };\n __hfFindRoot();\n __hfRun();\n})();`}function hs(){if(typeof document>"u")return{};let t=ki(document.documentElement),e=zu();return{...t,...e}}function ki(t){if(!t)return{};let e=t.getAttribute("data-composition-variables");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}if(!Array.isArray(n))return{};let i={};for(let r of n){if(!r||typeof r!="object")continue;let o=r;typeof o.id!="string"||!("default"in o)||(i[o.id]=o.default)}return i}function zu(){if(typeof window>"u")return{};let t=window.__hfVariables;return!t||typeof t!="object"||Array.isArray(t)?{}:t}var ju=8e3,qu=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,$u=/\\burl\\(\\s*(["\']?)([^)"\']+)\\1\\s*\\)/g,Ku=["src","href"];function Ju(t){return!t||t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//")||t.startsWith("data:")||t.startsWith("#")||t.startsWith("/")}function gs(t,e){if(!e)return t;let n=t.trim();if(Ju(n)||!n.startsWith("../")&&n!=="..")return t;try{return new URL(n,e).href}catch{return t}}function ys(t,e){return!e||!t?t:t.replace($u,(n,i,r)=>{let o=gs(r||"",e);return o===r?n:`url(${i||""}${o}${i||""})`})}function Yu(t,e){for(let n of Array.from(t.querySelectorAll("[src], [href]")))for(let i of Ku){let r=n.getAttribute(i);if(r==null)continue;let o=gs(r,e);o!==r&&n.setAttribute(i,o)}}function Xu(t,e){for(let n of Array.from(t.querySelectorAll("[style]"))){let i=n.getAttribute("style");if(i==null)continue;let r=ys(i,e);r!==i&&n.setAttribute("style",r)}}function Qu(t,e){for(let n of Array.from(t.querySelectorAll("style"))){let i=n.textContent||"",r=ys(i,e);r!==i&&(n.textContent=r)}}function bs(t,e){if(e){Yu(t,e),Xu(t,e),Qu(t,e);for(let n of Array.from(t.querySelectorAll("template")))bs(n.content,e)}}function Zu(t,e){return`${t}__hf${e}`}var ec=t=>new Promise(e=>{let n=!1,i=Date.now(),r=null,o=s=>{n||(n=!0,r!=null&&window.clearTimeout(r),e({status:s,elapsedMs:Math.max(0,Date.now()-i)}))};t.addEventListener("load",()=>o("load"),{once:!0}),t.addEventListener("error",()=>o("error"),{once:!0}),r=window.setTimeout(()=>o("timeout"),ju)});function Ri(t){for(;t.firstChild;)t.removeChild(t.firstChild);t.textContent=""}var tc=["data-composition-id","data-composition-file","data-start","data-duration","data-end","data-track-index","data-track","data-composition-src","data-hf-authored-duration","data-hf-authored-end"];function nc(t){let e=document.importNode(t,!0),n=e.getAttribute("id")?.trim();for(let o of tc)e.removeAttribute(o);n&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",n)),e.setAttribute("data-hf-inner-root","true");let i=e.getAttribute("data-width"),r=e.getAttribute("data-height");return e.style.width=i?`${i}px`:"100%",e.style.height=r?`${r}px`:"100%",e}function xs(t,e){let n=t.trim();if(!n)return t;try{return qu.test(n)?new URL(n,document.baseURI).toString():e?new URL(n,e).toString():new URL(n,document.baseURI).toString()}catch{return t}}function ic(t){let e=t.getAttribute("data-variable-values");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}return!n||typeof n!="object"||Array.isArray(n)?{}:n}function Fn(t){let e=(t.getAttribute("data-composition-id")||"").trim()||null;return{authoredCompositionId:(t.getAttribute("data-hf-original-composition-id")||e||"").trim()||null,runtimeCompositionId:e}}function rc(t){let e=new Map;for(let n of t){let i=Fn(n).authoredCompositionId||"";i&&e.set(i,(e.get(i)||0)+1)}return e}function Ss(t){let e=Fn(t).authoredCompositionId;return e?!!document.querySelector(`template#${CSS.escape(e)}-template`):!1}function oc(t){return!!t.querySelector(\'[data-hf-inner-root="true"]\')}function sc(t){return t.hasAttribute("data-composition-src")?!0:Ss(t)?t.children.length===0||t.hasAttribute("data-hf-original-composition-id")?!0:oc(t):!1}function Ii(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(e=>e.hasAttribute("data-composition-src")?!0:Ss(e))}function As(){let t=window.__hfVariablesByComp;if(!t)return;let e=new Set(Ii().map(n=>Fn(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(t))e.has(n)||delete t[n]}function Es(t,e=rc(t)){let n=new Map,i=new Map;for(let r of t){let{authoredCompositionId:o,runtimeCompositionId:s}=Fn(r),c=sc(r);if(!o){i.set(r,{authoredCompositionId:null,runtimeCompositionId:s});continue}let a=(e.get(o)||0)>1,l=s||o;if(c){let u=a?(n.get(o)||0)+1:0;a&&n.set(o,u),l=a?Zu(o,u):o,a?r.setAttribute("data-hf-original-composition-id",o):r.removeAttribute("data-hf-original-composition-id"),r.setAttribute("data-composition-id",l),s&&s!==l&&window.__hfVariablesByComp&&delete window.__hfVariablesByComp[s]}i.set(r,{authoredCompositionId:o,runtimeCompositionId:l})}return i}async function Di(t){let e=null;t.authoredCompositionId&&(e=Array.from(t.sourceNode.querySelectorAll("[data-composition-id]")).find(g=>g.getAttribute("data-composition-id")===t.authoredCompositionId)??null);let n=e??t.sourceNode,i=e?.getAttribute("data-composition-id")?.trim()||t.authoredCompositionId||null,r=t.runtimeCompositionId||i||null,o=e?.getAttribute("id")?.trim()||null,s=r?`[data-composition-id="${CSS.escape(r)}"]`:void 0;if(t.headLinks)for(let f of t.headLinks){let g=f.getAttribute("href")||"";g&&(document.head.querySelector(`link[href="${CSS.escape(g)}"]`)||document.head.appendChild(f.cloneNode(!0)))}if(t.headStyles)for(let f of t.headStyles){let g=f.cloneNode(!0);g instanceof HTMLStyleElement&&(i&&(g.textContent=vi(g.textContent||"",i,s,o)),document.head.appendChild(g),t.injectedStyles.push(g))}let c=Array.from(n.querySelectorAll("style"));for(let f of c){let g=f.cloneNode(!0);g instanceof HTMLStyleElement&&(i&&(g.textContent=vi(g.textContent||"",i,s,o)),document.head.appendChild(g),t.injectedStyles.push(g))}let a=[];if(t.headScripts)for(let f of t.headScripts){let g=f.getAttribute("type")?.trim()??"",A=f.getAttribute("src")?.trim()??"";if(A){let y=xs(A,t.compositionUrl);a.push({kind:"external",src:y,type:g})}else{let y=f.textContent?.trim()??"";y&&a.push({kind:"inline",content:y,type:g,scopeCompositionId:i})}}let l=Array.from(n.querySelectorAll("script")),u=[...a];for(let f of l){let g=f.getAttribute("type")?.trim()??"",A=f.getAttribute("src")?.trim()??"";if(A){let y=xs(A,t.compositionUrl);u.push({kind:"external",src:y,type:g})}else{let y=f.textContent?.trim()??"";y&&u.push({kind:"inline",content:y,type:g,scopeCompositionId:i})}f.parentNode?.removeChild(f)}let m=Array.from(n.querySelectorAll("style"));for(let f of m)f.parentNode?.removeChild(f);if(e){let f=e.getAttribute("data-width"),g=e.getAttribute("data-height"),A=t.parseDimensionPx(f),y=t.parseDimensionPx(g);f&&t.host.setAttribute("data-width",f),g&&t.host.setAttribute("data-height",g),A&&t.host instanceof HTMLElement&&(t.host.style.width=A),y&&t.host instanceof HTMLElement&&(t.host.style.height=y),e.hasAttribute("data-timeline-locked")&&t.host.setAttribute("data-timeline-locked",""),t.host.appendChild(nc(e))}else t.hasTemplate?t.host.appendChild(document.importNode(n,!0)):t.host.innerHTML=t.fallbackBodyInnerHtml;if(r){let f={...t.declaredVariableDefaults??{},...ic(t.host)};Object.keys(f).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[r]=f):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[r]}for(let f of u){let g=document.createElement("script");if(f.type&&(g.type=f.type),g.async=!1,f.kind==="external"?g.src=f.src:f.type.toLowerCase()==="module"?g.textContent=f.content:f.scopeCompositionId?g.textContent=ps(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,r||f.scopeCompositionId,o):g.textContent=`(function(){${f.content}})();`,document.body.appendChild(g),t.injectedScripts.push(g),f.kind==="external"){let A=await ec(g);A.status!=="load"&&t.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:t.authoredCompositionId,runtimeCompositionId:t.runtimeCompositionId,hostCompositionSrc:t.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:A.status,elapsedMs:A.elapsedMs}})}}}async function ws(t){let e=Ii();if(As(),e.length===0)return;let n=Es(e),i=e.filter(r=>{if(r.hasAttribute("data-composition-src")||r.children.length>0)return!1;let o=n.get(r)?.authoredCompositionId;return o?!!document.querySelector(`template#${CSS.escape(o)}-template`):!1});if(i.length!==0)for(let r of i){let o=n.get(r),s=o?.authoredCompositionId;if(!s)continue;let c=document.querySelector(`template#${CSS.escape(s)}-template`);Ri(r),await Di({host:r,authoredCompositionId:s,runtimeCompositionId:o?.runtimeCompositionId||s,hostCompositionSrc:`template#${s}-template`,sourceNode:c.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic})}}async function Cs(t){let e=Ii();if(As(),e.length===0)return;let n=Es(e),i=e.filter(r=>r.hasAttribute("data-composition-src"));i.length!==0&&await Promise.all(i.map(async r=>{let o=r.getAttribute("data-composition-src");if(!o)return;let s=n.get(r),c=s?.authoredCompositionId||null,a=s?.runtimeCompositionId||c||null,l=null;try{l=new URL(o,document.baseURI)}catch{l=null}Ri(r);try{let u=c!=null?document.querySelector(`template#${CSS.escape(c)}-template`):null;if(u){await Di({host:r,authoredCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:u.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:l,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic});return}let m=await fetch(o);if(!m.ok)throw new Error(`HTTP ${m.status}`);let f=await m.text(),A=new DOMParser().parseFromString(f,"text/html");bs(A,l);let y=(c?A.querySelector(`template#${CSS.escape(c)}-template`):null)??A.querySelector("template"),x=y?y.content:A.body,w=y?void 0:Array.from(A.head.querySelectorAll("style")),N=y?void 0:Array.from(A.head.querySelectorAll("script")),L=y?void 0:Array.from(A.head.querySelectorAll(\'link[rel="stylesheet"], link[rel="preconnect"]\'));await Di({host:r,authoredCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:x,hasTemplate:!!y,fallbackBodyInnerHtml:A.body.innerHTML,compositionUrl:l,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,headStyles:w,headScripts:N,headLinks:L,declaredVariableDefaults:ki(A.documentElement),onDiagnostic:t.onDiagnostic})}catch(u){t.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,errorMessage:u instanceof Error?u.message:"unknown_error"}}),Ri(r)}}))}function ac(t){return t instanceof HTMLElement?t.dataset.captionWrapper!=="true"?t:t.querySelector(":scope > span")??null:null}function lc(){let t=[],e=document.querySelectorAll(".caption-group");for(let n of e)for(let i of n.children){if(!(i instanceof HTMLElement))continue;let r=i.dataset.captionWrapper==="true"?i.querySelector(":scope > span"):i.tagName==="SPAN"?i:null;r&&t.push(r)}return t}function uc(t){let e=t.parentElement;if(e?.dataset.captionWrapper==="true")return e;let n=document.createElement("span");return n.style.display="inline-block",n.dataset.captionWrapper="true",t.parentNode?.insertBefore(n,t),n.appendChild(t),n}function Pi(){let t=window.gsap;t&&document.querySelectorAll(".caption-group").length!==0&&fetch("caption-overrides.json").then(e=>e.ok?e.json():null).then(e=>{if(!e||!Array.isArray(e)||e.length===0)return;let n=lc();for(let i of e){let r=null;if(i.wordId&&(r=ac(document.getElementById(i.wordId))),!r&&i.wordIndex!==void 0&&(r=n[i.wordIndex]??null),!r)continue;let o={},s={};if(i.x!==void 0&&(o.x=i.x),i.y!==void 0&&(o.y=i.y),i.scale!==void 0&&(o.scale=i.scale),i.rotation!==void 0&&(o.rotation=i.rotation),i.opacity!==void 0&&(s.opacity=i.opacity),i.fontSize!==void 0&&(s.fontSize=`${i.fontSize}px`),i.fontWeight!==void 0&&(s.fontWeight=i.fontWeight),i.fontFamily!==void 0&&(s.fontFamily=i.fontFamily),i.activeColor||i.dimColor){let a=t.getTweensOf(r).filter(u=>u.vars.color!==void 0).sort((u,m)=>u.startTime()-m.startTime()),l=a.length>0?String(a[0].vars.color):"";for(let u of a)String(u.vars.color)===l?i.dimColor&&(u.vars.color=i.dimColor):i.activeColor&&(u.vars.color=i.activeColor);i.dimColor&&t.set(r,{color:i.dimColor})}if(Object.keys(s).length>0&&t.set(r,s),Object.keys(o).length>0){let c=uc(r);t.set(c,o)}}}).catch(()=>{})}var Xt="data-color-grading",cc="rec709",Je={exposure:0,contrast:0,highlights:0,shadows:0,whites:0,blacks:0,temperature:0,tint:0,saturation:0},Fs=["exposure","contrast","highlights","shadows","whites","blacks","temperature","tint","saturation"],dc=[{id:"neutral",label:"Neutral",adjust:{...Je}},{id:"warm-clean",label:"Warm Clean",adjust:{...Je,exposure:.05,contrast:.08,highlights:-.08,shadows:.08,temperature:.16,saturation:.06}},{id:"cool-clean",label:"Cool Clean",adjust:{...Je,contrast:.06,highlights:-.06,shadows:.06,temperature:-.12,tint:.04,saturation:.04}},{id:"soft-boost",label:"Soft Boost",adjust:{...Je,exposure:.06,contrast:-.04,highlights:-.14,shadows:.16,saturation:.1}},{id:"bright-pop",label:"Bright Pop",adjust:{...Je,exposure:.12,contrast:.12,whites:.08,blacks:-.04,saturation:.14}},{id:"deep-contrast",label:"Deep Contrast",adjust:{...Je,exposure:-.03,contrast:.2,highlights:-.08,shadows:-.08,blacks:-.12,saturation:.06}}],fc=new Map(dc.map(t=>[t.id,t])),mc=/^\\$(?:\\{([A-Za-z0-9_.:-]+)\\}|([A-Za-z0-9_.:-]+))$/,pc={exposure:{min:-2,max:2},contrast:{min:-1,max:1},highlights:{min:-1,max:1},shadows:{min:-1,max:1},whites:{min:-1,max:1},blacks:{min:-1,max:1},temperature:{min:-1,max:1},tint:{min:-1,max:1},saturation:{min:-1,max:1}};function Yt(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function hc(t,e,n){return Number.isFinite(t)?Math.min(n,Math.max(e,t)):0}function Ms(t,e){let n=typeof t=="number"?t:Number(t);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):e}function xc(t,e){let n=typeof t=="number"?t:Number(t);if(!Number.isFinite(n))return 0;let i=pc[e];return hc(n,i.min,i.max)}function gc(t){if(t==null)return null;let e=String(t).trim();return e||null}function yc(t){if(t==null)return null;if(typeof t=="string"){let n=t.trim();return n?{src:n,intensity:1}:null}if(!Yt(t))return null;let e=t.src;return typeof e!="string"||e.trim()===""?null:{src:e.trim(),intensity:Ms(t.intensity,1)}}function bc(t){if(typeof t=="string"){let e=t.trim();if(!e)return null;if(e.startsWith("{"))try{let n=JSON.parse(e);return Yt(n)?n:null}catch{return null}return{preset:e,intensity:1}}return Yt(t)?t:null}function Sc(t,e){let n=t.trim().match(mc);if(!n)return t;let i=n[1]??n[2]??"";return i&&Object.hasOwn(e,i)?e[i]:t}function Oi(t,e){if(typeof t=="string"){let i=Sc(t,e);if(i!==t)return i;let r=t.trim();if(!r.startsWith("{"))return t;try{return Oi(JSON.parse(r),e)}catch{return t}}if(!Yt(t))return t;let n={};for(let[i,r]of Object.entries(t))n[i]=Oi(r,e);return n}function Ac(t){return t?fc.get(t)??null:null}function Bi(t){let e=bc(t);if(!e||e.enabled===!1)return null;let n=gc(e.preset),r=Ac(n)?.adjust??Je,o=Yt(e.adjust)?e.adjust:{},s=Fs.reduce((c,a)=>(c[a]=xc(o[a]??r[a],a),c),{...Je});return{enabled:!0,preset:n,intensity:Ms(e.intensity,1),adjust:s,lut:yc(e.lut),colorSpace:typeof e.colorSpace=="string"&&e.colorSpace.trim()?e.colorSpace.trim():cc}}function Ns(t,e){return Bi(Oi(t,e))}function Qt(t){return!t?.enabled||t.intensity===0?!1:t.lut&&t.lut.intensity!==0?!0:Fs.some(e=>Math.abs(t.adjust[e])>1e-4)}var we=class extends Error{constructor(n,i=null){super(i==null?n:`${n} at line ${i}`);ge(this,"lineNumber");this.name="CubeLutParseError",this.lineNumber=i}},Ec=[0,0,0],wc=[1,1,1],Cc=64;function Fc(t){let e=!1;for(let n=0;n<t.length;n++){let i=t[n];if(i===\'"\'&&(e=!e),i==="#"&&!e)return t.slice(0,n)}return t}function ht(t,e){let n=Number(t);if(!Number.isFinite(n))throw new we(`Invalid number "${t}"`,e);return n}function _s(t,e,n){if(t.length!==3)throw new we(`${e} expects three numbers`,n);return[ht(t[0],n),ht(t[1],n),ht(t[2],n)]}function Ts(t,e,n){if(!t)throw new we(`${e} expects a size`,n);let i=Number(t);if(!Number.isInteger(i)||i<2)throw new we(`${e} must be an integer greater than 1`,n);return i}function Mc(t,e){if(e[0]<=t[0]||e[1]<=t[1]||e[2]<=t[2])throw new we("DOMAIN_MAX values must be greater than DOMAIN_MIN values")}function Nc(t){let e=/^TITLE\\s+"([^"]*)"\\s*$/i.exec(t);if(e)return e[1]??null;let n=/^TITLE\\s+(.+)\\s*$/i.exec(t);return n&&(n[1]??"").trim()||null}function _c(t){return/^[+-]?(?:\\d|\\.\\d)/.test(t)}function Ls(t,e={}){let n=e.maxSize??Cc,i=null,r=Ec,o=wc,s=null,c=null,a=[],l=t.replace(/^\\uFEFF/,"").split(/\\r?\\n/);for(let m=0;m<l.length;m++){let f=m+1,g=Fc(l[m]??"").trim();if(!g)continue;let A=g.split(/\\s+/),y=(A[0]??"").toUpperCase(),x=A.slice(1);if(y==="TITLE"){i=Nc(g);continue}if(y==="DOMAIN_MIN"){r=_s(x,y,f);continue}if(y==="DOMAIN_MAX"){o=_s(x,y,f);continue}if(y==="LUT_1D_SIZE"){s=Ts(x[0],y,f);continue}if(y==="LUT_3D_SIZE"){if(c=Ts(x[0],y,f),c>n)throw new we(`LUT_3D_SIZE ${c} exceeds max ${n}`,f);continue}if(!_c(y)){if(y.startsWith("LUT_"))throw new we(`Unsupported cube keyword ${y}`,f);continue}if(!c)throw s?new we("1D cube LUTs are not supported yet",f):new we("LUT data appears before LUT_3D_SIZE",f);if(A.length!==3)throw new we("LUT data rows must contain three numbers",f);a.push(ht(A[0],f),ht(A[1],f),ht(A[2],f))}if(s&&c)throw new we("Mixed 1D and 3D cube LUTs are not supported yet");if(!c)throw s?new we("1D cube LUTs are not supported yet"):new we("Missing LUT_3D_SIZE");Mc(r,o);let u=c*c*c;if(a.length!==u*3)throw new we(`Expected ${u} LUT rows for size ${c}, found ${a.length/3}`);return{title:i,size:c,domainMin:r,domainMax:o,data:new Float32Array(a)}}function Tc(t){return Number.isFinite(t)?Math.min(1,Math.max(0,t)):0}function Hi(t){return Math.round(Tc(t)*255)}function vs(t){let e=t.size,n=e*e,i=e,r=new Uint8Array(n*i*4);for(let o=0;o<e;o++)for(let s=0;s<e;s++)for(let c=0;c<e;c++){let a=((o*e+s)*e+c)*3,l=(s*n+o*e+c)*4;r[l]=Hi(t.data[a]??0),r[l+1]=Hi(t.data[a+1]??0),r[l+2]=Hi(t.data[a+2]??0),r[l+3]=255}return{width:n,height:i,data:r}}var Mn=new Map,Lc="data-hf-color-grading-canvas",Ps="data-hf-color-grading-source-hidden",vc="__hf_color_grading_canvas__",kc=64,Zt={enabled:!1,position:.5,softness:0,lineWidth:2};function Rc(t){let e=window,i=t.closest("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()??"",r=i?e.__hfVariablesByComp?.[i]:void 0;if(r)return r;let o=e.__hyperframes?.getVariables?.();return o&&typeof o=="object"?o:e.__hfVariables??{}}function Wi(t){let e=t.getAttribute(Xt);return e==null?null:Ns(e,Rc(t))}var Dc=["attribute vec2 a_pos;","varying vec2 v_uv;","void main(){"," v_uv = a_pos * 0.5 + 0.5;"," gl_Position = vec4(a_pos, 0.0, 1.0);","}"].join(`\n`),Ic=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform sampler2D u_lut;","uniform vec2 u_resolution;","uniform vec2 u_uvScale;","uniform vec2 u_uvOffset;","uniform float u_lutEnabled;","uniform float u_lutSize;","uniform vec2 u_lutTextureSize;","uniform vec3 u_lutDomainMin;","uniform vec3 u_lutDomainMax;","uniform float u_lutIntensity;","uniform float u_exposure;","uniform float u_contrast;","uniform float u_highlights;","uniform float u_shadows;","uniform float u_whites;","uniform float u_blacks;","uniform float u_temperature;","uniform float u_tint;","uniform float u_saturation;","uniform float u_intensity;","uniform float u_compareEnabled;","uniform float u_comparePosition;","uniform float u_compareSoftness;","uniform float u_compareLineWidth;","float lumaOf(vec3 c){ return dot(c, vec3(0.2126, 0.7152, 0.0722)); }","vec3 sampleLut(float r, float g, float b){"," float size = max(u_lutSize, 2.0);"," float x = (r + b * size + 0.5) / max(u_lutTextureSize.x, 1.0);"," float y = (g + 0.5) / max(u_lutTextureSize.y, 1.0);"," return texture2D(u_lut, vec2(x, y)).rgb;","}","vec3 applyLut(vec3 color){"," if (u_lutEnabled < 0.5) return color;"," float size = max(u_lutSize, 2.0);"," vec3 span = max(u_lutDomainMax - u_lutDomainMin, vec3(0.00001));"," vec3 scaled = clamp((color - u_lutDomainMin) / span, 0.0, 1.0) * (size - 1.0);"," vec3 lo = floor(scaled);"," vec3 hi = min(lo + 1.0, vec3(size - 1.0));"," vec3 f = scaled - lo;"," vec3 c000 = sampleLut(lo.r, lo.g, lo.b);"," vec3 c100 = sampleLut(hi.r, lo.g, lo.b);"," vec3 c010 = sampleLut(lo.r, hi.g, lo.b);"," vec3 c110 = sampleLut(hi.r, hi.g, lo.b);"," vec3 c001 = sampleLut(lo.r, lo.g, hi.b);"," vec3 c101 = sampleLut(hi.r, lo.g, hi.b);"," vec3 c011 = sampleLut(lo.r, hi.g, hi.b);"," vec3 c111 = sampleLut(hi.r, hi.g, hi.b);"," vec3 c00 = mix(c000, c100, f.r);"," vec3 c10 = mix(c010, c110, f.r);"," vec3 c01 = mix(c001, c101, f.r);"," vec3 c11 = mix(c011, c111, f.r);"," vec3 c0 = mix(c00, c10, f.g);"," vec3 c1 = mix(c01, c11, f.g);"," vec3 lutColor = mix(c0, c1, f.b);"," return mix(color, lutColor, clamp(u_lutIntensity, 0.0, 1.0));","}","void main(){"," vec2 uv = (v_uv - u_uvOffset) / u_uvScale;"," if (uv.x < 0.0 || uv.y < 0.0 || uv.x > 1.0 || uv.y > 1.0) {"," gl_FragColor = vec4(0.0);"," return;"," }"," vec4 sampleColor = texture2D(u_source, uv);"," vec3 original = sampleColor.rgb;"," vec3 color = original * pow(2.0, u_exposure);"," float y = lumaOf(color);"," float shadowMask = 1.0 - smoothstep(0.0, 0.65, y);"," float highlightMask = smoothstep(0.35, 1.0, y);"," color += u_shadows * 0.35 * shadowMask;"," color += u_highlights * 0.35 * highlightMask;"," color += u_blacks * 0.25 * (1.0 - smoothstep(0.0, 0.35, y));"," color += u_whites * 0.25 * smoothstep(0.65, 1.0, y);"," color.r += u_temperature * 0.08 + u_tint * 0.04;"," color.b -= u_temperature * 0.08 - u_tint * 0.04;"," color.g -= u_tint * 0.08;"," color = (color - 0.5) * max(0.0, 1.0 + u_contrast) + 0.5;"," float satLuma = lumaOf(color);"," color = mix(vec3(satLuma), color, max(0.0, 1.0 + u_saturation));"," color = clamp(color, 0.0, 1.0);"," color = clamp(applyLut(color), 0.0, 1.0);"," vec3 graded = mix(original, color, u_intensity);"," if (u_compareEnabled > 0.5) {"," float pos = clamp(u_comparePosition, 0.0, 1.0);"," float softness = max(u_compareSoftness, 0.00001);"," float afterMask = smoothstep(pos - softness, pos + softness, v_uv.x);"," vec3 splitColor = mix(original, graded, afterMask);"," float lineMask = 0.0;"," if (u_compareLineWidth > 0.0) {"," float lineWidth = max(u_compareLineWidth / max(u_resolution.x, 1.0), 0.00001);"," lineMask = 1.0 - smoothstep(lineWidth, lineWidth * 1.8, abs(v_uv.x - pos));"," }"," gl_FragColor = vec4(mix(splitColor, vec3(1.0), lineMask * 0.82), sampleColor.a);"," return;"," }"," gl_FragColor = vec4(graded, sampleColor.a);","}"].join(`\n`);function st(t){return t instanceof HTMLVideoElement||t instanceof HTMLImageElement}function ks(t,e,n){let i=t.createShader(n);return i?(t.shaderSource(i,e),t.compileShader(i),t.getShaderParameter(i,t.COMPILE_STATUS)?i:(v("runtime.colorGrading.compileShader",t.getShaderInfoLog(i)),t.deleteShader(i),null)):null}function Pc(t){let e=ks(t,Dc,t.VERTEX_SHADER),n=ks(t,Ic,t.FRAGMENT_SHADER);if(!e||!n)return e&&t.deleteShader(e),n&&t.deleteShader(n),null;let i=t.createProgram();return i?(t.attachShader(i,e),t.attachShader(i,n),t.linkProgram(i),t.deleteShader(e),t.deleteShader(n),t.getProgramParameter(i,t.LINK_STATUS)?i:(v("runtime.colorGrading.linkProgram",t.getProgramInfoLog(i)),t.deleteProgram(i),null)):null}function Rs(t,e=t.LINEAR){let n=t.createTexture();return n?(t.bindTexture(t.TEXTURE_2D,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,e),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,null),n):null}function Oc(t){let e=t.getContext("webgl",{alpha:!0,premultipliedAlpha:!1,preserveDrawingBuffer:!0});if(!e)return null;let n=Pc(e),i=Rs(e),r=Rs(e,e.NEAREST);if(!n||!i||!r)return n&&e.deleteProgram(n),i&&e.deleteTexture(i),r&&e.deleteTexture(r),null;let o=e.createBuffer();return o?(e.bindBuffer(e.ARRAY_BUFFER,o),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),e.STATIC_DRAW),{gl:e,program:{program:n,texture:i,lutTexture:r,position:e.getAttribLocation(n,"a_pos"),source:e.getUniformLocation(n,"u_source"),lut:e.getUniformLocation(n,"u_lut"),resolution:e.getUniformLocation(n,"u_resolution"),uvScale:e.getUniformLocation(n,"u_uvScale"),uvOffset:e.getUniformLocation(n,"u_uvOffset"),lutEnabled:e.getUniformLocation(n,"u_lutEnabled"),lutSize:e.getUniformLocation(n,"u_lutSize"),lutTextureSize:e.getUniformLocation(n,"u_lutTextureSize"),lutDomainMin:e.getUniformLocation(n,"u_lutDomainMin"),lutDomainMax:e.getUniformLocation(n,"u_lutDomainMax"),lutIntensity:e.getUniformLocation(n,"u_lutIntensity"),exposure:e.getUniformLocation(n,"u_exposure"),contrast:e.getUniformLocation(n,"u_contrast"),highlights:e.getUniformLocation(n,"u_highlights"),shadows:e.getUniformLocation(n,"u_shadows"),whites:e.getUniformLocation(n,"u_whites"),blacks:e.getUniformLocation(n,"u_blacks"),temperature:e.getUniformLocation(n,"u_temperature"),tint:e.getUniformLocation(n,"u_tint"),saturation:e.getUniformLocation(n,"u_saturation"),intensity:e.getUniformLocation(n,"u_intensity"),compareEnabled:e.getUniformLocation(n,"u_compareEnabled"),comparePosition:e.getUniformLocation(n,"u_comparePosition"),compareSoftness:e.getUniformLocation(n,"u_compareSoftness"),compareLineWidth:e.getUniformLocation(n,"u_compareLineWidth")}}):(e.deleteProgram(n),e.deleteTexture(i),e.deleteTexture(r),null)}function Bc(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Hc(t){if(!Bc(t))return{...Zt};let e=(n,i,r,o)=>{let s=typeof n=="number"?n:Number(n);return Math.min(o,Math.max(r,Number.isFinite(s)?s:i))};return{enabled:t.enabled===!0,position:e(t.position,Zt.position,0,1),softness:e(t.softness,Zt.softness,0,.25),lineWidth:e(t.lineWidth,Zt.lineWidth,0,12)}}function Os(t){try{let e=new URL(t,document.baseURI);return e.protocol==="data:"?{href:e.href}:e.protocol!=="http:"&&e.protocol!=="https:"?{error:"LUT must be project-local or a data URL"}:e.origin!==window.location.origin?{error:"Remote LUT URLs are not supported"}:{href:e.href}}catch{return{error:"Invalid LUT URL"}}}function Ui(t){return t instanceof Error?t.message:"LUT failed to load"}function Wc(t){let e=Os(t);if("error"in e)return{state:"error",message:e.error};let n=Mn.get(e.href);if(n)return n;let i=fetch(e.href,{credentials:"same-origin"}).then(o=>{if(!o.ok)throw new Error(`Failed to load LUT (${o.status})`);return o.text()}).then(o=>Ls(o,{maxSize:kc})),r={state:"pending",promise:i};return Mn.set(e.href,r),i.then(o=>Mn.set(e.href,{state:"ready",lut:o}),o=>Mn.set(e.href,{state:"error",message:Ui(o)})),r}function Ds(t,e,n){if(t.lut?.src===e)return t.lut;let i=vs(n),{gl:r,program:o}=t;try{return r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,o.lutTexture),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,i.width,i.height,0,r.RGBA,r.UNSIGNED_BYTE,i.data),t.lut={src:e,title:n.title,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:i.width,textureHeight:i.height},t.lutError=null,t.lutLoadingSrc=null,t.lut}catch(s){return t.lut=null,t.lutError=Ui(s),t.lutLoadingSrc=null,v("runtime.colorGrading.uploadLut",s),null}}function Gc(t){let e=t.grading.lut?.src.trim()??"",n=t.grading.lut?.intensity??1;if(!e||n<=0)return t.lut=null,t.lutLoadingSrc=null,t.lutError=null,null;let i=Os(e);if("error"in i)return t.lut=null,t.lutLoadingSrc=null,t.lutError=i.error,null;if(t.lut?.src===i.href)return t.lut;t.lut=null;let r=Wc(e);return r.state==="ready"?Ds(t,i.href,r.lut):r.state==="error"?(t.lutError=r.message,t.lutLoadingSrc=null,null):(t.lutLoadingSrc!==i.href&&(t.lutLoadingSrc=i.href,t.lutError=null,r.promise.then(o=>{t.destroyed||t.grading.lut?.src.trim()!==e||(Ds(t,i.href,o),Ue(t))},o=>{t.destroyed||t.grading.lut?.src.trim()!==e||(t.lut=null,t.lutError=Ui(o),t.lutLoadingSrc=null,Ue(t))})),null)}function Gi(t){if(!t)return null;if(typeof t=="string"){let e=t.trim();if(!e)return null;let n=document.getElementById(e.replace(/^#/,""));if(n&&st(n))return n;try{let i=document.querySelector(e);return i&&st(i)?i:null}catch{return null}}if(t.hfId){let e=document.querySelector(`[data-hf-id="${CSS.escape(t.hfId)}"]`);if(e&&st(e))return e}if(t.id){let e=document.getElementById(t.id);if(e&&st(e))return e}if(!t.selector)return null;try{let e=Array.from(document.querySelectorAll(t.selector)),n=Math.max(0,Math.floor(Number(t.selectorIndex??0)||0)),i=e[n]??null;return i&&st(i)?i:null}catch{return null}}function Uc(t){return t instanceof HTMLVideoElement?t.videoWidth>0&&t.videoHeight>0?{width:t.videoWidth,height:t.videoHeight}:null:t instanceof HTMLImageElement&&t.naturalWidth>0&&t.naturalHeight>0?{width:t.naturalWidth,height:t.naturalHeight}:null}function Bs(t){return t instanceof HTMLVideoElement?t.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&t.videoWidth>0&&t.videoHeight>0:t instanceof HTMLImageElement?t.complete&&t.naturalWidth>0&&t.naturalHeight>0:!1}function Vc(t){if(!t.id)return null;let e=document.getElementById(`__render_frame_${t.id}__`);return e instanceof HTMLImageElement&&Bs(e)?e:null}function zc(t){if(t instanceof HTMLVideoElement){let e=Vc(t);if(e)return e}return Bs(t)?t:null}function Is(t,e){let n=t.toLowerCase();if(n==="center")return .5;if(e==="x"){if(n==="left")return 0;if(n==="right")return 1}else{if(n==="top")return 0;if(n==="bottom")return 1}if(n.endsWith("%")){let i=Number.parseFloat(n);return Number.isFinite(i)?i/100:null}return null}function jc(t){let e=t.trim().split(/\\s+/).filter(Boolean),n=.5,i=.5;for(let r=0;r<e.length;r++){let o=e[r]??"",s=Is(o,"x"),c=Is(o,"y");if(s!==null&&(o==="left"||o==="right"||o.endsWith("%")&&r===0)){n=s;continue}if(c!==null&&(o==="top"||o==="bottom"||o.endsWith("%")&&r>0)){i=c;continue}}return{x:n,y:i}}function qc(t,e,n,i,r,o){if(t<=0||e<=0||n<=0||i<=0)return{scaleX:1,scaleY:1,offsetX:0,offsetY:0};let s=r||"fill",c=t,a=e;if(s==="contain"||s==="cover"||s==="scale-down"){let f=s==="cover"?Math.max(t/n,e/i):Math.min(t/n,e/i);c=n*f,a=i*f,s==="scale-down"&&c>n&&a>i&&(c=n,a=i)}else s==="none"&&(c=n,a=i);let l=jc(o||"center"),u=(t-c)*l.x/t,m=(e-a)*l.y/e;return{scaleX:c/t,scaleY:a/e,offsetX:u,offsetY:m}}function $c(t,e){window.getComputedStyle(e).position==="static"&&(t.touchedParent||(t.touchedParent=e,t.parentInlinePosition=e.style.position||null),e.style.position="relative")}function Kc(t,e){let{element:n,canvas:i}=t,r=n.parentElement;r&&$c(t,r);let o=window.getComputedStyle(e);vr(i.style,o),i.style.pointerEvents="none",i.style.position="absolute",i.style.inset="auto",i.style.left=`${n.offsetLeft}px`,i.style.top=`${n.offsetTop}px`,i.style.right="auto",i.style.bottom="auto",i.style.width=`${n.offsetWidth}px`,i.style.height=`${n.offsetHeight}px`,i.style.display="block",i.style.opacity=t.sourceOpacityForCanvas,i.style.visibility=t.sourceVisibleForCanvas?"visible":"hidden";let s=n.getBoundingClientRect(),c=Math.max(0,Math.round(n.offsetWidth||s.width)),a=Math.max(0,Math.round(n.offsetHeight||s.height));return c<=0||a<=0?(i.style.display="none",null):(i.width!==c&&(i.width=c),i.height!==a&&(i.height=a),{width:c,height:a})}function Jc(t,e,n,i,r,o,s){t.uniform1i(e.source,0),t.uniform1i(e.lut,1),t.uniform2f(e.resolution,o.width,o.height),t.uniform2f(e.uvScale,s.scaleX,s.scaleY),t.uniform2f(e.uvOffset,s.offsetX,s.offsetY),t.uniform1f(e.lutEnabled,i?1:0),t.uniform1f(e.lutSize,i?.size??2),t.uniform2f(e.lutTextureSize,i?.textureWidth??1,i?.textureHeight??1),t.uniform3f(e.lutDomainMin,i?.domainMin[0]??0,i?.domainMin[1]??0,i?.domainMin[2]??0),t.uniform3f(e.lutDomainMax,i?.domainMax[0]??1,i?.domainMax[1]??1,i?.domainMax[2]??1),t.uniform1f(e.lutIntensity,n.lut?.intensity??0),t.uniform1f(e.exposure,n.adjust.exposure),t.uniform1f(e.contrast,n.adjust.contrast),t.uniform1f(e.highlights,n.adjust.highlights),t.uniform1f(e.shadows,n.adjust.shadows),t.uniform1f(e.whites,n.adjust.whites),t.uniform1f(e.blacks,n.adjust.blacks),t.uniform1f(e.temperature,n.adjust.temperature),t.uniform1f(e.tint,n.adjust.tint),t.uniform1f(e.saturation,n.adjust.saturation),t.uniform1f(e.intensity,n.intensity),t.uniform1f(e.compareEnabled,r.enabled?1:0),t.uniform1f(e.comparePosition,r.position),t.uniform1f(e.compareSoftness,r.softness),t.uniform1f(e.compareLineWidth,r.lineWidth)}function Yc(t){t.sourceHidden||(t.sourceInlineOpacity=t.element.style.getPropertyValue("opacity")||null,t.sourceInlineOpacityPriority=t.element.style.getPropertyPriority("opacity")),t.element.setAttribute(Ps,"true"),t.element.style.setProperty("opacity","0","important"),t.sourceHidden=!0}function Ue(t){if(t.destroyed)return!1;let e=zc(t.element);if(!e)return t.hasDrawn||(t.canvas.style.display="none"),!1;let n=Uc(e);if(!n)return!1;let i=e instanceof HTMLElement?e:t.element,r=t.element.style.getPropertyValue("opacity"),o=t.element.style.getPropertyPriority("opacity"),s=t.sourceHidden&&r==="0"&&o==="important",c=t.element.style.getPropertyValue("visibility");if(!s){let g=window.getComputedStyle(t.element);t.sourceOpacityForCanvas=g.opacity||"1",t.sourceVisibleForCanvas=c!=="hidden"&&g.visibility!=="hidden"}let a=Kc(t,i);if(!a)return!1;let l=window.getComputedStyle(i),u=qc(a.width,a.height,n.width,n.height,l.objectFit,l.objectPosition),{gl:m,program:f}=t;try{let g=Gc(t);return m.viewport(0,0,a.width,a.height),m.useProgram(f.program),m.activeTexture(m.TEXTURE0),m.bindTexture(m.TEXTURE_2D,f.texture),m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL,!0),m.texImage2D(m.TEXTURE_2D,0,m.RGBA,m.RGBA,m.UNSIGNED_BYTE,e),m.activeTexture(m.TEXTURE1),m.bindTexture(m.TEXTURE_2D,f.lutTexture),Jc(m,f,t.grading,g,t.compare,a,u),m.enableVertexAttribArray(f.position),m.vertexAttribPointer(f.position,2,m.FLOAT,!1,0,0),m.drawArrays(m.TRIANGLE_STRIP,0,4),Yc(t),t.hasDrawn=!0,!0}catch(g){return v("runtime.colorGrading.drawEntry",g),!1}}function Ye(t,e,n,i){e.addEventListener(n,i),t.cleanup.push(()=>e.removeEventListener(n,i))}function Xc(t){t.animationFrame!==null&&(window.cancelAnimationFrame(t.animationFrame),t.animationFrame=null),t.videoFrameHandle!==null&&t.element instanceof HTMLVideoElement&&(t.element.cancelVideoFrameCallback?.(t.videoFrameHandle),t.videoFrameHandle=null)}function en(t){if(t.destroyed||!(t.element instanceof HTMLVideoElement)||t.videoFrameHandle!==null||t.animationFrame!==null)return;let e=t.element,n=e;if(typeof n.requestVideoFrameCallback=="function"){t.videoFrameHandle=n.requestVideoFrameCallback(()=>{t.videoFrameHandle=null,Ue(t),!t.destroyed&&!e.paused&&!e.ended&&en(t)});return}t.animationFrame=window.requestAnimationFrame(()=>{t.animationFrame=null,Ue(t),!t.destroyed&&!e.paused&&!e.ended&&en(t)})}function Qc(t){let e=()=>{Ue(t)};Ye(t,t.element,"load",e),Ye(t,t.element,"loadedmetadata",e),Ye(t,t.element,"loadeddata",e),Ye(t,t.element,"seeked",e),Ye(t,t.element,"timeupdate",e),Ye(t,window,"resize",e),t.element instanceof HTMLVideoElement&&(Ye(t,t.element,"play",()=>en(t)),Ye(t,t.element,"pause",e)),typeof ResizeObserver<"u"&&(t.resizeObserver=new ResizeObserver(e),t.resizeObserver.observe(t.element))}function Zc(t){if(!t.destroyed){t.destroyed=!0,Xc(t),t.resizeObserver?.disconnect();for(let e of t.cleanup)e();if(t.cleanup.length=0,t.canvas.remove(),t.gl.deleteTexture(t.program.texture),t.gl.deleteTexture(t.program.lutTexture),t.gl.deleteProgram(t.program.program),t.sourceHidden){t.element.removeAttribute(Ps);let e=t.element.style.getPropertyValue("opacity"),n=t.element.style.getPropertyPriority("opacity");e==="0"&&n==="important"&&(t.sourceInlineOpacity===null?t.element.style.removeProperty("opacity"):t.element.style.setProperty("opacity",t.sourceInlineOpacity,t.sourceInlineOpacityPriority))}t.touchedParent&&(t.parentInlinePosition===null?t.touchedParent.style.removeProperty("position"):t.touchedParent.style.position=t.parentInlinePosition)}}function ed(t){let e=document.createElement("canvas");return e.className=vc,e.setAttribute(Lc,"true"),e.setAttribute("data-hyperframes-ignore",""),e.setAttribute("data-hyperframes-picker-ignore",""),e.setAttribute("data-hf-ignore",""),e.setAttribute("aria-hidden","true"),e.style.pointerEvents="none",e.style.display="none",t.parentNode?.insertBefore(e,t.nextSibling),e}function Hs(){let t=new WeakMap,e=new Set,n=null,i=!1,r=(y,x,w)=>{let N=t.get(y);if(N)return N.grading=x,N.source=w,Ue(N),y instanceof HTMLVideoElement&&!y.paused&&en(N),!0;let L=ed(y),$=Oc(L);if(!$)return L.remove(),!1;let B={element:y,canvas:L,gl:$.gl,program:$.program,grading:x,compare:{...Zt},lut:null,lutLoadingSrc:null,lutError:null,source:w,animationFrame:null,videoFrameHandle:null,resizeObserver:null,cleanup:[],touchedParent:null,parentInlinePosition:null,sourceHidden:!1,sourceInlineOpacity:null,sourceInlineOpacityPriority:"",sourceOpacityForCanvas:window.getComputedStyle(y).opacity||"1",sourceVisibleForCanvas:window.getComputedStyle(y).visibility!=="hidden",hasDrawn:!1,destroyed:!1};return t.set(y,B),e.add(y),Qc(B),Ue(B),y instanceof HTMLVideoElement&&!y.paused&&en(B),!0},o=(y,x)=>{if(i)return!1;let w=Gi(y);if(!w)return!1;let N=t.get(w);if(!N){let L=Wi(w);if(!Qt(L)||!r(w,L,"attribute"))return!1;N=t.get(w)}return N?(N.compare=Hc(x),Ue(N),!0):!1},s=y=>{let x=t.get(y);x&&(Zc(x),t.delete(y),e.delete(y))},c=()=>{if(i)return 0;let y=new Set;document.querySelectorAll(`video[${Xt}], img[${Xt}]`).forEach(w=>{if(!st(w))return;y.add(w);let N=Wi(w);Qt(N)?r(w,N,"attribute"):s(w)});for(let w of Array.from(e)){let N=t.get(w);N&&(!w.isConnected||N.source==="attribute"&&!y.has(w))&&s(w)}return e.size},a=()=>{if(i)return 0;let y=0;for(let x of Array.from(e,w=>t.get(w)))x&&Ue(x)&&(y+=1);return y},l=(y,x)=>{if(i)return!1;let w=Gi(y);if(!w)return!1;let N=Bi(x);return Qt(N)?r(w,N,"live"):(s(w),!0)},u=(y,x)=>{if(!st(y))return!1;let w=t.get(y);return w?(w.sourceVisibleForCanvas=x,!0):!1},m=y=>{let x=Gi(y);if(!x)return{state:"missing",message:"Media not found"};let w=t.get(x);if(w)return w.lutError?{state:"unavailable",message:w.lutError}:w.grading.lut&&w.lutLoadingSrc?{state:"pending",message:"Loading LUT"}:w.canvas.style.display==="none"?{state:"pending",message:"Waiting for media frame"}:{state:"active",message:w.lut?"Shader + LUT active":"Shader active"};let N=Wi(x);return Qt(N)?{state:"unavailable",message:"WebGL unavailable"}:{state:"inactive",message:"No grading applied"}},f=()=>{if(!i){i=!0,n?.disconnect(),n=null;for(let y of Array.from(e))s(y)}};document.body&&(n=new MutationObserver(()=>c()),n.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[Xt]}));let g={refresh:c,redraw:a,setGrading:l,setCompare:o,setSourceVisibility:u,getStatus:m,destroy:f},A=window;return A.__hf=A.__hf||{},A.__hf.colorGrading=g,c(),g}var Nn=class{constructor(e){ge(this,"_baseTime",0);ge(this,"_playStartMs",null);ge(this,"_rate",1);ge(this,"_duration",1/0);ge(this,"_nowMs");ge(this,"_audioSource",null);this._baseTime=e?.initialTime??0,this._rate=e?.rate??1,this._duration=e?.duration??1/0,this._nowMs=e?.nowMs??(()=>performance.now())}now(){if(this._playStartMs===null)return this._baseTime;if(this._audioSource){let i=null;if("currentTimeSeconds"in this._audioSource)i=this._audioSource.currentTimeSeconds;else{let{el:r,compositionStart:o,mediaStart:s}=this._audioSource;!r.paused&&Number.isFinite(r.currentTime)&&(i=(r.currentTime-s)/(r.playbackRate>0?r.playbackRate:1)*this._rate+o)}if(i!==null)return Number.isFinite(this._duration)&&i>=this._duration?this._duration:Math.max(0,i)}let e=(this._nowMs()-this._playStartMs)/1e3,n=this._baseTime+e*this._rate;return Number.isFinite(this._duration)&&n>=this._duration?this._duration:Math.max(0,n)}play(){return this._playStartMs!==null||Number.isFinite(this._duration)&&this._baseTime>=this._duration?!1:(this._playStartMs=this._nowMs(),!0)}pause(){return this._playStartMs===null?!1:(this._baseTime=this.now(),this._playStartMs=null,!0)}seek(e){let n=Number.isFinite(this._duration)?Math.max(0,Math.min(e,this._duration)):Math.max(0,e);this._baseTime=n,this._playStartMs!==null&&(this._playStartMs=this._nowMs())}isPlaying(){return this._playStartMs!==null}setRate(e){let n=Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1;this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._rate=n}getRate(){return this._rate}setDuration(e){this._duration=Number.isFinite(e)&&e>0?e:1/0,this._baseTime>this._duration&&(this._baseTime=this._duration)}getDuration(){return this._duration}attachAudioSource(e){this._audioSource=e}detachAudioSource(){this._audioSource&&this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._audioSource=null}hasAudioSource(){return this._audioSource!==null}getSource(){if(this._audioSource&&this._playStartMs!==null){if("currentTimeSeconds"in this._audioSource)return"audio";let{el:e}=this._audioSource;if(!e.paused&&Number.isFinite(e.currentTime))return"audio"}return"monotonic"}snapshot(){return{time:this.now(),playing:this.isPlaying(),rate:this._rate,duration:this._duration,source:this.getSource()}}reachedEnd(){return Number.isFinite(this._duration)&&this.now()>=this._duration}};function Ws(t){return!Number.isFinite(t)||t<=0?1:t}function td(t,e){e||t.paused||!ln().__hfDebug||console.debug("[hyperframes] webAudioTransport claimed fallback-playing element:",t.currentSrc||t.getAttribute("src")||"")}function nd(t,e){let{elapsed:n,mediaStart:i,scheduledAt:r,safeRate:o,clipDuration:s}=e,c=Number.isFinite(s)&&s>0,a=s*o;if(n>=0){let u=a-n;return c&&u<=0?!1:(c?t.start(0,n+i,u):t.start(0,n+i),!0)}let l=-n/o;return c?t.start(r+l,i,a):t.start(r+l,i),!0}var _n=class{constructor(){ge(this,"_ctx",null);ge(this,"_bufferCache",new Map);ge(this,"_failedSrcs",new Set);ge(this,"_activeSources",[]);ge(this,"_masterGain",null);ge(this,"_rateAnchorCtx",0);ge(this,"_rateAnchorComp",0);ge(this,"_rate",1);ge(this,"_paused",!0);ge(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._masterGain.connect(this._ctx.destination),!0}catch{return!1}}get context(){return this._ctx}getTime(){return!this._ctx||this._paused?-1:this._rateAnchorComp+(this._ctx.currentTime-this._rateAnchorCtx)*this._rate}async decodeAudioElement(e){let n=e.currentSrc||e.getAttribute("src");if(!n)return null;if(this._bufferCache.has(n))return this._bufferCache.get(n);if(this._failedSrcs.has(n)||!this._ctx)return null;let i;try{let r=await fetch(n,{cache:"no-store"});if(!r.ok)return v("webAudioTransport.fetch",new Error(`${r.status} ${n}`)),null;i=await r.arrayBuffer()}catch(r){return v("webAudioTransport.fetch",r),null}try{let r=await this._ctx.decodeAudioData(i);return this._bufferCache.set(n,r),r}catch(r){return this._failedSrcs.add(n),v("webAudioTransport.decode",r),null}}startGeneration(){return this._playGeneration+=1,this._playGeneration}currentGeneration(){return this._playGeneration}async schedulePlayback(e,n,i,r,o,s,c,a=1,l=Number.POSITIVE_INFINITY){if(!this._ctx||!this._masterGain||c!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),c!==this._playGeneration)return null;let u=Ws(a),m=this._ctx.createBufferSource();m.buffer=n,m.playbackRate.value=u;let f=this._ctx.createGain();f.gain.value=s,m.connect(f),f.connect(this._masterGain);let g=o-i,A=this._ctx.currentTime;if(this._rate=u,this._rateAnchorCtx=A,this._rateAnchorComp=o,!nd(m,{elapsed:g,mediaStart:r,scheduledAt:A,safeRate:u,clipDuration:l}))return m.disconnect(),f.disconnect(),null;let y=e.muted;e.muted=!0,td(e,y);let x={el:e,sourceNode:m,gainNode:f,compositionStart:i,mediaStart:r,scheduledAt:A,priorMuted:y,bounded:Number.isFinite(l)&&l>0};return this._activeSources.push(x),this._paused=!1,m.addEventListener("ended",()=>{let w=this._activeSources.indexOf(x);w!==-1&&(this._activeSources.splice(w,1),e.muted=y,this._activeSources.length===0&&(this._paused=!0))}),x}catch(u){return v("webAudioTransport.schedule",u),null}}setRate(e){let n=Ws(e);if(n===this._rate)return!1;this._ctx&&!this._paused&&(this._rateAnchorComp=this.getTime(),this._rateAnchorCtx=this._ctx.currentTime),this._rate=n;for(let i of this._activeSources)try{i.sourceNode.playbackRate.value=n}catch(r){v("webAudioTransport.setRate",r)}return!0}hasBoundedActiveSources(){return this._activeSources.some(e=>e.bounded)}stopAll(){for(let e of this._activeSources){try{e.sourceNode.stop(),e.sourceNode.disconnect(),e.gainNode.disconnect()}catch{}e.el.muted=e.priorMuted}this._activeSources=[],this._paused=!0}setVolume(e){this._masterGain&&(this._masterGain.gain.value=Math.max(0,Math.min(1,e)))}setElementVolume(e,n){let i=Math.max(0,Math.min(1,n));for(let r of this._activeSources)if(r.el===e)try{r.gainNode.gain.value=i}catch(o){v("webAudioTransport.setElementVolume",o)}}setMuted(e){this._masterGain&&(this._masterGain.gain.value=e?0:1)}isActive(){return this._activeSources.length>0&&!this._paused}ownsElement(e){return!this._paused&&this._activeSources.some(n=>n.el===e)}destroy(){if(this.stopAll(),this._bufferCache.clear(),this._failedSrcs.clear(),this._ctx)try{this._ctx.close()}catch{}this._ctx=null,this._masterGain=null}};var Gs="data-hf-studio-manual-edit-gesture";var Vi="data-hf-authored-duration",zi="data-hf-authored-end";function id(){let t=window.__HF_EXPORT_RENDER_SEEK_CONFIG,e=t?.fps,n=t?.fpsSource,i=Number(e);return!t||e==null?{fps:null,source:"default",rawFpsSource:n,rawFps:e,fallbackReason:"missing"}:!Number.isFinite(i)||i<=0?{fps:null,source:"default",rawFpsSource:n,rawFps:e,fallbackReason:"invalid"}:{fps:i,source:n==="render-options"||n==="default"?n:"unknown",rawFpsSource:n,rawFps:e,fallbackReason:t.fpsFallbackReason}}function Us(){let t=Dr(),e=id();t.canonicalFps=e.fps??t.canonicalFps,window.__HF_EXPORT_RENDER_SEEK_CONFIG&&console.info("[hyperframes] render runtime fps",{canonicalFps:t.canonicalFps,source:e.source,rawFpsSource:e.rawFpsSource,rawFps:e.rawFps,fallbackReason:e.fallbackReason});let n=null,i=null,r=null,o=[],s=new Set,c=null;if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(d){v("runtime.init.site1",d)}(()=>{let d=window.gsap,p=window;if(!(!d?.registerPlugin||p.__hfAutoNoopRegistered))try{d.registerPlugin({name:"_auto",init:()=>!1}),p.__hfAutoNoopRegistered=!0}catch{}})(),document.documentElement&&(document.documentElement.style.margin="0",document.documentElement.style.padding="0",document.documentElement.style.overflow="hidden"),document.body&&(document.body.style.margin="0",document.body.style.padding="0",document.body.style.overflow="hidden"),window.__timelines=window.__timelines||{};let l=()=>{let d=document.querySelector(\'[data-composition-id][data-root="true"]\');if(d instanceof HTMLElement)return d;let p=Array.from(document.querySelectorAll("[data-composition-id]"));return p.find(h=>!h.parentElement?.closest("[data-composition-id]"))??p[0]??null};if(Array.isArray(window.__timelines)){let d=window.__timelines,p=l()?.getAttribute("data-composition-id")??"root",h={};if(d.length===1)h[p]=d[0];else for(let b=0;b<d.length;b++)h[`tl-${b}`]=d[b];window.__timelines=h}let u=l();u&&!u.hasAttribute("data-start")&&u.setAttribute("data-start","0");let m=d=>{o.push(d)},f=(d,p,h)=>{let b=h??`${d}:${JSON.stringify(p)}`;s.has(b)||(s.add(b),Ee({source:"hf-preview",type:"diagnostic",code:d,details:p}))},g=d=>{let p={scale:1,focusX:960,focusY:540},h=[],b=[],E={time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying(),renderMode:!1,timelineDirty:!1};return{play:d.play,pause:d.pause,seek:d.seek,getTime:d.getTime,getDuration:d.getDuration,isPlaying:d.isPlaying,getMainTimeline:()=>null,getElementBounds:()=>{},getElementsAtPoint:()=>{},setElementPosition:()=>{},previewElementPosition:()=>{},setElementKeyframes:()=>{},setElementScale:()=>{},setElementFontSize:()=>{},setElementTextContent:()=>{},setElementTextColor:()=>{},setElementTextShadow:()=>{},setElementTextFontWeight:()=>{},setElementTextFontFamily:()=>{},setElementTextOutline:()=>{},setElementTextHighlight:()=>{},setElementVolume:()=>{},setStageZoom:()=>{},getStageZoom:()=>p,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>h,addElement:()=>!1,removeElement:()=>!1,updateElementTiming:()=>!1,setElementTiming:()=>{},updateElementSrc:()=>!1,updateElementLayer:()=>!1,updateElementBasePosition:()=>!1,markTimelineDirty:()=>{},isTimelineDirty:()=>!1,rebuildTimeline:()=>{},ensureTimeline:()=>{},enableRenderMode:()=>{},disableRenderMode:()=>{},renderSeek:d.renderSeek,getElementVisibility:()=>({visible:!1}),getVisibleElements:()=>b,getRenderState:()=>({...E,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},A=1/60,y=.75,x=2,w=.05,N=100,L=240,$=d=>{if(d instanceof Error)return d.message||String(d);if(typeof d=="string")return d;try{return JSON.stringify(d)}catch{return String(d??"")}},B=d=>{let p=d.toLowerCase();return p.includes("cannot read properties of null")||p.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:p.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:p.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},_=d=>{if(d==null||d.trim()==="")return null;let p=Number.parseFloat(d);return!Number.isFinite(p)||p<=0?null:`${p}px`},S=()=>l(),C=()=>{let d=S();if(!d)return;let p=_(d.getAttribute("data-width")),h=_(d.getAttribute("data-height"));p&&(d.style.width=p),h&&(d.style.height=h),p&&d.style.setProperty("--comp-width",p),h&&d.style.setProperty("--comp-height",h)},F=()=>{let d=S(),p=Array.from(document.querySelectorAll("[data-composition-id]")).filter(h=>h.hasAttribute("data-duration")||h.hasAttribute("data-end"));for(let h of p){if(d&&h===d)continue;let b=h.getAttribute("data-duration"),E=h.getAttribute("data-end");b!=null&&!h.hasAttribute(Vi)&&h.setAttribute(Vi,b),E!=null&&!h.hasAttribute(zi)&&h.setAttribute(zi,E),h.removeAttribute("data-duration"),h.removeAttribute("data-end")}},T=()=>{let d=S();if(!d)return;d.style.position||(d.style.position="relative"),d.style.overflow="hidden";let p=_(d.getAttribute("data-width")),h=_(d.getAttribute("data-height"));p&&(d.style.width=p),h&&(d.style.height=h);let b=Array.from(d.children);for(let E of b){let M=E.tagName.toLowerCase();if(M==="script"||M==="style"||M==="link"||M==="meta"||!E.hasAttribute("data-start")||E.hasAttribute("data-hf-autostamped"))continue;let R=(E.style.top==="0px"||E.style.top==="0")&&(E.style.left==="0px"||E.style.left==="0")&&E.style.width==="100%"&&E.style.height==="100%",J=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(E.style.transform);if(R&&J&&!E.hasAttribute("data-width")&&!E.hasAttribute("data-height")){let ye=E.style.top,nt=E.style.left,Ae=E.style.width,wt=E.style.height;E.style.top="",E.style.left="",E.style.width="",E.style.height="";let ne=window.getComputedStyle(E);ne.top!=="auto"||ne.bottom!=="auto"||ne.left!=="auto"||ne.right!=="auto"||ne.width!=="0px"||ne.height!=="0px"||(E.style.top=ye,E.style.left=nt,E.style.width=Ae,E.style.height=wt)}let K=window.getComputedStyle(E),me=K.position;if(me!=="absolute"&&me!=="fixed"&&(E.style.position="absolute"),!!E.style.top||!!E.style.bottom||K.top!=="auto"||K.bottom!=="auto"||(E.style.top="0"),!!E.style.left||!!E.style.right||K.left!=="auto"||K.right!=="auto"||(E.style.left="0"),M!=="audio"){let ye=_(E.getAttribute("data-width")),nt=_(E.getAttribute("data-height")),Ae=K.width!=="0px"&&K.width!=="auto",wt=K.height!=="0px"&&K.height!=="auto";ye?!E.style.width&&!Ae&&(E.style.width=ye):!E.style.width&&K.width==="0px"&&(E.style.width="100%"),nt?!E.style.height&&!wt&&(E.style.height=nt):!E.style.height&&K.height==="0px"&&(E.style.height="100%")}}},k=(d,p=0,h)=>ze({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:h?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,p),G=(d,p)=>ze({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:p?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),j=(d,p=0)=>!d.hasAttribute("data-hf-auto-start")&&d.hasAttribute("data-start")?Math.max(0,Number(d.getAttribute("data-start")??0)||0)+p:k(d,p),ie=(d,p)=>{let h=d.tagName.toLowerCase();if(h==="script"||h==="style"||h==="link"||h==="meta")return!1;let b=h==="video"||h==="audio"?j(d,0):k(d,0),E=G(d),M=d.getAttribute("data-composition-id");if(M){let J=(window.__timelines??{})[M],K=null;if(J&&typeof J.duration=="function"){let be=Number(J.duration());Number.isFinite(be)&&be>0&&(K=be)}!(d.hasAttribute("data-duration")||d.hasAttribute("data-end")||d.hasAttribute(Vi)||d.hasAttribute(zi))&&(E==null||E<=0)&&K!=null&&(E=K)}let R=E!=null&&E>0?b+E:Number.POSITIVE_INFINITY;return p>=b&&(Number.isFinite(R)?p<=R:!0)},P=!!document.querySelector("[data-composition-src]"),se=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let p of d){let h=p.getAttribute("data-composition-id");if(h&&p.children.length===0&&document.querySelector(`template#${CSS.escape(h)}-template`)){se=!0;break}}}let Se=!P&&!se,H=d=>{if(!d||typeof d.duration!="function")return null;try{let p=Number(d.duration());return Number.isFinite(p)?Math.max(0,p):null}catch{return null}},U=d=>typeof d=="number"&&Number.isFinite(d)&&d>A,V=d=>{let p=Number(d.getAttribute("data-duration"));if(Number.isFinite(p)&&p>0)return p;let h=Number(d.getAttribute("data-playback-start")??d.getAttribute("data-media-start")??"0"),b=Number.isFinite(h)?Math.max(0,h):0;return Number.isFinite(d.duration)&&d.duration>b?Math.max(0,d.duration-b):null},re=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let p=0;for(let h of d){let b=j(h,0);if(!Number.isFinite(b))continue;let E=V(h);E==null||E<=A||(p=Math.max(p,Math.max(0,b)+E))}return p>A?p:null},Fe=()=>{let d=S();if(!d)return null;let p=window.__timelines??{},h=ze({timelineRegistry:p,includeAuthoredTimingAttrs:!0}),b=0,E=Number.parseFloat(d.getAttribute("data-duration")??"");Number.isFinite(E)&&E>0&&(b=E);let M=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let R of M){if(!(R instanceof Element)||R.parentElement?.closest("[data-composition-id]")!==d)continue;let K=h.resolveStartForElement(R,0),me=h.resolveDurationForElement(R);!Number.isFinite(K)||me==null||me<=0||(b=Math.max(b,Math.max(0,K)+me))}return b>A?b:null},O=()=>{let d=re();return typeof d!="number"||!Number.isFinite(d)||d<=A?null:d},D=d=>U(d)?Math.max(A,d*y):A,W=()=>{let d=0;for(let p of t.deterministicAdapters){let h=p.getInferredDurationSeconds;if(typeof h!="function")continue;let b=null;try{b=h()}catch(E){v("runtime.init.adapterDuration",E)}typeof b=="number"&&Number.isFinite(b)&&b>0&&(d=Math.max(d,b))}return d>A?d:null},Q=(d,p=0)=>{let h=H(d),b=O(),E=Fe(),M=W(),R=Math.max(b??0,E??0,M??0),J=Number.isFinite(p)&&p>A?p:0,K=0;return U(h)?K=Math.max(h,R,J):U(R)?K=Math.max(R,J):K=J,K>0?Math.max(0,K):0},ae=()=>{let d=window.__timelines??{},p=ne=>{let ee=Object.entries(d).filter(xe=>!!xe[1]&&typeof xe[1].play=="function"&&typeof xe[1].pause=="function");if(ee.length!==1)return{timeline:null};let[fe,pe]=ee[0];return{timeline:pe,selectedTimelineIds:[fe],selectedDurationSeconds:H(pe),diagnostics:{code:"root_timeline_sole_registered_fallback",details:{reason:ne,soleTimelineId:fe}}}},h=ze({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),b=O(),E=Fe(),M=Math.max(b??0,E??0)||null,R=D(M),J=ne=>{let ee=document.querySelector(`[data-composition-id="${CSS.escape(ne)}"]`);return ee?h.resolveStartForElement(ee,0):0},K=ne=>{let ee=window.gsap;if(!ee||typeof ee.timeline!="function")return null;let fe=ee.timeline({paused:!0});for(let pe of ne)fe.add(pe.timeline,J(pe.compositionId));return fe},me=(ne,ee)=>{if(!U(ne))return null;let fe=window.gsap;if(!fe||typeof fe.timeline!="function")return null;let pe=fe.timeline({paused:!0});if(ee)try{pe.add(ee,0)}catch(ue){v("runtime.init.site2",ue)}let xe=pe;if(typeof xe.to=="function")try{xe.to({},{duration:ne})}catch(ue){v("runtime.init.site3",ue)}return pe},be=(ne,ee)=>{let fe=ne;if(typeof fe.getChildren!="function")return[];try{let pe=fe.getChildren(!0,!0,!0)??[];if(!Array.isArray(pe))return[];let xe=[];for(let ue of ee)if(!pe.some(ve=>ve===ue.timeline))try{let ve=J(ue.compositionId);ne.add(ue.timeline,ve),xe.push(ue.compositionId)}catch(ve){v("runtime.init.site4",ve)}return xe}catch{return[]}},oe=S(),Z=oe?.getAttribute("data-composition-id")??null;if(!Z)return p("root_missing_composition_id");let ye=d[Z]??null,Ae=(()=>{if(!oe)return[];let ne=new Set,ee=Array.from(oe.querySelectorAll("[data-composition-id]")),fe=[];for(let pe of ee){let xe=pe.getAttribute("data-composition-id");if(!xe||xe===Z||ne.has(xe))continue;ne.add(xe);let ue=d[xe]??null;if(!ue||typeof ue.play!="function"||typeof ue.pause!="function")continue;let Ne=H(ue);fe.push({compositionId:xe,timeline:ue,durationSeconds:Ne??0})}return fe})(),wt=ne=>{for(let ee of ne){let fe=ee.timeline;if(typeof fe.paused=="function")try{fe.paused(!1)}catch(pe){v("runtime.init.site5",pe)}}};if(Ae.length>0&&wt(Ae),ye){let ne=Ae.length>0?be(ye,Ae):[];if((Ae.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+Z+"\'])"))&&(q=!0),ne.length>0)try{let ue=ye.time();ye.seek(ue,!1)}catch{}let ee=H(ye);if(!U(ee)&&Ae.length>0){let ue=Ae.map(Ma=>Ma.compositionId),Ne=K(Ae),ve=H(Ne);if(Ne&&U(ve))return{timeline:Ne,selectedTimelineIds:ue,selectedDurationSeconds:ve,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:R,selectedDurationSeconds:ve,mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedTimelineIds:ue,autoNestedChildren:ne}}};let Un=me(M??0,ye),Vn=H(Un);if(Un&&U(Vn))return{timeline:Un,selectedTimelineIds:[Z],selectedDurationSeconds:Vn,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedDurationSeconds:Vn,selectedTimelineIds:[Z],autoNestedChildren:ne}}}}if(!U(ee)&&Ae.length===0){let ue=me(M??0,ye),Ne=H(ue);if(ue&&U(Ne))return{timeline:ue,selectedTimelineIds:[Z],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedDurationSeconds:Ne,selectedTimelineIds:[Z]}}}}let fe=oe?.getAttribute("data-duration"),pe=fe?parseFloat(fe):null,xe=Math.max(U(pe)?pe:0,E??0);if(xe>0&&U(xe)&&U(ee)&&xe>=ee+.5){let ue=ye;if(typeof ue.to=="function")try{ue.to({},{duration:0},xe)}catch(ve){v("runtime.init.site6",ve)}let Ne=H(ye);if(U(Ne))return{timeline:ye,selectedTimelineIds:[Z],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:Z,rootDurationSeconds:ee,rootDeclaredDur:pe,authoredCompositionDurationFloorSeconds:E,newDur:Ne}}}}return{timeline:ye,selectedTimelineIds:[Z],selectedDurationSeconds:ee,mediaDurationFloorSeconds:b,diagnostics:ne.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:Z,selectedDurationSeconds:ee,autoNestedChildren:ne}}:void 0}}if(Ae.length>0){let ne=Ae.map(pe=>pe.compositionId),ee=K(Ae),fe=H(ee);if(ee)return{timeline:ee,selectedTimelineIds:ne,selectedDurationSeconds:fe,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:Z,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:R,selectedDurationSeconds:fe,mediaDurationFloorSeconds:b,selectedTimelineIds:ne}}}}return p("root_composition_id_unmatched_in_registry")},q=!1,z=()=>{if(!Se)return!1;let d=t.capturedTimeline,p=H(d),h=U(p);if(d&&h&&q)return!1;let b=ae();if(!b.timeline)return!1;if(d&&d===b.timeline)return typeof d.timeScale=="function"&&d.timeScale(t.playbackRate),!1;t.capturedTimeline=b.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let E=Q(t.capturedTimeline,0);if(E<=0&&typeof t.capturedTimeline.progress=="function"&&(t.capturedTimeline.progress(1,!0),t.capturedTimeline.progress(0,!1),t.capturedTimeline.pause()),E>0){try{I.setDuration(E)}catch{}if(typeof t.capturedTimeline.totalTime=="function"){typeof t.capturedTimeline.progress=="function"&&t.capturedTimeline.progress(1e-4,!0);let R=Math.max(0,t.currentTime||0);t.capturedTimeline.totalTime(R,!1),t.capturedTimeline.pause()}let M=window.__hfStudioManualEditsApply;typeof M=="function"&&M()}if(b.diagnostics&&Ee({source:"hf-preview",type:"diagnostic",code:b.diagnostics.code,details:b.diagnostics.details}),Ee({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:b.selectedTimelineIds??[],selectedDurationSeconds:b.selectedDurationSeconds??null,mediaDurationFloorSeconds:b.mediaDurationFloorSeconds??null}}),window.parent!==window){let M=S(),R=E>0?E:0,J=String(R>0?R:1),K=new Set,me=new Set(document.querySelectorAll("[data-start]")),be=oe=>{let Z=oe.parentElement;for(;Z&&Z!==M;){if(me.has(Z))return!0;Z=Z.parentElement}return!1};if(t.capturedTimeline.getChildren)try{for(let oe of t.capturedTimeline.getChildren(!0))if(typeof oe.targets=="function")for(let Z of oe.targets())Z instanceof HTMLElement&&Z!==M&&(Z.hasAttribute("data-start")||be(Z)||K.has(Z)||(K.add(Z),Z.setAttribute("data-start","0"),Z.setAttribute("data-duration",J),Z.setAttribute("data-hf-autostamped","1")))}catch{}if(M instanceof HTMLElement)for(let oe of M.querySelectorAll("[id]"))oe instanceof HTMLElement&&oe!==M&&(oe.hasAttribute("data-start")||be(oe)||K.has(oe)||oe.tagName==="SCRIPT"||oe.tagName==="STYLE"||oe.tagName==="LINK"||(K.add(oe),oe.setAttribute("data-start","0"),oe.setAttribute("data-duration",J),oe.setAttribute("data-hf-autostamped","1")))}for(let M of St)rn.delete(M),er(M);return!0};window.__hfForceTimelineRebind=()=>{q=!1,z()};let X=()=>{let d=S();if(!(d instanceof HTMLElement))return;let p=d.getBoundingClientRect(),h=Number(d.getAttribute("data-width")),b=Number(d.getAttribute("data-height")),E=window.getComputedStyle(d),M=Number.isFinite(h)&&h>0&&Number.isFinite(b)&&b>0,R=p.width<=0||p.height<=0||d.clientWidth<=0||d.clientHeight<=0;!M||!R||f("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:h,declaredHeight:b,rectWidth:Math.round(p.width),rectHeight:Math.round(p.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:E.display,visibility:E.visibility,overflow:E.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},Ie=()=>{t.tornDown||(c!=null&&window.cancelAnimationFrame(c),c=window.requestAnimationFrame(()=>{c=null,X()}))},Me=()=>{i=d=>{let p=$(d.error??d.message).slice(0,L);if(!p)return;let h=B(p);Ee({source:"hf-preview",type:"diagnostic",code:h.code,details:{category:h.category,message:p,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},r=d=>{let p=$(d.reason).slice(0,L);if(!p)return;let h=B(p);Ee({source:"hf-preview",type:"diagnostic",code:`${h.code}_unhandled_rejection`,details:{category:`${h.category}-unhandled-rejection`,message:p}})},window.addEventListener("error",i),window.addEventListener("unhandledrejection",r)},bt=()=>{let d=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let h of d){let b=()=>{if(!(h instanceof Element))return;let E=h.tagName.toLowerCase(),M=h.getAttribute("src")??h.getAttribute("href")??h.getAttribute("poster")??null,R=E==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";f(R,{tagName:E,assetUrl:M,currentSrc:(h instanceof HTMLImageElement||h instanceof HTMLMediaElement)&&h.currentSrc||null,readyState:h instanceof HTMLMediaElement?h.readyState:null,networkState:h instanceof HTMLMediaElement?h.networkState:null},`${R}:${E}:${M??"unknown"}`)};h.addEventListener("error",b),m(()=>{h.removeEventListener("error",b)})}let p=document.fonts;p&&p.ready.then(()=>{if(t.tornDown)return;let h=Array.from(p).filter(b=>b.status==="error").map(b=>b.family).filter(b=>!!b).slice(0,10);h.length!==0&&f("runtime_font_load_issue",{failedFamilies:h,totalFaces:Array.from(p).length},`runtime-font-load-issue:${h.join("|")}`)}).catch(()=>{})},He=(d,p)=>{if(!d.timeline)return!1;let h=t.capturedTimeline;if(h&&h===d.timeline)return!1;let b=Math.max(0,t.currentTime||0),E=t.isPlaying;t.capturedTimeline=d.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);try{t.capturedTimeline.pause(),t.capturedTimeline.seek(b,!1),E&&t.capturedTimeline.play()}catch(M){v("runtime.init.site7",M)}return Ee({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:p,previousTime:b,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},Ze=null,Zi=!1,St=new Set,rn=new WeakMap,on=()=>{t.tornDown||(Ze!=null&&window.clearTimeout(Ze),Ze=window.setTimeout(()=>{if(t.tornDown)return;Ze=null;let d=ae();if(!d.timeline||!U(d.mediaDurationFloorSeconds??null))return;if(!t.capturedTimeline){z()&&(at(),_e(!0));return}if(Zi)return;let h=H(t.capturedTimeline),b=d.selectedDurationSeconds??H(d.timeline);U(b)&&(!U(h)||b>=h+w)&&He(d,"manual")&&(Zi=!0,Ee({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:h??null,selectedDurationSeconds:b??null,selectedTimelineIds:d.selectedTimelineIds??[],mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),at(),_e(!0))},N))},ha=()=>{for(let d of St)d.removeEventListener("loadedmetadata",on),d.removeEventListener("durationchange",on);St.clear()},Dn=()=>{if(t.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio"));for(let p of d){if(St.has(p))continue;St.add(p);let h=Number.parseFloat(p.dataset.volume??"");Number.isFinite(h)&&(p.volume=Math.max(0,Math.min(1,h))),p.addEventListener("loadedmetadata",on),p.addEventListener("durationchange",on),p.preload!=="auto"&&(p.preload="auto"),p.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&p.load(),er(p)}},er=d=>{rn.has(d)||Nr(d,t.capturedTimeline,Q(t.capturedTimeline,0),rn)},In=new WeakMap,tr=d=>{let p=In.get(d);if(p!==void 0)return p;let h=window.getComputedStyle(d).position,b=h==="static"||h==="relative"||h==="sticky";return In.set(d,b),b},Pn=new WeakMap,xa=d=>{let p=Pn.get(d);if(p!==void 0)return p;let h=d.querySelector("[data-start]")===null;return Pn.set(d,h),h},ga=()=>{In=new WeakMap,Pn=new WeakMap},Le=()=>{let d=M=>{let R=M.closest("[data-composition-id]"),J=R?k(R,0):null,K=R?G(R,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:R,inheritedStart:J,inheritedDuration:K}},p=_r({shouldIncludeElement:M=>M.hasAttribute("data-start")||!!d(M).compositionRoot,resolveStartSeconds:M=>{let R=d(M);return j(M,R.inheritedStart??0)},resolveDurationSeconds:M=>{let R=d(M),J=j(M,R.inheritedStart??0),K=Number.parseFloat(M.dataset.playbackStart??M.dataset.mediaStart??"0")||0,me=R.inheritedStart!=null&&R.inheritedDuration!=null&&R.inheritedDuration>0?Math.max(0,R.inheritedStart+R.inheritedDuration-J):null,be=Number.isFinite(M.duration)&&M.duration>K?Math.max(0,M.duration-K):null,oe=Number.parseFloat(M.dataset.duration??""),Z=Number.isFinite(oe)&&oe>0?oe:null,ye=[be,me,Z].filter(nt=>nt!=null);return ye.length>0?Math.min(...ye):null}});for(let M of p.mediaClips){let R=rn.get(M.el);R&&(M.volumeKeyframes=R)}let h=t.mediaForceSyncNextTick;h&&(t.mediaForceSyncNextTick=!1),t.nativeMediaSyncDisabled||Tr({clips:p.mediaClips,timeSeconds:t.currentTime,playing:t.isPlaying,playbackRate:t.playbackRate,outputMuted:t.mediaOutputMuted||!t.webAudioMediaDisabled&&!t.nativeMediaSyncDisabled&&de.isActive(),userMuted:t.bridgeMuted,userVolume:t.bridgeVolume,forceSync:h,onElementVolume:(M,R)=>de.setElementVolume(M,R),isWebAudioOwned:M=>de.ownsElement(M),onAutoplayBlocked:()=>{t.mediaAutoplayBlockedPosted||(t.mediaAutoplayBlockedPosted=!0,Ee({source:"hf-preview",type:"media-autoplay-blocked"}))}});let b=Array.from(document.querySelectorAll("[data-start]")),E=S();for(let M of b){if(!(M instanceof HTMLElement))continue;let R=ie(M,t.currentTime);if(R){let J=M.parentElement;for(;J&&J!==E;){if(J instanceof HTMLElement&&J.hasAttribute("data-start")&&!ie(J,t.currentTime)){R=!1;break}J=J.parentElement}}M.style.visibility=R?"visible":"hidden",(M instanceof HTMLVideoElement||M instanceof HTMLImageElement)&&n?.setSourceVisibility(M,R),R?tr(M)&&M.style.removeProperty("display"):tr(M)&&xa(M)&&(M.style.display="none")}},_e=d=>{let p=Math.max(0,Math.round((t.currentTime||0)*t.canonicalFps)),h=Date.now();(d||p!==t.bridgeLastPostedFrame||t.isPlaying!==t.bridgeLastPostedPlaying||t.bridgeMuted!==t.bridgeLastPostedMuted||h-t.bridgeLastPostedAt>=t.bridgeMaxPostIntervalMs)&&(t.bridgeLastPostedFrame=p,t.bridgeLastPostedPlaying=t.isPlaying,t.bridgeLastPostedMuted=t.bridgeMuted,t.bridgeLastPostedAt=h,Ee({source:"hf-preview",type:"state",frame:p,isPlaying:t.isPlaying,muted:t.bridgeMuted,playbackRate:t.playbackRate}))},On="",ya=()=>{let d="";for(let p of document.querySelectorAll("[data-start]"))d+=`${p.id}:${p.tagName}|`;return d},at=()=>{F(),C(),T();let d=S();if(d){let b=_(d.getAttribute("data-width")),E=_(d.getAttribute("data-height")),M=b?parseInt(b,10):0,R=E?parseInt(E,10):0;M>0&&R>0&&Ee({source:"hf-preview",type:"stage-size",width:M,height:R})}z();let p=Hr({canonicalFps:t.canonicalFps});window.__clipManifest=p;let h=ya();if(On!==h&&ga(),!window.__clipTree||On!==h){let b=window;window.__clipTree=Ir({startResolver:ze({timelineRegistry:b.__timelines??{},includeAuthoredTimingAttrs:!0}),timelineRegistry:b.__timelines??{},rootDuration:p.durationInFrames/t.canonicalFps}),On=h}Ee(p),Ie()},Pe=(d,p=0)=>{for(let h of t.deterministicAdapters){try{d==="discover"&&h.discover(),d==="pause"&&h.pause(),d==="play"&&h.play&&h.play()}catch(b){v("runtime.init.site8",b)}if(d==="discover")try{h.seek({time:p})}catch(b){v("runtime.init.site9",b)}}},et=()=>{window.__renderReady=!1},At=null,Et=!0,ba=()=>{let d=[];for(let p of t.deterministicAdapters){let h=p.getReadyPromise;if(typeof h=="function")try{let b=h();b&&d.push(b)}catch(b){v("runtime.init.adapterReady",b)}}return d},Sa=()=>{let d=ba();if(d.length===0)return At=null,Et=!0,!0;let p=d.length===1?d[0]:Promise.all(d);return p!==At&&(At=p,Et=!1,Promise.resolve(p).then(()=>{At===p&&(Et=!0,et())},h=>{At===p&&(Et=!0,v("runtime.init.adapterReady",h),et())})),Et};if(Se)Pi();else{let d={injectedStyles:t.injectedCompStyles,injectedScripts:t.injectedCompScripts,parseDimensionPx:_,onDiagnostic:({code:p,details:h})=>{Ee({source:"hf-preview",type:"diagnostic",code:p,details:h})}};Cs(d).then(()=>ws(d)).finally(()=>{Se=!0,Dn(),bt(),Pi(),et()})}let sn=Lr({postMessage:d=>Ee(d)});sn.installPickerApi();let We=Hs();n=We,m(()=>{We.destroy(),n=null});let Bn=d=>{let p=Number(d);!Number.isFinite(p)||p<=0?t.playbackRate=1:t.playbackRate=Math.max(.1,Math.min(5,p)),t.mediaForceSyncNextTick=!0,t.capturedTimeline&&typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let h=document.querySelectorAll("video, audio");for(let b of h)if(b instanceof HTMLMediaElement)try{b.playbackRate=t.playbackRate}catch(E){v("runtime.init.site10",E)}},he=Rr({getTimeline:()=>t.capturedTimeline,setTimeline:d=>{t.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>t.isPlaying,setIsPlaying:d=>{t.isPlaying!==d&&(t.mediaForceSyncNextTick=!0),t.isPlaying=d},getPlaybackRate:()=>t.playbackRate,setPlaybackRate:Bn,getCanonicalFps:()=>t.canonicalFps,onSyncMedia:(d,p)=>{t.currentTime=Math.max(0,Number(d)||0),t.isPlaying!==p&&(t.mediaForceSyncNextTick=!0),t.isPlaying=p,Le()},onStatePost:_e,onDeterministicSeek:d=>{for(let p of t.deterministicAdapters)try{p.seek({time:Number(d)||0})}catch(h){v("runtime.init.site11",h)}},onDeterministicPause:()=>Pe("pause"),onDeterministicPlay:()=>Pe("play"),onRenderFrameSeek:()=>{We.redraw()},onShowNativeVideos:()=>{},getSafeDuration:()=>Q(t.capturedTimeline,0)});window.__player=g(he),window.__playerReady=!0,lr(Ee),Ct("composition_loaded",{duration:he.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),t.controlBridgeHandler=ar({onPlay:()=>{he.play(),Ct("composition_played",{time:he.getTime()})},onPause:()=>{he.pause(),Ct("composition_paused",{time:he.getTime()})},onStopMedia:()=>{de.stopAll();let d=document.querySelectorAll("video, audio");for(let p of d)p instanceof HTMLMediaElement&&!p.paused&&p.pause()},onSeek:(d,p)=>{let h=Math.max(0,d)/t.canonicalFps;he.seek(h),Ct("composition_seeked",{time:h})},onSetMuted:d=>{t.bridgeMuted=d;let p=d||t.mediaOutputMuted;de.setMuted(p);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=p||b.defaultMuted)},onSetVolume:d=>{t.bridgeVolume=d,de.setVolume(d);let p=document.querySelectorAll("video, audio");for(let h of p){if(!(h instanceof HTMLMediaElement))continue;let b=parseFloat(h.dataset.volume??""),E=Number.isFinite(b)?b:1;h.volume=E*d}},onSetMediaOutputMuted:d=>{t.mediaOutputMuted=d;let p=d||t.bridgeMuted;de.setMuted(p);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=p||b.defaultMuted)},onSetNativeMediaSyncDisabled:d=>{t.nativeMediaSyncDisabled!==d&&(t.nativeMediaSyncDisabled=d,t.mediaForceSyncNextTick=!0,d?(de.stopAll(),I.detachAudioSource()):Le())},onSetWebAudioMediaDisabled:d=>{t.webAudioMediaDisabled!==d&&(t.webAudioMediaDisabled=d,t.mediaForceSyncNextTick=!0,d&&(de.stopAll(),I.detachAudioSource()),Le())},onSetPlaybackRate:d=>{Bn(d),t.transportClock&&t.transportClock.setRate(t.playbackRate),or()},onSetColorGrading:(d,p)=>{We.setGrading(d,p)},onSetColorGradingCompare:(d,p)=>{We.setCompare(d,p)},onTick:()=>{if(t.tornDown||!I.isPlaying())return;let d=I.now();if(t.currentTime=d,tt(d),I.reachedEnd()){de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,tt(p)),Pe("pause"),Le(),_e(!0)}},onEnablePickMode:()=>sn.enablePickMode(),onDisablePickMode:()=>sn.disablePickMode()}),t.deterministicAdapters=[Fr(),ur({resolveStartSeconds:d=>k(d,0)}),dr(),mr(),hr(),xr(),gr(),yr(),br(),Sr(),Ar(),cr({getTimeline:()=>t.capturedTimeline})],wr(),Cr(),window.__hfReseekGpu=d=>{let p=Math.max(0,Number(d)||0);window.__hfThreeTime=p,window.__hfTypegpuTime=p,pr(p)},Me(),Dn(),Pe("discover");let I=new Nn;t.transportClock=I;let de=new _n,Hn=!1;de.init().then(d=>{Hn=d});let Aa=()=>{let d=t.capturedTimeline,p=z();t.capturedTimeline&&(p||t.capturedTimeline!==d||!he._timeline)&&(he._timeline=t.capturedTimeline);let h=Q(t.capturedTimeline,0);if(h>0&&I.setDuration(h),Pe("discover",t.currentTime),!t.capturedTimeline){let b=window.__timelines??{},E=Object.keys(b).filter(M=>b[M]);if(E.length>0){let R=S()?.getAttribute("data-composition-id")??null;f("root_timeline_unbound_registry_present",{reason:R?"root data-composition-id has no matching key in window.__timelines":"root composition element has no data-composition-id attribute",rootCompositionId:R,registeredTimelineKeys:E},"root_timeline_unbound_registry_present"),console.warn("[hyperframes] Root timeline not bound \\u2014 render will freeze at t=0. "+(R?`Root data-composition-id is "${R}" but window.__timelines has no such key. `:"Root composition element has no data-composition-id. ")+`Registered timeline keys: [${E.join(", ")}]. Register the root timeline under its data-composition-id (window.__timelines["${R??"<root-id>"}"] = tl).`)}}window.__renderReady=!0,at(),_e(!0)};if(et=()=>{if(!Se||window.__hfTimelinesBuilding){window.__renderReady=!1;return}if(Pe("discover",t.currentTime),!Sa()){window.__renderReady=!1;return}Aa()},window.__hfTimelinesBuilding){window.__renderReady=!1;let d=()=>{window.removeEventListener("hf-timelines-built",d),et()};window.addEventListener("hf-timelines-built",d)}et(),Se&&setTimeout(()=>{et()},0);let an=0,Wn=!1,Ea=(d,p,h)=>{try{d.pause(),typeof d.totalTime=="function"?d.totalTime(p,!1):d.seek(p,!1)}catch(b){v(h,b)}},wa=d=>{let p=window.__timelines??{},h=S()?.getAttribute("data-composition-id")??null;for(let[b,E]of Object.entries(p)){if(!E||b===h)continue;let M=document.querySelector(`[data-composition-id="${CSS.escape(b)}"]`);if(!M)continue;let R=k(M,0);if(!Number.isFinite(R))continue;let J=G(M,{includeAuthoredTimingAttrs:!0}),K=H(E),me=J!=null&&J>0?J:K,be=Math.max(0,me!=null&&me>0?Math.min(me,d-R):d-R);Ea(E,be,"runtime.init.transport.childTimeline")}},Ca=d=>{let p=window.__timelines??{};for(let h of Object.values(p))if(!(!h||h===d))try{h.play()}catch(b){v("runtime.init.activateSiblings",b)}},tt=(d,p)=>{let h=t.capturedTimeline;if(h){p?.activateChildren&&Ca(h);let b=h,E=d;if(typeof b.totalDuration=="function")try{let M=Number(b.totalDuration());Number.isFinite(M)&&M>0&&d>M&&(E=M)}catch(M){v("runtime.init.transport.clampDuration",M)}try{typeof h.totalTime=="function"?h.totalTime(E,!1):h.seek(E,!1)}catch(M){v("runtime.init.transport.seek",M)}}else wa(d);for(let b of t.deterministicAdapters)try{b.seek({time:d})}catch(E){v("runtime.init.transport.adapter",E)}},Fa=()=>{try{return document.querySelector(`[${Gs}]`)!=null}catch{return!1}},nr=()=>{if(!(t.tornDown||Wn)){Wn=!0;try{if(t.transportRafId=window.requestAnimationFrame(nr),an+=1,an%60===0&&!(I.isPlaying()&&t.capturedTimeline!=null&&I.now()<x)){let h=t.capturedTimeline;if(z()){t.capturedTimeline&&!he._timeline&&(he._timeline=t.capturedTimeline),t.capturedTimeline&&t.capturedTimeline!==h&&t.capturedTimeline.pause();let b=Q(t.capturedTimeline,0);b>0&&I.setDuration(b),at()}}if(an%20===0&&at(),an%30===0&&Dn(),t.capturedTimeline){let p=Q(t.capturedTimeline,0);p>0&&(!I.isPlaying()||p>=I.getDuration())&&I.setDuration(p)}if(I.isPlaying()&&!t.mediaOutputMuted)if(!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&de.isActive()&&de.context){let p=de.getTime();p>=0&&I.attachAudioSource({currentTimeSeconds:p})}else{let p=document.querySelectorAll("audio[data-start]"),h=!1;for(let b of p){if(!(b instanceof HTMLMediaElement)||!b.isConnected)continue;let E=Number.parseFloat(b.dataset.start??""),M=Number.parseFloat(b.dataset.duration??""),R=Number.isFinite(M)&&M>0?E+M:1/0,J=Number.parseFloat(b.dataset.playbackStart??b.dataset.mediaStart??"0")||0;if(Number.isFinite(E)&&t.currentTime>=E&&t.currentTime<=R){b.paused?!b.error&&b.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(I.attachAudioSource({currentTimeSeconds:t.currentTime}),h=!0):(I.attachAudioSource({el:b,compositionStart:E,mediaStart:J}),h=!0);break}}!h&&I.hasAudioSource()&&I.detachAudioSource()}else I.hasAudioSource()&&I.detachAudioSource();let d=I.now();if(t.currentTime=d,(I.isPlaying()||!Fa())&&tt(d),I.isPlaying()&&I.reachedEnd()){de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,tt(p)),Pe("pause"),Le(),_e(!0);return}I.isPlaying()&&Le(),_e(!1)}finally{Wn=!1}}},ir=d=>{let p=document.querySelectorAll("video, audio");for(let h of p){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let b=Number.parseFloat(h.dataset.start??"");if(!Number.isFinite(b))continue;let E=Number.parseFloat(h.dataset.duration??""),M=Number.isFinite(E)&&E>0?b+E:1/0;if(d<b||d>=M)continue;let R=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,J=d-b+R;if(J>=0)try{h.currentTime=J}catch{}}},rr=()=>{if(t.nativeMediaSyncDisabled||t.webAudioMediaDisabled)return;let d=de.startGeneration(),p=document.querySelectorAll("audio[data-start]");for(let h of p){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let b=Number.parseFloat(h.dataset.start??"");if(!Number.isFinite(b))continue;let E=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,M=Number.parseFloat(h.dataset.volume??""),R=Number.isFinite(M)?M:1,J=Number.parseFloat(h.dataset.duration??""),K=Number.isFinite(J)&&J>0?J:Number.POSITIVE_INFINITY,me=h.closest("[data-composition-id]");if(me){let be=k(me,0),oe=G(me,{includeAuthoredTimingAttrs:!0});oe!=null&&oe>0&&(K=Math.min(K,Math.max(0,be+oe-b)))}de.decodeAudioElement(h).then(be=>{!be||!I.isPlaying()||de.schedulePlayback(h,be,b,E,I.now(),R*t.bridgeVolume,d,t.playbackRate,K)})}},or=()=>{de.setRate(t.playbackRate)&&!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&Hn&&I.isPlaying()&&de.hasBoundedActiveSources()&&(de.stopAll(),rr())};if(he.play=()=>{let d=t.capturedTimeline;if(I.isPlaying())return;let p=Q(d,0);if(p>0)I.setDuration(p),I.reachedEnd()&&(I.seek(0),t.currentTime=0,tt(0));else{let h=S(),b=Number(h?.getAttribute("data-duration")??0);b>0&&I.setDuration(b)}d&&d.pause(),I.play()&&(t.isPlaying=!0,t.mediaForceSyncNextTick=!0,ir(I.now()),Hn&&!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&rr(),Pe("play"),Le(),We.redraw(),_e(!0))},he.pause=()=>{if(!I.isPlaying())return;de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1,t.currentTime=I.now(),t.mediaForceSyncNextTick=!0,ir(t.currentTime);let d=t.capturedTimeline;d&&d.pause(),Pe("pause"),Le(),We.redraw(),_e(!0)},he.seek=d=>{let p=ut(Math.max(0,Number(d)||0),t.canonicalFps);de.stopAll(),I.detachAudioSource(),I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0;let b=t.capturedTimeline;b&&b.pause(),tt(t.currentTime),Pe("pause"),Le(),We.redraw(),_e(!0)},he.renderSeek=d=>{let p=ut(Math.max(0,Number(d)||0),t.canonicalFps);I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0,tt(t.currentTime,{activateChildren:!0}),Le(),We.redraw(),_e(!0)},he.getTime=()=>I.now(),he.getDuration=()=>{let d=I.getDuration();return Number.isFinite(d)?d:0},he.isPlaying=()=>I.isPlaying(),he.setPlaybackRate=d=>{Bn(d),I.setRate(t.playbackRate),or()},t.capturedTimeline){let d=Q(t.capturedTimeline,0);d>0&&I.setDuration(d),t.capturedTimeline.pause()}let sr=window.__player;if(sr){let d=["play","pause","seek","renderSeek","getTime","getDuration","isPlaying"];for(let p of d)Object.defineProperty(sr,p,{get:()=>he[p],set:h=>{he[p]=h},configurable:!0})}t.transportRafId=window.requestAnimationFrame(nr),at(),_e(!0);let Gn=()=>{if(!t.tornDown){t.tornDown=!0,t.transportRafId!=null&&(window.cancelAnimationFrame(t.transportRafId),t.transportRafId=null),t.transportClock=null,de.destroy(),Ze!=null&&(window.clearTimeout(Ze),Ze=null),c!=null&&(window.cancelAnimationFrame(c),c=null),ha(),t.controlBridgeHandler&&(window.removeEventListener("message",t.controlBridgeHandler),t.controlBridgeHandler=null),i&&(window.removeEventListener("error",i),i=null),r&&(window.removeEventListener("unhandledrejection",r),r=null),t.beforeUnloadHandler&&(window.removeEventListener("beforeunload",t.beforeUnloadHandler),t.beforeUnloadHandler=null),sn.disablePickMode();for(let d of t.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch(p){v("runtime.init.site12",p)}t.deterministicAdapters=[];for(let d of o.splice(0))try{d()}catch(p){v("runtime.init.site13",p)}for(let d of t.injectedCompStyles)try{d.remove()}catch(p){v("runtime.init.site14",p)}t.injectedCompStyles=[];for(let d of t.injectedCompScripts)try{d.remove()}catch(p){v("runtime.init.site15",p)}t.injectedCompScripts=[],t.capturedTimeline=null,window.__hfRuntimeTeardown===Gn&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=Gn,t.beforeUnloadHandler=Gn,window.addEventListener("beforeunload",t.beforeUnloadHandler)}var Vs=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],ji=[[697,698,"ON"],[706,719,"ON"],[722,735,"ON"],[741,749,"ON"],[751,767,"ON"],[768,879,"NSM"],[884,885,"ON"],[894,894,"ON"],[900,901,"ON"],[903,903,"ON"],[1014,1014,"ON"],[1155,1161,"NSM"],[1418,1418,"ON"],[1421,1422,"ON"],[1423,1423,"ET"],[1424,1424,"R"],[1425,1469,"NSM"],[1470,1470,"R"],[1471,1471,"NSM"],[1472,1472,"R"],[1473,1474,"NSM"],[1475,1475,"R"],[1476,1477,"NSM"],[1478,1478,"R"],[1479,1479,"NSM"],[1480,1535,"R"],[1536,1541,"AN"],[1542,1543,"ON"],[1544,1544,"AL"],[1545,1546,"ET"],[1547,1547,"AL"],[1548,1548,"CS"],[1549,1549,"AL"],[1550,1551,"ON"],[1552,1562,"NSM"],[1563,1610,"AL"],[1611,1631,"NSM"],[1632,1641,"AN"],[1642,1642,"ET"],[1643,1644,"AN"],[1645,1647,"AL"],[1648,1648,"NSM"],[1649,1749,"AL"],[1750,1756,"NSM"],[1757,1757,"AN"],[1758,1758,"ON"],[1759,1764,"NSM"],[1765,1766,"AL"],[1767,1768,"NSM"],[1769,1769,"ON"],[1770,1773,"NSM"],[1774,1775,"AL"],[1776,1785,"EN"],[1786,1808,"AL"],[1809,1809,"NSM"],[1810,1839,"AL"],[1840,1866,"NSM"],[1867,1957,"AL"],[1958,1968,"NSM"],[1969,1983,"AL"],[1984,2026,"R"],[2027,2035,"NSM"],[2036,2037,"R"],[2038,2041,"ON"],[2042,2044,"R"],[2045,2045,"NSM"],[2046,2069,"R"],[2070,2073,"NSM"],[2074,2074,"R"],[2075,2083,"NSM"],[2084,2084,"R"],[2085,2087,"NSM"],[2088,2088,"R"],[2089,2093,"NSM"],[2094,2136,"R"],[2137,2139,"NSM"],[2140,2143,"R"],[2144,2191,"AL"],[2192,2193,"AN"],[2194,2198,"AL"],[2199,2207,"NSM"],[2208,2249,"AL"],[2250,2273,"NSM"],[2274,2274,"AN"],[2275,2306,"NSM"],[2362,2362,"NSM"],[2364,2364,"NSM"],[2369,2376,"NSM"],[2381,2381,"NSM"],[2385,2391,"NSM"],[2402,2403,"NSM"],[2433,2433,"NSM"],[2492,2492,"NSM"],[2497,2500,"NSM"],[2509,2509,"NSM"],[2530,2531,"NSM"],[2546,2547,"ET"],[2555,2555,"ET"],[2558,2558,"NSM"],[2561,2562,"NSM"],[2620,2620,"NSM"],[2625,2626,"NSM"],[2631,2632,"NSM"],[2635,2637,"NSM"],[2641,2641,"NSM"],[2672,2673,"NSM"],[2677,2677,"NSM"],[2689,2690,"NSM"],[2748,2748,"NSM"],[2753,2757,"NSM"],[2759,2760,"NSM"],[2765,2765,"NSM"],[2786,2787,"NSM"],[2801,2801,"ET"],[2810,2815,"NSM"],[2817,2817,"NSM"],[2876,2876,"NSM"],[2879,2879,"NSM"],[2881,2884,"NSM"],[2893,2893,"NSM"],[2901,2902,"NSM"],[2914,2915,"NSM"],[2946,2946,"NSM"],[3008,3008,"NSM"],[3021,3021,"NSM"],[3059,3064,"ON"],[3065,3065,"ET"],[3066,3066,"ON"],[3072,3072,"NSM"],[3076,3076,"NSM"],[3132,3132,"NSM"],[3134,3136,"NSM"],[3142,3144,"NSM"],[3146,3149,"NSM"],[3157,3158,"NSM"],[3170,3171,"NSM"],[3192,3198,"ON"],[3201,3201,"NSM"],[3260,3260,"NSM"],[3276,3277,"NSM"],[3298,3299,"NSM"],[3328,3329,"NSM"],[3387,3388,"NSM"],[3393,3396,"NSM"],[3405,3405,"NSM"],[3426,3427,"NSM"],[3457,3457,"NSM"],[3530,3530,"NSM"],[3538,3540,"NSM"],[3542,3542,"NSM"],[3633,3633,"NSM"],[3636,3642,"NSM"],[3647,3647,"ET"],[3655,3662,"NSM"],[3761,3761,"NSM"],[3764,3772,"NSM"],[3784,3790,"NSM"],[3864,3865,"NSM"],[3893,3893,"NSM"],[3895,3895,"NSM"],[3897,3897,"NSM"],[3898,3901,"ON"],[3953,3966,"NSM"],[3968,3972,"NSM"],[3974,3975,"NSM"],[3981,3991,"NSM"],[3993,4028,"NSM"],[4038,4038,"NSM"],[4141,4144,"NSM"],[4146,4151,"NSM"],[4153,4154,"NSM"],[4157,4158,"NSM"],[4184,4185,"NSM"],[4190,4192,"NSM"],[4209,4212,"NSM"],[4226,4226,"NSM"],[4229,4230,"NSM"],[4237,4237,"NSM"],[4253,4253,"NSM"],[4957,4959,"NSM"],[5008,5017,"ON"],[5120,5120,"ON"],[5760,5760,"WS"],[5787,5788,"ON"],[5906,5908,"NSM"],[5938,5939,"NSM"],[5970,5971,"NSM"],[6002,6003,"NSM"],[6068,6069,"NSM"],[6071,6077,"NSM"],[6086,6086,"NSM"],[6089,6099,"NSM"],[6107,6107,"ET"],[6109,6109,"NSM"],[6128,6137,"ON"],[6144,6154,"ON"],[6155,6157,"NSM"],[6158,6158,"BN"],[6159,6159,"NSM"],[6277,6278,"NSM"],[6313,6313,"NSM"],[6432,6434,"NSM"],[6439,6440,"NSM"],[6450,6450,"NSM"],[6457,6459,"NSM"],[6464,6464,"ON"],[6468,6469,"ON"],[6622,6655,"ON"],[6679,6680,"NSM"],[6683,6683,"NSM"],[6742,6742,"NSM"],[6744,6750,"NSM"],[6752,6752,"NSM"],[6754,6754,"NSM"],[6757,6764,"NSM"],[6771,6780,"NSM"],[6783,6783,"NSM"],[6832,6877,"NSM"],[6880,6891,"NSM"],[6912,6915,"NSM"],[6964,6964,"NSM"],[6966,6970,"NSM"],[6972,6972,"NSM"],[6978,6978,"NSM"],[7019,7027,"NSM"],[7040,7041,"NSM"],[7074,7077,"NSM"],[7080,7081,"NSM"],[7083,7085,"NSM"],[7142,7142,"NSM"],[7144,7145,"NSM"],[7149,7149,"NSM"],[7151,7153,"NSM"],[7212,7219,"NSM"],[7222,7223,"NSM"],[7376,7378,"NSM"],[7380,7392,"NSM"],[7394,7400,"NSM"],[7405,7405,"NSM"],[7412,7412,"NSM"],[7416,7417,"NSM"],[7616,7679,"NSM"],[8125,8125,"ON"],[8127,8129,"ON"],[8141,8143,"ON"],[8157,8159,"ON"],[8173,8175,"ON"],[8189,8190,"ON"],[8192,8202,"WS"],[8203,8205,"BN"],[8207,8207,"R"],[8208,8231,"ON"],[8232,8232,"WS"],[8233,8233,"B"],[8234,8238,"BN"],[8239,8239,"CS"],[8240,8244,"ET"],[8245,8259,"ON"],[8260,8260,"CS"],[8261,8286,"ON"],[8287,8287,"WS"],[8288,8303,"BN"],[8304,8304,"EN"],[8308,8313,"EN"],[8314,8315,"ES"],[8316,8318,"ON"],[8320,8329,"EN"],[8330,8331,"ES"],[8332,8334,"ON"],[8352,8399,"ET"],[8400,8432,"NSM"],[8448,8449,"ON"],[8451,8454,"ON"],[8456,8457,"ON"],[8468,8468,"ON"],[8470,8472,"ON"],[8478,8483,"ON"],[8485,8485,"ON"],[8487,8487,"ON"],[8489,8489,"ON"],[8494,8494,"ET"],[8506,8507,"ON"],[8512,8516,"ON"],[8522,8525,"ON"],[8528,8543,"ON"],[8585,8587,"ON"],[8592,8721,"ON"],[8722,8722,"ES"],[8723,8723,"ET"],[8724,9013,"ON"],[9083,9108,"ON"],[9110,9257,"ON"],[9280,9290,"ON"],[9312,9351,"ON"],[9352,9371,"EN"],[9450,9899,"ON"],[9901,10239,"ON"],[10496,11123,"ON"],[11126,11263,"ON"],[11493,11498,"ON"],[11503,11505,"NSM"],[11513,11519,"ON"],[11647,11647,"NSM"],[11744,11775,"NSM"],[11776,11869,"ON"],[11904,11929,"ON"],[11931,12019,"ON"],[12032,12245,"ON"],[12272,12287,"ON"],[12288,12288,"WS"],[12289,12292,"ON"],[12296,12320,"ON"],[12330,12333,"NSM"],[12336,12336,"ON"],[12342,12343,"ON"],[12349,12351,"ON"],[12441,12442,"NSM"],[12443,12444,"ON"],[12448,12448,"ON"],[12539,12539,"ON"],[12736,12773,"ON"],[12783,12783,"ON"],[12829,12830,"ON"],[12880,12895,"ON"],[12924,12926,"ON"],[12977,12991,"ON"],[13004,13007,"ON"],[13175,13178,"ON"],[13278,13279,"ON"],[13311,13311,"ON"],[19904,19967,"ON"],[42128,42182,"ON"],[42509,42511,"ON"],[42607,42610,"NSM"],[42611,42611,"ON"],[42612,42621,"NSM"],[42622,42623,"ON"],[42654,42655,"NSM"],[42736,42737,"NSM"],[42752,42785,"ON"],[42888,42888,"ON"],[43010,43010,"NSM"],[43014,43014,"NSM"],[43019,43019,"NSM"],[43045,43046,"NSM"],[43048,43051,"ON"],[43052,43052,"NSM"],[43064,43065,"ET"],[43124,43127,"ON"],[43204,43205,"NSM"],[43232,43249,"NSM"],[43263,43263,"NSM"],[43302,43309,"NSM"],[43335,43345,"NSM"],[43392,43394,"NSM"],[43443,43443,"NSM"],[43446,43449,"NSM"],[43452,43453,"NSM"],[43493,43493,"NSM"],[43561,43566,"NSM"],[43569,43570,"NSM"],[43573,43574,"NSM"],[43587,43587,"NSM"],[43596,43596,"NSM"],[43644,43644,"NSM"],[43696,43696,"NSM"],[43698,43700,"NSM"],[43703,43704,"NSM"],[43710,43711,"NSM"],[43713,43713,"NSM"],[43756,43757,"NSM"],[43766,43766,"NSM"],[43882,43883,"ON"],[44005,44005,"NSM"],[44008,44008,"NSM"],[44013,44013,"NSM"],[64285,64285,"R"],[64286,64286,"NSM"],[64287,64296,"R"],[64297,64297,"ES"],[64298,64335,"R"],[64336,64450,"AL"],[64451,64466,"ON"],[64467,64829,"AL"],[64830,64847,"ON"],[64848,64911,"AL"],[64912,64913,"ON"],[64914,64967,"AL"],[64968,64975,"ON"],[64976,65007,"BN"],[65008,65020,"AL"],[65021,65023,"ON"],[65024,65039,"NSM"],[65040,65049,"ON"],[65056,65071,"NSM"],[65072,65103,"ON"],[65104,65104,"CS"],[65105,65105,"ON"],[65106,65106,"CS"],[65108,65108,"ON"],[65109,65109,"CS"],[65110,65118,"ON"],[65119,65119,"ET"],[65120,65121,"ON"],[65122,65123,"ES"],[65124,65126,"ON"],[65128,65128,"ON"],[65129,65130,"ET"],[65131,65131,"ON"],[65136,65278,"AL"],[65279,65279,"BN"],[65281,65282,"ON"],[65283,65285,"ET"],[65286,65290,"ON"],[65291,65291,"ES"],[65292,65292,"CS"],[65293,65293,"ES"],[65294,65295,"CS"],[65296,65305,"EN"],[65306,65306,"CS"],[65307,65312,"ON"],[65339,65344,"ON"],[65371,65381,"ON"],[65504,65505,"ET"],[65506,65508,"ON"],[65509,65510,"ET"],[65512,65518,"ON"],[65520,65528,"BN"],[65529,65533,"ON"],[65534,65535,"BN"],[65793,65793,"ON"],[65856,65932,"ON"],[65936,65948,"ON"],[65952,65952,"ON"],[66045,66045,"NSM"],[66272,66272,"NSM"],[66273,66299,"EN"],[66422,66426,"NSM"],[67584,67870,"R"],[67871,67871,"ON"],[67872,68096,"R"],[68097,68099,"NSM"],[68100,68100,"R"],[68101,68102,"NSM"],[68103,68107,"R"],[68108,68111,"NSM"],[68112,68151,"R"],[68152,68154,"NSM"],[68155,68158,"R"],[68159,68159,"NSM"],[68160,68324,"R"],[68325,68326,"NSM"],[68327,68408,"R"],[68409,68415,"ON"],[68416,68863,"R"],[68864,68899,"AL"],[68900,68903,"NSM"],[68904,68911,"AL"],[68912,68921,"AN"],[68922,68927,"AL"],[68928,68937,"AN"],[68938,68968,"R"],[68969,68973,"NSM"],[68974,68974,"ON"],[68975,69215,"R"],[69216,69246,"AN"],[69247,69290,"R"],[69291,69292,"NSM"],[69293,69311,"R"],[69312,69327,"AL"],[69328,69336,"ON"],[69337,69369,"AL"],[69370,69375,"NSM"],[69376,69423,"R"],[69424,69445,"AL"],[69446,69456,"NSM"],[69457,69487,"AL"],[69488,69505,"R"],[69506,69509,"NSM"],[69510,69631,"R"],[69633,69633,"NSM"],[69688,69702,"NSM"],[69714,69733,"ON"],[69744,69744,"NSM"],[69747,69748,"NSM"],[69759,69761,"NSM"],[69811,69814,"NSM"],[69817,69818,"NSM"],[69826,69826,"NSM"],[69888,69890,"NSM"],[69927,69931,"NSM"],[69933,69940,"NSM"],[70003,70003,"NSM"],[70016,70017,"NSM"],[70070,70078,"NSM"],[70089,70092,"NSM"],[70095,70095,"NSM"],[70191,70193,"NSM"],[70196,70196,"NSM"],[70198,70199,"NSM"],[70206,70206,"NSM"],[70209,70209,"NSM"],[70367,70367,"NSM"],[70371,70378,"NSM"],[70400,70401,"NSM"],[70459,70460,"NSM"],[70464,70464,"NSM"],[70502,70508,"NSM"],[70512,70516,"NSM"],[70587,70592,"NSM"],[70606,70606,"NSM"],[70608,70608,"NSM"],[70610,70610,"NSM"],[70625,70626,"NSM"],[70712,70719,"NSM"],[70722,70724,"NSM"],[70726,70726,"NSM"],[70750,70750,"NSM"],[70835,70840,"NSM"],[70842,70842,"NSM"],[70847,70848,"NSM"],[70850,70851,"NSM"],[71090,71093,"NSM"],[71100,71101,"NSM"],[71103,71104,"NSM"],[71132,71133,"NSM"],[71219,71226,"NSM"],[71229,71229,"NSM"],[71231,71232,"NSM"],[71264,71276,"ON"],[71339,71339,"NSM"],[71341,71341,"NSM"],[71344,71349,"NSM"],[71351,71351,"NSM"],[71453,71453,"NSM"],[71455,71455,"NSM"],[71458,71461,"NSM"],[71463,71467,"NSM"],[71727,71735,"NSM"],[71737,71738,"NSM"],[71995,71996,"NSM"],[71998,71998,"NSM"],[72003,72003,"NSM"],[72148,72151,"NSM"],[72154,72155,"NSM"],[72160,72160,"NSM"],[72193,72198,"NSM"],[72201,72202,"NSM"],[72243,72248,"NSM"],[72251,72254,"NSM"],[72263,72263,"NSM"],[72273,72278,"NSM"],[72281,72283,"NSM"],[72330,72342,"NSM"],[72344,72345,"NSM"],[72544,72544,"NSM"],[72546,72548,"NSM"],[72550,72550,"NSM"],[72752,72758,"NSM"],[72760,72765,"NSM"],[72850,72871,"NSM"],[72874,72880,"NSM"],[72882,72883,"NSM"],[72885,72886,"NSM"],[73009,73014,"NSM"],[73018,73018,"NSM"],[73020,73021,"NSM"],[73023,73029,"NSM"],[73031,73031,"NSM"],[73104,73105,"NSM"],[73109,73109,"NSM"],[73111,73111,"NSM"],[73459,73460,"NSM"],[73472,73473,"NSM"],[73526,73530,"NSM"],[73536,73536,"NSM"],[73538,73538,"NSM"],[73562,73562,"NSM"],[73685,73692,"ON"],[73693,73696,"ET"],[73697,73713,"ON"],[78912,78912,"NSM"],[78919,78933,"NSM"],[90398,90409,"NSM"],[90413,90415,"NSM"],[92912,92916,"NSM"],[92976,92982,"NSM"],[94031,94031,"NSM"],[94095,94098,"NSM"],[94178,94178,"ON"],[94180,94180,"NSM"],[113821,113822,"NSM"],[113824,113827,"BN"],[117760,117973,"ON"],[118e3,118009,"EN"],[118010,118012,"ON"],[118016,118451,"ON"],[118458,118480,"ON"],[118496,118512,"ON"],[118528,118573,"NSM"],[118576,118598,"NSM"],[119143,119145,"NSM"],[119155,119162,"BN"],[119163,119170,"NSM"],[119173,119179,"NSM"],[119210,119213,"NSM"],[119273,119274,"ON"],[119296,119361,"ON"],[119362,119364,"NSM"],[119365,119365,"ON"],[119552,119638,"ON"],[120513,120513,"ON"],[120539,120539,"ON"],[120571,120571,"ON"],[120597,120597,"ON"],[120629,120629,"ON"],[120655,120655,"ON"],[120687,120687,"ON"],[120713,120713,"ON"],[120745,120745,"ON"],[120771,120771,"ON"],[120782,120831,"EN"],[121344,121398,"NSM"],[121403,121452,"NSM"],[121461,121461,"NSM"],[121476,121476,"NSM"],[121499,121503,"NSM"],[121505,121519,"NSM"],[122880,122886,"NSM"],[122888,122904,"NSM"],[122907,122913,"NSM"],[122915,122916,"NSM"],[122918,122922,"NSM"],[123023,123023,"NSM"],[123184,123190,"NSM"],[123566,123566,"NSM"],[123628,123631,"NSM"],[123647,123647,"ET"],[124140,124143,"NSM"],[124398,124399,"NSM"],[124643,124643,"NSM"],[124646,124646,"NSM"],[124654,124655,"NSM"],[124661,124661,"NSM"],[124928,125135,"R"],[125136,125142,"NSM"],[125143,125251,"R"],[125252,125258,"NSM"],[125259,126063,"R"],[126064,126143,"AL"],[126144,126207,"R"],[126208,126287,"AL"],[126288,126463,"R"],[126464,126703,"AL"],[126704,126705,"ON"],[126706,126719,"AL"],[126720,126975,"R"],[126976,127019,"ON"],[127024,127123,"ON"],[127136,127150,"ON"],[127153,127167,"ON"],[127169,127183,"ON"],[127185,127221,"ON"],[127232,127242,"EN"],[127243,127247,"ON"],[127279,127279,"ON"],[127338,127343,"ON"],[127405,127405,"ON"],[127584,127589,"ON"],[127744,128728,"ON"],[128732,128748,"ON"],[128752,128764,"ON"],[128768,128985,"ON"],[128992,129003,"ON"],[129008,129008,"ON"],[129024,129035,"ON"],[129040,129095,"ON"],[129104,129113,"ON"],[129120,129159,"ON"],[129168,129197,"ON"],[129200,129211,"ON"],[129216,129217,"ON"],[129232,129240,"ON"],[129280,129623,"ON"],[129632,129645,"ON"],[129648,129660,"ON"],[129664,129674,"ON"],[129678,129734,"ON"],[129736,129736,"ON"],[129741,129756,"ON"],[129759,129770,"ON"],[129775,129784,"ON"],[129792,129938,"ON"],[129940,130031,"ON"],[130032,130041,"EN"],[130042,130042,"ON"],[131070,131071,"BN"],[196606,196607,"BN"],[262142,262143,"BN"],[327678,327679,"BN"],[393214,393215,"BN"],[458750,458751,"BN"],[524286,524287,"BN"],[589822,589823,"BN"],[655358,655359,"BN"],[720894,720895,"BN"],[786430,786431,"BN"],[851966,851967,"BN"],[917502,917759,"BN"],[917760,917999,"NSM"],[918e3,921599,"BN"],[983038,983039,"BN"],[1048574,1048575,"BN"],[1114110,1114111,"BN"]];function rd(t){if(t<=255)return Vs[t];let e=0,n=ji.length-1;for(;e<=n;){let i=e+n>>1,r=ji[i];if(t<r[0]){n=i-1;continue}if(t>r[1]){e=i+1;continue}return r[2]}return"L"}function od(t){let e=t.length;if(e===0)return null;let n=new Array(e),i=!1;for(let l=0;l<e;){let u=t.charCodeAt(l),m=u,f=1;if(u>=55296&&u<=56319&&l+1<e){let A=t.charCodeAt(l+1);A>=56320&&A<=57343&&(m=(u-55296<<10)+(A-56320)+65536,f=2)}let g=rd(m);(g==="R"||g==="AL"||g==="AN")&&(i=!0);for(let A=0;A<f;A++)n[l+A]=g;l+=f}if(!i)return null;let r=0;for(let l=0;l<e;l++){let u=n[l];if(u==="L"){r=0;break}if(u==="R"||u==="AL"){r=1;break}}let o=new Int8Array(e);for(let l=0;l<e;l++)o[l]=r;let s=r&1?"R":"L",c=s,a=c;for(let l=0;l<e;l++)n[l]==="NSM"?n[l]=a:a=n[l];a=c;for(let l=0;l<e;l++){let u=n[l];u==="EN"?n[l]=a==="AL"?"AN":"EN":(u==="R"||u==="L"||u==="AL")&&(a=u)}for(let l=0;l<e;l++)n[l]==="AL"&&(n[l]="R");for(let l=1;l<e-1;l++)n[l]==="ES"&&n[l-1]==="EN"&&n[l+1]==="EN"&&(n[l]="EN"),n[l]==="CS"&&(n[l-1]==="EN"||n[l-1]==="AN")&&n[l+1]===n[l-1]&&(n[l]=n[l-1]);for(let l=0;l<e;l++){if(n[l]!=="EN")continue;let u;for(u=l-1;u>=0&&n[u]==="ET";u--)n[u]="EN";for(u=l+1;u<e&&n[u]==="ET";u++)n[u]="EN"}for(let l=0;l<e;l++){let u=n[l];(u==="WS"||u==="ES"||u==="ET"||u==="CS")&&(n[l]="ON")}a=c;for(let l=0;l<e;l++){let u=n[l];u==="EN"?n[l]=a==="L"?"L":"EN":(u==="R"||u==="L")&&(a=u)}for(let l=0;l<e;l++){if(n[l]!=="ON")continue;let u=l+1;for(;u<e&&n[u]==="ON";)u++;let m=l>0?n[l-1]:c,f=u<e?n[u]:c,g=m!=="L"?"R":"L";if(g===(f!=="L"?"R":"L"))for(let y=l;y<u;y++)n[y]=g;l=u-1}for(let l=0;l<e;l++)n[l]==="ON"&&(n[l]=s);for(let l=0;l<e;l++){let u=n[l];(o[l]&1)===0?u==="R"?o[l]++:(u==="AN"||u==="EN")&&(o[l]+=2):(u==="L"||u==="AN"||u==="EN")&&o[l]++}return o}function zs(t,e){let n=od(t);if(n===null)return null;let i=new Int8Array(e.length);for(let r=0;r<e.length;r++)i[r]=n[e[r]];return i}var sd=/[ \\t\\n\\r\\f]+/g,ad=/[\\t\\n\\r\\f]| {2,}|^ | $/;function ld(t){let e=t??"normal";return e==="pre-wrap"?{mode:e,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:e,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function ud(t){if(!ad.test(t))return t;let e=t.replace(sd," ");return e.charCodeAt(0)===32&&(e=e.slice(1)),e.length>0&&e.charCodeAt(e.length-1)===32&&(e=e.slice(0,-1)),e}function cd(t){return/[\\r\\f]/.test(t)?t.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):t.replace(/\\r\\n/g,`\n`)}var qi=null,dd;function fd(){return qi===null&&(qi=new Intl.Segmenter(dd,{granularity:"word"})),qi}var md=/\\p{Script=Arabic}/u,Tn=/\\p{M}/u,Qs=/\\p{Nd}/u;function js(t){return md.test(t)}function qs(t){return t>=19968&&t<=40959||t>=13312&&t<=19903||t>=131072&&t<=173791||t>=173824&&t<=177983||t>=177984&&t<=178207||t>=178208&&t<=183983||t>=183984&&t<=191471||t>=191472&&t<=192093||t>=194560&&t<=195103||t>=196608&&t<=201551||t>=201552&&t<=205743||t>=205744&&t<=210041||t>=63744&&t<=64255||t>=12288&&t<=12351||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=65280&&t<=65519}function De(t){for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);if(!(n<12288)){if(n>=55296&&n<=56319&&e+1<t.length){let i=t.charCodeAt(e+1);if(i>=56320&&i<=57343){let r=(n-55296<<10)+(i-56320)+65536;if(qs(r))return!0;e++;continue}}if(qs(n))return!0}}return!1}function pd(t){let e=kn(t);return e!==null&&(vn.has(e)||Xe.has(e))}var hd=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function xd(t){return De(t)}function gd(t){let e=kn(t);return e!==null&&hd.has(e)}function Ln(t){return!pd(t)&&!gd(t)}var vn=new Set(["\\uFF0C","\\uFF0E","\\uFF01","\\uFF1A","\\uFF1B","\\uFF1F","\\u3001","\\u3002","\\u30FB","\\uFF09","\\u3015","\\u3009","\\u300B","\\u300D","\\u300F","\\u3011","\\u3017","\\u3019","\\u301B","\\u30FC","\\u3005","\\u303B","\\u309D","\\u309E","\\u30FD","\\u30FE"]),nn=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),Ki=new Set(["\'","\\u2019"]),Xe=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),yd=new Set([":",".","\\u060C","\\u061B"]),bd=new Set(["\\u104F"]),Sd=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function Ad(t){if(Ji(t))return!0;let e=!1;for(let n of t){if(Xe.has(n)){e=!0;continue}if(!(e&&Tn.test(n)))return!1}return e}function Ed(t){for(let e of t)if(!vn.has(e)&&!Xe.has(e))return!1;return t.length>0}function wd(t){if(Ji(t))return!0;for(let e of t)if(!nn.has(e)&&!Ki.has(e)&&!Tn.test(e))return!1;return t.length>0}function Ji(t){let e=!1;for(let n of t)if(!(n==="\\\\"||Tn.test(n))){if(nn.has(n)||Xe.has(n)||Ki.has(n)){e=!0;continue}return!1}return e}function Zs(t,e){let n=e-1;if(n<=0)return Math.max(n,0);let i=t.charCodeAt(n);if(i<56320||i>57343)return n;let r=n-1;if(r<0)return n;let o=t.charCodeAt(r);return o>=55296&&o<=56319?r:n}function kn(t){if(t.length===0)return null;let e=Zs(t,t.length);return t.slice(e)}function Cd(t){let e=Array.from(t),n=e.length;for(;n>0;){let i=e[n-1];if(Tn.test(i)){n--;continue}if(nn.has(i)||Ki.has(i)){n--;continue}break}return n<=0||n===e.length?null:{head:e.slice(0,n).join(""),tail:e.slice(n).join("")}}function Fd(t,e,n){return n==="text"&&!e&&t.length===1&&t!=="-"&&t!=="\\u2014"?t:null}function $s(t,e,n,i){let r=e[i],o=t[i];if(r==null)return o;let s=n[i];if(o.length===s)return o;let c=r.repeat(s);return t[i]=c,c}function Ks(t,e){return t&&e!==null&&yd.has(e)}function Md(t){let e=kn(t);return e!==null&&bd.has(e)}function Nd(t){if(t.length<2||t[0]!==" ")return null;let e=t.slice(1);return/^\\p{M}+$/u.test(e)?{space:" ",marks:e}:null}function Rn(t){let e=t.length;for(;e>0;){let n=Zs(t,e),i=t.slice(n,e);if(Sd.has(i))return!0;if(!Xe.has(i))return!1;e=n}return!1}function _d(t,e){if(e.preserveOrdinarySpaces||e.preserveHardBreaks){if(t===" ")return"preserved-space";if(t===" ")return"tab";if(e.preserveHardBreaks&&t===`\n`)return"hard-break"}return t===" "?"space":t==="\\xA0"||t==="\\u202F"||t==="\\u2060"||t==="\\uFEFF"?"glue":t==="\\u200B"?"zero-width-break":t==="\\xAD"?"soft-hyphen":"text"}var Td=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function Te(t){return t.length===1?t[0]:t.join("")}function Ld(t,e){let n=[];for(let i=t.length-1;i>=0;i--)n.push(t[i]);return n.push(e),Te(n)}function vd(t,e,n,i){if(!Td.test(t))return[{text:t,isWordLike:e,kind:"text",start:n}];let r=[],o=null,s=[],c=n,a=!1,l=0;for(let u of t){let m=_d(u,i),f=m==="text"&&e;if(o!==null&&m===o&&f===a){s.push(u),l+=u.length;continue}o!==null&&r.push({text:Te(s),isWordLike:a,kind:o,start:c}),o=m,s=[u],c=n+l,a=f,l+=u.length}return o!==null&&r.push({text:Te(s),isWordLike:a,kind:o,start:c}),r}function $i(t){return t==="space"||t==="preserved-space"||t==="zero-width-break"||t==="hard-break"}var kd=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function Rd(t,e){let n=t.texts[e];return n.startsWith("www.")?!0:kd.test(n)&&e+1<t.len&&t.kinds[e+1]==="text"&&t.texts[e+1]==="//"}function Dd(t){return t.includes("?")&&(t.includes("://")||t.startsWith("www."))}function Id(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let s=0;s<t.len;s++){if(i[s]!=="text"||!Rd(t,s))continue;let c=[e[s]],a=s+1;for(;a<t.len&&!$i(i[a]);){c.push(e[a]),n[s]=!0;let l=e[a].includes("?");if(i[a]="text",e[a]="",a++,l)break}e[s]=Te(c)}let o=0;for(let s=0;s<e.length;s++){let c=e[s];c.length!==0&&(o!==s&&(e[o]=c,n[o]=n[s],i[o]=i[s],r[o]=r[s]),o++)}return e.length=o,n.length=o,i.length=o,r.length=o,{len:o,texts:e,isWordLike:n,kinds:i,starts:r}}function Pd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o]),!Dd(s))continue;let c=o+1;if(c>=t.len||$i(t.kinds[c]))continue;let a=[],l=t.starts[c],u=c;for(;u<t.len&&!$i(t.kinds[u]);)a.push(t.texts[u]),u++;a.length>0&&(e.push(Te(a)),n.push(!0),i.push("text"),r.push(l),o=u-1)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}var Od=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Js=/^[A-Za-z0-9_]+[,:;]*$/,Ys=/[,:;]+$/;function ea(t){for(let e of t)if(Qs.test(e))return!0;return!1}function tn(t){if(t.length===0)return!1;for(let e of t)if(!(Qs.test(e)||Od.has(e)))return!1;return!0}function Bd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],c=t.kinds[o];if(c==="text"&&tn(s)&&ea(s)){let a=[s],l=o+1;for(;l<t.len&&t.kinds[l]==="text"&&tn(t.texts[l]);)a.push(t.texts[l]),l++;e.push(Te(a)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=l-1;continue}e.push(s),n.push(t.isWordLike[o]),i.push(c),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Hd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],c=t.kinds[o],a=t.isWordLike[o];if(c==="text"&&a&&Js.test(s)){let l=[s],u=Ys.test(s),m=o+1;for(;u&&m<t.len&&t.kinds[m]==="text"&&t.isWordLike[m]&&Js.test(t.texts[m]);){let f=t.texts[m];l.push(f),u=Ys.test(f),m++}e.push(Te(l)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=m-1;continue}e.push(s),n.push(a),i.push(c),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Wd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(t.kinds[o]==="text"&&s.includes("-")){let c=s.split("-"),a=c.length>1;for(let l=0;l<c.length;l++){let u=c[l];if(!a)break;(u.length===0||!ea(u)||!tn(u))&&(a=!1)}if(a){let l=0;for(let u=0;u<c.length;u++){let m=c[u],f=u<c.length-1?`${m}-`:m;e.push(f),n.push(!0),i.push("text"),r.push(t.starts[o]+l),l+=f.length}continue}}e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Gd(t){let e=[],n=[],i=[],r=[],o=0;for(;o<t.len;){let s=[t.texts[o]],c=t.isWordLike[o],a=t.kinds[o],l=t.starts[o];if(a==="glue"){let u=[s[0]],m=l;for(o++;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let f=Te(u);if(o<t.len&&t.kinds[o]==="text")s[0]=f,s.push(t.texts[o]),c=t.isWordLike[o],a="text",l=m,o++;else{e.push(f),n.push(!1),i.push("glue"),r.push(m);continue}}else o++;if(a==="text")for(;o<t.len&&t.kinds[o]==="glue";){let u=[];for(;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let m=Te(u);if(o<t.len&&t.kinds[o]==="text"){s.push(m,t.texts[o]),c=c||t.isWordLike[o],o++;continue}s.push(m)}e.push(Te(s)),n.push(c),i.push(a),r.push(l)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Ud(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let o=0;o<e.length-1;o++){if(i[o]!=="text"||i[o+1]!=="text"||!De(e[o])||!De(e[o+1]))continue;let s=Cd(e[o]);s!==null&&(e[o]=s.head,e[o+1]=s.tail+e[o+1],r[o+1]=r[o]+s.head.length)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Xs(t,e,n){let i=fd(),r=0,o=[],s=[],c=[],a=[],l=[],u=[],m=[],f=[],g=[],A=[],y=[],x=[];for(let _ of i.segment(t))for(let S of vd(_.segment,_.isWordLike??!1,_.index,n)){let se=function(){u[P]!==null&&(s[P]=[$s(o,u,m,P)],u[P]=null),s[P].push(S.text),c[P]=c[P]||S.isWordLike,f[P]=f[P]||T,g[P]=g[P]||k,A[P]=j,y[P]=ie,x[P]=Ks(g[P],G)},C=S.kind==="text",F=Fd(S.text,S.isWordLike,S.kind),T=De(S.text),k=js(S.text),G=kn(S.text),j=Rn(S.text),ie=Md(S.text),P=r-1;e.carryCJKAfterClosingQuote&&C&&r>0&&a[P]==="text"&&T&&f[P]&&A[P]||C&&r>0&&a[P]==="text"&&Ed(S.text)&&f[P]||C&&r>0&&a[P]==="text"&&y[P]?se():C&&r>0&&a[P]==="text"&&S.isWordLike&&k&&x[P]?(se(),c[P]=!0):F!==null&&r>0&&a[P]==="text"&&u[P]===F?m[P]=(m[P]??1)+1:C&&!S.isWordLike&&r>0&&a[P]==="text"&&(Ad(S.text)||S.text==="-"&&c[P])?se():(o[r]=S.text,s[r]=[S.text],c[r]=S.isWordLike,a[r]=S.kind,l[r]=S.start,u[r]=F,m[r]=F===null?0:1,f[r]=T,g[r]=k,A[r]=j,y[r]=ie,x[r]=Ks(k,G),r++)}for(let _=0;_<r;_++){if(u[_]!==null){o[_]=$s(o,u,m,_);continue}o[_]=Te(s[_])}for(let _=1;_<r;_++)a[_]==="text"&&!c[_]&&Ji(o[_])&&a[_-1]==="text"&&(o[_-1]+=o[_],c[_-1]=c[_-1]||c[_],o[_]="");let w=Array.from({length:r},()=>null),N=-1;for(let _=r-1;_>=0;_--){let S=o[_];if(S.length!==0){if(a[_]==="text"&&!c[_]&&wd(S)&&N>=0&&a[N]==="text"){let C=w[N]??[];C.push(S),w[N]=C,l[N]=l[_],o[_]="";continue}N=_}}for(let _=0;_<r;_++){let S=w[_];S!=null&&(o[_]=Ld(S,o[_]))}let L=0;for(let _=0;_<r;_++){let S=o[_];S.length!==0&&(L!==_&&(o[L]=S,c[L]=c[_],a[L]=a[_],l[L]=l[_]),L++)}o.length=L,c.length=L,a.length=L,l.length=L;let $=Gd({len:L,texts:o,isWordLike:c,kinds:a,starts:l}),B=Ud(Hd(Wd(Bd(Pd(Id($))))));for(let _=0;_<B.len-1;_++){let S=Nd(B.texts[_]);S!==null&&(B.kinds[_]!=="space"&&B.kinds[_]!=="preserved-space"||B.kinds[_+1]!=="text"||!js(B.texts[_+1])||(B.texts[_]=S.space,B.isWordLike[_]=!1,B.kinds[_]=B.kinds[_]==="preserved-space"?"preserved-space":"space",B.texts[_+1]=S.marks+B.texts[_+1],B.starts[_+1]=B.starts[_]+S.space.length))}return B}function Vd(t,e){if(t.len===0)return[];if(!e.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}];let n=[],i=0;for(let r=0;r<t.len;r++)t.kinds[r]==="hard-break"&&(n.push({startSegmentIndex:i,endSegmentIndex:r,consumedEndSegmentIndex:r+1}),i=r+1);return i<t.len&&n.push({startSegmentIndex:i,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}),n}function zd(t){if(t.len<=1)return t;let e=[],n=[],i=[],r=[],o=null,s=!1,c=0,a=!1,l=!1;function u(){o!==null&&(e.push(Te(o)),n.push(s),i.push("text"),r.push(c),o=null)}for(let m=0;m<t.len;m++){let f=t.texts[m],g=t.kinds[m],A=t.isWordLike[m],y=t.starts[m];if(g==="text"){let x=xd(f),w=Ln(f);if(o!==null&&a&&l){o.push(f),s=s||A,a=a||x,l=w;continue}u(),o=[f],s=A,c=y,a=x,l=w;continue}u(),e.push(f),n.push(A),i.push(g),r.push(y)}return u(),{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function ta(t,e,n="normal",i="normal"){let r=ld(n),o=r.mode==="pre-wrap"?cd(t):ud(t);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let s=i==="keep-all"?zd(Xs(o,e,r)):Xs(o,e,r);return{normalized:o,chunks:Vd(s,r),...s}}var xt=null,na=new Map,gt=null,jd=96,qd=/\\p{Emoji_Presentation}/u,$d=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,Yi=null,ia=new Map;function Xi(){if(xt!==null)return xt;if(typeof OffscreenCanvas<"u")return xt=new OffscreenCanvas(1,1).getContext("2d"),xt;if(typeof document<"u")return xt=document.createElement("canvas").getContext("2d"),xt;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function Kd(t){let e=na.get(t);return e||(e=new Map,na.set(t,e)),e}function Ve(t,e){let n=e.get(t);return n===void 0&&(n={width:Xi().measureText(t).width,containsCJK:De(t)},e.set(t,n)),n}function yt(){if(gt!==null)return gt;if(typeof navigator>"u")return gt={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},gt;let t=navigator.userAgent,n=navigator.vendor==="Apple Computer, Inc."&&t.includes("Safari/")&&!t.includes("Chrome/")&&!t.includes("Chromium/")&&!t.includes("CriOS/")&&!t.includes("FxiOS/")&&!t.includes("EdgiOS/"),i=t.includes("Chrome/")||t.includes("Chromium/")||t.includes("CriOS/")||t.includes("Edg/");return gt={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:i,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},gt}function Jd(t){let e=t.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return e?parseFloat(e[1]):16}function ra(){return Yi===null&&(Yi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Yi}function Yd(t){return qd.test(t)||t.includes("\\uFE0F")}function oa(t){return $d.test(t)}function Xd(t,e){let n=ia.get(t);if(n!==void 0)return n;let i=Xi();i.font=t;let r=i.measureText("\\u{1F600}").width;if(n=0,r>e+.5&&typeof document<"u"&&document.body!==null){let o=document.createElement("span");o.style.font=t,o.style.display="inline-block",o.style.visibility="hidden",o.style.position="absolute",o.textContent="\\u{1F600}",document.body.appendChild(o);let s=o.getBoundingClientRect().width;document.body.removeChild(o),r-s>.5&&(n=r-s)}return ia.set(t,n),n}function Qd(t){let e=0,n=ra();for(let i of n.segment(t))Yd(i.segment)&&e++;return e}function Zd(t,e){return e.emojiCount===void 0&&(e.emojiCount=Qd(t)),e.emojiCount}function Qe(t,e,n){return n===0?e.width:e.width-Zd(t,e)*n}function sa(t,e,n,i,r){if(e.breakableFitAdvances!==void 0)return e.breakableFitAdvances;let o=ra(),s=[];for(let u of o.segment(t))s.push(u.segment);if(s.length<=1)return e.breakableFitAdvances=null,e.breakableFitAdvances;if(r==="sum-graphemes"){let u=[];for(let m of s){let f=Ve(m,n);u.push(Qe(m,f,i))}return e.breakableFitAdvances=u,e.breakableFitAdvances}if(r==="pair-context"||s.length>jd){let u=[],m=null,f=0;for(let g of s){let A=Ve(g,n),y=Qe(g,A,i);if(m===null)u.push(y);else{let x=m+g,w=Ve(x,n);u.push(Qe(x,w,i)-f)}m=g,f=y}return e.breakableFitAdvances=u,e.breakableFitAdvances}let c=[],a="",l=0;for(let u of s){a+=u;let m=Ve(a,n),f=Qe(a,m,i);c.push(f-l),l=f}return e.breakableFitAdvances=c,e.breakableFitAdvances}function aa(t,e){let n=Xi();n.font=t;let i=Kd(t),r=Jd(t),o=e?Xd(t,r):0;return{cache:i,fontSize:r,emojiCorrection:o}}function ef(t,e){for(;e<t.widths.length;){let n=t.kinds[e];if(n!=="space"&&n!=="zero-width-break"&&n!=="soft-hyphen")break;e++}return e}function tf(t,e){if(e<=0)return 0;let n=t%e;return Math.abs(n)<=1e-6?e:e-n}function nf(t,e,n,i,r){let o=0,s=e;for(;o<t.length;){let c=s+t[o];if((o+1<t.length?c+r:c)>n+i)break;s=c,o++}return{fitCount:o,fittedWidth:s}}function la(t,e){return t.simpleLineWalkFastPath?ua(t,e):ca(t,e)}function ua(t,e,n){let{widths:i,kinds:r,breakableFitAdvances:o}=t;if(i.length===0)return 0;let c=yt().lineFitEpsilon,a=e+c,l=0,u=0,m=!1,f=0,g=0,A=0,y=0,x=-1,w=0;function N(){x=-1,w=0}function L(F=A,T=y,k=u){l++,n?.({startSegmentIndex:f,startGraphemeIndex:g,endSegmentIndex:F,endGraphemeIndex:T,width:k}),u=0,m=!1,N()}function $(F,T){m=!0,f=F,g=0,A=F+1,y=0,u=T}function B(F,T,k){m=!0,f=F,g=T,A=F,y=T+1,u=k}function _(F,T){if(!m){$(F,T);return}u+=T,A=F+1,y=0}function S(F,T){let k=o[F];for(let G=T;G<k.length;G++){let j=k[G];m?u+j>a?(L(),B(F,G,j)):(u+=j,A=F,y=G+1):B(F,G,j)}m&&A===F&&y===k.length&&(A=F+1,y=0)}let C=0;for(;C<i.length&&!(!m&&(C=ef(t,C),C>=i.length));){let F=i[C],T=r[C],k=T==="space"||T==="preserved-space"||T==="tab"||T==="zero-width-break"||T==="soft-hyphen";if(!m){F>e&&o[C]!==null?S(C,0):$(C,F),k&&(x=C+1,w=u-F),C++;continue}if(u+F>a){if(k){_(C,F),L(C+1,0,u-F),C++;continue}if(x>=0){if(A>x||A===x&&y>0){L();continue}L(x,0,w);continue}if(F>e&&o[C]!==null){L(),S(C,0),C++;continue}L();continue}_(C,F),k&&(x=C+1,w=u-F),C++}return m&&L(),l}function ca(t,e,n){if(t.simpleLineWalkFastPath)return ua(t,e,n);let{widths:i,lineEndFitAdvances:r,lineEndPaintAdvances:o,kinds:s,breakableFitAdvances:c,discretionaryHyphenWidth:a,tabStopAdvance:l,chunks:u}=t;if(i.length===0||u.length===0)return 0;let m=yt(),f=m.lineFitEpsilon,g=e+f,A=0,y=0,x=!1,w=0,N=0,L=0,$=0,B=-1,_=0,S=0,C=null;function F(){B=-1,_=0,S=0,C=null}function T(H=L,U=$,V=y){A++,n?.({startSegmentIndex:w,startGraphemeIndex:N,endSegmentIndex:H,endGraphemeIndex:U,width:V}),y=0,x=!1,F()}function k(H,U){x=!0,w=H,N=0,L=H+1,$=0,y=U}function G(H,U,V){x=!0,w=H,N=U,L=H,$=U+1,y=V}function j(H,U){if(!x){k(H,U);return}y+=U,L=H+1,$=0}function ie(H,U,V,re){if(!U)return;let Fe=H==="tab"?0:r[V],O=H==="tab"?re:o[V];B=V+1,_=y-re+Fe,S=y-re+O,C=H}function P(H,U){let V=c[H];for(let re=U;re<V.length;re++){let Fe=V[re];x?y+Fe>g?(T(),G(H,re,Fe)):(y+=Fe,L=H,$=re+1):G(H,re,Fe)}x&&L===H&&$===V.length&&(L=H+1,$=0)}function se(H){if(C!=="soft-hyphen")return!1;let U=c[H];if(U==null)return!1;let{fitCount:V,fittedWidth:re}=nf(U,y,e,f,a);return V===0?!1:(y=re,L=H,$=V,F(),V===U.length?(L=H+1,$=0,!0):(T(H,V,re+a),P(H,V),!0))}function Se(H){A++,n?.({startSegmentIndex:H.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:H.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),F()}for(let H=0;H<u.length;H++){let U=u[H];if(U.startSegmentIndex===U.endSegmentIndex){Se(U);continue}x=!1,y=0,w=U.startSegmentIndex,N=0,L=U.startSegmentIndex,$=0,F();let V=U.startSegmentIndex;for(;V<U.endSegmentIndex;){let re=s[V],Fe=re==="space"||re==="preserved-space"||re==="tab"||re==="zero-width-break"||re==="soft-hyphen",O=re==="tab"?tf(y,l):i[V];if(re==="soft-hyphen"){x&&(L=V+1,$=0,B=V+1,_=y+a,S=y+a,C=re),V++;continue}if(!x){O>e&&c[V]!==null?P(V,0):k(V,O),ie(re,Fe,V,O),V++;continue}if(y+O>g){let W=y+(re==="tab"?0:r[V]),Q=y+(re==="tab"?O:o[V]);if(C==="soft-hyphen"&&m.preferEarlySoftHyphenBreak&&_<=g){T(B,0,S);continue}if(C==="soft-hyphen"&&se(V)){V++;continue}if(Fe&&W<=g){j(V,O),T(V+1,0,Q),V++;continue}if(B>=0&&_<=g){if(L>B||L===B&&$>0){T();continue}let ae=B;T(ae,0,S),V=ae;continue}if(O>e&&c[V]!==null){T(),P(V,0),V++;continue}T();continue}j(V,O),ie(re,Fe,V,O),V++}if(x){let re=B===U.consumedEndSegmentIndex?S:y;T(U.consumedEndSegmentIndex,0,re)}}return A}var Qi=null;function rf(){return Qi===null&&(Qi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Qi}function of(t){return t?{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[],segments:[]}:{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[]}}function sf(t,e){let n=[],i=[],r=0,o=!1,s=!1,c=!1;function a(){i.length!==0&&(n.push({text:i.length===1?i[0]:i.join(""),start:r}),i=[],o=!1,s=!1,c=!1)}function l(m,f,g){i=[m],r=f,o=g,s=Rn(m),c=nn.has(m)}function u(m,f){i.push(m),o=o||f;let g=Rn(m);m.length===1&&Xe.has(m)?s=s||g:s=g,c=!1}for(let m of rf().segment(t)){let f=m.segment,g=De(f);if(i.length===0){l(f,m.index,g);continue}if(c||vn.has(f)||Xe.has(f)||e.carryCJKAfterClosingQuote&&g&&s){u(f,g);continue}if(!o&&!g){u(f,g);continue}a(),l(f,m.index,g)}return a(),n}function af(t){if(t.length<=1)return t;let e=[],n=[t[0].text],i=t[0].start,r=De(t[0].text),o=Ln(t[0].text);function s(){e.push({text:n.length===1?n[0]:n.join(""),start:i})}for(let c=1;c<t.length;c++){let a=t[c],l=De(a.text),u=Ln(a.text);if(r&&o){n.push(a.text),r=r||l,o=u;continue}s(),n=[a.text],i=a.start,r=l,o=u}return s(),e}function lf(t,e,n,i){let r=yt(),{cache:o,emojiCorrection:s}=aa(e,oa(t.normalized)),c=Qe("-",Ve("-",o),s),l=Qe(" ",Ve(" ",o),s)*8;if(t.len===0)return of(n);let u=[],m=[],f=[],g=[],A=t.chunks.length<=1,y=n?[]:null,x=[],w=n?[]:null,N=Array.from({length:t.len});function L(S,C,F,T,k,G,j){k!=="text"&&k!=="space"&&k!=="zero-width-break"&&(A=!1),u.push(C),m.push(F),f.push(T),g.push(k),y?.push(G),x.push(j),w!==null&&w.push(S)}function $(S,C,F,T,k){let G=Ve(S,o),j=Qe(S,G,s),ie=C==="space"||C==="preserved-space"||C==="zero-width-break"?0:j,P=C==="space"||C==="zero-width-break"?0:j;if(k&&T&&S.length>1){let se="sum-graphemes";tn(S)?se="pair-context":r.preferPrefixWidthsForBreakableRuns&&(se="segment-prefixes");let Se=sa(S,G,o,s,se);L(S,j,ie,P,C,F,Se);return}L(S,j,ie,P,C,F,null)}for(let S=0;S<t.len;S++){N[S]=u.length;let C=t.texts[S],F=t.isWordLike[S],T=t.kinds[S],k=t.starts[S];if(T==="soft-hyphen"){L(C,0,c,c,T,k,null);continue}if(T==="hard-break"){L(C,0,0,0,T,k,null);continue}if(T==="tab"){L(C,0,0,0,T,k,null);continue}let G=Ve(C,o);if(T==="text"&&G.containsCJK){let j=sf(C,r),ie=i==="keep-all"?af(j):j;for(let P=0;P<ie.length;P++){let se=ie[P];$(se.text,"text",k+se.start,F,i==="keep-all"||!De(se.text))}continue}$(C,T,k,F,!0)}let B=uf(t.chunks,N,u.length),_=y===null?null:zs(t.normalized,y);return w!==null?{widths:u,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:g,simpleLineWalkFastPath:A,segLevels:_,breakableFitAdvances:x,discretionaryHyphenWidth:c,tabStopAdvance:l,chunks:B,segments:w}:{widths:u,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:g,simpleLineWalkFastPath:A,segLevels:_,breakableFitAdvances:x,discretionaryHyphenWidth:c,tabStopAdvance:l,chunks:B}}function uf(t,e,n){let i=[];for(let r=0;r<t.length;r++){let o=t[r],s=o.startSegmentIndex<e.length?e[o.startSegmentIndex]:n,c=o.endSegmentIndex<e.length?e[o.endSegmentIndex]:n,a=o.consumedEndSegmentIndex<e.length?e[o.consumedEndSegmentIndex]:n;i.push({startSegmentIndex:s,endSegmentIndex:c,consumedEndSegmentIndex:a})}return i}function cf(t,e,n,i){let r=i?.wordBreak??"normal",o=ta(t,yt(),i?.whiteSpace,r);return lf(o,e,n,r)}function da(t,e,n){return cf(t,e,!1,n)}function fa(t,e,n){let i=la(t,e);return{lineCount:i,height:i*n}}var df={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function ma(t,e){let n={...df,...e},i=1.2;for(let r=n.baseFontSize;r>=n.minFontSize;r-=n.step){let o=`${n.fontWeight} ${r}px ${n.fontFamily}`,s=da(t,o),{lineCount:c}=fa(s,n.maxWidth,r*i);if(c<=1)return{fontSize:r,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}window.__timelines=window.__timelines||{};window.__hyperframes={fitTextFontSize:ma,getVariables:hs};function pa(){let t=window;t.__hyperframeRuntimeBootstrapped||(t.__hyperframeRuntimeBootstrapped=!0,Us())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",pa,{once:!0}):pa();})();\n';
|
|
55971
55971
|
}
|
|
55972
55972
|
});
|
|
55973
55973
|
|
|
@@ -60925,7 +60925,7 @@ function formatHttpErrorDiagnostic(input2) {
|
|
|
60925
60925
|
return `[Browser:HTTP${input2.status}] ${input2.method} ${sanitizeDiagnosticUrl(input2.url)} resource=${input2.resourceType}${statusText}`;
|
|
60926
60926
|
}
|
|
60927
60927
|
async function driveWarmupTicks(options, state) {
|
|
60928
|
-
const
|
|
60928
|
+
const sleep5 = options.sleep ?? realSleep;
|
|
60929
60929
|
while (true) {
|
|
60930
60930
|
if (options.lockWarmupTicks) {
|
|
60931
60931
|
if (state.ticks >= LOCKED_WARMUP_TICKS) return;
|
|
@@ -60937,7 +60937,7 @@ async function driveWarmupTicks(options, state) {
|
|
|
60937
60937
|
state.ticks += 1;
|
|
60938
60938
|
} catch {
|
|
60939
60939
|
}
|
|
60940
|
-
await
|
|
60940
|
+
await sleep5(options.intervalMs);
|
|
60941
60941
|
}
|
|
60942
60942
|
}
|
|
60943
60943
|
function resolveCaptureSessionOptions(options, browserVersion, platform10 = process.platform) {
|
|
@@ -62729,7 +62729,7 @@ import { join as join6, dirname as dirname4, extname as extname2 } from "path";
|
|
|
62729
62729
|
function appendEncodeTimeoutMessage(error, timedOut, timeoutMs) {
|
|
62730
62730
|
if (!timedOut) return error;
|
|
62731
62731
|
return `${error}
|
|
62732
|
-
FFmpeg killed after exceeding ffmpegEncodeTimeout (${timeoutMs} ms)
|
|
62732
|
+
FFmpeg killed after exceeding ffmpegEncodeTimeout (${timeoutMs} ms). Long or high-frame-count renders may need more time: set FFMPEG_ENCODE_TIMEOUT_MS to a higher value (ms), or set PRODUCER_ENABLE_CHUNKED_ENCODE=true to encode in smaller chunks instead of one long-running ffmpeg process.`;
|
|
62733
62733
|
}
|
|
62734
62734
|
function isAacSidecar(audioPath) {
|
|
62735
62735
|
return extname2(audioPath).toLowerCase() === ".aac";
|
|
@@ -66304,8 +66304,15 @@ function findRootTag(source) {
|
|
|
66304
66304
|
const bodyEnd = bodyOpenMatch && bodyCloseMatch && bodyCloseMatch.index > bodyStart ? bodyCloseMatch.index : source.length;
|
|
66305
66305
|
const bodyContent = bodyOpenMatch ? source.slice(bodyStart, bodyEnd) : source;
|
|
66306
66306
|
const bodyTags = extractOpenTags(bodyContent);
|
|
66307
|
+
let skipBefore = -1;
|
|
66307
66308
|
for (const tag of bodyTags) {
|
|
66309
|
+
if (tag.index < skipBefore) continue;
|
|
66308
66310
|
if (["script", "style", "meta", "link", "title"].includes(tag.name)) continue;
|
|
66311
|
+
if (tag.name === "svg" && !readAttr(tag.raw, "data-composition-id") && !readAttr(tag.raw, "data-width") && !readAttr(tag.raw, "data-height")) {
|
|
66312
|
+
const closeMatch = /<\/svg\s*>/i.exec(bodyContent.slice(tag.index));
|
|
66313
|
+
skipBefore = closeMatch ? tag.index + closeMatch.index + closeMatch[0].length : Infinity;
|
|
66314
|
+
continue;
|
|
66315
|
+
}
|
|
66309
66316
|
return { ...tag, index: tag.index + bodyStart };
|
|
66310
66317
|
}
|
|
66311
66318
|
return null;
|
|
@@ -67974,7 +67981,7 @@ var init_dist4 = __esm({
|
|
|
67974
67981
|
TIMELINE_REGISTRY_INIT_PATTERN = /window\.__timelines\s*=\s*window\.__timelines\s*\|\|\s*\{\}|window\.__timelines\s*=\s*\{\}|window\.__timelines\s*\?\?=\s*\{\}/i;
|
|
67975
67982
|
TIMELINE_REGISTRY_OBJECT_LITERAL_PATTERN = /window\.__timelines\s*=\s*\{\s*(?:["'][^"']+["']|[A-Za-z_$][\w$]*)\s*:/i;
|
|
67976
67983
|
TIMELINE_REGISTRY_ASSIGN_PATTERN = /window\.__timelines(?:\[[^\]]+\]|\.[A-Za-z_$][\w$]*)\s*=/i;
|
|
67977
|
-
WINDOW_TIMELINE_ASSIGN_PATTERN = /window\.__timelines(?:\[\s*["']([^"']+)["']\s*\]|\.\s*([A-Za-z_$][\w$]*))\s*=\s*([A-Za-z_$][\w$]*)/i;
|
|
67984
|
+
WINDOW_TIMELINE_ASSIGN_PATTERN = /window\.__timelines(?:\[\s*(?:["']([^"']+)["']|[A-Za-z_$][\w$.]*)\s*\]|\.\s*([A-Za-z_$][\w$]*))\s*=\s*([A-Za-z_$][\w$]*)/i;
|
|
67978
67985
|
INVALID_SCRIPT_CLOSE_PATTERN = /<script[^>]*>[\s\S]*?<\s*\/\s*script(?!>)/i;
|
|
67979
67986
|
TIMELINE_REGISTRY_KEY_PATTERN = /window\.__timelines(?:\[\s*["']([^"']+)["']\s*\]|\.\s*([A-Za-z_$][\w$]*))\s*=/g;
|
|
67980
67987
|
TIMELINE_REGISTRY_OBJECT_BODY_PATTERN = /window\.__timelines\s*=\s*\{([\s\S]*?)\}/i;
|
|
@@ -68708,12 +68715,14 @@ ${right.raw}`)
|
|
|
68708
68715
|
(candidate) => isHardKillSet(candidate, win.targetSelector, boundary)
|
|
68709
68716
|
);
|
|
68710
68717
|
if (hasHardKill) continue;
|
|
68718
|
+
const exitClipInfo = clipIds.get(win.targetSelector) || clipClasses.get(win.targetSelector);
|
|
68719
|
+
const fixHint = exitClipInfo ? `"${win.targetSelector}" is a clip element \u2014 the framework already manages its visibility. Wrap the scene's content in an inner non-clip <div>, move the exit tween and the hard kill (\`tl.set("<inner-selector>", ${hiddenStateLiteral(win.propertyValues)}, ${boundary.toFixed(2)})\`) onto that wrapper instead.` : `Add \`tl.set("${win.targetSelector}", ${hiddenStateLiteral(win.propertyValues)}, ${boundary.toFixed(2)})\` after the exit tween.`;
|
|
68711
68720
|
findings.push({
|
|
68712
68721
|
code: "gsap_exit_missing_hard_kill",
|
|
68713
68722
|
severity: "error",
|
|
68714
68723
|
message: `GSAP exit on "${win.targetSelector}" ends at the ${boundary.toFixed(2)}s clip start boundary without a matching tl.set hard kill. Non-linear seeking can land after the fade and leave stale visibility state.`,
|
|
68715
68724
|
selector: win.targetSelector,
|
|
68716
|
-
fixHint
|
|
68725
|
+
fixHint,
|
|
68717
68726
|
snippet: truncateSnippet(win.raw)
|
|
68718
68727
|
});
|
|
68719
68728
|
}
|
|
@@ -68983,12 +68992,15 @@ ${right.raw}`)
|
|
|
68983
68992
|
const killPattern = new RegExp(`["']#${id}["'][^)]*visibility\\s*:\\s*["']hidden["']`);
|
|
68984
68993
|
const hasKill = killPattern.test(content);
|
|
68985
68994
|
if (!hasKill) {
|
|
68995
|
+
const classes = (readAttr(tag.raw, "class") || "").split(/\s+/).filter(Boolean);
|
|
68996
|
+
const isClip = classes.includes("clip");
|
|
68997
|
+
const fixHint = isClip ? `"#${id}" is a clip element \u2014 the framework already manages its visibility. Wrap the scene's content in an inner non-clip <div>, move the exit tween and the hard kill (\`tl.set("<inner-selector>", { visibility: "hidden" }, <exit-end-time>)\`) onto that wrapper instead.` : `Add \`tl.set("#${id}", { visibility: "hidden" }, <exit-end-time>)\` after the scene's exit tweens.`;
|
|
68986
68998
|
findings.push({
|
|
68987
68999
|
code: "scene_layer_missing_visibility_kill",
|
|
68988
69000
|
severity: "error",
|
|
68989
69001
|
elementId: id,
|
|
68990
69002
|
message: `Scene layer "#${id}" exits via opacity tween but has no visibility: hidden hard kill. When scrubbing or when tweens conflict, the scene may remain partially visible and overlap the next scene.`,
|
|
68991
|
-
fixHint
|
|
69003
|
+
fixHint
|
|
68992
69004
|
});
|
|
68993
69005
|
}
|
|
68994
69006
|
}
|
|
@@ -70089,7 +70101,7 @@ ${allInlineStyles}`.replace(/\/\*[\s\S]*?\*\//g, "");
|
|
|
70089
70101
|
code: "font_family_without_font_face",
|
|
70090
70102
|
severity: "error",
|
|
70091
70103
|
message: `Font ${undeclared.length === 1 ? "family" : "families"} used without @font-face declaration: ${undeclared.join(", ")}. These are not in the auto-resolved font list, so the renderer cannot supply them automatically. Text will fall back to a generic font, producing incorrect typography in the video.`,
|
|
70092
|
-
fixHint: "Add @font-face { font-family: '...'; src: url('capture/assets/fonts/...woff2'); } for each font family, pointing to the captured .woff2 files."
|
|
70104
|
+
fixHint: "Add @font-face { font-family: '...'; src: url('capture/assets/fonts/...woff2'); } for each font family, pointing to the captured .woff2 files. For an OS-bundled system font (e.g. Hiragino Sans, Microsoft YaHei) that has no downloadable file, use src: local('Exact Font Name') instead \u2014 the declaration alone satisfies this check without needing a font file."
|
|
70093
70105
|
});
|
|
70094
70106
|
return findings;
|
|
70095
70107
|
}
|
|
@@ -75502,6 +75514,7 @@ __export(events_exports, {
|
|
|
75502
75514
|
trackRenderError: () => trackRenderError,
|
|
75503
75515
|
trackRenderFeedback: () => trackRenderFeedback,
|
|
75504
75516
|
trackRenderObservation: () => trackRenderObservation,
|
|
75517
|
+
trackRenderPreflightRejected: () => trackRenderPreflightRejected,
|
|
75505
75518
|
trackSkillsInstallSkipped: () => trackSkillsInstallSkipped,
|
|
75506
75519
|
trackTranscribeUnavailable: () => trackTranscribeUnavailable
|
|
75507
75520
|
});
|
|
@@ -75533,6 +75546,8 @@ function renderObservabilityEventProperties(props) {
|
|
|
75533
75546
|
capture_protocol_timeout_ms: props.captureProtocolTimeoutMs,
|
|
75534
75547
|
capture_page_navigation_timeout_ms: props.capturePageNavigationTimeoutMs,
|
|
75535
75548
|
capture_player_ready_timeout_ms: props.capturePlayerReadyTimeoutMs,
|
|
75549
|
+
capture_transient_retries: props.captureTransientRetries,
|
|
75550
|
+
capture_memory_exhaustion_detected: props.captureMemoryExhaustionDetected,
|
|
75536
75551
|
observability_extract_video_count: props.observabilityExtractVideoCount,
|
|
75537
75552
|
observability_extracted_video_count: props.observabilityExtractedVideoCount,
|
|
75538
75553
|
observability_extract_total_frames: props.observabilityExtractTotalFrames,
|
|
@@ -75658,6 +75673,9 @@ function trackInitTemplate(templateId, props) {
|
|
|
75658
75673
|
function trackBrowserInstall() {
|
|
75659
75674
|
trackEvent("browser_install", {});
|
|
75660
75675
|
}
|
|
75676
|
+
function trackRenderPreflightRejected(props) {
|
|
75677
|
+
trackEvent("render_preflight_rejected", { kind: props.kind });
|
|
75678
|
+
}
|
|
75661
75679
|
function trackCliError(props) {
|
|
75662
75680
|
trackEvent("cli_error", {
|
|
75663
75681
|
error_name: props.error_name,
|
|
@@ -80950,6 +80968,10 @@ function createProjectWatcher(projectDir) {
|
|
|
80950
80968
|
}
|
|
80951
80969
|
}, DEBOUNCE_MS);
|
|
80952
80970
|
});
|
|
80971
|
+
watcher.on("error", () => {
|
|
80972
|
+
watcher?.close();
|
|
80973
|
+
watcher = null;
|
|
80974
|
+
});
|
|
80953
80975
|
} catch {
|
|
80954
80976
|
}
|
|
80955
80977
|
return {
|
|
@@ -81126,6 +81148,8 @@ function renderObservabilityTelemetryPayload(observability) {
|
|
|
81126
81148
|
captureProtocolTimeoutMs: capture2.protocolTimeoutMs,
|
|
81127
81149
|
capturePageNavigationTimeoutMs: capture2.pageNavigationTimeoutMs,
|
|
81128
81150
|
capturePlayerReadyTimeoutMs: capture2.playerReadyTimeoutMs,
|
|
81151
|
+
captureTransientRetries: capture2.transientRetries,
|
|
81152
|
+
captureMemoryExhaustionDetected: capture2.memoryExhaustionDetected,
|
|
81129
81153
|
observabilityExtractVideoCount: extraction?.videoCount,
|
|
81130
81154
|
observabilityExtractedVideoCount: extraction?.extractedVideoCount,
|
|
81131
81155
|
observabilityExtractTotalFrames: extraction?.totalFramesExtracted,
|
|
@@ -83200,12 +83224,12 @@ function removeKeyframeFromScript(script, animationId, percentage) {
|
|
|
83200
83224
|
return ms.toString();
|
|
83201
83225
|
}
|
|
83202
83226
|
function moveKeyframeInScript(script, animationId, fromPercentage, toPercentage) {
|
|
83203
|
-
const located =
|
|
83227
|
+
const located = ensureKeyframesNode(script, animationId);
|
|
83204
83228
|
if (!located) return script;
|
|
83205
|
-
const { kfNode } = located;
|
|
83229
|
+
const { script: src, kfNode } = located;
|
|
83206
83230
|
const match = findKfPropByPct(kfNode, fromPercentage);
|
|
83207
|
-
if (!match) return
|
|
83208
|
-
if (Math.abs(fromPercentage - toPercentage) < MOVE_NOOP_EPSILON_PCT) return
|
|
83231
|
+
if (!match) return src;
|
|
83232
|
+
if (Math.abs(fromPercentage - toPercentage) < MOVE_NOOP_EPSILON_PCT) return src;
|
|
83209
83233
|
const dest = findKfPropByPct(kfNode, toPercentage);
|
|
83210
83234
|
const collision = dest && dest.prop !== match.prop ? dest : null;
|
|
83211
83235
|
const entries2 = [];
|
|
@@ -83214,19 +83238,19 @@ function moveKeyframeInScript(script, animationId, fromPercentage, toPercentage)
|
|
|
83214
83238
|
if (collision && prop2 === collision.prop) continue;
|
|
83215
83239
|
const pct = percentageFromKey(propKeyName22(prop2) ?? "");
|
|
83216
83240
|
if (Number.isNaN(pct)) continue;
|
|
83217
|
-
entries2.push({ pct, record: valueNodeToRecord(prop2.value,
|
|
83241
|
+
entries2.push({ pct, record: valueNodeToRecord(prop2.value, src) });
|
|
83218
83242
|
}
|
|
83219
|
-
entries2.push({ pct: toPercentage, record: valueNodeToRecord(match.prop.value,
|
|
83243
|
+
entries2.push({ pct: toPercentage, record: valueNodeToRecord(match.prop.value, src) });
|
|
83220
83244
|
entries2.sort((a, b2) => a.pct - b2.pct);
|
|
83221
83245
|
const body = entries2.map((e3) => `${JSON.stringify(`${e3.pct}%`)}: ${recordToCode(e3.record)}`).join(", ");
|
|
83222
|
-
const ms = new MagicString(
|
|
83246
|
+
const ms = new MagicString(src);
|
|
83223
83247
|
ms.overwrite(kfNode.start, kfNode.end, `{ ${body} }`);
|
|
83224
83248
|
return ms.toString();
|
|
83225
83249
|
}
|
|
83226
83250
|
function resizeKeyframedTweenInScript(script, animationId, newPosition, newDuration, pctRemap) {
|
|
83227
|
-
const located =
|
|
83251
|
+
const located = ensureKeyframesNode(script, animationId);
|
|
83228
83252
|
if (!located) return script;
|
|
83229
|
-
const { target, kfNode } = located;
|
|
83253
|
+
const { script: src, target, kfNode } = located;
|
|
83230
83254
|
const edits = [];
|
|
83231
83255
|
const seen = /* @__PURE__ */ new Set();
|
|
83232
83256
|
for (const { from, to } of pctRemap) {
|
|
@@ -83235,7 +83259,7 @@ function resizeKeyframedTweenInScript(script, animationId, newPosition, newDurat
|
|
|
83235
83259
|
seen.add(match.prop.key);
|
|
83236
83260
|
edits.push({ keyNode: match.prop.key, to });
|
|
83237
83261
|
}
|
|
83238
|
-
const ms = new MagicString(
|
|
83262
|
+
const ms = new MagicString(src);
|
|
83239
83263
|
for (const { keyNode, to } of edits) {
|
|
83240
83264
|
ms.overwrite(keyNode.start, keyNode.end, JSON.stringify(`${to}%`));
|
|
83241
83265
|
}
|
|
@@ -89793,8 +89817,9 @@ function findKeyframePropByPct(kfNode, percentage) {
|
|
|
89793
89817
|
return null;
|
|
89794
89818
|
}
|
|
89795
89819
|
function buildKeyframeValueNode(properties, ease) {
|
|
89796
|
-
const
|
|
89797
|
-
|
|
89820
|
+
const effectiveEase = ease ?? (typeof properties.ease === "string" ? properties.ease : void 0);
|
|
89821
|
+
const entries2 = Object.entries(properties).filter(([k2]) => k2 !== "ease").map(([k2, v2]) => `${safeJsKey2(k2)}: ${serializeValue2(v2)}`);
|
|
89822
|
+
if (effectiveEase) entries2.push(`ease: ${JSON.stringify(effectiveEase)}`);
|
|
89798
89823
|
return parseExpr(`{ ${entries2.join(", ")} }`);
|
|
89799
89824
|
}
|
|
89800
89825
|
function locateAnimation(script, animationId) {
|
|
@@ -90012,7 +90037,7 @@ function removeKeyframeFromScript2(script, animationId, percentage) {
|
|
|
90012
90037
|
function moveKeyframeInScript2(script, animationId, fromPercentage, toPercentage) {
|
|
90013
90038
|
const loc = locateAnimationWithFallback(script, animationId);
|
|
90014
90039
|
if (!loc) return script;
|
|
90015
|
-
const kfNode = findKeyframesObjectNode(loc.target.call.varsArg);
|
|
90040
|
+
const kfNode = findKeyframesObjectNode(loc.target.call.varsArg) ?? convertArrayKeyframesToObjectNode(loc.target.call.varsArg);
|
|
90016
90041
|
if (!kfNode) return script;
|
|
90017
90042
|
const match = findKeyframePropByPct(kfNode, fromPercentage);
|
|
90018
90043
|
if (!match) return script;
|
|
@@ -90040,7 +90065,7 @@ function moveKeyframeInScript2(script, animationId, fromPercentage, toPercentage
|
|
|
90040
90065
|
function resizeKeyframedTweenInScript2(script, animationId, newPosition, newDuration, pctRemap) {
|
|
90041
90066
|
const loc = locateAnimationWithFallback(script, animationId);
|
|
90042
90067
|
if (!loc) return script;
|
|
90043
|
-
const kfNode = findKeyframesObjectNode(loc.target.call.varsArg);
|
|
90068
|
+
const kfNode = findKeyframesObjectNode(loc.target.call.varsArg) ?? convertArrayKeyframesToObjectNode(loc.target.call.varsArg);
|
|
90044
90069
|
if (!kfNode) return script;
|
|
90045
90070
|
const seen = /* @__PURE__ */ new Set();
|
|
90046
90071
|
for (const { from, to } of pctRemap) {
|
|
@@ -90166,7 +90191,7 @@ function convertToKeyframesInScript(script, animationId, resolvedFromValues, set
|
|
|
90166
90191
|
function removeAllKeyframesFromScript2(script, animationId) {
|
|
90167
90192
|
let loc = locateAnimationWithFallback(script, animationId);
|
|
90168
90193
|
if (!loc) return script;
|
|
90169
|
-
const kfNode = findKeyframesObjectNode(loc.target.call.varsArg);
|
|
90194
|
+
const kfNode = findKeyframesObjectNode(loc.target.call.varsArg) ?? convertArrayKeyframesToObjectNode(loc.target.call.varsArg);
|
|
90170
90195
|
if (!kfNode) return script;
|
|
90171
90196
|
const kfEntries = filterPercentageProps(kfNode).map((p2) => ({ pct: percentageFromKey2(propKeyName4(p2)), prop: p2 })).filter((e3) => !Number.isNaN(e3.pct)).sort((a, b2) => a.pct - b2.pct);
|
|
90172
90197
|
if (kfEntries.length === 0) return script;
|
|
@@ -95018,10 +95043,11 @@ __export(manager_exports2, {
|
|
|
95018
95043
|
clearBrowser: () => clearBrowser,
|
|
95019
95044
|
ensureBrowser: () => ensureBrowser,
|
|
95020
95045
|
findBrowser: () => findBrowser,
|
|
95021
|
-
isLinuxArm: () => isLinuxArm
|
|
95046
|
+
isLinuxArm: () => isLinuxArm,
|
|
95047
|
+
withInstallLock: () => withInstallLock
|
|
95022
95048
|
});
|
|
95023
95049
|
import { execSync as execSync5, spawnSync as spawnSync2 } from "child_process";
|
|
95024
|
-
import { existsSync as existsSync31, readdirSync as readdirSync13, rmSync as rmSync6 } from "fs";
|
|
95050
|
+
import { existsSync as existsSync31, mkdirSync as mkdirSync15, readdirSync as readdirSync13, rmSync as rmSync6, statSync as statSync9 } from "fs";
|
|
95025
95051
|
import { basename as basename4 } from "path";
|
|
95026
95052
|
import { homedir as homedir9 } from "os";
|
|
95027
95053
|
import { join as join27 } from "path";
|
|
@@ -95036,6 +95062,59 @@ Fix: run \`npm install\` or \`bun install\` to restore missing packages, then re
|
|
|
95036
95062
|
);
|
|
95037
95063
|
}
|
|
95038
95064
|
}
|
|
95065
|
+
function isErrno(err, code) {
|
|
95066
|
+
return err.code === code;
|
|
95067
|
+
}
|
|
95068
|
+
function sleep(ms) {
|
|
95069
|
+
return new Promise((resolve62) => setTimeout(resolve62, ms));
|
|
95070
|
+
}
|
|
95071
|
+
function tryAcquireDirLock(lockDir) {
|
|
95072
|
+
try {
|
|
95073
|
+
mkdirSync15(lockDir, { recursive: false });
|
|
95074
|
+
return true;
|
|
95075
|
+
} catch (err) {
|
|
95076
|
+
if (!isErrno(err, "EEXIST")) throw err;
|
|
95077
|
+
return false;
|
|
95078
|
+
}
|
|
95079
|
+
}
|
|
95080
|
+
function reclaimStaleInstallLock(timeoutMs) {
|
|
95081
|
+
if (!tryAcquireDirLock(INSTALL_RECLAIM_LOCK_DIR)) return;
|
|
95082
|
+
try {
|
|
95083
|
+
const mtimeMs = statSync9(INSTALL_LOCK_DIR).mtimeMs;
|
|
95084
|
+
if (Date.now() - mtimeMs > timeoutMs) {
|
|
95085
|
+
rmSync6(INSTALL_LOCK_DIR, { recursive: true, force: true });
|
|
95086
|
+
}
|
|
95087
|
+
} catch (err) {
|
|
95088
|
+
if (!isErrno(err, "ENOENT")) throw err;
|
|
95089
|
+
} finally {
|
|
95090
|
+
rmSync6(INSTALL_RECLAIM_LOCK_DIR, { recursive: true, force: true });
|
|
95091
|
+
}
|
|
95092
|
+
}
|
|
95093
|
+
async function withInstallLock(fn, timeoutMs = INSTALL_LOCK_TIMEOUT_MS, pollMs = INSTALL_LOCK_POLL_MS) {
|
|
95094
|
+
if (!existsSync31(CACHE_DIR2)) mkdirSync15(CACHE_DIR2, { recursive: true });
|
|
95095
|
+
let deadline = Date.now() + timeoutMs;
|
|
95096
|
+
for (; ; ) {
|
|
95097
|
+
if (existsSync31(INSTALL_RECLAIM_LOCK_DIR)) {
|
|
95098
|
+
await sleep(pollMs);
|
|
95099
|
+
continue;
|
|
95100
|
+
}
|
|
95101
|
+
if (tryAcquireDirLock(INSTALL_LOCK_DIR)) {
|
|
95102
|
+
rmSync6(INSTALL_RECLAIM_LOCK_DIR, { recursive: true, force: true });
|
|
95103
|
+
break;
|
|
95104
|
+
}
|
|
95105
|
+
if (Date.now() > deadline) {
|
|
95106
|
+
reclaimStaleInstallLock(timeoutMs);
|
|
95107
|
+
deadline = Date.now() + timeoutMs;
|
|
95108
|
+
continue;
|
|
95109
|
+
}
|
|
95110
|
+
await sleep(pollMs);
|
|
95111
|
+
}
|
|
95112
|
+
try {
|
|
95113
|
+
return await fn();
|
|
95114
|
+
} finally {
|
|
95115
|
+
rmSync6(INSTALL_LOCK_DIR, { recursive: true, force: true });
|
|
95116
|
+
}
|
|
95117
|
+
}
|
|
95039
95118
|
function whichBinary2(name) {
|
|
95040
95119
|
try {
|
|
95041
95120
|
const cmd = process.platform === "win32" ? `where ${name}` : `which ${name}`;
|
|
@@ -95186,7 +95265,7 @@ async function findBrowser() {
|
|
|
95186
95265
|
`[browser] Cached binary missing at ${fromCache.staleHyperframesCachePath} \u2014 re-downloading...`
|
|
95187
95266
|
);
|
|
95188
95267
|
try {
|
|
95189
|
-
return await downloadBrowser();
|
|
95268
|
+
return await withInstallLock(() => downloadBrowser());
|
|
95190
95269
|
} catch (err) {
|
|
95191
95270
|
const cause = normalizeErrorMessage(err);
|
|
95192
95271
|
throw new Error(
|
|
@@ -95249,14 +95328,18 @@ async function ensureBrowser(options) {
|
|
|
95249
95328
|
console.warn(
|
|
95250
95329
|
`[browser] Cached binary missing at ${fromCache.staleHyperframesCachePath} \u2014 re-downloading...`
|
|
95251
95330
|
);
|
|
95252
|
-
return downloadBrowser(options);
|
|
95331
|
+
return withInstallLock(() => downloadBrowser(options));
|
|
95253
95332
|
}
|
|
95254
95333
|
const fromSystem = findFromSystem2();
|
|
95255
95334
|
if (fromSystem) {
|
|
95256
95335
|
warnSystemFallbackOnce(fromSystem.executablePath);
|
|
95257
95336
|
return fromSystem;
|
|
95258
95337
|
}
|
|
95259
|
-
return
|
|
95338
|
+
return withInstallLock(async () => {
|
|
95339
|
+
const afterLock = await findFromCache();
|
|
95340
|
+
if (afterLock.result) return afterLock.result;
|
|
95341
|
+
return downloadBrowser(options);
|
|
95342
|
+
});
|
|
95260
95343
|
}
|
|
95261
95344
|
async function downloadBrowser(options) {
|
|
95262
95345
|
if (isLinuxArm()) {
|
|
@@ -95286,7 +95369,7 @@ function clearBrowser() {
|
|
|
95286
95369
|
function isLinuxArm() {
|
|
95287
95370
|
return process.platform === "linux" && process.arch === "arm64";
|
|
95288
95371
|
}
|
|
95289
|
-
var CHROME_VERSION, CACHE_DIR2, PUPPETEER_CACHE_DIR, SYSTEM_CHROME_PATHS, _warnedSystemFallback;
|
|
95372
|
+
var CHROME_VERSION, CACHE_DIR2, PUPPETEER_CACHE_DIR, INSTALL_LOCK_DIR, INSTALL_RECLAIM_LOCK_DIR, INSTALL_LOCK_TIMEOUT_MS, INSTALL_LOCK_POLL_MS, SYSTEM_CHROME_PATHS, _warnedSystemFallback;
|
|
95290
95373
|
var init_manager2 = __esm({
|
|
95291
95374
|
"src/browser/manager.ts"() {
|
|
95292
95375
|
"use strict";
|
|
@@ -95294,6 +95377,10 @@ var init_manager2 = __esm({
|
|
|
95294
95377
|
CHROME_VERSION = "131.0.6778.85";
|
|
95295
95378
|
CACHE_DIR2 = join27(homedir9(), ".cache", "hyperframes", "chrome");
|
|
95296
95379
|
PUPPETEER_CACHE_DIR = join27(homedir9(), ".cache", "puppeteer", "chrome-headless-shell");
|
|
95380
|
+
INSTALL_LOCK_DIR = join27(CACHE_DIR2, ".install.lock");
|
|
95381
|
+
INSTALL_RECLAIM_LOCK_DIR = join27(CACHE_DIR2, ".install.reclaim.lock");
|
|
95382
|
+
INSTALL_LOCK_TIMEOUT_MS = 12e4;
|
|
95383
|
+
INSTALL_LOCK_POLL_MS = 200;
|
|
95297
95384
|
SYSTEM_CHROME_PATHS = process.platform === "darwin" ? ["/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"] : [
|
|
95298
95385
|
"/usr/bin/google-chrome",
|
|
95299
95386
|
"/usr/bin/google-chrome-stable",
|
|
@@ -98566,27 +98653,185 @@ __export(deterministicFonts_exports, {
|
|
|
98566
98653
|
FONT_FETCH_FAILED: () => FONT_FETCH_FAILED,
|
|
98567
98654
|
FontFetchError: () => FontFetchError,
|
|
98568
98655
|
GENERIC_FAMILIES: () => GENERIC_FAMILIES2,
|
|
98656
|
+
collectFontFamilyCustomProperties: () => collectFontFamilyCustomProperties,
|
|
98569
98657
|
injectDeterministicFontFaces: () => injectDeterministicFontFaces,
|
|
98570
98658
|
iterateFontFamilyDeclarations: () => iterateFontFamilyDeclarations,
|
|
98571
|
-
|
|
98659
|
+
normalizeSystemFontPrimaryFamilies: () => normalizeSystemFontPrimaryFamilies,
|
|
98660
|
+
parseFontFamilyValue: () => parseFontFamilyValue,
|
|
98661
|
+
resolveFontFamilyDeclarationFamilies: () => resolveFontFamilyDeclarationFamilies
|
|
98572
98662
|
});
|
|
98573
98663
|
import { createHash as createHash6 } from "crypto";
|
|
98574
|
-
import { existsSync as existsSync33, mkdirSync as
|
|
98664
|
+
import { existsSync as existsSync33, mkdirSync as mkdirSync16, readFileSync as readFileSync20, writeFileSync as writeFileSync11 } from "fs";
|
|
98575
98665
|
import { homedir as homedir10, tmpdir as tmpdir3 } from "os";
|
|
98576
98666
|
import { join as join28 } from "path";
|
|
98667
|
+
import postcss4 from "postcss";
|
|
98577
98668
|
function parseFontFamilyValue(value) {
|
|
98578
98669
|
return value.split(",").map((piece) => piece.trim().replace(/^['"]/, "").replace(/['"]$/, "").trim()).filter((piece) => piece.length > 0);
|
|
98579
98670
|
}
|
|
98580
|
-
function
|
|
98581
|
-
const
|
|
98582
|
-
|
|
98583
|
-
|
|
98584
|
-
|
|
98585
|
-
|
|
98586
|
-
|
|
98587
|
-
|
|
98588
|
-
|
|
98671
|
+
function systemPrimaryReplacement(value, deterministicPrimary) {
|
|
98672
|
+
const families = parseFontFamilyValue(value);
|
|
98673
|
+
if (families.length === 0) return null;
|
|
98674
|
+
if (!GENERIC_FAMILIES2.has(normalizeFamilyName(families[0]))) return null;
|
|
98675
|
+
return `${deterministicPrimary}, ${value.trim()}`;
|
|
98676
|
+
}
|
|
98677
|
+
function parseCssRoot(css) {
|
|
98678
|
+
try {
|
|
98679
|
+
return postcss4.parse(css);
|
|
98680
|
+
} catch {
|
|
98681
|
+
return null;
|
|
98682
|
+
}
|
|
98683
|
+
}
|
|
98684
|
+
function isFontFaceDeclaration(decl) {
|
|
98685
|
+
const parent = decl.parent;
|
|
98686
|
+
return parent?.type === "atrule" && parent.name.toLowerCase() === "font-face";
|
|
98687
|
+
}
|
|
98688
|
+
function normalizeCssDeclarations(root, deterministicPrimary) {
|
|
98689
|
+
let changed = false;
|
|
98690
|
+
root.walkDecls((decl) => {
|
|
98691
|
+
if (decl.prop.startsWith("--")) {
|
|
98692
|
+
const replacement2 = systemPrimaryReplacement(decl.value, deterministicPrimary);
|
|
98693
|
+
if (!replacement2) return;
|
|
98694
|
+
decl.value = replacement2;
|
|
98695
|
+
changed = true;
|
|
98696
|
+
return;
|
|
98697
|
+
}
|
|
98698
|
+
if (decl.prop.toLowerCase() !== "font-family") return;
|
|
98699
|
+
if (isFontFaceDeclaration(decl)) {
|
|
98700
|
+
return;
|
|
98701
|
+
}
|
|
98702
|
+
const replacement = systemPrimaryReplacement(decl.value, deterministicPrimary);
|
|
98703
|
+
if (!replacement) return;
|
|
98704
|
+
decl.value = replacement;
|
|
98705
|
+
changed = true;
|
|
98706
|
+
});
|
|
98707
|
+
return changed;
|
|
98708
|
+
}
|
|
98709
|
+
function normalizeCssFontFamilyDeclarations(css, deterministicPrimary) {
|
|
98710
|
+
const root = parseCssRoot(css);
|
|
98711
|
+
if (!root) return css;
|
|
98712
|
+
const changed = normalizeCssDeclarations(root, deterministicPrimary);
|
|
98713
|
+
return changed ? root.toString() : css;
|
|
98714
|
+
}
|
|
98715
|
+
function normalizeInlineStyleAttribute(style, deterministicPrimary) {
|
|
98716
|
+
const root = parseCssRoot(`*{${style}}`);
|
|
98717
|
+
if (!root) return style;
|
|
98718
|
+
const rule = root.first;
|
|
98719
|
+
if (rule?.type !== "rule") return style;
|
|
98720
|
+
const before3 = rule.toString();
|
|
98721
|
+
normalizeCssDeclarations(root, deterministicPrimary);
|
|
98722
|
+
if (rule.toString() === before3) return style;
|
|
98723
|
+
const serialized = (rule.nodes ?? []).map((node) => node.toString()).join("; ");
|
|
98724
|
+
return serialized.endsWith(";") ? serialized : `${serialized};`;
|
|
98725
|
+
}
|
|
98726
|
+
function normalizeSystemFontPrimaryFamilies(html, deterministicPrimary = "Inter") {
|
|
98727
|
+
const { document: document2 } = parseHTML(html);
|
|
98728
|
+
let changed = false;
|
|
98729
|
+
for (const styleEl of Array.from(document2.querySelectorAll("style"))) {
|
|
98730
|
+
const current2 = styleEl.textContent ?? "";
|
|
98731
|
+
const next = normalizeCssFontFamilyDeclarations(current2, deterministicPrimary);
|
|
98732
|
+
if (next === current2) continue;
|
|
98733
|
+
styleEl.textContent = next;
|
|
98734
|
+
changed = true;
|
|
98735
|
+
}
|
|
98736
|
+
for (const el of Array.from(document2.querySelectorAll("[style]"))) {
|
|
98737
|
+
const current2 = el.getAttribute("style") ?? "";
|
|
98738
|
+
const next = normalizeInlineStyleAttribute(current2, deterministicPrimary);
|
|
98739
|
+
if (next === current2) continue;
|
|
98740
|
+
el.setAttribute("style", next);
|
|
98741
|
+
changed = true;
|
|
98742
|
+
}
|
|
98743
|
+
for (const el of Array.from(document2.querySelectorAll("[data-font-family]"))) {
|
|
98744
|
+
const current2 = el.getAttribute("data-font-family") ?? "";
|
|
98745
|
+
const next = systemPrimaryReplacement(current2, deterministicPrimary);
|
|
98746
|
+
if (!next) continue;
|
|
98747
|
+
el.setAttribute("data-font-family", next);
|
|
98748
|
+
changed = true;
|
|
98749
|
+
}
|
|
98750
|
+
return changed ? document2.toString() : html;
|
|
98751
|
+
}
|
|
98752
|
+
function collectCssCustomProperties(css, customProperties) {
|
|
98753
|
+
const root = parseCssRoot(css);
|
|
98754
|
+
if (!root) return;
|
|
98755
|
+
root.walkDecls((decl) => {
|
|
98756
|
+
if (!decl.prop.startsWith("--")) return;
|
|
98757
|
+
customProperties.set(decl.prop, decl.value);
|
|
98758
|
+
});
|
|
98759
|
+
}
|
|
98760
|
+
function* iterateCssRootFontFamilyDeclarations(root) {
|
|
98761
|
+
const declarations = [];
|
|
98762
|
+
root.walkDecls((decl) => {
|
|
98763
|
+
if (decl.prop.toLowerCase() !== "font-family") return;
|
|
98764
|
+
if (isFontFaceDeclaration(decl)) return;
|
|
98765
|
+
const declaration = decl.value;
|
|
98766
|
+
declarations.push({
|
|
98767
|
+
surface: "font-family",
|
|
98768
|
+
declaration,
|
|
98769
|
+
families: parseFontFamilyValue(declaration)
|
|
98770
|
+
});
|
|
98771
|
+
});
|
|
98772
|
+
yield* declarations;
|
|
98773
|
+
}
|
|
98774
|
+
function* iterateCssFontFamilyDeclarations(css) {
|
|
98775
|
+
const root = parseCssRoot(css);
|
|
98776
|
+
if (!root) return;
|
|
98777
|
+
yield* iterateCssRootFontFamilyDeclarations(root);
|
|
98778
|
+
}
|
|
98779
|
+
function* iterateInlineStyleFontFamilyDeclarations(style) {
|
|
98780
|
+
const root = parseCssRoot(`*{${style}}`);
|
|
98781
|
+
if (!root) return;
|
|
98782
|
+
yield* iterateCssRootFontFamilyDeclarations(root);
|
|
98783
|
+
}
|
|
98784
|
+
function collectFontFamilyCustomProperties(html) {
|
|
98785
|
+
const { document: document2 } = parseHTML(html);
|
|
98786
|
+
const customProperties = /* @__PURE__ */ new Map();
|
|
98787
|
+
for (const styleEl of Array.from(document2.querySelectorAll("style"))) {
|
|
98788
|
+
collectCssCustomProperties(styleEl.textContent ?? "", customProperties);
|
|
98789
|
+
}
|
|
98790
|
+
for (const el of Array.from(document2.querySelectorAll("[style]"))) {
|
|
98791
|
+
collectCssCustomProperties(`*{${el.getAttribute("style") ?? ""}}`, customProperties);
|
|
98792
|
+
}
|
|
98793
|
+
return customProperties;
|
|
98794
|
+
}
|
|
98795
|
+
function primaryCssVariableName(value) {
|
|
98796
|
+
const trimmed = value.trim();
|
|
98797
|
+
if (!trimmed.toLowerCase().startsWith("var(")) return null;
|
|
98798
|
+
let depth = 0;
|
|
98799
|
+
for (let index = 0; index < trimmed.length; index += 1) {
|
|
98800
|
+
const char = trimmed[index];
|
|
98801
|
+
if (char === "(") {
|
|
98802
|
+
depth += 1;
|
|
98803
|
+
continue;
|
|
98589
98804
|
}
|
|
98805
|
+
if (char !== ")") continue;
|
|
98806
|
+
depth -= 1;
|
|
98807
|
+
if (depth !== 0) continue;
|
|
98808
|
+
const varExpression = trimmed.slice(0, index + 1);
|
|
98809
|
+
const inner = varExpression.slice(4, -1).trim();
|
|
98810
|
+
const commaIndex = inner.indexOf(",");
|
|
98811
|
+
const variableName = (commaIndex === -1 ? inner : inner.slice(0, commaIndex)).trim();
|
|
98812
|
+
return /^--[A-Za-z0-9_-]+$/.test(variableName) ? variableName : null;
|
|
98813
|
+
}
|
|
98814
|
+
return null;
|
|
98815
|
+
}
|
|
98816
|
+
function resolveFontFamilyDeclarationFamilies(declaration, customProperties) {
|
|
98817
|
+
const families = parseFontFamilyValue(declaration);
|
|
98818
|
+
const variableName = primaryCssVariableName(declaration);
|
|
98819
|
+
if (!variableName) return families;
|
|
98820
|
+
const resolved = customProperties.get(variableName);
|
|
98821
|
+
if (!resolved) return families;
|
|
98822
|
+
return [...parseFontFamilyValue(resolved), ...families.slice(1)];
|
|
98823
|
+
}
|
|
98824
|
+
function* iterateFontFamilyDeclarations(html) {
|
|
98825
|
+
const { document: document2 } = parseHTML(html);
|
|
98826
|
+
for (const styleEl of Array.from(document2.querySelectorAll("style"))) {
|
|
98827
|
+
yield* iterateCssFontFamilyDeclarations(styleEl.textContent ?? "");
|
|
98828
|
+
}
|
|
98829
|
+
for (const el of Array.from(document2.querySelectorAll("[style]"))) {
|
|
98830
|
+
yield* iterateInlineStyleFontFamilyDeclarations(el.getAttribute("style") ?? "");
|
|
98831
|
+
}
|
|
98832
|
+
for (const el of Array.from(document2.querySelectorAll("[data-font-family]"))) {
|
|
98833
|
+
const declaration = el.getAttribute("data-font-family") ?? "";
|
|
98834
|
+
yield { surface: "data-font-family", declaration, families: parseFontFamilyValue(declaration) };
|
|
98590
98835
|
}
|
|
98591
98836
|
}
|
|
98592
98837
|
function normalizeFamilyName(family) {
|
|
@@ -98616,8 +98861,12 @@ function extractExistingFontFaces(html) {
|
|
|
98616
98861
|
}
|
|
98617
98862
|
function extractRequestedFontFamilies(html) {
|
|
98618
98863
|
const requested = /* @__PURE__ */ new Map();
|
|
98619
|
-
|
|
98620
|
-
|
|
98864
|
+
const customProperties = collectFontFamilyCustomProperties(html);
|
|
98865
|
+
for (const { declaration } of iterateFontFamilyDeclarations(html)) {
|
|
98866
|
+
for (const originalCase of resolveFontFamilyDeclarationFamilies(
|
|
98867
|
+
declaration,
|
|
98868
|
+
customProperties
|
|
98869
|
+
)) {
|
|
98621
98870
|
const normalized = originalCase.toLowerCase();
|
|
98622
98871
|
if (!normalized || GENERIC_FAMILIES2.has(normalized)) continue;
|
|
98623
98872
|
if (normalized.startsWith("var(")) continue;
|
|
@@ -98739,7 +98988,7 @@ function fontSlug(familyName) {
|
|
|
98739
98988
|
function fontCacheDir(slug) {
|
|
98740
98989
|
const dir = join28(GOOGLE_FONTS_CACHE_DIR, slug);
|
|
98741
98990
|
if (!existsSync33(dir)) {
|
|
98742
|
-
|
|
98991
|
+
mkdirSync16(dir, { recursive: true });
|
|
98743
98992
|
}
|
|
98744
98993
|
return dir;
|
|
98745
98994
|
}
|
|
@@ -99026,11 +99275,11 @@ import { spawn as spawn10 } from "child_process";
|
|
|
99026
99275
|
import {
|
|
99027
99276
|
copyFileSync as copyFileSync2,
|
|
99028
99277
|
existsSync as existsSync34,
|
|
99029
|
-
mkdirSync as
|
|
99278
|
+
mkdirSync as mkdirSync17,
|
|
99030
99279
|
readFileSync as readFileSync21,
|
|
99031
99280
|
renameSync as renameSync4,
|
|
99032
99281
|
rmSync as rmSync7,
|
|
99033
|
-
statSync as
|
|
99282
|
+
statSync as statSync10
|
|
99034
99283
|
} from "fs";
|
|
99035
99284
|
import { dirname as dirname13, isAbsolute as isAbsolute10, join as join29, resolve as resolve20 } from "path";
|
|
99036
99285
|
function splitUrlSuffix2(src) {
|
|
@@ -99076,7 +99325,7 @@ function resolveGifSourcePath(src, options) {
|
|
|
99076
99325
|
}
|
|
99077
99326
|
function isUsableFile(path2) {
|
|
99078
99327
|
try {
|
|
99079
|
-
const stat3 =
|
|
99328
|
+
const stat3 = statSync10(path2);
|
|
99080
99329
|
return stat3.isFile() && stat3.size > 0;
|
|
99081
99330
|
} catch {
|
|
99082
99331
|
return false;
|
|
@@ -99193,10 +99442,10 @@ async function runAnimatedGifTranscode(request) {
|
|
|
99193
99442
|
}
|
|
99194
99443
|
async function ensurePreparedWebm(input2) {
|
|
99195
99444
|
if (!existsSync34(dirname13(input2.cachePath))) {
|
|
99196
|
-
|
|
99445
|
+
mkdirSync17(dirname13(input2.cachePath), { recursive: true });
|
|
99197
99446
|
}
|
|
99198
99447
|
if (!existsSync34(dirname13(input2.outputPath))) {
|
|
99199
|
-
|
|
99448
|
+
mkdirSync17(dirname13(input2.outputPath), { recursive: true });
|
|
99200
99449
|
}
|
|
99201
99450
|
if (!isUsableFile(input2.cachePath)) {
|
|
99202
99451
|
const tmpPath = `${input2.cachePath}.tmp-${process.pid}-${Date.now()}`;
|
|
@@ -99442,7 +99691,7 @@ var init_hf_early_stub_inline = __esm({
|
|
|
99442
99691
|
// ../producer/src/services/fileServer.ts
|
|
99443
99692
|
import { Hono as Hono3 } from "hono";
|
|
99444
99693
|
import { serve as serve2 } from "@hono/node-server";
|
|
99445
|
-
import { existsSync as existsSync36, realpathSync as realpathSync4, statSync as
|
|
99694
|
+
import { existsSync as existsSync36, realpathSync as realpathSync4, statSync as statSync11, createReadStream } from "fs";
|
|
99446
99695
|
import { readFile as readFile2 } from "fs/promises";
|
|
99447
99696
|
import { Readable as Readable2 } from "stream";
|
|
99448
99697
|
import { join as join30, extname as extname9, resolve as resolve23, sep as sep5 } from "path";
|
|
@@ -99790,13 +100039,13 @@ function createFileServer2(options) {
|
|
|
99790
100039
|
let filePath = null;
|
|
99791
100040
|
if (compiledDir) {
|
|
99792
100041
|
const candidate = join30(compiledDir, relativePath);
|
|
99793
|
-
if (existsSync36(candidate) && isPathInside2(candidate, compiledDir) &&
|
|
100042
|
+
if (existsSync36(candidate) && isPathInside2(candidate, compiledDir) && statSync11(candidate).isFile()) {
|
|
99794
100043
|
filePath = candidate;
|
|
99795
100044
|
}
|
|
99796
100045
|
}
|
|
99797
100046
|
if (!filePath) {
|
|
99798
100047
|
const candidate = join30(projectDir, relativePath);
|
|
99799
|
-
if (existsSync36(candidate) && isPathInside2(candidate, projectDir) &&
|
|
100048
|
+
if (existsSync36(candidate) && isPathInside2(candidate, projectDir) && statSync11(candidate).isFile()) {
|
|
99800
100049
|
filePath = candidate;
|
|
99801
100050
|
}
|
|
99802
100051
|
}
|
|
@@ -99818,7 +100067,7 @@ function createFileServer2(options) {
|
|
|
99818
100067
|
html = isIndex ? injectScriptsIntoHtml(html, headScripts, bodyScripts, stripEmbeddedRuntime) : html;
|
|
99819
100068
|
return c3.text(html, 200, { "Content-Type": contentType });
|
|
99820
100069
|
}
|
|
99821
|
-
const stat3 =
|
|
100070
|
+
const stat3 = statSync11(filePath);
|
|
99822
100071
|
const totalSize2 = stat3.size;
|
|
99823
100072
|
const rangeHeader = c3.req.header("range");
|
|
99824
100073
|
const rangeRequest = parseRangeHeader(rangeHeader, totalSize2);
|
|
@@ -100070,7 +100319,7 @@ var init_paths = __esm({
|
|
|
100070
100319
|
});
|
|
100071
100320
|
|
|
100072
100321
|
// ../producer/src/services/render/shared.ts
|
|
100073
|
-
import { copyFileSync as copyFileSync3, cpSync as cpSync2, existsSync as existsSync37, mkdirSync as
|
|
100322
|
+
import { copyFileSync as copyFileSync3, cpSync as cpSync2, existsSync as existsSync37, mkdirSync as mkdirSync18, symlinkSync as symlinkSync2, writeFileSync as writeFileSync12 } from "fs";
|
|
100074
100323
|
import { basename as basename6, dirname as dirname15, isAbsolute as isAbsolute11, join as join33, relative as relative8, resolve as resolve24 } from "path";
|
|
100075
100324
|
function writeFileExclusiveSync(path2, data2) {
|
|
100076
100325
|
try {
|
|
@@ -100100,11 +100349,11 @@ function resolveDeviceScaleFactor(input2) {
|
|
|
100100
100349
|
}
|
|
100101
100350
|
function writeCompiledArtifacts(compiled, workDir, includeSummary) {
|
|
100102
100351
|
const compileDir = join33(workDir, "compiled");
|
|
100103
|
-
|
|
100352
|
+
mkdirSync18(compileDir, { recursive: true });
|
|
100104
100353
|
writeFileSync12(join33(compileDir, "index.html"), compiled.html, "utf-8");
|
|
100105
100354
|
for (const [srcPath, html] of compiled.subCompositions) {
|
|
100106
100355
|
const outPath = join33(compileDir, srcPath);
|
|
100107
|
-
|
|
100356
|
+
mkdirSync18(dirname15(outPath), { recursive: true });
|
|
100108
100357
|
writeFileSync12(outPath, html, "utf-8");
|
|
100109
100358
|
}
|
|
100110
100359
|
for (const [relativePath, absolutePath] of compiled.externalAssets) {
|
|
@@ -100113,7 +100362,7 @@ function writeCompiledArtifacts(compiled, workDir, includeSummary) {
|
|
|
100113
100362
|
console.warn(`[Render] Skipping external asset with unsafe path: ${relativePath}`);
|
|
100114
100363
|
continue;
|
|
100115
100364
|
}
|
|
100116
|
-
|
|
100365
|
+
mkdirSync18(dirname15(outPath), { recursive: true });
|
|
100117
100366
|
copyFileSync3(absolutePath, outPath);
|
|
100118
100367
|
}
|
|
100119
100368
|
if (includeSummary) {
|
|
@@ -100238,7 +100487,7 @@ var init_shared = __esm({
|
|
|
100238
100487
|
};
|
|
100239
100488
|
materializeFileSystem = {
|
|
100240
100489
|
existsSync: existsSync37,
|
|
100241
|
-
mkdirSync:
|
|
100490
|
+
mkdirSync: mkdirSync18,
|
|
100242
100491
|
symlinkSync: symlinkSync2,
|
|
100243
100492
|
cpSync: cpSync2
|
|
100244
100493
|
};
|
|
@@ -101430,7 +101679,7 @@ var init_manualEditsRenderScript = __esm({
|
|
|
101430
101679
|
});
|
|
101431
101680
|
|
|
101432
101681
|
// ../producer/src/services/htmlCompiler.ts
|
|
101433
|
-
import { readFileSync as readFileSync24, existsSync as existsSync38, mkdirSync as
|
|
101682
|
+
import { readFileSync as readFileSync24, existsSync as existsSync38, mkdirSync as mkdirSync19 } from "fs";
|
|
101434
101683
|
import { join as join35, dirname as dirname16, resolve as resolve25, basename as basename7 } from "path";
|
|
101435
101684
|
function parseSubCompHtmlForValidity(html) {
|
|
101436
101685
|
return parseHTML(html).document;
|
|
@@ -101540,7 +101789,7 @@ function detectShaderTransitionUsage(html) {
|
|
|
101540
101789
|
async function resolveMediaDuration(src, mediaStart, baseDir, downloadDir, tagName19) {
|
|
101541
101790
|
let filePath = src;
|
|
101542
101791
|
if (isHttpUrl(src)) {
|
|
101543
|
-
if (!existsSync38(downloadDir))
|
|
101792
|
+
if (!existsSync38(downloadDir)) mkdirSync19(downloadDir, { recursive: true });
|
|
101544
101793
|
try {
|
|
101545
101794
|
filePath = await downloadToTemp(src, downloadDir);
|
|
101546
101795
|
} catch {
|
|
@@ -102027,7 +102276,7 @@ function collectExternalAssets(html, projectDir) {
|
|
|
102027
102276
|
}
|
|
102028
102277
|
async function downloadAndRewriteUrls(urlSet, html, remoteDir, warnLabel, logLabel, extraRewrite) {
|
|
102029
102278
|
if (urlSet.size === 0) return { html, remoteMediaAssets: /* @__PURE__ */ new Map() };
|
|
102030
|
-
if (!existsSync38(remoteDir))
|
|
102279
|
+
if (!existsSync38(remoteDir)) mkdirSync19(remoteDir, { recursive: true });
|
|
102031
102280
|
const urlToLocal = /* @__PURE__ */ new Map();
|
|
102032
102281
|
await Promise.all(
|
|
102033
102282
|
[...urlSet].map(async (url) => {
|
|
@@ -102311,15 +102560,15 @@ async function compileForRender(projectDir, htmlPath, downloadDir, options = {})
|
|
|
102311
102560
|
);
|
|
102312
102561
|
const renderModeHints = detectRenderModeHints(sanitizedHtml);
|
|
102313
102562
|
const hasShaderTransitions = detectShaderTransitionUsage(sanitizedHtml);
|
|
102314
|
-
const
|
|
102563
|
+
const normalizedFontHtml = normalizeSystemFontPrimaryFamilies(
|
|
102315
102564
|
injectTextRenderingRule2(
|
|
102316
102565
|
coalesceHeadStylesAndBodyScripts2(promoteCssImportsToLinkTags(sanitizedHtml))
|
|
102317
|
-
)
|
|
102318
|
-
{
|
|
102319
|
-
failClosedFontFetch: options.failClosedFontFetch === true,
|
|
102320
|
-
allowSystemFontCapture: options.allowSystemFontCapture
|
|
102321
|
-
}
|
|
102566
|
+
)
|
|
102322
102567
|
);
|
|
102568
|
+
const coalescedHtml = await injectDeterministicFontFaces(normalizedFontHtml, {
|
|
102569
|
+
failClosedFontFetch: options.failClosedFontFetch === true,
|
|
102570
|
+
allowSystemFontCapture: options.allowSystemFontCapture
|
|
102571
|
+
});
|
|
102323
102572
|
const assembledHtml = await inlineExternalScripts(coalescedHtml);
|
|
102324
102573
|
const HF_POSITION_ATTRS = [
|
|
102325
102574
|
'data-hf-studio-path-offset="true"',
|
|
@@ -103290,6 +103539,7 @@ async function runAudioStage(input2) {
|
|
|
103290
103539
|
const stage3Start = Date.now();
|
|
103291
103540
|
const audioOutputPath = join39(workDir, "audio.aac");
|
|
103292
103541
|
let hasAudio = false;
|
|
103542
|
+
let audioError;
|
|
103293
103543
|
if (audios.length > 0) {
|
|
103294
103544
|
const audioResult = await processCompositionAudio(
|
|
103295
103545
|
audios,
|
|
@@ -103303,9 +103553,10 @@ async function runAudioStage(input2) {
|
|
|
103303
103553
|
);
|
|
103304
103554
|
assertNotAborted();
|
|
103305
103555
|
hasAudio = audioResult.success;
|
|
103556
|
+
if (!hasAudio) audioError = audioResult.error ?? "audio mix failed for an unknown reason";
|
|
103306
103557
|
}
|
|
103307
103558
|
const audioProcessMs = Date.now() - stage3Start;
|
|
103308
|
-
return { audioOutputPath, hasAudio, audioProcessMs };
|
|
103559
|
+
return { audioOutputPath, hasAudio, audioProcessMs, audioError };
|
|
103309
103560
|
}
|
|
103310
103561
|
var init_audioStage = __esm({
|
|
103311
103562
|
"../producer/src/services/render/stages/audioStage.ts"() {
|
|
@@ -104376,7 +104627,7 @@ import {
|
|
|
104376
104627
|
closeSync as closeSync3,
|
|
104377
104628
|
constants as constants2,
|
|
104378
104629
|
fstatSync as fstatSync2,
|
|
104379
|
-
mkdirSync as
|
|
104630
|
+
mkdirSync as mkdirSync20,
|
|
104380
104631
|
mkdtempSync as mkdtempSync2,
|
|
104381
104632
|
openSync as openSync2,
|
|
104382
104633
|
readFileSync as readFileSync25
|
|
@@ -104468,7 +104719,7 @@ async function extractHdrVideoFrames(args) {
|
|
|
104468
104719
|
for (const [videoId, srcPath] of prep.hdrVideoSrcPaths) {
|
|
104469
104720
|
const video = composition.videos.find((v2) => v2.id === videoId);
|
|
104470
104721
|
if (!video) continue;
|
|
104471
|
-
|
|
104722
|
+
mkdirSync20(framesDir, { recursive: true });
|
|
104472
104723
|
const frameDir = mkdtempSync2(join41(framesDir, `hdr_${tempDirSafePrefix(videoId)}-`));
|
|
104473
104724
|
const duration = video.end - video.start;
|
|
104474
104725
|
const dims = prep.hdrExtractionDims.get(videoId) ?? { width, height };
|
|
@@ -105187,7 +105438,7 @@ var init_captureHdrHybridLoop = __esm({
|
|
|
105187
105438
|
});
|
|
105188
105439
|
|
|
105189
105440
|
// ../producer/src/services/render/stages/captureHdrStage.ts
|
|
105190
|
-
import { existsSync as existsSync41, mkdirSync as
|
|
105441
|
+
import { existsSync as existsSync41, mkdirSync as mkdirSync21 } from "fs";
|
|
105191
105442
|
import { join as join46 } from "path";
|
|
105192
105443
|
async function runCaptureHdrStage(input2) {
|
|
105193
105444
|
const {
|
|
@@ -105349,7 +105600,7 @@ async function runCaptureHdrStage(input2) {
|
|
|
105349
105600
|
const debugDumpEnabled = process.env.KEEP_TEMP === "1";
|
|
105350
105601
|
const debugDumpDir = debugDumpEnabled ? join46(framesDir, "debug-composite") : null;
|
|
105351
105602
|
if (debugDumpDir && !existsSync41(debugDumpDir)) {
|
|
105352
|
-
|
|
105603
|
+
mkdirSync21(debugDumpDir, { recursive: true });
|
|
105353
105604
|
}
|
|
105354
105605
|
const compositeTransfer = resolveCompositeTransfer(hasHdrContent, effectiveHdr);
|
|
105355
105606
|
const hdrTargetTransfer = compositeTransfer === "srgb" ? void 0 : compositeTransfer;
|
|
@@ -105550,7 +105801,7 @@ var init_gifEncodeArgs = __esm({
|
|
|
105550
105801
|
});
|
|
105551
105802
|
|
|
105552
105803
|
// ../producer/src/services/render/stages/encodeStage.ts
|
|
105553
|
-
import { copyFileSync as copyFileSync4, existsSync as existsSync43, mkdirSync as
|
|
105804
|
+
import { copyFileSync as copyFileSync4, existsSync as existsSync43, mkdirSync as mkdirSync23, readdirSync as readdirSync14, rmSync as rmSync10, statSync as statSync12 } from "fs";
|
|
105554
105805
|
import { dirname as dirname18, join as join48 } from "path";
|
|
105555
105806
|
function resolveGifLoop(loop) {
|
|
105556
105807
|
const resolved = loop ?? 0;
|
|
@@ -105610,7 +105861,7 @@ async function encodeGifFromDir(framesDir, framePattern, outputPath, input2) {
|
|
|
105610
105861
|
error: formatFfmpegError(gifResult.exitCode, gifResult.stderr)
|
|
105611
105862
|
};
|
|
105612
105863
|
}
|
|
105613
|
-
const fileSize = existsSync43(outputPath) ?
|
|
105864
|
+
const fileSize = existsSync43(outputPath) ? statSync12(outputPath).size : 0;
|
|
105614
105865
|
return {
|
|
105615
105866
|
success: true,
|
|
105616
105867
|
outputPath,
|
|
@@ -105648,7 +105899,7 @@ async function runEncodeStage(input2) {
|
|
|
105648
105899
|
const stage5Start = Date.now();
|
|
105649
105900
|
if (isPngSequence) {
|
|
105650
105901
|
updateJobStatus(job, "encoding", "Writing PNG sequence", 75, onProgress);
|
|
105651
|
-
if (!existsSync43(outputPath))
|
|
105902
|
+
if (!existsSync43(outputPath)) mkdirSync23(outputPath, { recursive: true });
|
|
105652
105903
|
const captured = readdirSync14(framesDir).filter((name) => name.endsWith(".png")).sort();
|
|
105653
105904
|
if (captured.length === 0) {
|
|
105654
105905
|
throw new Error(
|
|
@@ -105792,12 +106043,12 @@ var init_assembleStage = __esm({
|
|
|
105792
106043
|
// ../producer/src/services/renderOrchestrator.ts
|
|
105793
106044
|
import {
|
|
105794
106045
|
existsSync as existsSync44,
|
|
105795
|
-
mkdirSync as
|
|
106046
|
+
mkdirSync as mkdirSync24,
|
|
105796
106047
|
mkdtempSync as mkdtempSync3,
|
|
105797
106048
|
readFileSync as readFileSync26,
|
|
105798
106049
|
readdirSync as readdirSync15,
|
|
105799
106050
|
rmSync as rmSync11,
|
|
105800
|
-
statSync as
|
|
106051
|
+
statSync as statSync13,
|
|
105801
106052
|
writeFileSync as writeFileSync13,
|
|
105802
106053
|
copyFileSync as copyFileSync5,
|
|
105803
106054
|
appendFileSync
|
|
@@ -105820,7 +106071,7 @@ function sampleDirectoryBytes(dir) {
|
|
|
105820
106071
|
for (const name of entries2) {
|
|
105821
106072
|
const full2 = join49(current2, name);
|
|
105822
106073
|
try {
|
|
105823
|
-
const st3 =
|
|
106074
|
+
const st3 = statSync13(full2);
|
|
105824
106075
|
if (st3.isDirectory()) {
|
|
105825
106076
|
stack.push(full2);
|
|
105826
106077
|
} else if (st3.isFile()) {
|
|
@@ -105977,6 +106228,7 @@ async function executeDiskCaptureWithAdaptiveRetry(options) {
|
|
|
105977
106228
|
let missingRanges = null;
|
|
105978
106229
|
let attempt = 0;
|
|
105979
106230
|
let transientRetriesUsed = 0;
|
|
106231
|
+
let pendingTransientRetry = false;
|
|
105980
106232
|
const rangeStart = options.frameRangeStart ?? 0;
|
|
105981
106233
|
while (true) {
|
|
105982
106234
|
const frameCount = missingRanges ? countFrameRanges(missingRanges) : options.totalFrames;
|
|
@@ -105984,8 +106236,9 @@ async function executeDiskCaptureWithAdaptiveRetry(options) {
|
|
|
105984
106236
|
attempt,
|
|
105985
106237
|
workers: currentWorkers,
|
|
105986
106238
|
frameCount,
|
|
105987
|
-
reason: attempt === 0 ? "initial" : "retry"
|
|
106239
|
+
reason: attempt === 0 ? "initial" : pendingTransientRetry ? "transient-retry" : "retry"
|
|
105988
106240
|
});
|
|
106241
|
+
pendingTransientRetry = false;
|
|
105989
106242
|
const attemptWorkDir = join49(options.workDir, `capture-attempt-${attempt}`);
|
|
105990
106243
|
const batches = missingRanges ? buildMissingFrameRetryBatches(
|
|
105991
106244
|
missingRanges,
|
|
@@ -106084,6 +106337,7 @@ async function executeDiskCaptureWithAdaptiveRetry(options) {
|
|
|
106084
106337
|
);
|
|
106085
106338
|
missingRanges = remaining;
|
|
106086
106339
|
attempt++;
|
|
106340
|
+
pendingTransientRetry = true;
|
|
106087
106341
|
continue;
|
|
106088
106342
|
}
|
|
106089
106343
|
if (!madeProgress) {
|
|
@@ -106172,7 +106426,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
106172
106426
|
const producerRoot = process.env.PRODUCER_RENDERS_DIR ? resolve26(process.env.PRODUCER_RENDERS_DIR, "..") : resolve26(moduleDir, "../..");
|
|
106173
106427
|
const debugDir = join49(producerRoot, ".debug");
|
|
106174
106428
|
const outputDir = dirname19(outputPath);
|
|
106175
|
-
if (!existsSync44(outputDir))
|
|
106429
|
+
if (!existsSync44(outputDir)) mkdirSync24(outputDir, { recursive: true });
|
|
106176
106430
|
const workDir = job.config.debug ? join49(debugDir, job.id) : mkdtempSync3(join49(outputDir, `work-${job.id}-`));
|
|
106177
106431
|
const pipelineStart = Date.now();
|
|
106178
106432
|
const log2 = job.config.logger ?? defaultLogger;
|
|
@@ -106218,6 +106472,11 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
106218
106472
|
Object.assign(captureObservability, patch);
|
|
106219
106473
|
captureObservability.captureMode = captureObservability.forceScreenshot ? "screenshot" : "beginframe";
|
|
106220
106474
|
};
|
|
106475
|
+
const captureAttempts = [];
|
|
106476
|
+
const recordTransientRetryObservability = () => {
|
|
106477
|
+
const count = captureAttempts.filter((a) => a.reason === "transient-retry").length;
|
|
106478
|
+
if (count > 0) updateCaptureObservability({ transientRetries: count });
|
|
106479
|
+
};
|
|
106221
106480
|
let memSampler = null;
|
|
106222
106481
|
try {
|
|
106223
106482
|
memSampler = createMemorySampler();
|
|
@@ -106229,7 +106488,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
106229
106488
|
job.startedAt = /* @__PURE__ */ new Date();
|
|
106230
106489
|
assertNotAborted();
|
|
106231
106490
|
assertConfiguredFfmpegBinariesExist();
|
|
106232
|
-
if (!existsSync44(workDir))
|
|
106491
|
+
if (!existsSync44(workDir)) mkdirSync24(workDir, { recursive: true });
|
|
106233
106492
|
if (job.config.debug) {
|
|
106234
106493
|
const logPath = join49(workDir, "render.log");
|
|
106235
106494
|
restoreLogger = installDebugLogger(logPath, log2);
|
|
@@ -106465,6 +106724,9 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
106465
106724
|
);
|
|
106466
106725
|
const { audioOutputPath, hasAudio } = audioResult;
|
|
106467
106726
|
perfStages.audioProcessMs = audioResult.audioProcessMs;
|
|
106727
|
+
if (audioResult.audioError) {
|
|
106728
|
+
log2.warn(`[Render] Audio mix failed \u2014 output will be video-only: ${audioResult.audioError}`);
|
|
106729
|
+
}
|
|
106468
106730
|
const stage4Start = Date.now();
|
|
106469
106731
|
updateJobStatus(job, "rendering", "Starting frame capture", 25, onProgress);
|
|
106470
106732
|
if (!fileServer) {
|
|
@@ -106491,7 +106753,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
106491
106753
|
throw new Error("File server failed to initialize before frame capture");
|
|
106492
106754
|
}
|
|
106493
106755
|
const framesDir = join49(workDir, "captured-frames");
|
|
106494
|
-
if (!existsSync44(framesDir))
|
|
106756
|
+
if (!existsSync44(framesDir)) mkdirSync24(framesDir, { recursive: true });
|
|
106495
106757
|
const resolvedBrowserGpuMode = await resolveBrowserGpuMode(cfg.browserGpuMode, {
|
|
106496
106758
|
chromePath: resolveHeadlessShellPath(cfg),
|
|
106497
106759
|
browserTimeout: cfg.browserTimeout
|
|
@@ -106591,7 +106853,6 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
106591
106853
|
durationSeconds: job.duration,
|
|
106592
106854
|
maxDurationSeconds: cfg.streamingEncodeMaxDurationSeconds
|
|
106593
106855
|
});
|
|
106594
|
-
const captureAttempts = [];
|
|
106595
106856
|
const dedupPerfs = [];
|
|
106596
106857
|
const FORMAT_EXT3 = {
|
|
106597
106858
|
mp4: ".mp4",
|
|
@@ -106876,6 +107137,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
106876
107137
|
updateJobStatus(job, "complete", "Render complete", 100, onProgress);
|
|
106877
107138
|
const totalElapsed = Date.now() - pipelineStart;
|
|
106878
107139
|
const tmpPeakBytes = existsSync44(workDir) ? sampleDirectoryBytes(workDir) : 0;
|
|
107140
|
+
recordTransientRetryObservability();
|
|
106879
107141
|
observability.checkpoint("pipeline", "completed", { totalElapsedMs: totalElapsed });
|
|
106880
107142
|
const observabilitySummary = observability.summary({
|
|
106881
107143
|
lastBrowserConsole,
|
|
@@ -106955,6 +107217,10 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
106955
107217
|
height: captureCompositionHeight,
|
|
106956
107218
|
totalFrames: captureTotalFrames
|
|
106957
107219
|
});
|
|
107220
|
+
if (memoryGuidance) {
|
|
107221
|
+
updateCaptureObservability({ memoryExhaustionDetected: true });
|
|
107222
|
+
}
|
|
107223
|
+
recordTransientRetryObservability();
|
|
106958
107224
|
const errorMessage = memoryGuidance ?? normalizeErrorMessage2(error);
|
|
106959
107225
|
const carriedBrowserConsole = getCaptureStageBrowserConsole(error);
|
|
106960
107226
|
if (carriedBrowserConsole.length > 0) {
|
|
@@ -107077,7 +107343,7 @@ var init_config3 = __esm({
|
|
|
107077
107343
|
});
|
|
107078
107344
|
|
|
107079
107345
|
// ../producer/src/services/hyperframeLint.ts
|
|
107080
|
-
import { existsSync as existsSync45, readFileSync as readFileSync27, statSync as
|
|
107346
|
+
import { existsSync as existsSync45, readFileSync as readFileSync27, statSync as statSync14 } from "fs";
|
|
107081
107347
|
import { resolve as resolve27, join as join50 } from "path";
|
|
107082
107348
|
function isStringRecord2(value) {
|
|
107083
107349
|
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
@@ -107106,7 +107372,7 @@ function pickEntryFile(files, preferredEntryFile) {
|
|
|
107106
107372
|
}
|
|
107107
107373
|
function readProjectEntryFile(projectDir, preferredEntryFile) {
|
|
107108
107374
|
const absProjectDir = resolve27(projectDir);
|
|
107109
|
-
if (!existsSync45(absProjectDir) || !
|
|
107375
|
+
if (!existsSync45(absProjectDir) || !statSync14(absProjectDir).isDirectory()) {
|
|
107110
107376
|
return { error: `Project directory not found: ${absProjectDir}` };
|
|
107111
107377
|
}
|
|
107112
107378
|
const entryCandidates = [preferredEntryFile, "index.html", "src/index.html"].filter(
|
|
@@ -107117,7 +107383,7 @@ function readProjectEntryFile(projectDir, preferredEntryFile) {
|
|
|
107117
107383
|
if (!absoluteEntryPath.startsWith(absProjectDir)) {
|
|
107118
107384
|
return { error: `Entry file must stay inside project directory: ${entryFile}` };
|
|
107119
107385
|
}
|
|
107120
|
-
if (existsSync45(absoluteEntryPath) &&
|
|
107386
|
+
if (existsSync45(absoluteEntryPath) && statSync14(absoluteEntryPath).isFile()) {
|
|
107121
107387
|
return {
|
|
107122
107388
|
entryFile,
|
|
107123
107389
|
html: readFileSync27(absoluteEntryPath, "utf-8"),
|
|
@@ -107308,8 +107574,8 @@ var init_semaphore = __esm({
|
|
|
107308
107574
|
// ../producer/src/server.ts
|
|
107309
107575
|
import {
|
|
107310
107576
|
existsSync as existsSync47,
|
|
107311
|
-
mkdirSync as
|
|
107312
|
-
statSync as
|
|
107577
|
+
mkdirSync as mkdirSync25,
|
|
107578
|
+
statSync as statSync15,
|
|
107313
107579
|
mkdtempSync as mkdtempSync4,
|
|
107314
107580
|
writeFileSync as writeFileSync14,
|
|
107315
107581
|
rmSync as rmSync12,
|
|
@@ -107376,7 +107642,7 @@ function resolvePreparedRenderOutput(prepared, rendersDir, log2) {
|
|
|
107376
107642
|
const { input: input2, cleanupProjectDir } = prepared;
|
|
107377
107643
|
const absoluteOutputPath = resolveOutputPath(input2.projectDir, input2.outputPath, rendersDir, log2);
|
|
107378
107644
|
const outputDir = dirname21(absoluteOutputPath);
|
|
107379
|
-
if (!existsSync47(outputDir))
|
|
107645
|
+
if (!existsSync47(outputDir)) mkdirSync25(outputDir, { recursive: true });
|
|
107380
107646
|
return { input: input2, cleanupProjectDir, absoluteOutputPath };
|
|
107381
107647
|
}
|
|
107382
107648
|
function validateRenderOverrides(body) {
|
|
@@ -107406,7 +107672,7 @@ async function prepareRenderBody(body) {
|
|
|
107406
107672
|
const projectDir = typeof body.projectDir === "string" ? body.projectDir : void 0;
|
|
107407
107673
|
if (projectDir) {
|
|
107408
107674
|
const absProjectDir = resolve28(projectDir);
|
|
107409
|
-
if (!existsSync47(absProjectDir) || !
|
|
107675
|
+
if (!existsSync47(absProjectDir) || !statSync15(absProjectDir).isDirectory()) {
|
|
107410
107676
|
return { error: `Project directory not found: ${absProjectDir}` };
|
|
107411
107677
|
}
|
|
107412
107678
|
const entry = options.entryFile || "index.html";
|
|
@@ -107573,7 +107839,7 @@ function createRenderHandlers(options = {}) {
|
|
|
107573
107839
|
log2.info(`render progress ${pct}%`, { requestId, stage: j3.currentStage, message });
|
|
107574
107840
|
}
|
|
107575
107841
|
});
|
|
107576
|
-
const fileSize = existsSync47(absoluteOutputPath) ?
|
|
107842
|
+
const fileSize = existsSync47(absoluteOutputPath) ? statSync15(absoluteOutputPath).size : 0;
|
|
107577
107843
|
const durationMs = Date.now() - t0;
|
|
107578
107844
|
const outputToken = store.register(absoluteOutputPath);
|
|
107579
107845
|
const outputUrl = `${outputUrlPrefix}/${outputToken}`;
|
|
@@ -107689,7 +107955,7 @@ function createRenderHandlers(options = {}) {
|
|
|
107689
107955
|
},
|
|
107690
107956
|
abortController.signal
|
|
107691
107957
|
);
|
|
107692
|
-
const fileSize = existsSync47(absoluteOutputPath) ?
|
|
107958
|
+
const fileSize = existsSync47(absoluteOutputPath) ? statSync15(absoluteOutputPath).size : 0;
|
|
107693
107959
|
const outputToken = store.register(absoluteOutputPath);
|
|
107694
107960
|
const outputUrl = `${outputUrlPrefix}/${outputToken}`;
|
|
107695
107961
|
log2.info("render-stream completed", { requestId, fileSize, perf: job.perfSummary ?? null });
|
|
@@ -107752,7 +108018,7 @@ function createRenderHandlers(options = {}) {
|
|
|
107752
108018
|
store.delete(token);
|
|
107753
108019
|
return c3.json({ success: false, error: "Output artifact file missing" }, 404);
|
|
107754
108020
|
}
|
|
107755
|
-
const stats =
|
|
108021
|
+
const stats = statSync15(artifact.path);
|
|
107756
108022
|
return new Response(createReadStream2(artifact.path), {
|
|
107757
108023
|
headers: {
|
|
107758
108024
|
"content-type": "video/mp4",
|
|
@@ -107916,7 +108182,7 @@ var init_planHash = __esm({
|
|
|
107916
108182
|
});
|
|
107917
108183
|
|
|
107918
108184
|
// ../producer/src/services/render/stages/freezePlan.ts
|
|
107919
|
-
import { existsSync as existsSync48, mkdirSync as
|
|
108185
|
+
import { existsSync as existsSync48, mkdirSync as mkdirSync26, readFileSync as readFileSync28, readdirSync as readdirSync16, writeFileSync as writeFileSync15 } from "fs";
|
|
107920
108186
|
import { join as join54, relative as relative9, resolve as resolve29 } from "path";
|
|
107921
108187
|
function stripUndefined(value) {
|
|
107922
108188
|
if (Array.isArray(value)) return value.map(stripUndefined);
|
|
@@ -108012,7 +108278,7 @@ async function freezePlan(input2) {
|
|
|
108012
108278
|
throw new Error(`[freezePlan] planDir does not exist: ${planDir}`);
|
|
108013
108279
|
}
|
|
108014
108280
|
const metaDir = join54(planDir, "meta");
|
|
108015
|
-
if (!existsSync48(metaDir))
|
|
108281
|
+
if (!existsSync48(metaDir)) mkdirSync26(metaDir, { recursive: true });
|
|
108016
108282
|
writeFileSync15(
|
|
108017
108283
|
join54(metaDir, "composition.json"),
|
|
108018
108284
|
`${JSON.stringify(composition, null, 2)}
|
|
@@ -108080,7 +108346,9 @@ function validateNoGpuEncode(config) {
|
|
|
108080
108346
|
}
|
|
108081
108347
|
}
|
|
108082
108348
|
function validateNoSystemFonts(compiledHtml) {
|
|
108083
|
-
|
|
108349
|
+
const customProperties = collectFontFamilyCustomProperties(compiledHtml);
|
|
108350
|
+
for (const { surface, declaration } of iterateFontFamilyDeclarations(compiledHtml)) {
|
|
108351
|
+
const families = resolveFontFamilyDeclarationFamilies(declaration, customProperties);
|
|
108084
108352
|
if (families.length === 0) continue;
|
|
108085
108353
|
const primaryRaw = families[0];
|
|
108086
108354
|
if (!GENERIC_FAMILIES2.has(primaryRaw.toLowerCase())) continue;
|
|
@@ -108240,11 +108508,11 @@ var init_shared2 = __esm({
|
|
|
108240
108508
|
import {
|
|
108241
108509
|
cpSync as cpSync3,
|
|
108242
108510
|
existsSync as existsSync50,
|
|
108243
|
-
mkdirSync as
|
|
108511
|
+
mkdirSync as mkdirSync27,
|
|
108244
108512
|
readdirSync as readdirSync17,
|
|
108245
108513
|
renameSync as renameSync5,
|
|
108246
108514
|
rmSync as rmSync13,
|
|
108247
|
-
statSync as
|
|
108515
|
+
statSync as statSync16,
|
|
108248
108516
|
writeFileSync as writeFileSync16
|
|
108249
108517
|
} from "fs";
|
|
108250
108518
|
import { join as join56, relative as relative10, sep as sep6 } from "path";
|
|
@@ -108277,7 +108545,7 @@ function measurePlanDirBytes(planDir) {
|
|
|
108277
108545
|
walk(full2);
|
|
108278
108546
|
} else if (entry.isFile()) {
|
|
108279
108547
|
try {
|
|
108280
|
-
total +=
|
|
108548
|
+
total += statSync16(full2).size;
|
|
108281
108549
|
} catch {
|
|
108282
108550
|
}
|
|
108283
108551
|
}
|
|
@@ -108411,7 +108679,7 @@ async function plan(projectDir, config, planDir) {
|
|
|
108411
108679
|
useGpu: false,
|
|
108412
108680
|
browserGpuMode: "software"
|
|
108413
108681
|
});
|
|
108414
|
-
if (!existsSync50(planDir))
|
|
108682
|
+
if (!existsSync50(planDir)) mkdirSync27(planDir, { recursive: true });
|
|
108415
108683
|
const log2 = config.logger ?? defaultLogger;
|
|
108416
108684
|
const abortSignal = config.abortSignal;
|
|
108417
108685
|
const assertNotAborted = () => {
|
|
@@ -108445,9 +108713,9 @@ async function plan(projectDir, config, planDir) {
|
|
|
108445
108713
|
throw new Error(`[plan] entry file not found: ${htmlPath}`);
|
|
108446
108714
|
}
|
|
108447
108715
|
const workDir = join56(planDir, ".plan-work");
|
|
108448
|
-
if (!existsSync50(workDir))
|
|
108716
|
+
if (!existsSync50(workDir)) mkdirSync27(workDir, { recursive: true });
|
|
108449
108717
|
const compiledDir = join56(workDir, "compiled");
|
|
108450
|
-
|
|
108718
|
+
mkdirSync27(compiledDir, { recursive: true });
|
|
108451
108719
|
cpSync3(projectDir, compiledDir, {
|
|
108452
108720
|
recursive: true,
|
|
108453
108721
|
dereference: true,
|
|
@@ -108540,13 +108808,16 @@ async function plan(projectDir, config, planDir) {
|
|
|
108540
108808
|
abortSignal,
|
|
108541
108809
|
assertNotAborted
|
|
108542
108810
|
});
|
|
108811
|
+
if (audioResult.audioError) {
|
|
108812
|
+
log2.warn(`[Render] Audio mix failed \u2014 output will be video-only: ${audioResult.audioError}`);
|
|
108813
|
+
}
|
|
108543
108814
|
const stagedVideoFrames = join56(compiledDir, "__hyperframes_video_frames");
|
|
108544
108815
|
const videoFramesDst = join56(planDir, "video-frames");
|
|
108545
108816
|
if (existsSync50(videoFramesDst)) rmSync13(videoFramesDst, { recursive: true, force: true });
|
|
108546
108817
|
if (existsSync50(stagedVideoFrames)) {
|
|
108547
108818
|
renameSync5(stagedVideoFrames, videoFramesDst);
|
|
108548
108819
|
} else {
|
|
108549
|
-
|
|
108820
|
+
mkdirSync27(videoFramesDst, { recursive: true });
|
|
108550
108821
|
}
|
|
108551
108822
|
if (existsSync50(finalCompiledDir)) rmSync13(finalCompiledDir, { recursive: true, force: true });
|
|
108552
108823
|
renameSync5(compiledDir, finalCompiledDir);
|
|
@@ -108561,7 +108832,7 @@ async function plan(projectDir, config, planDir) {
|
|
|
108561
108832
|
metadata: ext.metadata
|
|
108562
108833
|
}))
|
|
108563
108834
|
};
|
|
108564
|
-
|
|
108835
|
+
mkdirSync27(join56(planDir, "meta"), { recursive: true });
|
|
108565
108836
|
writeFileSync16(
|
|
108566
108837
|
join56(planDir, PLAN_VIDEOS_META_RELATIVE_PATH),
|
|
108567
108838
|
JSON.stringify(planVideosJson, null, 2),
|
|
@@ -108711,7 +108982,7 @@ var init_plan = __esm({
|
|
|
108711
108982
|
|
|
108712
108983
|
// ../producer/src/services/distributed/renderChunk.ts
|
|
108713
108984
|
import { randomBytes as randomBytes2 } from "crypto";
|
|
108714
|
-
import { existsSync as existsSync51, mkdirSync as
|
|
108985
|
+
import { existsSync as existsSync51, mkdirSync as mkdirSync28, readFileSync as readFileSync30, readdirSync as readdirSync18, rmSync as rmSync14, writeFileSync as writeFileSync17 } from "fs";
|
|
108715
108986
|
import { extname as extname10, join as join57 } from "path";
|
|
108716
108987
|
function rebuildExtractedFramesFromPlanDir(planDir, videos) {
|
|
108717
108988
|
const result = [];
|
|
@@ -108877,9 +109148,9 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath) {
|
|
|
108877
109148
|
"software"
|
|
108878
109149
|
);
|
|
108879
109150
|
const workDir = `${outputChunkPath}.work.${process.pid}.${randomBytes2(4).toString("hex")}`;
|
|
108880
|
-
|
|
109151
|
+
mkdirSync28(workDir, { recursive: true });
|
|
108881
109152
|
const framesDir = join57(workDir, "captured-frames");
|
|
108882
|
-
|
|
109153
|
+
mkdirSync28(framesDir, { recursive: true });
|
|
108883
109154
|
const fileServer = await createFileServer2({
|
|
108884
109155
|
projectDir: compiledDir,
|
|
108885
109156
|
compiledDir,
|
|
@@ -108958,10 +109229,10 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath) {
|
|
|
108958
109229
|
const effectiveBitrate = encoder.crf != null ? void 0 : encoder.bitrate;
|
|
108959
109230
|
const videoOnlyPath = outputChunkPath;
|
|
108960
109231
|
if (isPngSequence) {
|
|
108961
|
-
if (!existsSync51(outputChunkPath))
|
|
109232
|
+
if (!existsSync51(outputChunkPath)) mkdirSync28(outputChunkPath, { recursive: true });
|
|
108962
109233
|
} else {
|
|
108963
109234
|
const outDir = join57(outputChunkPath, "..");
|
|
108964
|
-
if (!existsSync51(outDir))
|
|
109235
|
+
if (!existsSync51(outDir)) mkdirSync28(outDir, { recursive: true });
|
|
108965
109236
|
}
|
|
108966
109237
|
const encodeStarted = Date.now();
|
|
108967
109238
|
await runEncodeStage({
|
|
@@ -109400,11 +109671,11 @@ var init_audioPadTrim = __esm({
|
|
|
109400
109671
|
import {
|
|
109401
109672
|
cpSync as cpSync4,
|
|
109402
109673
|
existsSync as existsSync53,
|
|
109403
|
-
mkdirSync as
|
|
109674
|
+
mkdirSync as mkdirSync29,
|
|
109404
109675
|
readFileSync as readFileSync31,
|
|
109405
109676
|
readdirSync as readdirSync19,
|
|
109406
109677
|
rmSync as rmSync16,
|
|
109407
|
-
statSync as
|
|
109678
|
+
statSync as statSync17,
|
|
109408
109679
|
writeFileSync as writeFileSync18
|
|
109409
109680
|
} from "fs";
|
|
109410
109681
|
import { dirname as dirname23, join as join58 } from "path";
|
|
@@ -109437,11 +109708,11 @@ async function assemble(planDir, chunkPaths, audioPath, outputPath, options) {
|
|
|
109437
109708
|
return mergePngFrameDirs(chunkPaths, outputPath, plan2.totalFrames, audioPath, start);
|
|
109438
109709
|
}
|
|
109439
109710
|
if (!existsSync53(dirname23(outputPath))) {
|
|
109440
|
-
|
|
109711
|
+
mkdirSync29(dirname23(outputPath), { recursive: true });
|
|
109441
109712
|
}
|
|
109442
109713
|
const workDir = `${outputPath}.assemble-work`;
|
|
109443
109714
|
if (existsSync53(workDir)) rmSync16(workDir, { recursive: true, force: true });
|
|
109444
|
-
|
|
109715
|
+
mkdirSync29(workDir, { recursive: true });
|
|
109445
109716
|
try {
|
|
109446
109717
|
const concatOutputPath = join58(workDir, `concat.${plan2.dimensions.format}`);
|
|
109447
109718
|
const fpsArg = fpsToFfmpegArg({
|
|
@@ -109586,7 +109857,7 @@ async function assemble(planDir, chunkPaths, audioPath, outputPath, options) {
|
|
|
109586
109857
|
});
|
|
109587
109858
|
}
|
|
109588
109859
|
}
|
|
109589
|
-
const fileSize = existsSync53(outputPath) ?
|
|
109860
|
+
const fileSize = existsSync53(outputPath) ? statSync17(outputPath).size : 0;
|
|
109590
109861
|
return {
|
|
109591
109862
|
outputPath,
|
|
109592
109863
|
durationMs: Date.now() - start,
|
|
@@ -109596,10 +109867,10 @@ async function assemble(planDir, chunkPaths, audioPath, outputPath, options) {
|
|
|
109596
109867
|
}
|
|
109597
109868
|
function mergePngFrameDirs(chunkPaths, outputPath, totalFrames, audioPath, startTimeMs) {
|
|
109598
109869
|
if (existsSync53(outputPath)) rmSync16(outputPath, { recursive: true, force: true });
|
|
109599
|
-
|
|
109870
|
+
mkdirSync29(outputPath, { recursive: true });
|
|
109600
109871
|
let globalIdx = 0;
|
|
109601
109872
|
for (const chunkDir of chunkPaths) {
|
|
109602
|
-
if (!
|
|
109873
|
+
if (!statSync17(chunkDir).isDirectory()) {
|
|
109603
109874
|
throw new Error(
|
|
109604
109875
|
`[assemble] png-sequence chunk must be a directory: ${chunkDir} (got a file)`
|
|
109605
109876
|
);
|
|
@@ -109626,7 +109897,7 @@ function mergePngFrameDirs(chunkPaths, outputPath, totalFrames, audioPath, start
|
|
|
109626
109897
|
let fileSize = 0;
|
|
109627
109898
|
for (const name of readdirSync19(outputPath)) {
|
|
109628
109899
|
try {
|
|
109629
|
-
fileSize +=
|
|
109900
|
+
fileSize += statSync17(join58(outputPath, name)).size;
|
|
109630
109901
|
} catch {
|
|
109631
109902
|
}
|
|
109632
109903
|
}
|
|
@@ -109740,7 +110011,7 @@ __export(studioServer_exports, {
|
|
|
109740
110011
|
});
|
|
109741
110012
|
import { Hono as Hono5 } from "hono";
|
|
109742
110013
|
import { streamSSE as streamSSE3 } from "hono/streaming";
|
|
109743
|
-
import { existsSync as existsSync54, readFileSync as readFileSync34, writeFileSync as writeFileSync19, statSync as
|
|
110014
|
+
import { existsSync as existsSync54, readFileSync as readFileSync34, writeFileSync as writeFileSync19, statSync as statSync18 } from "fs";
|
|
109744
110015
|
import { resolve as resolve30, join as join60, basename as basename8 } from "path";
|
|
109745
110016
|
function resolveDistDir() {
|
|
109746
110017
|
return resolveStudioBundle().dir;
|
|
@@ -110196,7 +110467,7 @@ function createStudioServer(options) {
|
|
|
110196
110467
|
});
|
|
110197
110468
|
const serveStudioStaticFile = (c3) => {
|
|
110198
110469
|
const filePath = resolve30(studioDir, c3.req.path.slice(1));
|
|
110199
|
-
if (!existsSync54(filePath) || !
|
|
110470
|
+
if (!existsSync54(filePath) || !statSync18(filePath).isFile()) return c3.text("not found", 404);
|
|
110200
110471
|
const content = readFileSync34(filePath);
|
|
110201
110472
|
return new Response(content, {
|
|
110202
110473
|
headers: { "Content-Type": getMimeType(filePath), "Cache-Control": "no-store" }
|
|
@@ -110307,7 +110578,7 @@ __export(preview_exports, {
|
|
|
110307
110578
|
examples: () => examples2
|
|
110308
110579
|
});
|
|
110309
110580
|
import { spawn as spawn12 } from "child_process";
|
|
110310
|
-
import { existsSync as existsSync55, lstatSync as lstatSync3, symlinkSync as symlinkSync3, unlinkSync as unlinkSync4, readlinkSync, mkdirSync as
|
|
110581
|
+
import { existsSync as existsSync55, lstatSync as lstatSync3, symlinkSync as symlinkSync3, unlinkSync as unlinkSync4, readlinkSync, mkdirSync as mkdirSync30 } from "fs";
|
|
110311
110582
|
import { resolve as resolve31, dirname as dirname24, basename as basename9, join as join61 } from "path";
|
|
110312
110583
|
import { fileURLToPath as fileURLToPath8 } from "url";
|
|
110313
110584
|
import { createRequire as createRequire2 } from "module";
|
|
@@ -110615,7 +110886,7 @@ function printStudioSummary(projectName, url, opts = {}) {
|
|
|
110615
110886
|
}
|
|
110616
110887
|
function linkProjectIntoStudioData(dir, projectsDir, projectName) {
|
|
110617
110888
|
const symlinkPath = join61(projectsDir, projectName);
|
|
110618
|
-
|
|
110889
|
+
mkdirSync30(projectsDir, { recursive: true });
|
|
110619
110890
|
let createdSymlink = false;
|
|
110620
110891
|
if (dir !== symlinkPath) {
|
|
110621
110892
|
if (existsSync55(symlinkPath)) {
|
|
@@ -111062,7 +111333,7 @@ __export(init_exports, {
|
|
|
111062
111333
|
});
|
|
111063
111334
|
import {
|
|
111064
111335
|
existsSync as existsSync56,
|
|
111065
|
-
mkdirSync as
|
|
111336
|
+
mkdirSync as mkdirSync31,
|
|
111066
111337
|
copyFileSync as copyFileSync6,
|
|
111067
111338
|
cpSync as cpSync5,
|
|
111068
111339
|
writeFileSync as writeFileSync20,
|
|
@@ -111401,7 +111672,7 @@ function applyResolutionPreset(destDir, resolution) {
|
|
|
111401
111672
|
}
|
|
111402
111673
|
}
|
|
111403
111674
|
async function scaffoldProject(destDir, name, templateId, localVideoName, durationSeconds, tailwind = false, resolution) {
|
|
111404
|
-
|
|
111675
|
+
mkdirSync31(destDir, { recursive: true });
|
|
111405
111676
|
const templateDir = getStaticTemplateDir(templateId);
|
|
111406
111677
|
if (existsSync56(join63(templateDir, "index.html"))) {
|
|
111407
111678
|
cpSync5(templateDir, destDir, { recursive: true });
|
|
@@ -111643,7 +111914,7 @@ var init_init = __esm({
|
|
|
111643
111914
|
console.error(c.error(`Audio file not found: ${audioFlag}`));
|
|
111644
111915
|
process.exit(1);
|
|
111645
111916
|
}
|
|
111646
|
-
|
|
111917
|
+
mkdirSync31(destDir2, { recursive: true });
|
|
111647
111918
|
let localVideoName2;
|
|
111648
111919
|
let videoDuration2;
|
|
111649
111920
|
let sourceFilePath2;
|
|
@@ -111785,7 +112056,7 @@ var init_init = __esm({
|
|
|
111785
112056
|
me("Setup cancelled.");
|
|
111786
112057
|
process.exit(1);
|
|
111787
112058
|
}
|
|
111788
|
-
|
|
112059
|
+
mkdirSync31(destDir, { recursive: true });
|
|
111789
112060
|
sourceFilePath = videoPath;
|
|
111790
112061
|
const result = await handleVideoFile(videoPath, destDir, true);
|
|
111791
112062
|
localVideoName = result.localVideoName;
|
|
@@ -111797,7 +112068,7 @@ var init_init = __esm({
|
|
|
111797
112068
|
me("Setup cancelled.");
|
|
111798
112069
|
process.exit(1);
|
|
111799
112070
|
}
|
|
111800
|
-
|
|
112071
|
+
mkdirSync31(destDir, { recursive: true });
|
|
111801
112072
|
sourceFilePath = audioPath;
|
|
111802
112073
|
copyFileSync6(audioPath, resolve33(destDir, basename10(audioPath)));
|
|
111803
112074
|
R2.info(`Audio copied to ${c.accent(basename10(audioPath))}`);
|
|
@@ -112667,18 +112938,18 @@ function buildPresentPage(projectName, islandJson) {
|
|
|
112667
112938
|
<meta charset="UTF-8" />
|
|
112668
112939
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
112669
112940
|
<title>${escHtml(projectName)} \u2014 Presenter</title>
|
|
112941
|
+
<script>
|
|
112942
|
+
// Retitle the audience tab so the two tabs are distinguishable in the
|
|
112943
|
+
// browser tab strip and in Meet's "Share a tab" picker.
|
|
112944
|
+
if (new URLSearchParams(location.search).get("mode") === "audience") {
|
|
112945
|
+
document.title = ${JSON.stringify(projectName).replace(/</g, "\\u003c")} + " \u2014 Audience";
|
|
112946
|
+
}
|
|
112947
|
+
</script>
|
|
112670
112948
|
<style>
|
|
112671
112949
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
112672
112950
|
html, body { height: 100%; background: #0a0a0a; overflow: hidden; }
|
|
112673
112951
|
hyperframes-slideshow { display: block; position: relative; width: 100vw; height: 100vh; }
|
|
112674
112952
|
hyperframes-player { position: absolute; inset: 0; }
|
|
112675
|
-
#present-btn {
|
|
112676
|
-
position: fixed; top: 18px; right: 18px; z-index: 99999;
|
|
112677
|
-
font: 600 14px/1 system-ui, sans-serif; color: #0d1321;
|
|
112678
|
-
background: #f4b740; border: none; border-radius: 999px;
|
|
112679
|
-
padding: 11px 18px; cursor: pointer; box-shadow: 0 6px 20px rgba(0,0,0,.45);
|
|
112680
|
-
}
|
|
112681
|
-
#present-btn:hover { background: #ffcb5c; }
|
|
112682
112953
|
</style>
|
|
112683
112954
|
<script src="/player.js"></script>
|
|
112684
112955
|
<script src="/slideshow.js"></script>
|
|
@@ -112690,28 +112961,8 @@ function buildPresentPage(projectName, islandJson) {
|
|
|
112690
112961
|
${islandJson}
|
|
112691
112962
|
</script>
|
|
112692
112963
|
</hyperframes-slideshow>
|
|
112693
|
-
|
|
112694
|
-
|
|
112695
|
-
(function () {
|
|
112696
|
-
// The audience window loads this same page with ?mode=audience; it must not
|
|
112697
|
-
// show the Present button or it would recurse opening windows.
|
|
112698
|
-
var isAudience = new URLSearchParams(location.search).get("mode") === "audience";
|
|
112699
|
-
var btn = document.getElementById("present-btn");
|
|
112700
|
-
if (isAudience) { if (btn) btn.remove(); return; }
|
|
112701
|
-
function present() {
|
|
112702
|
-
var ss = document.querySelector("hyperframes-slideshow");
|
|
112703
|
-
if (ss && typeof ss.present === "function") {
|
|
112704
|
-
ss.present();
|
|
112705
|
-
if (btn) btn.style.display = "none";
|
|
112706
|
-
}
|
|
112707
|
-
}
|
|
112708
|
-
if (btn) btn.addEventListener("click", present);
|
|
112709
|
-
// 'P' opens presenter mode (window.open needs a user gesture, so a key/click).
|
|
112710
|
-
window.addEventListener("keydown", function (e) {
|
|
112711
|
-
if ((e.key === "p" || e.key === "P") && !e.metaKey && !e.ctrlKey) present();
|
|
112712
|
-
});
|
|
112713
|
-
})();
|
|
112714
|
-
</script>
|
|
112964
|
+
<!-- Present CTA lives in the component's nav cluster (data-hf-present, plus
|
|
112965
|
+
the P key) \u2014 no page-level button, or we'd render two Present CTAs. -->
|
|
112715
112966
|
<script>
|
|
112716
112967
|
// Sound effects play HERE, in the parent document. The composition runs in the
|
|
112717
112968
|
// player's iframe, which is autoplay-blocked without its own user gesture; the
|
|
@@ -112880,6 +113131,15 @@ var init_present = __esm({
|
|
|
112880
113131
|
return;
|
|
112881
113132
|
}
|
|
112882
113133
|
const islandJson = islandMatch[1].trim();
|
|
113134
|
+
try {
|
|
113135
|
+
JSON.parse(islandJson);
|
|
113136
|
+
} catch (err) {
|
|
113137
|
+
R2.error(
|
|
113138
|
+
`Slideshow island in ${project.indexPath} is not valid JSON: ${err.message}`
|
|
113139
|
+
);
|
|
113140
|
+
process.exitCode = 1;
|
|
113141
|
+
return;
|
|
113142
|
+
}
|
|
112883
113143
|
const { Hono: Hono6 } = await import("hono");
|
|
112884
113144
|
const { createAdaptorServer } = await import("@hono/node-server");
|
|
112885
113145
|
const { isSafePath: isSafePath2 } = await Promise.resolve().then(() => (init_studio_api(), studio_api_exports));
|
|
@@ -112921,7 +113181,15 @@ var init_present = __esm({
|
|
|
112921
113181
|
console.log(` ${c.dim("Deck")} ${c.accent(project.name)}`);
|
|
112922
113182
|
console.log(` ${c.dim("Present")} ${c.accent(url)}`);
|
|
112923
113183
|
console.log();
|
|
112924
|
-
console.log(
|
|
113184
|
+
console.log(
|
|
113185
|
+
` ${c.dim("Click the Present control (or press P) to open the audience display.")}`
|
|
113186
|
+
);
|
|
113187
|
+
console.log(
|
|
113188
|
+
` ${c.dim('Google Meet: share the AUDIENCE tab ("Share screen \u2192 A tab"), not a window or your whole screen.')}`
|
|
113189
|
+
);
|
|
113190
|
+
console.log(
|
|
113191
|
+
` ${c.dim("Zoom desktop: drag the audience tab into its own window and share that window (keep it at least partly visible).")}`
|
|
113192
|
+
);
|
|
112925
113193
|
console.log(` ${c.dim("Press Ctrl+C to stop")}`);
|
|
112926
113194
|
console.log();
|
|
112927
113195
|
if (args.open) {
|
|
@@ -112940,7 +113208,7 @@ var init_present = __esm({
|
|
|
112940
113208
|
|
|
112941
113209
|
// src/utils/publishProject.ts
|
|
112942
113210
|
import { basename as basename11, dirname as dirname27, join as join64, posix as posix4, relative as relative13, resolve as resolve39 } from "path";
|
|
112943
|
-
import { existsSync as existsSync61, readdirSync as readdirSync23, readFileSync as readFileSync38, statSync as
|
|
113211
|
+
import { existsSync as existsSync61, readdirSync as readdirSync23, readFileSync as readFileSync38, statSync as statSync19 } from "fs";
|
|
112944
113212
|
import AdmZip from "adm-zip";
|
|
112945
113213
|
function isRecord3(value) {
|
|
112946
113214
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -113047,7 +113315,7 @@ function collectProjectFiles(rootDir, currentDir, paths) {
|
|
|
113047
113315
|
collectProjectFiles(rootDir, absolutePath, paths);
|
|
113048
113316
|
continue;
|
|
113049
113317
|
}
|
|
113050
|
-
if (!
|
|
113318
|
+
if (!statSync19(absolutePath).isFile()) continue;
|
|
113051
113319
|
paths.push(relativePath);
|
|
113052
113320
|
}
|
|
113053
113321
|
}
|
|
@@ -113074,7 +113342,7 @@ function tryResolveExternal(ctx, rawPath, referrerAbsDir) {
|
|
|
113074
113342
|
const absPath = resolve39(referrerAbsDir, rawPath);
|
|
113075
113343
|
if (isPathInside(absPath, ctx.absProjectDir)) return null;
|
|
113076
113344
|
try {
|
|
113077
|
-
if (!existsSync61(absPath) || !
|
|
113345
|
+
if (!existsSync61(absPath) || !statSync19(absPath).isFile()) return null;
|
|
113078
113346
|
} catch {
|
|
113079
113347
|
return null;
|
|
113080
113348
|
}
|
|
@@ -114103,7 +114371,7 @@ __export(batchRender_exports, {
|
|
|
114103
114371
|
resolveOutputTemplate: () => resolveOutputTemplate,
|
|
114104
114372
|
runBatchRender: () => runBatchRender
|
|
114105
114373
|
});
|
|
114106
|
-
import { mkdirSync as
|
|
114374
|
+
import { mkdirSync as mkdirSync33, readFileSync as readFileSync40, writeFileSync as writeFileSync21 } from "fs";
|
|
114107
114375
|
import { dirname as dirname28, join as join66, resolve as resolve43, sep as sep8 } from "path";
|
|
114108
114376
|
function isRecord4(value) {
|
|
114109
114377
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
@@ -114288,7 +114556,7 @@ function summarizeManifest(manifest) {
|
|
|
114288
114556
|
}
|
|
114289
114557
|
function writeManifest(manifest) {
|
|
114290
114558
|
summarizeManifest(manifest);
|
|
114291
|
-
|
|
114559
|
+
mkdirSync33(dirname28(manifest.manifestPath), { recursive: true });
|
|
114292
114560
|
writeFileSync21(manifest.manifestPath, JSON.stringify(manifest, null, 2) + "\n", "utf8");
|
|
114293
114561
|
}
|
|
114294
114562
|
function emitJsonEvent(event, json) {
|
|
@@ -114310,7 +114578,7 @@ async function renderBatchRow(row, manifest, options) {
|
|
|
114310
114578
|
console.log(c.dim(`Batch row ${row.index}: ${row.outputPath}`));
|
|
114311
114579
|
}
|
|
114312
114580
|
try {
|
|
114313
|
-
|
|
114581
|
+
mkdirSync33(dirname28(row.outputPath), { recursive: true });
|
|
114314
114582
|
const result = await options.renderOne(row);
|
|
114315
114583
|
manifestRow.status = "completed";
|
|
114316
114584
|
manifestRow.durationMs = result.durationMs ?? null;
|
|
@@ -114451,7 +114719,7 @@ __export(render_exports, {
|
|
|
114451
114719
|
renderLocal: () => renderLocal,
|
|
114452
114720
|
resolveBrowserGpuForCli: () => resolveBrowserGpuForCli
|
|
114453
114721
|
});
|
|
114454
|
-
import { mkdirSync as
|
|
114722
|
+
import { mkdirSync as mkdirSync34, readdirSync as readdirSync24, readFileSync as readFileSync41, statSync as statSync20, writeFileSync as writeFileSync23, rmSync as rmSync17 } from "fs";
|
|
114455
114723
|
import { cpus as cpus4, freemem as freemem5, tmpdir as tmpdir5 } from "os";
|
|
114456
114724
|
import { resolve as resolve44, dirname as dirname29, join as join67, basename as basename12 } from "path";
|
|
114457
114725
|
import { execFileSync as execFileSync9, spawn as spawn14 } from "child_process";
|
|
@@ -114506,7 +114774,8 @@ async function checkRenderResolutionPreflight(compositionHtml, outputResolution,
|
|
|
114506
114774
|
alphaRequested: modes.alphaRequested,
|
|
114507
114775
|
hdrRequested: modes.hdrRequested
|
|
114508
114776
|
});
|
|
114509
|
-
|
|
114777
|
+
if (compat.ok || !compat.message || !compat.kind) return void 0;
|
|
114778
|
+
return { message: compat.message, kind: compat.kind };
|
|
114510
114779
|
}
|
|
114511
114780
|
function dockerImageTag(version2) {
|
|
114512
114781
|
return `${DOCKER_IMAGE_PREFIX}:${version2}`;
|
|
@@ -114516,7 +114785,7 @@ function resolveDockerfilePath() {
|
|
|
114516
114785
|
const devPath = resolve44(__dirname, "..", "src", "docker", "Dockerfile.render");
|
|
114517
114786
|
for (const p2 of [builtPath, devPath]) {
|
|
114518
114787
|
try {
|
|
114519
|
-
|
|
114788
|
+
statSync20(p2);
|
|
114520
114789
|
return p2;
|
|
114521
114790
|
} catch {
|
|
114522
114791
|
continue;
|
|
@@ -114545,7 +114814,7 @@ function ensureDockerImage(version2, platform10, quiet) {
|
|
|
114545
114814
|
if (!quiet) console.log(c.dim(` Building Docker image: ${tag} (${platform10})...`));
|
|
114546
114815
|
const dockerfilePath = resolveDockerfilePath();
|
|
114547
114816
|
const tmpDir = join67(tmpdir5(), `hyperframes-docker-${Date.now()}`);
|
|
114548
|
-
|
|
114817
|
+
mkdirSync34(tmpDir, { recursive: true });
|
|
114549
114818
|
writeFileSync23(join67(tmpDir, "Dockerfile"), readFileSync41(dockerfilePath));
|
|
114550
114819
|
const targetArch = platform10 === "linux/arm64" ? "arm64" : "amd64";
|
|
114551
114820
|
try {
|
|
@@ -114943,14 +115212,14 @@ function printRenderComplete(outputPath, elapsedMs, quiet, outputDurationSeconds
|
|
|
114943
115212
|
let fileSize = "unknown";
|
|
114944
115213
|
let isDirectory = false;
|
|
114945
115214
|
try {
|
|
114946
|
-
const stat3 =
|
|
115215
|
+
const stat3 = statSync20(outputPath);
|
|
114947
115216
|
isDirectory = stat3.isDirectory();
|
|
114948
115217
|
if (stat3.isDirectory()) {
|
|
114949
115218
|
let total = 0;
|
|
114950
115219
|
for (const entry of readdirSync24(outputPath, { withFileTypes: true })) {
|
|
114951
115220
|
if (!entry.isFile()) continue;
|
|
114952
115221
|
try {
|
|
114953
|
-
total +=
|
|
115222
|
+
total += statSync20(join67(outputPath, entry.name)).size;
|
|
114954
115223
|
} catch {
|
|
114955
115224
|
}
|
|
114956
115225
|
}
|
|
@@ -115370,7 +115639,7 @@ var init_render = __esm({
|
|
|
115370
115639
|
const timePart = now.toTimeString().slice(0, 8).replace(/:/g, "-");
|
|
115371
115640
|
const batchOutputTemplate = args.output ? args.output : join67(rendersDir, `${project.name}_${datePart}_${timePart}_{index}${ext}`);
|
|
115372
115641
|
const outputPath = args.output ? resolve44(args.output) : join67(rendersDir, `${project.name}_${datePart}_${timePart}${ext}`);
|
|
115373
|
-
if (!batchPath)
|
|
115642
|
+
if (!batchPath) mkdirSync34(dirname29(outputPath), { recursive: true });
|
|
115374
115643
|
const useDocker = args.docker ?? false;
|
|
115375
115644
|
const useGpu = args.gpu ?? false;
|
|
115376
115645
|
const browserGpuArg = args["browser-gpu"];
|
|
@@ -115428,7 +115697,7 @@ var init_render = __esm({
|
|
|
115428
115697
|
console.log(c.warn(" GIF output is capped at 30fps. Use --fps 15 for smaller files."));
|
|
115429
115698
|
}
|
|
115430
115699
|
const pageNavigationTimeoutMs = resolveBrowserTimeoutMsArg(args["browser-timeout"]);
|
|
115431
|
-
const entryFile = resolveCompositionEntryArg(args.composition, project.dir,
|
|
115700
|
+
const entryFile = resolveCompositionEntryArg(args.composition, project.dir, statSync20);
|
|
115432
115701
|
let batchModule;
|
|
115433
115702
|
let preparedBatch;
|
|
115434
115703
|
if (batchPath) {
|
|
@@ -115551,7 +115820,8 @@ var init_render = __esm({
|
|
|
115551
115820
|
} catch {
|
|
115552
115821
|
}
|
|
115553
115822
|
if (resolutionIssue) {
|
|
115554
|
-
|
|
115823
|
+
trackRenderPreflightRejected({ kind: resolutionIssue.kind });
|
|
115824
|
+
errorBox("Output resolution incompatible", resolutionIssue.message);
|
|
115555
115825
|
process.exit(1);
|
|
115556
115826
|
}
|
|
115557
115827
|
}
|
|
@@ -115980,7 +116250,7 @@ __export(beats_exports, {
|
|
|
115980
116250
|
default: () => beats_default,
|
|
115981
116251
|
examples: () => examples11
|
|
115982
116252
|
});
|
|
115983
|
-
import { existsSync as existsSync66, readFileSync as readFileSync44, mkdirSync as
|
|
116253
|
+
import { existsSync as existsSync66, readFileSync as readFileSync44, mkdirSync as mkdirSync35, writeFileSync as writeFileSync24 } from "fs";
|
|
115984
116254
|
import { resolve as resolve45, join as join69, dirname as dirname31 } from "path";
|
|
115985
116255
|
function fail(message) {
|
|
115986
116256
|
console.error(c.error(message));
|
|
@@ -116052,7 +116322,7 @@ var init_beats2 = __esm({
|
|
|
116052
116322
|
fail(`No beats detected in ${rel} \u2014 nothing written. (Track may be silent/ambient.)`);
|
|
116053
116323
|
}
|
|
116054
116324
|
const outPath = join69(project.dir, "beats", `${rel}.json`);
|
|
116055
|
-
|
|
116325
|
+
mkdirSync35(dirname31(outPath), { recursive: true });
|
|
116056
116326
|
writeFileSync24(outPath, serializeBeats(result.beatTimes, result.beatStrengths, rel));
|
|
116057
116327
|
report(`beats/${rel}.json`, result, Boolean(args.json));
|
|
116058
116328
|
}
|
|
@@ -116066,10 +116336,10 @@ __export(staticProjectServer_exports, {
|
|
|
116066
116336
|
serveStaticProjectHtml: () => serveStaticProjectHtml
|
|
116067
116337
|
});
|
|
116068
116338
|
import { createServer } from "http";
|
|
116069
|
-
import { createReadStream as createReadStream3, existsSync as existsSync67, statSync as
|
|
116339
|
+
import { createReadStream as createReadStream3, existsSync as existsSync67, statSync as statSync21 } from "fs";
|
|
116070
116340
|
import { isAbsolute as isAbsolute13, relative as relative14, resolve as resolve46 } from "path";
|
|
116071
116341
|
function serveFileWithRange(filePath, rangeHeader, res) {
|
|
116072
|
-
const size =
|
|
116342
|
+
const size = statSync21(filePath).size;
|
|
116073
116343
|
const headers = {
|
|
116074
116344
|
"Content-Type": getMimeType(filePath),
|
|
116075
116345
|
"Accept-Ranges": "bytes"
|
|
@@ -119268,7 +119538,7 @@ __export(keyframes_exports, {
|
|
|
119268
119538
|
examples: () => examples14,
|
|
119269
119539
|
surfaceComposition: () => surfaceComposition
|
|
119270
119540
|
});
|
|
119271
|
-
import { existsSync as existsSync70, readFileSync as readFileSync47, statSync as
|
|
119541
|
+
import { existsSync as existsSync70, readFileSync as readFileSync47, statSync as statSync23 } from "fs";
|
|
119272
119542
|
import { resolve as resolve47, dirname as dirname33, basename as basename14 } from "path";
|
|
119273
119543
|
function inlineScriptText(html) {
|
|
119274
119544
|
const doc = new DOMParser().parseFromString(html, "text/html");
|
|
@@ -119750,7 +120020,7 @@ function resolveScope(args) {
|
|
|
119750
120020
|
let comps;
|
|
119751
120021
|
let projectName;
|
|
119752
120022
|
let projectDir;
|
|
119753
|
-
if (raw && raw.endsWith(".html") && existsSync70(raw) &&
|
|
120023
|
+
if (raw && raw.endsWith(".html") && existsSync70(raw) && statSync23(raw).isFile()) {
|
|
119754
120024
|
comps = [surfaceComposition(readFileSync47(raw, "utf-8"), basename14(raw), raw)];
|
|
119755
120025
|
projectName = basename14(raw);
|
|
119756
120026
|
projectDir = dirname33(raw);
|
|
@@ -119960,7 +120230,7 @@ __export(info_exports, {
|
|
|
119960
120230
|
examples: () => examples15,
|
|
119961
120231
|
orientation: () => orientation
|
|
119962
120232
|
});
|
|
119963
|
-
import { readFileSync as readFileSync48, readdirSync as readdirSync26, statSync as
|
|
120233
|
+
import { readFileSync as readFileSync48, readdirSync as readdirSync26, statSync as statSync24 } from "fs";
|
|
119964
120234
|
import { join as join73 } from "path";
|
|
119965
120235
|
function orientation(width, height) {
|
|
119966
120236
|
if (width > height) return "landscape";
|
|
@@ -119979,7 +120249,7 @@ function totalSize(dir) {
|
|
|
119979
120249
|
if (entry.isDirectory()) {
|
|
119980
120250
|
total += totalSize(path2);
|
|
119981
120251
|
} else {
|
|
119982
|
-
total +=
|
|
120252
|
+
total += statSync24(path2).size;
|
|
119983
120253
|
}
|
|
119984
120254
|
}
|
|
119985
120255
|
return total;
|
|
@@ -120242,7 +120512,7 @@ __export(benchmark_exports, {
|
|
|
120242
120512
|
default: () => benchmark_default,
|
|
120243
120513
|
examples: () => examples17
|
|
120244
120514
|
});
|
|
120245
|
-
import { existsSync as existsSync73, statSync as
|
|
120515
|
+
import { existsSync as existsSync73, statSync as statSync25 } from "fs";
|
|
120246
120516
|
import { resolve as resolve49, join as join74 } from "path";
|
|
120247
120517
|
var examples17, FPS_30, FPS_60, DEFAULT_CONFIGS, benchmark_default;
|
|
120248
120518
|
var init_benchmark = __esm({
|
|
@@ -120336,7 +120606,7 @@ var init_benchmark = __esm({
|
|
|
120336
120606
|
const elapsedMs = Date.now() - startTime;
|
|
120337
120607
|
let fileSize = null;
|
|
120338
120608
|
if (existsSync73(outputPath)) {
|
|
120339
|
-
const stat3 =
|
|
120609
|
+
const stat3 = statSync25(outputPath);
|
|
120340
120610
|
fileSize = stat3.size;
|
|
120341
120611
|
}
|
|
120342
120612
|
runs.push({ elapsedMs, fileSize });
|
|
@@ -120593,7 +120863,7 @@ __export(manager_exports3, {
|
|
|
120593
120863
|
modelPath: () => modelPath,
|
|
120594
120864
|
selectProviders: () => selectProviders
|
|
120595
120865
|
});
|
|
120596
|
-
import { existsSync as existsSync74, mkdirSync as
|
|
120866
|
+
import { existsSync as existsSync74, mkdirSync as mkdirSync36 } from "fs";
|
|
120597
120867
|
import { homedir as homedir11, platform as platform8, arch } from "os";
|
|
120598
120868
|
import { join as join75 } from "path";
|
|
120599
120869
|
function isDevice(value) {
|
|
@@ -120640,7 +120910,7 @@ function modelPath(model = DEFAULT_MODEL2) {
|
|
|
120640
120910
|
async function ensureModel2(model = DEFAULT_MODEL2, options) {
|
|
120641
120911
|
const dest = modelPath(model);
|
|
120642
120912
|
if (existsSync74(dest)) return dest;
|
|
120643
|
-
|
|
120913
|
+
mkdirSync36(MODELS_DIR2, { recursive: true });
|
|
120644
120914
|
options?.onProgress?.(`Downloading ${model} weights (~168 MB)...`);
|
|
120645
120915
|
await downloadFile(MODEL_URLS[model], dest);
|
|
120646
120916
|
if (!existsSync74(dest)) {
|
|
@@ -121592,7 +121862,7 @@ var init_transcribe2 = __esm({
|
|
|
121592
121862
|
});
|
|
121593
121863
|
|
|
121594
121864
|
// src/tts/manager.ts
|
|
121595
|
-
import { existsSync as existsSync77, mkdirSync as
|
|
121865
|
+
import { existsSync as existsSync77, mkdirSync as mkdirSync37 } from "fs";
|
|
121596
121866
|
import { homedir as homedir12 } from "os";
|
|
121597
121867
|
import { join as join77 } from "path";
|
|
121598
121868
|
function inferLangFromVoiceId(voiceId) {
|
|
@@ -121611,7 +121881,7 @@ async function ensureModel3(model = DEFAULT_MODEL3, options) {
|
|
|
121611
121881
|
`Unknown TTS model: ${model}. Available: ${Object.keys(MODEL_URLS2).join(", ")}`
|
|
121612
121882
|
);
|
|
121613
121883
|
}
|
|
121614
|
-
|
|
121884
|
+
mkdirSync37(MODELS_DIR3, { recursive: true });
|
|
121615
121885
|
options?.onProgress?.(`Downloading TTS model ${model} (~311 MB)...`);
|
|
121616
121886
|
await downloadFile(url, modelPath2);
|
|
121617
121887
|
if (!existsSync77(modelPath2)) {
|
|
@@ -121622,7 +121892,7 @@ async function ensureModel3(model = DEFAULT_MODEL3, options) {
|
|
|
121622
121892
|
async function ensureVoices(options) {
|
|
121623
121893
|
const voicesPath = join77(VOICES_DIR, "voices-v1.0.bin");
|
|
121624
121894
|
if (existsSync77(voicesPath)) return voicesPath;
|
|
121625
|
-
|
|
121895
|
+
mkdirSync37(VOICES_DIR, { recursive: true });
|
|
121626
121896
|
options?.onProgress?.("Downloading voice data (~27 MB)...");
|
|
121627
121897
|
await downloadFile(VOICES_URL, voicesPath);
|
|
121628
121898
|
if (!existsSync77(voicesPath)) {
|
|
@@ -121754,12 +122024,12 @@ __export(synthesize_exports, {
|
|
|
121754
122024
|
synthesize: () => synthesize
|
|
121755
122025
|
});
|
|
121756
122026
|
import { execFileSync as execFileSync11 } from "child_process";
|
|
121757
|
-
import { existsSync as existsSync78, writeFileSync as writeFileSync27, mkdirSync as
|
|
122027
|
+
import { existsSync as existsSync78, writeFileSync as writeFileSync27, mkdirSync as mkdirSync38, readdirSync as readdirSync27, unlinkSync as unlinkSync5 } from "fs";
|
|
121758
122028
|
import { join as join78, dirname as dirname36, basename as basename15 } from "path";
|
|
121759
122029
|
import { homedir as homedir13 } from "os";
|
|
121760
122030
|
function ensureSynthScript() {
|
|
121761
122031
|
if (!existsSync78(SCRIPT_PATH)) {
|
|
121762
|
-
|
|
122032
|
+
mkdirSync38(SCRIPT_DIR, { recursive: true });
|
|
121763
122033
|
writeFileSync27(SCRIPT_PATH, SYNTH_SCRIPT);
|
|
121764
122034
|
const currentName = basename15(SCRIPT_PATH);
|
|
121765
122035
|
try {
|
|
@@ -121800,7 +122070,7 @@ async function synthesize(text2, outputPath, options) {
|
|
|
121800
122070
|
ensureVoices({ onProgress: options?.onProgress })
|
|
121801
122071
|
]);
|
|
121802
122072
|
const scriptPath = ensureSynthScript();
|
|
121803
|
-
|
|
122073
|
+
mkdirSync38(dirname36(outputPath), { recursive: true });
|
|
121804
122074
|
options?.onProgress?.(`Generating speech with voice ${voice} (${lang})...`);
|
|
121805
122075
|
try {
|
|
121806
122076
|
const stdout2 = execFileSync11(
|
|
@@ -123020,6 +123290,7 @@ var validate_exports = {};
|
|
|
123020
123290
|
__export(validate_exports, {
|
|
123021
123291
|
default: () => validate_default,
|
|
123022
123292
|
extractCompositionErrorsFromLint: () => extractCompositionErrorsFromLint,
|
|
123293
|
+
raceMediaReady: () => raceMediaReady,
|
|
123023
123294
|
shouldIgnoreRequestFailure: () => shouldIgnoreRequestFailure
|
|
123024
123295
|
});
|
|
123025
123296
|
import { existsSync as existsSync81, readFileSync as readFileSync53 } from "fs";
|
|
@@ -123056,13 +123327,49 @@ async function seekTo2(page, time) {
|
|
|
123056
123327
|
}, time);
|
|
123057
123328
|
await new Promise((r2) => setTimeout(r2, SEEK_SETTLE_MS2));
|
|
123058
123329
|
}
|
|
123059
|
-
|
|
123060
|
-
|
|
123330
|
+
function raceMediaReady(el, deadlineMs) {
|
|
123331
|
+
if (Number.isFinite(el.duration) && el.duration > 0) return Promise.resolve();
|
|
123332
|
+
return new Promise((resolve62) => {
|
|
123333
|
+
const onReady = () => {
|
|
123334
|
+
el.removeEventListener("loadedmetadata", onReady);
|
|
123335
|
+
el.removeEventListener("error", onReady);
|
|
123336
|
+
clearTimeout(timer);
|
|
123337
|
+
resolve62();
|
|
123338
|
+
};
|
|
123339
|
+
el.addEventListener("loadedmetadata", onReady, { once: true });
|
|
123340
|
+
el.addEventListener("error", onReady, { once: true });
|
|
123341
|
+
const timer = setTimeout(onReady, Math.max(0, deadlineMs - Date.now()));
|
|
123342
|
+
});
|
|
123343
|
+
}
|
|
123344
|
+
async function auditClipDurations(page, analyzeClipMediaFit2, extraWaitMs) {
|
|
123345
|
+
const clips = await page.evaluate(async (maxWaitMs) => {
|
|
123346
|
+
const nodes = Array.from(
|
|
123347
|
+
document.querySelectorAll("video[data-duration], audio[data-duration]")
|
|
123348
|
+
);
|
|
123349
|
+
const deadline = Date.now() + maxWaitMs;
|
|
123350
|
+
await Promise.all(
|
|
123351
|
+
nodes.map((el) => {
|
|
123352
|
+
if (Number.isFinite(el.duration) && el.duration > 0) return Promise.resolve();
|
|
123353
|
+
return new Promise((resolve62) => {
|
|
123354
|
+
const cleanup = () => {
|
|
123355
|
+
el.removeEventListener("loadedmetadata", onReady);
|
|
123356
|
+
el.removeEventListener("error", onReady);
|
|
123357
|
+
clearTimeout(timer);
|
|
123358
|
+
};
|
|
123359
|
+
const onReady = () => {
|
|
123360
|
+
cleanup();
|
|
123361
|
+
resolve62();
|
|
123362
|
+
};
|
|
123363
|
+
el.addEventListener("loadedmetadata", onReady, { once: true });
|
|
123364
|
+
el.addEventListener("error", onReady, { once: true });
|
|
123365
|
+
const timer = setTimeout(onReady, Math.max(0, deadline - Date.now()));
|
|
123366
|
+
});
|
|
123367
|
+
})
|
|
123368
|
+
);
|
|
123061
123369
|
const rows = [];
|
|
123062
|
-
|
|
123063
|
-
const el = node;
|
|
123370
|
+
for (const el of nodes) {
|
|
123064
123371
|
const slot = parseFloat(el.getAttribute("data-duration") ?? "");
|
|
123065
|
-
if (!(slot > 0))
|
|
123372
|
+
if (!(slot > 0)) continue;
|
|
123066
123373
|
rows.push({
|
|
123067
123374
|
id: el.id || el.getAttribute("src") || `(${el.tagName.toLowerCase()})`,
|
|
123068
123375
|
kind: el.tagName === "AUDIO" ? "Audio" : "Video",
|
|
@@ -123071,9 +123378,9 @@ async function auditClipDurations(page, analyzeClipMediaFit2) {
|
|
|
123071
123378
|
duration: el.duration,
|
|
123072
123379
|
loop: el.loop || el.getAttribute("data-loop") === "true"
|
|
123073
123380
|
});
|
|
123074
|
-
}
|
|
123381
|
+
}
|
|
123075
123382
|
return rows;
|
|
123076
|
-
});
|
|
123383
|
+
}, extraWaitMs);
|
|
123077
123384
|
const warnings = [];
|
|
123078
123385
|
const unreadable = [];
|
|
123079
123386
|
for (const clip of clips) {
|
|
@@ -123192,7 +123499,7 @@ async function validateInBrowser(project, opts) {
|
|
|
123192
123499
|
});
|
|
123193
123500
|
await page.goto(server.url, { waitUntil: "domcontentloaded", timeout: 1e4 });
|
|
123194
123501
|
await new Promise((r2) => setTimeout(r2, opts.timeout ?? 3e3));
|
|
123195
|
-
for (const w3 of await auditClipDurations(page, analyzeClipMediaFit2)) {
|
|
123502
|
+
for (const w3 of await auditClipDurations(page, analyzeClipMediaFit2, opts.timeout ?? 3e3)) {
|
|
123196
123503
|
warnings.push(w3);
|
|
123197
123504
|
}
|
|
123198
123505
|
if (opts.contrast) {
|
|
@@ -129694,7 +130001,7 @@ var require_node_domexception = __commonJS({
|
|
|
129694
130001
|
});
|
|
129695
130002
|
|
|
129696
130003
|
// ../../node_modules/.bun/fetch-blob@3.2.0/node_modules/fetch-blob/from.js
|
|
129697
|
-
import { statSync as
|
|
130004
|
+
import { statSync as statSync26, createReadStream as createReadStream4, promises as fs2 } from "fs";
|
|
129698
130005
|
import { basename as basename17 } from "path";
|
|
129699
130006
|
var import_node_domexception, stat, blobFromSync, blobFrom, fileFrom, fileFromSync, fromBlob, fromFile, BlobDataItem;
|
|
129700
130007
|
var init_from = __esm({
|
|
@@ -129704,10 +130011,10 @@ var init_from = __esm({
|
|
|
129704
130011
|
init_file();
|
|
129705
130012
|
init_fetch_blob();
|
|
129706
130013
|
({ stat } = fs2);
|
|
129707
|
-
blobFromSync = (path2, type) => fromBlob(
|
|
130014
|
+
blobFromSync = (path2, type) => fromBlob(statSync26(path2), path2, type);
|
|
129708
130015
|
blobFrom = (path2, type) => stat(path2).then((stat3) => fromBlob(stat3, path2, type));
|
|
129709
130016
|
fileFrom = (path2, type) => stat(path2).then((stat3) => fromFile(stat3, path2, type));
|
|
129710
|
-
fileFromSync = (path2, type) => fromFile(
|
|
130017
|
+
fileFromSync = (path2, type) => fromFile(statSync26(path2), path2, type);
|
|
129711
130018
|
fromBlob = (stat3, path2, type = "") => new fetch_blob_default([new BlobDataItem({
|
|
129712
130019
|
path: path2,
|
|
129713
130020
|
size: stat3.size,
|
|
@@ -143498,7 +143805,7 @@ var require_websocket = __commonJS({
|
|
|
143498
143805
|
var http4 = __require("http");
|
|
143499
143806
|
var net2 = __require("net");
|
|
143500
143807
|
var tls = __require("tls");
|
|
143501
|
-
var { randomBytes: randomBytes4, createHash:
|
|
143808
|
+
var { randomBytes: randomBytes4, createHash: createHash15 } = __require("crypto");
|
|
143502
143809
|
var { Duplex, Readable: Readable4 } = __require("stream");
|
|
143503
143810
|
var { URL: URL2 } = __require("url");
|
|
143504
143811
|
var PerMessageDeflate2 = require_permessage_deflate();
|
|
@@ -144158,7 +144465,7 @@ var require_websocket = __commonJS({
|
|
|
144158
144465
|
abortHandshake(websocket, socket, "Invalid Upgrade header");
|
|
144159
144466
|
return;
|
|
144160
144467
|
}
|
|
144161
|
-
const digest =
|
|
144468
|
+
const digest = createHash15("sha1").update(key2 + GUID).digest("base64");
|
|
144162
144469
|
if (res.headers["sec-websocket-accept"] !== digest) {
|
|
144163
144470
|
abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
|
|
144164
144471
|
return;
|
|
@@ -144525,7 +144832,7 @@ var require_websocket_server = __commonJS({
|
|
|
144525
144832
|
var EventEmitter = __require("events");
|
|
144526
144833
|
var http4 = __require("http");
|
|
144527
144834
|
var { Duplex } = __require("stream");
|
|
144528
|
-
var { createHash:
|
|
144835
|
+
var { createHash: createHash15 } = __require("crypto");
|
|
144529
144836
|
var extension2 = require_extension();
|
|
144530
144837
|
var PerMessageDeflate2 = require_permessage_deflate();
|
|
144531
144838
|
var subprotocol2 = require_subprotocol();
|
|
@@ -144826,7 +145133,7 @@ var require_websocket_server = __commonJS({
|
|
|
144826
145133
|
);
|
|
144827
145134
|
}
|
|
144828
145135
|
if (this._state > RUNNING) return abortHandshake(socket, 503);
|
|
144829
|
-
const digest =
|
|
145136
|
+
const digest = createHash15("sha1").update(key2 + GUID).digest("base64");
|
|
144830
145137
|
const headers = [
|
|
144831
145138
|
"HTTP/1.1 101 Switching Protocols",
|
|
144832
145139
|
"Upgrade: websocket",
|
|
@@ -155861,7 +156168,7 @@ async function uploadBlobInternal(file, uploadUrl, apiClient, httpOptions) {
|
|
|
155861
156168
|
break;
|
|
155862
156169
|
}
|
|
155863
156170
|
retryCount++;
|
|
155864
|
-
await
|
|
156171
|
+
await sleep2(currentDelayMs);
|
|
155865
156172
|
currentDelayMs = currentDelayMs * DELAY_MULTIPLIER;
|
|
155866
156173
|
}
|
|
155867
156174
|
offset2 += chunkSize;
|
|
@@ -155878,7 +156185,7 @@ async function getBlobStat(file) {
|
|
|
155878
156185
|
const fileStat = { size: file.size, type: file.type };
|
|
155879
156186
|
return fileStat;
|
|
155880
156187
|
}
|
|
155881
|
-
function
|
|
156188
|
+
function sleep2(ms) {
|
|
155882
156189
|
return new Promise((resolvePromise) => setTimeout(resolvePromise, ms));
|
|
155883
156190
|
}
|
|
155884
156191
|
function resolveCloudFlag(options) {
|
|
@@ -163103,7 +163410,7 @@ ${underline2}`);
|
|
|
163103
163410
|
break;
|
|
163104
163411
|
}
|
|
163105
163412
|
retryCount++;
|
|
163106
|
-
await
|
|
163413
|
+
await sleep2(currentDelayMs);
|
|
163107
163414
|
currentDelayMs = currentDelayMs * DELAY_MULTIPLIER;
|
|
163108
163415
|
}
|
|
163109
163416
|
offset2 += bytesRead;
|
|
@@ -163274,7 +163581,7 @@ __export(snapshot_exports, {
|
|
|
163274
163581
|
tailFrameTime: () => tailFrameTime
|
|
163275
163582
|
});
|
|
163276
163583
|
import { spawn as spawn16 } from "child_process";
|
|
163277
|
-
import { existsSync as existsSync84, mkdtempSync as mkdtempSync5, readFileSync as readFileSync55, mkdirSync as
|
|
163584
|
+
import { existsSync as existsSync84, mkdtempSync as mkdtempSync5, readFileSync as readFileSync55, mkdirSync as mkdirSync39, rmSync as rmSync18, writeFileSync as writeFileSync29 } from "fs";
|
|
163278
163585
|
import { tmpdir as tmpdir6 } from "os";
|
|
163279
163586
|
import { resolve as resolve55, join as join83, relative as relative15, isAbsolute as isAbsolute14, basename as basename19 } from "path";
|
|
163280
163587
|
function orbitStageSource() {
|
|
@@ -163476,7 +163783,7 @@ async function captureSnapshots(projectDir, opts) {
|
|
|
163476
163783
|
}
|
|
163477
163784
|
const cameraExpr = opts.angle && (opts.angle.yaw !== 0 || opts.angle.pitch !== 0) ? `(${orbitStageSource()})(${JSON.stringify(opts.angle)})` : null;
|
|
163478
163785
|
const snapshotDir = opts.outputDir ?? join83(projectDir, "snapshots");
|
|
163479
|
-
|
|
163786
|
+
mkdirSync39(snapshotDir, { recursive: true });
|
|
163480
163787
|
try {
|
|
163481
163788
|
const { readdirSync: readdirSync35 } = await import("fs");
|
|
163482
163789
|
for (const file of readdirSync35(snapshotDir)) {
|
|
@@ -163806,7 +164113,7 @@ ${c.error("\u2717")} Snapshot failed: ${msg}`);
|
|
|
163806
164113
|
});
|
|
163807
164114
|
|
|
163808
164115
|
// src/capture/assetDownloader.ts
|
|
163809
|
-
import { writeFileSync as writeFileSync30, mkdirSync as
|
|
164116
|
+
import { writeFileSync as writeFileSync30, mkdirSync as mkdirSync40 } from "fs";
|
|
163810
164117
|
import { join as join84, extname as extname15 } from "path";
|
|
163811
164118
|
import { createHash as createHash12 } from "crypto";
|
|
163812
164119
|
function svgContentHashSlug(svgSource, isLogo) {
|
|
@@ -163815,10 +164122,10 @@ function svgContentHashSlug(svgSource, isLogo) {
|
|
|
163815
164122
|
}
|
|
163816
164123
|
async function downloadAssets(tokens, outputDir, catalogedAssets, faviconLinks) {
|
|
163817
164124
|
const assetsDir = join84(outputDir, "assets");
|
|
163818
|
-
|
|
164125
|
+
mkdirSync40(assetsDir, { recursive: true });
|
|
163819
164126
|
const assets = [];
|
|
163820
164127
|
const downloadedUrls = /* @__PURE__ */ new Set();
|
|
163821
|
-
|
|
164128
|
+
mkdirSync40(join84(outputDir, "assets", "svgs"), { recursive: true });
|
|
163822
164129
|
const usedSvgNames = /* @__PURE__ */ new Set();
|
|
163823
164130
|
for (let i2 = 0; i2 < tokens.svgs.length && i2 < 30; i2++) {
|
|
163824
164131
|
const svg = tokens.svgs[i2];
|
|
@@ -163949,7 +164256,7 @@ function normalizeUrl(u) {
|
|
|
163949
164256
|
}
|
|
163950
164257
|
async function downloadAndRewriteFonts(css, outputDir) {
|
|
163951
164258
|
const assetsDir = join84(outputDir, "assets", "fonts");
|
|
163952
|
-
|
|
164259
|
+
mkdirSync40(assetsDir, { recursive: true });
|
|
163953
164260
|
const fontUrlRegex = /url\(['"]?(https?:\/\/[^'")\s]+\.(?:woff2?|ttf|otf)[^'")\s]*?)['"]?\)/g;
|
|
163954
164261
|
const fontUrls = /* @__PURE__ */ new Set();
|
|
163955
164262
|
let match;
|
|
@@ -164142,7 +164449,7 @@ __export(video_exports, {
|
|
|
164142
164449
|
runVideoMode: () => runVideoMode,
|
|
164143
164450
|
safeFilename: () => safeFilename
|
|
164144
164451
|
});
|
|
164145
|
-
import { createWriteStream as createWriteStream4, existsSync as existsSync85, mkdirSync as
|
|
164452
|
+
import { createWriteStream as createWriteStream4, existsSync as existsSync85, mkdirSync as mkdirSync41, readFileSync as readFileSync56, unlinkSync as unlinkSync7 } from "fs";
|
|
164146
164453
|
import { resolve as resolve56, join as join85, basename as basename20 } from "path";
|
|
164147
164454
|
async function streamToFile(url, destPath) {
|
|
164148
164455
|
const r2 = await safeFetch(url, {
|
|
@@ -164318,7 +164625,7 @@ async function runVideoMode(args) {
|
|
|
164318
164625
|
return;
|
|
164319
164626
|
}
|
|
164320
164627
|
const outDir = isW2hLayout ? join85(projectDir, "capture", "assets", "videos") : join85(projectDir, "assets", "videos");
|
|
164321
|
-
|
|
164628
|
+
mkdirSync41(outDir, { recursive: true });
|
|
164322
164629
|
const fname = safeFilename(entry.filename || basename20(entry.url));
|
|
164323
164630
|
const outPath = join85(outDir, fname);
|
|
164324
164631
|
const relPath = isW2hLayout ? `capture/assets/videos/${fname}` : `assets/videos/${fname}`;
|
|
@@ -165089,7 +165396,8 @@ var init_designStyleExtractor = __esm({
|
|
|
165089
165396
|
function rgbToHex(color) {
|
|
165090
165397
|
if (!color) return "";
|
|
165091
165398
|
if (color.startsWith('#')) return color.toUpperCase();
|
|
165092
|
-
|
|
165399
|
+
// capture optional alpha (group 4), allowing both comma and modern slash (rgb r g b / a) syntax.
|
|
165400
|
+
var m = color.match(/rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)(?:\\s*[,/]\\s*([\\d.]+))?/);
|
|
165093
165401
|
if (!m) return color;
|
|
165094
165402
|
// fully-transparent fill (rgba(...,0)) \u2192 sentinel, NOT #000000 \u2014 otherwise a transparent
|
|
165095
165403
|
// chip/tab/stat ground reads as solid black on a light-ground site.
|
|
@@ -165101,8 +165409,15 @@ var init_designStyleExtractor = __esm({
|
|
|
165101
165409
|
return f.split(",")[0].replace(/['"]/g, "").trim();
|
|
165102
165410
|
}
|
|
165103
165411
|
|
|
165412
|
+
// keep only gradient background-images (drop url() sprites + "none"); gradients are a core
|
|
165413
|
+
// brand signal (Stripe/ElevenLabs/Snowflake mesh washes) that a flat background-color misses.
|
|
165414
|
+
function gradientOf(v) {
|
|
165415
|
+
return v && v.indexOf("gradient") >= 0 ? v.trim() : "";
|
|
165416
|
+
}
|
|
165417
|
+
|
|
165104
165418
|
function getStyles(el) {
|
|
165105
165419
|
var s = getComputedStyle(el);
|
|
165420
|
+
var bf = s.backdropFilter || s.webkitBackdropFilter || "";
|
|
165106
165421
|
return {
|
|
165107
165422
|
fontFamily: cleanFont(s.fontFamily),
|
|
165108
165423
|
fontSize: s.fontSize,
|
|
@@ -165111,6 +165426,8 @@ var init_designStyleExtractor = __esm({
|
|
|
165111
165426
|
letterSpacing: s.letterSpacing,
|
|
165112
165427
|
color: rgbToHex(s.color),
|
|
165113
165428
|
background: rgbToHex(s.backgroundColor),
|
|
165429
|
+
backgroundImage: gradientOf(s.backgroundImage),
|
|
165430
|
+
backdropFilter: bf === "none" ? "" : bf,
|
|
165114
165431
|
padding: s.padding,
|
|
165115
165432
|
borderRadius: s.borderRadius,
|
|
165116
165433
|
border: s.border,
|
|
@@ -165179,23 +165496,37 @@ var init_designStyleExtractor = __esm({
|
|
|
165179
165496
|
}
|
|
165180
165497
|
|
|
165181
165498
|
// \u2500\u2500 2. Buttons \u2500\u2500
|
|
165499
|
+
// a page's primary CTA is very often a FILLED pill in the nav/header ("Sign up", "Start for free").
|
|
165500
|
+
// Old code dropped everything under <nav>, losing that CTA; keep nav elements that carry a solid
|
|
165501
|
+
// fill (a real button), still dropping plain nav text links.
|
|
165502
|
+
var isFilledEl = (el) => {
|
|
165503
|
+
var cs = getComputedStyle(el);
|
|
165504
|
+
var bg = cs.backgroundColor;
|
|
165505
|
+
var solid = !!bg && bg !== "transparent" && !/rgba?\\([^)]*,\\s*0\\s*\\)/.test(bg);
|
|
165506
|
+
// a gradient-filled CTA (e.g. Snowflake's blue pill = background: var(--ui-background-03)) has a
|
|
165507
|
+
// transparent background-COLOR but a gradient background-IMAGE \u2014 count it as filled too.
|
|
165508
|
+
return solid || (cs.backgroundImage || "").indexOf("gradient") >= 0;
|
|
165509
|
+
};
|
|
165182
165510
|
var buttonEls = Array.from(document.querySelectorAll(
|
|
165183
165511
|
'button, a[class*="btn"], a[class*="button"], a[role="button"], ' +
|
|
165184
165512
|
'[class*="btn-"], [class*="button-"], [class*="cta"]'
|
|
165185
165513
|
)).filter(function(el) {
|
|
165186
|
-
|
|
165187
|
-
|
|
165514
|
+
if (!isVisible(el)) return false;
|
|
165515
|
+
return el.closest('nav, [role="navigation"]') ? isFilledEl(el) : true;
|
|
165516
|
+
}).slice(0, 16);
|
|
165188
165517
|
|
|
165189
165518
|
var buttonMap = {};
|
|
165190
165519
|
for (var bi = 0; bi < buttonEls.length; bi++) {
|
|
165191
165520
|
var bs = getStyles(buttonEls[bi]);
|
|
165192
|
-
// Deduplicate by visual appearance
|
|
165193
|
-
var bKey = bs.background + "|" + bs.borderRadius + "|" + bs.border;
|
|
165521
|
+
// Deduplicate by visual appearance (gradient fill kept distinct so a gradient CTA survives)
|
|
165522
|
+
var bKey = bs.background + "|" + bs.backgroundImage + "|" + bs.borderRadius + "|" + bs.border;
|
|
165194
165523
|
if (!buttonMap[bKey]) {
|
|
165195
165524
|
var btnText = (buttonEls[bi].textContent || "").trim().slice(0, 40);
|
|
165196
165525
|
buttonMap[bKey] = {
|
|
165197
165526
|
label: btnText || "button",
|
|
165198
165527
|
background: bs.background,
|
|
165528
|
+
backgroundImage: bs.backgroundImage,
|
|
165529
|
+
backdropFilter: bs.backdropFilter,
|
|
165199
165530
|
color: bs.color,
|
|
165200
165531
|
padding: bs.padding,
|
|
165201
165532
|
borderRadius: bs.borderRadius,
|
|
@@ -165207,7 +165538,7 @@ var init_designStyleExtractor = __esm({
|
|
|
165207
165538
|
};
|
|
165208
165539
|
}
|
|
165209
165540
|
}
|
|
165210
|
-
var buttons = Object.values(buttonMap).slice(0,
|
|
165541
|
+
var buttons = Object.values(buttonMap).slice(0, 6);
|
|
165211
165542
|
|
|
165212
165543
|
// \u2500\u2500 3. Cards / containers \u2500\u2500
|
|
165213
165544
|
var cardEls = Array.from(document.querySelectorAll(
|
|
@@ -165222,11 +165553,14 @@ var init_designStyleExtractor = __esm({
|
|
|
165222
165553
|
var cardMap = {};
|
|
165223
165554
|
for (var ci = 0; ci < cardEls.length; ci++) {
|
|
165224
165555
|
var cs = getStyles(cardEls[ci]);
|
|
165225
|
-
|
|
165556
|
+
// gradient fill + glass blur kept in the key so a gradient/frosted card is a distinct variant
|
|
165557
|
+
var cKey = cs.background + "|" + cs.backgroundImage + "|" + cs.backdropFilter + "|" + cs.borderRadius + "|" + cs.border;
|
|
165226
165558
|
if (!cardMap[cKey]) {
|
|
165227
165559
|
cardMap[cKey] = {
|
|
165228
165560
|
label: "card",
|
|
165229
165561
|
background: cs.background,
|
|
165562
|
+
backgroundImage: cs.backgroundImage,
|
|
165563
|
+
backdropFilter: cs.backdropFilter,
|
|
165230
165564
|
color: cs.color,
|
|
165231
165565
|
padding: cs.padding,
|
|
165232
165566
|
borderRadius: cs.borderRadius,
|
|
@@ -165248,6 +165582,8 @@ var init_designStyleExtractor = __esm({
|
|
|
165248
165582
|
nav = {
|
|
165249
165583
|
label: "navigation",
|
|
165250
165584
|
background: ns.background,
|
|
165585
|
+
backgroundImage: ns.backgroundImage,
|
|
165586
|
+
backdropFilter: ns.backdropFilter,
|
|
165251
165587
|
color: ns.color,
|
|
165252
165588
|
padding: ns.padding,
|
|
165253
165589
|
borderRadius: ns.borderRadius,
|
|
@@ -165431,6 +165767,90 @@ var init_designStyleExtractor = __esm({
|
|
|
165431
165767
|
.slice(0, 5)
|
|
165432
165768
|
.map(function(e) { return { value: e[0], count: e[1] }; });
|
|
165433
165769
|
|
|
165770
|
+
// \u2500\u2500 8. Dominant gradient / mesh backgrounds \u2500\u2500
|
|
165771
|
+
// A site's signature color wash (Stripe/ElevenLabs/Snowflake) lives in gradient background-images
|
|
165772
|
+
// on large blocks \u2014 often on a pseudo-element (::before glow orbs) rather than the block itself.
|
|
165773
|
+
// Weight each distinct gradient by the total on-screen area it covers; return the top few.
|
|
165774
|
+
var gradientArea = {};
|
|
165775
|
+
var gradSamples = Array.from(document.querySelectorAll(
|
|
165776
|
+
"body, main, section, header, div, [class*='hero'], [class*='gradient'], [class*='bg'], [class*='background']"
|
|
165777
|
+
)).slice(0, 400);
|
|
165778
|
+
|
|
165779
|
+
// max stop chroma (max\u2212min RGB) of a gradient: a vivid brand wash scores high, a neutral
|
|
165780
|
+
// white/cream scrim ~0. Used to rank washes so a small vivid gradient beats a big grey scrim.
|
|
165781
|
+
function gradientChroma(g) {
|
|
165782
|
+
var max = 0, re = /rgba?\\(\\s*(\\d+)[,\\s]+(\\d+)[,\\s]+(\\d+)/g, m;
|
|
165783
|
+
while ((m = re.exec(g))) {
|
|
165784
|
+
var r = +m[1], gr = +m[2], b = +m[3];
|
|
165785
|
+
var c = Math.max(r, gr, b) - Math.min(r, gr, b);
|
|
165786
|
+
if (c > max) max = c;
|
|
165787
|
+
}
|
|
165788
|
+
return max;
|
|
165789
|
+
}
|
|
165790
|
+
|
|
165791
|
+
function addGradient(val, area) {
|
|
165792
|
+
var g = gradientOf(val);
|
|
165793
|
+
if (!g || area < 20000) return; // ignore tiny decorative gradients
|
|
165794
|
+
var norm = g.replace(/\\s+/g, " ");
|
|
165795
|
+
gradientArea[norm] = (gradientArea[norm] || 0) + area;
|
|
165796
|
+
}
|
|
165797
|
+
|
|
165798
|
+
for (var gi = 0; gi < gradSamples.length; gi++) {
|
|
165799
|
+
var gel = gradSamples[gi];
|
|
165800
|
+
if (!isVisible(gel)) continue;
|
|
165801
|
+
var grect = gel.getBoundingClientRect();
|
|
165802
|
+
var garea = grect.width * grect.height;
|
|
165803
|
+
if (garea < 20000) continue;
|
|
165804
|
+
addGradient(getComputedStyle(gel).backgroundImage, garea);
|
|
165805
|
+
addGradient(getComputedStyle(gel, "::before").backgroundImage, garea);
|
|
165806
|
+
addGradient(getComputedStyle(gel, "::after").backgroundImage, garea);
|
|
165807
|
+
}
|
|
165808
|
+
|
|
165809
|
+
// rank by chroma-weighted area so the brand's signature color wash outranks a larger neutral scrim
|
|
165810
|
+
var backgrounds = Object.entries(gradientArea)
|
|
165811
|
+
.map(function(e) { return { value: e[0], area: Math.round(e[1]), score: e[1] * (1 + 2 * gradientChroma(e[0]) / 255) }; })
|
|
165812
|
+
.sort(function(a, b) { return b.score - a.score; })
|
|
165813
|
+
.slice(0, 6)
|
|
165814
|
+
.map(function(e) { return { value: e.value, area: e.area }; });
|
|
165815
|
+
|
|
165816
|
+
// \u2500\u2500 9. Frosted-glass panels (backdrop-filter) \u2500\u2500
|
|
165817
|
+
// A defining material on modern hero UIs (HeyGen's prompt box, Stripe's floating chrome): a
|
|
165818
|
+
// translucent surface with a backdrop blur. Capture the RAW fill (rgba/gradient \u2014 alpha preserved,
|
|
165819
|
+
// unlike rgbToHex) + the blur, ranked by area. This is what lets a frame render a real frosted card.
|
|
165820
|
+
var glassSamples = Array.from(document.querySelectorAll(
|
|
165821
|
+
"div, section, header, nav, aside, [class*='card'], [class*='panel'], [class*='glass'], [class*='blur'], [class*='modal'], [class*='overlay'], [class*='input']"
|
|
165822
|
+
)).slice(0, 400);
|
|
165823
|
+
var glassByKey = {};
|
|
165824
|
+
for (var qi = 0; qi < glassSamples.length; qi++) {
|
|
165825
|
+
var qel = glassSamples[qi];
|
|
165826
|
+
if (!isVisible(qel)) continue;
|
|
165827
|
+
var qs = getComputedStyle(qel);
|
|
165828
|
+
var bf = qs.backdropFilter || qs.webkitBackdropFilter || "";
|
|
165829
|
+
if (!bf || bf === "none" || bf.indexOf("blur") < 0) continue;
|
|
165830
|
+
var qrect = qel.getBoundingClientRect();
|
|
165831
|
+
var qarea = qrect.width * qrect.height;
|
|
165832
|
+
if (qarea < 8000) continue; // ignore tiny blurred chips
|
|
165833
|
+
// raw fill with alpha intact: prefer a translucent gradient, else the rgba background-color
|
|
165834
|
+
var gi2 = qs.backgroundImage;
|
|
165835
|
+
var rawFill = gi2 && gi2.indexOf("gradient") >= 0 ? gi2.replace(/\\s+/g, " ").trim() : qs.backgroundColor;
|
|
165836
|
+
var key = bf + "|" + rawFill + "|" + qs.borderRadius;
|
|
165837
|
+
if (!glassByKey[key]) {
|
|
165838
|
+
glassByKey[key] = {
|
|
165839
|
+
backdropFilter: bf,
|
|
165840
|
+
background: rawFill,
|
|
165841
|
+
border: qs.border,
|
|
165842
|
+
borderRadius: qs.borderRadius,
|
|
165843
|
+
boxShadow: qs.boxShadow === "none" ? "" : qs.boxShadow,
|
|
165844
|
+
area: 0
|
|
165845
|
+
};
|
|
165846
|
+
}
|
|
165847
|
+
glassByKey[key].area += qarea;
|
|
165848
|
+
}
|
|
165849
|
+
var glass = Object.values(glassByKey)
|
|
165850
|
+
.sort(function(a, b) { return b.area - a.area; })
|
|
165851
|
+
.slice(0, 3)
|
|
165852
|
+
.map(function(g) { return { backdropFilter: g.backdropFilter, background: g.background, border: g.border, borderRadius: g.borderRadius, boxShadow: g.boxShadow, area: Math.round(g.area) }; });
|
|
165853
|
+
|
|
165434
165854
|
return {
|
|
165435
165855
|
typography: uniqueTypo,
|
|
165436
165856
|
spacing: { observed: observedSpacing.slice(0, 15), baseUnit: baseUnit },
|
|
@@ -165441,7 +165861,9 @@ var init_designStyleExtractor = __esm({
|
|
|
165441
165861
|
nav: nav,
|
|
165442
165862
|
chips: chips,
|
|
165443
165863
|
statCells: statCells,
|
|
165444
|
-
tabs: tabs
|
|
165864
|
+
tabs: tabs,
|
|
165865
|
+
backgrounds: backgrounds,
|
|
165866
|
+
glass: glass
|
|
165445
165867
|
};
|
|
165446
165868
|
})()`;
|
|
165447
165869
|
}
|
|
@@ -165771,7 +166193,7 @@ var init_animationCataloger = __esm({
|
|
|
165771
166193
|
});
|
|
165772
166194
|
|
|
165773
166195
|
// src/capture/mediaCapture.ts
|
|
165774
|
-
import { mkdirSync as
|
|
166196
|
+
import { mkdirSync as mkdirSync43, writeFileSync as writeFileSync33, readdirSync as readdirSync30, readFileSync as readFileSync58, statSync as statSync27 } from "fs";
|
|
165775
166197
|
import { join as join87, extname as extname16 } from "path";
|
|
165776
166198
|
async function saveLottieAnimations(discoveredLotties, lottieDir) {
|
|
165777
166199
|
let savedCount = 0;
|
|
@@ -165833,7 +166255,7 @@ async function saveLottieAnimations(discoveredLotties, lottieDir) {
|
|
|
165833
166255
|
async function renderLottiePreviews(chromeBrowser, lottieDir, outputDir) {
|
|
165834
166256
|
const manifest = [];
|
|
165835
166257
|
const previewDir = join87(lottieDir, "previews");
|
|
165836
|
-
|
|
166258
|
+
mkdirSync43(previewDir, { recursive: true });
|
|
165837
166259
|
for (const file of readdirSync30(lottieDir)) {
|
|
165838
166260
|
if (!file.endsWith(".json")) continue;
|
|
165839
166261
|
try {
|
|
@@ -165841,7 +166263,7 @@ async function renderLottiePreviews(chromeBrowser, lottieDir, outputDir) {
|
|
|
165841
166263
|
const fr = raw.fr || 30;
|
|
165842
166264
|
const dur = ((raw.op || 0) - (raw.ip || 0)) / fr;
|
|
165843
166265
|
const previewName = file.replace(".json", "-preview.png");
|
|
165844
|
-
const fileSize =
|
|
166266
|
+
const fileSize = statSync27(join87(lottieDir, file)).size;
|
|
165845
166267
|
if (fileSize > 2e6) continue;
|
|
165846
166268
|
let previewPage;
|
|
165847
166269
|
try {
|
|
@@ -165999,9 +166421,9 @@ async function captureVideoManifest(page, outputDir, progress, opts) {
|
|
|
165999
166421
|
const merged = [...byKey.values()];
|
|
166000
166422
|
if (merged.length === 0) return;
|
|
166001
166423
|
const videoManifestDir = join87(outputDir, "assets", "videos");
|
|
166002
|
-
|
|
166424
|
+
mkdirSync43(videoManifestDir, { recursive: true });
|
|
166003
166425
|
const previewDir = join87(videoManifestDir, "previews");
|
|
166004
|
-
|
|
166426
|
+
mkdirSync43(previewDir, { recursive: true });
|
|
166005
166427
|
const videoManifest = [];
|
|
166006
166428
|
const dlStart = Date.now();
|
|
166007
166429
|
for (let vi = 0; vi < merged.length && vi < 20; vi++) {
|
|
@@ -166123,7 +166545,7 @@ var init_mediaCapture = __esm({
|
|
|
166123
166545
|
});
|
|
166124
166546
|
|
|
166125
166547
|
// src/capture/contentExtractor.ts
|
|
166126
|
-
import { existsSync as existsSync87, readdirSync as readdirSync31, statSync as
|
|
166548
|
+
import { existsSync as existsSync87, readdirSync as readdirSync31, statSync as statSync28, readFileSync as readFileSync59 } from "fs";
|
|
166127
166549
|
import { basename as basename21, join as join88 } from "path";
|
|
166128
166550
|
async function detectLibraries(page, capturedShaders) {
|
|
166129
166551
|
let detectedLibraries = [];
|
|
@@ -166300,7 +166722,7 @@ async function captionImagesWithGemini(outputDir, progress, warnings) {
|
|
|
166300
166722
|
const results = await Promise.allSettled(
|
|
166301
166723
|
batch.map(async (file) => {
|
|
166302
166724
|
const filePath = join88(outputDir, "assets", file);
|
|
166303
|
-
const stat3 =
|
|
166725
|
+
const stat3 = statSync28(filePath);
|
|
166304
166726
|
if (stat3.size > 4e6) return { file, caption: "" };
|
|
166305
166727
|
const buffer = readFileSync59(filePath);
|
|
166306
166728
|
const base64 = buffer.toString("base64");
|
|
@@ -166424,7 +166846,7 @@ function generateAssetDescriptions(outputDir, tokens, catalogedAssets, geminiCap
|
|
|
166424
166846
|
for (const file of readdirSync31(assetsPath)) {
|
|
166425
166847
|
if (file === "svgs" || file === "fonts" || file === "lottie" || file === "videos") continue;
|
|
166426
166848
|
const filePath = join88(assetsPath, file);
|
|
166427
|
-
const stat3 =
|
|
166849
|
+
const stat3 = statSync28(filePath);
|
|
166428
166850
|
if (!stat3.isFile()) continue;
|
|
166429
166851
|
const sizeKb = Math.round(stat3.size / 1024);
|
|
166430
166852
|
const catalogMatch = catalogedAssets.find(
|
|
@@ -166707,11 +167129,11 @@ var screenshotCapture_exports = {};
|
|
|
166707
167129
|
__export(screenshotCapture_exports, {
|
|
166708
167130
|
captureScrollScreenshots: () => captureScrollScreenshots
|
|
166709
167131
|
});
|
|
166710
|
-
import { writeFileSync as writeFileSync36, mkdirSync as
|
|
167132
|
+
import { writeFileSync as writeFileSync36, mkdirSync as mkdirSync44 } from "fs";
|
|
166711
167133
|
import { join as join91 } from "path";
|
|
166712
167134
|
async function captureScrollScreenshots(page, outputDir) {
|
|
166713
167135
|
const screenshotsDir = join91(outputDir, "screenshots");
|
|
166714
|
-
|
|
167136
|
+
mkdirSync44(screenshotsDir, { recursive: true });
|
|
166715
167137
|
const MAX_SCREENSHOTS = 20;
|
|
166716
167138
|
const filePaths = [];
|
|
166717
167139
|
try {
|
|
@@ -167151,7 +167573,7 @@ var capture_exports = {};
|
|
|
167151
167573
|
__export(capture_exports, {
|
|
167152
167574
|
captureWebsite: () => captureWebsite
|
|
167153
167575
|
});
|
|
167154
|
-
import { mkdirSync as
|
|
167576
|
+
import { mkdirSync as mkdirSync45, writeFileSync as writeFileSync37, existsSync as existsSync90 } from "fs";
|
|
167155
167577
|
import { join as join93 } from "path";
|
|
167156
167578
|
async function captureWebsite(opts, onProgress) {
|
|
167157
167579
|
const {
|
|
@@ -167169,9 +167591,9 @@ async function captureWebsite(opts, onProgress) {
|
|
|
167169
167591
|
onProgress?.(stage, detail);
|
|
167170
167592
|
};
|
|
167171
167593
|
loadEnvFile(outputDir);
|
|
167172
|
-
|
|
167173
|
-
|
|
167174
|
-
|
|
167594
|
+
mkdirSync45(join93(outputDir, "extracted"), { recursive: true });
|
|
167595
|
+
mkdirSync45(join93(outputDir, "screenshots"), { recursive: true });
|
|
167596
|
+
mkdirSync45(join93(outputDir, "assets"), { recursive: true });
|
|
167175
167597
|
progress("browser", "Launching headless Chrome...");
|
|
167176
167598
|
const { ensureBrowser: ensureBrowser2 } = await Promise.resolve().then(() => (init_manager2(), manager_exports2));
|
|
167177
167599
|
const browser = await ensureBrowser2();
|
|
@@ -167332,7 +167754,7 @@ async function captureWebsite(opts, onProgress) {
|
|
|
167332
167754
|
}
|
|
167333
167755
|
if (discoveredLotties.length > 0) {
|
|
167334
167756
|
const lottieDir = join93(outputDir, "assets", "lottie");
|
|
167335
|
-
|
|
167757
|
+
mkdirSync45(lottieDir, { recursive: true });
|
|
167336
167758
|
const savedCount = await saveLottieAnimations(discoveredLotties, lottieDir);
|
|
167337
167759
|
if (savedCount > 0) {
|
|
167338
167760
|
await renderLottiePreviews(chromeBrowser, lottieDir, outputDir);
|
|
@@ -167834,8 +168256,8 @@ var init_capture2 = __esm({
|
|
|
167834
168256
|
} catch (err) {
|
|
167835
168257
|
const errMsg = normalizeErrorMessage(err);
|
|
167836
168258
|
try {
|
|
167837
|
-
const { mkdirSync:
|
|
167838
|
-
|
|
168259
|
+
const { mkdirSync: mkdirSync50, writeFileSync: writeFileSync40 } = await import("fs");
|
|
168260
|
+
mkdirSync50(outputDir, { recursive: true });
|
|
167839
168261
|
const isTimeout = /timeout|timed out/i.test(errMsg);
|
|
167840
168262
|
const reason = isTimeout ? "Page navigation timed out \u2014 the site may be blocking headless browsers or requires authentication." : `Capture failed: ${errMsg}`;
|
|
167841
168263
|
writeFileSync40(
|
|
@@ -167881,14 +168303,14 @@ __export(state_exports, {
|
|
|
167881
168303
|
stateFilePath: () => stateFilePath,
|
|
167882
168304
|
writeStackOutputs: () => writeStackOutputs
|
|
167883
168305
|
});
|
|
167884
|
-
import { existsSync as existsSync91, mkdirSync as
|
|
168306
|
+
import { existsSync as existsSync91, mkdirSync as mkdirSync46, readdirSync as readdirSync34, readFileSync as readFileSync61, rmSync as rmSync19, writeFileSync as writeFileSync38 } from "fs";
|
|
167885
168307
|
import { dirname as dirname40, join as join94 } from "path";
|
|
167886
168308
|
function stateFilePath(stackName = DEFAULT_STACK_NAME, cwd = process.cwd()) {
|
|
167887
168309
|
return join94(cwd, STATE_DIR_NAME, `${STATE_FILE_PREFIX}${stackName}.json`);
|
|
167888
168310
|
}
|
|
167889
168311
|
function writeStackOutputs(outputs, cwd = process.cwd()) {
|
|
167890
168312
|
const path2 = stateFilePath(outputs.stackName, cwd);
|
|
167891
|
-
|
|
168313
|
+
mkdirSync46(dirname40(path2), { recursive: true });
|
|
167892
168314
|
writeFileSync38(path2, JSON.stringify(outputs, null, 2) + "\n");
|
|
167893
168315
|
return path2;
|
|
167894
168316
|
}
|
|
@@ -168372,10 +168794,10 @@ async function waitForCompletion(executionArn, stack, intervalMs, json) {
|
|
|
168372
168794
|
}
|
|
168373
168795
|
return;
|
|
168374
168796
|
}
|
|
168375
|
-
await
|
|
168797
|
+
await sleep3(intervalMs);
|
|
168376
168798
|
}
|
|
168377
168799
|
}
|
|
168378
|
-
function
|
|
168800
|
+
function sleep3(ms) {
|
|
168379
168801
|
return new Promise((res) => setTimeout(res, ms));
|
|
168380
168802
|
}
|
|
168381
168803
|
var init_render2 = __esm({
|
|
@@ -169441,7 +169863,7 @@ __export(cloudrun_exports, {
|
|
|
169441
169863
|
});
|
|
169442
169864
|
import { spawnSync as spawnSync6 } from "child_process";
|
|
169443
169865
|
import { createRequire as createRequire4 } from "module";
|
|
169444
|
-
import { existsSync as existsSync97, mkdirSync as
|
|
169866
|
+
import { existsSync as existsSync97, mkdirSync as mkdirSync47, readFileSync as readFileSync66, writeFileSync as writeFileSync39 } from "fs";
|
|
169445
169867
|
import { homedir as homedir14 } from "os";
|
|
169446
169868
|
import { dirname as dirname42, join as join100, resolve as resolve61 } from "path";
|
|
169447
169869
|
function stateDir() {
|
|
@@ -169451,7 +169873,7 @@ function statePath() {
|
|
|
169451
169873
|
return join100(stateDir(), "cloudrun-state.json");
|
|
169452
169874
|
}
|
|
169453
169875
|
function writeState(state) {
|
|
169454
|
-
|
|
169876
|
+
mkdirSync47(stateDir(), { recursive: true });
|
|
169455
169877
|
writeFileSync39(statePath(), JSON.stringify(state, null, 2));
|
|
169456
169878
|
}
|
|
169457
169879
|
function readState(args) {
|
|
@@ -169614,7 +170036,7 @@ function findRepoRoot(tfDir) {
|
|
|
169614
170036
|
}
|
|
169615
170037
|
function writeCloudBuildConfig(image) {
|
|
169616
170038
|
const cfgPath = join100(stateDir(), "cloudrun-cloudbuild.yaml");
|
|
169617
|
-
|
|
170039
|
+
mkdirSync47(stateDir(), { recursive: true });
|
|
169618
170040
|
writeFileSync39(
|
|
169619
170041
|
cfgPath,
|
|
169620
170042
|
[
|
|
@@ -170189,7 +170611,7 @@ async function pollUntilTerminal(client, renderId, options = {}) {
|
|
|
170189
170611
|
const intervalMs = options.intervalMs ?? DEFAULT_POLL_INTERVAL_MS;
|
|
170190
170612
|
const maxWaitMs = options.maxWaitMs ?? DEFAULT_MAX_WAIT_MS;
|
|
170191
170613
|
const now = options.now ?? (() => Date.now());
|
|
170192
|
-
const
|
|
170614
|
+
const sleep5 = options.sleep ?? defaultAbortableSleep(options.signal);
|
|
170193
170615
|
const started = now();
|
|
170194
170616
|
while (true) {
|
|
170195
170617
|
if (options.signal?.aborted) {
|
|
@@ -170204,7 +170626,7 @@ async function pollUntilTerminal(client, renderId, options = {}) {
|
|
|
170204
170626
|
if (elapsed >= maxWaitMs) {
|
|
170205
170627
|
throw new PollTimeoutError(detail, elapsed);
|
|
170206
170628
|
}
|
|
170207
|
-
await
|
|
170629
|
+
await sleep5(intervalMs);
|
|
170208
170630
|
}
|
|
170209
170631
|
}
|
|
170210
170632
|
function signalAbortError(signal) {
|
|
@@ -170245,7 +170667,7 @@ var init_poll = __esm({
|
|
|
170245
170667
|
});
|
|
170246
170668
|
|
|
170247
170669
|
// src/cloud/download.ts
|
|
170248
|
-
import { createWriteStream as createWriteStream5, mkdirSync as
|
|
170670
|
+
import { createWriteStream as createWriteStream5, mkdirSync as mkdirSync48, unlinkSync as unlinkSync8 } from "fs";
|
|
170249
170671
|
import { dirname as dirname43 } from "path";
|
|
170250
170672
|
async function downloadToFile(url, destPath, options = {}) {
|
|
170251
170673
|
const fetchImpl = options.fetchImpl ?? fetch;
|
|
@@ -170256,7 +170678,7 @@ async function downloadToFile(url, destPath, options = {}) {
|
|
|
170256
170678
|
if (!res.body) {
|
|
170257
170679
|
throw new Error(`Failed to download ${url}: empty response body`);
|
|
170258
170680
|
}
|
|
170259
|
-
|
|
170681
|
+
mkdirSync48(dirname43(destPath), { recursive: true });
|
|
170260
170682
|
const totalHeader = res.headers.get("content-length");
|
|
170261
170683
|
const total = totalHeader ? Number.parseInt(totalHeader, 10) : void 0;
|
|
170262
170684
|
const totalOpt = total !== void 0 && Number.isFinite(total) ? total : void 0;
|
|
@@ -170462,6 +170884,33 @@ var init_client2 = __esm({
|
|
|
170462
170884
|
signal: args.signal
|
|
170463
170885
|
});
|
|
170464
170886
|
}
|
|
170887
|
+
/**
|
|
170888
|
+
* Create Asset Upload
|
|
170889
|
+
*
|
|
170890
|
+
* Begin a direct-to-S3 upload. Returns an asset_id and a presigned upload_url; PUT the file bytes to upload_url, then call POST /v3/assets/{asset_id}/complete. Unlike POST /v3/assets (which proxies the bytes), this never sends the file through the API.
|
|
170891
|
+
*/
|
|
170892
|
+
async createAssetUpload(args) {
|
|
170893
|
+
return await this.request({
|
|
170894
|
+
method: "POST",
|
|
170895
|
+
path: "/v3/assets/direct-uploads",
|
|
170896
|
+
body: args.body,
|
|
170897
|
+
idempotencyKey: args.idempotencyKey,
|
|
170898
|
+
signal: args.signal
|
|
170899
|
+
});
|
|
170900
|
+
}
|
|
170901
|
+
/**
|
|
170902
|
+
* Complete Asset Upload
|
|
170903
|
+
*
|
|
170904
|
+
* Finalize a direct-to-S3 upload into a reusable asset. Call after the upload PUT returns 200. Idempotent: repeated calls return the same finalized asset.
|
|
170905
|
+
*/
|
|
170906
|
+
async completeAssetUpload(args) {
|
|
170907
|
+
return await this.request({
|
|
170908
|
+
method: "POST",
|
|
170909
|
+
path: `/v3/assets/${encodeURIComponent(args.asset_id)}/complete`,
|
|
170910
|
+
body: args.body,
|
|
170911
|
+
signal: args.signal
|
|
170912
|
+
});
|
|
170913
|
+
}
|
|
170465
170914
|
/**
|
|
170466
170915
|
* Create HyperFrames Render
|
|
170467
170916
|
*
|
|
@@ -171591,7 +172040,7 @@ var init_errors2 = __esm({
|
|
|
171591
172040
|
init_format();
|
|
171592
172041
|
init_client2();
|
|
171593
172042
|
ERROR_CODE_HINTS = {
|
|
171594
|
-
hyperframes_project_too_large: "The zip exceeded the
|
|
172043
|
+
hyperframes_project_too_large: "The zip exceeded the 200 MB limit. Trim large media (or pre-host them and reference by URL), then try again.",
|
|
171595
172044
|
hyperframes_render_not_found: "The render_id no longer exists \u2014 either soft-deleted or never created.",
|
|
171596
172045
|
invalid_parameter: "Check the listed parameter against `hyperframes cloud render --help` for the accepted values.",
|
|
171597
172046
|
authentication_failed: "Run `hyperframes auth status` to confirm your credential; `hyperframes auth login` to re-auth.",
|
|
@@ -171657,6 +172106,91 @@ var init_parsing = __esm({
|
|
|
171657
172106
|
}
|
|
171658
172107
|
});
|
|
171659
172108
|
|
|
172109
|
+
// src/cloud/upload.ts
|
|
172110
|
+
import { createHash as createHash14 } from "crypto";
|
|
172111
|
+
function sha256Hex2(bytes) {
|
|
172112
|
+
return createHash14("sha256").update(bytes).digest("hex");
|
|
172113
|
+
}
|
|
172114
|
+
function sleep4(ms) {
|
|
172115
|
+
return new Promise((r2) => setTimeout(r2, ms));
|
|
172116
|
+
}
|
|
172117
|
+
function normalizeUploadHeaders(raw) {
|
|
172118
|
+
const out = {};
|
|
172119
|
+
for (const [k2, v2] of Object.entries(raw ?? {})) {
|
|
172120
|
+
if (typeof v2 === "string") out[k2] = v2;
|
|
172121
|
+
else if (typeof v2 === "number" || typeof v2 === "boolean") out[k2] = String(v2);
|
|
172122
|
+
}
|
|
172123
|
+
return out;
|
|
172124
|
+
}
|
|
172125
|
+
async function putBytesToPresignedUrl(fetchImpl, uploadUrl, uploadHeaders, bytes) {
|
|
172126
|
+
const headers = {
|
|
172127
|
+
"content-type": CONTENT_TYPE_ZIP,
|
|
172128
|
+
...normalizeUploadHeaders(uploadHeaders)
|
|
172129
|
+
};
|
|
172130
|
+
const res = await fetchImpl(uploadUrl, {
|
|
172131
|
+
method: "PUT",
|
|
172132
|
+
headers,
|
|
172133
|
+
body: bytes
|
|
172134
|
+
});
|
|
172135
|
+
if (!res.ok) {
|
|
172136
|
+
const detail = await res.text().catch(() => "");
|
|
172137
|
+
throw new Error(
|
|
172138
|
+
`Direct upload PUT failed: ${res.status} ${res.statusText}${detail ? ` \u2014 ${detail.slice(0, 300)}` : ""}`
|
|
172139
|
+
);
|
|
172140
|
+
}
|
|
172141
|
+
}
|
|
172142
|
+
async function completeWithRetry(client, asset_id, checksum_sha256) {
|
|
172143
|
+
let lastErr;
|
|
172144
|
+
for (let attempt = 0; attempt < COMPLETE_MAX_RETRIES; attempt++) {
|
|
172145
|
+
try {
|
|
172146
|
+
return await client.completeAssetUpload({
|
|
172147
|
+
asset_id,
|
|
172148
|
+
body: { checksum_sha256 }
|
|
172149
|
+
});
|
|
172150
|
+
} catch (err) {
|
|
172151
|
+
const retryable = err instanceof HyperframesApiError && err.status === 409;
|
|
172152
|
+
if (!retryable || attempt === COMPLETE_MAX_RETRIES - 1) {
|
|
172153
|
+
throw err;
|
|
172154
|
+
}
|
|
172155
|
+
lastErr = err;
|
|
172156
|
+
await sleep4(COMPLETE_RETRY_BASE_MS * (attempt + 1));
|
|
172157
|
+
}
|
|
172158
|
+
}
|
|
172159
|
+
throw lastErr ?? new Error("completeAssetUpload retries exhausted");
|
|
172160
|
+
}
|
|
172161
|
+
async function uploadZipViaDirectUpload(opts) {
|
|
172162
|
+
const start = Date.now();
|
|
172163
|
+
const { bytes, filename, idempotencyKey } = opts;
|
|
172164
|
+
const size_bytes = bytes.byteLength;
|
|
172165
|
+
const checksum_sha256 = sha256Hex2(bytes);
|
|
172166
|
+
const fetchImpl = opts.fetchImpl ?? fetch;
|
|
172167
|
+
opts.onProgress?.({ phase: "initialize" });
|
|
172168
|
+
const initialize = await opts.client.createAssetUpload({
|
|
172169
|
+
body: { filename, content_type: CONTENT_TYPE_ZIP, size_bytes, checksum_sha256 },
|
|
172170
|
+
idempotencyKey
|
|
172171
|
+
});
|
|
172172
|
+
opts.onProgress?.({ phase: "upload", percent: 0 });
|
|
172173
|
+
await putBytesToPresignedUrl(fetchImpl, initialize.upload_url, initialize.upload_headers, bytes);
|
|
172174
|
+
opts.onProgress?.({ phase: "upload", percent: 100 });
|
|
172175
|
+
opts.onProgress?.({ phase: "complete" });
|
|
172176
|
+
const completed = await completeWithRetry(opts.client, initialize.asset_id, checksum_sha256);
|
|
172177
|
+
return {
|
|
172178
|
+
asset_id: completed.asset_id,
|
|
172179
|
+
size_bytes,
|
|
172180
|
+
duration_ms: Date.now() - start
|
|
172181
|
+
};
|
|
172182
|
+
}
|
|
172183
|
+
var COMPLETE_MAX_RETRIES, COMPLETE_RETRY_BASE_MS, CONTENT_TYPE_ZIP;
|
|
172184
|
+
var init_upload = __esm({
|
|
172185
|
+
"src/cloud/upload.ts"() {
|
|
172186
|
+
"use strict";
|
|
172187
|
+
init_client2();
|
|
172188
|
+
COMPLETE_MAX_RETRIES = 5;
|
|
172189
|
+
COMPLETE_RETRY_BASE_MS = 500;
|
|
172190
|
+
CONTENT_TYPE_ZIP = "application/zip";
|
|
172191
|
+
}
|
|
172192
|
+
});
|
|
172193
|
+
|
|
171660
172194
|
// src/cloud/statusColor.ts
|
|
171661
172195
|
function colorStatus(status) {
|
|
171662
172196
|
switch (status) {
|
|
@@ -171817,22 +172351,25 @@ async function maybeUploadProject(client, source, asJson, idempotencyKey) {
|
|
|
171817
172351
|
}
|
|
171818
172352
|
if (!asJson) {
|
|
171819
172353
|
console.log("");
|
|
171820
|
-
console.log(`${c.accent("\u25C6")} Uploading to
|
|
172354
|
+
console.log(`${c.accent("\u25C6")} Uploading (direct-to-S3)`);
|
|
171821
172355
|
}
|
|
171822
172356
|
const uploadStart = Date.now();
|
|
171823
172357
|
let uploaded;
|
|
171824
172358
|
try {
|
|
171825
|
-
uploaded = await
|
|
171826
|
-
|
|
172359
|
+
uploaded = await uploadZipViaDirectUpload({
|
|
172360
|
+
client,
|
|
172361
|
+
bytes: archive.buffer,
|
|
171827
172362
|
filename: `${project.name}.zip`,
|
|
171828
|
-
|
|
171829
|
-
|
|
171830
|
-
|
|
171831
|
-
|
|
171832
|
-
|
|
171833
|
-
|
|
171834
|
-
|
|
171835
|
-
|
|
172363
|
+
idempotencyKey,
|
|
172364
|
+
onProgress: !asJson ? (ev) => {
|
|
172365
|
+
if (ev.phase === "initialize") {
|
|
172366
|
+
console.log(c.dim(` initializing\u2026`));
|
|
172367
|
+
} else if (ev.phase === "upload" && ev.percent === 0) {
|
|
172368
|
+
console.log(c.dim(` uploading to S3\u2026`));
|
|
172369
|
+
} else if (ev.phase === "complete") {
|
|
172370
|
+
console.log(c.dim(` finalizing\u2026`));
|
|
172371
|
+
}
|
|
172372
|
+
} : void 0
|
|
171836
172373
|
});
|
|
171837
172374
|
} catch (err) {
|
|
171838
172375
|
reportApiError("Upload failed", err);
|
|
@@ -171969,6 +172506,7 @@ var init_render3 = __esm({
|
|
|
171969
172506
|
init_cloud();
|
|
171970
172507
|
init_errors2();
|
|
171971
172508
|
init_parsing();
|
|
172509
|
+
init_upload();
|
|
171972
172510
|
init_statusColor();
|
|
171973
172511
|
VALID_QUALITY2 = ["draft", "standard", "high"];
|
|
171974
172512
|
VALID_FORMAT2 = ["mp4", "webm", "mov"];
|
|
@@ -173409,7 +173947,7 @@ __export(autoUpdate_exports, {
|
|
|
173409
173947
|
scheduleBackgroundInstall: () => scheduleBackgroundInstall
|
|
173410
173948
|
});
|
|
173411
173949
|
import { spawn as spawn17 } from "child_process";
|
|
173412
|
-
import { appendFileSync as appendFileSync2, mkdirSync as
|
|
173950
|
+
import { appendFileSync as appendFileSync2, mkdirSync as mkdirSync49, openSync as openSync3 } from "fs";
|
|
173413
173951
|
import { homedir as homedir16 } from "os";
|
|
173414
173952
|
import { join as join103 } from "path";
|
|
173415
173953
|
import { compareVersions as compareVersions3 } from "compare-versions";
|
|
@@ -173426,14 +173964,14 @@ function majorOf(version2) {
|
|
|
173426
173964
|
}
|
|
173427
173965
|
function log(line2) {
|
|
173428
173966
|
try {
|
|
173429
|
-
|
|
173967
|
+
mkdirSync49(CONFIG_DIR2, { recursive: true, mode: 448 });
|
|
173430
173968
|
appendFileSync2(LOG_FILE, `${(/* @__PURE__ */ new Date()).toISOString()} ${line2}
|
|
173431
173969
|
`, { mode: 384 });
|
|
173432
173970
|
} catch {
|
|
173433
173971
|
}
|
|
173434
173972
|
}
|
|
173435
173973
|
function launchDetachedInstall(installCommand, version2) {
|
|
173436
|
-
|
|
173974
|
+
mkdirSync49(CONFIG_DIR2, { recursive: true, mode: 448 });
|
|
173437
173975
|
const configFile = join103(CONFIG_DIR2, "config.json");
|
|
173438
173976
|
const nodeScript = `
|
|
173439
173977
|
const { exec } = require("node:child_process");
|