crossnote 0.9.27 → 0.9.28
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/out/cjs/index.cjs +63 -63
- package/out/esm/index.mjs +42 -42
- package/out/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/out/esm/index.mjs
CHANGED
|
@@ -10,7 +10,7 @@ var Oz=Object.create;var OD=Object.defineProperty;var Dz=Object.getOwnPropertyDe
|
|
|
10
10
|
: (u > v || v == null) && u != null ? ${v}
|
|
11
11
|
: ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${b}
|
|
12
12
|
: v !== v && u === u ? ${v} : `})(c,u,-o,o)})).join("")+"0;");return n?r.bind(n):r}}};function tO(e,t,n){if(!e||!ye(e))return e;for(let r,a=0,i=nO.length;a<i;++a)if(r=nO[a],ot(e,r.key))return r.parse(e,t,n);return e}var nO=[{key:"$ref",parse:function(e,t){return t.get(e.$ref)||L("Operator not defined: "+e.$ref)}},{key:"$key",parse:function(e,t){let n="k:"+e.$key+"_"+!!e.$flat;return t.fn[n]||(t.fn[n]=Ai(e.$key,e.$flat,t.expr.codegen))}},{key:"$expr",parse:function(e,t,n){e.$params&&t.parseParameters(e.$params,n);let r="e:"+e.$expr.code;return t.fn[r]||(t.fn[r]=h(t.parameterExpression(e.$expr),e.$fields))}},{key:"$field",parse:function(e,t){if(!e.$field)return null;let n="f:"+e.$field+"_"+e.$name;return t.fn[n]||(t.fn[n]=q(e.$field,e.$name,t.expr.codegen))}},{key:"$encode",parse:function(e,t){let n=e.$encode,r={};for(let a in n){let i=n[a];r[a]=h(t.encodeExpression(i.$expr),i.$fields),r[a].output=i.$output}return r}},{key:"$compare",parse:function(e,t){let n="c:"+e.$compare+"_"+e.$order,r=Ne(e.$compare).map((a=>a&&a.$tupleid?ut:a));return t.fn[n]||(t.fn[n]=Lt(r,e.$order,t.expr.codegen))}},{key:"$context",parse:function(e,t){return t}},{key:"$subflow",parse:function(e,t){let n=e.$subflow;return function(r,a,i){let o=t.fork().parse(n),c=o.get(n.operators[0].id),u=o.signals.parent;return u&&u.set(i),c.detachSubflow=()=>t.detach(o),c}}},{key:"$tupleid",parse:function(){return ut}}];let dB={skip:!0};function rO(e,t,n,r){return new aO(e,t,n,r)}function aO(e,t,n,r){this.dataflow=e,this.transforms=t,this.events=e.events.bind(e),this.expr=r||uB,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function iO(e){this.dataflow=e.dataflow,this.transforms=e.transforms,this.events=e.events,this.expr=e.expr,this.signals=Object.create(e.signals),this.scales=Object.create(e.scales),this.nodes=Object.create(e.nodes),this.data=Object.create(e.data),this.fn=Object.create(e.fn),e.functions&&(this.functions=Object.create(e.functions),this.functions.context=this)}function oO(e,t){e&&(t==null?e.removeAttribute("aria-label"):e.setAttribute("aria-label",t))}aO.prototype=iO.prototype={fork(){let e=new iO(this);return(this.subcontext||(this.subcontext=[])).push(e),e},detach(e){this.subcontext=this.subcontext.filter((n=>n!==e));let t=Object.keys(e.nodes);for(let n of t)e.nodes[n]._targets=null;for(let n of t)e.nodes[n].detach();e.nodes=null},get(e){return this.nodes[e]},set(e,t){return this.nodes[e]=t},add(e,t){let n=this,r=n.dataflow,a=e.value;if(n.set(e.id,t),(function(i){return RS(i)==="collect"})(e.type)&&a&&(a.$ingest?r.ingest(t,a.$ingest,a.$format):a.$request?r.preload(t,a.$request,a.$format):r.pulse(t,r.changeset().insert(a))),e.root&&(n.root=t),e.parent){let i=n.get(e.parent.$ref);i?(r.connect(i,[t]),t.targets().add(i)):(n.unresolved=n.unresolved||[]).push((()=>{i=n.get(e.parent.$ref),r.connect(i,[t]),t.targets().add(i)}))}if(e.signal&&(n.signals[e.signal]=t),e.scale&&(n.scales[e.scale]=t),e.data)for(let i in e.data){let o=n.data[i]||(n.data[i]={});e.data[i].forEach((c=>o[c]=t))}},resolve(){return(this.unresolved||[]).forEach((e=>e())),delete this.unresolved,this},operator(e,t){this.add(e,this.dataflow.add(e.value,t))},transform(e,t){this.add(e,this.dataflow.add(this.transforms[RS(t)]))},stream(e,t){this.set(e.id,t)},update(e,t,n,r,a){this.dataflow.on(t,n,r,a,e.options)},operatorExpression(e){return this.expr.operator(this,e)},parameterExpression(e){return this.expr.parameter(this,e)},eventExpression(e){return this.expr.event(this,e)},handlerExpression(e){return this.expr.handler(this,e)},encodeExpression(e){return this.expr.encode(this,e)},parse:function(e){let t=this,n=e.operators||[];return e.background&&(t.background=e.background),e.eventConfig&&(t.eventConfig=e.eventConfig),e.locale&&(t.locale=e.locale),n.forEach((r=>t.parseOperator(r))),n.forEach((r=>t.parseOperatorParameters(r))),(e.streams||[]).forEach((r=>t.parseStream(r))),(e.updates||[]).forEach((r=>t.parseUpdate(r))),t.resolve()},parseOperator:function(e){let t=this;!(function(n){return RS(n)==="operator"})(e.type)&&e.type?t.transform(e,e.type):t.operator(e,e.update?t.operatorExpression(e.update):null)},parseOperatorParameters:function(e){let t=this;if(e.params){let n=t.get(e.id);n||L("Invalid operator id: "+e.id),t.dataflow.connect(n,n.parameters(t.parseParameters(e.params),e.react,e.initonly))}},parseParameters:function(e,t){t=t||{};let n=this;for(let r in e){let a=e[r];t[r]=ve(a)?a.map((i=>tO(i,n,t))):tO(a,n,t)}return t},parseStream:function(e){var t,n=this,r=e.filter!=null?n.eventExpression(e.filter):void 0,a=e.stream!=null?n.get(e.stream):void 0;e.source?a=n.events(e.source,e.type,r):e.merge&&(a=(t=e.merge.map((i=>n.get(i))))[0].merge.apply(t[0],t.slice(1))),e.between&&(t=e.between.map((i=>n.get(i))),a=a.between(t[0],t[1])),e.filter&&(a=a.filter(r)),e.throttle!=null&&(a=a.throttle(+e.throttle)),e.debounce!=null&&(a=a.debounce(+e.debounce)),a==null&&L("Invalid stream definition: "+JSON.stringify(e)),e.consume&&a.consume(!0),n.stream(e,a)},parseUpdate:function(e){var t,n=this,r=ye(r=e.source)?r.$ref:r,a=n.get(r),i=e.update,o=void 0;a||L("Source not defined: "+e.source),t=e.target&&e.target.$expr?n.eventExpression(e.target.$expr):n.get(e.target),i&&i.$expr&&(i.$params&&(o=n.parseParameters(i.$params)),i=n.handlerExpression(i.$expr)),n.update(e,a,t,i,o)},getState:function(e){var t=this,n={};if(e.signals){var r=n.signals={};Object.keys(t.signals).forEach((i=>{let o=t.signals[i];e.signals(i,o)&&(r[i]=o.value)}))}if(e.data){var a=n.data={};Object.keys(t.data).forEach((i=>{let o=t.data[i];e.data(i,o)&&(a[i]=o.input.value)}))}return t.subcontext&&e.recurse!==!1&&(n.subcontext=t.subcontext.map((i=>i.getState(e)))),n},setState:function(e){var t=this,n=t.dataflow,r=e.data,a=e.signals;Object.keys(a||{}).forEach((i=>{n.update(t.signals[i],a[i],dB)})),Object.keys(r||{}).forEach((i=>{n.pulse(t.data[i].input,n.changeset().remove(Y).insert(r[i]))})),(e.subcontext||[]).forEach(((i,o)=>{let c=t.subcontext[o];c&&c.setState(i)}))}};let CS="default";function NS(e,t){let n=e.globalCursor()?typeof document<"u"&&document.body:e.container();if(n)return t==null?n.style.removeProperty("cursor"):n.style.cursor=t}function vw(e,t){var n=e._runtime.data;return ot(n,t)||L("Unrecognized data set: "+t),n[t]}function Ew(e,t){sc(t)||L("Second argument to changes must be a changeset.");let n=vw(this,e);return n.modified=!0,this.pulse(n.input,t)}function sO(e){var t=e.padding();return Math.max(0,e._viewWidth+t.left+t.right)}function lO(e){var t=e.padding();return Math.max(0,e._viewHeight+t.top+t.bottom)}function ww(e){var t=e.padding(),n=e._origin;return[t.left+n[0],t.top+n[1]]}function fB(e,t,n){var r,a,i=e._renderer,o=i&&i.canvas();return o&&(a=ww(e),(r=Vv(t.changedTouches?t.changedTouches[0]:t,o))[0]-=a[0],r[1]-=a[1]),t.dataflow=e,t.item=n,t.vega=(function(c,u,f){let g=u?u.mark.marktype==="group"?u:u.mark.group:null;function b(E){var S,x=g;if(E){for(S=u;S;S=S.mark.group)if(S.mark.name===E){x=S;break}}return x&&x.mark&&x.mark.interactive?x:{}}function v(E){if(!E)return f;Ut(E)&&(E=b(E));let S=f.slice();for(;E;)S[0]-=E.x||0,S[1]-=E.y||0,E=E.mark&&E.mark.group;return S}return{view:Ze(c),item:Ze(u||{}),group:b,xy:v,x:E=>v(E)[0],y:E=>v(E)[1]}})(e,n,r),t}let cO="view",pB="timer",hB="window",mB={trap:!1};function uO(e,t,n,r){e._eventListeners.push({type:n,sources:Ne(t),handler:r})}function kw(e,t,n){let r=e._eventConfig&&e._eventConfig[t];return!(r===!1||ye(r)&&!r[n])||(e.warn(`Blocked ${t} ${n} event listener.`),!1)}function dO(e){return e.item}function fO(e){return e.item.mark.source}function pO(e){return function(t,n){return n.vega.view().changeset().encode(n.item,e)}}function ki(e,t,n){let r=document.createElement(e);for(let a in t)r.setAttribute(a,t[a]);return n!=null&&(r.textContent=n),r}let gB="vega-bind",bB="vega-bind-name",yB="vega-bind-radio";function vB(e,t,n,r){let a=n.event||"input",i=()=>e.update(t.value);r.signal(n.signal,t.value),t.addEventListener(a,i),uO(r,t,a,i),e.set=o=>{t.value=o,t.dispatchEvent((function(c){return typeof Event<"u"?new Event(c):{type:c}})(a))}}function EB(e,t,n,r){let a=r.signal(n.signal),i=ki("div",{class:gB}),o=n.input==="radio"?i:i.appendChild(ki("label"));o.appendChild(ki("span",{class:bB},n.name||n.signal)),t.appendChild(i);let c=wB;switch(n.input){case"checkbox":c=kB;break;case"select":c=_B;break;case"radio":c=xB;break;case"range":c=SB}c(e,o,n,a)}function wB(e,t,n,r){let a=ki("input");for(let i in n)i!=="signal"&&i!=="element"&&a.setAttribute(i==="input"?"type":i,n[i]);a.setAttribute("name",n.signal),a.value=r,t.appendChild(a),a.addEventListener("input",(()=>e.update(a.value))),e.elements=[a],e.set=i=>a.value=i}function kB(e,t,n,r){let a={type:"checkbox",name:n.signal};r&&(a.checked=!0);let i=ki("input",a);t.appendChild(i),i.addEventListener("change",(()=>e.update(i.checked))),e.elements=[i],e.set=o=>i.checked=!!o||null}function _B(e,t,n,r){let a=ki("select",{name:n.signal}),i=n.labels||[];n.options.forEach(((o,c)=>{let u={value:o};_w(o,r)&&(u.selected=!0),a.appendChild(ki("option",u,(i[c]||o)+""))})),t.appendChild(a),a.addEventListener("change",(()=>{e.update(n.options[a.selectedIndex])})),e.elements=[a],e.set=o=>{for(let c=0,u=n.options.length;c<u;++c)if(_w(n.options[c],o))return void(a.selectedIndex=c)}}function xB(e,t,n,r){let a=ki("span",{class:yB}),i=n.labels||[];t.appendChild(a),e.elements=n.options.map(((o,c)=>{let u={type:"radio",name:n.signal,value:o};_w(o,r)&&(u.checked=!0);let f=ki("input",u);f.addEventListener("change",(()=>e.update(o)));let g=ki("label",{},(i[c]||o)+"");return g.prepend(f),a.appendChild(g),f})),e.set=o=>{let c=e.elements,u=c.length;for(let f=0;f<u;++f)_w(c[f].value,o)&&(c[f].checked=!0)}}function SB(e,t,n,r){r=r!==void 0?r:(+n.max+ +n.min)/2;let a=n.max!=null?n.max:Math.max(100,+r)||100,i=n.min||Math.min(0,a,+r)||0,o=n.step||Ci(i,a,100),c=ki("input",{type:"range",name:n.signal,min:i,max:a,step:o});c.value=r;let u=ki("span",{},+r);t.appendChild(c),t.appendChild(u);let f=()=>{u.textContent=c.value,e.update(+c.value)};c.addEventListener("input",f),c.addEventListener("change",f),e.elements=[c],e.set=g=>{c.value=g,u.textContent=g}}function _w(e,t){return e===t||e+""==t+""}function hO(e,t,n,r,a,i){return(t=t||new r(e.loader())).initialize(n,sO(e),lO(e),ww(e),a,i).background(e.background())}function IS(e,t){return t?function(){try{t.apply(this,arguments)}catch(n){e.error(n)}}:null}function OS(e,t,n){if(typeof t=="string"){if(typeof document>"u")return e.error("DOM document instance not found."),null;if(!(t=document.querySelector(t)))return e.error("Signal bind element not found: "+t),null}if(t&&n)try{t.textContent=""}catch(r){t=null,e.error(r)}return t}let n0=e=>+e||0,AB=e=>({top:e,bottom:e,left:e,right:e});function mO(e){return ye(e)?{top:n0(e.top),bottom:n0(e.bottom),left:n0(e.left),right:n0(e.right)}:AB(n0(e))}async function DS(e,t,n,r){let a=aE(t),i=a&&a.headless;return i||L("Unrecognized renderer type: "+t),await e.runAsync(),hO(e,null,null,i,n,r).renderAsync(e._scenegraph.root)}var gO="width",bO="height",MS="padding",yO={skip:!0};function vO(e,t){var n=e.autosize(),r=e.padding();return t-(n&&n.contains===MS?r.left+r.right:0)}function EO(e,t){var n=e.autosize(),r=e.padding();return t-(n&&n.contains===MS?r.top+r.bottom:0)}function TB(e,t){return t.modified&&ve(t.input.value)&&e.indexOf("_:vega:_")}function RB(e,t){return!(e==="parent"||t instanceof tl.proxy)}function CB(e,t,n,r){let a=e.element();a&&a.setAttribute("title",(function(i){return i==null?"":ve(i)?wO(i):ye(i)&&!vn(i)?(o=i,Object.keys(o).map((c=>{let u=o[c];return c+": "+(ve(u)?wO(u):kO(u))})).join(`
|
|
13
|
-
`)):i+"";var o})(r))}function wO(e){return"["+e.map(kO).join(", ")+"]"}function kO(e){return ve(e)?"[\u2026]":ye(e)&&!vn(e)?"{\u2026}":e}function _O(e,t){let n=this;if(t=t||{},el.call(n),t.loader&&n.loader(t.loader),t.logger&&n.logger(t.logger),t.logLevel!=null&&n.logLevel(t.logLevel),t.locale||e.locale){let i=lt({},e.locale,t.locale);n.locale(sm(i.number,i.time))}n._el=null,n._elBind=null,n._renderType=t.renderer||Pc.Canvas,n._scenegraph=new X_;let r=n._scenegraph.root;n._renderer=null,n._tooltip=t.tooltip||CB,n._redraw=!0,n._handler=new mb().scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=(function(i){let o=lt({defaults:{}},i),c=(u,f)=>{f.forEach((g=>{ve(u[g])&&(u[g]=ua(u[g]))}))};return c(o.defaults,["prevent","allow"]),c(o,["view","window","selector"]),o})(e.eventConfig),n.globalCursor(n._eventConfig.globalCursor);let a=(function(i,o,c){return rO(i,tl,e0,c).parse(o)})(n,e,t.expr);n._runtime=a,n._signals=a.signals,n._bind=(e.bindings||[]).map((i=>({state:null,param:lt({},i)}))),a.root&&a.root.set(r),r.source=a.data.root.input,n.pulse(a.data.root.input,n.changeset().insert(r.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=vO(n,n._width),n._viewHeight=EO(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,(function(i){var o=i._signals,c=o[gO],u=o[bO],f=o[MS];function g(){i._autosize=i._resize=1}i._resizeWidth=i.add(null,(v=>{i._width=v.size,i._viewWidth=vO(i,v.size),g()}),{size:c}),i._resizeHeight=i.add(null,(v=>{i._height=v.size,i._viewHeight=EO(i,v.size),g()}),{size:u});let b=i.add(null,g,{pad:f});i._resizeWidth.rank=c.rank+1,i._resizeHeight.rank=u.rank+1,b.rank=f.rank+1})(n),(function(i){i.add(null,(o=>(i._background=o.bg,i._resize=1,o.bg)),{bg:i._signals.background})})(n),(function(i){let o=i._signals.cursor||(i._signals.cursor=i.add({user:CS,item:null}));i.on(i.events("view","mousemove"),o,((c,u)=>{let f=o.value,g=f?Ut(f)?f:f.user:CS,b=u.item&&u.item.cursor||null;return f&&g===f.user&&b==f.item?f:{user:g,item:b}})),i.add(null,(function(c){let u=c.cursor,f=this.value;return Ut(u)||(f=u.item,u=u.user),NS(i,u&&u!==CS?u:f||u),f}),{cursor:o})})(n),n.description(e.description),t.hover&&n.hover(),t.container&&n.initialize(t.container,t.bind)}function xw(e,t){return ot(e._signals,t)?e._signals[t]:L("Unrecognized signal name: "+ft(t))}function xO(e,t){let n=(e._targets||[]).filter((r=>r._update&&r._update.handler===t));return n.length?n[0]:null}function SO(e,t,n,r){let a=xO(n,r);return a||(a=IS(e,(()=>r(t,n.value))),a.handler=r,e.on(n,null,a)),e}function AO(e,t,n){let r=xO(t,n);return r&&t._targets.remove(r),e}Fe(_O,el,{async evaluate(e,t,n){if(await el.prototype.evaluate.call(this,e,t),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,(function(r){var a=ww(r),i=sO(r),o=lO(r);r._renderer.background(r.background()),r._renderer.resize(i,o,a),r._handler.origin(a),r._resizeListeners.forEach((c=>{try{c(i,o)}catch(u){r.error(u)}}))})(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(r){this.error(r)}return n&&mn(this,n),this},dirty(e){this._redraw=!0,this._renderer&&this._renderer.dirty(e)},description(e){if(arguments.length){let t=e!=null?e+"":null;return t!==this._desc&&oO(this._el,this._desc=t),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(e,t,n){let r=xw(this,e);return arguments.length===1?r.value:this.update(r,t,n)},width(e){return arguments.length?this.signal("width",e):this.signal("width")},height(e){return arguments.length?this.signal("height",e):this.signal("height")},padding(e){return arguments.length?this.signal("padding",mO(e)):mO(this.signal("padding"))},autosize(e){return arguments.length?this.signal("autosize",e):this.signal("autosize")},background(e){return arguments.length?this.signal("background",e):this.signal("background")},renderer(e){return arguments.length?(aE(e)||L("Unrecognized renderer type: "+e),e!==this._renderType&&(this._renderType=e,this._resetRenderer()),this):this._renderType},tooltip(e){return arguments.length?(e!==this._tooltip&&(this._tooltip=e,this._resetRenderer()),this):this._tooltip},loader(e){return arguments.length?(e!==this._loader&&(el.prototype.loader.call(this,e),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(xw(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:function(e,t,n,r,a,i){this.runAfter((o=>{let c=0;o._autosize=0,o.width()!==n&&(c=1,o.signal(gO,n,yO),o._resizeWidth.skip(!0)),o.height()!==r&&(c=1,o.signal(bO,r,yO),o._resizeHeight.skip(!0)),o._viewWidth!==e&&(o._resize=1,o._viewWidth=e),o._viewHeight!==t&&(o._resize=1,o._viewHeight=t),o._origin[0]===a[0]&&o._origin[1]===a[1]||(o._resize=1,o._origin=a),c&&o.run("enter"),i&&o.runAfter((u=>u.resize()))}),!1,1)},addEventListener(e,t,n){let r=t;return n&&n.trap===!1||(r=IS(this,t),r.raw=t),this._handler.on(e,r),this},removeEventListener(e,t){for(var n,r,a=this._handler.handlers(e),i=a.length;--i>=0;)if(r=a[i].type,n=a[i].handler,e===r&&(t===n||t===n.raw)){this._handler.off(r,n);break}return this},addResizeListener(e){let t=this._resizeListeners;return t.indexOf(e)<0&&t.push(e),this},removeResizeListener(e){var t=this._resizeListeners,n=t.indexOf(e);return n>=0&&t.splice(n,1),this},addSignalListener(e,t){return SO(this,e,xw(this,e),t)},removeSignalListener(e,t){return AO(this,xw(this,e),t)},addDataListener(e,t){return SO(this,e,vw(this,e).values,t)},removeDataListener(e,t){return AO(this,vw(this,e).values,t)},globalCursor(e){if(arguments.length){if(this._globalCursor!==!!e){let t=NS(this,null);this._globalCursor=!!e,t&&NS(this,t)}return this}return this._globalCursor},preventDefault(e){return arguments.length?(this._preventDefault=e,this):this._preventDefault},timer:function(e,t){this._timers.push((function(n,r,a){var i=new ZE,o=r;return r==null?(i.restart(n,r,a),i):(i._restart=i.restart,i.restart=function(c,u,f){u=+u,f=f==null?kx():+f,i._restart((function g(b){b+=o,i._restart(g,o+=u,f),c(b)}),u,f)},i.restart(n,r,a),i)})((function(n){e({timestamp:Date.now(),elapsed:n})}),t))},events:function(e,t,n){var r,a=this,i=new Ui(n),o=function(f,g){a.runAsync(null,(()=>{e===cO&&(function(b,v){var E=b._eventConfig.defaults,S=E.prevent,x=E.allow;return S!==!1&&x!==!0&&(S===!0||x===!1||(S?S[v]:x?!x[v]:b.preventDefault()))})(a,t)&&f.preventDefault(),i.receive(fB(a,f,g))}))};if(e===pB)kw(a,"timer",t)&&a.timer(o,t);else if(e===cO)kw(a,"view",t)&&a.addEventListener(t,o,mB);else if(e===hB?kw(a,"window",t)&&typeof window<"u"&&(r=[window]):typeof document<"u"&&kw(a,"selector",t)&&(r=Array.from(document.querySelectorAll(e))),r){for(var c=0,u=r.length;c<u;++c)r[c].addEventListener(t,o);uO(a,r,t,o)}else a.warn("Can not resolve event source: "+e);return i},finalize:function(){var e,t,n,r=this._tooltip,a=this._timers,i=this._eventListeners;for(e=a.length;--e>=0;)a[e].stop();for(e=i.length;--e>=0;)for(t=(n=i[e]).sources.length;--t>=0;)n.sources[t].removeEventListener(n.type,n.handler);return r&&r.call(this,this._handler,null,null,null),this},hover:function(e,t){return t=[t||"update",(e=[e||"hover"])[0]],this.on(this.events("view","mouseover",dO),fO,pO(e)),this.on(this.events("view","mouseout",dO),fO,pO(t)),this},data:function(e,t){return arguments.length<2?vw(this,e).values.value:Ew.call(this,e,ls().remove(Y).insert(t))},change:Ew,insert:function(e,t){return Ew.call(this,e,ls().insert(t))},remove:function(e,t){return Ew.call(this,e,ls().remove(t))},scale:function(e){var t=this._runtime.scales;return ot(t,e)||L("Unrecognized scale or projection: "+e),t[e].value},initialize:function(e,t){let n=this,r=n._renderType,a=n._eventConfig.bind,i=aE(r);e=n._el=e?OS(n,e,!0):null,(function(u){let f=u.container();f&&(f.setAttribute("role","graphics-document"),f.setAttribute("aria-roleDescription","visualization"),oO(f,u.description()))})(n),i||n.error("Unrecognized renderer type: "+r);let o=i.handler||mb,c=e?i.renderer:i.headless;return n._renderer=c?hO(n,n._renderer,e,c):null,n._handler=(function(u,f,g,b){let v=new b(u.loader(),IS(u,u.tooltip())).scene(u.scenegraph().root).initialize(g,ww(u),u);return f&&f.handlers().forEach((E=>{v.on(E.type,E.handler)})),v})(n,n._handler,e,o),n._redraw=!0,e&&a!=="none"&&(t=t?n._elBind=OS(n,t,!0):e.appendChild(ki("form",{class:"vega-bindings"})),n._bind.forEach((u=>{u.param.element&&a!=="container"&&(u.element=OS(n,u.param.element,!!u.param.input))})),n._bind.forEach((u=>{(function(f,g,b){if(!g)return;let v=b.param,E=b.state;E||(E=b.state={elements:null,active:!1,set:null,update:S=>{S!=f.signal(v.signal)&&f.runAsync(null,(()=>{E.source=!0,f.signal(v.signal,S)}))}},v.debounce&&(E.update=on(v.debounce,E.update))),(v.input==null&&v.element?vB:EB)(E,g,v,f),E.active||(f.on(f._signals[v.signal],null,(()=>{E.source?E.source=!1:E.set(f.signal(v.signal))})),E.active=!0)})(n,u.element||t,u)}))),n},toImageURL:async function(e,t){e!==Pc.Canvas&&e!==Pc.SVG&&e!==Pc.PNG&&L("Unrecognized image type: "+e);let n=await DS(this,e,t);return e===Pc.SVG?(function(r,a){let i=new Blob([r],{type:a});return window.URL.createObjectURL(i)})(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")},toCanvas:async function(e,t){return(await DS(this,Pc.Canvas,e,t)).canvas()},toSVG:async function(e){return(await DS(this,Pc.SVG,e)).svg()},getState:function(e){return this._runtime.getState(e||{data:TB,signals:RB,recurse:!0})},setState:function(e){return this.runAsync(null,(t=>{t._trigger=!1,t._runtime.setState(e)}),(t=>{t._trigger=!0})),this}});let NB="view",Sw="[",Aw="]",TO="{",RO="}",IB=":",CO=",",OB="@",DB=">",MB=/[[\]{}]/,LB={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},NO,IO;function OO(e,t,n){return NO=t||NB,IO=n||LB,DO(e.trim()).map(LS)}function r0(e,t,n,r,a){let i=e.length,o,c=0;for(;t<i;++t){if(o=e[t],!c&&o===n)return t;a&&a.indexOf(o)>=0?--c:r&&r.indexOf(o)>=0&&++c}return t}function DO(e){let t=[],n=e.length,r=0,a=0;for(;a<n;)a=r0(e,a,CO,Sw+TO,Aw+RO),t.push(e.substring(r,a).trim()),r=++a;if(t.length===0)throw"Empty event selector: "+e;return t}function LS(e){return e[0]==="["?(function(t){let n=t.length,r,a=1;if(a=r0(t,a,Aw,Sw,Aw),a===n)throw"Empty between selector: "+t;if(r=DO(t.substring(1,a)),r.length!==2)throw"Between selector must have two elements: "+t;if(t=t.slice(a+1).trim(),t[0]!==DB)throw"Expected '>' after between selector: "+t;r=r.map(LS);let i=LS(t.slice(1).trim());return i.between?{between:r,stream:i}:(i.between=r,i)})(e):(function(t){let n={source:NO},r=[],a,i,o=[0,0],c=0,u=0,f=t.length,g=0;if(t[f-1]===RO){if(g=t.lastIndexOf(TO),!(g>=0))throw"Unmatched right brace: "+t;try{o=(function(b){let v=b.split(CO);if(!b.length||v.length>2)throw b;return v.map((E=>{let S=+E;if(S!=S)throw b;return S}))})(t.substring(g+1,f-1))}catch{throw"Invalid throttle specification: "+t}f=(t=t.slice(0,g).trim()).length,g=0}if(!f)throw t;if(t[0]===OB&&(c=++g),a=r0(t,g,IB),a<f&&(r.push(t.substring(u,a).trim()),u=g=++a),g=r0(t,g,Sw),g===f)r.push(t.substring(u,f).trim());else if(r.push(t.substring(u,g).trim()),i=[],u=++g,u===f)throw"Unmatched left bracket: "+t;for(;g<f;){if(g=r0(t,g,Aw),g===f)throw"Unmatched left bracket: "+t;if(i.push(t.substring(u,g).trim()),g<f-1&&t[++g]!==Sw)throw"Expected left bracket: "+t;u=++g}if(!(f=r.length)||MB.test(r[f-1]))throw"Invalid event selector: "+t;return f>1?(n.type=r[1],c?n.markname=r[0].slice(1):(function(b){return IO[b]})(r[0])?n.marktype=r[0]:n.source=r[0]):n.type=r[0],n.type.slice(-1)==="!"&&(n.consume=!0,n.type=n.type.slice(0,-1)),i!=null&&(n.filter=i),o[0]&&(n.throttle=o[0]),o[1]&&(n.debounce=o[1]),n})(e)}function FB(e){return ye(e)?e:{type:e||"pad"}}let a0=e=>+e||0,PB=e=>({top:e,bottom:e,left:e,right:e});function $B(e){return ye(e)?e.signal?e:{top:a0(e.top),bottom:a0(e.bottom),left:a0(e.left),right:a0(e.right)}:PB(a0(e))}let br=e=>ye(e)&&!ve(e)?lt({},e):{value:e};function MO(e,t,n,r){return n!=null?(ye(n)&&!ve(n)||ve(n)&&n.length&&ye(n[0])?e.update[t]=n:e[r||"enter"][t]={value:n},1):0}function Fr(e,t,n){for(let r in t)MO(e,r,t[r]);for(let r in n)MO(e,r,n[r],"update")}function nh(e,t,n){for(let r in t)n&&ot(n,r)||(e[r]=lt(e[r]||{},t[r]));return e}function rh(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}let FS="mark",PS="frame",$S="scope",BB="axis",UB="axis-domain",zB="axis-grid",GB="axis-label",jB="axis-tick",HB="axis-title",qB="legend",WB="legend-band",VB="legend-entry",YB="legend-gradient",LO="legend-label",KB="legend-symbol",XB="legend-title",ZB="title",JB="title-text",QB="title-subtitle";function BS(e,t,n){e[t]=n&&n.signal?{signal:n.signal}:{value:n}}let FO=e=>Ut(e)?ft(e):e.signal?`(${e.signal})`:PO(e);function Tw(e){if(e.gradient!=null)return(function(n){let r=[n.start,n.stop,n.count].map((a=>a==null?null:ft(a)));for(;r.length&&me(r)==null;)r.pop();return r.unshift(FO(n.gradient)),`gradient(${r.join(",")})`})(e);let t=e.signal?`(${e.signal})`:e.color?(function(n){return n.c?Rw("hcl",n.h,n.c,n.l):n.h||n.s?Rw("hsl",n.h,n.s,n.l):n.l||n.a?Rw("lab",n.l,n.a,n.b):n.r||n.g||n.b?Rw("rgb",n.r,n.g,n.b):null})(e.color):e.field!=null?PO(e.field):e.value!==void 0?ft(e.value):void 0;return e.scale!=null&&(t=(function(n,r){let a=FO(n.scale);return n.range!=null?r=`lerp(_range(${a}), ${+n.range})`:(r!==void 0&&(r=`_scale(${a}, ${r})`),n.band&&(r=(r?r+"+":"")+`_bandwidth(${a})`+(+n.band==1?"":"*"+Cw(n.band)),n.extra&&(r=`(datum.extra ? _scale(${a}, datum.extra.value) : ${r})`)),r==null&&(r="0")),r})(e,t)),t===void 0&&(t=null),e.exponent!=null&&(t=`pow(${t},${Cw(e.exponent)})`),e.mult!=null&&(t+=`*${Cw(e.mult)}`),e.offset!=null&&(t+=`+${Cw(e.offset)}`),e.round&&(t=`round(${t})`),t}let Rw=(e,t,n,r)=>`(${e}(${[t,n,r].map(Tw).join(",")})+'')`;function Cw(e){return ye(e)?"("+Tw(e)+")":e}function PO(e){return $O(ye(e)?e:{datum:e})}function $O(e){let t,n,r;if(e.signal)t="datum",r=e.signal;else if(e.group||e.parent){for(n=Math.max(1,e.level||1),t="item";n-- >0;)t+=".mark.group";e.parent?(r=e.parent,t+=".datum"):r=e.group}else e.datum?(t="datum",r=e.datum):L("Invalid field reference: "+ft(e));return e.signal||(r=Ut(r)?U(r).map(ft).join("]["):$O(r)),t+"["+r+"]"}function BO(e,t,n,r,a,i){let o={};(i=i||{}).encoders={$encode:o},e=(function(c,u,f,g,b){let v={},E={},S,x,N,O;for(x in x="lineBreak",u!=="text"||b[x]==null||rh(x,c)||BS(v,x,b[x]),(f=="legend"||String(f).startsWith("axis"))&&(f=null),O=f===PS?b.group:f===FS?lt({},b.mark,b[u]):null,O)N=rh(x,c)||(x==="fill"||x==="stroke")&&(rh("fill",c)||rh("stroke",c)),N||BS(v,x,O[x]);for(x in Ne(g).forEach((I=>{let B=b.style&&b.style[I];for(let P in B)rh(P,c)||BS(v,P,B[P])})),c=lt({},c),v)O=v[x],O.signal?(S=S||{})[x]=O:E[x]=O;return c.enter=lt(E,c.enter),S&&(c.update=lt(S,c.update)),c})(e,t,n,r,a.config);for(let c in e)o[c]=eU(e[c],t,i,a);return i}function eU(e,t,n,r){let a={},i={};for(let c in e)e[c]!=null&&(a[c]=tU((o=e[c],ve(o)?(function(u){let f="";return u.forEach((g=>{let b=Tw(g);f+=g.test?`(${g.test})?${b}:`:b})),me(f)===":"&&(f+="null"),f})(o):Tw(o)),r,n,i));var o;return{$expr:{marktype:t,channels:a},$fields:Object.keys(i),$output:Object.keys(e)}}function tU(e,t,n,r){let a=Ds(e,t);return a.$fields.forEach((i=>r[i]=1)),lt(n,a.$params),a.$expr}let nU="outer",rU=["value","update","init","react","bind"];function UO(e,t){L(e+' for "outer" push: '+ft(t))}function zO(e,t){let n=e.name;if(e.push===nU)t.signals[n]||UO("No prior signal definition",n),rU.forEach((r=>{e[r]!==void 0&&UO("Invalid property ",r)}));else{let r=t.addSignal(n,e.value);e.react===!1&&(r.react=!1),e.bind&&t.addBinding(n,e.bind)}}function US(e,t,n,r){this.id=-1,this.type=e,this.value=t,this.params=n,r&&(this.parent=r)}function Nw(e,t,n,r){return new US(e,t,n,r)}function Iw(e,t){return Nw("operator",e,t)}function bt(e){let t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function i0(e,t){return t?{$field:e,$name:t}:{$field:e}}let zS=i0("key");function GO(e,t){return{$compare:e,$order:t}}let aU="descending";function Ow(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}let GS="scope",jS="view";function lr(e){return e&&e.signal}function Dw(e){if(lr(e))return!0;if(ye(e)){for(let t in e)if(Dw(e[t]))return!0}return!1}function Wo(e,t){return e??t}function xd(e){return e&&e.signal||e}let jO="timer";function o0(e,t){return(e.merge?iU:e.stream?oU:e.type?sU:L("Invalid stream specification: "+ft(e)))(e,t)}function iU(e,t){let n=HS({merge:e.merge.map((r=>o0(r,t)))},e,t);return t.addStream(n).id}function oU(e,t){let n=HS({stream:o0(e.stream,t)},e,t);return t.addStream(n).id}function sU(e,t){let n;e.type===jO?(n=t.event(jO,e.throttle),e={between:e.between,filter:e.filter}):n=t.event((function(a){return a===GS?jS:a||jS})(e.source),e.type);let r=HS({stream:n},e,t);return Object.keys(r).length===1?n:t.addStream(r).id}function HS(e,t,n){let r=t.between;return r&&(r.length!==2&&L('Stream "between" parameter must have 2 entries: '+ft(t)),e.between=[o0(r[0],n),o0(r[1],n)]),r=t.filter?[].concat(t.filter):[],(t.marktype||t.markname||t.markrole)&&r.push((function(a,i,o){let c="event.item";return c+(a&&a!=="*"?"&&"+c+".mark.marktype==='"+a+"'":"")+(o?"&&"+c+".mark.role==='"+o+"'":"")+(i?"&&"+c+".mark.name==='"+i+"'":"")})(t.marktype,t.markname,t.markrole)),t.source===GS&&r.push("inScope(event.item)"),r.length&&(e.filter=Ds("("+r.join(")&&(")+")",n).$expr),(r=t.throttle)!=null&&(e.throttle=+r),(r=t.debounce)!=null&&(e.debounce=+r),t.consume&&(e.consume=!0),e}let lU={code:"_.$value",ast:{type:"Identifier",value:"value"}};function cU(e,t,n){let r=e.encode,a={target:n},i=e.events,o=e.update,c=[];i||L("Signal update missing events specification."),Ut(i)&&(i=OO(i,t.isSubscope()?GS:jS)),i=Ne(i).filter((u=>u.signal||u.scale?(c.push(u),0):1)),c.length>1&&(c=[uU(c)]),i.length&&c.push(i.length>1?{merge:i}:i[0]),r!=null&&(o&&L("Signal encode and update are mutually exclusive."),o="encode(item(),"+ft(r)+")"),a.update=Ut(o)?Ds(o,t):o.expr!=null?Ds(o.expr,t):o.value!=null?o.value:o.signal!=null?{$expr:lU,$params:{$value:t.signalRef(o.signal)}}:L("Invalid signal update specification."),e.force&&(a.options={force:!0}),c.forEach((u=>t.addUpdate(lt((function(f,g){return{source:f.signal?g.signalRef(f.signal):f.scale?g.scaleRef(f.scale):o0(f,g)}})(u,t),a))))}function uU(e){return{signal:"["+e.map((t=>t.scale?'scale("'+t.scale+'")':t.signal))+"]"}}let rn=e=>(t,n,r)=>Nw(e,n,t||void 0,r),HO=rn("aggregate"),dU=rn("axisticks"),qO=rn("bound"),Vo=rn("collect"),WO=rn("compare"),fU=rn("datajoin"),VO=rn("encode"),pU=rn("expression"),hU=rn("facet"),mU=rn("field"),gU=rn("key"),bU=rn("legendentries"),yU=rn("load"),vU=rn("mark"),EU=rn("multiextent"),wU=rn("multivalues"),kU=rn("overlap"),_U=rn("params"),YO=rn("prefacet"),xU=rn("projection"),SU=rn("proxy"),AU=rn("relay"),KO=rn("render"),TU=rn("scale"),Sd=rn("sieve"),RU=rn("sortitems"),XO=rn("viewlayout"),CU=rn("values"),NU=0,ZO={min:"min",max:"max",count:"sum"};function IU(e,t){let n=t.getScale(e.name).params,r;for(r in n.domain=JO(e.domain,e,t),e.range!=null&&(n.range=eD(e,t,n)),e.interpolate!=null&&(function(a,i){i.interpolate=oo(a.type||a),a.gamma!=null&&(i.interpolateGamma=oo(a.gamma))})(e.interpolate,n),e.nice!=null&&(n.nice=(function(a){return ye(a)?{interval:oo(a.interval),step:oo(a.step)}:oo(a)})(e.nice)),e.bins!=null&&(n.bins=(function(a,i){return a.signal||ve(a)?Mw(a,i):i.objectProperty(a)})(e.bins,t)),e)ot(n,r)||r==="name"||(n[r]=oo(e[r],t))}function oo(e,t){return ye(e)?e.signal?t.signalRef(e.signal):L("Unsupported object: "+ft(e)):e}function Mw(e,t){return e.signal?t.signalRef(e.signal):e.map((n=>oo(n,t)))}function Lw(e){L("Can not find data set: "+ft(e))}function JO(e,t,n){if(e)return e.signal?n.signalRef(e.signal):(ve(e)?OU:e.fields?MU:DU)(e,t,n);t.domainMin==null&&t.domainMax==null||L("No scale domain defined for domainMin/domainMax to override.")}function OU(e,t,n){return e.map((r=>oo(r,n)))}function DU(e,t,n){let r=n.getData(e.data);return r||Lw(e.data),Sc(t.type)?r.valuesRef(n,e.field,QO(e.sort,!1)):Av(t.type)?r.domainRef(n,e.field):r.extentRef(n,e.field)}function MU(e,t,n){let r=e.data,a=e.fields.reduce(((i,o)=>(o=Ut(o)?{data:r,field:o}:ve(o)||o.signal?(function(c,u){let f="_:vega:_"+NU++,g=Vo({});if(ve(c))g.value={$ingest:c};else if(c.signal){let b="setdata("+ft(f)+","+c.signal+")";g.params.input=u.signalRef(b)}return u.addDataPipeline(f,[g,Sd({})]),{data:f,field:"data"}})(o,n):o,i.push(o),i)),[]);return(Sc(t.type)?LU:Av(t.type)?FU:PU)(e,n,a)}function LU(e,t,n){let r=QO(e.sort,!0),a,i,o=n.map((f=>{let g=t.getData(f.data);return g||Lw(f.data),g.countsRef(t,f.field,r)})),c={groupby:zS,pulse:o};r&&(a=r.op||"count",i=r.field?Ow(a,r.field):"count",c.ops=[ZO[a]],c.fields=[t.fieldRef(i)],c.as=[i]),a=t.add(HO(c));let u=t.add(Vo({pulse:bt(a)}));return i=t.add(CU({field:zS,sort:t.sortRef(r),pulse:bt(u)})),bt(i)}function QO(e,t){return e&&(e.field||e.op?e.field||e.op==="count"?t&&e.field&&e.op&&!ZO[e.op]&&L("Multiple domain scales can not be sorted using "+e.op):L("No field provided for sort aggregate op: "+e.op):ye(e)?e.field="key":e={field:"key"}),e}function FU(e,t,n){let r=n.map((a=>{let i=t.getData(a.data);return i||Lw(a.data),i.domainRef(t,a.field)}));return bt(t.add(wU({values:r})))}function PU(e,t,n){let r=n.map((a=>{let i=t.getData(a.data);return i||Lw(a.data),i.extentRef(t,a.field)}));return bt(t.add(EU({extents:r})))}function eD(e,t,n){let r=t.config.range,a=e.range;if(a.signal)return t.signalRef(a.signal);if(Ut(a)){if(r&&ot(r,a))return eD(e=lt({},e,{range:r[a]}),t,n);a==="width"?a=[0,{signal:"width"}]:a==="height"?a=Sc(e.type)?[0,{signal:"height"}]:[{signal:"height"},0]:L("Unrecognized scale range value: "+ft(a))}else{if(a.scheme)return n.scheme=ve(a.scheme)?Mw(a.scheme,t):oo(a.scheme,t),a.extent&&(n.schemeExtent=Mw(a.extent,t)),void(a.count&&(n.schemeCount=oo(a.count,t)));if(a.step)return void(n.rangeStep=oo(a.step,t));if(Sc(e.type)&&!ve(a))return JO(a,e,t);ve(a)||L("Unsupported range type: "+ft(a))}return a.map((i=>(ve(i)?Mw:oo)(i,t)))}function qS(e,t,n){return ve(e)?e.map((r=>qS(r,t,n))):ye(e)?e.signal?n.signalRef(e.signal):t==="fit"?e:L("Unsupported parameter object: "+ft(e)):e}let Yo="top",ah="left",ih="right",Vc="bottom",tD="center",$U="vertical",BU="start",UU="end",WS="index",VS="label",zU="offset",oh="perc",GU="perc2",so="value",s0="guide-label",YS="guide-title",jU="group-title",HU="group-subtitle",nD="symbol",Fw="gradient",KS="discrete",XS="size",ZS=[XS,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],l0={name:1,style:1,interactive:1},Wt={value:0},lo={value:1},Pw="group",rD="rect",JS="rule",qU="symbol",Ad="text";function c0(e){return e.type=Pw,e.interactive=e.interactive||!1,e}function Ja(e,t){let n=(r,a)=>Wo(e[r],Wo(t[r],a));return n.isVertical=r=>$U===Wo(e.direction,t.direction||(r?t.symbolDirection:t.gradientDirection)),n.gradientLength=()=>Wo(e.gradientLength,t.gradientLength||t.gradientWidth),n.gradientThickness=()=>Wo(e.gradientThickness,t.gradientThickness||t.gradientHeight),n.entryColumns=()=>Wo(e.columns,Wo(t.columns,+n.isVertical(!0))),n}function aD(e,t){let n=t&&(t.update&&t.update[e]||t.enter&&t.enter[e]);return n&&n.signal?n:n?n.value:null}function $w(e,t,n){return`item.anchor === '${BU}' ? ${e} : item.anchor === '${UU}' ? ${t} : ${n}`}let QS=$w(ft(ah),ft(ih),ft(tD));function iD(e,t){return t?e?ye(e)?Object.assign({},e,{offset:iD(e.offset,t)}):{value:e,offset:t}:t:e}function _i(e,t){return t?(e.name=t.name,e.style=t.style||e.style,e.interactive=!!t.interactive,e.encode=nh(e.encode,t,l0)):e.interactive=!1,e}function WU(e,t,n,r){let a=Ja(e,n),i=a.isVertical(),o=a.gradientThickness(),c=a.gradientLength(),u,f,g,b,v;i?(f=[0,1],g=[0,0],b=o,v=c):(f=[0,0],g=[1,0],b=c,v=o);let E={enter:u={opacity:Wt,x:Wt,y:Wt,width:br(b),height:br(v)},update:lt({},u,{opacity:lo,fill:{gradient:t,start:f,stop:g}}),exit:{opacity:Wt}};return Fr(E,{stroke:a("gradientStrokeColor"),strokeWidth:a("gradientStrokeWidth")},{opacity:a("gradientOpacity")}),_i({type:rD,role:YB,encode:E},r)}function VU(e,t,n,r,a){let i=Ja(e,n),o=i.isVertical(),c=i.gradientThickness(),u=i.gradientLength(),f,g,b,v,E="";o?(f="y",b="y2",g="x",v="width",E="1-"):(f="x",b="x2",g="y",v="height");let S={opacity:Wt,fill:{scale:t,field:so}};S[f]={signal:E+"datum."+oh,mult:u},S[g]=Wt,S[b]={signal:E+"datum."+GU,mult:u},S[v]=br(c);let x={enter:S,update:lt({},S,{opacity:lo}),exit:{opacity:Wt}};return Fr(x,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),_i({type:rD,role:WB,key:so,from:a,encode:x},r)}let YU=`datum.${oh}<=0?"${ah}":datum.${oh}>=1?"${ih}":"${tD}"`,KU=`datum.${oh}<=0?"${Vc}":datum.${oh}>=1?"${Yo}":"middle"`;function oD(e,t,n,r){let a=Ja(e,t),i=a.isVertical(),o=br(a.gradientThickness()),c=a.gradientLength(),u,f,g,b,v=a("labelOverlap"),E="",S={enter:u={opacity:Wt},update:f={opacity:lo,text:{field:VS}},exit:{opacity:Wt}};return Fr(S,{fill:a("labelColor"),fillOpacity:a("labelOpacity"),font:a("labelFont"),fontSize:a("labelFontSize"),fontStyle:a("labelFontStyle"),fontWeight:a("labelFontWeight"),limit:Wo(e.labelLimit,t.gradientLabelLimit)}),i?(u.align={value:"left"},u.baseline=f.baseline={signal:KU},g="y",b="x",E="1-"):(u.align=f.align={signal:YU},u.baseline={value:"top"},g="x",b="y"),u[g]=f[g]={signal:E+"datum."+oh,mult:c},u[b]=f[b]=o,o.offset=Wo(e.labelOffset,t.gradientLabelOffset)||0,v=v?{separation:a("labelSeparation"),method:v,order:"datum."+WS}:void 0,_i({type:Ad,role:LO,style:s0,key:so,from:r,encode:S,overlap:v},n)}function XU(e,t,n,r,a){let i=Ja(e,t),o=n.entries,c=!(!o||!o.interactive),u=o?o.name:void 0,f=i("clipHeight"),g=i("symbolOffset"),b={data:"value"},v=`(${a}) ? datum.${zU} : datum.${XS}`,E=f?br(f):{field:XS},S=`datum.${WS}`,x=`max(1, ${a})`,N,O,I,B,P;E.mult=.5,N={enter:O={opacity:Wt,x:{signal:v,mult:.5,offset:g},y:E},update:I={opacity:lo,x:O.x,y:O.y},exit:{opacity:Wt}};let z=null,G=null;e.fill||(z=t.symbolBaseFillColor,G=t.symbolBaseStrokeColor),Fr(N,{fill:i("symbolFillColor",z),shape:i("symbolType"),size:i("symbolSize"),stroke:i("symbolStrokeColor",G),strokeDash:i("symbolDash"),strokeDashOffset:i("symbolDashOffset"),strokeWidth:i("symbolStrokeWidth")},{opacity:i("symbolOpacity")}),ZS.forEach((re=>{e[re]&&(I[re]=O[re]={scale:e[re],field:so})}));let W=_i({type:qU,role:KB,key:so,from:b,clip:!!f||void 0,encode:N},n.symbols),X=br(g);X.offset=i("labelOffset"),N={enter:O={opacity:Wt,x:{signal:v,offset:X},y:E},update:I={opacity:lo,text:{field:VS},x:O.x,y:O.y},exit:{opacity:Wt}},Fr(N,{align:i("labelAlign"),baseline:i("labelBaseline"),fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:i("labelLimit")});let Z=_i({type:Ad,role:LO,style:s0,key:so,from:b,encode:N},n.labels);return N={enter:{noBound:{value:!f},width:Wt,height:f?br(f):Wt,opacity:Wt},exit:{opacity:Wt},update:I={opacity:lo,row:{signal:null},column:{signal:null}}},i.isVertical(!0)?(B=`ceil(item.mark.items.length / ${x})`,I.row.signal=`${S}%${B}`,I.column.signal=`floor(${S} / ${B})`,P={field:["row",S]}):(I.row.signal=`floor(${S} / ${x})`,I.column.signal=`${S} % ${x}`,P={field:S}),I.column.signal=`(${a})?${I.column.signal}:${S}`,c0({role:$S,from:r={facet:{data:r,name:"value",groupby:WS}},encode:nh(N,o,l0),marks:[W,Z],name:u,interactive:c,sort:P})}let eA='item.orient === "left"',tA='item.orient === "right"',Bw=`(${eA} || ${tA})`,ZU=`datum.vgrad && ${Bw}`,JU=$w('"top"','"bottom"','"middle"'),QU=`datum.vgrad && ${tA} ? (${$w('"right"','"left"','"center"')}) : (${Bw} && !(datum.vgrad && ${eA})) ? "left" : ${QS}`,ez=`item._anchor || (${Bw} ? "middle" : "start")`,tz=`${ZU} ? (${eA} ? -90 : 90) : 0`,nz=`${Bw} ? (datum.vgrad ? (${tA} ? "bottom" : "top") : ${JU}) : "top"`;function rz(e,t){let n;return ye(e)&&(e.signal?n=e.signal:e.path?n="pathShape("+sD(e.path)+")":e.sphere&&(n="geoShape("+sD(e.sphere)+', {type: "Sphere"})')),n?t.signalRef(n):!!e}function sD(e){return ye(e)&&e.signal?e.signal:ft(e)}function lD(e){let t=e.role||"";return t.indexOf("axis")&&t.indexOf("legend")&&t.indexOf("title")?e.type===Pw?$S:t||FS:t}function az(e){return{marktype:e.type,name:e.name||void 0,role:e.role||lD(e),zindex:+e.zindex||void 0,aria:e.aria,description:e.description}}function iz(e,t){return e&&e.signal?t.signalRef(e.signal):e!==!1}function nA(e,t){let n=hm(e.type);n||L("Unrecognized transform type: "+ft(e.type));let r=Nw(n.type.toLowerCase(),null,cD(n,e,t));return e.signal&&t.addSignal(e.signal,t.proxy(r)),r.metadata=n.metadata||{},r}function cD(e,t,n){let r={},a=e.params.length;for(let i=0;i<a;++i){let o=e.params[i];r[o.name]=oz(o,t,n)}return r}function oz(e,t,n){let r=e.type,a=t[e.name];return r==="index"?(function(i,o,c){return Ut(o.from)||L('Lookup "from" parameter must be a string literal.'),c.getData(o.from).lookupRef(c,o.key)})(0,t,n):a!==void 0?r==="param"?(function(i,o,c){let u=o[i.name];return i.array?(ve(u)||L("Expected an array of sub-parameters. Instead: "+ft(u)),u.map((f=>dD(i,f,c)))):dD(i,u,c)})(e,t,n):r==="projection"?n.projectionRef(t[e.name]):e.array&&!lr(a)?a.map((i=>uD(e,i,n))):uD(e,a,n):void(e.required&&L("Missing required "+ft(t.type)+" parameter: "+ft(e.name)))}function uD(e,t,n){let r=e.type;if(lr(t))return fD(r)?L("Expression references can not be signals."):rA(r)?n.fieldRef(t):pD(r)?n.compareRef(t):n.signalRef(t.signal);{let a=e.expr||rA(r);return a&&sz(t)?n.exprRef(t.expr,t.as):a&&lz(t)?i0(t.field,t.as):fD(r)?Ds(t,n):cz(r)?bt(n.getData(t).values):rA(r)?i0(t):pD(r)?n.compareRef(t):t}}function dD(e,t,n){let r=e.params.length,a;for(let o=0;o<r;++o){a=e.params[o];for(let c in a.key)if(a.key[c]!==t[c]){a=null;break}if(a)break}a||L("Unsupported parameter: "+ft(t));let i=lt(cD(a,t,n),a.key);return bt(n.add(_U(i)))}let sz=e=>e&&e.expr,lz=e=>e&&e.field,cz=e=>e==="data",fD=e=>e==="expr",rA=e=>e==="field",pD=e=>e==="compare";function Uw(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:bt(t.getData(e.data).output)}function Td(e,t,n,r,a){this.scope=e,this.input=t,this.output=n,this.values=r,this.aggregate=a,this.index={}}function hD(e){return Ut(e)?e:null}function mD(e,t,n){let r=Ow(n.op,n.field),a;if(t.ops){for(let i=0,o=t.as.length;i<o;++i)if(t.as[i]===r)return}else t.ops=["count"],t.fields=[null],t.as=["count"];n.op&&(t.ops.push((a=n.op.signal)?e.signalRef(a):n.op),t.fields.push(e.fieldRef(n.field)),t.as.push(r))}function u0(e,t,n,r,a,i,o){let c=t[n]||(t[n]={}),u=(function(v){return ye(v)?(v.order===aU?"-":"+")+Ow(v.op,v.field):""})(i),f,g,b=hD(a);if(b!=null&&(e=t.scope,b+=u?"|"+u:"",f=c[b]),!f){let v=i?{field:zS,pulse:t.countsRef(e,a,i)}:{field:e.fieldRef(a),pulse:bt(t.output)};u&&(v.sort=e.sortRef(i)),g=e.add(Nw(r,void 0,v)),o&&(t.index[a]=g),f=bt(g),b!=null&&(c[b]=f)}return f}function gD(e,t,n){let r=e.remove,a=e.insert,i=e.toggle,o=e.modify,c=e.values,u=t.add(Iw()),f=Ds("if("+e.trigger+',modify("'+n+'",'+[a,r,i,o,c].map((g=>g??"null")).join(",")+"),0)",t);u.update=f.$expr,u.params=f.$params}function zw(e,t){let n=lD(e),r=e.type===Pw,a=e.from&&e.from.facet,i=e.overlap,o,c,u,f,g,b,v,E=e.layout||n===$S||n===PS,S=n===FS||E||a,x=(function(G,W,X){let Z,re,Q,ie,ce;return G?(Z=G.facet)&&(W||L("Only group marks can be faceted."),Z.field!=null?ie=ce=Uw(Z,X):(G.data?ce=bt(X.getData(G.data).aggregate):(Q=nA(lt({type:"aggregate",groupby:Ne(Z.groupby)},Z.aggregate),X),Q.params.key=X.keyRef(Z.groupby),Q.params.pulse=Uw(Z,X),ie=ce=bt(X.add(Q))),re=X.keyRef(Z.groupby,!0))):ie=bt(X.add(Vo(null,[{}]))),ie||(ie=Uw(G,X)),{key:re,pulse:ie,parent:ce}})(e.from,r,t);c=t.add(fU({key:x.key||(e.key?i0(e.key):void 0),pulse:x.pulse,clean:!r}));let N=bt(c);c=u=t.add(Vo({pulse:N})),c=t.add(vU({markdef:az(e),interactive:iz(e.interactive,t),clip:rz(e.clip,t),context:{$context:!0},groups:t.lookup(),parent:t.signals.parent?t.signalRef("parent"):null,index:t.markpath(),pulse:bt(c)}));let O=bt(c);c=f=t.add(VO(BO(e.encode,e.type,n,e.style,t,{mod:!1,pulse:O}))),c.params.parent=t.encode(),e.transform&&e.transform.forEach((G=>{let W=nA(G,t),X=W.metadata;(X.generates||X.changes)&&L("Mark transforms should not generate new data."),X.nomod||(f.params.mod=!0),W.params.pulse=bt(c),t.add(c=W)})),e.sort&&(c=t.add(RU({sort:t.compareRef(e.sort),pulse:bt(c)})));let I=bt(c);(a||E)&&(E=t.add(XO({layout:t.objectProperty(e.layout),legends:t.legends,mark:O,pulse:I})),b=bt(E));let B=t.add(qO({mark:O,pulse:b||I}));v=bt(B),r&&(S&&(o=t.operators,o.pop(),E&&o.pop()),t.pushState(I,b||v,N),a?(function(G,W,X){let Z=G.from.facet,re=Z.name,Q=Uw(Z,W),ie;Z.name||L("Facet must have a name: "+ft(Z)),Z.data||L("Facet must reference a data set: "+ft(Z)),Z.field?ie=W.add(YO({field:W.fieldRef(Z.field),pulse:Q})):Z.groupby?ie=W.add(hU({key:W.keyRef(Z.groupby),group:bt(W.proxy(X.parent)),pulse:Q})):L("Facet must specify groupby or field: "+ft(Z));let ce=W.fork(),fe=ce.add(Vo()),pe=ce.add(Sd({pulse:bt(fe)}));ce.addData(re,new Td(ce,fe,fe,pe)),ce.addSignal("parent",null),ie.params.subflow={$subflow:ce.parse(G).toRuntime()}})(e,t,x):S?(function(G,W,X){let Z=W.add(YO({pulse:X.pulse})),re=W.fork();re.add(Sd()),re.addSignal("parent",null),Z.params.subflow={$subflow:re.parse(G).toRuntime()}})(e,t,x):t.parse(e),t.popState(),S&&(E&&o.push(E),o.push(B))),i&&(v=(function(G,W,X){let Z=G.method,re=G.bound,Q=G.separation,ie={separation:lr(Q)?X.signalRef(Q.signal):Q,method:lr(Z)?X.signalRef(Z.signal):Z,pulse:W};if(G.order&&(ie.sort=X.compareRef({field:G.order})),re){let ce=re.tolerance;ie.boundTolerance=lr(ce)?X.signalRef(ce.signal):+ce,ie.boundScale=X.scaleRef(re.scale),ie.boundOrient=re.orient}return bt(X.add(kU(ie)))})(i,v,t));let P=t.add(KO({pulse:v})),z=t.add(Sd({pulse:bt(P)},void 0,t.parent()));e.name!=null&&(g=e.name,t.addData(g,new Td(t,u,P,z)),e.on&&e.on.forEach((G=>{(G.insert||G.remove||G.toggle)&&L("Marks only support modify triggers."),gD(G,t,g)})))}function uz(e,t){let n=t.config.legend,r=e.encode||{},a=Ja(e,n),i=r.legend||{},o=i.name||void 0,c=i.interactive,u=i.style,f={},g,b,v,E=0;ZS.forEach((I=>e[I]?(f[I]=e[I],E=E||e[I]):0)),E||L("Missing valid scale for legend.");let S=(function(I,B){let P=I.type||nD;return I.type||(function(z){return ZS.reduce(((G,W)=>G+(z[W]?1:0)),0)})(I)!==1||!I.fill&&!I.stroke||(P=Xg(B)?Fw:Zg(B)?KS:nD),P!==Fw?P:Zg(B)?KS:Fw})(e,t.scaleType(E)),x={title:e.title!=null,scales:f,type:S,vgrad:S!=="symbol"&&a.isVertical()},N=bt(t.add(Vo(null,[x]))),O=bt(t.add(bU(b={type:S,scale:t.scaleRef(E),count:t.objectProperty(a("tickCount")),limit:t.property(a("symbolLimit")),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)})));return S===Fw?(v=[WU(e,E,n,r.gradient),oD(e,n,r.labels,O)],b.count=b.count||t.signalRef(`max(2,2*floor((${xd(a.gradientLength())})/100))`)):S===KS?v=[VU(e,E,n,r.gradient,O),oD(e,n,r.labels,O)]:(g=(function(I,B){let P=Ja(I,B);return{align:P("gridAlign"),columns:P.entryColumns(),center:{row:!0,column:!1},padding:{row:P("rowPadding"),column:P("columnPadding")}}})(e,n),v=[XU(e,n,r,O,xd(g.columns))],b.size=(function(I,B,P){let z=xd(bD("size",I,P)),G=xd(bD("strokeWidth",I,P)),W=xd((function(X,Z,re){return aD("fontSize",X)||(function(Q,ie,ce){let fe=ie.config.style[ce];return fe&&fe[Q]})("fontSize",Z,re)})(P[1].encode,B,s0));return Ds(`max(ceil(sqrt(${z})+${G}),${W})`,B)})(e,t,v[0].marks)),v=[c0({role:VB,from:N,encode:{enter:{x:{value:0},y:{value:0}}},marks:v,layout:g,interactive:c})],x.title&&v.push((function(I,B,P,z){let G=Ja(I,B),W={enter:{opacity:Wt},update:{opacity:lo,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:Wt}};return Fr(W,{orient:G("titleOrient"),_anchor:G("titleAnchor"),anchor:{signal:ez},angle:{signal:tz},align:{signal:QU},baseline:{signal:nz},text:I.title,fill:G("titleColor"),fillOpacity:G("titleOpacity"),font:G("titleFont"),fontSize:G("titleFontSize"),fontStyle:G("titleFontStyle"),fontWeight:G("titleFontWeight"),limit:G("titleLimit"),lineHeight:G("titleLineHeight")},{align:G("titleAlign"),baseline:G("titleBaseline")}),_i({type:Ad,role:XB,style:YS,from:z,encode:W},P)})(e,n,r.title,N)),zw(c0({role:qB,from:N,encode:nh(dz(a,e,n),i,l0),marks:v,aria:a("aria"),description:a("description"),zindex:a("zindex"),name:o,interactive:c,style:u}),t)}function dz(e,t,n){let r={enter:{},update:{}};return Fr(r,{orient:e("orient"),offset:e("offset"),padding:e("padding"),titlePadding:e("titlePadding"),cornerRadius:e("cornerRadius"),fill:e("fillColor"),stroke:e("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:e("legendX"),y:e("legendY"),format:t.format,formatType:t.formatType}),r}function bD(e,t,n){return t[e]?`scale("${t[e]}",datum)`:aD(e,n[0].encode)}Td.fromEntries=function(e,t){let n=t.length,r=t[n-1],a=t[n-2],i=t[0],o=null,c=1;for(i&&i.type==="load"&&(i=t[1]),e.add(t[0]);c<n;++c)t[c].params.pulse=bt(t[c-1]),e.add(t[c]),t[c].type==="aggregate"&&(o=t[c]);return new Td(e,i,a,r,o)},Td.prototype={countsRef(e,t,n){let r=this,a=r.counts||(r.counts={}),i=hD(t),o,c,u;return i!=null&&(e=r.scope,o=a[i]),o?n&&n.field&&mD(e,o.agg.params,n):(u={groupby:e.fieldRef(t,"key"),pulse:bt(r.output)},n&&n.field&&mD(e,u,n),c=e.add(HO(u)),o=e.add(Vo({pulse:bt(c)})),o={agg:c,ref:bt(o)},i!=null&&(a[i]=o)),o.ref},tuplesRef(){return bt(this.values)},extentRef(e,t){return u0(e,this,"extent","extent",t,!1)},domainRef(e,t){return u0(e,this,"domain","values",t,!1)},valuesRef(e,t,n){return u0(e,this,"vals","values",t,n||!0)},lookupRef(e,t){return u0(e,this,"lookup","tupleindex",t,!1)},indataRef(e,t){return u0(e,this,"indata","tupleindex",t,!0,!0)}};let fz=`item.orient==="${ah}"?-90:item.orient==="${ih}"?90:0`;function pz(e,t){let n=Ja(e=Ut(e)?{text:e}:e,t.config.title),r=e.encode||{},a=r.group||{},i=a.name||void 0,o=a.interactive,c=a.style,u=[],f=bt(t.add(Vo(null,[{}])));return u.push((function(g,b,v,E){let S={value:0},x=g.text,N={enter:{opacity:S},update:{opacity:{value:1}},exit:{opacity:S}};return Fr(N,{text:x,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:b("dx"),dy:b("dy"),fill:b("color"),font:b("font"),fontSize:b("fontSize"),fontStyle:b("fontStyle"),fontWeight:b("fontWeight"),lineHeight:b("lineHeight")},{align:b("align"),angle:b("angle"),baseline:b("baseline")}),_i({type:Ad,role:JB,style:jU,from:E,encode:N},v)})(e,n,(function(g){let b=g.encode;return b&&b.title||lt({name:g.name,interactive:g.interactive,style:g.style},b)})(e),f)),e.subtitle&&u.push((function(g,b,v,E){let S={value:0},x=g.subtitle,N={enter:{opacity:S},update:{opacity:{value:1}},exit:{opacity:S}};return Fr(N,{text:x,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:b("dx"),dy:b("dy"),fill:b("subtitleColor"),font:b("subtitleFont"),fontSize:b("subtitleFontSize"),fontStyle:b("subtitleFontStyle"),fontWeight:b("subtitleFontWeight"),lineHeight:b("subtitleLineHeight")},{align:b("align"),angle:b("angle"),baseline:b("baseline")}),_i({type:Ad,role:QB,style:HU,from:E,encode:N},v)})(e,n,r.subtitle,f)),zw(c0({role:ZB,from:f,encode:hz(n,a),marks:u,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:i,interactive:o,style:c}),t)}function hz(e,t){let n={enter:{},update:{}};return Fr(n,{orient:e("orient"),anchor:e("anchor"),align:{signal:QS},angle:{signal:fz},limit:e("limit"),frame:e("frame"),offset:e("offset")||0,padding:e("subtitlePadding")}),nh(n,t,l0)}function mz(e,t){let n=[];e.transform&&e.transform.forEach((r=>{n.push(nA(r,t))})),e.on&&e.on.forEach((r=>{gD(r,t,e.name)})),t.addDataPipeline(e.name,(function(r,a,i){let o=[],c,u,f,g,b,v=null,E=!1,S=!1;for(r.values?lr(r.values)||Dw(r.format)?(o.push(yD(a,r)),o.push(v=Rd())):o.push(v=Rd({$ingest:r.values,$format:r.format})):r.url?Dw(r.url)||Dw(r.format)?(o.push(yD(a,r)),o.push(v=Rd())):o.push(v=Rd({$request:r.url,$format:r.format})):r.source&&(v=c=Ne(r.source).map((x=>bt(a.getData(x).output))),o.push(null)),u=0,f=i.length;u<f;++u)g=i[u],b=g.metadata,v||b.source||o.push(v=Rd()),o.push(g),b.generates&&(S=!0),b.modifies&&!S&&(E=!0),b.source?v=g:b.changes&&(v=null);return c&&(f=c.length-1,o[0]=AU({derive:E,pulse:f?c:c[0]}),(E||f)&&o.splice(1,0,Rd())),v||o.push(Rd()),o.push(Sd({})),o})(e,t,n))}function Rd(e){let t=Vo({},e);return t.metadata={source:!0},t}function yD(e,t){return yU({url:t.url?e.property(t.url):void 0,async:t.async?e.property(t.async):void 0,values:t.values?e.property(t.values):void 0,format:e.objectProperty(t.format)})}let vD=e=>e===Vc||e===Yo,Gw=(e,t,n)=>lr(e)?vz(e.signal,t,n):e===ah||e===Yo?t:n,yr=(e,t,n)=>lr(e)?bz(e.signal,t,n):vD(e)?t:n,Ko=(e,t,n)=>lr(e)?yz(e.signal,t,n):vD(e)?n:t,ED=(e,t,n)=>lr(e)?Ez(e.signal,t,n):e===Yo?{value:t}:{value:n},gz=(e,t,n)=>lr(e)?wz(e.signal,t,n):e===ih?{value:t}:{value:n},bz=(e,t,n)=>wD(`${e} === '${Yo}' || ${e} === '${Vc}'`,t,n),yz=(e,t,n)=>wD(`${e} !== '${Yo}' && ${e} !== '${Vc}'`,t,n),vz=(e,t,n)=>aA(`${e} === '${ah}' || ${e} === '${Yo}'`,t,n),Ez=(e,t,n)=>aA(`${e} === '${Yo}'`,t,n),wz=(e,t,n)=>aA(`${e} === '${ih}'`,t,n),wD=(e,t,n)=>(t=t!=null?br(t):t,n=n!=null?br(n):n,kD(t)&&kD(n)?{signal:`${e} ? (${t=t?t.signal||ft(t.value):null}) : (${n=n?n.signal||ft(n.value):null})`}:[lt({test:e},t)].concat(n||[])),kD=e=>e==null||Object.keys(e).length===1,aA=(e,t,n)=>({signal:`${e} ? (${sh(t)}) : (${sh(n)})`}),kz=(e,t,n,r,a)=>({signal:(r!=null?`${e} === '${ah}' ? (${sh(r)}) : `:"")+(n!=null?`${e} === '${Vc}' ? (${sh(n)}) : `:"")+(a!=null?`${e} === '${ih}' ? (${sh(a)}) : `:"")+(t!=null?`${e} === '${Yo}' ? (${sh(t)}) : `:"")+"(null)"}),sh=e=>lr(e)?e.signal:e==null?null:ft(e),_z=(e,t)=>t===0?0:lr(e)?{signal:`(${e.signal}) * ${t}`}:{value:e*t},lh=(e,t)=>{let n=e.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+t.signal}:e};function ch(e,t,n,r){let a;if(t&&ot(t,e))return t[e];if(ot(n,e))return n[e];if(e.startsWith("title")){switch(e){case"titleColor":a="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":a=e[5].toLowerCase()+e.slice(6)}return r[YS][a]}if(e.startsWith("label")){switch(e){case"labelColor":a="fill";break;case"labelFont":case"labelFontSize":a=e[5].toLowerCase()+e.slice(6)}return r[s0][a]}return null}function _D(e){let t={};for(let n of e)if(n)for(let r in n)t[r]=1;return Object.keys(t)}function xD(e,t){return{scale:e.scale,range:t}}function xz(e,t,n,r,a){let i=Ja(e,t),o=e.orient,c=e.gridScale,u=Gw(o,1,-1),f=(function(I,B){if(B!==1)if(ye(I)){let P=I=lt({},I);for(;P.mult!=null;){if(!ye(P.mult))return P.mult=lr(B)?{signal:`(${P.mult}) * (${B.signal})`}:P.mult*B,I;P=P.mult=lt({},P.mult)}P.mult=B}else I=lr(B)?{signal:`(${B.signal}) * (${I||0})`}:B*(I||0);return I})(e.offset,u),g,b,v,E={enter:g={opacity:Wt},update:v={opacity:lo},exit:b={opacity:Wt}};Fr(E,{stroke:i("gridColor"),strokeCap:i("gridCap"),strokeDash:i("gridDash"),strokeDashOffset:i("gridDashOffset"),strokeOpacity:i("gridOpacity"),strokeWidth:i("gridWidth")});let S={scale:e.scale,field:so,band:a.band,extra:a.extra,offset:a.offset,round:i("tickRound")},x=yr(o,{signal:"height"},{signal:"width"}),N=c?{scale:c,range:0,mult:u,offset:f}:{value:0,offset:f},O=c?{scale:c,range:1,mult:u,offset:f}:lt(x,{mult:u,offset:f});return g.x=v.x=yr(o,S,N),g.y=v.y=Ko(o,S,N),g.x2=v.x2=Ko(o,O),g.y2=v.y2=yr(o,O),b.x=yr(o,S),b.y=Ko(o,S),_i({type:JS,role:zB,key:so,from:r,encode:E},n)}function iA(e,t,n,r,a){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+n+","+r+","+a+")"}}function Sz(e,t,n,r){let a=Ja(e,t),i=e.orient,o=Gw(i,-1,1),c,u,f={enter:c={opacity:Wt,anchor:br(a("titleAnchor",null)),align:{signal:QS}},update:u=lt({},c,{opacity:lo,text:br(e.title)}),exit:{opacity:Wt}},g={signal:`lerp(range("${e.scale}"), ${$w(0,1,.5)})`};return u.x=yr(i,g),u.y=Ko(i,g),c.angle=yr(i,Wt,_z(o,90)),c.baseline=yr(i,ED(i,Vc,Yo),{value:Vc}),u.angle=c.angle,u.baseline=c.baseline,Fr(f,{fill:a("titleColor"),fillOpacity:a("titleOpacity"),font:a("titleFont"),fontSize:a("titleFontSize"),fontStyle:a("titleFontStyle"),fontWeight:a("titleFontWeight"),limit:a("titleLimit"),lineHeight:a("titleLineHeight")},{align:a("titleAlign"),angle:a("titleAngle"),baseline:a("titleBaseline")}),(function(b,v,E,S){let x=(I,B)=>I!=null?(E.update[B]=lh(br(I),E.update[B]),!1):!rh(B,S),N=x(b("titleX"),"x"),O=x(b("titleY"),"y");E.enter.auto=O===N?br(O):yr(v,br(O),br(N))})(a,i,f,n),f.update.align=lh(f.update.align,c.align),f.update.angle=lh(f.update.angle,c.angle),f.update.baseline=lh(f.update.baseline,c.baseline),_i({type:Ad,role:HB,style:YS,from:r,encode:f},n)}function Az(e,t){let n=(function(x,N){var O,I,B,P=N.config,z=P.style,G=P.axis,W=N.scaleType(x.scale)==="band"&&P.axisBand,X=x.orient;if(lr(X)){let Z=_D([P.axisX,P.axisY]),re=_D([P.axisTop,P.axisBottom,P.axisLeft,P.axisRight]);for(B of(O={},Z))O[B]=yr(X,ch(B,P.axisX,G,z),ch(B,P.axisY,G,z));for(B of(I={},re))I[B]=kz(X.signal,ch(B,P.axisTop,G,z),ch(B,P.axisBottom,G,z),ch(B,P.axisLeft,G,z),ch(B,P.axisRight,G,z))}else O=X===Yo||X===Vc?P.axisX:P.axisY,I=P["axis"+X[0].toUpperCase()+X.slice(1)];return O||I||W?lt({},G,O,I,W):G})(e,t),r=e.encode||{},a=r.axis||{},i=a.name||void 0,o=a.interactive,c=a.style,u=Ja(e,n),f=(function(x){let N=x("tickBand"),O,I,B=x("tickOffset");return N?N.signal?(O={signal:`(${N.signal}) === 'extent' ? 1 : 0.5`},I={signal:`(${N.signal}) === 'extent'`},ye(B)||(B={signal:`(${N.signal}) === 'extent' ? 0 : ${B}`})):N==="extent"?(O=1,I=!0,B=0):(O=.5,I=!1):(O=x("bandPosition"),I=x("tickExtra")),{extra:I,band:O,offset:B}})(u),g={scale:e.scale,ticks:!!u("ticks"),labels:!!u("labels"),grid:!!u("grid"),domain:!!u("domain"),title:e.title!=null},b=bt(t.add(Vo({},[g]))),v=bt(t.add(dU({scale:t.scaleRef(e.scale),extra:t.property(f.extra),count:t.objectProperty(e.tickCount),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)}))),E=[],S;return g.grid&&E.push(xz(e,n,r.grid,v,f)),g.ticks&&(S=u("tickSize"),E.push((function(x,N,O,I,B,P){let z=Ja(x,N),G=x.orient,W=Gw(G,-1,1),X,Z,re,Q={enter:X={opacity:Wt},update:re={opacity:lo},exit:Z={opacity:Wt}};Fr(Q,{stroke:z("tickColor"),strokeCap:z("tickCap"),strokeDash:z("tickDash"),strokeDashOffset:z("tickDashOffset"),strokeOpacity:z("tickOpacity"),strokeWidth:z("tickWidth")});let ie=br(B);ie.mult=W;let ce={scale:x.scale,field:so,band:P.band,extra:P.extra,offset:P.offset,round:z("tickRound")};return re.y=X.y=yr(G,Wt,ce),re.y2=X.y2=yr(G,ie),Z.x=yr(G,ce),re.x=X.x=Ko(G,Wt,ce),re.x2=X.x2=Ko(G,ie),Z.y=Ko(G,ce),_i({type:JS,role:jB,key:so,from:I,encode:Q},O)})(e,n,r.ticks,v,S,f))),g.labels&&(S=g.ticks?S:0,E.push((function(x,N,O,I,B,P){let z=Ja(x,N),G=x.orient,W=x.scale,X=Gw(G,-1,1),Z=xd(z("labelFlush")),re=xd(z("labelFlushOffset")),Q=z("labelAlign"),ie=z("labelBaseline"),ce,fe=Z===0||!!Z,pe=br(B);pe.mult=X,pe.offset=br(z("labelPadding")||0),pe.offset.mult=X;let _e={scale:W,field:so,band:.5,offset:iD(P.offset,z("labelOffset"))},Ae=yr(G,fe?iA(W,Z,'"left"','"right"','"center"'):{value:"center"},gz(G,"left","right")),Ie=yr(G,ED(G,"bottom","top"),fe?iA(W,Z,'"top"','"bottom"','"middle"'):{value:"middle"}),Ue=iA(W,Z,`-(${re})`,re,0);fe=fe&&re;let je={opacity:Wt,x:yr(G,_e,pe),y:Ko(G,_e,pe)},De={enter:je,update:ce={opacity:lo,text:{field:VS},x:je.x,y:je.y,align:Ae,baseline:Ie},exit:{opacity:Wt,x:je.x,y:je.y}};Fr(De,{dx:!Q&&fe?yr(G,Ue):null,dy:!ie&&fe?Ko(G,Ue):null}),Fr(De,{angle:z("labelAngle"),fill:z("labelColor"),fillOpacity:z("labelOpacity"),font:z("labelFont"),fontSize:z("labelFontSize"),fontWeight:z("labelFontWeight"),fontStyle:z("labelFontStyle"),limit:z("labelLimit"),lineHeight:z("labelLineHeight")},{align:Q,baseline:ie});let pt=z("labelBound"),ht=z("labelOverlap");return ht=ht||pt?{separation:z("labelSeparation"),method:ht,order:"datum.index",bound:pt?{scale:W,orient:G,tolerance:pt}:null}:void 0,ce.align!==Ae&&(ce.align=lh(ce.align,Ae)),ce.baseline!==Ie&&(ce.baseline=lh(ce.baseline,Ie)),_i({type:Ad,role:GB,style:s0,key:so,from:I,encode:De,overlap:ht},O)})(e,n,r.labels,v,S,f))),g.domain&&E.push((function(x,N,O,I){let B=Ja(x,N),P=x.orient,z,G,W={enter:z={opacity:Wt},update:G={opacity:lo},exit:{opacity:Wt}};Fr(W,{stroke:B("domainColor"),strokeCap:B("domainCap"),strokeDash:B("domainDash"),strokeDashOffset:B("domainDashOffset"),strokeWidth:B("domainWidth"),strokeOpacity:B("domainOpacity")});let X=xD(x,0),Z=xD(x,1);return z.x=G.x=yr(P,X,Wt),z.x2=G.x2=yr(P,Z),z.y=G.y=Ko(P,X,Wt),z.y2=G.y2=Ko(P,Z),_i({type:JS,role:UB,from:I,encode:W},O)})(e,n,r.domain,b)),g.title&&E.push(Sz(e,n,r.title,b)),zw(c0({role:BB,from:b,encode:nh(Tz(u,e),a,l0),marks:E,aria:u("aria"),description:u("description"),zindex:u("zindex"),name:i,interactive:o,style:c}),t)}function Tz(e,t){let n={enter:{},update:{}};return Fr(n,{orient:e("orient"),offset:e("offset")||0,position:Wo(t.position,0),titlePadding:e("titlePadding"),minExtent:e("minExtent"),maxExtent:e("maxExtent"),range:{signal:`abs(span(range("${t.scale}")))`},translate:e("translate"),format:t.format,formatType:t.formatType}),n}function SD(e,t,n){let r=Ne(e.signals),a=Ne(e.scales);return n||r.forEach((i=>zO(i,t))),Ne(e.projections).forEach((i=>(function(o,c){let u=c.config.projection||{},f={};for(let g in o)g!=="name"&&(f[g]=qS(o[g],g,c));for(let g in u)f[g]==null&&(f[g]=qS(u[g],g,c));c.addProjection(o.name,f)})(i,t))),a.forEach((i=>(function(o,c){let u=o.type||"linear";xv(u)||L("Unrecognized scale type: "+ft(u)),c.addScale(o.name,{type:u,domain:void 0})})(i,t))),Ne(e.data).forEach((i=>mz(i,t))),a.forEach((i=>IU(i,t))),(n||r).forEach((i=>(function(o,c){let u=c.getSignal(o.name),f=o.update;o.init&&(f?L("Signals can not include both init and update expressions."):(f=o.init,u.initonly=!0)),f&&(f=Ds(f,c),u.update=f.$expr,u.params=f.$params),o.on&&o.on.forEach((g=>cU(g,c,u.id)))})(i,t))),Ne(e.axes).forEach((i=>Az(i,t))),Ne(e.marks).forEach((i=>zw(i,t))),Ne(e.legends).forEach((i=>uz(i,t))),e.title&&pz(e.title,t),t.parseLambdas(),t}let Rz=e=>nh({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},e);function Cz(e,t){let n=t.config,r=bt(t.root=t.add(Iw())),a=(function(f,g){let b=x=>Wo(f[x],g[x]),v=[d0("background",b("background")),d0("autosize",FB(b("autosize"))),d0("padding",$B(b("padding"))),d0("width",b("width")||0),d0("height",b("height")||0)],E=v.reduce(((x,N)=>(x[N.name]=N,x)),{}),S={};return Ne(f.signals).forEach((x=>{ot(E,x.name)?x=lt(E[x.name],x):v.push(x),S[x.name]=x})),Ne(g.signals).forEach((x=>{ot(S,x.name)||ot(E,x.name)||v.push(x)})),v})(e,n);a.forEach((f=>zO(f,t))),t.description=e.description||n.description,t.eventConfig=n.events,t.legends=t.objectProperty(n.legend&&n.legend.layout),t.locale=n.locale;let i=t.add(Vo()),o=t.add(VO(BO(Rz(e.encode),Pw,PS,e.style,t,{pulse:bt(i)}))),c=t.add(XO({layout:t.objectProperty(e.layout),legends:t.legends,autosize:t.signalRef("autosize"),mark:r,pulse:bt(o)}));t.operators.pop(),t.pushState(bt(o),bt(c),null),SD(e,t,a),t.operators.push(c);let u=t.add(qO({mark:r,pulse:bt(c)}));return u=t.add(KO({pulse:bt(u)})),u=t.add(Sd({pulse:bt(u)})),t.addData("root",new Td(t,i,i,u)),t}function d0(e,t){return t&&t.signal?{name:e,update:t.signal}:{name:e,value:t}}function AD(e,t){this.config=e||{},this.options=t||{},this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.eventConfig=null,this.locale=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function TD(e){this.config=e.config,this.options=e.options,this.legends=e.legends,this.field=Object.create(e.field),this.signals=Object.create(e.signals),this.lambdas=Object.create(e.lambdas),this.scales=Object.create(e.scales),this.events=Object.create(e.events),this.data=Object.create(e.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++e._nextsub[0],this._nextsub=e._nextsub,this._parent=e._parent.slice(),this._encode=e._encode.slice(),this._lookup=e._lookup.slice(),this._markpath=e._markpath}function oA(e){return(ve(e)?Nz:Iz)(e)}function Nz(e){let t=e.length,n="[";for(let r=0;r<t;++r){let a=e[r];n+=(r>0?",":"")+(ye(a)?a.signal||oA(a):ft(a))}return n+"]"}function Iz(e){let t,n,r="{",a=0;for(t in e)n=e[t],r+=(++a>1?",":"")+ft(t)+":"+(ye(n)?n.signal||oA(n):ft(n));return r+"}"}AD.prototype=TD.prototype={parse(e){return SD(e,this)},fork(){return new TD(this)},isSubscope(){return this._subid>0},toRuntime(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id(){return(this._subid?this._subid+":":0)+this._id++},add(e){return this.operators.push(e),e.id=this.id(),e.refs&&(e.refs.forEach((t=>{t.$ref=e.id})),e.refs=null),e},proxy(e){let t=e instanceof US?bt(e):e;return this.add(SU({value:t}))},addStream(e){return this.streams.push(e),e.id=this.id(),e},addUpdate(e){return this.updates.push(e),e},finish(){let e,t;for(e in this.root&&(this.root.root=!0),this.signals)this.signals[e].signal=e;for(e in this.scales)this.scales[e].scale=e;function n(r,a,i){let o,c;r&&(o=r.data||(r.data={}),c=o[a]||(o[a]=[]),c.push(i))}for(e in this.data){t=this.data[e],n(t.input,e,"input"),n(t.output,e,"output"),n(t.values,e,"values");for(let r in t.index)n(t.index[r],e,"index:"+r)}return this},pushState(e,t,n){this._encode.push(bt(this.add(Sd({pulse:e})))),this._parent.push(t),this._lookup.push(n?bt(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return me(this._parent)},encode(){return me(this._encode)},lookup(){return me(this._lookup)},markpath(){let e=this._markpath;return++e[e.length-1]},fieldRef(e,t){if(Ut(e))return i0(e,t);e.signal||L("Unsupported field reference: "+ft(e));let n=e.signal,r=this.field[n];if(!r){let a={name:this.signalRef(n)};t&&(a.as=t),this.field[n]=r=bt(this.add(mU(a)))}return r},compareRef(e){let t=!1,n=i=>lr(i)?(t=!0,this.signalRef(i.signal)):(function(o){return o&&o.expr})(i)?(t=!0,this.exprRef(i.expr)):i,r=Ne(e.field).map(n),a=Ne(e.order).map(n);return t?bt(this.add(WO({fields:r,orders:a}))):GO(r,a)},keyRef(e,t){let n=!1,r=this.signals;return e=Ne(e).map((a=>lr(a)?(n=!0,bt(r[a.signal])):a)),n?bt(this.add(gU({fields:e,flat:t}))):(function(a,i){let o={$key:a};return i&&(o.$flat=!0),o})(e,t)},sortRef(e){if(!e)return e;let t=Ow(e.op,e.field),n=e.order||"ascending";return n.signal?bt(this.add(WO({fields:t,orders:this.signalRef(n.signal)}))):GO(t,n)},event(e,t){let n=e+":"+t;if(!this.events[n]){let r=this.id();this.streams.push({id:r,source:e,type:t}),this.events[n]=r}return this.events[n]},hasOwnSignal(e){return ot(this.signals,e)},addSignal(e,t){this.hasOwnSignal(e)&&L("Duplicate signal name: "+ft(e));let n=t instanceof US?t:this.add(Iw(t));return this.signals[e]=n},getSignal(e){return this.signals[e]||L("Unrecognized signal name: "+ft(e)),this.signals[e]},signalRef(e){return this.signals[e]?bt(this.signals[e]):(ot(this.lambdas,e)||(this.lambdas[e]=this.add(Iw(null))),bt(this.lambdas[e]))},parseLambdas(){let e=Object.keys(this.lambdas);for(let t=0,n=e.length;t<n;++t){let r=e[t],a=Ds(r,this),i=this.lambdas[r];i.params=a.$params,i.update=a.$expr}},property(e){return e&&e.signal?this.signalRef(e.signal):e},objectProperty(e){return e&&ye(e)?this.signalRef(e.signal||oA(e)):e},exprRef(e,t){let n={expr:Ds(e,this)};return t&&(n.expr.$name=t),bt(this.add(pU(n)))},addBinding(e,t){this.bindings||L("Nested signals do not support binding: "+ft(e)),this.bindings.push(lt({signal:e},t))},addScaleProj(e,t){ot(this.scales,e)&&L("Duplicate scale or projection name: "+ft(e)),this.scales[e]=this.add(t)},addScale(e,t){this.addScaleProj(e,TU(t))},addProjection(e,t){this.addScaleProj(e,xU(t))},getScale(e){return this.scales[e]||L("Unrecognized scale name: "+ft(e)),this.scales[e]},scaleRef(e){return bt(this.getScale(e))},scaleType(e){return this.getScale(e).params.type},projectionRef(e){return this.scaleRef(e)},projectionType(e){return this.scaleType(e)},addData(e,t){return ot(this.data,e)&&L("Duplicate data set name: "+ft(e)),this.data[e]=t},getData(e){return this.data[e]||L("Undefined data set name: "+ft(e)),this.data[e]},addDataPipeline(e,t){return ot(this.data,e)&&L("Duplicate data set name: "+ft(e)),this.addData(e,Td.fromEntries(this,t))}},lt(tl,Jf,TL,$L,xF,qF,SP,mP,AP,zP,KP,JP),p.Bounds=Cn,p.CanvasHandler=mb,p.CanvasRenderer=eE,p.DATE=pr,p.DAY=tr,p.DAYOFYEAR=Di,p.Dataflow=el,p.Debug=Le,p.Error=ue,p.EventStream=Ui,p.Gradient=mt,p.GroupItem=vl,p.HOURS=Hr,p.Handler=Lc,p.Info=xe,p.Item=Lo,p.MILLISECONDS=Ba,p.MINUTES=pa,p.MONTH=er,p.Marks=vi,p.MultiPulse=vu,p.None=le,p.Operator=Qt,p.Parameters=bu,p.Pulse=ci,p.QUARTER=Tr,p.RenderType=Pc,p.Renderer=Ts,p.ResourceLoader=El,p.SECONDS=ha,p.SVGHandler=t1,p.SVGRenderer=l1,p.SVGStringRenderer=u1,p.Scenegraph=X_,p.TIME_UNITS=Hd,p.Transform=Te,p.View=_O,p.WEEK=An,p.Warn=be,p.YEAR=Qn,p.accessor=h,p.accessorFields=_,p.accessorName=w,p.array=Ne,p.ascending=et,p.bandwidthNRD=bm,p.bin=ym,p.bootstrapCI=vm,p.boundClip=uR,p.boundContext=ob,p.boundItem=K_,p.boundMark=TT,p.boundStroke=kl,p.changeset=ls,p.clampRange=Be,p.codegenExpression=LI,p.compare=Lt,p.constant=Ze,p.cumulativeLogNormal=ba,p.cumulativeNormal=wu,p.cumulativeUniform=xu,p.dayofyear=G0,p.debounce=on,p.defaultLocale=mf,p.definition=hm,p.densityLogNormal=If,p.densityNormal=Em,p.densityUniform=Mf,p.domChild=Wa,p.domClear=Bo,p.domCreate=Mc,p.domFind=Z_,p.dotbin=Cf,p.error=L,p.expressionFunction=Yn,p.extend=lt,p.extent=Sn,p.extentIndex=la,p.falsy=te,p.fastmap=ur,p.field=q,p.flush=ca,p.font=qv,p.fontFamily=db,p.fontSize=As,p.format=mu,p.formatLocale=pu,p.formats=os,p.hasOwnProperty=ot,p.id=J,p.identity=K,p.inferType=lm,p.inferTypes=cm,p.ingest=Dt,p.inherits=Fe,p.inrange=xr,p.interpolate=Jg,p.interpolateColors=Np,p.interpolateRange=Tv,p.intersect=oR,p.intersectBoxLine=Lp,p.intersectPath=D_,p.intersectPoint=M_,p.intersectRule=fT,p.isArray=ve,p.isBoolean=ei,p.isDate=vn,p.isFunction=We,p.isIterable=xi,p.isNumber=Ur,p.isObject=ye,p.isRegExp=Si,p.isString=Ut,p.isTuple=ac,p.key=Ai,p.lerp=fo,p.lineHeight=Oc,p.loader=Js,p.locale=sm,p.logger=Me,p.lruCache=Pl,p.markup=s1,p.merge=Bs,p.mergeConfig=Ve,p.multiLineOffset=W_,p.one=oe,p.pad=Xc,p.panLinear=_t,p.panLog=Pt,p.panPow=Zt,p.panSymlog=Tt,p.parse=function(e,t,n){return ye(e)||L("Input Vega specification must be an object."),Cz(e,new AD(t=Ve((function(){let r="sans-serif",a="#4c78a8",i="#000",o="#888",c="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:a},area:{fill:a},image:null,line:{stroke:a,strokeWidth:2},path:{stroke:a},rect:{fill:a},rule:{stroke:i},shape:{stroke:a},symbol:{fill:a,size:64},text:{fill:i,font:r,fontSize:11},trail:{fill:a,size:2},style:{"guide-label":{fill:i,font:r,fontSize:10},"guide-title":{fill:i,font:r,fontSize:11,fontWeight:"bold"},"group-title":{fill:i,font:r,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:i,font:r,fontSize:12},point:{size:30,strokeWidth:2,shape:"circle"},circle:{size:30,strokeWidth:2},square:{size:30,strokeWidth:2,shape:"square"},cell:{fill:"transparent",stroke:c},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:o,grid:!1,gridWidth:1,gridColor:c,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:o,tickOffset:0,tickRound:!0,tickSize:5,tickWidth:1,titlePadding:4},axisBand:{tickOffset:-.5},projection:{type:"mercator"},legend:{orient:"right",padding:0,gridAlign:"each",columnPadding:10,rowPadding:2,symbolDirection:"vertical",gradientDirection:"vertical",gradientLength:200,gradientThickness:16,gradientStrokeColor:c,gradientStrokeWidth:0,gradientLabelOffset:2,labelAlign:"left",labelBaseline:"middle",labelLimit:160,labelOffset:4,labelOverlap:!0,symbolLimit:30,symbolType:"circle",symbolSize:100,symbolOffset:0,symbolStrokeWidth:1.5,symbolBaseFillColor:"transparent",symbolBaseStrokeColor:o,titleLimit:180,titleOrient:"top",titlePadding:5,layout:{offset:18,direction:"horizontal",left:{direction:"vertical"},right:{direction:"vertical"}}},range:{category:{scheme:"tableau10"},ordinal:{scheme:"blues"},heatmap:{scheme:"yellowgreenblue"},ramp:{scheme:"blues"},diverging:{scheme:"blueorange",extent:[1,0]},symbol:["circle","square","triangle-up","cross","diamond","triangle-right","triangle-down","triangle-left"]}}})(),t,e.config),n)).toRuntime()},p.parseExpression=OI,p.parseSelector=OO,p.path=Du,p.pathCurves=Qe,p.pathEqual=dR,p.pathParse=qt,p.pathRectangle=rb,p.pathRender=Zr,p.pathSymbols=Jr,p.pathTrail=ab,p.peek=me,p.point=Vv,p.projection=sx,p.quantileLogNormal=_m,p.quantileNormal=ku,p.quantileUniform=dc,p.quantiles=gm,p.quantizeInterpolator=Rv,p.quarter=Xn,p.quartiles=Rf,p.randomInteger=function(e,t){let n,r,a;t==null&&(t=e,e=0);let i={min(o){return arguments.length?(n=o||0,a=r-n,i):n},max(o){return arguments.length?(r=o||0,a=r-n,i):r},sample:()=>n+Math.floor(a*p.random()),pdf:o=>o===Math.floor(o)&&o>=n&&o<r?1/a:0,cdf(o){let c=Math.floor(o);return c<n?0:c>=r?1:(c-n+1)/a},icdf:o=>o>=0&&o<=1?n-1+Math.floor(o*a):NaN};return i.min(e).max(t)},p.randomKDE=km,p.randomLCG=function(e){return function(){return(e=(1103515245*e+12345)%2147483647)/2147483647}},p.randomLogNormal=Of,p.randomMixture=Df,p.randomNormal=wm,p.randomUniform=Lf,p.read=Ef,p.regressionConstant=Ff,p.regressionExp=xm,p.regressionLinear=fc,p.regressionLoess=Tm,p.regressionLog=Tu,p.regressionPoly=Sm,p.regressionPow=_y,p.regressionQuad=ui,p.renderModule=aE,p.repeat=po,p.resetDefaultLocale=function(){return im(),hu(),mf()},p.resetSVGClipId=Dv,p.resetSVGDefIds=function(){Dv(),Se=0},p.responseType=vf,p.runtimeContext=rO,p.sampleCurve=Pf,p.sampleLogNormal=Nf,p.sampleNormal=uc,p.sampleUniform=_u,p.scale=jt,p.sceneEqual=f1,p.sceneFromJSON=CT,p.scenePickVisit=Uv,p.sceneToJSON=RT,p.sceneVisit=Po,p.sceneZOrder=L_,p.scheme=Op,p.serializeXML=ZT,p.setRandom=function(e){p.random=e},p.span=ti,p.splitAccessPath=U,p.stringValue=ft,p.textMetrics=$o,p.timeBin=oi,p.timeFloor=V0,p.timeFormatLocale=Zs,p.timeInterval=ns,p.timeOffset=Zd,p.timeSequence=jh,p.timeUnitSpecifier=Wd,p.timeUnits=qd,p.toBoolean=$l,p.toDate=Pd,p.toNumber=ke,p.toSet=ua,p.toString=$d,p.transform=mm,p.transforms=tl,p.truncate=xh,p.truthy=Y,p.tupleid=ut,p.typeParsers=ma,p.utcFloor=Xd,p.utcInterval=Ua,p.utcOffset=X0,p.utcSequence=Hh,p.utcdayofyear=Uh,p.utcquarter=La,p.utcweek=zh,p.version="5.25.0",p.visitArray=Jo,p.week=Vd,p.writeConfig=tt,p.zero=V,p.zoomLinear=ia,p.zoomLog=oa,p.zoomPow=sa,p.zoomSymlog=$r}))});var AM=sA((nk,SM)=>{"use strict";(function(p,h){typeof nk=="object"&&typeof SM<"u"?h(nk,xA()):typeof define=="function"&&define.amd?define(["exports","vega"],h):h((p=typeof globalThis<"u"?globalThis:p||self).vegaLite={},p.vega)})(nk,(function(p,h){"use strict";var w="5.16.1";function _(l){return!!l.or}function T(l){return!!l.and}function M(l){return!!l.not}function D(l,s){if(M(l))D(l.not,s);else if(T(l))for(let d of l.and)D(d,s);else if(_(l))for(let d of l.or)D(d,s);else s(l)}function L(l,s){return M(l)?{not:L(l.not,s)}:T(l)?{and:l.and.map((d=>L(d,s)))}:_(l)?{or:l.or.map((d=>L(d,s)))}:s(l)}let U=globalThis.structuredClone;function q(l){throw new Error(l)}function J(l,s){let d={};for(let m of s)h.hasOwnProperty(l,m)&&(d[m]=l[m]);return d}function K(l,s){let d={...l};for(let m of s)delete d[m];return d}function V(l){if(h.isNumber(l))return l;let s=h.isString(l)?l:Be(l);if(s.length<250)return s;let d=0;for(let m=0;m<s.length;m++)d=(d<<5)-d+s.charCodeAt(m),d&=d;return d}function oe(l){return l===!1||l===null}function Y(l,s){return l.includes(s)}function te(l,s){let d=0;for(let[m,y]of l.entries())if(s(y,m,d++))return!0;return!1}function se(l,s){let d=0;for(let[m,y]of l.entries())if(!s(y,m,d++))return!1;return!0}function le(l){for(var s=arguments.length,d=new Array(s>1?s-1:0),m=1;m<s;m++)d[m-1]=arguments[m];for(let y of d)ue(l,y??{});return l}function ue(l,s){for(let d of we(s))h.writeConfig(l,d,s[d],!0)}function be(l,s){let d=[],m={},y;for(let k of l)y=s(k),y in m||(m[y]=1,d.push(k));return d}function xe(l,s){if(l.size!==s.size)return!1;for(let d of l)if(!s.has(d))return!1;return!0}function Le(l,s){for(let d of l)if(s.has(d))return!0;return!1}function Me(l){let s=new Set;for(let d of l){let m=h.splitAccessPath(d).map(((k,A)=>A===0?k:`[${k}]`)),y=m.map(((k,A)=>m.slice(0,A+1).join("")));for(let k of y)s.add(k)}return s}function ve(l,s){return l===void 0||s===void 0||Le(Me(l),Me(s))}function ye(l){return we(l).length===0}Set.prototype.toJSON=function(){return`Set(${[...this].map((l=>Be(l))).join(",")})`};let we=Object.keys,Ve=Object.values,tt=Object.entries;function Ye(l){return l===!0||l===!1}function me(l){let s=l.replace(/\W/g,"_");return(l.match(/^\d+/)?"_":"")+s}function ke(l,s){return M(l)?`!(${ke(l.not,s)})`:T(l)?`(${l.and.map((d=>ke(d,s))).join(") && (")})`:_(l)?`(${l.or.map((d=>ke(d,s))).join(") || (")})`:s(l)}function rt(l,s){if(s.length===0)return!0;let d=s.shift();return d in l&&rt(l[d],s)&&delete l[d],ye(l)}function wt(l){return l.charAt(0).toUpperCase()+l.substr(1)}function Oe(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"datum",d=h.splitAccessPath(l),m=[];for(let y=1;y<=d.length;y++){let k=`[${d.slice(0,y).map(h.stringValue).join("][")}]`;m.push(`${s}${k}`)}return m.join(" && ")}function Bt(l){return`${arguments.length>1&&arguments[1]!==void 0?arguments[1]:"datum"}[${h.stringValue(h.splitAccessPath(l).join("."))}]`}function xt(l){return l.replace(/(\[|\]|\.|'|")/g,"\\$1")}function Ot(l){return`${h.splitAccessPath(l).map(xt).join("\\.")}`}function _t(l,s,d){return l.replace(new RegExp(s.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),d)}function Pt(l){return`${h.splitAccessPath(l).join(".")}`}function Zt(l){return l?h.splitAccessPath(l).length:0}function Tt(){for(var l=arguments.length,s=new Array(l),d=0;d<l;d++)s[d]=arguments[d];for(let m of s)if(m!==void 0)return m}let Pn=42;function ia(l){let s=++Pn;return l?String(l)+s:s}function oa(l){return sa(l)?l:`__${l}`}function sa(l){return l.startsWith("__")}function $r(l){if(l!==void 0)return(l%360+360)%360}function Xn(l){return!!h.isNumber(l)||!isNaN(l)&&!isNaN(parseFloat(l))}let La=Object.getPrototypeOf(globalThis.structuredClone({}));function Ne(l,s){if(l===s)return!0;if(l&&s&&typeof l=="object"&&typeof s=="object"){if(l.constructor.name!==s.constructor.name)return!1;let d,m;if(Array.isArray(l)){if(d=l.length,d!=s.length)return!1;for(m=d;m--!=0;)if(!Ne(l[m],s[m]))return!1;return!0}if(l instanceof Map&&s instanceof Map){if(l.size!==s.size)return!1;for(m of l.entries())if(!s.has(m[0]))return!1;for(m of l.entries())if(!Ne(m[1],s.get(m[0])))return!1;return!0}if(l instanceof Set&&s instanceof Set){if(l.size!==s.size)return!1;for(m of l.entries())if(!s.has(m[0]))return!1;return!0}if(ArrayBuffer.isView(l)&&ArrayBuffer.isView(s)){if(d=l.length,d!=s.length)return!1;for(m=d;m--!=0;)if(l[m]!==s[m])return!1;return!0}if(l.constructor===RegExp)return l.source===s.source&&l.flags===s.flags;if(l.valueOf!==Object.prototype.valueOf&&l.valueOf!==La.valueOf)return l.valueOf()===s.valueOf();if(l.toString!==Object.prototype.toString&&l.toString!==La.toString)return l.toString()===s.toString();let y=Object.keys(l);if(d=y.length,d!==Object.keys(s).length)return!1;for(m=d;m--!=0;)if(!Object.prototype.hasOwnProperty.call(s,y[m]))return!1;for(m=d;m--!=0;){let k=y[m];if(!Ne(l[k],s[k]))return!1}return!0}return l!=l&&s!=s}function Be(l){let s=[];return(function d(m){if(m&&m.toJSON&&typeof m.toJSON=="function"&&(m=m.toJSON()),m===void 0)return;if(typeof m=="number")return isFinite(m)?""+m:"null";if(typeof m!="object")return JSON.stringify(m);let y,k;if(Array.isArray(m)){for(k="[",y=0;y<m.length;y++)y&&(k+=","),k+=d(m[y])||"null";return k+"]"}if(m===null)return"null";if(s.includes(m))throw new TypeError("Converting circular structure to JSON");let A=s.push(m)-1,R=Object.keys(m).sort();for(k="",y=0;y<R.length;y++){let C=R[y],$=d(m[C]);$&&(k&&(k+=","),k+=JSON.stringify(C)+":"+$)}return s.splice(A,1),`{${k}}`})(l)}let We="row",at="column",Lt="facet",et="x",nt="y",Xe="x2",Ke="y2",Ze="xOffset",on="yOffset",lt="radius",Sn="radius2",la="theta",uo="theta2",ot="latitude",Br="longitude",ur="latitude2",ca="longitude2",Fe="color",xr="fill",ei="stroke",vn="shape",xi="size",Ur="angle",Si="opacity",Ut="fillOpacity",Ai="strokeOpacity",fo="strokeWidth",Zo="strokeDash",Pl="text",Bs="order",po="detail",Xc="key",ti="tooltip",ft="href",$l="url",Fd="description",Pd={theta:1,theta2:1,radius:1,radius2:1};function $d(l){return l in Pd}let ua={longitude:1,longitude2:1,latitude:1,latitude2:1};function xh(l){switch(l){case ot:return"y";case ur:return"y2";case Br:return"x";case ca:return"x2"}}function Jo(l){return l in ua}let _0=we(ua),Zc={x:1,y:1,x2:1,y2:1,...Pd,...ua,xOffset:1,yOffset:1,color:1,fill:1,stroke:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeDash:1,size:1,angle:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1,url:1,description:1};function Qo(l){return l===Fe||l===xr||l===ei}let Bl={row:1,column:1,facet:1},zr=we(Bl),Bd={...Zc,...Bl},x0=we(Bd),{order:da,detail:VA,tooltip:YA,...bk}=Bd,{row:KA,column:yk,facet:vk,...Ek}=bk;function S0(l){return!!Bd[l]}let wk=[Xe,Ke,ur,ca,uo,Sn];function Ti(l){return Us(l)!==l}function Us(l){switch(l){case Xe:return et;case Ke:return nt;case ur:return ot;case ca:return Br;case uo:return la;case Sn:return lt}return l}function fa(l){if($d(l))switch(l){case la:return"startAngle";case uo:return"endAngle";case lt:return"outerRadius";case Sn:return"innerRadius"}return l}function Ri(l){switch(l){case et:return Xe;case nt:return Ke;case ot:return ur;case Br:return ca;case la:return uo;case lt:return Sn}}function Sr(l){switch(l){case et:case Xe:return"width";case nt:case Ke:return"height"}}function Sh(l){switch(l){case et:return"xOffset";case nt:return"yOffset";case Xe:return"x2Offset";case Ke:return"y2Offset";case la:return"thetaOffset";case lt:return"radiusOffset";case uo:return"theta2Offset";case Sn:return"radius2Offset"}}function Ul(l){switch(l){case et:return"xOffset";case nt:return"yOffset"}}function kk(l){switch(l){case"xOffset":return"x";case"yOffset":return"y"}}let Jc=we(Zc),{x:Gr,y:_k,x2:Ah,y2:A0,xOffset:xk,yOffset:Sk,latitude:Ak,longitude:Tk,latitude2:XA,longitude2:ZA,theta:JA,theta2:Th,radius:T0,radius2:R0,...Ci}=Zc,zs=we(Ci),Qc={x:1,y:1},ni=we(Qc);function un(l){return l in Qc}let eu={theta:1,radius:1},C0=we(eu);function tu(l){return l==="width"?et:nt}let Rh={xOffset:1,yOffset:1};function Zn(l){return l in Rh}let{text:Rk,tooltip:QA,href:Ch,url:nu,description:Ck,detail:eT,key:zl,order:N0,...Nh}=Ci,I0=we(Nh),Ih={...Qc,...eu,...Rh,...Nh},Gl=we(Ih);function Fa(l){return!!Ih[l]}function Oh(l,s){return(function(d){switch(d){case Fe:case xr:case ei:case Fd:case po:case Xc:case ti:case ft:case Bs:case Si:case Ut:case Ai:case fo:case Lt:case We:case at:return Dh;case et:case nt:case Ze:case on:case ot:case Br:return O0;case Xe:case Ke:case ur:case ca:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case xi:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case Zo:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case vn:return{point:"always",geoshape:"always"};case Pl:return{text:"always"};case Ur:return{point:"always",square:"always",text:"always"};case $l:return{image:"always"};case la:case lt:return{text:"always",arc:"always"};case uo:case Sn:return{arc:"always"}}})(l)[s]}let Dh={arc:"always",area:"always",bar:"always",circle:"always",geoshape:"always",image:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},{geoshape:Nk,...O0}=Dh;function Ud(l){switch(l){case et:case nt:case la:case lt:case Ze:case on:case xi:case Ur:case fo:case Si:case Ut:case Ai:case Xe:case Ke:case uo:case Sn:return;case Lt:case We:case at:case vn:case Zo:case Pl:case ti:case ft:case $l:case Fd:return"discrete";case Fe:case xr:case ei:return"flexible";case ot:case Br:case ur:case ca:case po:case Xc:case Bs:return}}let D0={argmax:1,argmin:1,average:1,count:1,distinct:1,product:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1},M0={count:1,min:1,max:1};function ri(l){return!!l&&!!l.argmin}function Ni(l){return!!l&&!!l.argmax}function En(l){return h.isString(l)&&!!D0[l]}let jl=new Set(["count","valid","missing","distinct"]);function Ii(l){return h.isString(l)&&jl.has(l)}let Pa=new Set(["count","sum","distinct","valid","missing"]),ho=new Set(["mean","average","median","q1","q3","min","max"]);function Oi(l){return h.isBoolean(l)&&(l=ut(l,void 0)),"bin"+we(l).map((s=>$a(l[s])?me(`_${s}_${tt(l[s])}`):me(`_${s}_${l[s]}`))).join("")}function Jt(l){return l===!0||mo(l)&&!l.binned}function $n(l){return l==="binned"||mo(l)&&l.binned===!0}function mo(l){return h.isObject(l)}function $a(l){return l?.param}function ru(l){switch(l){case We:case at:case xi:case Fe:case xr:case ei:case fo:case Si:case Ut:case Ai:case vn:return 6;case Zo:return 4;default:return 10}}function es(l){return!!l?.expr}function Jn(l){let s=we(l||{}),d={};for(let m of s)d[m]=Bn(l[m]);return d}function au(l){let{anchor:s,frame:d,offset:m,orient:y,angle:k,limit:A,color:R,subtitleColor:C,subtitleFont:$,subtitleFontSize:j,subtitleFontStyle:H,subtitleFontWeight:ee,subtitleLineHeight:ae,subtitlePadding:ne,...de}=l,he={...s?{anchor:s}:{},...d?{frame:d}:{},...m?{offset:m}:{},...y?{orient:y}:{},...k!==void 0?{angle:k}:{},...A!==void 0?{limit:A}:{}},ge={...C?{subtitleColor:C}:{},...$?{subtitleFont:$}:{},...j?{subtitleFontSize:j}:{},...H?{subtitleFontStyle:H}:{},...ee?{subtitleFontWeight:ee}:{},...ae?{subtitleLineHeight:ae}:{},...ne?{subtitlePadding:ne}:{}};return{titleMarkConfig:{...de,...R?{fill:R}:{}},subtitleMarkConfig:J(l,["align","baseline","dx","dy","limit"]),nonMarkTitleProperties:he,subtitle:ge}}function dr(l){return h.isString(l)||h.isArray(l)&&h.isString(l[0])}function Je(l){return!!l?.signal}function go(l){return!!l.step}function Ar(l){return!h.isArray(l)&&"field"in l&&"data"in l}let Hl=we({aria:1,description:1,ariaRole:1,ariaRoleDescription:1,blend:1,opacity:1,fill:1,fillOpacity:1,stroke:1,strokeCap:1,strokeWidth:1,strokeOpacity:1,strokeDash:1,strokeDashOffset:1,strokeJoin:1,strokeOffset:1,strokeMiterLimit:1,startAngle:1,endAngle:1,padAngle:1,innerRadius:1,outerRadius:1,size:1,shape:1,interpolate:1,tension:1,orient:1,align:1,baseline:1,text:1,dir:1,dx:1,dy:1,ellipsis:1,limit:1,radius:1,theta:1,angle:1,font:1,fontSize:1,fontWeight:1,fontStyle:1,lineBreak:1,lineHeight:1,cursor:1,href:1,tooltip:1,cornerRadius:1,cornerRadiusTopLeft:1,cornerRadiusTopRight:1,cornerRadiusBottomLeft:1,cornerRadiusBottomRight:1,aspect:1,width:1,height:1,url:1,smooth:1}),zd={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},Mh=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function L0(l){let s=h.isArray(l.condition)?l.condition.map(F0):F0(l.condition);return{...Bn(l),condition:s}}function Bn(l){if(es(l)){let{expr:s,...d}=l;return{signal:s,...d}}return l}function F0(l){if(es(l)){let{expr:s,...d}=l;return{signal:s,...d}}return l}function sn(l){if(es(l)){let{expr:s,...d}=l;return{signal:s,...d}}return Je(l)?l:l!==void 0?{value:l}:void 0}function ts(l){return Je(l)?l.signal:h.stringValue(l.value)}function fr(l){return Je(l)?l.signal:l==null?null:h.stringValue(l)}function Gd(l,s,d){for(let m of d){let y=jr(m,s.markDef,s.config);y!==void 0&&(l[m]=sn(y))}return l}function P0(l){return[].concat(l.type,l.style??[])}function Yt(l,s,d){let m=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},{vgChannel:y,ignoreVgConfig:k}=m;return y&&s[y]!==void 0?s[y]:s[l]!==void 0?s[l]:!k||y&&y!==l?jr(l,s,d,m):void 0}function jr(l,s,d){let{vgChannel:m}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return Tt(m?jd(l,s,d.style):void 0,jd(l,s,d.style),m?d[s.type][m]:void 0,d[s.type][l],m?d.mark[m]:d.mark[l])}function jd(l,s,d){return $0(l,P0(s),d)}function $0(l,s,d){let m;s=h.array(s);for(let y of s){let k=d[y];k&&k[l]!==void 0&&(m=k[l])}return m}function ql(l,s){return h.array(l).reduce(((d,m)=>(d.field.push(Ge(m,s)),d.order.push(m.sort??"ascending"),d)),{field:[],order:[]})}function Wl(l,s){let d=[...l];return s.forEach((m=>{for(let y of d)if(Ne(y,m))return;d.push(m)})),d}function ai(l,s){return Ne(l,s)||!s?l:l?[...h.array(l),...h.array(s)].join(", "):s}function ii(l,s){let d=l.value,m=s.value;if(d==null||m===null)return{explicit:l.explicit,value:null};if((dr(d)||Je(d))&&(dr(m)||Je(m)))return{explicit:l.explicit,value:ai(d,m)};if(dr(d)||Je(d))return{explicit:l.explicit,value:d};if(dr(m)||Je(m))return{explicit:l.explicit,value:m};if(!(dr(d)||Je(d)||dr(m)||Je(m)))return{explicit:l.explicit,value:Wl(d,m)};throw new Error("It should never reach here")}function ct(l,s,d){return(s=(function(m){var y=(function(k,A){if(typeof k!="object"||k===null)return k;var R=k[Symbol.toPrimitive];if(R!==void 0){var C=R.call(k,A||"default");if(typeof C!="object")return C;throw new TypeError("@@toPrimitive must return a primitive value.")}return(A==="string"?String:Number)(k)})(m,"string");return typeof y=="symbol"?y:String(y)})(s))in l?Object.defineProperty(l,s,{value:d,enumerable:!0,configurable:!0,writable:!0}):l[s]=d,l}function B0(l,s,d){return(function(m,y,k){if(y.set)y.set.call(m,k);else{if(!y.writable)throw new TypeError("attempted to set read only private field");y.value=k}})(l,U0(l,s,"set"),d),d}function U0(l,s,d){if(!s.has(l))throw new TypeError("attempted to "+d+" private field on non-instance");return s.get(l)}function Ik(l,s,d){(function(m,y){if(y.has(m))throw new TypeError("Cannot initialize the same private elements twice on an object")})(l,s),s.set(l,d)}function Lh(l){return`Invalid specification ${Be(l)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}let Qn='Autosize "fit" only works for single views and layered views.';function Tr(l){return`${l=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function er(l){return`${l=="width"?"Width":"Height"} "container" only works well with autosize "fit" or "fit-${l=="width"?"x":"y"}".`}function An(l){return l?`Dropping "fit-${l}" because spec has discrete ${Sr(l)}.`:'Dropping "fit" because spec has discrete size.'}function pr(l){return`Unknown field for ${l}. Cannot calculate view size.`}function tr(l){return`Cannot project a selection on encoding channel "${l}", which has no field.`}function Di(l,s){return`Cannot project a selection on encoding channel "${l}" as it uses an aggregate function ("${s}").`}function Hr(l){return`Selection not supported for ${l} yet.`}let pa="The same selection must be used to override scale domains in a layered view.";function ha(l){return`The "columns" property cannot be used when "${l}" has nested row/column.`}function Ba(l,s,d){return`An ancestor parsed field "${l}" as ${d} but a child wants to parse the field as ${s}.`}function Hd(l){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${l} are dropped.`}function Fh(l){return`${l}Offset dropped because ${l} is continuous`}function qd(l){return`Invalid field type "${l}".`}function z0(l,s){let{fill:d,stroke:m}=s;return`Dropping color ${l} as the plot also has ${d&&m?"fill and stroke":d?"fill":"stroke"}.`}function Wd(l,s){return`Dropping ${Be(l)} from channel "${s}" since it does not contain any data field, datum, value, or signal.`}function Mi(l,s,d){return`${l} dropped as it is incompatible with "${s}"${d?` when ${d}`:""}.`}function Ph(l){return`${l} encoding should be discrete (ordinal / nominal / binned).`}function G0(l){return`${l} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function Vd(l,s){return`Using discrete channel "${l}" to encode "${s}" field can be misleading as it does not encode ${s==="ordinal"?"order":"magnitude"}.`}function j0(l){return`Using unaggregated domain with raw field has no effect (${Be(l)}).`}function $h(l){return`Unaggregated domain not applicable for "${l}" since it produces values outside the origin domain of the source data.`}function Bh(l){return`Unaggregated domain is currently unsupported for log scale (${Be(l)}).`}function H0(l,s,d){return`${d}-scale's "${s}" is dropped as it does not work with ${l} scale.`}function Uh(l){return`The step for "${l}" is dropped because the ${l==="width"?"x":"y"} is continuous.`}let zh="Domains that should be unioned has conflicting sort properties. Sort will be set to true.";function iu(l,s){return`Invalid ${l}: ${Be(s)}.`}function Yd(l){return`1D error band does not support ${l}.`}function Kd(l){return`Channel ${l} is required for "binned" bin.`}let q0=h.logger(h.Warn),ou=q0;function $e(){ou.warn(...arguments)}function Gs(l){if(l&&h.isObject(l)){for(let s of ns)if(s in l)return!0}return!1}let W0=["january","february","march","april","may","june","july","august","september","october","november","december"],V0=W0.map((l=>l.substr(0,3))),Y0=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Ok=Y0.map((l=>l.substr(0,3)));function Xd(l,s){let d=[];if(s&&l.day!==void 0&&we(l).length>1&&($e((function(m){return`Dropping day from datetime ${Be(m)} as day cannot be combined with other units.`})(l)),delete(l=U(l)).day),l.year!==void 0?d.push(l.year):d.push(2012),l.month!==void 0){let m=s?(function(y){if(Xn(y)&&(y=+y),h.isNumber(y))return y-1;{let k=y.toLowerCase(),A=W0.indexOf(k);if(A!==-1)return A;let R=k.substr(0,3),C=V0.indexOf(R);if(C!==-1)return C;throw new Error(iu("month",y))}})(l.month):l.month;d.push(m)}else if(l.quarter!==void 0){let m=s?(function(y){if(Xn(y)&&(y=+y),h.isNumber(y))return y>4&&$e(iu("quarter",y)),y-1;throw new Error(iu("quarter",y))})(l.quarter):l.quarter;d.push(h.isNumber(m)?3*m:`${m}*3`)}else d.push(0);if(l.date!==void 0)d.push(l.date);else if(l.day!==void 0){let m=s?(function(y){if(Xn(y)&&(y=+y),h.isNumber(y))return y%7;{let k=y.toLowerCase(),A=Y0.indexOf(k);if(A!==-1)return A;let R=k.substr(0,3),C=Ok.indexOf(R);if(C!==-1)return C;throw new Error(iu("day",y))}})(l.day):l.day;d.push(h.isNumber(m)?m+1:`${m}+1`)}else d.push(1);for(let m of["hours","minutes","seconds","milliseconds"]){let y=l[m];d.push(y===void 0?0:y)}return d}function js(l){let s=Xd(l,!0).join(", ");return l.utc?`utc(${s})`:`datetime(${s})`}let K0={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},ns=we(K0);function Ua(l){return h.isObject(l)?l.binned:Gh(l)}function Gh(l){return l&&l.startsWith("binned")}function Zd(l){return l.startsWith("utc")}let X0={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function su(l){return ns.filter((s=>Hh(l,s)))}function jh(l){let s=su(l);return s[s.length-1]}function Hh(l,s){let d=l.indexOf(s);return!(d<0)&&!(d>0&&s==="seconds"&&l.charAt(d-1)==="i")&&!(l.length>d+3&&s==="day"&&l.charAt(d+3)==="o")&&!(d>0&&s==="year"&&l.charAt(d-1)==="f")}function Dk(l,s){let{end:d}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{end:!1},m=Oe(s),y=Zd(l)?"utc":"",k,A={};for(let C of ns)Hh(l,C)&&(A[C]=(R=C)==="quarter"?`(${y}quarter(${m})-1)`:`${y}${R}(${m})`,k=C);var R;return d&&(A[k]+="+1"),(function(C){let $=Xd(C,!1).join(", ");return C.utc?`utc(${$})`:`datetime(${$})`})(A)}function Z0(l){if(l)return`timeUnitSpecifier(${Be(su(l))}, ${Be(X0)})`}function Un(l){if(!l)return;let s;return h.isString(l)?s=Gh(l)?{unit:l.substring(6),binned:!0}:{unit:l}:h.isObject(l)&&(s={...l,...l.unit?{unit:l.unit}:{}}),Zd(s.unit)&&(s.utc=!0,s.unit=s.unit.substring(3)),s}function J0(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:y=>y,d=Un(l),m=jh(d.unit);if(m&&m!=="day"){let y={year:2001,month:1,date:1,hours:0,minutes:0,seconds:0,milliseconds:0},{step:k,part:A}=Jd(m,d.step);return`${s(js({...y,[A]:+y[A]+k}))} - ${s(js(y))}`}}let Mk={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function Jd(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;if((function(d){return!!Mk[d]})(l))return{part:l,step:s};switch(l){case"day":case"dayofyear":return{part:"date",step:s};case"quarter":return{part:"month",step:3*s};case"week":return{part:"date",step:7*s}}}function Qd(l){return!!l?.field&&l.equal!==void 0}function Hs(l){return!!l?.field&&l.lt!==void 0}function qs(l){return!!l?.field&&l.lte!==void 0}function Ws(l){return!!l?.field&&l.gt!==void 0}function qh(l){return!!l?.field&&l.gte!==void 0}function ef(l){return!!(l?.field&&(h.isArray(l.range)&&l.range.length===2||Je(l.range)))}function tf(l){return!!l?.field&&(h.isArray(l.oneOf)||h.isArray(l.in))}function Vl(l){return tf(l)||Qd(l)||ef(l)||Hs(l)||Ws(l)||qs(l)||qh(l)}function oi(l,s){return ic(l,{timeUnit:s,wrapTime:!0})}function nf(l){let s=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],{field:d}=l,m=Un(l.timeUnit),{unit:y,binned:k}=m||{},A=Ge(l,{expr:"datum"}),R=y?`time(${k?A:Dk(y,d)})`:A;if(Qd(l))return`${R}===${oi(l.equal,y)}`;if(Hs(l))return`${R}<${oi(l.lt,y)}`;if(Ws(l))return`${R}>${oi(l.gt,y)}`;if(qs(l))return`${R}<=${oi(l.lte,y)}`;if(qh(l))return`${R}>=${oi(l.gte,y)}`;if(tf(l))return`indexof([${(function(C,$){return C.map((j=>oi(j,$)))})(l.oneOf,y).join(",")}], ${R}) !== -1`;if((function(C){return!!C?.field&&C.valid!==void 0})(l))return lu(R,l.valid);if(ef(l)){let{range:C}=l,$=Je(C)?{signal:`${C.signal}[0]`}:C[0],j=Je(C)?{signal:`${C.signal}[1]`}:C[1];if($!==null&&j!==null&&s)return"inrange("+R+", ["+oi($,y)+", "+oi(j,y)+"])";let H=[];return $!==null&&H.push(`${R} >= ${oi($,y)}`),j!==null&&H.push(`${R} <= ${oi(j,y)}`),H.length>0?H.join(" && "):"true"}throw new Error(`Invalid field predicate: ${Be(l)}`)}function lu(l){return!(arguments.length>1&&arguments[1]!==void 0)||arguments[1]?`isValid(${l}) && isFinite(+${l})`:`!isValid(${l}) || !isFinite(+${l})`}function cu(l){return Vl(l)&&l.timeUnit?{...l,timeUnit:Un(l.timeUnit)}:l}function Q0(l){return l==="quantitative"||l==="temporal"}function Yl(l){return l==="ordinal"||l==="nominal"}let bo="quantitative",rf="ordinal",rs="temporal",af="nominal",Vs="geojson",Vt={LINEAR:"linear",LOG:"log",POW:"pow",SQRT:"sqrt",SYMLOG:"symlog",IDENTITY:"identity",SEQUENTIAL:"sequential",TIME:"time",UTC:"utc",QUANTILE:"quantile",QUANTIZE:"quantize",THRESHOLD:"threshold",BIN_ORDINAL:"bin-ordinal",ORDINAL:"ordinal",POINT:"point",BAND:"band"},Wh={linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",identity:"numeric",sequential:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"};function Lk(l,s){let d=Wh[l],m=Wh[s];return d===m||d==="ordinal-position"&&m==="time"||m==="ordinal-position"&&d==="time"}let zt={linear:0,log:1,pow:1,sqrt:1,symlog:1,identity:1,sequential:1,time:0,utc:0,point:10,band:11,ordinal:0,"bin-ordinal":0,quantile:0,quantize:0,threshold:0};function ey(l){return zt[l]}let Kl=new Set(["linear","log","pow","sqrt","symlog"]),Xl=new Set([...Kl,"time","utc"]);function ty(l){return Kl.has(l)}let ny=new Set(["quantile","quantize","threshold"]),Fk=new Set([...Xl,...ny,"sequential","identity"]),Pk=new Set(["ordinal","bin-ordinal","point","band"]);function zn(l){return Pk.has(l)}function qr(l){return Fk.has(l)}function za(l){return Xl.has(l)}function Zl(l){return ny.has(l)}function ry(l){return l?.param}let{type:tT,domain:$k,range:nT,rangeMax:Bk,rangeMin:rT,scheme:aT,...Uk}={type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,domainRaw:1,align:1,range:1,rangeMax:1,rangeMin:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1},zk=we(Uk);function Vh(l,s){switch(s){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(l);case"bins":return!["point","band","identity","ordinal"].includes(l);case"round":return za(l)||l==="band"||l==="point";case"padding":case"rangeMin":case"rangeMax":return za(l)||["point","band"].includes(l);case"paddingOuter":case"align":return["point","band"].includes(l);case"paddingInner":return l==="band";case"domainMax":case"domainMid":case"domainMin":case"domainRaw":case"clamp":return za(l);case"nice":return za(l)||l==="quantize"||l==="threshold";case"exponent":return l==="pow";case"base":return l==="log";case"constant":return l==="symlog";case"zero":return qr(l)&&!Y(["log","time","utc","threshold","quantile"],l)}}function ay(l,s){switch(s){case"interpolate":case"scheme":case"domainMid":return Qo(l)?void 0:`Cannot use the scale property "${s}" with non-color channel.`;case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":case"domainRaw":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeMax":case"rangeMin":case"reverse":case"round":case"clamp":case"zero":return}}let Rr={arc:"arc",area:"area",bar:"bar",image:"image",line:"line",point:"point",rect:"rect",rule:"rule",text:"text",tick:"tick",trail:"trail",circle:"circle",square:"square",geoshape:"geoshape"},Yh=Rr.arc,of=Rr.area,sf=Rr.bar,Gk=Rr.image,uu=Rr.line,lf=Rr.point,jk=Rr.rect,cf=Rr.rule,iy=Rr.text,Kh=Rr.tick,Hk=Rr.trail,uf=Rr.circle,Xh=Rr.square,oy=Rr.geoshape;function as(l){return["line","area","trail"].includes(l)}function du(l){return["rect","bar","image","arc"].includes(l)}let qk=new Set(we(Rr));function Li(l){return l.type}let Wk=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit","fill","fillOpacity"],sy=we({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),Zh=we({mark:1,arc:1,area:1,bar:1,circle:1,image:1,line:1,point:1,rect:1,rule:1,square:1,text:1,tick:1,trail:1,geoshape:1});function Ys(l){return l&&l.band!=null}let Vk={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},Yk={binSpacing:1,continuousBandSize:5,minBandSize:.25,timeUnitBandPosition:.5},ly={binSpacing:0,continuousBandSize:5,minBandSize:.25,timeUnitBandPosition:.5};function Jh(l){let{channel:s,channelDef:d,markDef:m,scale:y,config:k}=l,A=em(l);return ze(d)&&!Ii(d.aggregate)&&y&&za(y.get("type"))?(function(R){let{fieldDef:C,channel:$,markDef:j,ref:H,config:ee}=R;return as(j.type)?H:Yt("invalid",j,ee)===null?[Kk(C,$),H]:H})({fieldDef:d,channel:s,markDef:m,ref:A,config:k}):A}function Kk(l,s){return{test:Qh(l,!0),...Us(s)==="y"?{field:{group:"height"}}:{value:0}}}function Qh(l){let s=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return lu(h.isString(l)?l:Ge(l,{expr:"datum"}),!s)}function Ks(l,s,d,m){let y={};if(s&&(y.scale=s),Pi(l)){let{datum:k}=l;Gs(k)?y.signal=js(k):Je(k)?y.signal=k.signal:es(k)?y.signal=k.expr:y.value=k}else y.field=Ge(l,d);if(m){let{offset:k,band:A}=m;k&&(y.offset=k),A&&(y.band=A)}return y}function df(l){let{scaleName:s,fieldOrDatumDef:d,fieldOrDatumDef2:m,offset:y,startSuffix:k,endSuffix:A="end",bandPosition:R=.5}=l,C=!Je(R)&&0<R&&R<1?"datum":void 0,$=Ge(d,{expr:C,suffix:k}),j=m!==void 0?Ge(m,{expr:C}):Ge(d,{suffix:A,expr:C}),H={};if(R===0||R===1){H.scale=s;let ee=R===0?$:j;H.field=ee}else{let ee=Je(R)?`(1-${R.signal}) * ${$} + ${R.signal} * ${j}`:`${1-R} * ${$} + ${R} * ${j}`;H.signal=`scale("${s}", ${ee})`}return y&&(H.offset=y),H}function em(l){let{channel:s,channelDef:d,channel2Def:m,markDef:y,config:k,scaleName:A,scale:R,stack:C,offset:$,defaultRef:j,bandPosition:H}=l;if(d){if(St(d)){let ee=R?.get("type");if(hr(d)){H??=Fi({fieldDef:d,fieldDef2:m,markDef:y,config:k});let{bin:ae,timeUnit:ne,type:de}=d;if(Jt(ae)||H&&ne&&de===rs)return C?.impute?Ks(d,A,{binSuffix:"mid"},{offset:$}):H&&!zn(ee)?df({scaleName:A,fieldOrDatumDef:d,bandPosition:H,offset:$}):Ks(d,A,oc(d,s)?{binSuffix:"range"}:{},{offset:$});if($n(ae)){if(ze(m))return df({scaleName:A,fieldOrDatumDef:d,fieldOrDatumDef2:m,bandPosition:H,offset:$});$e(Kd(s===et?Xe:Ke))}}return Ks(d,A,zn(ee)?{binSuffix:"range"}:{},{offset:$,band:ee==="band"?H??d.bandPosition??.5:void 0})}if(ma(d)){let ee=$?{offset:$}:{};return{...Jl(s,d.value),...ee}}}return h.isFunction(j)&&(j=j()),j&&{...j,...$?{offset:$}:{}}}function Jl(l,s){return Y(["x","x2"],l)&&s==="width"?{field:{group:"width"}}:Y(["y","y2"],l)&&s==="height"?{field:{group:"height"}}:sn(s)}function Xs(l){return l&&l!=="number"&&l!=="time"}function cy(l,s,d){return`${l}(${s}${d?`, ${Be(d)}`:""})`}let Xk=" \u2013 ";function tm(l){let{fieldOrDatumDef:s,format:d,formatType:m,expr:y,normalizeStack:k,config:A}=l;if(Xs(m))return si({fieldOrDatumDef:s,format:d,formatType:m,expr:y,config:A});let R=uy(s,y,k),C=tc(s);if(d===void 0&&m===void 0&&A.customFormatTypes){if(C==="quantitative"){if(k&&A.normalizedNumberFormatType)return si({fieldOrDatumDef:s,format:A.normalizedNumberFormat,formatType:A.normalizedNumberFormatType,expr:y,config:A});if(A.numberFormatType)return si({fieldOrDatumDef:s,format:A.numberFormat,formatType:A.numberFormatType,expr:y,config:A})}if(C==="temporal"&&A.timeFormatType&&ze(s)&&s.timeUnit===void 0)return si({fieldOrDatumDef:s,format:A.timeFormat,formatType:A.timeFormatType,expr:y,config:A})}if(Dt(s)){let $=(function(j){let{field:H,timeUnit:ee,format:ae,formatType:ne,rawTimeFormat:de,isUTCScale:he}=j;return!ee||ae?!ee&&ne?`${ne}(${H}, '${ae}')`:(ae=h.isString(ae)?ae:de,`${he?"utc":"time"}Format(${H}, '${ae}')`):(function(ge,Ee,Se){if(!ge)return;let Re=Z0(ge);return`${Se||Zd(ge)?"utc":"time"}Format(${Ee}, ${Re})`})(ee,H,he)})({field:R,timeUnit:ze(s)?Un(s.timeUnit)?.unit:void 0,format:d,formatType:A.timeFormatType,rawTimeFormat:A.timeFormat,isUTCScale:$i(s)&&s.scale?.type===Vt.UTC});return $?{signal:$}:void 0}return d=ff({type:C,specifiedFormat:d,config:A,normalizeStack:k}),ze(s)&&Jt(s.bin)?{signal:yo(R,Ge(s,{expr:y,binSuffix:"end"}),d,m,A)}:d||tc(s)==="quantitative"?{signal:`${nm(R,d)}`}:{signal:`isValid(${R}) ? ${R} : ""+${R}`}}function uy(l,s,d){return ze(l)?d?`${Ge(l,{expr:s,suffix:"end"})}-${Ge(l,{expr:s,suffix:"start"})}`:Ge(l,{expr:s}):(function(m){let{datum:y}=m;return Gs(y)?js(y):`${Be(y)}`})(l)}function si(l){let{fieldOrDatumDef:s,format:d,formatType:m,expr:y,normalizeStack:k,config:A,field:R}=l;return R??=uy(s,y,k),R!=="datum.value"&&ze(s)&&Jt(s.bin)?{signal:yo(R,Ge(s,{expr:y,binSuffix:"end"}),d,m,A)}:{signal:cy(m,R,d)}}function dy(l,s,d,m,y,k){if(!h.isString(m)||!Xs(m)){if(d===void 0&&m===void 0&&y.customFormatTypes&&tc(l)==="quantitative"&&(y.normalizedNumberFormatType&&nc(l)&&l.stack==="normalize"||y.numberFormatType))return;if(nc(l)&&l.stack==="normalize"&&y.normalizedNumberFormat)return ff({type:"quantitative",config:y,normalizeStack:!0});if(Dt(l)){let A=ze(l)?Un(l.timeUnit)?.unit:void 0;return A===void 0&&y.customFormatTypes&&y.timeFormatType?void 0:(function(R){let{specifiedFormat:C,timeUnit:$,config:j,omitTimeFormatConfig:H}=R;return C||($?{signal:Z0($)}:H?void 0:j.timeFormat)})({specifiedFormat:d,timeUnit:A,config:y,omitTimeFormatConfig:k})}return ff({type:s,specifiedFormat:d,config:y})}}function fy(l,s,d){return l&&(Je(l)||l==="number"||l==="time")?l:Dt(s)&&d!=="time"&&d!=="utc"?ze(s)&&Un(s?.timeUnit)?.utc?"utc":"time":void 0}function ff(l){let{type:s,specifiedFormat:d,config:m,normalizeStack:y}=l;return h.isString(d)?d:s===bo?y?m.normalizedNumberFormat:m.numberFormat:void 0}function nm(l,s){return`format(${l}, "${s||""}")`}function rm(l,s,d,m){return Xs(d)?cy(d,l,s):nm(l,(h.isString(s)?s:void 0)??m.numberFormat)}function yo(l,s,d,m,y){if(d===void 0&&m===void 0&&y.customFormatTypes&&y.numberFormatType)return yo(l,s,y.numberFormat,y.numberFormatType,y);let k=rm(l,d,m,y),A=rm(s,d,m,y);return`${lu(l,!1)} ? "null" : ${k} + "${Xk}" + ${A}`}let fu="min",am={x:1,y:1,color:1,fill:1,stroke:1,strokeWidth:1,size:1,shape:1,fillOpacity:1,strokeOpacity:1,opacity:1,text:1};function pf(l){return l in am}function im(l){return!!l?.encoding}function li(l){return l&&(l.op==="count"||!!l.field)}function pu(l){return l&&h.isArray(l)}function Ql(l){return"row"in l||"column"in l}function hf(l){return!!l&&"header"in l}function hu(l){return"facet"in l}function om(l){let{field:s,timeUnit:d,bin:m,aggregate:y}=l;return{...d?{timeUnit:d}:{},...m?{bin:m}:{},...y?{aggregate:y}:{},field:s}}function Zs(l){return"sort"in l}function Fi(l){let{fieldDef:s,fieldDef2:d,markDef:m,config:y}=l;if(St(s)&&s.bandPosition!==void 0)return s.bandPosition;if(ze(s)){let{timeUnit:k,bin:A}=s;if(k&&!d)return jr("timeUnitBandPosition",m,y);if(Jt(A))return .5}}function sm(l){let{channel:s,fieldDef:d,fieldDef2:m,markDef:y,config:k,scaleType:A,useVlSizeChannel:R}=l,C=Sr(s),$=Yt(R?"size":C,y,k,{vgChannel:C});if($!==void 0)return $;if(ze(d)){let{timeUnit:j,bin:H}=d;if(j&&!m)return{band:jr("timeUnitBandSize",y,k)};if(Jt(H)&&!zn(A))return{band:1}}return du(y.type)?A?zn(A)?k[y.type]?.discreteBandSize||{band:1}:k[y.type]?.continuousBandSize:k[y.type]?.discreteBandSize:void 0}function mf(l,s,d,m){return!!(Jt(l.bin)||l.timeUnit&&hr(l)&&l.type==="temporal")&&Fi({fieldDef:l,fieldDef2:s,markDef:d,config:m})!==void 0}function py(l){return l&&!!l.sort&&!l.field}function gf(l){return l&&"condition"in l}function bf(l){let s=l?.condition;return!!s&&!h.isArray(s)&&ze(s)}function ec(l){let s=l?.condition;return!!s&&!h.isArray(s)&&St(s)}function ze(l){return l&&(!!l.field||l.aggregate==="count")}function tc(l){return l?.type}function Pi(l){return l&&"datum"in l}function is(l){return hr(l)&&!rc(l)||yf(l)}function hy(l){return hr(l)&&l.type==="quantitative"&&!l.bin||yf(l)}function yf(l){return Pi(l)&&h.isNumber(l.datum)}function St(l){return ze(l)||Pi(l)}function hr(l){return l&&("field"in l||l.aggregate==="count")&&"type"in l}function ma(l){return l&&"value"in l&&"value"in l}function $i(l){return l&&("scale"in l||"sort"in l)}function nc(l){return l&&("axis"in l||"stack"in l||"impute"in l)}function lm(l){return l&&"legend"in l}function cm(l){return l&&("format"in l||"formatType"in l)}function my(l){return K(l,["legend","axis","header","scale"])}function Ge(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},d=l.field,m=s.prefix,y=s.suffix,k="";if((function(A){return A.aggregate==="count"})(l))d=oa("count");else{let A;if(!s.nofn)if((function(R){return"op"in R})(l))A=l.op;else{let{bin:R,aggregate:C,timeUnit:$}=l;Jt(R)?(A=Oi(R),y=(s.binSuffix??"")+(s.suffix??"")):C?Ni(C)?(k=`["${d}"]`,d=`argmax_${C.argmax}`):ri(C)?(k=`["${d}"]`,d=`argmin_${C.argmin}`):A=String(C):$&&!Ua($)&&(A=(function(j){let{utc:H,...ee}=Un(j);return ee.unit?(H?"utc":"")+we(ee).map((ae=>me(`${ae==="unit"?"":`_${ae}_`}${ee[ae]}`))).join(""):(H?"utc":"")+"timeunit"+we(ee).map((ae=>me(`_${ae}_${ee[ae]}`))).join("")})($),y=(!["range","mid"].includes(s.binSuffix)&&s.binSuffix||"")+(s.suffix??""))}A&&(d=d?`${A}_${d}`:A)}return y&&(d=`${d}_${y}`),m&&(d=`${m}_${d}`),s.forAs?Pt(d):s.expr?Bt(d,s.expr)+k:Ot(d)+k}function rc(l){switch(l.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return ze(l)&&!!l.bin;case"temporal":return!1}throw new Error(qd(l.type))}let gy=(l,s)=>{switch(s.fieldTitle){case"plain":return l.field;case"functional":return(function(d){let{aggregate:m,bin:y,timeUnit:k,field:A}=d;if(Ni(m))return`${A} for argmax(${m.argmax})`;if(ri(m))return`${A} for argmin(${m.argmin})`;let R=k&&!Ua(k)?Un(k):void 0,C=m||R?.unit||R?.maxbins&&"timeunit"||Jt(y)&&"bin";return C?`${C.toUpperCase()}(${A})`:A})(l);default:return(function(d,m){let{field:y,bin:k,timeUnit:A,aggregate:R}=d;if(R==="count")return m.countTitle;if(Jt(k))return`${y} (binned)`;if(A&&!Ua(A)){let C=Un(A)?.unit;if(C)return`${y} (${su(C).join("-")})`}else if(R)return Ni(R)?`${y} for max ${R.argmax}`:ri(R)?`${y} for min ${R.argmin}`:`${wt(R)} of ${y}`;return y})(l,s)}},um=gy;function mu(l){um=l}function os(l,s,d){let{allowDisabling:m,includeDefault:y=!0}=d,k=vf(l)?.title;if(!ze(l))return k??l.title;let A=l,R=y?Ef(A,s):void 0;return m?Tt(k,A.title,R):k??A.title??R}function vf(l){return nc(l)&&l.axis?l.axis:lm(l)&&l.legend?l.legend:hf(l)&&l.header?l.header:void 0}function Ef(l,s){return um(l,s)}function Js(l){if(cm(l)){let{format:s,formatType:d}=l;return{format:s,formatType:d}}{let s=vf(l)??{},{format:d,formatType:m}=s;return{format:d,formatType:m}}}function ga(l){return ze(l)?l:bf(l)?l.condition:void 0}function mn(l){return St(l)?l:ec(l)?l.condition:void 0}function dm(l,s,d){let m=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return h.isString(l)||h.isNumber(l)||h.isBoolean(l)?($e((function(y,k,A){return`Channel ${y} is a ${k}. Converted to {value: ${Be(A)}}.`})(s,h.isString(l)?"string":h.isNumber(l)?"number":"boolean",l)),{value:l}):St(l)?wf(l,s,d,m):ec(l)?{...l,condition:wf(l.condition,s,d,m)}:l}function wf(l,s,d,m){if(cm(l)){let{format:y,formatType:k,...A}=l;if(Xs(k)&&!d.customFormatTypes)return $e(Hd(s)),wf(A,s,d,m)}else{let y=nc(l)?"axis":lm(l)?"legend":hf(l)?"header":null;if(y&&l[y]){let{format:k,formatType:A,...R}=l[y];if(Xs(A)&&!d.customFormatTypes)return $e(Hd(s)),wf({...l,[y]:R},s,d,m)}}return ze(l)?ac(l,s,m):(function(y){let k=y.type;if(k)return y;let{datum:A}=y;return k=h.isNumber(A)?"quantitative":h.isString(A)?"nominal":Gs(A)?"temporal":void 0,{...y,type:k}})(l)}function ac(l,s){let{compositeMark:d=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{aggregate:m,timeUnit:y,bin:k,field:A}=l,R={...l};if(d||!m||En(m)||Ni(m)||ri(m)||($e((function(C){return`Invalid aggregation operator "${C}".`})(m)),delete R.aggregate),y&&(R.timeUnit=Un(y)),A&&(R.field=`${A}`),Jt(k)&&(R.bin=ut(k,s)),$n(k)&&!un(s)&&$e((function(C){return`Channel ${C} should not be used with "binned" bin.`})(s)),hr(R)){let{type:C}=R,$=(function(j){if(j)switch(j=j.toLowerCase()){case"q":case bo:return"quantitative";case"t":case rs:return"temporal";case"o":case rf:return"ordinal";case"n":case af:return"nominal";case Vs:return"geojson"}})(C);C!==$&&(R.type=$),C!=="quantitative"&&Ii(m)&&($e((function(j,H){return`Invalid field type "${j}" for aggregate: "${H}", using "quantitative" instead.`})(C,m)),R.type="quantitative")}else if(!Ti(s)){let C=(function($,j){switch(j){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(Zs($)&&h.isArray($.sort))return"ordinal";let{aggregate:H,bin:ee,timeUnit:ae}=$;if(ae)return"temporal";if(ee||H&&!Ni(H)&&!ri(H))return"quantitative";if($i($)&&$.scale?.type)switch(Wh[$.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"})(R,s);R.type=C}if(hr(R)){let{compatible:C,warning:$}=(function(j,H){let ee=j.type;if(ee==="geojson"&&H!=="shape")return{compatible:!1,warning:`Channel ${H} should not be used with a geojson data.`};switch(H){case We:case at:case Lt:return rc(j)?Qs:{compatible:!1,warning:Ph(H)};case et:case nt:case Ze:case on:case Fe:case xr:case ei:case Pl:case po:case Xc:case ti:case ft:case $l:case Ur:case la:case lt:case Fd:return Qs;case Br:case ca:case ot:case ur:return ee!==bo?{compatible:!1,warning:`Channel ${H} should be used with a quantitative field only, not ${j.type} field.`}:Qs;case Si:case Ut:case Ai:case fo:case xi:case uo:case Sn:case Xe:case Ke:return ee!=="nominal"||j.sort?Qs:{compatible:!1,warning:`Channel ${H} should not be used with an unsorted discrete field.`};case vn:case Zo:return rc(j)||$i(ae=j)&&Zl(ae.scale?.type)?Qs:{compatible:!1,warning:G0(H)};case Bs:return j.type!=="nominal"||"sort"in j?Qs:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}var ae})(R,s)||{};C===!1&&$e($)}if(Zs(R)&&h.isString(R.sort)){let{sort:C}=R;if(pf(C))return{...R,sort:{encoding:C}};let $=C.substr(1);if(C.charAt(0)==="-"&&pf($))return{...R,sort:{encoding:$,order:"descending"}}}if(hf(R)){let{header:C}=R;if(C){let{orient:$,...j}=C;if($)return{...R,header:{...j,labelOrient:C.labelOrient||$,titleOrient:C.titleOrient||$}}}}return R}function ut(l,s){return h.isBoolean(l)?{maxbins:ru(s)}:l==="binned"?{binned:!0}:l.maxbins||l.step?l:{...l,maxbins:ru(s)}}let Qs={compatible:!0};function Dt(l){let{formatType:s}=Js(l);return s==="time"||!s&&(d=l)&&(d.type==="temporal"||ze(d)&&!!d.timeUnit);var d}function ic(l,s){let{timeUnit:d,type:m,wrapTime:y,undefinedIfExprNotRequired:k}=s,A=d&&Un(d)?.unit,R,C=A||m==="temporal";return es(l)?R=l.expr:Je(l)?R=l.signal:Gs(l)?(C=!0,R=js(l)):(h.isString(l)||h.isNumber(l))&&C&&(R=`datetime(${Be(l)})`,(function($){return!!K0[$]})(A)&&(h.isNumber(l)&&l<1e4||h.isString(l)&&isNaN(Date.parse(l)))&&(R=js({[A]:l}))),R?y&&C?`time(${R})`:R:k?void 0:Be(l)}function gu(l,s){let{type:d}=l;return s.map((m=>{let y=ic(m,{timeUnit:ze(l)&&!Ua(l.timeUnit)?l.timeUnit:void 0,type:d,undefinedIfExprNotRequired:!0});return y!==void 0?{signal:y}:m}))}function oc(l,s){return Jt(l.bin)?Fa(s)&&["ordinal","nominal"].includes(l.type):(console.warn("Only call this method for binned field defs."),!1)}let ss={labelAlign:{part:"labels",vgProp:"align"},labelBaseline:{part:"labels",vgProp:"baseline"},labelColor:{part:"labels",vgProp:"fill"},labelFont:{part:"labels",vgProp:"font"},labelFontSize:{part:"labels",vgProp:"fontSize"},labelFontStyle:{part:"labels",vgProp:"fontStyle"},labelFontWeight:{part:"labels",vgProp:"fontWeight"},labelOpacity:{part:"labels",vgProp:"opacity"},labelOffset:null,labelPadding:null,gridColor:{part:"grid",vgProp:"stroke"},gridDash:{part:"grid",vgProp:"strokeDash"},gridDashOffset:{part:"grid",vgProp:"strokeDashOffset"},gridOpacity:{part:"grid",vgProp:"opacity"},gridWidth:{part:"grid",vgProp:"strokeWidth"},tickColor:{part:"ticks",vgProp:"stroke"},tickDash:{part:"ticks",vgProp:"strokeDash"},tickDashOffset:{part:"ticks",vgProp:"strokeDashOffset"},tickOpacity:{part:"ticks",vgProp:"opacity"},tickSize:null,tickWidth:{part:"ticks",vgProp:"strokeWidth"}};function sc(l){return l?.condition}let ls=["domain","grid","labels","ticks","title"],kf={grid:"grid",gridCap:"grid",gridColor:"grid",gridDash:"grid",gridDashOffset:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",aria:"main",description:"main",domain:"main",domainCap:"main",domainColor:"main",domainDash:"main",domainDashOffset:"main",domainOpacity:"main",domainWidth:"main",format:"main",formatType:"main",labelAlign:"main",labelAngle:"main",labelBaseline:"main",labelBound:"main",labelColor:"main",labelFlush:"main",labelFlushOffset:"main",labelFont:"main",labelFontSize:"main",labelFontStyle:"main",labelFontWeight:"main",labelLimit:"main",labelLineHeight:"main",labelOffset:"main",labelOpacity:"main",labelOverlap:"main",labelPadding:"main",labels:"main",labelSeparation:"main",maxExtent:"main",minExtent:"main",offset:"both",position:"main",tickCap:"main",tickColor:"main",tickDash:"main",tickDashOffset:"main",tickMinStep:"both",tickOffset:"both",tickOpacity:"main",tickRound:"both",ticks:"main",tickSize:"main",tickWidth:"both",title:"main",titleAlign:"main",titleAnchor:"main",titleAngle:"main",titleBaseline:"main",titleColor:"main",titleFont:"main",titleFontSize:"main",titleFontStyle:"main",titleFontWeight:"main",titleLimit:"main",titleLineHeight:"main",titleOpacity:"main",titlePadding:"main",titleX:"main",titleY:"main",encode:"both",scale:"both",tickBand:"both",tickCount:"both",tickExtra:"both",translate:"both",values:"both",zindex:"both"},bu={orient:1,aria:1,bandPosition:1,description:1,domain:1,domainCap:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridCap:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelLineHeight:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickBand:1,tickCap:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,translate:1,values:1,zindex:1},Zk={...bu,style:1,labelExpr:1,encoding:1};function by(l){return!!Zk[l]}let Qt=we({axis:1,axisBand:1,axisBottom:1,axisDiscrete:1,axisLeft:1,axisPoint:1,axisQuantitative:1,axisRight:1,axisTemporal:1,axisTop:1,axisX:1,axisXBand:1,axisXDiscrete:1,axisXPoint:1,axisXQuantitative:1,axisXTemporal:1,axisY:1,axisYBand:1,axisYDiscrete:1,axisYPoint:1,axisYQuantitative:1,axisYTemporal:1});function Bi(l){return"mark"in l}class _f{constructor(s,d){this.name=s,this.run=d}hasMatchingType(s){return!!Bi(s)&&(Li(d=s.mark)?d.type:d)===this.name;var d}}function Ui(l,s){let d=l&&l[s];return!!d&&(h.isArray(d)?te(d,(m=>!!m.field)):ze(d)||bf(d))}function vo(l,s){let d=l&&l[s];return!!d&&(h.isArray(d)?te(d,(m=>!!m.field)):ze(d)||Pi(d)||ec(d))}function yy(l,s){if(un(s)){let d=l[s];if((ze(d)||Pi(d))&&(Yl(d.type)||ze(d)&&d.timeUnit))return vo(l,Ul(s))}return!1}function fm(l){return te(x0,(s=>{if(Ui(l,s)){let d=l[s];if(h.isArray(d))return te(d,(m=>!!m.aggregate));{let m=ga(d);return m&&!!m.aggregate}}return!1}))}function vy(l,s){let d=[],m=[],y=[],k=[],A={};return yu(l,((R,C)=>{if(ze(R)){let{field:$,aggregate:j,bin:H,timeUnit:ee,...ae}=R;if(j||ee||H){let ne=vf(R),de=ne?.title,he=Ge(R,{forAs:!0}),ge={...de?[]:{title:os(R,s,{allowDisabling:!0})},...ae,field:he};if(j){let Ee;if(Ni(j)?(Ee="argmax",he=Ge({op:"argmax",field:j.argmax},{forAs:!0}),ge.field=`${he}.${$}`):ri(j)?(Ee="argmin",he=Ge({op:"argmin",field:j.argmin},{forAs:!0}),ge.field=`${he}.${$}`):j!=="boxplot"&&j!=="errorbar"&&j!=="errorband"&&(Ee=j),Ee){let Se={op:Ee,as:he};$&&(Se.field=$),k.push(Se)}}else if(d.push(he),hr(R)&&Jt(H)){if(m.push({bin:H,field:$,as:he}),d.push(Ge(R,{binSuffix:"end"})),oc(R,C)&&d.push(Ge(R,{binSuffix:"range"})),un(C)){let Ee={field:`${he}_end`};A[`${C}2`]=Ee}ge.bin="binned",Ti(C)||(ge.type=bo)}else if(ee&&!Ua(ee)){y.push({timeUnit:ee,field:$,as:he});let Ee=hr(R)&&R.type!==rs&&"time";Ee&&(C===Pl||C===ti?ge.formatType=Ee:(function(Se){return!!Ci[Se]})(C)?ge.legend={formatType:Ee,...ge.legend}:un(C)&&(ge.axis={formatType:Ee,...ge.axis}))}A[C]=ge}else d.push($),A[C]=l[C]}else A[C]=l[C]})),{bins:m,timeUnits:y,aggregate:k,groupby:d,encoding:A}}function xf(l,s,d){let m=Oh(s,d);if(!m)return!1;if(m==="binned"){let y=l[s===Xe?et:nt];return!!(ze(y)&&ze(l[s])&&$n(y.bin))}return!0}function ci(l,s){let d={};for(let m of we(l)){let y=dm(l[m],m,s,{compositeMark:!0});d[m]=y}return d}function yu(l,s,d){if(l)for(let m of we(l)){let y=l[m];if(h.isArray(y))for(let k of y)s.call(d,k,m);else s.call(d,y,m)}}function pm(l,s){return we(s).reduce(((d,m)=>{switch(m){case et:case nt:case ft:case Fd:case $l:case Xe:case Ke:case Ze:case on:case la:case uo:case lt:case Sn:case ot:case Br:case ur:case ca:case Pl:case vn:case Ur:case ti:return d;case Bs:if(l==="line"||l==="trail")return d;case po:case Xc:{let y=s[m];if(h.isArray(y)||ze(y))for(let k of h.array(y))k.aggregate||d.push(Ge(k,{}));return d}case xi:if(l==="trail")return d;case Fe:case xr:case ei:case Si:case Ut:case Ai:case Zo:case fo:{let y=ga(s[m]);return y&&!y.aggregate&&d.push(Ge(y,{})),d}}}),[])}function lc(l,s,d){let m=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3];return"tooltip"in d?{tooltip:d.tooltip}:{tooltip:[...l.map((y=>{let{fieldPrefix:k,titlePrefix:A}=y,R=m?` of ${vu(s)}`:"";return{field:k+s.field,type:s.type,title:Je(A)?{signal:`${A}"${escape(R)}"`}:A+R}})),...be((function(y){let k=[];for(let A of we(y))if(Ui(y,A)){let R=y[A],C=h.array(R);for(let $ of C)ze($)?k.push($):bf($)&&k.push($.condition)}return k})(d).map(my),V)]}}function vu(l){let{title:s,field:d}=l;return Tt(s,d)}function Sf(l,s,d,m,y){let{scale:k,axis:A}=d;return R=>{let{partName:C,mark:$,positionPrefix:j,endPositionPrefix:H,extraEncoding:ee={}}=R,ae=vu(d);return Af(l,C,y,{mark:$,encoding:{[s]:{field:`${j}_${d.field}`,type:d.type,...ae!==void 0?{title:ae}:{},...k!==void 0?{scale:k}:{},...A!==void 0?{axis:A}:{}},...h.isString(H)?{[`${s}2`]:{field:`${H}_${d.field}`}}:{},...m,...ee}})}}function Af(l,s,d,m){let{clip:y,color:k,opacity:A}=l,R=l.type;return l[s]||l[s]===void 0&&d[s]?[{...m,mark:{...d[s],...y?{clip:y}:{},...k?{color:k}:{},...A?{opacity:A}:{},...Li(m.mark)?m.mark:{type:m.mark},style:`${R}-${String(s)}`,...h.isBoolean(l[s])?{}:l[s]}}]:[]}function Ey(l,s,d){let{encoding:m}=l,y=s==="vertical"?"y":"x",k=m[y],A=m[`${y}2`],R=m[`${y}Error`],C=m[`${y}Error2`];return{continuousAxisChannelDef:Eu(k,d),continuousAxisChannelDef2:Eu(A,d),continuousAxisChannelDefError:Eu(R,d),continuousAxisChannelDefError2:Eu(C,d),continuousAxis:y}}function Eu(l,s){if(l?.aggregate){let{aggregate:d,...m}=l;return d!==s&&$e((function(y,k){return`Continuous axis should not have customized aggregation function ${y}; ${k} already agregates the axis.`})(d,s)),m}return l}function el(l,s){let{mark:d,encoding:m}=l,{x:y,y:k}=m;if(Li(d)&&d.orient)return d.orient;if(is(y)){if(is(k)){let A=ze(y)&&y.aggregate,R=ze(k)&&k.aggregate;if(A||R!==s){if(R||A!==s){if(A===s&&R===s)throw new Error("Both x and y cannot have aggregate");return Dt(k)&&!Dt(y)?"horizontal":"vertical"}return"horizontal"}return"vertical"}return"horizontal"}if(is(k))return"vertical";throw new Error(`Need a valid continuous axis for ${s}s`)}let cs="boxplot",Te=new _f(cs,hm);function tl(l){return h.isNumber(l)?"tukey":l}function hm(l,s){let{config:d}=s;l={...l,encoding:ci(l.encoding,d)};let{mark:m,encoding:y,params:k,projection:A,...R}=l,C=Li(m)?m:{type:m};k&&$e(Hr("boxplot"));let $=C.extent??d.boxplot.extent,j=Yt("size",C,d),H=C.invalid,ee=tl($),{bins:ae,timeUnits:ne,transform:de,continuousAxisChannelDef:he,continuousAxis:ge,groupby:Ee,aggregate:Se,encodingWithoutContinuousAxis:Re,ticksOrient:Pe,boxOrient:qe,customTooltipWithoutAggregatedField:st}=(function(ld,nb,Mo){let Rc=el(ld,cs),{continuousAxisChannelDef:rb,continuousAxis:ab}=Ey(ld,Rc,cs),bn=rb.field,Ss=tl(nb),cd=[...mm(bn),{op:"median",field:bn,as:`mid_box_${bn}`},{op:"min",field:bn,as:(Ss==="min-max"?"lower_whisker_":"min_")+bn},{op:"max",field:bn,as:(Ss==="min-max"?"upper_whisker_":"max_")+bn}],Dp=Ss==="min-max"||Ss==="tukey"?[]:[{calculate:`datum["upper_box_${bn}"] - datum["lower_box_${bn}"]`,as:`iqr_${bn}`},{calculate:`min(datum["upper_box_${bn}"] + datum["iqr_${bn}"] * ${nb}, datum["max_${bn}"])`,as:`upper_whisker_${bn}`},{calculate:`max(datum["lower_box_${bn}"] - datum["iqr_${bn}"] * ${nb}, datum["min_${bn}"])`,as:`lower_whisker_${bn}`}],{[ab]:iT,...x_}=ld.encoding,{customTooltipWithoutAggregatedField:S_,filteredEncoding:A_}=(function(Cn){let{tooltip:Lo,...vl}=Cn;if(!Lo)return{filteredEncoding:vl};let El,ro;if(h.isArray(Lo)){for(let wl of Lo)wl.aggregate?(El||(El=[]),El.push(wl)):(ro||(ro=[]),ro.push(wl));El&&(vl.tooltip=El)}else Lo.aggregate?vl.tooltip=Lo:ro=Lo;return h.isArray(ro)&&ro.length===1&&(ro=ro[0]),{customTooltipWithoutAggregatedField:ro,filteredEncoding:vl}})(x_),{bins:Cv,timeUnits:Nv,aggregate:Iv,groupby:Mp,encoding:Cc}=vy(A_,Mo),Ov=Rc==="vertical"?"horizontal":"vertical",Dv=Rc,ib=[...Cv,...Nv,{aggregate:[...Iv,...cd],groupby:Mp},...Dp];return{bins:Cv,timeUnits:Nv,transform:ib,groupby:Mp,aggregate:Iv,continuousAxisChannelDef:rb,continuousAxis:ab,encodingWithoutContinuousAxis:Cc,ticksOrient:Ov,boxOrient:Dv,customTooltipWithoutAggregatedField:S_}})(l,$,d),{color:mt,size:it,...Qe}=Re,Ct=ld=>Sf(C,ge,he,ld,d.boxplot),Ht=Ct(Qe),Mn=Ct(Re),wn=Ct({...Qe,...it?{size:it}:{}}),kn=lc([{fieldPrefix:ee==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:ee==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],he,Re),qt={type:"tick",color:"black",opacity:1,orient:Pe,invalid:H,aria:!1},Ft=ee==="min-max"?kn:lc([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],he,Re),gn=[...Ht({partName:"rule",mark:{type:"rule",invalid:H,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:Ft}),...Ht({partName:"rule",mark:{type:"rule",invalid:H,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:Ft}),...Ht({partName:"ticks",mark:qt,positionPrefix:"lower_whisker",extraEncoding:Ft}),...Ht({partName:"ticks",mark:qt,positionPrefix:"upper_whisker",extraEncoding:Ft})],Rn=[...ee!=="tukey"?gn:[],...Mn({partName:"box",mark:{type:"bar",...j?{size:j}:{},orient:qe,invalid:H,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:kn}),...wn({partName:"median",mark:{type:"tick",invalid:H,...h.isObject(d.boxplot.median)&&d.boxplot.median.color?{color:d.boxplot.median.color}:{},...j?{size:j}:{},orient:Pe,aria:!1},positionPrefix:"mid_box",extraEncoding:kn})];if(ee==="min-max")return{...R,transform:(R.transform??[]).concat(de),layer:Rn};let fn=`datum["lower_box_${he.field}"]`,Or=`datum["upper_box_${he.field}"]`,Dr=`(${Or} - ${fn})`,qa=`${fn} - ${$} * ${Dr}`,Vn=`${Or} + ${$} * ${Dr}`,or=`datum["${he.field}"]`,ln={joinaggregate:mm(he.field),groupby:Ee},At={transform:[{filter:`(${qa} <= ${or}) && (${or} <= ${Vn})`},{aggregate:[{op:"min",field:he.field,as:`lower_whisker_${he.field}`},{op:"max",field:he.field,as:`upper_whisker_${he.field}`},{op:"min",field:`lower_box_${he.field}`,as:`lower_box_${he.field}`},{op:"max",field:`upper_box_${he.field}`,as:`upper_box_${he.field}`},...Se],groupby:Ee}],layer:gn},{tooltip:Zr,...xs}=Qe,{scale:no,axis:Tc}=he,Jr=vu(he),Ea=K(Tc,["title"]),mr=Af(C,"outliers",d.boxplot,{transform:[{filter:`(${or} < ${qa}) || (${or} > ${Vn})`}],mark:"point",encoding:{[ge]:{field:he.field,type:he.type,...Jr!==void 0?{title:Jr}:{},...no!==void 0?{scale:no}:{},...ye(Ea)?{}:{axis:Ea}},...xs,...mt?{color:mt}:{},...st?{tooltip:st}:{}}})[0],yi,Do=[...ae,...ne,ln];return mr?yi={transform:Do,layer:[mr,At]}:(yi=At,yi.transform.unshift(...Do)),{...R,layer:[yi,{transform:de,layer:Rn}]}}function mm(l){return[{op:"q1",field:l,as:`lower_box_${l}`},{op:"q3",field:l,as:`upper_box_${l}`}]}let Tf="errorbar",gm=new _f(Tf,Rf);function Rf(l,s){let{config:d}=s;l={...l,encoding:ci(l.encoding,d)};let{transform:m,continuousAxisChannelDef:y,continuousAxis:k,encodingWithoutContinuousAxis:A,ticksOrient:R,markDef:C,outerSpec:$,tooltipEncoding:j}=ym(l,Tf,d);delete A.size;let H=Sf(C,k,y,A,d.errorbar),ee=C.thickness,ae=C.size,ne={type:"tick",orient:R,aria:!1,...ee!==void 0?{thickness:ee}:{},...ae!==void 0?{size:ae}:{}},de=[...H({partName:"ticks",mark:ne,positionPrefix:"lower",extraEncoding:j}),...H({partName:"ticks",mark:ne,positionPrefix:"upper",extraEncoding:j}),...H({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...ee!==void 0?{size:ee}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:j})];return{...$,transform:m,...de.length>1?{layer:de}:{...de[0]}}}function bm(l,s){let{encoding:d}=l;if((function(R){return(St(R.x)||St(R.y))&&!St(R.x2)&&!St(R.y2)&&!St(R.xError)&&!St(R.xError2)&&!St(R.yError)&&!St(R.yError2)})(d))return{orient:el(l,s),inputType:"raw"};let m=(function(R){return St(R.x2)||St(R.y2)})(d),y=(function(R){return St(R.xError)||St(R.xError2)||St(R.yError)||St(R.yError2)})(d),k=d.x,A=d.y;if(m){if(y)throw new Error(`${s} cannot be both type aggregated-upper-lower and aggregated-error`);let R=d.x2,C=d.y2;if(St(R)&&St(C))throw new Error(`${s} cannot have both x2 and y2`);if(St(R)){if(is(k))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${s}`)}if(St(C)){if(is(A))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${s}`)}throw new Error("No ranged axis")}{let R=d.xError,C=d.xError2,$=d.yError,j=d.yError2;if(St(C)&&!St(R))throw new Error(`${s} cannot have xError2 without xError`);if(St(j)&&!St($))throw new Error(`${s} cannot have yError2 without yError`);if(St(R)&&St($))throw new Error(`${s} cannot have both xError and yError with both are quantiative`);if(St(R)){if(is(k))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(St($)){if(is(A))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}}function ym(l,s,d){let{mark:m,encoding:y,params:k,projection:A,...R}=l,C=Li(m)?m:{type:m};k&&$e(Hr(s));let{orient:$,inputType:j}=bm(l,s),{continuousAxisChannelDef:H,continuousAxisChannelDef2:ee,continuousAxisChannelDefError:ae,continuousAxisChannelDefError2:ne,continuousAxis:de}=Ey(l,$,s),{errorBarSpecificAggregate:he,postAggregateCalculates:ge,tooltipSummary:Ee,tooltipTitleWithFieldName:Se}=(function(Ft,gn,Rn,fn,Or,Dr,qa,Vn){let or=[],ln=[],At=gn.field,Zr,xs=!1;if(Dr==="raw"){let Jr=Ft.center?Ft.center:Ft.extent?Ft.extent==="iqr"?"median":"mean":Vn.errorbar.center,Ea=Ft.extent?Ft.extent:Jr==="mean"?"stderr":"iqr";if(Jr==="median"!=(Ea==="iqr")&&$e((function(mr,yi,Do){return`${mr} is not usually used with ${yi} for ${Do}.`})(Jr,Ea,qa)),Ea==="stderr"||Ea==="stdev")or=[{op:Ea,field:At,as:`extent_${At}`},{op:Jr,field:At,as:`center_${At}`}],ln=[{calculate:`datum["center_${At}"] + datum["extent_${At}"]`,as:`upper_${At}`},{calculate:`datum["center_${At}"] - datum["extent_${At}"]`,as:`lower_${At}`}],Zr=[{fieldPrefix:"center_",titlePrefix:wt(Jr)},{fieldPrefix:"upper_",titlePrefix:vm(Jr,Ea,"+")},{fieldPrefix:"lower_",titlePrefix:vm(Jr,Ea,"-")}],xs=!0;else{let mr,yi,Do;Ea==="ci"?(mr="mean",yi="ci0",Do="ci1"):(mr="median",yi="q1",Do="q3"),or=[{op:yi,field:At,as:`lower_${At}`},{op:Do,field:At,as:`upper_${At}`},{op:mr,field:At,as:`center_${At}`}],Zr=[{fieldPrefix:"upper_",titlePrefix:os({field:At,aggregate:Do,type:"quantitative"},Vn,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:os({field:At,aggregate:yi,type:"quantitative"},Vn,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:os({field:At,aggregate:mr,type:"quantitative"},Vn,{allowDisabling:!1})}]}}else{(Ft.center||Ft.extent)&&$e((no=Ft.center,`${(Tc=Ft.extent)?"extent ":""}${Tc&&no?"and ":""}${no?"center ":""}${Tc&&no?"are ":"is "}not needed when data are aggregated.`)),Dr==="aggregated-upper-lower"?(Zr=[],ln=[{calculate:`datum["${Rn.field}"]`,as:`upper_${At}`},{calculate:`datum["${At}"]`,as:`lower_${At}`}]):Dr==="aggregated-error"&&(Zr=[{fieldPrefix:"",titlePrefix:At}],ln=[{calculate:`datum["${At}"] + datum["${fn.field}"]`,as:`upper_${At}`}],Or?ln.push({calculate:`datum["${At}"] + datum["${Or.field}"]`,as:`lower_${At}`}):ln.push({calculate:`datum["${At}"] - datum["${fn.field}"]`,as:`lower_${At}`}));for(let Jr of ln)Zr.push({fieldPrefix:Jr.as.substring(0,6),titlePrefix:_t(_t(Jr.calculate,'datum["',""),'"]',"")})}var no,Tc;return{postAggregateCalculates:ln,errorBarSpecificAggregate:or,tooltipSummary:Zr,tooltipTitleWithFieldName:xs}})(C,H,ee,ae,ne,j,s,d),{[de]:Re,[de==="x"?"x2":"y2"]:Pe,[de==="x"?"xError":"yError"]:qe,[de==="x"?"xError2":"yError2"]:st,...mt}=y,{bins:it,timeUnits:Qe,aggregate:Ct,groupby:Ht,encoding:Mn}=vy(mt,d),wn=[...Ct,...he],kn=j!=="raw"?[]:Ht,qt=lc(Ee,H,Mn,Se);return{transform:[...R.transform??[],...it,...Qe,...wn.length===0?[]:[{aggregate:wn,groupby:kn}],...ge],groupby:kn,continuousAxisChannelDef:H,continuousAxis:de,encodingWithoutContinuousAxis:Mn,ticksOrient:$==="vertical"?"horizontal":"vertical",markDef:C,outerSpec:R,tooltipEncoding:qt}}function vm(l,s,d){return`${wt(l)} ${d} ${s}`}let Cf="errorband",wy=new _f(Cf,ky);function ky(l,s){let{config:d}=s;l={...l,encoding:ci(l.encoding,d)};let{transform:m,continuousAxisChannelDef:y,continuousAxis:k,encodingWithoutContinuousAxis:A,markDef:R,outerSpec:C,tooltipEncoding:$}=ym(l,Cf,d),j=R,H=Sf(j,k,y,A,d.errorband),ee=l.encoding.x!==void 0&&l.encoding.y!==void 0,ae={type:ee?"area":"rect"},ne={type:ee?"line":"rule"},de={...j.interpolate?{interpolate:j.interpolate}:{},...j.tension&&j.interpolate?{tension:j.tension}:{}};return ee?(ae={...ae,...de,ariaRoleDescription:"errorband"},ne={...ne,...de,aria:!1}):j.interpolate?$e(Yd("interpolate")):j.tension&&$e(Yd("tension")),{...C,transform:m,layer:[...H({partName:"band",mark:ae,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:$}),...H({partName:"borders",mark:ne,positionPrefix:"lower",extraEncoding:$}),...H({partName:"borders",mark:ne,positionPrefix:"upper",extraEncoding:$})]}}let cc={};function uc(l,s,d){let m=new _f(l,s);cc[l]={normalizer:m,parts:d}}uc(cs,hm,["box","median","outliers","rule","ticks"]),uc(Tf,Rf,["ticks","rule"]),uc(Cf,ky,["band","borders"]);let Em=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],wu={titleAlign:"align",titleAnchor:"anchor",titleAngle:"angle",titleBaseline:"baseline",titleColor:"color",titleFont:"font",titleFontSize:"fontSize",titleFontStyle:"fontStyle",titleFontWeight:"fontWeight",titleLimit:"limit",titleLineHeight:"lineHeight",titleOrient:"orient",titlePadding:"offset"},ku={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelBaseline:"baseline",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelLimit:"limit",labelLineHeight:"lineHeight",labelOrient:"orient",labelPadding:"offset"},wm=we(wu),km=we(ku),Nf=we({header:1,headerRow:1,headerColumn:1,headerFacet:1}),If=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],ba="_vgsid_",_m={point:{on:"click",fields:[ba],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[pointerdown, window:pointerup] > window:pointermove!",encodings:["x","y"],translate:"[pointerdown, window:pointerup] > window:pointermove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function Of(l){return l==="legend"||!!l?.legend}function Df(l){return Of(l)&&h.isObject(l)}function _u(l){return!!l?.select}function Mf(l){let s=[];for(let d of l||[]){if(_u(d))continue;let{expr:m,bind:y,...k}=d;if(y&&m){let A={...k,bind:y,init:m};s.push(A)}else{let A={...k,...m?{update:m}:{},...y?{bind:y}:{}};s.push(A)}}return s}function xu(l){return"concat"in l}function dc(l){return"vconcat"in l}function Lf(l){return"hconcat"in l}function Ff(l){let{step:s,offsetIsDiscrete:d}=l;return d?s.for??"offset":"position"}function Wr(l){return h.isObject(l)&&l.step!==void 0}function Su(l){return l.view||l.width||l.height}let Au=we({align:1,bounds:1,center:1,columns:1,spacing:1});function us(l,s){return l[s]??l[s==="width"?"continuousWidth":"continuousHeight"]}function fc(l,s){let d=Tu(l,s);return Wr(d)?d.step:xm}function Tu(l,s){return Tt(l[s]??l[s==="width"?"discreteWidth":"discreteHeight"],{step:l.step})}let xm=20,_y={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:xm},mark:{color:"#4c78a8",invalid:"filter",timeUnitBandSize:1},arc:{},area:{},bar:Yk,circle:{},geoshape:{},image:{},line:{},point:{},rect:ly,rule:{color:"black"},square:{},text:{color:"black"},tick:{thickness:1},trail:{},boxplot:{size:14,extent:1.5,box:{},median:{color:"white"},outliers:{},rule:{},ticks:null},errorbar:{center:"mean",rule:!0,ticks:!1},errorband:{band:{opacity:.3},borders:!1},scale:{pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,bandWithNestedOffsetPaddingInner:.2,bandWithNestedOffsetPaddingOuter:.2,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:9,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4,zero:!0},projection:{},legend:{gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:_m,style:{},title:{},facet:{spacing:20},concat:{spacing:20},normalizedNumberFormat:".0%"},ui=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],Sm={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},xy={blue:ui[0],orange:ui[1],red:ui[2],teal:ui[3],green:ui[4],yellow:ui[5],purple:ui[6],pink:ui[7],brown:ui[8],gray0:"#000",gray1:"#111",gray2:"#222",gray3:"#333",gray4:"#444",gray5:"#555",gray6:"#666",gray7:"#777",gray8:"#888",gray9:"#999",gray10:"#aaa",gray11:"#bbb",gray12:"#ccc",gray13:"#ddd",gray14:"#eee",gray15:"#fff"};function Am(l){let s=we(l||{}),d={};for(let m of s){let y=l[m];d[m]=sc(y)?L0(y):Bn(y)}return d}let Sy=[...Zh,...Qt,...Nf,"background","padding","legend","lineBreak","scale","style","title","view"];function Tm(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{color:s,font:d,fontSize:m,selection:y,...k}=l,A=h.mergeConfig({},U(_y),d?(function(C){return{text:{font:C},style:{"guide-label":{font:C},"guide-title":{font:C},"group-title":{font:C},"group-subtitle":{font:C}}}})(d):{},s?(function(){let C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return{signals:[{name:"color",value:h.isObject(C)?{...xy,...C}:xy}],mark:{color:{signal:"color.blue"}},rule:{color:{signal:"color.gray0"}},text:{color:{signal:"color.gray0"}},style:{"guide-label":{fill:{signal:"color.gray0"}},"guide-title":{fill:{signal:"color.gray0"}},"group-title":{fill:{signal:"color.gray0"}},"group-subtitle":{fill:{signal:"color.gray0"}},cell:{stroke:{signal:"color.gray8"}}},axis:{domainColor:{signal:"color.gray13"},gridColor:{signal:"color.gray8"},tickColor:{signal:"color.gray13"}},range:{category:[{signal:"color.blue"},{signal:"color.orange"},{signal:"color.red"},{signal:"color.teal"},{signal:"color.green"},{signal:"color.yellow"},{signal:"color.purple"},{signal:"color.pink"},{signal:"color.brown"},{signal:"color.grey8"}]}}})(s):{},m?(function(C){return{signals:[{name:"fontSize",value:h.isObject(C)?{...Sm,...C}:Sm}],text:{fontSize:{signal:"fontSize.text"}},style:{"guide-label":{fontSize:{signal:"fontSize.guideLabel"}},"guide-title":{fontSize:{signal:"fontSize.guideTitle"}},"group-title":{fontSize:{signal:"fontSize.groupTitle"}},"group-subtitle":{fontSize:{signal:"fontSize.groupSubtitle"}}}}})(m):{},k||{});y&&h.writeConfig(A,"selection",y,!0);let R=K(A,Sy);for(let C of["background","lineBreak","padding"])A[C]&&(R[C]=Bn(A[C]));for(let C of Zh)A[C]&&(R[C]=Jn(A[C]));for(let C of Qt)A[C]&&(R[C]=Am(A[C]));for(let C of Nf)A[C]&&(R[C]=Jn(A[C]));return A.legend&&(R.legend=Jn(A.legend)),A.scale&&(R.scale=Jn(A.scale)),A.style&&(R.style=(function(C){let $=we(C),j={};for(let H of $)j[H]=Am(C[H]);return j})(A.style)),A.title&&(R.title=Jn(A.title)),A.view&&(R.view=Jn(A.view)),R}let Jk=new Set(["view",...qk]),Qk=["color","fontSize","background","padding","facet","concat","numberFormat","numberFormatType","normalizedNumberFormat","normalizedNumberFormatType","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],e_={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],line:["point"],tick:["bandSize","thickness"]};function Pf(l){l=U(l);for(let s of Qk)delete l[s];if(l.axis)for(let s in l.axis)sc(l.axis[s])&&delete l.axis[s];if(l.legend)for(let s of Em)delete l.legend[s];if(l.mark){for(let s of sy)delete l.mark[s];l.mark.tooltip&&h.isObject(l.mark.tooltip)&&delete l.mark.tooltip}l.params&&(l.signals=(l.signals||[]).concat(Mf(l.params)),delete l.params);for(let s of Jk){for(let m of sy)delete l[s][m];let d=e_[s];if(d)for(let m of d)delete l[s][m];t_(l,s)}for(let s of we(cc))delete l[s];(function(s){let{titleMarkConfig:d,subtitleMarkConfig:m,subtitle:y}=au(s.title);ye(d)||(s.style["group-title"]={...s.style["group-title"],...d}),ye(m)||(s.style["group-subtitle"]={...s.style["group-subtitle"],...m}),ye(y)?delete s.title:s.title=y})(l);for(let s in l)h.isObject(l[s])&&ye(l[s])&&delete l[s];return ye(l)?void 0:l}function t_(l,s,d,m){s==="view"&&(d="cell");let y={...m?l[s][m]:l[s],...l.style[d??s]};ye(y)||(l.style[d??s]=y),m||delete l[s]}function pc(l){return"layer"in l}class $f{map(s,d){return hu(s)?this.mapFacet(s,d):(function(m){return"repeat"in m})(s)?this.mapRepeat(s,d):Lf(s)?this.mapHConcat(s,d):dc(s)?this.mapVConcat(s,d):xu(s)?this.mapConcat(s,d):this.mapLayerOrUnit(s,d)}mapLayerOrUnit(s,d){if(pc(s))return this.mapLayer(s,d);if(Bi(s))return this.mapUnit(s,d);throw new Error(Lh(s))}mapLayer(s,d){return{...s,layer:s.layer.map((m=>this.mapLayerOrUnit(m,d)))}}mapHConcat(s,d){return{...s,hconcat:s.hconcat.map((m=>this.map(m,d)))}}mapVConcat(s,d){return{...s,vconcat:s.vconcat.map((m=>this.map(m,d)))}}mapConcat(s,d){let{concat:m,...y}=s;return{...y,concat:m.map((k=>this.map(k,d)))}}mapFacet(s,d){return{...s,spec:this.map(s.spec,d)}}mapRepeat(s,d){return{...s,spec:this.map(s.spec,d)}}}let Rm={zero:1,center:1,normalize:1},n_=new Set([Yh,sf,of,cf,lf,uf,Xh,uu,iy,Kh]),Ru=new Set([sf,of,Yh]);function zi(l){return ze(l)&&tc(l)==="quantitative"&&!l.bin}function Cm(l,s,d){let{orient:m,type:y}=d,k=s==="x"?"y":"radius",A=s==="x",R=l[s],C=l[k];if(ze(R)&&ze(C))if(zi(R)&&zi(C)){if(R.stack)return s;if(C.stack)return k;let $=ze(R)&&!!R.aggregate;if($!==(ze(C)&&!!C.aggregate))return $?s:k;if(A&&["bar","area"].includes(y)){if(m==="vertical")return k;if(m==="horizontal")return s}}else{if(zi(R))return s;if(zi(C))return k}else{if(zi(R))return s;if(zi(C))return k}}function Nm(l,s){let d=Li(l)?l:{type:l},m=d.type;if(!n_.has(m))return null;let y=Cm(s,"x",d)||Cm(s,"theta",d);if(!y)return null;let k=s[y],A=ze(k)?Ge(k,{}):void 0,R=(function(he){switch(he){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}})(y),C=[],$=new Set;if(s[R]){let he=s[R],ge=ze(he)?Ge(he,{}):void 0;ge&&ge!==A&&(C.push(R),$.add(ge))}let j=R==="x"?"xOffset":"yOffset",H=s[j],ee=ze(H)?Ge(H,{}):void 0;ee&&ee!==A&&(C.push(j),$.add(ee));let ae=zs.reduce(((he,ge)=>{if(ge!=="tooltip"&&Ui(s,ge)){let Ee=s[ge];for(let Se of h.array(Ee)){let Re=ga(Se);if(Re.aggregate)continue;let Pe=Ge(Re,{});Pe&&$.has(Pe)||he.push({channel:ge,fieldDef:Re})}}return he}),[]),ne;return k.stack!==void 0?ne=h.isBoolean(k.stack)?k.stack?"zero":null:k.stack:Ru.has(m)&&(ne="zero"),ne&&ne in Rm?fm(s)&&ae.length===0?null:k?.scale?.type&&k?.scale?.type!==Vt.LINEAR?(k?.stack&&$e((function(he){return`Cannot stack non-linear scale (${he}).`})(k.scale.type)),null):St(s[Ri(y)])?(k.stack!==void 0&&$e(`Cannot stack "${de=y}" if there is already "${de}2".`),null):(ze(k)&&k.aggregate&&!Pa.has(k.aggregate)&&$e(`Stacking is applied even though the aggregate function is non-summative ("${k.aggregate}").`),{groupbyChannels:C,groupbyFields:$,fieldChannel:y,impute:k.impute!==null&&as(m),stackBy:ae,offset:ne}):null;var de}function Ay(l,s,d){let m=Jn(l),y=Yt("orient",m,d);if(m.orient=(function(k,A,R){switch(k){case lf:case uf:case Xh:case iy:case jk:case Gk:return}let{x:C,y:$,x2:j,y2:H}=A;switch(k){case sf:if(ze(C)&&($n(C.bin)||ze($)&&$.aggregate&&!C.aggregate))return"vertical";if(ze($)&&($n($.bin)||ze(C)&&C.aggregate&&!$.aggregate))return"horizontal";if(H||j){if(R)return R;if(!j)return(ze(C)&&C.type===bo&&!Jt(C.bin)||yf(C))&&ze($)&&$n($.bin)?"horizontal":"vertical";if(!H)return(ze($)&&$.type===bo&&!Jt($.bin)||yf($))&&ze(C)&&$n(C.bin)?"vertical":"horizontal"}case cf:if(j&&(!ze(C)||!$n(C.bin))&&H&&(!ze($)||!$n($.bin)))return;case of:if(H)return ze($)&&$n($.bin)?"horizontal":"vertical";if(j)return ze(C)&&$n(C.bin)?"vertical":"horizontal";if(k===cf){if(C&&!$)return"vertical";if($&&!C)return"horizontal"}case uu:case Kh:{let ee=hy(C),ae=hy($);if(R)return R;if(ee&&!ae)return k!=="tick"?"horizontal":"vertical";if(!ee&&ae)return k!=="tick"?"vertical":"horizontal";if(ee&&ae)return"vertical";{let ne=hr(C)&&C.type===rs,de=hr($)&&$.type===rs;if(ne&&!de)return"vertical";if(!ne&&de)return"horizontal"}return}}return"vertical"})(m.type,s,y),y!==void 0&&y!==m.orient&&$e(`Specified orient "${m.orient}" overridden with "${y}".`),m.type==="bar"&&m.orient){let k=Yt("cornerRadiusEnd",m,d);if(k!==void 0){let A=m.orient==="horizontal"&&s.x2||m.orient==="vertical"&&s.y2?["cornerRadius"]:Vk[m.orient];for(let R of A)m[R]=k;m.cornerRadiusEnd!==void 0&&delete m.cornerRadiusEnd}}return Yt("opacity",m,d)===void 0&&(m.opacity=(function(k,A){if(Y([lf,Kh,uf,Xh],k)&&!fm(A))return .7})(m.type,s)),Yt("cursor",m,d)===void 0&&(m.cursor=(function(k,A,R){return A.href||k.href||Yt("href",k,R)?"pointer":k.cursor})(m,s,d)),m}function r_(l){let{point:s,line:d,...m}=l;return we(m).length>1?m:m.type}function a_(l){for(let s of["line","area","rule","trail"])l[s]&&(l={...l,[s]:K(l[s],["point","line"])});return l}function Im(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},d=arguments.length>2?arguments[2]:void 0;return l.point==="transparent"?{opacity:0}:l.point?h.isObject(l.point)?l.point:{}:l.point!==void 0?null:s.point||d.shape?h.isObject(s.point)?s.point:{}:void 0}function Om(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return l.line?l.line===!0?{}:l.line:l.line!==void 0?null:s.line?s.line===!0?{}:s.line:void 0}class Dm{constructor(){ct(this,"name","path-overlay")}hasMatchingType(s,d){if(Bi(s)){let{mark:m,encoding:y}=s,k=Li(m)?m:{type:m};switch(k.type){case"line":case"rule":case"trail":return!!Im(k,d[k.type],y);case"area":return!!Im(k,d[k.type],y)||!!Om(k,d[k.type])}}return!1}run(s,d,m){let{config:y}=d,{params:k,projection:A,mark:R,name:C,encoding:$,...j}=s,H=ci($,y),ee=Li(R)?R:{type:R},ae=Im(ee,y[ee.type],H),ne=ee.type==="area"&&Om(ee,y[ee.type]),de=[{name:C,...k?{params:k}:{},mark:r_({...ee.type==="area"&&ee.opacity===void 0&&ee.fillOpacity===void 0?{opacity:.7}:{},...ee}),encoding:K(H,["shape"])}],he=Nm(Ay(ee,H,y),H),ge=H;if(he){let{fieldChannel:Ee,offset:Se}=he;ge={...H,[Ee]:{...H[Ee],...Se?{stack:Se}:{}}}}return ge=K(ge,["y2","x2"]),ne&&de.push({...A?{projection:A}:{},mark:{type:"line",...J(ee,["clip","interpolate","tension","tooltip"]),...ne},encoding:ge}),ae&&de.push({...A?{projection:A}:{},mark:{type:"point",opacity:1,filled:!0,...J(ee,["clip","tooltip"]),...ae},encoding:ge}),m({...j,layer:de},{...d,config:a_(y)})}}function nr(l,s){return s?Ql(l)?Ty(l,s):Mm(l,s):l}function Gi(l,s){return s?Ty(l,s):l}function Cu(l,s,d){let m=s[l];return(y=m)&&!h.isString(y)&&"repeat"in y?m.repeat in d?{...s,[l]:d[m.repeat]}:void $e((function(k){return`Unknown repeated value "${k}".`})(m.repeat)):s;var y}function Mm(l,s){if((l=Cu("field",l,s))!==void 0){if(l===null)return null;if(Zs(l)&&li(l.sort)){let d=Cu("field",l.sort,s);l={...l,...d?{sort:d}:{}}}return l}}function Bf(l,s){if(ze(l))return Mm(l,s);{let d=Cu("datum",l,s);return d===l||d.type||(d.type="nominal"),d}}function Lm(l,s){if(!St(l)){if(ec(l)){let d=Bf(l.condition,s);if(d)return{...l,condition:d};{let{condition:m,...y}=l;return y}}return l}{let d=Bf(l,s);if(d)return d;if(gf(l))return{condition:l.condition}}}function Ty(l,s){let d={};for(let m in l)if(h.hasOwnProperty(l,m)){let y=l[m];if(h.isArray(y))d[m]=y.map((k=>Lm(k,s))).filter((k=>k));else{let k=Lm(y,s);k!==void 0&&(d[m]=k)}}return d}class Fm{constructor(){ct(this,"name","RuleForRangedLine")}hasMatchingType(s){if(Bi(s)){let{encoding:d,mark:m}=s;if(m==="line"||Li(m)&&m.type==="line")for(let y of wk){let k=d[Us(y)];if(d[y]&&(ze(k)&&!$n(k.bin)||Pi(k)))return!0}}return!1}run(s,d,m){let{encoding:y,mark:k}=s;var A,R;return $e((A=!!y.x2,R=!!y.y2,`Line mark is for continuous lines and thus cannot be used with ${A&&R?"x2 and y2":A?"x2":"y2"}. We will use the rule mark (line segments) instead.`)),m({...s,mark:h.isObject(k)?{...k,type:"rule"}:"rule"},d)}}function Uf(l){let{parentEncoding:s,encoding:d={},layer:m}=l,y={};if(s){let k=new Set([...we(s),...we(d)]);for(let A of k){let R=d[A],C=s[A];if(St(R)){let $={...C,...R};y[A]=$}else ec(R)?y[A]={...R,condition:{...C,...R.condition}}:R||R===null?y[A]=R:(m||ma(C)||Je(C)||St(C)||h.isArray(C))&&(y[A]=C)}}else y=d;return!y||ye(y)?void 0:y}function Pm(l){let{parentProjection:s,projection:d}=l;return s&&d&&$e((function(m){let{parentProjection:y,projection:k}=m;return`Layer's shared projection ${Be(y)} is overridden by a child projection ${Be(k)}.`})({parentProjection:s,projection:d})),d??s}function $m(l){return"filter"in l}function Bm(l){return"lookup"in l}function i_(l){return"pivot"in l}function Ry(l){return"density"in l}function Um(l){return"quantile"in l}function Cy(l){return"regression"in l}function o_(l){return"loess"in l}function Ny(l){return"sample"in l}function zm(l){return"window"in l}function Gm(l){return"joinaggregate"in l}function Iy(l){return"flatten"in l}function s_(l){return"calculate"in l}function zf(l){return"bin"in l}function jm(l){return"impute"in l}function Gf(l){return"timeUnit"in l}function Oy(l){return"aggregate"in l}function l_(l){return"stack"in l}function Hm(l){return"fold"in l}function qm(l){return"extent"in l&&!("density"in l)}function jf(l,s){let{transform:d,...m}=l;return d?{...m,transform:d.map((y=>{if($m(y))return{filter:hc(y,s)};if(zf(y)&&mo(y.bin))return{...y,bin:Wm(y.bin)};if(Bm(y)){let{selection:k,...A}=y.from;return k?{...y,from:{param:k,...A}}:y}return y}))}:l}function Hf(l,s){let d=U(l);if(ze(d)&&mo(d.bin)&&(d.bin=Wm(d.bin)),$i(d)&&d.scale?.domain?.selection){let{selection:m,...y}=d.scale.domain;d.scale.domain={...y,...m?{param:m}:{}}}if(gf(d))if(h.isArray(d.condition))d.condition=d.condition.map((m=>{let{selection:y,param:k,test:A,...R}=m;return k?m:{...R,test:hc(m,s)}}));else{let{selection:m,param:y,test:k,...A}=Hf(d.condition,s);d.condition=y?d.condition:{...A,test:hc(d.condition,s)}}return d}function Wm(l){let s=l.extent;if(s?.selection){let{selection:d,...m}=s;return{...l,extent:{...m,param:d}}}return l}function hc(l,s){let d=m=>L(m,(y=>{let k={param:y,empty:s.emptySelections[y]??!0};return s.selectionPredicates[y]??=[],s.selectionPredicates[y].push(k),k}));return l.selection?d(l.selection):L(l.test||l.filter,(m=>m.selection?d(m.selection):m))}class Vm extends $f{map(s,d){let m=d.selections??[];if(s.params&&!Bi(s)){let y=[];for(let k of s.params)_u(k)?m.push(k):y.push(k);s.params=y}return d.selections=m,super.map(s,d)}mapUnit(s,d){let m=d.selections;if(!m||!m.length)return s;let y=(d.path??[]).concat(s.name),k=[];for(let A of m)if(A.views&&A.views.length)for(let R of A.views)(h.isString(R)&&(R===s.name||y.includes(R))||h.isArray(R)&&R.map((C=>y.indexOf(C))).every(((C,$,j)=>C!==-1&&($===0||C>j[$-1]))))&&k.push(A);else k.push(A);return k.length&&(s.params=k),s}}for(let l of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){let s=Vm.prototype[l];Vm.prototype[l]=function(d,m){return s.call(this,d,Ym(d,m))}}function Ym(l,s){return l.name?{...s,path:(s.path??[]).concat(l.name)}:s}function qf(l,s){s===void 0&&(s=Tm(l.config));let d=(function(A){let C={config:arguments.length>1&&arguments[1]!==void 0?arguments[1]:{}};return c_.map(Km.map(Dy.map(A,C),C),C)})(l,s),{width:m,height:y}=l,k=(function(A,R,C){let{width:$,height:j}=R,H=Bi(A)||pc(A),ee={};H?$=="container"&&j=="container"?(ee.type="fit",ee.contains="padding"):$=="container"?(ee.type="fit-x",ee.contains="padding"):j=="container"&&(ee.type="fit-y",ee.contains="padding"):($=="container"&&($e(Tr("width")),$=void 0),j=="container"&&($e(Tr("height")),j=void 0));let ae={type:"pad",...ee,...C?Xm(C.autosize):{},...Xm(A.autosize)};if(ae.type!=="fit"||H||($e(Qn),ae.type="pad"),$=="container"&&ae.type!="fit"&&ae.type!="fit-x"&&$e(er("width")),j=="container"&&ae.type!="fit"&&ae.type!="fit-y"&&$e(er("height")),!Ne(ae,{type:"pad"}))return ae})(d,{width:m,height:y,autosize:l.autosize},s);return{...d,...k?{autosize:k}:{}}}let Km=new class extends $f{constructor(){super(...arguments),ct(this,"nonFacetUnitNormalizers",[Te,gm,wy,new Dm,new Fm])}map(l,s){if(Bi(l)){let d=Ui(l.encoding,We),m=Ui(l.encoding,at),y=Ui(l.encoding,Lt);if(d||m||y)return this.mapFacetedUnit(l,s)}return super.map(l,s)}mapUnit(l,s){let{parentEncoding:d,parentProjection:m}=s,y=Gi(l.encoding,s.repeater),k={...l,...l.name?{name:[s.repeaterPrefix,l.name].filter((R=>R)).join("_")}:{},...y?{encoding:y}:{}};if(d||m)return this.mapUnitWithParentEncodingOrProjection(k,s);let A=this.mapLayerOrUnit.bind(this);for(let R of this.nonFacetUnitNormalizers)if(R.hasMatchingType(k,s.config))return R.run(k,s,A);return k}mapRepeat(l,s){return(function(d){return!h.isArray(d.repeat)&&d.repeat.layer})(l)?this.mapLayerRepeat(l,s):this.mapNonLayerRepeat(l,s)}mapLayerRepeat(l,s){let{repeat:d,spec:m,...y}=l,{row:k,column:A,layer:R}=d,{repeater:C={},repeaterPrefix:$=""}=s;return k||A?this.mapRepeat({...l,repeat:{...k?{row:k}:{},...A?{column:A}:{}},spec:{repeat:{layer:R},spec:m}},s):{...y,layer:R.map((j=>{let H={...C,layer:j},ee=`${(m.name?`${m.name}_`:"")+$}child__layer_${me(j)}`,ae=this.mapLayerOrUnit(m,{...s,repeater:H,repeaterPrefix:ee});return ae.name=ee,ae}))}}mapNonLayerRepeat(l,s){let{repeat:d,spec:m,data:y,...k}=l;!h.isArray(d)&&l.columns&&(l=K(l,["columns"]),$e(ha("repeat")));let A=[],{repeater:R={},repeaterPrefix:C=""}=s,$=!h.isArray(d)&&d.row||[R?R.row:null],j=!h.isArray(d)&&d.column||[R?R.column:null],H=h.isArray(d)&&d||[R?R.repeat:null];for(let ae of H)for(let ne of $)for(let de of j){let he={repeat:ae,row:ne,column:de,layer:R.layer},ge=(m.name?`${m.name}_`:"")+C+"child__"+(h.isArray(d)?`${me(ae)}`:(d.row?`row_${me(ne)}`:"")+(d.column?`column_${me(de)}`:"")),Ee=this.map(m,{...s,repeater:he,repeaterPrefix:ge});Ee.name=ge,A.push(K(Ee,["data"]))}let ee=h.isArray(d)?l.columns:d.column?d.column.length:1;return{data:m.data??y,align:"all",...k,columns:ee,concat:A}}mapFacet(l,s){let{facet:d}=l;return Ql(d)&&l.columns&&(l=K(l,["columns"]),$e(ha("facet"))),super.mapFacet(l,s)}mapUnitWithParentEncodingOrProjection(l,s){let{encoding:d,projection:m}=l,{parentEncoding:y,parentProjection:k,config:A}=s,R=Pm({parentProjection:k,projection:m}),C=Uf({parentEncoding:y,encoding:Gi(d,s.repeater)});return this.mapUnit({...l,...R?{projection:R}:{},...C?{encoding:C}:{}},{config:A})}mapFacetedUnit(l,s){let{row:d,column:m,facet:y,...k}=l.encoding,{mark:A,width:R,projection:C,height:$,view:j,params:H,encoding:ee,...ae}=l,{facetMapping:ne,layout:de}=this.getFacetMappingAndLayout({row:d,column:m,facet:y},s),he=Gi(k,s.repeater);return this.mapFacet({...ae,...de,facet:ne,spec:{...R?{width:R}:{},...$?{height:$}:{},...j?{view:j}:{},...C?{projection:C}:{},mark:A,encoding:he,...H?{params:H}:{}}},s)}getFacetMappingAndLayout(l,s){let{row:d,column:m,facet:y}=l;if(d||m){y&&$e(`Facet encoding dropped as ${(k=[...d?[We]:[],...m?[at]:[]]).join(" and ")} ${k.length>1?"are":"is"} also specified.`);let A={},R={};for(let C of[We,at]){let $=l[C];if($){let{align:j,center:H,spacing:ee,columns:ae,...ne}=$;A[C]=ne;for(let de of["align","center","spacing"])$[de]!==void 0&&(R[de]??={},R[de][C]=$[de])}}return{facetMapping:A,layout:R}}{let{align:A,center:R,spacing:C,columns:$,...j}=y;return{facetMapping:nr(j,s.repeater),layout:{...A?{align:A}:{},...R?{center:R}:{},...C?{spacing:C}:{},...$?{columns:$}:{}}}}var k}mapLayer(l,s){let{parentEncoding:d,parentProjection:m,...y}=s,{encoding:k,projection:A,...R}=l,C={...y,parentEncoding:Uf({parentEncoding:d,encoding:k,layer:!0}),parentProjection:Pm({parentProjection:m,projection:A})};return super.mapLayer({...R,...l.name?{name:[C.repeaterPrefix,l.name].filter(($=>$)).join("_")}:{}},C)}},Dy=new class extends $f{map(l,s){return s.emptySelections??={},s.selectionPredicates??={},l=jf(l,s),super.map(l,s)}mapLayerOrUnit(l,s){if((l=jf(l,s)).encoding){let d={};for(let[m,y]of tt(l.encoding))d[m]=Hf(y,s);l={...l,encoding:d}}return super.mapLayerOrUnit(l,s)}mapUnit(l,s){let{selection:d,...m}=l;return d?{...m,params:tt(d).map((y=>{let[k,A]=y,{init:R,bind:C,empty:$,...j}=A;j.type==="single"?(j.type="point",j.toggle=!1):j.type==="multi"&&(j.type="point"),s.emptySelections[k]=$!=="none";for(let H of Ve(s.selectionPredicates[k]??{}))H.empty=$!=="none";return{name:k,value:R,select:j,bind:C}}))}:l}},c_=new Vm;function Xm(l){return h.isString(l)?{type:l}:l??{}}let Zm=["background","padding"];function Wf(l,s){let d={};for(let m of Zm)l&&l[m]!==void 0&&(d[m]=Bn(l[m]));return s&&(d.params=l.params),d}class ji{constructor(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.explicit=s,this.implicit=d}clone(){return new ji(U(this.explicit),U(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(s){return Tt(this.explicit[s],this.implicit[s])}getWithExplicit(s){return this.explicit[s]!==void 0?{explicit:!0,value:this.explicit[s]}:this.implicit[s]!==void 0?{explicit:!1,value:this.implicit[s]}:{explicit:!1,value:void 0}}setWithExplicit(s,d){let{value:m,explicit:y}=d;m!==void 0&&this.set(s,m,y)}set(s,d,m){return delete this[m?"implicit":"explicit"][s],this[m?"explicit":"implicit"][s]=d,this}copyKeyFromSplit(s,d){let{explicit:m,implicit:y}=d;m[s]!==void 0?this.set(s,m[s],!0):y[s]!==void 0&&this.set(s,y[s],!1)}copyKeyFromObject(s,d){d[s]!==void 0&&this.set(s,d[s],!0)}copyAll(s){for(let d of we(s.combine())){let m=s.getWithExplicit(d);this.setWithExplicit(d,m)}}}function Hi(l){return{explicit:!0,value:l}}function Ga(l){return{explicit:!1,value:l}}function My(l){return(s,d,m,y)=>{let k=l(s.value,d.value);return k>0?s:k<0?d:Nu(s,d,m,y)}}function Nu(l,s,d,m){return l.explicit&&s.explicit&&$e((function(y,k,A,R){return`Conflicting ${k.toString()} property "${y.toString()}" (${Be(A)} and ${Be(R)}). Using ${Be(A)}.`})(d,m,l.value,s.value)),l}function qi(l,s,d,m){let y=arguments.length>4&&arguments[4]!==void 0?arguments[4]:Nu;return l===void 0||l.value===void 0?s:l.explicit&&!s.explicit?l:s.explicit&&!l.explicit?s:Ne(l.value,s.value)?l:y(l,s,d,m)}class Ly extends ji{constructor(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},m=arguments.length>2&&arguments[2]!==void 0&&arguments[2];super(s,d),this.explicit=s,this.implicit=d,this.parseNothing=m}clone(){let s=super.clone();return s.parseNothing=this.parseNothing,s}}function ds(l){return"url"in l}function mc(l){return"values"in l}function Vf(l){return"name"in l&&!ds(l)&&!mc(l)&&!Eo(l)}function Eo(l){return l&&(Yf(l)||Kf(l)||Xf(l))}function Yf(l){return"sequence"in l}function Kf(l){return"sphere"in l}function Xf(l){return"graticule"in l}let nn=(function(l){return l[l.Raw=0]="Raw",l[l.Main=1]="Main",l[l.Row=2]="Row",l[l.Column=3]="Column",l[l.Lookup=4]="Lookup",l})({});function Jm(l){let{signals:s,hasLegend:d,index:m,...y}=l;return y.field=Ot(y.field),y}function fs(l){let s=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:h.identity;if(h.isArray(l)){let m=l.map((y=>fs(y,s,d)));return s?`[${m.join(", ")}]`:m}return Gs(l)?d(s?js(l):(function(m){let y=Xd(m,!0);return m.utc?+new Date(Date.UTC(...y)):+new Date(...y)})(l)):s?d(Be(l)):l}function Fy(l,s){for(let d of Ve(l.component.selection??{})){let m=d.name,y=`${m}${_o}, ${d.resolve==="global"?"true":`{unit: ${Vr(l)}}`}`;for(let k of il)k.defined(d)&&(k.signals&&(s=k.signals(l,d,s)),k.modifyExpr&&(y=k.modifyExpr(l,d,y)));s.push({name:m+Zy,on:[{events:{signal:d.name+_o},update:`modify(${h.stringValue(d.name+hs)}, ${y})`}]})}return Zf(s)}function Iu(l,s){if(l.component.selection&&we(l.component.selection).length){let d=h.stringValue(l.getName("cell"));s.unshift({name:"facet",value:{},on:[{events:h.parseSelector("pointermove","scope"),update:`isTuple(facet) ? facet : group(${d}).datum`}]})}return Zf(s)}function Py(l,s){for(let d of Ve(l.component.selection??{}))for(let m of il)m.defined(d)&&m.marks&&(s=m.marks(l,d,s));return s}function Zf(l){return l.map((s=>(s.on&&!s.on.length&&delete s.on,s)))}class Kt{constructor(s,d){this.debugName=d,ct(this,"_children",[]),ct(this,"_parent",null),ct(this,"_hash",void 0),s&&(this.parent=s)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(s){this._parent=s,s&&s.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(s,d){this._children.includes(s)?$e("Attempt to add the same child twice."):d!==void 0?this._children.splice(d,0,s):this._children.push(s)}removeChild(s){let d=this._children.indexOf(s);return this._children.splice(d,1),d}remove(){let s=this._parent.removeChild(this);for(let d of this._children)d._parent=this._parent,this._parent.addChild(d,s++)}insertAsParentOf(s){let d=s.parent;d.removeChild(this),this.parent=d,s.parent=this}swapWithParent(){let s=this._parent,d=s.parent;for(let y of this._children)y.parent=s;this._children=[],s.removeChild(this);let m=s.parent.removeChild(s);this._parent=d,d.addChild(this,m),s.parent=this}}class rr extends Kt{clone(){let s=new this.constructor;return s.debugName=`clone_${this.debugName}`,s._source=this._source,s._name=`clone_${this._name}`,s.type=this.type,s.refCounts=this.refCounts,s.refCounts[s._name]=0,s}constructor(s,d,m,y){super(s,d),this.type=m,this.refCounts=y,ct(this,"_source",void 0),ct(this,"_name",void 0),this._source=this._name=d,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${ia()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(s){this._source=s}}function Qm(l){return l.as!==void 0}function $y(l){return`${l}_end`}class Wi extends Kt{clone(){return new Wi(null,U(this.timeUnits))}constructor(s,d){super(s),this.timeUnits=d}static makeFromEncoding(s,d){let m=d.reduceFieldDef(((y,k,A)=>{let{field:R,timeUnit:C}=k;if(C){let $;if(Ua(C)){if(dn(d)){let{mark:j,markDef:H,config:ee}=d,ae=Fi({fieldDef:k,markDef:H,config:ee});(du(j)||ae)&&($={timeUnit:Un(C),field:R})}}else $={as:Ge(k,{forAs:!0}),field:R,timeUnit:C};if(dn(d)){let{mark:j,markDef:H,config:ee}=d,ae=Fi({fieldDef:k,markDef:H,config:ee});du(j)&&un(A)&&ae!==.5&&($.rectBandPosition=ae)}$&&(y[V($)]=$)}return y}),{});return ye(m)?null:new Wi(s,m)}static makeFromTransform(s,d){let{timeUnit:m,...y}={...d},k={...y,timeUnit:Un(m)};return new Wi(s,{[V(k)]:k})}merge(s){this.timeUnits={...this.timeUnits};for(let d in s.timeUnits)this.timeUnits[d]||(this.timeUnits[d]=s.timeUnits[d]);for(let d of s.children)s.removeChild(d),d.parent=this;s.remove()}removeFormulas(s){let d={};for(let[m,y]of tt(this.timeUnits)){let k=Qm(y)?y.as:`${y.field}_end`;s.has(k)||(d[m]=y)}this.timeUnits=d}producedFields(){return new Set(Ve(this.timeUnits).map((s=>Qm(s)?s.as:$y(s.field))))}dependentFields(){return new Set(Ve(this.timeUnits).map((s=>s.field)))}hash(){return`TimeUnit ${V(this.timeUnits)}`}assemble(){let s=[];for(let d of Ve(this.timeUnits)){let{rectBandPosition:m}=d,y=Un(d.timeUnit);if(Qm(d)){let{field:k,as:A}=d,{unit:R,utc:C,...$}=y,j=[A,`${A}_end`];s.push({field:Ot(k),type:"timeunit",...R?{units:su(R)}:{},...C?{timezone:"utc"}:{},...$,as:j}),s.push(...ar(j,m,y))}else if(d){let{field:k}=d,A=k.replaceAll("\\.","."),R=eg({timeUnit:y,field:A}),C=$y(A);s.push({type:"formula",expr:R,as:C}),s.push(...ar([A,C],m,y))}}return s}}let Jf="offsetted_rect_start",Gt="offsetted_rect_end";function eg(l){let{timeUnit:s,field:d,reverse:m}=l,{unit:y,utc:k}=s,A=jh(y),{part:R,step:C}=Jd(A,s.step);return`${k?"utcOffset":"timeOffset"}('${R}', datum['${d}'], ${m?-C:C})`}function ar(l,s,d){let[m,y]=l;if(s!==void 0&&s!==.5){let k=`datum['${m}']`,A=`datum['${y}']`;return[{type:"formula",expr:ps([eg({timeUnit:d,field:m,reverse:!0}),k],s+.5),as:`${m}_${Jf}`},{type:"formula",expr:ps([k,A],s+.5),as:`${m}_${Gt}`}]}return[]}function ps(l,s){let[d,m]=l;return`${1-s} * ${d} + ${s} * ${m}`}let Ou="_tuple_fields";class tg{constructor(){ct(this,"hasChannel",void 0),ct(this,"hasField",void 0),ct(this,"hasSelectionId",void 0),ct(this,"timeUnit",void 0),ct(this,"items",void 0);for(var s=arguments.length,d=new Array(s),m=0;m<s;m++)d[m]=arguments[m];this.items=d,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}let Vi={defined:()=>!0,parse:(l,s,d)=>{let m=s.name,y=s.project??=new tg,k={},A={},R=new Set,C=(ne,de)=>{let he=de==="visual"?ne.channel:ne.field,ge=me(`${m}_${he}`);for(let Ee=1;R.has(ge);Ee++)ge=me(`${m}_${he}_${Ee}`);return R.add(ge),{[de]:ge}},$=s.type,j=l.config.selection[$],H=d.value!==void 0?h.array(d.value):null,{fields:ee,encodings:ae}=h.isObject(d.select)?d.select:{};if(!ee&&!ae&&H){for(let ne of H)if(h.isObject(ne))for(let de of we(ne))Ek[de]?(ae||(ae=[])).push(de):$==="interval"?($e('Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.'),ae=j.encodings):(ee??=[]).push(de)}ee||ae||(ae=j.encodings,"fields"in j&&(ee=j.fields));for(let ne of ae??[]){let de=l.fieldDef(ne);if(de){let he=de.field;if(de.aggregate){$e(Di(ne,de.aggregate));continue}if(!he){$e(tr(ne));continue}if(de.timeUnit&&!Ua(de.timeUnit)){he=l.vgField(ne);let ge={timeUnit:de.timeUnit,as:he,field:de.field};A[V(ge)]=ge}if(!k[he]){let ge={field:he,channel:ne,type:$==="interval"&&Fa(ne)&&qr(l.getScaleComponent(ne).get("type"))?"R":de.bin?"R-RE":"E",index:y.items.length};ge.signals={...C(ge,"data"),...C(ge,"visual")},y.items.push(k[he]=ge),y.hasField[he]=k[he],y.hasSelectionId=y.hasSelectionId||he===ba,Jo(ne)?(ge.geoChannel=ne,ge.channel=xh(ne),y.hasChannel[ge.channel]=k[he]):y.hasChannel[ne]=k[he]}}else $e(tr(ne))}for(let ne of ee??[]){if(y.hasField[ne])continue;let de={type:"E",field:ne,index:y.items.length};de.signals={...C(de,"data")},y.items.push(de),y.hasField[ne]=de,y.hasSelectionId=y.hasSelectionId||ne===ba}H&&(s.init=H.map((ne=>y.items.map((de=>h.isObject(ne)?ne[de.geoChannel||de.channel]!==void 0?ne[de.geoChannel||de.channel]:ne[de.field]:ne))))),ye(A)||(y.timeUnit=new Wi(null,A))},signals:(l,s,d)=>{let m=s.name+Ou;return d.filter((y=>y.name===m)).length>0||s.project.hasSelectionId?d:d.concat({name:m,value:s.project.items.map(Jm)})}},Cr={defined:l=>l.type==="interval"&&l.resolve==="global"&&l.bind&&l.bind==="scales",parse:(l,s)=>{let d=s.scales=[];for(let m of s.project.items){let y=m.channel;if(!Fa(y))continue;let k=l.getScaleComponent(y),A=k?k.get("type"):void 0;k&&qr(A)?(k.set("selectionExtent",{param:s.name,field:m.field},!0),d.push(m)):$e("Scale bindings are currently only supported for scales with unbinned, continuous domains.")}},topLevelSignals:(l,s,d)=>{let m=s.scales.filter((A=>d.filter((R=>R.name===A.signals.data)).length===0));if(!l.parent||nl(l)||m.length===0)return d;let y=d.filter((A=>A.name===s.name))[0],k=y.update;if(k.indexOf(fg)>=0)y.update=`{${m.map((A=>`${h.stringValue(Ot(A.field))}: ${A.signals.data}`)).join(", ")}}`;else{for(let A of m){let R=`${h.stringValue(Ot(A.field))}: ${A.signals.data}`;k.includes(R)||(k=`${k.substring(0,k.length-1)}, ${R}}`)}y.update=k}return d.concat(m.map((A=>({name:A.signals.data}))))},signals:(l,s,d)=>{if(l.parent&&!nl(l))for(let m of s.scales){let y=d.filter((k=>k.name===m.signals.data))[0];y.push="outer",delete y.value,delete y.update}return d}};function Gn(l,s){return`domain(${h.stringValue(l.scaleName(s))})`}function nl(l){return l.parent&&Es(l.parent)&&!l.parent.parent}let wo="_brush",ng="_scale_trigger",gc="geo_interval_init_tick",Qf="_init",rg={defined:l=>l.type==="interval",parse:(l,s,d)=>{if(l.hasProjection){let m={...h.isObject(d.select)?d.select:{}};m.fields=[ba],m.encodings||(m.encodings=d.value?we(d.value):[Br,ot]),d.select={type:"interval",...m}}if(s.translate&&!Cr.defined(s)){let m=`!event.item || event.item.mark.name !== ${h.stringValue(s.name+wo)}`;for(let y of s.events){if(!y.between){$e(`${y} is not an ordered event stream for interval selections.`);continue}let k=h.array(y.between[0].filter??=[]);k.indexOf(m)<0&&k.push(m)}}},signals:(l,s,d)=>{let m=s.name,y=m+_o,k=Ve(s.project.hasChannel).filter((R=>R.channel===et||R.channel===nt)),A=s.init?s.init[0]:null;if(d.push(...k.reduce(((R,C)=>R.concat((function($,j,H,ee){let ae=!$.hasProjection,ne=H.channel,de=H.signals.visual,he=h.stringValue(ae?$.scaleName(ne):$.projectionName()),ge=Pe=>`scale(${he}, ${Pe})`,Ee=$.getSizeSignalRef(ne===et?"width":"height").signal,Se=`${ne}(unit)`,Re=j.events.reduce(((Pe,qe)=>[...Pe,{events:qe.between[0],update:`[${Se}, ${Se}]`},{events:qe,update:`[${de}[0], clamp(${Se}, 0, ${Ee})]`}]),[]);if(ae){let Pe=H.signals.data,qe=Cr.defined(j),st=$.getScaleComponent(ne),mt=st?st.get("type"):void 0,it=ee?{init:fs(ee,!0,ge)}:{value:[]};return Re.push({events:{signal:j.name+ng},update:qr(mt)?`[${ge(`${Pe}[0]`)}, ${ge(`${Pe}[1]`)}]`:"[0, 0]"}),qe?[{name:Pe,on:[]}]:[{name:de,...it,on:Re},{name:Pe,...ee?{init:fs(ee)}:{},on:[{events:{signal:de},update:`${de}[0] === ${de}[1] ? null : invert(${he}, ${de})`}]}]}{let Pe=ne===et?0:1,qe=j.name+Qf;return[{name:de,...ee?{init:`[${qe}[0][${Pe}], ${qe}[1][${Pe}]]`}:{value:[]},on:Re}]}})(l,s,C,A&&A[C.index]))),[])),l.hasProjection){let R=h.stringValue(l.projectionName()),C=l.projectionName()+"_center",{x:$,y:j}=s.project.hasChannel,H=$&&$.signals.visual,ee=j&&j.signals.visual,ae=$?A&&A[$.index]:`${C}[0]`,ne=j?A&&A[j.index]:`${C}[1]`,de=Se=>l.getSizeSignalRef(Se).signal,he=`[[${H?H+"[0]":"0"}, ${ee?ee+"[0]":"0"}],[${H?H+"[1]":de("width")}, ${ee?ee+"[1]":de("height")}]]`;A&&(d.unshift({name:m+Qf,init:`[scale(${R}, [${$?ae[0]:ae}, ${j?ne[0]:ne}]), scale(${R}, [${$?ae[1]:ae}, ${j?ne[1]:ne}])]`}),!$||!j)&&(d.find((Se=>Se.name===C))||d.unshift({name:C,update:`invert(${R}, [${de("width")}/2, ${de("height")}/2])`}));let ge=`vlSelectionTuples(${`intersect(${he}, {markname: ${h.stringValue(l.getName("marks"))}}, unit.mark)`}, ${`{unit: ${Vr(l)}}`})`,Ee=k.map((Se=>Se.signals.visual));return d.concat({name:y,on:[{events:[...Ee.length?[{signal:Ee.join(" || ")}]:[],...A?[{signal:gc}]:[]],update:ge}]})}{if(!Cr.defined(s)){let $=m+ng,j=k.map((H=>{let ee=H.channel,{data:ae,visual:ne}=H.signals,de=h.stringValue(l.scaleName(ee)),he=qr(l.getScaleComponent(ee).get("type"))?"+":"";return`(!isArray(${ae}) || (${he}invert(${de}, ${ne})[0] === ${he}${ae}[0] && ${he}invert(${de}, ${ne})[1] === ${he}${ae}[1]))`}));j.length&&d.push({name:$,value:{},on:[{events:k.map((H=>({scale:l.scaleName(H.channel)}))),update:j.join(" && ")+` ? ${$} : {}`}]})}let R=k.map(($=>$.signals.data)),C=`unit: ${Vr(l)}, fields: ${m+Ou}, values`;return d.concat({name:y,...A?{init:`{${C}: ${fs(A)}}`}:{},...R.length?{on:[{events:[{signal:R.join(" || ")}],update:`${R.join(" && ")} ? {${C}: [${R}]} : null`}]}:{}})}},topLevelSignals:(l,s,d)=>(dn(l)&&l.hasProjection&&s.init&&(d.filter((m=>m.name===gc)).length||d.unshift({name:gc,value:null,on:[{events:"timer{1}",update:`${gc} === null ? {} : ${gc}`}]})),d),marks:(l,s,d)=>{let m=s.name,{x:y,y:k}=s.project.hasChannel,A=y?.signals.visual,R=k?.signals.visual,C=`data(${h.stringValue(s.name+hs)})`;if(Cr.defined(s)||!y&&!k)return d;let $={x:y!==void 0?{signal:`${A}[0]`}:{value:0},y:k!==void 0?{signal:`${R}[0]`}:{value:0},x2:y!==void 0?{signal:`${A}[1]`}:{field:{group:"width"}},y2:k!==void 0?{signal:`${R}[1]`}:{field:{group:"height"}}};if(s.resolve==="global")for(let de of we($))$[de]=[{test:`${C}.length && ${C}[0].unit === ${Vr(l)}`,...$[de]},{value:0}];let{fill:j,fillOpacity:H,cursor:ee,...ae}=s.mark,ne=we(ae).reduce(((de,he)=>(de[he]=[{test:[y!==void 0&&`${A}[0] !== ${A}[1]`,k!==void 0&&`${R}[0] !== ${R}[1]`].filter((ge=>ge)).join(" && "),value:ae[he]},{value:null}],de)),{});return[{name:`${m+wo}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:j},fillOpacity:{value:H}},update:$}},...d,{name:m+wo,type:"rect",clip:!0,encode:{enter:{...ee?{cursor:{value:ee}}:{},fill:{value:"transparent"}},update:{...$,...ne}}}]}},rl={defined:l=>l.type==="point",signals:(l,s,d)=>{let m=s.name,y=m+Ou,k=s.project,A="(item().isVoronoi ? datum.datum : datum)",R=Ve(l.component.selection??{}).reduce(((H,ee)=>ee.type==="interval"?H.concat(ee.name+wo):H),[]).map((H=>`indexof(item().mark.name, '${H}') < 0`)).join(" && "),C="datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0"+(R?` && ${R}`:""),$=`unit: ${Vr(l)}, `;s.project.hasSelectionId?$+=`${ba}: ${A}[${h.stringValue(ba)}]`:$+=`fields: ${y}, values: [${k.items.map((H=>l.fieldDef(H.channel)?.bin?`[${A}[${h.stringValue(l.vgField(H.channel,{}))}], ${A}[${h.stringValue(l.vgField(H.channel,{binSuffix:"end"}))}]]`:`${A}[${h.stringValue(H.field)}]`)).join(", ")}]`;let j=s.events;return d.concat([{name:m+_o,on:j?[{events:j,update:`${C} ? {${$}} : null`,force:!0}]:[]}])}};function bc(l,s,d,m){let y=gf(s)&&s.condition,k=m(s);return y?{[d]:[...h.array(y).map((A=>{let R=m(A);if((function(C){return C.param})(A)){let{param:C,empty:$}=A;return{test:Ec(l,{param:C,empty:$}),...R}}return{test:Ki(l,A.test),...R}})),...k!==void 0?[k]:[]]}:k!==void 0?{[d]:k}:{}}function ep(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"text",d=l.encoding[s];return bc(l,d,s,(m=>yc(m,l.config)))}function yc(l,s){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"datum";if(l){if(ma(l))return sn(l.value);if(St(l)){let{format:m,formatType:y}=Js(l);return tm({fieldOrDatumDef:l,format:m,formatType:y,expr:d,config:s})}}}function Du(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{encoding:d,markDef:m,config:y,stack:k}=l,A=d.tooltip;if(h.isArray(A))return{tooltip:By({tooltip:A},k,y,s)};{let R=s.reactiveGeom?"datum.datum":"datum";return bc(l,A,"tooltip",(C=>{let $=yc(C,y,R);if($)return $;if(C===null)return;let j=Yt("tooltip",m,y);return j===!0&&(j={content:"encoding"}),h.isString(j)?{value:j}:h.isObject(j)?Je(j)?j:j.content==="encoding"?By(d,k,y,s):{signal:R}:void 0}))}}function Mu(l,s,d){let{reactiveGeom:m}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},y={...d,...d.tooltipFormat},k={},A=m?"datum.datum":"datum",R=[];function C(j,H){let ee=Us(H),ae=hr(j)?j:{...j,type:l[ee].type},ne=ae.title||Ef(ae,y),de=h.array(ne).join(", ").replaceAll(/"/g,'\\"'),he;if(un(H)){let ge=H==="x"?"x2":"y2",Ee=ga(l[ge]);if($n(ae.bin)&&Ee){let Se=Ge(ae,{expr:A}),Re=Ge(Ee,{expr:A}),{format:Pe,formatType:qe}=Js(ae);he=yo(Se,Re,Pe,qe,y),k[ge]=!0}}if((un(H)||H===la||H===lt)&&s&&s.fieldChannel===H&&s.offset==="normalize"){let{format:ge,formatType:Ee}=Js(ae);he=tm({fieldOrDatumDef:ae,format:ge,formatType:Ee,expr:A,config:y,normalizeStack:!0}).signal}he??=yc(ae,y,A).signal,R.push({channel:H,key:de,value:he})}yu(l,((j,H)=>{ze(j)?C(j,H):bf(j)&&C(j.condition,H)}));let $={};for(let{channel:j,key:H,value:ee}of R)k[j]||$[H]||($[H]=ee);return $}function By(l,s,d){let{reactiveGeom:m}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},y=Mu(l,s,d,{reactiveGeom:m}),k=tt(y).map((A=>{let[R,C]=A;return`"${R}": ${C}`}));return k.length>0?{signal:`{${k.join(", ")}}`}:void 0}function u_(l){let{markDef:s,config:d}=l,m=Yt("aria",s,d);return m===!1?{}:{...m?{aria:m}:{},...d_(l),...f_(l)}}function d_(l){let{mark:s,markDef:d,config:m}=l;if(m.aria===!1)return{};let y=Yt("ariaRoleDescription",d,m);return y!=null?{ariaRoleDescription:{value:y}}:s in zd?{}:{ariaRoleDescription:{value:s}}}function f_(l){let{encoding:s,markDef:d,config:m,stack:y}=l,k=s.description;if(k)return bc(l,k,"description",(C=>yc(C,l.config)));let A=Yt("description",d,m);if(A!=null)return{description:sn(A)};if(m.aria===!1)return{};let R=Mu(s,y,m);return ye(R)?void 0:{description:{signal:tt(R).map(((C,$)=>{let[j,H]=C;return`"${$>0?"; ":""}${j}: " + (${H})`})).join(" + ")}}}function jn(l,s){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{markDef:m,encoding:y,config:k}=s,{vgChannel:A}=d,{defaultRef:R,defaultValue:C}=d;R===void 0&&(C??=Yt(l,m,k,{vgChannel:A,ignoreVgConfig:!0}),C!==void 0&&(R=sn(C)));let $=y[l];return bc(s,$,A??l,(j=>em({channel:l,channelDef:j,markDef:m,config:k,scaleName:s.scaleName(l),scale:s.getScaleComponent(l),stack:null,defaultRef:R})))}function Lu(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{filled:void 0},{markDef:d,encoding:m,config:y}=l,{type:k}=d,A=s.filled??Yt("filled",d,y),R=Y(["bar","point","circle","square","geoshape"],k)?"transparent":void 0,C=Yt(A===!0?"color":void 0,d,y,{vgChannel:"fill"})??y.mark[A===!0&&"color"]??R,$=Yt(A===!1?"color":void 0,d,y,{vgChannel:"stroke"})??y.mark[A===!1&&"color"],j=A?"fill":"stroke",H={...C?{fill:sn(C)}:{},...$?{stroke:sn($)}:{}};return d.color&&(A?d.fill:d.stroke)&&$e(z0("property",{fill:"fill"in d,stroke:"stroke"in d})),{...H,...jn("color",l,{vgChannel:j,defaultValue:A?C:$}),...jn("fill",l,{defaultValue:m.fill?C:void 0}),...jn("stroke",l,{defaultValue:m.stroke?$:void 0})}}function Uy(l){let{encoding:s,mark:d}=l,m=s.order;return!as(d)&&ma(m)?bc(l,m,"zindex",(y=>sn(y.value))):{}}function vc(l){let{channel:s,markDef:d,encoding:m={},model:y,bandPosition:k}=l,A=`${s}Offset`,R=d[A],C=m[A];if((A==="xOffset"||A==="yOffset")&&C)return{offsetType:"encoding",offset:em({channel:A,channelDef:C,markDef:d,config:y?.config,scaleName:y.scaleName(A),scale:y.getScaleComponent(A),stack:null,defaultRef:sn(R),bandPosition:k})};let $=d[A];return $?{offsetType:"visual",offset:$}:{}}function Hn(l,s,d){let{defaultPos:m,vgChannel:y}=d,{encoding:k,markDef:A,config:R,stack:C}=s,$=k[l],j=k[Ri(l)],H=s.scaleName(l),ee=s.getScaleComponent(l),{offset:ae,offsetType:ne}=vc({channel:l,markDef:A,encoding:k,model:s,bandPosition:.5}),de=tp({model:s,defaultPos:m,channel:l,scaleName:H,scale:ee}),he=!$&&un(l)&&(k.latitude||k.longitude)?{field:s.getName(l)}:(function(ge){let{channel:Ee,channelDef:Se,scaleName:Re,stack:Pe,offset:qe,markDef:st}=ge;if(St(Se)&&Pe&&Ee===Pe.fieldChannel){if(ze(Se)){let mt=Se.bandPosition;if(mt!==void 0||st.type!=="text"||Ee!=="radius"&&Ee!=="theta"||(mt=.5),mt!==void 0)return df({scaleName:Re,fieldOrDatumDef:Se,startSuffix:"start",bandPosition:mt,offset:qe})}return Ks(Se,Re,{suffix:"end"},{offset:qe})}return Jh(ge)})({channel:l,channelDef:$,channel2Def:j,markDef:A,config:R,scaleName:H,scale:ee,stack:C,offset:ae,defaultRef:de,bandPosition:ne==="encoding"?0:void 0});return he?{[y||l]:he}:void 0}function tp(l){let{model:s,defaultPos:d,channel:m,scaleName:y,scale:k}=l,{markDef:A,config:R}=s;return()=>{let C=Us(m),$=fa(m),j=Yt(m,A,R,{vgChannel:$});if(j!==void 0)return Jl(m,j);switch(d){case"zeroOrMin":case"zeroOrMax":if(y){let H=k.get("type");if(!Y([Vt.LOG,Vt.TIME,Vt.UTC],H)){if(k.domainDefinitelyIncludesZero())return{scale:y,value:0}}}if(d==="zeroOrMin")return C==="y"?{field:{group:"height"}}:{value:0};switch(C){case"radius":return{signal:`min(${s.width.signal},${s.height.signal})/2`};case"theta":return{signal:"2*PI"};case"x":return{field:{group:"width"}};case"y":return{value:0}}break;case"mid":return{...s[Sr(m)],mult:.5}}}}let zy={left:"x",center:"xc",right:"x2"},Gy={top:"y",middle:"yc",bottom:"y2"};function ag(l,s,d){let m=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"middle";if(l==="radius"||l==="theta")return fa(l);let y=l==="x"?"align":"baseline",k=Yt(y,s,d),A;return Je(k)?($e((function(R){return`The ${R} for range marks cannot be an expression`})(y)),A=void 0):A=k,l==="x"?zy[A||(m==="top"?"left":"center")]:Gy[A||m]}function np(l,s,d){let{defaultPos:m,defaultPos2:y,range:k}=d;return k?ko(l,s,{defaultPos:m,defaultPos2:y}):Hn(l,s,{defaultPos:m})}function ko(l,s,d){let{defaultPos:m,defaultPos2:y}=d,{markDef:k,config:A}=s,R=Ri(l),C=Sr(l),$=(function(j,H,ee){let{encoding:ae,mark:ne,markDef:de,stack:he,config:ge}=j,Ee=Us(ee),Se=Sr(ee),Re=fa(ee),Pe=ae[Ee],qe=j.scaleName(Ee),st=j.getScaleComponent(Ee),{offset:mt}=vc(ee in ae||ee in de?{channel:ee,markDef:de,encoding:ae,model:j}:{channel:Ee,markDef:de,encoding:ae,model:j});if(!Pe&&(ee==="x2"||ee==="y2")&&(ae.latitude||ae.longitude)){let Qe=Sr(ee),Ct=j.markDef[Qe];return Ct!=null?{[Qe]:{value:Ct}}:{[Re]:{field:j.getName(ee)}}}let it=(function(Qe){let{channel:Ct,channelDef:Ht,channel2Def:Mn,markDef:wn,config:kn,scaleName:qt,scale:Ft,stack:gn,offset:Rn,defaultRef:fn}=Qe;return St(Ht)&&gn&&Ct.charAt(0)===gn.fieldChannel.charAt(0)?Ks(Ht,qt,{suffix:"start"},{offset:Rn}):Jh({channel:Ct,channelDef:Mn,scaleName:qt,scale:Ft,stack:gn,markDef:wn,config:kn,offset:Rn,defaultRef:fn})})({channel:ee,channelDef:Pe,channel2Def:ae[ee],markDef:de,config:ge,scaleName:qe,scale:st,stack:he,offset:mt,defaultRef:void 0});return it!==void 0?{[Re]:it}:al(ee,de)||al(ee,{[ee]:jd(ee,de,ge.style),[Se]:jd(Se,de,ge.style)})||al(ee,ge[ne])||al(ee,ge.mark)||{[Re]:tp({model:j,defaultPos:H,channel:ee,scaleName:qe,scale:st})()}})(s,y,R);return{...Hn(l,s,{defaultPos:m,vgChannel:$[C]?ag(l,k,A):fa(l)}),...$}}function al(l,s){let d=Sr(l),m=fa(l);if(s[m]!==void 0)return{[m]:Jl(l,s[m])};if(s[l]!==void 0)return{[m]:Jl(l,s[l])};if(s[d]){let y=s[d];if(!Ys(y))return{[d]:Jl(l,y)};$e((function(k){return`Position range does not support relative band size for ${k}.`})(d))}}function di(l,s){let{config:d,encoding:m,markDef:y}=l,k=y.type,A=Ri(s),R=Sr(s),C=m[s],$=m[A],j=l.getScaleComponent(s),H=j?j.get("type"):void 0,ee=y.orient,ae=m[R]??m.size??Yt("size",y,d,{vgChannel:R}),ne=Sh(s),de=k==="bar"&&(s==="x"?ee==="vertical":ee==="horizontal");return!ze(C)||!(Jt(C.bin)||$n(C.bin)||C.timeUnit&&!$)||ae&&!Ys(ae)||m[ne]||zn(H)?(St(C)&&zn(H)||de)&&!$?(function(he,ge,Ee){let{markDef:Se,encoding:Re,config:Pe,stack:qe}=Ee,st=Se.orient,mt=Ee.scaleName(ge),it=Ee.getScaleComponent(ge),Qe=Sr(ge),Ct=Ri(ge),Ht=Sh(ge),Mn=Ee.scaleName(Ht),wn=Ee.getScaleComponent(Ul(ge)),kn=st==="horizontal"&&ge==="y"||st==="vertical"&&ge==="x",qt;(Re.size||Se.size)&&(kn?qt=jn("size",Ee,{vgChannel:Qe,defaultRef:sn(Se.size)}):$e((function(or){return`Cannot apply size to non-oriented mark "${or}".`})(Se.type)));let Ft=!!qt,gn=sm({channel:ge,fieldDef:he,markDef:Se,config:Pe,scaleType:(it||wn)?.get("type"),useVlSizeChannel:kn});qt=qt||{[Qe]:jy(Qe,Mn||mt,wn||it,Pe,gn,!!he,Se.type)};let Rn=(it||wn)?.get("type")==="band"&&Ys(gn)&&!Ft?"top":"middle",fn=ag(ge,Se,Pe,Rn),Or=fn==="xc"||fn==="yc",{offset:Dr,offsetType:qa}=vc({channel:ge,markDef:Se,encoding:Re,model:Ee,bandPosition:Or?.5:0}),Vn=Jh({channel:ge,channelDef:he,markDef:Se,config:Pe,scaleName:mt,scale:it,stack:qe,offset:Dr,defaultRef:tp({model:Ee,defaultPos:"mid",channel:ge,scaleName:mt,scale:it}),bandPosition:Or?qa==="encoding"?0:.5:Je(gn)?{signal:`(1-${gn})/2`}:Ys(gn)?(1-gn.band)/2:0});if(Qe)return{[fn]:Vn,...qt};{let or=fa(Ct),ln=qt[Qe],At=Dr?{...ln,offset:Dr}:ln;return{[fn]:Vn,[or]:h.isArray(Vn)?[Vn[0],{...Vn[1],offset:At}]:{...Vn,offset:At}}}})(C,s,l):ko(s,l,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"}):(function(he){let{fieldDef:ge,fieldDef2:Ee,channel:Se,model:Re}=he,{config:Pe,markDef:qe,encoding:st}=Re,mt=Re.getScaleComponent(Se),it=Re.scaleName(Se),Qe=mt?mt.get("type"):void 0,Ct=mt.get("reverse"),Ht=sm({channel:Se,fieldDef:ge,markDef:qe,config:Pe,scaleType:Qe}),Mn=Re.component.axes[Se]?.[0],wn=Mn?.get("translate")??.5,kn=un(Se)?Yt("binSpacing",qe,Pe)??0:0,qt=Ri(Se),Ft=fa(Se),gn=fa(qt),Rn=jr("minBandSize",qe,Pe),{offset:fn}=vc({channel:Se,markDef:qe,encoding:st,model:Re,bandPosition:0}),{offset:Or}=vc({channel:qt,markDef:qe,encoding:st,model:Re,bandPosition:0}),Dr=(function(At){let{scaleName:Zr,fieldDef:xs}=At,no=Ge(xs,{expr:"datum"});return`abs(scale("${Zr}", ${Ge(xs,{expr:"datum",suffix:"end"})}) - scale("${Zr}", ${no}))`})({fieldDef:ge,scaleName:it}),qa=ig(Se,kn,Ct,wn,fn,Rn,Dr),Vn=ig(qt,kn,Ct,wn,Or??fn,Rn,Dr),or=Je(Ht)?{signal:`(1-${Ht.signal})/2`}:Ys(Ht)?(1-Ht.band)/2:.5,ln=Fi({fieldDef:ge,fieldDef2:Ee,markDef:qe,config:Pe});if(Jt(ge.bin)||ge.timeUnit){let At=ge.timeUnit&&ln!==.5;return{[gn]:og({fieldDef:ge,scaleName:it,bandPosition:or,offset:Vn,useRectOffsetField:At}),[Ft]:og({fieldDef:ge,scaleName:it,bandPosition:Je(or)?{signal:`1-${or.signal}`}:1-or,offset:qa,useRectOffsetField:At})}}if($n(ge.bin)){let At=Ks(ge,it,{},{offset:Vn});if(ze(Ee))return{[gn]:At,[Ft]:Ks(Ee,it,{},{offset:qa})};if(mo(ge.bin)&&ge.bin.step)return{[gn]:At,[Ft]:{signal:`scale("${it}", ${Ge(ge,{expr:"datum"})} + ${ge.bin.step})`,offset:qa}}}return void $e(Kd(qt))})({fieldDef:C,fieldDef2:$,channel:s,model:l})}function jy(l,s,d,m,y,k,A){if(Ys(y)){if(!d)return{mult:y.band,field:{group:l}};{let R=d.get("type");if(R==="band"){let C=`bandwidth('${s}')`;y.band!==1&&(C=`${y.band} * ${C}`);let $=jr("minBandSize",{type:A},m);return{signal:$?`max(${fr($)}, ${C})`:C}}y.band!==1&&($e((function(C){return`Cannot use the relative band size with ${C} scale.`})(R)),y=void 0)}}else{if(Je(y))return y;if(y)return{value:y}}if(d){let R=d.get("range");if(go(R)&&h.isNumber(R.step))return{value:R.step-2}}if(!k){let{bandPaddingInner:R,barBandPaddingInner:C,rectBandPaddingInner:$}=m.scale,j=Tt(R,A==="bar"?C:$);if(Je(j))return{signal:`(1 - (${j.signal})) * ${l}`};if(h.isNumber(j))return{signal:`${1-j} * ${l}`}}return{value:fc(m.view,l)-2}}function ig(l,s,d,m,y,k,A){if($d(l))return 0;let R=l==="x"||l==="y2",C=R?-s/2:s/2;if(Je(d)||Je(y)||Je(m)||k){let $=fr(d),j=fr(y),H=fr(m),ee=fr(k),ae=k?`(${A} < ${ee} ? ${R?"":"-"}0.5 * (${ee} - (${A})) : ${C})`:C;return{signal:(H?`${H} + `:"")+($?`(${$} ? -1 : 1) * `:"")+(j?`(${j} + ${ae})`:ae)}}return y=y||0,m+(d?-y-C:+y+C)}function og(l){let{fieldDef:s,scaleName:d,bandPosition:m,offset:y,useRectOffsetField:k}=l;return df({scaleName:d,fieldOrDatumDef:s,bandPosition:m,offset:y,...k?{startSuffix:Jf,endSuffix:Gt}:{}})}let p_=new Set(["aria","width","height"]);function Nr(l,s){let{fill:d,stroke:m}=s.color==="include"?Lu(l):{};return{...h_(l.markDef,s),...rp(l,"fill",d),...rp(l,"stroke",m),...jn("opacity",l),...jn("fillOpacity",l),...jn("strokeOpacity",l),...jn("strokeWidth",l),...jn("strokeDash",l),...Uy(l),...Du(l),...ep(l,"href"),...u_(l)}}function rp(l,s,d){let{config:m,mark:y,markDef:k}=l;if(Yt("invalid",k,m)==="hide"&&d&&!as(y)){let A=(function(R,C){let{invalid:$=!1,channels:j}=C,H=j.reduce(((ae,ne)=>{let de=R.getScaleComponent(ne);if(de){let he=de.get("type"),ge=R.vgField(ne,{expr:"datum"});ge&&qr(he)&&(ae[ge]=!0)}return ae}),{}),ee=we(H);if(ee.length>0){let ae=$?"||":"&&";return ee.map((ne=>Qh(ne,$))).join(` ${ae} `)}})(l,{invalid:!0,channels:Gl});if(A)return{[s]:[{test:A,value:null},...h.array(d)]}}return d?{[s]:d}:{}}function h_(l,s){return Hl.reduce(((d,m)=>(p_.has(m)||l[m]===void 0||s[m]==="ignore"||(d[m]=sn(l[m])),d)),{})}function Fu(l){let{config:s,markDef:d}=l;if(Yt("invalid",d,s)){let m=(function(y,k){let{invalid:A=!1,channels:R}=k,C=R.reduce(((j,H)=>{let ee=y.getScaleComponent(H);if(ee){let ae=ee.get("type"),ne=y.vgField(H,{expr:"datum",binSuffix:y.stack?.impute?"mid":void 0});ne&&qr(ae)&&(j[ne]=!0)}return j}),{}),$=we(C);if($.length>0){let j=A?"||":"&&";return $.map((H=>Qh(H,A))).join(` ${j} `)}})(l,{channels:ni});if(m)return{defined:{signal:m}}}return{}}function Hy(l,s){if(s!==void 0)return{[l]:sn(s)}}let Pu="voronoi",qy={defined:l=>l.type==="point"&&l.nearest,parse:(l,s)=>{if(s.events)for(let d of s.events)d.markname=l.getName(Pu)},marks:(l,s,d)=>{let{x:m,y}=s.project.hasChannel,k=l.mark;if(as(k))return $e(`The "nearest" transform is not supported for ${k} marks.`),d;let A={name:l.getName(Pu),type:"path",interactive:!0,from:{data:l.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...Du(l,{reactiveGeom:!0})}},transform:[{type:"voronoi",x:{expr:m||!y?"datum.datum.x || 0":"0"},y:{expr:y||!m?"datum.datum.y || 0":"0"},size:[l.getSizeSignalRef("width"),l.getSizeSignalRef("height")]}]},R=0,C=!1;return d.forEach((($,j)=>{let H=$.name??"";H===l.component.mark[0].name?R=j:H.indexOf(Pu)>=0&&(C=!0)})),C||d.splice(R+1,0,A),d}},ap={defined:l=>l.type==="point"&&l.resolve==="global"&&l.bind&&l.bind!=="scales"&&!Of(l.bind),parse:(l,s,d)=>fi(s,d),topLevelSignals:(l,s,d)=>{let m=s.name,y=s.project,k=s.bind,A=s.init&&s.init[0],R=qy.defined(s)?"(item().isVoronoi ? datum.datum : datum)":"datum";return y.items.forEach(((C,$)=>{let j=me(`${m}_${C.field}`);d.filter((H=>H.name===j)).length||d.unshift({name:j,...A?{init:fs(A[$])}:{value:null},on:s.events?[{events:s.events,update:`datum && item().mark.marktype !== 'group' ? ${R}[${h.stringValue(C.field)}] : null`}]:[],bind:k[C.field]??k[C.channel]??k})})),d},signals:(l,s,d)=>{let m=s.name,y=s.project,k=d.filter(($=>$.name===m+_o))[0],A=m+Ou,R=y.items.map(($=>me(`${m}_${$.field}`))),C=R.map(($=>`${$} !== null`)).join(" && ");return R.length&&(k.update=`${C} ? {fields: ${A}, values: [${R.join(", ")}]} : null`),delete k.value,delete k.on,d}},$u="_toggle",Wy={defined:l=>l.type==="point"&&!!l.toggle,signals:(l,s,d)=>d.concat({name:s.name+$u,value:!1,on:[{events:s.events,update:s.toggle}]}),modifyExpr:(l,s)=>{let d=s.name+_o,m=s.name+$u;return`${m} ? null : ${d}, `+(s.resolve==="global"?`${m} ? null : true, `:`${m} ? null : {unit: ${Vr(l)}}, `)+`${m} ? ${d} : null`}},Vy={defined:l=>l.clear!==void 0&&l.clear!==!1,parse:(l,s)=>{s.clear&&(s.clear=h.isString(s.clear)?h.parseSelector(s.clear,"view"):s.clear)},topLevelSignals:(l,s,d)=>{if(ap.defined(s))for(let m of s.project.items){let y=d.findIndex((k=>k.name===me(`${s.name}_${m.field}`)));y!==-1&&d[y].on.push({events:s.clear,update:"null"})}return d},signals:(l,s,d)=>{function m(y,k){y!==-1&&d[y].on&&d[y].on.push({events:s.clear,update:k})}if(s.type==="interval")for(let y of s.project.items){let k=d.findIndex((A=>A.name===y.signals.visual));m(k,"[0, 0]"),k===-1&&m(d.findIndex((A=>A.name===y.signals.data)),"null")}else{let y=d.findIndex((k=>k.name===s.name+_o));m(y,"null"),Wy.defined(s)&&(y=d.findIndex((k=>k.name===s.name+$u)),m(y,"false"))}return d}},Yy={defined:l=>{let s=l.resolve==="global"&&l.bind&&Of(l.bind),d=l.project.items.length===1&&l.project.items[0].field!==ba;return s&&!d&&$e("Legend bindings are only supported for selections over an individual field or encoding channel."),s&&d},parse:(l,s,d)=>{let m=U(d);if(m.select=h.isString(m.select)?{type:m.select,toggle:s.toggle}:{...m.select,toggle:s.toggle},fi(s,m),h.isObject(d.select)&&(d.select.on||d.select.clear)){let A='event.item && indexof(event.item.mark.role, "legend") < 0';for(let R of s.events)R.filter=h.array(R.filter??[]),R.filter.includes(A)||R.filter.push(A)}let y=Df(s.bind)?s.bind.legend:"click",k=h.isString(y)?h.parseSelector(y,"view"):h.array(y);s.bind={legend:{merge:k}}},topLevelSignals:(l,s,d)=>{let m=s.name,y=Df(s.bind)&&s.bind.legend,k=A=>R=>{let C=U(R);return C.markname=A,C};for(let A of s.project.items){if(!A.hasLegend)continue;let R=`${me(A.field)}_legend`,C=`${m}_${R}`;if(d.filter(($=>$.name===C)).length===0){let $=y.merge.map(k(`${R}_symbols`)).concat(y.merge.map(k(`${R}_labels`))).concat(y.merge.map(k(`${R}_entries`)));d.unshift({name:C,...s.init?{}:{value:null},on:[{events:$,update:"isDefined(datum.value) ? datum.value : item().items[0].items[0].datum.value",force:!0},{events:y.merge,update:`!event.item || !datum ? null : ${C}`,force:!0}]})}}return d},signals:(l,s,d)=>{let m=s.name,y=s.project,k=d.find((H=>H.name===m+_o)),A=m+Ou,R=y.items.filter((H=>H.hasLegend)).map((H=>me(`${m}_${me(H.field)}_legend`))),C=`${R.map((H=>`${H} !== null`)).join(" && ")} ? {fields: ${A}, values: [${R.join(", ")}]} : null`;s.events&&R.length>0?k.on.push({events:R.map((H=>({signal:H}))),update:C}):R.length>0&&(k.update=C,delete k.value,delete k.on);let $=d.find((H=>H.name===m+$u)),j=Df(s.bind)&&s.bind.legend;return $&&(s.events?$.on.push({...$.on[0],events:j}):$.on[0].events=j),d}},sg="_translate_anchor",Ky="_translate_delta",Xy={defined:l=>l.type==="interval"&&l.translate,signals:(l,s,d)=>{let m=s.name,y=Cr.defined(s),k=m+sg,{x:A,y:R}=s.project.hasChannel,C=h.parseSelector(s.translate,"scope");return y||(C=C.map(($=>($.between[0].markname=m+wo,$)))),d.push({name:k,value:{},on:[{events:C.map(($=>$.between[0])),update:"{x: x(unit), y: y(unit)"+(A!==void 0?`, extent_x: ${y?Gn(l,et):`slice(${A.signals.visual})`}`:"")+(R!==void 0?`, extent_y: ${y?Gn(l,nt):`slice(${R.signals.visual})`}`:"")+"}"}]},{name:m+Ky,value:{},on:[{events:C,update:`{x: ${k}.x - x(unit), y: ${k}.y - y(unit)}`}]}),A!==void 0&&lg(l,s,A,"width",d),R!==void 0&&lg(l,s,R,"height",d),d}};function lg(l,s,d,m,y){let k=s.name,A=k+sg,R=k+Ky,C=d.channel,$=Cr.defined(s),j=y.filter((ge=>ge.name===d.signals[$?"data":"visual"]))[0],H=l.getSizeSignalRef(m).signal,ee=l.getScaleComponent(C),ae=ee&&ee.get("type"),ne=ee&&ee.get("reverse"),de=`${A}.extent_${C}`,he=`${$&&ee?ae==="log"?"panLog":ae==="symlog"?"panSymlog":ae==="pow"?"panPow":"panLinear":"panLinear"}(${de}, ${`${$?C===et?ne?"":"-":ne?"-":"":""}${R}.${C} / ${$?`${H}`:`span(${de})`}`}${$?ae==="pow"?`, ${ee.get("exponent")??1}`:ae==="symlog"?`, ${ee.get("constant")??1}`:"":""})`;j.on.push({events:{signal:R},update:$?he:`clampRange(${he}, 0, ${H})`})}let cg="_zoom_anchor",ug="_zoom_delta",dg={defined:l=>l.type==="interval"&&l.zoom,signals:(l,s,d)=>{let m=s.name,y=Cr.defined(s),k=m+ug,{x:A,y:R}=s.project.hasChannel,C=h.stringValue(l.scaleName(et)),$=h.stringValue(l.scaleName(nt)),j=h.parseSelector(s.zoom,"scope");return y||(j=j.map((H=>(H.markname=m+wo,H)))),d.push({name:m+cg,on:[{events:j,update:y?"{"+[C?`x: invert(${C}, x(unit))`:"",$?`y: invert(${$}, y(unit))`:""].filter((H=>H)).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:k,on:[{events:j,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),A!==void 0&&Bu(l,s,A,"width",d),R!==void 0&&Bu(l,s,R,"height",d),d}};function Bu(l,s,d,m,y){let k=s.name,A=d.channel,R=Cr.defined(s),C=y.filter((de=>de.name===d.signals[R?"data":"visual"]))[0],$=l.getSizeSignalRef(m).signal,j=l.getScaleComponent(A),H=j&&j.get("type"),ee=R?Gn(l,A):C.name,ae=k+ug,ne=`${R&&j?H==="log"?"zoomLog":H==="symlog"?"zoomSymlog":H==="pow"?"zoomPow":"zoomLinear":"zoomLinear"}(${ee}, ${`${k}${cg}.${A}`}, ${ae}${R?H==="pow"?`, ${j.get("exponent")??1}`:H==="symlog"?`, ${j.get("constant")??1}`:"":""})`;C.on.push({events:{signal:ae},update:R?ne:`clampRange(${ne}, 0, ${$})`})}let hs="_store",_o="_tuple",Zy="_modify",fg="vlSelectionResolve",il=[rl,rg,Vi,Wy,ap,Cr,Yy,Vy,Xy,dg,qy];function Vr(l){let{escape:s}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{escape:!0},d=s?h.stringValue(l.name):l.name,m=(function(y){let k=y.parent;for(;k&&!Kr(k);)k=k.parent;return k})(l);if(m){let{facet:y}=m;for(let k of zr)y[k]&&(d+=` + '__facet_${k}_' + (facet[${h.stringValue(m.vgField(k))}])`)}return d}function pg(l){return Ve(l.component.selection??{}).reduce(((s,d)=>s||d.project.hasSelectionId),!1)}function fi(l,s){!h.isString(s.select)&&s.select.on||delete l.events,!h.isString(s.select)&&s.select.clear||delete l.clear,!h.isString(s.select)&&s.select.toggle||delete l.toggle}function Yi(l){let s=[];return l.type==="Identifier"?[l.name]:l.type==="Literal"?[l.value]:(l.type==="MemberExpression"&&(s.push(...Yi(l.object)),s.push(...Yi(l.property))),s)}function ip(l){return l.object.type==="MemberExpression"?ip(l.object):l.object.name==="datum"}function op(l){let s=h.parseExpression(l),d=new Set;return s.visit((m=>{m.type==="MemberExpression"&&ip(m)&&d.add(Yi(m).slice(1).join("."))})),d}class pi extends Kt{clone(){return new pi(null,this.model,U(this.filter))}constructor(s,d,m){super(s),this.model=d,this.filter=m,ct(this,"expr",void 0),ct(this,"_dependentFields",void 0),this.expr=Ki(this.model,this.filter,this),this._dependentFields=op(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function Ec(l,s,d){let m=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"datum",y=h.isString(s)?s:s.param,k=me(y),A=h.stringValue(k+hs),R;try{R=l.getSelectionComponent(k,y)}catch{return`!!${k}`}if(R.project.timeUnit){let j=d??l.component.data.raw,H=R.project.timeUnit.clone();j.parent?H.insertAsParentOf(j):j.parent=H}let C=`${R.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest("}${A}, ${m}${R.resolve==="global"?")":`, ${h.stringValue(R.resolve)})`}`,$=`length(data(${A}))`;return s.empty===!1?`${$} && ${C}`:`!${$} || ${C}`}function xo(l,s,d){let m=me(s),y=d.encoding,k,A=d.field;try{k=l.getSelectionComponent(m,s)}catch{return m}if(y||A){if(y&&!A){let R=k.project.items.filter((C=>C.channel===y));!R.length||R.length>1?(A=k.project.items[0].field,$e((R.length?"Multiple ":"No ")+`matching ${h.stringValue(y)} encoding found for selection ${h.stringValue(d.param)}. Using "field": ${h.stringValue(A)}.`)):A=R[0].field}}else A=k.project.items[0].field,k.project.items.length>1&&$e(`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${h.stringValue(A)}.`);return`${k.name}[${h.stringValue(Ot(A))}]`}function Ki(l,s,d){return ke(s,(m=>h.isString(m)?m:(function(y){return y?.param})(m)?Ec(l,m,d):nf(m)))}function ms(l,s,d,m){l.encode??={},l.encode[s]??={},l.encode[s].update??={},l.encode[s].update[d]=m}function Xi(l,s,d){let m=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{header:!1},{disable:y,orient:k,scale:A,labelExpr:R,title:C,zindex:$,...j}=l.combine();if(!y){for(let H in j){let ee=kf[H],ae=j[H];if(ee&&ee!==s&&ee!=="both")delete j[H];else if(sc(ae)){let{condition:ne,...de}=ae,he=h.array(ne),ge=ss[H];if(ge){let{vgProp:Ee,part:Se}=ge;ms(j,Se,Ee,[...he.map((Re=>{let{test:Pe,...qe}=Re;return{test:Ki(null,Pe),...qe}})),de]),delete j[H]}else if(ge===null){let Ee={signal:he.map((Se=>{let{test:Re,...Pe}=Se;return`${Ki(null,Re)} ? ${ts(Pe)} : `})).join("")+ts(de)};j[H]=Ee}}else if(Je(ae)){let ne=ss[H];if(ne){let{vgProp:de,part:he}=ne;ms(j,he,de,ae),delete j[H]}}Y(["labelAlign","labelBaseline"],H)&&j[H]===null&&delete j[H]}if(s==="grid"){if(!j.grid)return;if(j.encode){let{grid:H}=j.encode;j.encode={...H?{grid:H}:{}},ye(j.encode)&&delete j.encode}return{scale:A,orient:k,...j,domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:Tt($,0)}}{if(!m.header&&l.mainExtracted)return;if(R!==void 0){let ee=R;j.encode?.labels?.update&&Je(j.encode.labels.update.text)&&(ee=_t(R,"datum.label",j.encode.labels.update.text.signal)),ms(j,"labels","text",{signal:ee})}if(j.labelAlign===null&&delete j.labelAlign,j.encode){for(let ee of ls)l.hasAxisPart(ee)||delete j.encode[ee];ye(j.encode)&&delete j.encode}let H=(function(ee,ae){if(ee)return h.isArray(ee)&&!dr(ee)?ee.map((ne=>Ef(ne,ae))).join(", "):ee})(C,d);return{scale:A,orient:k,grid:!1,...H?{title:H}:{},...j,...d.aria===!1?{aria:!1}:{},zindex:Tt($,0)}}}}function wc(l){let{axes:s}=l.component,d=[];for(let m of ni)if(s[m]){for(let y of s[m])if(!y.get("disable")&&!y.get("gridScale")){let k=m==="x"?"height":"width",A=l.getSizeSignalRef(k).signal;k!==A&&d.push({name:k,update:A})}}return d}function hi(l,s,d,m){return Object.assign.apply(null,[{},...l.map((y=>{if(y==="axisOrient"){let k=d==="x"?"bottom":"left",A=s[d==="x"?"axisBottom":"axisLeft"]||{},R=s[d==="x"?"axisTop":"axisRight"]||{},C=new Set([...we(A),...we(R)]),$={};for(let j of C.values())$[j]={signal:`${m.signal} === "${k}" ? ${fr(A[j])} : ${fr(R[j])}`};return $}return s[y]}))])}function m_(l,s){let d=[{}];for(let m of l){let y=s[m]?.style;if(y){y=h.array(y);for(let k of y)d.push(s.style[k])}}return Object.assign.apply(null,d)}function hg(l,s,d){let m=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},y=$0(l,d,s);if(y!==void 0)return{configFrom:"style",configValue:y};for(let k of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(m[k]?.[l]!==void 0)return{configFrom:k,configValue:m[k][l]};return{}}let Jy={scale:l=>{let{model:s,channel:d}=l;return s.scaleName(d)},format:l=>{let{format:s}=l;return s},formatType:l=>{let{formatType:s}=l;return s},grid:l=>{let{fieldOrDatumDef:s,axis:d,scaleType:m}=l;return d.grid??(function(y,k){return!zn(y)&&ze(k)&&!Jt(k?.bin)&&!$n(k?.bin)})(m,s)},gridScale:l=>{let{model:s,channel:d}=l;return(function(m,y){let k=y==="x"?"y":"x";if(m.getScaleComponent(k))return m.scaleName(k)})(s,d)},labelAlign:l=>{let{axis:s,labelAngle:d,orient:m,channel:y}=l;return s.labelAlign||ev(d,m,y)},labelAngle:l=>{let{labelAngle:s}=l;return s},labelBaseline:l=>{let{axis:s,labelAngle:d,orient:m,channel:y}=l;return s.labelBaseline||Qy(d,m,y)},labelFlush:l=>{let{axis:s,fieldOrDatumDef:d,channel:m}=l;return s.labelFlush??(function(y,k){if(k==="x"&&Y(["quantitative","temporal"],y))return!0})(d.type,m)},labelOverlap:l=>{let{axis:s,fieldOrDatumDef:d,scaleType:m}=l;return s.labelOverlap??(function(y,k,A,R){if(A&&!h.isObject(R)||y!=="nominal"&&y!=="ordinal")return k!=="log"&&k!=="symlog"||"greedy"})(d.type,m,ze(d)&&!!d.timeUnit,ze(d)?d.sort:void 0)},orient:l=>{let{orient:s}=l;return s},tickCount:l=>{let{channel:s,model:d,axis:m,fieldOrDatumDef:y,scaleType:k}=l,A=s==="x"?"width":s==="y"?"height":void 0,R=A?d.getSizeSignalRef(A):void 0;return m.tickCount??(function(C){let{fieldOrDatumDef:$,scaleType:j,size:H,values:ee}=C;if(!ee&&!zn(j)&&j!=="log"){if(ze($)){if(Jt($.bin))return{signal:`ceil(${H.signal}/10)`};if($.timeUnit&&Y(["month","hours","day","quarter"],Un($.timeUnit)?.unit))return}return{signal:`ceil(${H.signal}/40)`}}})({fieldOrDatumDef:y,scaleType:k,size:R,values:m.values})},tickMinStep:function(l){let{format:s,fieldOrDatumDef:d}=l;if(s==="d")return 1;if(ze(d)){let{timeUnit:m}=d;if(m){let y=J0(m);if(y)return{signal:y}}}},title:l=>{let{axis:s,model:d,channel:m}=l;if(s.title!==void 0)return s.title;let y=tv(d,m);if(y!==void 0)return y;let k=d.typedFieldDef(m),A=m==="x"?"x2":"y2",R=d.fieldDef(A);return Wl(k?[om(k)]:[],ze(R)?[om(R)]:[])},values:l=>{let{axis:s,fieldOrDatumDef:d}=l;return(function(m,y){let k=m.values;if(h.isArray(k))return gu(y,k);if(Je(k))return k})(s,d)},zindex:l=>{let{axis:s,fieldOrDatumDef:d,mark:m}=l;return s.zindex??(function(y,k){return y==="rect"&&rc(k)?1:0})(m,d)}};function mg(l){return`(((${l.signal} % 360) + 360) % 360)`}function Qy(l,s,d,m){if(l!==void 0){if(d==="x"){if(Je(l)){let y=mg(l);return{signal:`(45 < ${y} && ${y} < 135) || (225 < ${y} && ${y} < 315) ? "middle" :(${y} <= 45 || 315 <= ${y}) === ${Je(s)?`(${s.signal} === "top")`:s==="top"} ? "bottom" : "top"`}}if(45<l&&l<135||225<l&&l<315)return"middle";if(Je(s)){let y=l<=45||315<=l?"===":"!==";return{signal:`${s.signal} ${y} "top" ? "bottom" : "top"`}}return(l<=45||315<=l)==(s==="top")?"bottom":"top"}if(Je(l)){let y=mg(l);return{signal:`${y} <= 45 || 315 <= ${y} || (135 <= ${y} && ${y} <= 225) ? ${m?'"middle"':"null"} : (45 <= ${y} && ${y} <= 135) === ${Je(s)?`(${s.signal} === "left")`:s==="left"} ? "top" : "bottom"`}}if(l<=45||315<=l||135<=l&&l<=225)return m?"middle":null;if(Je(s)){let y=45<=l&&l<=135?"===":"!==";return{signal:`${s.signal} ${y} "left" ? "top" : "bottom"`}}return(45<=l&&l<=135)==(s==="left")?"top":"bottom"}}function ev(l,s,d){if(l===void 0)return;let m=d==="x",y=m?0:90,k=m?"bottom":"left";if(Je(l)){let A=mg(l);return{signal:`(${y?`(${A} + 90)`:A} % 180 === 0) ? ${m?null:'"center"'} :(${y} < ${A} && ${A} < ${180+y}) === ${Je(s)?`(${s.signal} === "${k}")`:s===k} ? "left" : "right"`}}if((l+y)%180==0)return m?null:"center";if(Je(s)){let A=y<l&&l<180+y?"===":"!==";return{signal:`${`${s.signal} ${A} "${k}"`} ? "left" : "right"`}}return(y<l&&l<180+y)==(s===k)?"left":"right"}function tv(l,s){let d=s==="x"?"x2":"y2",m=l.fieldDef(s),y=l.fieldDef(d),k=m?m.title:void 0,A=y?y.title:void 0;return k&&A?ai(k,A):k||A||(k!==void 0?k:A!==void 0?A:void 0)}class ol extends Kt{clone(){return new ol(null,U(this.transform))}constructor(s,d){super(s),this.transform=d,ct(this,"_dependentFields",void 0),this._dependentFields=op(this.transform.calculate)}static parseAllForSortIndex(s,d){return d.forEachFieldDef(((m,y)=>{if($i(m)&&pu(m.sort)){let{field:k,timeUnit:A}=m,R=m.sort,C=R.map((($,j)=>`${nf({field:k,timeUnit:A,equal:$})} ? ${j} : `)).join("")+R.length;s=new ol(s,{calculate:C,as:sl(m,y,{forAs:!0})})}})),s}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${V(this.transform)}`}}function sl(l,s,d){return Ge(l,{prefix:s,suffix:"sort_index",...d??{}})}function Uu(l,s){return Y(["top","bottom"],s)?"column":Y(["left","right"],s)||l==="row"?"row":"column"}function Zi(l,s,d,m){let y=m==="row"?d.headerRow:m==="column"?d.headerColumn:d.headerFacet;return Tt((s||{})[l],y[l],d.header[l])}function zu(l,s,d,m){let y={};for(let k of l){let A=Zi(k,s||{},d,m);A!==void 0&&(y[k]=A)}return y}let kc=["row","column"],Gu=["header","footer"];function gs(l,s){let d=l.component.layoutHeaders[s].title,m=l.config?l.config:void 0,y=l.component.layoutHeaders[s].facetFieldDef?l.component.layoutHeaders[s].facetFieldDef:void 0,{titleAnchor:k,titleAngle:A,titleOrient:R}=zu(["titleAnchor","titleAngle","titleOrient"],y.header,m,s),C=Uu(s,R),$=$r(A);return{name:`${s}-title`,type:"group",role:`${C}-title`,title:{text:d,...s==="row"?{orient:"left"}:{},style:"guide-title",...gg($,C),...On(C,$,k),...ju(m,y,s,wm,wu)}}}function On(l,s){switch(arguments.length>2&&arguments[2]!==void 0?arguments[2]:"middle"){case"start":return{align:"left"};case"end":return{align:"right"}}let d=ev(s,l==="row"?"left":"top",l==="row"?"y":"x");return d?{align:d}:{}}function gg(l,s){let d=Qy(l,s==="row"?"left":"top",s==="row"?"y":"x",!0);return d?{baseline:d}:{}}function nv(l,s){let d=l.component.layoutHeaders[s],m=[];for(let y of Gu)if(d[y])for(let k of d[y]){let A=ll(l,s,y,d,k);A!=null&&m.push(A)}return m}function sp(l,s){let{sort:d}=l;return li(d)?{field:Ge(d,{expr:"datum"}),order:d.order??"ascending"}:h.isArray(d)?{field:sl(l,s,{expr:"datum"}),order:"ascending"}:{field:Ge(l,{expr:"datum"}),order:d??"ascending"}}function So(l,s,d){let{format:m,formatType:y,labelAngle:k,labelAnchor:A,labelOrient:R,labelExpr:C}=zu(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],l.header,d,s),$=tm({fieldOrDatumDef:l,format:m,formatType:y,expr:"parent",config:d}).signal,j=Uu(s,R);return{text:{signal:C?_t(_t(C,"datum.label",$),"datum.value",Ge(l,{expr:"parent"})):$},...s==="row"?{orient:"left"}:{},style:"guide-label",frame:"group",...gg(k,j),...On(j,k,A),...ju(d,l,s,km,ku)}}function ll(l,s,d,m,y){if(y){let k=null,{facetFieldDef:A}=m,R=l.config?l.config:void 0;if(A&&y.labels){let{labelOrient:H}=zu(["labelOrient"],A.header,R,s);(s==="row"&&!Y(["top","bottom"],H)||s==="column"&&!Y(["left","right"],H))&&(k=So(A,s,R))}let C=Kr(l)&&!Ql(l.facet),$=y.axes,j=$?.length>0;if(k||j){let H=s==="row"?"height":"width";return{name:l.getName(`${s}_${d}`),type:"group",role:`${s}-${d}`,...m.facetFieldDef?{from:{data:l.getName(`${s}_domain`)},sort:sp(A,s)}:{},...j&&C?{from:{data:l.getName(`facet_domain_${s}`)}}:{},...k?{title:k}:{},...y.sizeSignal?{encode:{update:{[H]:y.sizeSignal}}}:{},...j?{axes:$}:{}}}}return null}let rv={column:{start:0,end:1},row:{start:1,end:0}};function av(l,s){return rv[s][l]}function ju(l,s,d,m,y){let k={};for(let A of m){if(!y[A])continue;let R=Zi(A,s?.header,l,d);R!==void 0&&(k[y[A]]=R)}return k}function ya(l){return[...Hu(l,"width"),...Hu(l,"height"),...Hu(l,"childWidth"),...Hu(l,"childHeight")]}function Hu(l,s){let d=s==="width"?"x":"y",m=l.component.layoutSize.get(s);if(!m||m==="merged")return[];let y=l.getSizeSignalRef(s).signal;if(m==="step"){let k=l.getScaleComponent(d);if(k){let A=k.get("type"),R=k.get("range");if(zn(A)&&go(R)){let C=l.scaleName(d);return Kr(l.parent)&&l.parent.component.resolve.scale[d]==="independent"?[qu(C,R)]:[qu(C,R),{name:y,update:lp(C,k,`domain('${C}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}if(m=="container"){let k=y.endsWith("width"),A=k?"containerSize()[0]":"containerSize()[1]",R=`isFinite(${A}) ? ${A} : ${us(l.config.view,k?"width":"height")}`;return[{name:y,init:R,on:[{update:R,events:"window:resize"}]}]}return[{name:y,value:m}]}function qu(l,s){let d=`${l}_step`;return Je(s.step)?{name:d,update:s.step.signal}:{name:d,value:s.step}}function lp(l,s,d){let m=s.get("type"),y=s.get("padding"),k=Tt(s.get("paddingOuter"),y),A=s.get("paddingInner");return A=m==="band"?A!==void 0?A:y:1,`bandspace(${d}, ${fr(A)}, ${fr(k)}) * ${l}_step`}function bg(l){return l==="childWidth"?"width":l==="childHeight"?"height":l}function yg(l,s){return we(l).reduce(((d,m)=>{let y=l[m];return{...d,...bc(s,y,m,(k=>sn(k.value)))}}),{})}function vg(l,s){if(Kr(s))return l==="theta"?"independent":"shared";if(Es(s))return"shared";if(Ji(s))return un(l)||l==="theta"||l==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function cp(l,s){let d=l.scale[s],m=un(s)?"axis":"legend";return d==="independent"?(l[m][s]==="shared"&&$e((function(y){return`Setting the scale to be independent for "${y}" means we also have to set the guide (axis or legend) to be independent.`})(s)),"independent"):l[m][s]||"shared"}let Eg=we({aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1,disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1});class iv extends ji{}let cl={symbols:function(l,s){let{fieldOrDatumDef:d,model:m,channel:y,legendCmpt:k,legendType:A}=s;if(A!=="symbol")return;let{markDef:R,encoding:C,config:$,mark:j}=m,H=R.filled&&j!=="trail",ee={...Gd({},m,Wk),...Lu(m,{filled:H})},ae=k.get("symbolOpacity")??$.legend.symbolOpacity,ne=k.get("symbolFillColor")??$.legend.symbolFillColor,de=k.get("symbolStrokeColor")??$.legend.symbolStrokeColor,he=ae===void 0?wg(C.opacity)??R.opacity:void 0;if(ee.fill){if(y==="fill"||H&&y===Fe)delete ee.fill;else if(ee.fill.field)ne?delete ee.fill:(ee.fill=sn($.legend.symbolBaseFillColor??"black"),ee.fillOpacity=sn(he??1));else if(h.isArray(ee.fill)){let ge=kg(C.fill??C.color)??R.fill??(H&&R.color);ge&&(ee.fill=sn(ge))}}if(ee.stroke){if(y==="stroke"||!H&&y===Fe)delete ee.stroke;else if(ee.stroke.field||de)delete ee.stroke;else if(h.isArray(ee.stroke)){let ge=Tt(kg(C.stroke||C.color),R.stroke,H?R.color:void 0);ge&&(ee.stroke={value:ge})}}if(y!==Si){let ge=ze(d)&&Wu(m,k,d);ge?ee.opacity=[{test:ge,...sn(he??1)},sn($.legend.unselectedOpacity)]:he&&(ee.opacity=sn(he))}return ee={...ee,...l},ye(ee)?void 0:ee},gradient:function(l,s){let{model:d,legendType:m,legendCmpt:y}=s;if(m!=="gradient")return;let{config:k,markDef:A,encoding:R}=d,C={},$=(y.get("gradientOpacity")??k.legend.gradientOpacity)===void 0?wg(R.opacity)||A.opacity:void 0;return $&&(C.opacity=sn($)),C={...C,...l},ye(C)?void 0:C},labels:function(l,s){let{fieldOrDatumDef:d,model:m,channel:y,legendCmpt:k}=s,A=m.legend(y)||{},R=m.config,C=ze(d)?Wu(m,k,d):void 0,$=C?[{test:C,value:1},{value:R.legend.unselectedOpacity}]:void 0,{format:j,formatType:H}=A,ee;Xs(H)?ee=si({fieldOrDatumDef:d,field:"datum.value",format:j,formatType:H,config:R}):j===void 0&&H===void 0&&R.customFormatTypes&&(d.type==="quantitative"&&R.numberFormatType?ee=si({fieldOrDatumDef:d,field:"datum.value",format:R.numberFormat,formatType:R.numberFormatType,config:R}):d.type==="temporal"&&R.timeFormatType&&ze(d)&&d.timeUnit===void 0&&(ee=si({fieldOrDatumDef:d,field:"datum.value",format:R.timeFormat,formatType:R.timeFormatType,config:R})));let ae={...$?{opacity:$}:{},...ee?{text:ee}:{},...l};return ye(ae)?void 0:ae},entries:function(l,s){let{legendCmpt:d}=s;return d.get("selections")?.length?{...l,fill:{value:"transparent"}}:l}};function wg(l){return _g(l,((s,d)=>Math.max(s,d.value)))}function kg(l){return _g(l,((s,d)=>Tt(s,d.value)))}function _g(l,s){return(function(d){let m=d?.condition;return!!m&&(h.isArray(m)||ma(m))})(l)?h.array(l.condition).reduce(s,l.value):ma(l)?l.value:void 0}function Wu(l,s,d){let m=s.get("selections");if(!m?.length)return;let y=h.stringValue(d.field);return m.map((k=>`(!length(data(${h.stringValue(me(k)+hs)})) || (${k}[${y}] && indexof(${k}[${y}], datum.value) >= 0))`)).join(" || ")}let mi={direction:l=>{let{direction:s}=l;return s},format:l=>{let{fieldOrDatumDef:s,legend:d,config:m}=l,{format:y,formatType:k}=d;return dy(s,s.type,y,k,m,!1)},formatType:l=>{let{legend:s,fieldOrDatumDef:d,scaleType:m}=l,{formatType:y}=s;return fy(y,d,m)},gradientLength:l=>{let{legend:s,legendConfig:d}=l;return s.gradientLength??d.gradientLength??(function(m){let{legendConfig:y,model:k,direction:A,orient:R,scaleType:C}=m,{gradientHorizontalMaxLength:$,gradientHorizontalMinLength:j,gradientVerticalMaxLength:H,gradientVerticalMinLength:ee}=y;if(za(C))return A==="horizontal"?R==="top"||R==="bottom"?up(k,"width",j,$):j:up(k,"height",ee,H)})(l)},labelOverlap:l=>{let{legend:s,legendConfig:d,scaleType:m}=l;return s.labelOverlap??d.labelOverlap??(function(y){if(Y(["quantile","threshold","log","symlog"],y))return"greedy"})(m)},symbolType:l=>{let{legend:s,markDef:d,channel:m,encoding:y}=l;return s.symbolType??(function(k,A,R,C){if(A!=="shape"){let $=kg(R)??C;if($)return $}switch(k){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"arc":case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}})(d.type,m,y.shape,d.shape)},title:l=>{let{fieldOrDatumDef:s,config:d}=l;return os(s,d,{allowDisabling:!0})},type:l=>{let{legendType:s,scaleType:d,channel:m}=l;if(Qo(m)&&za(d)){if(s==="gradient")return}else if(s==="symbol")return;return s},values:l=>{let{fieldOrDatumDef:s,legend:d}=l;return(function(m,y){let k=m.values;if(h.isArray(k))return gu(y,k);if(Je(k))return k})(d,s)}};function xg(l){let{legend:s}=l;return Tt(s.type,(function(d){let{channel:m,timeUnit:y,scaleType:k}=d;if(Qo(m)){if(Y(["quarter","month","day"],y))return"symbol";if(za(k))return"gradient"}return"symbol"})(l))}function Sg(l){let{legendConfig:s,legendType:d,orient:m,legend:y}=l;return y.direction??s[d?"gradientDirection":"symbolDirection"]??(function(k,A){switch(k){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return A==="gradient"?"horizontal":void 0}})(m,d)}function up(l,s,d,m){return{signal:`clamp(${l.getSizeSignalRef(s).signal}, ${d}, ${m})`}}function dp(l){let s=dn(l)?(function(d){let{encoding:m}=d,y={};for(let k of[Fe,...If]){let A=mn(m[k]);A&&d.getScaleComponent(k)&&(k===vn&&ze(A)&&A.type===Vs||(y[k]=Ao(d,k)))}return y})(l):(function(d){let{legends:m,resolve:y}=d.component;for(let k of d.children){dp(k);for(let A of we(k.component.legends))y.legend[A]=cp(d.component.resolve,A),y.legend[A]==="shared"&&(m[A]=Ag(m[A],k.component.legends[A]),m[A]||(y.legend[A]="independent",delete m[A]))}for(let k of we(m))for(let A of d.children)A.component.legends[k]&&y.legend[k]==="shared"&&delete A.component.legends[k];return m})(l);return l.component.legends=s,s}function fp(l,s,d,m){switch(s){case"disable":return d!==void 0;case"values":return!!d?.values;case"title":if(s==="title"&&l===m?.title)return!0}return l===(d||{})[s]}function Ao(l,s){let d=l.legend(s),{markDef:m,encoding:y,config:k}=l,A=k.legend,R=new iv({},(function(Se,Re){let Pe=Se.scaleName(Re);if(Se.mark==="trail"){if(Re==="color")return{stroke:Pe};if(Re==="size")return{strokeWidth:Pe}}return Re==="color"?Se.markDef.filled?{fill:Pe}:{stroke:Pe}:{[Re]:Pe}})(l,s));(function(Se,Re,Pe){let qe=Se.fieldDef(Re)?.field;for(let st of Ve(Se.component.selection??{})){let mt=st.project.hasField[qe]??st.project.hasChannel[Re];if(mt&&Yy.defined(st)){let it=Pe.get("selections")??[];it.push(st.name),Pe.set("selections",it,!1),mt.hasLegend=!0}}})(l,s,R);let C=d!==void 0?!d:A.disable;if(R.set("disable",C,d!==void 0),C)return R;d=d||{};let $=l.getScaleComponent(s).get("type"),j=mn(y[s]),H=ze(j)?Un(j.timeUnit)?.unit:void 0,ee=d.orient||k.legend.orient||"right",ae=xg({legend:d,channel:s,timeUnit:H,scaleType:$}),ne={legend:d,channel:s,model:l,markDef:m,encoding:y,fieldOrDatumDef:j,legendConfig:A,config:k,scaleType:$,orient:ee,legendType:ae,direction:Sg({legend:d,legendType:ae,orient:ee,legendConfig:A})};for(let Se of Eg){if(ae==="gradient"&&Se.startsWith("symbol")||ae==="symbol"&&Se.startsWith("gradient"))continue;let Re=Se in mi?mi[Se](ne):d[Se];if(Re!==void 0){let Pe=fp(Re,Se,d,l.fieldDef(s));(Pe||k.legend[Se]===void 0)&&R.set(Se,Re,Pe)}}let de=d?.encoding??{},he=R.get("selections"),ge={},Ee={fieldOrDatumDef:j,model:l,channel:s,legendCmpt:R,legendType:ae};for(let Se of["labels","legend","title","symbols","gradient","entries"]){let Re=yg(de[Se]??{},l),Pe=Se in cl?cl[Se](Re,Ee):Re;Pe===void 0||ye(Pe)||(ge[Se]={...he?.length&&ze(j)?{name:`${me(j.field)}_legend_${Se}`}:{},...he?.length?{interactive:!!he}:{},update:Pe})}return ye(ge)||R.set("encode",ge,!!d?.encoding),R}function Ag(l,s){if(!l)return s.clone();let d=l.getWithExplicit("orient"),m=s.getWithExplicit("orient");if(d.explicit&&m.explicit&&d.value!==m.value)return;let y=!1;for(let k of Eg){let A=qi(l.getWithExplicit(k),s.getWithExplicit(k),k,"legend",((R,C)=>{switch(k){case"symbolType":return ov(R,C);case"title":return ii(R,C);case"type":return y=!0,Ga("symbol")}return Nu(R,C,k,"legend")}));l.setWithExplicit(k,A)}return y&&(l.implicit?.encode?.gradient&&rt(l.implicit,["encode","gradient"]),l.explicit?.encode?.gradient&&rt(l.explicit,["encode","gradient"])),l}function ov(l,s){return s.value==="circle"?s:l}function pp(l){let s=l.component.legends,d={};for(let m of we(s)){let y=Be(l.getScaleComponent(m).get("domains"));if(d[y])for(let k of d[y])Ag(k,s[m])||d[y].push(s[m]);else d[y]=[s[m].clone()]}return Ve(d).flat().map((m=>(function(y,k){let{disable:A,labelExpr:R,selections:C,...$}=y.combine();if(!A){if(k.aria===!1&&$.aria==null&&($.aria=!1),$.encode?.symbols){let j=$.encode.symbols.update;!j.fill||j.fill.value==="transparent"||j.stroke||$.stroke||(j.stroke={value:"transparent"});for(let H of If)$[H]&&delete j[H]}if($.title||delete $.title,R!==void 0){let j=R;$.encode?.labels?.update&&Je($.encode.labels.update.text)&&(j=_t(R,"datum.label",$.encode.labels.update.text.signal)),(function(H,ee,ae,ne){H.encode??={},H.encode[ee]??={},H.encode[ee].update??={},H.encode[ee].update[ae]=ne})($,"labels","text",{signal:j})}return $}})(m,l.config))).filter((m=>m!==void 0))}function Tg(l){return Es(l)||Ji(l)?(function(s){return s.children.reduce(((d,m)=>d.concat(m.assembleProjections())),Vu(s))})(l):Vu(l)}function Vu(l){let s=l.component.projection;if(!s||s.merged)return[];let d=s.combine(),{name:m}=d;if(s.data){let y={signal:`[${s.size.map((A=>A.signal)).join(", ")}]`},k=s.data.reduce(((A,R)=>{let C=Je(R)?R.signal:`data('${l.lookupDataSource(R)}')`;return Y(A,C)||A.push(C),A}),[]);if(k.length<=0)throw new Error("Projection's fit didn't find any data sources");return[{name:m,size:y,fit:{signal:k.length>1?`[${k.join(", ")}]`:k[0]},...d}]}return[{name:m,translate:{signal:"[width / 2, height / 2]"},...d}]}let Yu=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class Rg extends ji{constructor(s,d,m,y){super({...d},{name:s}),this.specifiedProjection=d,this.size=m,this.data=y,ct(this,"merged",!1)}get isFit(){return!!this.data}}function Cg(l){l.component.projection=dn(l)?(function(s){if(s.hasProjection){let d=Jn(s.specifiedProjection),m=!(d&&(d.scale!=null||d.translate!=null)),y=m?[s.getSizeSignalRef("width"),s.getSizeSignalRef("height")]:void 0,k=m?(function(R){let C=[],{encoding:$}=R;for(let j of[[Br,ot],[ca,ur]])(mn($[j[0]])||mn($[j[1]]))&&C.push({signal:R.getName(`geojson_${C.length}`)});return R.channelHasField(vn)&&R.typedFieldDef(vn).type===Vs&&C.push({signal:R.getName(`geojson_${C.length}`)}),C.length===0&&C.push(R.requestDataName(nn.Main)),C})(s):void 0,A=new Rg(s.projectionName(!0),{...Jn(s.config.projection)??{},...d??{}},y,k);return A.get("type")||A.set("type","equalEarth",!1),A}})(l):(function(s){if(s.children.length===0)return;let d;for(let y of s.children)Cg(y);let m=se(s.children,(y=>{let k=y.component.projection;if(k){if(d){let A=(function(R,C){let $=se(Yu,(j=>!h.hasOwnProperty(R.explicit,j)&&!h.hasOwnProperty(C.explicit,j)||!!(h.hasOwnProperty(R.explicit,j)&&h.hasOwnProperty(C.explicit,j)&&Ne(R.get(j),C.get(j)))));if(Ne(R.size,C.size)){if($)return R;if(Ne(R.explicit,{}))return C;if(Ne(C.explicit,{}))return R}return null})(d,k);return A&&(d=A),!!A}return d=k,!0}return!0}));if(d&&m){let y=s.projectionName(!0),k=new Rg(y,d.specifiedProjection,d.size,U(d.data));for(let A of s.children){let R=A.component.projection;R&&(R.isFit&&k.data.push(...A.component.projection.data),A.renameProjection(R.get("name"),y),R.merged=!0)}return k}})(l)}function sv(l,s,d,m){if(oc(s,d)){let y=dn(l)?l.axis(d)??l.legend(d)??{}:{},k=Ge(s,{expr:"datum"}),A=Ge(s,{expr:"datum",binSuffix:"end"});return{formulaAs:Ge(s,{binSuffix:"range",forAs:!0}),formula:yo(k,A,y.format,y.formatType,m)}}return{}}function hp(l,s){return`${Oi(l)}_${s}`}function To(l,s,d){let m=hp(ut(d,void 0)??{},s);return l.getName(`${m}_bins`)}function Ng(l,s,d){let m,y;m=(function($){return"as"in $})(l)?h.isString(l.as)?[l.as,`${l.as}_end`]:[l.as[0],l.as[1]]:[Ge(l,{forAs:!0}),Ge(l,{binSuffix:"end",forAs:!0})];let k={...ut(s,void 0)},A=hp(k,l.field),{signal:R,extentSignal:C}=(function($,j){return{signal:$.getName(`${j}_bins`),extentSignal:$.getName(`${j}_extent`)}})(d,A);if($a(k.extent)){let $=k.extent;y=xo(d,$.param,$),delete k.extent}return{key:A,binComponent:{bin:k,field:l.field,as:[m],...R?{signal:R}:{},...C?{extentSignal:C}:{},...y?{span:y}:{}}}}class gi extends Kt{clone(){return new gi(null,U(this.bins))}constructor(s,d){super(s),this.bins=d}static makeFromEncoding(s,d){let m=d.reduceFieldDef(((y,k,A)=>{if(hr(k)&&Jt(k.bin)){let{key:R,binComponent:C}=Ng(k,k.bin,d);y[R]={...C,...y[R],...sv(d,k,A,d.config)}}return y}),{});return ye(m)?null:new gi(s,m)}static makeFromTransform(s,d,m){let{key:y,binComponent:k}=Ng(d,d.bin,m);return new gi(s,{[y]:k})}merge(s,d){for(let m of we(s.bins))m in this.bins?(d(s.bins[m].signal,this.bins[m].signal),this.bins[m].as=be([...this.bins[m].as,...s.bins[m].as],V)):this.bins[m]=s.bins[m];for(let m of s.children)s.removeChild(m),m.parent=this;s.remove()}producedFields(){return new Set(Ve(this.bins).map((s=>s.as)).flat(2))}dependentFields(){return new Set(Ve(this.bins).map((s=>s.field)))}hash(){return`Bin ${V(this.bins)}`}assemble(){return Ve(this.bins).flatMap((s=>{let d=[],[m,...y]=s.as,{extent:k,...A}=s.bin,R={type:"bin",field:Ot(s.field),as:m,signal:s.signal,...$a(k)?{extent:null}:{extent:k},...s.span?{span:{signal:`span(${s.span})`}}:{},...A};!k&&s.extentSignal&&(d.push({type:"extent",field:Ot(s.field),signal:s.extentSignal}),R.extent={signal:s.extentSignal}),d.push(R);for(let C of y)for(let $=0;$<2;$++)d.push({type:"formula",expr:Ge({field:m[$]},{expr:"datum"}),as:C[$]});return s.formula&&d.push({type:"formula",expr:s.formula,as:s.formulaAs}),d}))}}function lv(l,s,d,m){let y=dn(m)?m.encoding[Ri(s)]:void 0;if(hr(d)&&dn(m)&&mf(d,y,m.markDef,m.config)){l.add(Ge(d,{})),l.add(Ge(d,{suffix:"end"}));let{mark:k,markDef:A,config:R}=m,C=Fi({fieldDef:d,markDef:A,config:R});du(k)&&C!==.5&&un(s)&&(l.add(Ge(d,{suffix:Jf})),l.add(Ge(d,{suffix:Gt}))),d.bin&&oc(d,s)&&l.add(Ge(d,{binSuffix:"range"}))}else if(Jo(s)){let k=xh(s);l.add(m.getName(k))}else l.add(Ge(d));return $i(d)&&(function(k){return h.isObject(k)&&"field"in k})(d.scale?.range)&&l.add(d.scale.range.field),l}class Yr extends Kt{clone(){return new Yr(null,new Set(this.dimensions),U(this.measures))}constructor(s,d,m){super(s),this.dimensions=d,this.measures=m}get groupBy(){return this.dimensions}static makeFromEncoding(s,d){let m=!1;d.forEachFieldDef((A=>{A.aggregate&&(m=!0)}));let y={},k=new Set;return m?(d.forEachFieldDef(((A,R)=>{let{aggregate:C,field:$}=A;if(C)if(C==="count")y["*"]??={},y["*"].count=new Set([Ge(A,{forAs:!0})]);else{if(ri(C)||Ni(C)){let j=ri(C)?"argmin":"argmax",H=C[j];y[H]??={},y[H][j]=new Set([Ge({op:j,field:H},{forAs:!0})])}else y[$]??={},y[$][C]=new Set([Ge(A,{forAs:!0})]);Fa(R)&&d.scaleDomain(R)==="unaggregated"&&(y[$]??={},y[$].min=new Set([Ge({field:$,aggregate:"min"},{forAs:!0})]),y[$].max=new Set([Ge({field:$,aggregate:"max"},{forAs:!0})]))}else lv(k,R,A,d)})),k.size+we(y).length===0?null:new Yr(s,k,y)):null}static makeFromTransform(s,d){let m=new Set,y={};for(let k of d.aggregate){let{op:A,field:R,as:C}=k;A&&(A==="count"?(y["*"]??={},y["*"].count=new Set([C||Ge(k,{forAs:!0})])):(y[R]??={},y[R][A]=new Set([C||Ge(k,{forAs:!0})])))}for(let k of d.groupby??[])m.add(k);return m.size+we(y).length===0?null:new Yr(s,m,y)}merge(s){return xe(this.dimensions,s.dimensions)?((function(d,m){for(let y of we(m)){let k=m[y];for(let A of we(k))y in d?d[y][A]=new Set([...d[y][A]??[],...k[A]]):d[y]={[A]:k[A]}}})(this.measures,s.measures),!0):((function(){ou.debug(...arguments)})("different dimensions, cannot merge"),!1)}addDimensions(s){s.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...we(this.measures)])}producedFields(){let s=new Set;for(let d of we(this.measures))for(let m of we(this.measures[d])){let y=this.measures[d][m];y.size===0?s.add(`${m}_${d}`):y.forEach(s.add,s)}return s}hash(){return`Aggregate ${V({dimensions:this.dimensions,measures:this.measures})}`}assemble(){let s=[],d=[],m=[];for(let y of we(this.measures))for(let k of we(this.measures[y]))for(let A of this.measures[y][k])m.push(A),s.push(k),d.push(y==="*"?null:Ot(y));return{type:"aggregate",groupby:[...this.dimensions].map(Ot),ops:s,fields:d,as:m}}}class ul extends Kt{constructor(s,d,m,y){super(s),this.model=d,this.name=m,this.data=y,ct(this,"column",void 0),ct(this,"row",void 0),ct(this,"facet",void 0),ct(this,"childModel",void 0);for(let k of zr){let A=d.facet[k];if(A){let{bin:R,sort:C}=A;this[k]={name:d.getName(`${k}_domain`),fields:[Ge(A),...Jt(R)?[Ge(A,{binSuffix:"end"})]:[]],...li(C)?{sortField:C}:h.isArray(C)?{sortIndexField:sl(A,k)}:{}}}}this.childModel=d.child}hash(){let s="Facet";for(let d of zr)this[d]&&(s+=` ${d.charAt(0)}:${V(this[d])}`);return s}get fields(){let s=[];for(let d of zr)this[d]?.fields&&s.push(...this[d].fields);return s}dependentFields(){let s=new Set(this.fields);for(let d of zr)this[d]&&(this[d].sortField&&s.add(this[d].sortField.field),this[d].sortIndexField&&s.add(this[d].sortIndexField));return s}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){let s={};for(let d of ni){let m=this.childModel.component.scales[d];if(m&&!m.merged){let y=m.get("type"),k=m.get("range");if(zn(y)&&go(k)){let A=Pg(vs(this.childModel,d));A?s[d]=A:$e(pr(d))}}}return s}assembleRowColumnHeaderData(s,d,m){let y={row:"y",column:"x",facet:void 0}[s],k=[],A=[],R=[];y&&m&&m[y]&&(d?(k.push(`distinct_${m[y]}`),A.push("max")):(k.push(m[y]),A.push("distinct")),R.push(`distinct_${m[y]}`));let{sortField:C,sortIndexField:$}=this[s];if(C){let{op:j=fu,field:H}=C;k.push(H),A.push(j),R.push(Ge(C,{forAs:!0}))}else $&&(k.push($),A.push("max"),R.push($));return{name:this[s].name,source:d??this.data,transform:[{type:"aggregate",groupby:this[s].fields,...k.length?{fields:k,ops:A,as:R}:{}}]}}assembleFacetHeaderData(s){let{columns:d}=this.model.layout,{layoutHeaders:m}=this.model.component,y=[],k={};for(let C of kc){for(let $ of Gu){let j=(m[C]&&m[C][$])??[];for(let H of j)if(H.axes?.length>0){k[C]=!0;break}}if(k[C]){let $=`length(data("${this.facet.name}"))`,j=C==="row"?d?{signal:`ceil(${$} / ${d})`}:1:d?{signal:`min(${$}, ${d})`}:{signal:$};y.push({name:`${this.facet.name}_${C}`,transform:[{type:"sequence",start:0,stop:j}]})}}let{row:A,column:R}=k;return(A||R)&&y.unshift(this.assembleRowColumnHeaderData("facet",null,s)),y}assemble(){let s=[],d=null,m=this.getChildIndependentFieldsWithStep(),{column:y,row:k,facet:A}=this;if(y&&k&&(m.x||m.y)){d=`cross_${this.column.name}_${this.row.name}`;let R=[].concat(m.x??[],m.y??[]),C=R.map((()=>"distinct"));s.push({name:d,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:R,ops:C}]})}for(let R of[at,We])this[R]&&s.push(this.assembleRowColumnHeaderData(R,d,m));if(A){let R=this.assembleFacetHeaderData(m);R&&s.push(...R)}return s}}function Ku(l){return l.startsWith("'")&&l.endsWith("'")||l.startsWith('"')&&l.endsWith('"')?l.slice(1,-1):l}function g_(l){let s={};return D(l.filter,(d=>{if(Vl(d)){let m=null;Qd(d)?m=Bn(d.equal):qs(d)?m=Bn(d.lte):Hs(d)?m=Bn(d.lt):Ws(d)?m=Bn(d.gt):qh(d)?m=Bn(d.gte):ef(d)?m=d.range[0]:tf(d)&&(m=(d.oneOf??d.in)[0]),m&&(Gs(m)?s[d.field]="date":h.isNumber(m)?s[d.field]="number":h.isString(m)&&(s[d.field]="string")),d.timeUnit&&(s[d.field]="date")}})),s}function qn(l){let s={};function d(m){var y;Dt(m)?s[m.field]="date":m.type==="quantitative"&&(y=m.aggregate,h.isString(y)&&Y(["min","max"],y))?s[m.field]="number":Zt(m.field)>1?m.field in s||(s[m.field]="flatten"):$i(m)&&li(m.sort)&&Zt(m.sort.field)>1&&(m.sort.field in s||(s[m.sort.field]="flatten"))}if((dn(l)||Kr(l))&&l.forEachFieldDef(((m,y)=>{if(hr(m))d(m);else{let k=Us(y),A=l.fieldDef(k);d({...m,type:A.type})}})),dn(l)){let{mark:m,markDef:y,encoding:k}=l;if(as(m)&&!l.encoding.order){let A=k[y.orient==="horizontal"?"y":"x"];ze(A)&&A.type==="quantitative"&&!(A.field in s)&&(s[A.field]="number")}}return s}class Wn extends Kt{clone(){return new Wn(null,U(this._parse))}constructor(s,d){super(s),ct(this,"_parse",void 0),this._parse=d}hash(){return`Parse ${V(this._parse)}`}static makeExplicit(s,d,m){let y={},k=d.data;return!Eo(k)&&k?.format?.parse&&(y=k.format.parse),this.makeWithAncestors(s,y,{},m)}static makeWithAncestors(s,d,m,y){for(let R of we(m)){let C=y.getWithExplicit(R);C.value!==void 0&&(C.explicit||C.value===m[R]||C.value==="derived"||m[R]==="flatten"?delete m[R]:$e(Ba(R,m[R],C.value)))}for(let R of we(d)){let C=y.get(R);C!==void 0&&(C===d[R]?delete d[R]:$e(Ba(R,d[R],C)))}let k=new ji(d,m);y.copyAll(k);let A={};for(let R of we(k.combine())){let C=k.get(R);C!==null&&(A[R]=C)}return we(A).length===0||y.parseNothing?null:new Wn(s,A)}get parse(){return this._parse}merge(s){this._parse={...this._parse,...s.parse},s.remove()}assembleFormatParse(){let s={};for(let d of we(this._parse)){let m=this._parse[d];Zt(d)===1&&(s[d]=m)}return s}producedFields(){return new Set(we(this._parse))}dependentFields(){return new Set(we(this._parse))}assembleTransforms(){let s=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return we(this._parse).filter((d=>!s||Zt(d)>1)).map((d=>{let m=(function(y,k){let A=Oe(y);return k==="number"?`toNumber(${A})`:k==="boolean"?`toBoolean(${A})`:k==="string"?`toString(${A})`:k==="date"?`toDate(${A})`:k==="flatten"?A:k.startsWith("date:")?`timeParse(${A},'${Ku(k.slice(5,k.length))}')`:k.startsWith("utc:")?`utcParse(${A},'${Ku(k.slice(4,k.length))}')`:($e(`Unrecognized parse "${k}".`),null)})(d,this._parse[d]);return m?{type:"formula",expr:m,as:Pt(d)}:null})).filter((d=>d!==null))}}class Ro extends Kt{clone(){return new Ro(null)}constructor(s){super(s)}dependentFields(){return new Set}producedFields(){return new Set([ba])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:ba}}}class Xu extends Kt{clone(){return new Xu(null,this.params)}constructor(s,d){super(s),this.params=d}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${V(this.params)}`}assemble(){return{type:"graticule",...this.params===!0?{}:this.params}}}class Zu extends Kt{clone(){return new Zu(null,this.params)}constructor(s,d){super(s),this.params=d}dependentFields(){return new Set}producedFields(){return new Set([this.params.as??"data"])}hash(){return`Hash ${V(this.params)}`}assemble(){return{type:"sequence",...this.params}}}class Co extends Kt{constructor(s){let d;if(super(null),ct(this,"_data",void 0),ct(this,"_name",void 0),ct(this,"_generator",void 0),s??={name:"source"},Eo(s)||(d=s.format?{...K(s.format,["parse"])}:{}),mc(s))this._data={values:s.values};else if(ds(s)){if(this._data={url:s.url},!d.type){let m=/(?:\.([^.]+))?$/.exec(s.url)[1];Y(["json","csv","tsv","dsv","topojson"],m)||(m="json"),d.type=m}}else Kf(s)?this._data={values:[{type:"Sphere"}]}:(Vf(s)||Eo(s))&&(this._data={});this._generator=Eo(s),s.name&&(this._name=s.name),d&&!ye(d)&&(this._data.format=d)}dependentFields(){return new Set}producedFields(){}get data(){return this._data}hasName(){return!!this._name}get isGenerator(){return this._generator}get dataName(){return this._name}set dataName(s){this._name=s}set parent(s){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return{name:this._name,...this._data,transform:[]}}}function mp(l){return l instanceof Co||l instanceof Xu||l instanceof Zu}var Ju=new WeakMap;class gp{constructor(){Ik(this,Ju,{writable:!0,value:void 0}),B0(this,Ju,!1)}setModified(){B0(this,Ju,!0)}get modifiedFlag(){return(function(d,m){return m.get?m.get.call(d):m.value})(s=this,U0(s,Ju,"get"));var s}}class ir extends gp{getNodeDepths(s,d,m){m.set(s,d);for(let y of s.children)this.getNodeDepths(y,d+1,m);return m}optimize(s){let d=[...this.getNodeDepths(s,0,new Map).entries()].sort(((m,y)=>y[1]-m[1]));for(let m of d)this.run(m[0]);return this.modifiedFlag}}class bp extends gp{optimize(s){this.run(s);for(let d of s.children)this.optimize(d);return this.modifiedFlag}}class Ig extends bp{mergeNodes(s,d){let m=d.shift();for(let y of d)s.removeChild(y),y.parent=m,y.remove()}run(s){let d=s.children.map((y=>y.hash())),m={};for(let y=0;y<d.length;y++)m[d[y]]===void 0?m[d[y]]=[s.children[y]]:m[d[y]].push(s.children[y]);for(let y of we(m))m[y].length>1&&(this.setModified(),this.mergeNodes(s,m[y]))}}class Og extends bp{constructor(s){super(),ct(this,"requiresSelectionId",void 0),this.requiresSelectionId=s&&pg(s)}run(s){s instanceof Ro&&(this.requiresSelectionId&&(mp(s.parent)||s.parent instanceof Yr||s.parent instanceof Wn)||(this.setModified(),s.remove()))}}class cv extends gp{optimize(s){return this.run(s,new Set),this.modifiedFlag}run(s,d){let m=new Set;s instanceof Wi&&(m=s.producedFields(),Le(m,d)&&(this.setModified(),s.removeFormulas(d),s.producedFields.length===0&&s.remove()));for(let y of s.children)this.run(y,new Set([...d,...m]))}}class bs extends bp{constructor(){super()}run(s){s instanceof rr&&!s.isRequired()&&(this.setModified(),s.remove())}}class Qu extends ir{run(s){if(!(mp(s)||s.numChildren()>1)){for(let d of s.children)if(d instanceof Wn)if(s instanceof Wn)this.setModified(),s.merge(d);else{if(ve(s.producedFields(),d.dependentFields()))continue;this.setModified(),d.swapWithParent()}}}}class yp extends ir{run(s){let d=[...s.children],m=s.children.filter((y=>y instanceof Wn));if(s.numChildren()>1&&m.length>=1){let y={},k=new Set;for(let A of m){let R=A.parse;for(let C of we(R))C in y?y[C]!==R[C]&&k.add(C):y[C]=R[C]}for(let A of k)delete y[A];if(!ye(y)){this.setModified();let A=new Wn(s,y);for(let R of d){if(R instanceof Wn)for(let C of we(y))delete R.parse[C];s.removeChild(R),R.parent=A,R instanceof Wn&&we(R.parse).length===0&&R.remove()}}}}}class uv extends ir{run(s){s instanceof rr||s.numChildren()>0||s instanceof ul||s instanceof Co||(this.setModified(),s.remove())}}class Dg extends ir{run(s){let d=s.children.filter((y=>y instanceof Wi)),m=d.pop();for(let y of d)this.setModified(),m.merge(y)}}class dv extends ir{run(s){let d=s.children.filter((y=>y instanceof Yr)),m={};for(let y of d){let k=V(y.groupBy);k in m||(m[k]=[]),m[k].push(y)}for(let y of we(m)){let k=m[y];if(k.length>1){let A=k.pop();for(let R of k)A.merge(R)&&(s.removeChild(R),R.parent=A,R.remove(),this.setModified())}}}}class fv extends ir{constructor(s){super(),this.model=s}run(s){let d=!(mp(s)||s instanceof pi||s instanceof Wn||s instanceof Ro),m=[],y=[];for(let k of s.children)k instanceof gi&&(d&&!ve(s.producedFields(),k.dependentFields())?m.push(k):y.push(k));if(m.length>0){let k=m.pop();for(let A of m)k.merge(A,this.model.renameSignal.bind(this.model));this.setModified(),s instanceof gi?s.merge(k,this.model.renameSignal.bind(this.model)):k.swapWithParent()}if(y.length>1){let k=y.pop();for(let A of y)k.merge(A,this.model.renameSignal.bind(this.model));this.setModified()}}}class b_ extends ir{run(s){let d=[...s.children];if(!te(d,(k=>k instanceof rr))||s.numChildren()<=1)return;let m=[],y;for(let k of d)if(k instanceof rr){let A=k;for(;A.numChildren()===1;){let[R]=A.children;if(!(R instanceof rr))break;A=R}m.push(...A.children),y?(s.removeChild(k),k.parent=y.parent,y.parent.removeChild(y),y.parent=A,this.setModified()):y=A}else m.push(k);if(m.length){this.setModified();for(let k of m)k.parent.removeChild(k),k.parent=y}}}class dl extends Kt{clone(){return new dl(null,U(this.transform))}constructor(s,d){super(s),this.transform=d}addDimensions(s){this.transform.groupby=be(this.transform.groupby.concat(s),(d=>d))}dependentFields(){let s=new Set;return this.transform.groupby&&this.transform.groupby.forEach(s.add,s),this.transform.joinaggregate.map((d=>d.field)).filter((d=>d!==void 0)).forEach(s.add,s),s}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(s){return s.as??Ge(s)}hash(){return`JoinAggregateTransform ${V(this.transform)}`}assemble(){let s=[],d=[],m=[];for(let k of this.transform.joinaggregate)d.push(k.op),m.push(this.getDefaultName(k)),s.push(k.field===void 0?null:k.field);let y=this.transform.groupby;return{type:"joinaggregate",as:m,ops:d,fields:s,...y!==void 0?{groupby:y}:{}}}}class No extends Kt{clone(){return new No(null,U(this._stack))}constructor(s,d){super(s),ct(this,"_stack",void 0),this._stack=d}static makeFromTransform(s,d){let{stack:m,groupby:y,as:k,offset:A="zero"}=d,R=[],C=[];if(d.sort!==void 0)for(let H of d.sort)R.push(H.field),C.push(Tt(H.order,"ascending"));let $={field:R,order:C},j;return j=(function(H){return h.isArray(H)&&H.every((ee=>h.isString(ee)))&&H.length>1})(k)?k:h.isString(k)?[k,`${k}_end`]:[`${d.stack}_start`,`${d.stack}_end`],new No(s,{dimensionFieldDefs:[],stackField:m,groupby:y,offset:A,sort:$,facetby:[],as:j})}static makeFromEncoding(s,d){let m=d.stack,{encoding:y}=d;if(!m)return null;let{groupbyChannels:k,fieldChannel:A,offset:R,impute:C}=m,$=k.map((ae=>ga(y[ae]))).filter((ae=>!!ae)),j=(function(ae){return ae.stack.stackBy.reduce(((ne,de)=>{let he=Ge(de.fieldDef);return he&&ne.push(he),ne}),[])})(d),H=d.encoding.order,ee;if(h.isArray(H)||ze(H))ee=ql(H);else{let ae=py(H)?H.sort:A==="y"?"descending":"ascending";ee=j.reduce(((ne,de)=>(ne.field.push(de),ne.order.push(ae),ne)),{field:[],order:[]})}return new No(s,{dimensionFieldDefs:$,stackField:d.vgField(A),facetby:[],stackby:j,sort:ee,offset:R,impute:C,as:[d.vgField(A,{suffix:"start",forAs:!0}),d.vgField(A,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(s){this._stack.facetby.push(...s)}dependentFields(){let s=new Set;return s.add(this._stack.stackField),this.getGroupbyFields().forEach(s.add,s),this._stack.facetby.forEach(s.add,s),this._stack.sort.field.forEach(s.add,s),s}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${V(this._stack)}`}getGroupbyFields(){let{dimensionFieldDefs:s,impute:d,groupby:m}=this._stack;return s.length>0?s.map((y=>y.bin?d?[Ge(y,{binSuffix:"mid"})]:[Ge(y,{}),Ge(y,{binSuffix:"end"})]:[Ge(y)])).flat():m??[]}assemble(){let s=[],{facetby:d,dimensionFieldDefs:m,stackField:y,stackby:k,sort:A,offset:R,impute:C,as:$}=this._stack;if(C)for(let j of m){let{bandPosition:H=.5,bin:ee}=j;if(ee){let ae=Ge(j,{expr:"datum"}),ne=Ge(j,{expr:"datum",binSuffix:"end"});s.push({type:"formula",expr:`${H}*${ae}+${1-H}*${ne}`,as:Ge(j,{binSuffix:"mid",forAs:!0})})}s.push({type:"impute",field:y,groupby:[...k,...d],key:Ge(j,{binSuffix:"mid"}),method:"value",value:0})}return s.push({type:"stack",groupby:[...this.getGroupbyFields(),...d],field:y,sort:A,as:$,offset:R}),s}}class fl extends Kt{clone(){return new fl(null,U(this.transform))}constructor(s,d){super(s),this.transform=d}addDimensions(s){this.transform.groupby=be(this.transform.groupby.concat(s),(d=>d))}dependentFields(){let s=new Set;return(this.transform.groupby??[]).forEach(s.add,s),(this.transform.sort??[]).forEach((d=>s.add(d.field))),this.transform.window.map((d=>d.field)).filter((d=>d!==void 0)).forEach(s.add,s),s}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(s){return s.as??Ge(s)}hash(){return`WindowTransform ${V(this.transform)}`}assemble(){let s=[],d=[],m=[],y=[];for(let H of this.transform.window)d.push(H.op),m.push(this.getDefaultName(H)),y.push(H.param===void 0?null:H.param),s.push(H.field===void 0?null:H.field);let k=this.transform.frame,A=this.transform.groupby;if(k&&k[0]===null&&k[1]===null&&d.every((H=>En(H))))return{type:"joinaggregate",as:m,ops:d,fields:s,...A!==void 0?{groupby:A}:{}};let R=[],C=[];if(this.transform.sort!==void 0)for(let H of this.transform.sort)R.push(H.field),C.push(H.order??"ascending");let $={field:R,order:C},j=this.transform.ignorePeers;return{type:"window",params:y,as:m,ops:d,fields:s,sort:$,...j!==void 0?{ignorePeers:j}:{},...A!==void 0?{groupby:A}:{},...k!==void 0?{frame:k}:{}}}}function Mg(l){if(l instanceof ul)if(l.numChildren()!==1||l.children[0]instanceof rr){let d=l.model.component.data.main;Lg(d);let m=(s=l,function k(A){if(!(A instanceof ul)){let R=A.clone();if(R instanceof rr){let C=Fg+R.getSource();R.setSource(C),s.model.component.data.outputNodes[C]=R}else(R instanceof Yr||R instanceof No||R instanceof fl||R instanceof dl)&&R.addDimensions(s.fields);for(let C of A.children.flatMap(k))C.parent=R;return[R]}return A.children.flatMap(k)}),y=l.children.map(m).flat();for(let k of y)k.parent=d}else{let d=l.children[0];(d instanceof Yr||d instanceof No||d instanceof fl||d instanceof dl)&&d.addDimensions(l.fields),d.swapWithParent(),Mg(l)}else l.children.map(Mg);var s}function Lg(l){if(l instanceof rr&&l.type===nn.Main&&l.numChildren()===1){let s=l.children[0];s instanceof ul||(s.swapWithParent(),Lg(l))}}let Fg="scale_",vp=5;function Ep(l){for(let s of l){for(let d of s.children)if(d.parent!==s)return!1;if(!Ep(s.children))return!1}return!0}function bi(l,s){let d=!1;for(let m of s)d=l.optimize(m)||d;return d}function pv(l,s,d){let m=l.sources,y=!1;return y=bi(new bs,m)||y,y=bi(new Og(s),m)||y,m=m.filter((k=>k.numChildren()>0)),y=bi(new uv,m)||y,m=m.filter((k=>k.numChildren()>0)),d||(y=bi(new Qu,m)||y,y=bi(new fv(s),m)||y,y=bi(new cv,m)||y,y=bi(new yp,m)||y,y=bi(new dv,m)||y,y=bi(new Dg,m)||y,y=bi(new Ig,m)||y,y=bi(new b_,m)||y),l.sources=m,y}class Dn{constructor(s){ct(this,"signal",void 0),Object.defineProperty(this,"signal",{enumerable:!0,get:s})}static fromName(s,d){return new Dn((()=>s(d)))}}function hv(l){dn(l)?(function(s){let d=s.component.scales;for(let m of we(d)){let y=y_(s,m);if(d[m].setWithExplicit("domains",y),mv(s,m),s.component.data.isFaceted){let k=s;for(;!Kr(k)&&k.parent;)k=k.parent;if(k.component.resolve.scale[m]==="shared")for(let A of y.value)Ar(A)&&(A.data=Fg+A.data.replace(Fg,""))}}})(l):(function(s){for(let m of s.children)hv(m);let d=s.component.scales;for(let m of we(d)){let y,k=null;for(let A of s.children){let R=A.component.scales[m];if(R){y=y===void 0?R.getWithExplicit("domains"):qi(y,R.getWithExplicit("domains"),"domains","scale",nd);let C=R.get("selectionExtent");k&&C&&k.param!==C.param&&$e(pa),k=C}}d[m].setWithExplicit("domains",y),k&&d[m].set("selectionExtent",k,!0)}})(l)}function y_(l,s){let d=l.getScaleComponent(s).get("type"),{encoding:m}=l,y=(function(k,A,R,C){if(k==="unaggregated"){let{valid:$,reason:j}=Ir(A,R);if(!$)return void $e(j)}else if(k===void 0&&C.useUnaggregatedDomain){let{valid:$}=Ir(A,R);if($)return"unaggregated"}return k})(l.scaleDomain(s),l.typedFieldDef(s),d,l.config.scale);return y!==l.scaleDomain(s)&&(l.specifiedScales[s]={...l.specifiedScales[s],domain:y}),s==="x"&&mn(m.x2)?mn(m.x)?qi(ys(d,y,l,"x"),ys(d,y,l,"x2"),"domain","scale",nd):ys(d,y,l,"x2"):s==="y"&&mn(m.y2)?mn(m.y)?qi(ys(d,y,l,"y"),ys(d,y,l,"y2"),"domain","scale",nd):ys(d,y,l,"y2"):ys(d,y,l,s)}function ed(l,s,d){let m=Un(d)?.unit;return s==="temporal"||m?(function(y,k,A){return y.map((R=>({signal:`{data: ${ic(R,{timeUnit:A,type:k})}}`})))})(l,s,m):[l]}function ys(l,s,d,m){let{encoding:y,markDef:k,mark:A,config:R,stack:C}=d,$=mn(y[m]),{type:j}=$,H=$.timeUnit;if((function(ne){return ne?.unionWith})(s)){let ne=ys(l,void 0,d,m);return Hi([...ed(s.unionWith,j,H),...ne.value])}if(Je(s))return Hi([s]);if(s&&s!=="unaggregated"&&!ry(s))return Hi(ed(s,j,H));if(C&&m===C.fieldChannel){if(C.offset==="normalize")return Ga([[0,1]]);let ne=d.requestDataName(nn.Main);return Ga([{data:ne,field:d.vgField(m,{suffix:"start"})},{data:ne,field:d.vgField(m,{suffix:"end"})}])}let ee=Fa(m)&&ze($)?(function(ne,de,he){if(!zn(he))return;let ge=ne.fieldDef(de),Ee=ge.sort;if(pu(Ee))return{op:"min",field:sl(ge,de),order:"ascending"};let{stack:Se}=ne,Re=Se?new Set([...Se.groupbyFields,...Se.stackBy.map((Pe=>Pe.fieldDef.field))]):void 0;if(li(Ee))return td(Ee,Se&&!Re.has(Ee.field));if(im(Ee)){let{encoding:Pe,order:qe}=Ee,st=ne.fieldDef(Pe),{aggregate:mt,field:it}=st,Qe=Se&&!Re.has(it);if(ri(mt)||Ni(mt))return td({field:Ge(st),order:qe},Qe);if(En(mt)||!mt)return td({op:mt,field:it,order:qe},Qe)}else{if(Ee==="descending")return{op:"min",field:ne.vgField(de),order:"descending"};if(Y(["ascending",void 0],Ee))return!0}})(d,m,l):void 0;if(Pi($))return Ga(ed([$.datum],j,H));let ae=$;if(s==="unaggregated"){let ne=d.requestDataName(nn.Main),{field:de}=$;return Ga([{data:ne,field:Ge({field:de,aggregate:"min"})},{data:ne,field:Ge({field:de,aggregate:"max"})}])}if(Jt(ae.bin)){if(zn(l))return Ga(l==="bin-ordinal"?[]:[{data:Ye(ee)?d.requestDataName(nn.Main):d.requestDataName(nn.Raw),field:d.vgField(m,oc(ae,m)?{binSuffix:"range"}:{}),sort:ee!==!0&&h.isObject(ee)?ee:{field:d.vgField(m,{}),op:"min"}}]);{let{bin:ne}=ae;if(Jt(ne)){let de=To(d,ae.field,ne);return Ga([new Dn((()=>{let he=d.getSignalName(de);return`[${he}.start, ${he}.stop]`}))])}return Ga([{data:d.requestDataName(nn.Main),field:d.vgField(m,{})}])}}if(ae.timeUnit&&Y(["time","utc"],l)){let ne=y[Ri(m)];if(mf(ae,ne,k,R)){let de=d.requestDataName(nn.Main),he=Fi({fieldDef:ae,fieldDef2:ne,markDef:k,config:R}),ge=du(A)&&he!==.5;return Ga([{data:de,field:d.vgField(m,ge?{suffix:Jf}:{})},{data:de,field:d.vgField(m,{suffix:ge?Gt:"end"})}])}}return Ga(ee?[{data:Ye(ee)?d.requestDataName(nn.Main):d.requestDataName(nn.Raw),field:d.vgField(m),sort:ee}]:[{data:d.requestDataName(nn.Main),field:d.vgField(m)}])}function td(l,s){let{op:d,field:m,order:y}=l;return{op:d??(s?"sum":fu),...m?{field:Ot(m)}:{},...y?{order:y}:{}}}function mv(l,s){let d=l.component.scales[s],m=l.specifiedScales[s].domain,y=l.fieldDef(s)?.bin,k=ry(m)&&m,A=mo(y)&&$a(y.extent)&&y.extent;(k||A)&&d.set("selectionExtent",k??A,!0)}function Ir(l,s){let{aggregate:d,type:m}=l;return d?h.isString(d)&&!ho.has(d)?{valid:!1,reason:$h(d)}:m==="quantitative"&&s==="log"?{valid:!1,reason:Bh(l)}:{valid:!0}:{valid:!1,reason:j0(l)}}function nd(l,s,d,m){return l.explicit&&s.explicit&&$e((function(y,k,A,R){return`Conflicting ${k.toString()} property "${y.toString()}" (${Be(A)} and ${Be(R)}). Using the union of the two domains.`})(d,m,l.value,s.value)),{explicit:l.explicit,value:[...l.value,...s.value]}}function v_(l){let s=be(l.map((A=>{if(Ar(A)){let{sort:R,...C}=A;return C}return A})),V),d=be(l.map((A=>{if(Ar(A)){let R=A.sort;return R===void 0||Ye(R)||("op"in R&&R.op==="count"&&delete R.field,R.order==="ascending"&&delete R.order),R}})).filter((A=>A!==void 0)),V);if(s.length===0)return;if(s.length===1){let A=l[0];if(Ar(A)&&d.length>0){let R=d[0];if(d.length>1){$e(zh);let C=d.filter(($=>h.isObject($)&&"op"in $&&$.op!=="min"));R=!d.every(($=>h.isObject($)&&"op"in $))||C.length!==1||C[0]}else if(h.isObject(R)&&"field"in R){let C=R.field;A.field===C&&(R=!R.order||{order:R.order})}return{...A,sort:R}}return A}let m=be(d.map((A=>Ye(A)||!("op"in A)||h.isString(A.op)&&A.op in M0?A:($e((function(R){return`Dropping sort property ${Be(R)} as unioned domains only support boolean or op "count", "min", and "max".`})(A)),!0))),V),y;m.length===1?y=m[0]:m.length>1&&($e(zh),y=!0);let k=be(l.map((A=>Ar(A)?A.data:null)),(A=>A));return k.length===1&&k[0]!==null?{data:k[0],fields:s.map((A=>A.field)),...y?{sort:y}:{}}:{fields:s,...y?{sort:y}:{}}}function Pg(l){if(Ar(l)&&h.isString(l.field))return l.field;if((function(s){return!h.isArray(s)&&"fields"in s&&!("data"in s)})(l)){let s;for(let d of l.fields)if(Ar(d)&&h.isString(d.field))if(s){if(s!==d.field)return $e("Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect."),s}else s=d.field;return $e("Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect."),s}if((function(s){return!h.isArray(s)&&"fields"in s&&"data"in s})(l)){$e("Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.");let s=l.fields[0];return h.isString(s)?s:void 0}}function vs(l,s){let d=l.component.scales[s].get("domains").map((m=>(Ar(m)&&(m.data=l.lookupDataSource(m.data)),m)));return v_(d)}function rd(l){return Es(l)||Ji(l)?l.children.reduce(((s,d)=>s.concat(rd(d))),$g(l)):$g(l)}function $g(l){return we(l.component.scales).reduce(((s,d)=>{let m=l.component.scales[d];if(m.merged)return s;let y=m.combine(),{name:k,type:A,selectionExtent:R,domains:C,range:$,reverse:j,...H}=y,ee=(function(de,he,ge,Ee){if(un(ge)){if(go(de))return{step:{signal:`${he}_step`}}}else if(h.isObject(de)&&Ar(de))return{...de,data:Ee.lookupDataSource(de.data)};return de})(y.range,k,d,l),ae=vs(l,d),ne=R?(function(de,he,ge,Ee){let Se=xo(de,he.param,he);return{signal:qr(ge.get("type"))&&h.isArray(Ee)&&Ee[0]>Ee[1]?`isValid(${Se}) && reverse(${Se})`:Se}})(l,R,m,ae):null;return s.push({name:k,type:A,...ae?{domain:ae}:{},...ne?{domainRaw:ne}:{},range:ee,...j!==void 0?{reverse:j}:{},...H}),s}),[])}class Bg extends ji{constructor(s,d){super({},{name:s}),ct(this,"merged",!1),this.setWithExplicit("type",d)}domainDefinitelyIncludesZero(){return this.get("zero")!==!1||te(this.get("domains"),(s=>h.isArray(s)&&s.length===2&&h.isNumber(s[0])&&s[0]<=0&&h.isNumber(s[1])&&s[1]>=0))}}let pl=["range","scheme"];function Ug(l,s){let d=l.fieldDef(s);if(d?.bin){let{bin:m,field:y}=d,k=Sr(s),A=l.getName(k);if(h.isObject(m)&&m.binned&&m.step!==void 0)return new Dn((()=>{let R=l.scaleName(s),C=`(domain("${R}")[1] - domain("${R}")[0]) / ${m.step}`;return`${l.getSignalName(A)} / (${C})`}));if(Jt(m)){let R=To(l,y,m);return new Dn((()=>{let C=l.getSignalName(R),$=`(${C}.stop - ${C}.start) / ${C}.step`;return`${l.getSignalName(A)} / (${$})`}))}}}function gv(l,s){let d=s.specifiedScales[l],{size:m}=s,y=s.getScaleComponent(l).get("type");for(let j of pl)if(d[j]!==void 0){let H=Vh(y,j),ee=ay(l,j);if(H)if(ee)$e(ee);else switch(j){case"range":{let ae=d.range;if(h.isArray(ae)){if(un(l))return Hi(ae.map((ne=>{if(ne==="width"||ne==="height"){let de=s.getName(ne),he=s.getSignalName.bind(s);return Dn.fromName(he,de)}return ne})))}else if(h.isObject(ae))return Hi({data:s.requestDataName(nn.Main),field:ae.field,sort:{op:"min",field:s.vgField(l)}});return Hi(ae)}case"scheme":return Hi(bv(d[j]))}else $e(H0(y,j,l))}let k=l===et||l==="xOffset"?"width":"height",A=m[k];if(Wr(A)){if(un(l))if(zn(y)){let j=vv(A,s,l);if(j)return Hi({step:j})}else $e(Uh(k));else if(Zn(l)){let j=l===Ze?"x":"y";if(s.getScaleComponent(j).get("type")==="band"){let H=Ev(A,y);if(H)return Hi(H)}}}let{rangeMin:R,rangeMax:C}=d,$=(function(j,H){let{size:ee,config:ae,mark:ne,encoding:de}=H,{type:he}=mn(de[j]),ge=H.getScaleComponent(j),Ee=ge.get("type"),{domain:Se,domainMid:Re}=H.specifiedScales[j];switch(j){case et:case nt:if(Y(["point","band"],Ee)){let Pe=zg(j,ee,ae.view);if(Wr(Pe))return{step:vv(Pe,H,j)}}return yv(j,H,Ee);case Ze:case on:return(function(Pe,qe,st){let mt=Pe===Ze?"x":"y",it=qe.getScaleComponent(mt);if(!it)return yv(mt,qe,st,{center:!0});let Qe=it.get("type"),Ct=qe.scaleName(mt),{markDef:Ht,config:Mn}=qe;if(Qe==="band"){let wn=zg(mt,qe.size,qe.config.view);if(Wr(wn)){let kn=Ev(wn,st);if(kn)return kn}return[0,{signal:`bandwidth('${Ct}')`}]}{let wn=qe.encoding[mt];if(ze(wn)&&wn.timeUnit){let kn=J0(wn.timeUnit,(Rn=>`scale('${Ct}', ${Rn})`)),qt=qe.config.scale.bandWithNestedOffsetPaddingInner,Ft=Fi({fieldDef:wn,markDef:Ht,config:Mn})-.5,gn=Ft!==0?` + ${Ft}`:"";return qt?[{signal:`${Je(qt)?`${qt.signal}/2`+gn:`${qt/2+Ft}`} * (${kn})`},{signal:`${Je(qt)?`(1 - ${qt.signal}/2)`+gn:`${1-qt/2+Ft}`} * (${kn})`}]:[0,{signal:kn}]}return q(`Cannot use ${Pe} scale if ${mt} scale is not discrete.`)}})(j,H,Ee);case xi:{let Pe=wp(ne,H.component.scales[j].get("zero"),ae),qe=(function(st,mt,it,Qe){let Ct={x:Ug(it,"x"),y:Ug(it,"y")};switch(st){case"bar":case"tick":{if(Qe.scale.maxBandSize!==void 0)return Qe.scale.maxBandSize;let Ht=jg(mt,Ct,Qe.view);return h.isNumber(Ht)?Ht-1:new Dn((()=>`${Ht.signal} - 1`))}case"line":case"trail":case"rule":return Qe.scale.maxStrokeWidth;case"text":return Qe.scale.maxFontSize;case"point":case"square":case"circle":{if(Qe.scale.maxSize)return Qe.scale.maxSize;let Ht=jg(mt,Ct,Qe.view);return h.isNumber(Ht)?Math.pow(Gg*Ht,2):new Dn((()=>`pow(${Gg} * ${Ht.signal}, 2)`))}}throw new Error(Mi("size",st))})(ne,ee,H,ae);return Zl(Ee)?(function(st,mt,it){let Qe=()=>{let Ct=fr(mt),Ht=fr(st),Mn=`(${Ct} - ${Ht}) / (${it} - 1)`;return`sequence(${Ht}, ${Ct} + ${Mn}, ${Mn})`};return Je(mt)?new Dn(Qe):{signal:Qe()}})(Pe,qe,(function(st,mt,it,Qe){switch(st){case"quantile":return mt.scale.quantileCount;case"quantize":return mt.scale.quantizeCount;case"threshold":return it!==void 0&&h.isArray(it)?it.length+1:($e((function(Ct){return`Domain for ${Ct} is required for threshold scale.`})(Qe)),3)}})(Ee,ae,Se,j)):[Pe,qe]}case la:return[0,2*Math.PI];case Ur:return[0,360];case lt:return[0,new Dn((()=>`min(${H.getSignalName("width")},${H.getSignalName("height")})/2`))];case fo:return[ae.scale.minStrokeWidth,ae.scale.maxStrokeWidth];case Zo:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case vn:return"symbol";case Fe:case xr:case ei:return Ee==="ordinal"?he==="nominal"?"category":"ordinal":Re!==void 0?"diverging":ne==="rect"||ne==="geoshape"?"heatmap":"ramp";case Si:case Ut:case Ai:return[ae.scale.minOpacity,ae.scale.maxOpacity]}})(l,s);return(R!==void 0||C!==void 0)&&Vh(y,"rangeMin")&&h.isArray($)&&$.length===2?Hi([R??$[0],C??$[1]]):Ga($)}function bv(l){return(function(s){return!h.isString(s)&&!!s.name})(l)?{scheme:l.name,...K(l,["name"])}:{scheme:l}}function yv(l,s,d){let{center:m}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},y=Sr(l),k=s.getName(y),A=s.getSignalName.bind(s);return l===nt&&qr(d)?m?[Dn.fromName((R=>`${A(R)}/2`),k),Dn.fromName((R=>`-${A(R)}/2`),k)]:[Dn.fromName(A,k),0]:m?[Dn.fromName((R=>`-${A(R)}/2`),k),Dn.fromName((R=>`${A(R)}/2`),k)]:[0,Dn.fromName(A,k)]}function vv(l,s,d){let{encoding:m}=s,y=s.getScaleComponent(d),k=Ul(d),A=m[k];if(Ff({step:l,offsetIsDiscrete:St(A)&&Yl(A.type)})==="offset"&&vo(m,k)){let C=s.getScaleComponent(k),$=`domain('${s.scaleName(k)}').length`;C.get("type")==="band"&&($=`bandspace(${$}, ${C.get("paddingInner")??C.get("padding")??0}, ${C.get("paddingOuter")??C.get("padding")??0})`);let j=y.get("paddingInner")??y.get("padding");return{signal:`${l.step} * ${$} / (1-${R=j,Je(R)?R.signal:h.stringValue(R)})`}}return l.step;var R}function Ev(l,s){if(Ff({step:l,offsetIsDiscrete:zn(s)})==="offset")return{step:l.step}}function zg(l,s,d){let m=l===et?"width":"height";return s[m]||Tu(d,m)}function wp(l,s,d){if(s)return Je(s)?{signal:`${s.signal} ? 0 : ${wp(l,!1,d)}`}:0;switch(l){case"bar":case"tick":return d.scale.minBandSize;case"line":case"trail":case"rule":return d.scale.minStrokeWidth;case"text":return d.scale.minFontSize;case"point":case"square":case"circle":return d.scale.minSize}throw new Error(Mi("size",l))}let Gg=.95;function jg(l,s,d){let m=Wr(l.width)?l.width.step:fc(d,"width"),y=Wr(l.height)?l.height.step:fc(d,"height");return s.x||s.y?new Dn((()=>`min(${[s.x?s.x.signal:m,s.y?s.y.signal:y].join(", ")})`)):Math.min(m,y)}function kp(l,s){dn(l)?(function(d,m){let y=d.component.scales,{config:k,encoding:A,markDef:R,specifiedScales:C}=d;for(let $ of we(y)){let j=C[$],H=y[$],ee=d.getScaleComponent($),ae=mn(A[$]),ne=j[m],de=ee.get("type"),he=ee.get("padding"),ge=ee.get("paddingInner"),Ee=Vh(de,m),Se=ay($,m);if(ne!==void 0&&(Ee?Se&&$e(Se):$e(H0(de,m,$))),Ee&&Se===void 0)if(ne!==void 0){let Re=ae.timeUnit,Pe=ae.type;switch(m){case"domainMax":case"domainMin":Gs(j[m])||Pe==="temporal"||Re?H.set(m,{signal:ic(j[m],{type:Pe,timeUnit:Re})},!0):H.set(m,j[m],!0);break;default:H.copyKeyFromObject(m,j)}}else{let Re=m in Hg?Hg[m]({model:d,channel:$,fieldOrDatumDef:ae,scaleType:de,scalePadding:he,scalePaddingInner:ge,domain:j.domain,domainMin:j.domainMin,domainMax:j.domainMax,markDef:R,config:k,hasNestedOffsetScale:yy(A,$),hasSecondaryRangeChannel:!!A[Ri($)]}):k.scale[m];Re!==void 0&&H.set(m,Re,!1)}}})(l,s):kv(l,s)}let Hg={bins:l=>{let{model:s,fieldOrDatumDef:d}=l;return ze(d)?(function(m,y){let k=y.bin;if(Jt(k)){let A=To(m,y.field,k);return new Dn((()=>m.getSignalName(A)))}if($n(k)&&mo(k)&&k.step!==void 0)return{step:k.step}})(s,d):void 0},interpolate:l=>{let{channel:s,fieldOrDatumDef:d}=l;return(function(m,y){if(Y([Fe,xr,ei],m)&&y!=="nominal")return"hcl"})(s,d.type)},nice:l=>{let{scaleType:s,channel:d,domain:m,domainMin:y,domainMax:k,fieldOrDatumDef:A}=l;return(function(R,C,$,j,H,ee){if(!(ga(ee)?.bin||h.isArray($)||H!=null||j!=null||Y([Vt.TIME,Vt.UTC],R)))return!!un(C)||void 0})(s,d,m,y,k,A)},padding:l=>{let{channel:s,scaleType:d,fieldOrDatumDef:m,markDef:y,config:k}=l;return(function(A,R,C,$,j,H){if(un(A)){if(za(R)){if(C.continuousPadding!==void 0)return C.continuousPadding;let{type:ee,orient:ae}=j;if(ee==="bar"&&(!ze($)||!$.bin&&!$.timeUnit)&&(ae==="vertical"&&A==="x"||ae==="horizontal"&&A==="y"))return H.continuousBandSize}if(R===Vt.POINT)return C.pointPadding}})(s,d,k.scale,m,y,k.bar)},paddingInner:l=>{let{scalePadding:s,channel:d,markDef:m,scaleType:y,config:k,hasNestedOffsetScale:A}=l;return(function(R,C,$,j,H){let ee=arguments.length>5&&arguments[5]!==void 0&&arguments[5];if(R===void 0){if(un(C)){let{bandPaddingInner:ae,barBandPaddingInner:ne,rectBandPaddingInner:de,bandWithNestedOffsetPaddingInner:he}=H;return ee?he:Tt(ae,$==="bar"?ne:de)}if(Zn(C)&&j===Vt.BAND)return H.offsetBandPaddingInner}})(s,d,m.type,y,k.scale,A)},paddingOuter:l=>{let{scalePadding:s,channel:d,scaleType:m,scalePaddingInner:y,config:k,hasNestedOffsetScale:A}=l;return(function(R,C,$,j,H){let ee=arguments.length>5&&arguments[5]!==void 0&&arguments[5];if(R===void 0){if(un(C)){let{bandPaddingOuter:ae,bandWithNestedOffsetPaddingOuter:ne}=H;if(ee)return ne;if($===Vt.BAND)return Tt(ae,Je(j)?{signal:`${j.signal}/2`}:j/2)}else if(Zn(C)){if($===Vt.POINT)return .5;if($===Vt.BAND)return H.offsetBandPaddingOuter}}})(s,d,m,y,k.scale,A)},reverse:l=>{let{fieldOrDatumDef:s,scaleType:d,channel:m,config:y}=l;return(function(k,A,R,C){if(R==="x"&&C.xReverse!==void 0)return qr(k)&&A==="descending"?Je(C.xReverse)?{signal:`!${C.xReverse.signal}`}:!C.xReverse:C.xReverse;if(qr(k)&&A==="descending")return!0})(d,ze(s)?s.sort:void 0,m,y.scale)},zero:l=>{let{channel:s,fieldOrDatumDef:d,domain:m,markDef:y,scaleType:k,config:A,hasSecondaryRangeChannel:R}=l;return(function(C,$,j,H,ee,ae,ne){if(j&&j!=="unaggregated"&&qr(ee)){if(h.isArray(j)){let de=j[0],he=j[j.length-1];if(h.isNumber(de)&&de<=0&&h.isNumber(he)&&he>=0)return!0}return!1}if(C==="size"&&$.type==="quantitative"&&!Zl(ee))return!0;if((!ze($)||!$.bin)&&Y([...ni,...C0],C)){let{orient:de,type:he}=H;return(!Y(["bar","area","line","trail"],he)||!(de==="horizontal"&&C==="y"||de==="vertical"&&C==="x"))&&(!(!Y(["bar","area"],he)||ne)||ae?.zero)}return!1})(s,d,m,y,k,A.scale,R)}};function wv(l){dn(l)?(function(s){let d=s.component.scales;for(let m of Gl){let y=d[m];if(!y)continue;let k=gv(m,s);y.setWithExplicit("range",k)}})(l):kv(l,"range")}function kv(l,s){let d=l.component.scales;for(let m of l.children)s==="range"?wv(m):kp(m,s);for(let m of we(d)){let y;for(let k of l.children){let A=k.component.scales[m];A&&(y=qi(y,A.getWithExplicit(s),s,"scale",My(((R,C)=>s==="range"&&R.step&&C.step?R.step-C.step:0))))}d[m].setWithExplicit(s,y)}}function qg(l,s,d,m){let y=(function(C,$,j,H){switch($.type){case"nominal":case"ordinal":if(Qo(C)||Ud(C)==="discrete")return C==="shape"&&$.type==="ordinal"&&$e(Vd(C,"ordinal")),"ordinal";if(un(C)||Zn(C)){if(Y(["rect","bar","image","rule"],j.type)||H)return"band"}else if(j.type==="arc"&&C in eu)return"band";return Ys(j[Sr(C)])||nc($)&&$.axis?.tickBand?"band":"point";case"temporal":return Qo(C)?"time":Ud(C)==="discrete"?($e(Vd(C,"temporal")),"ordinal"):ze($)&&$.timeUnit&&Un($.timeUnit).utc?"utc":"time";case"quantitative":return Qo(C)?ze($)&&Jt($.bin)?"bin-ordinal":"linear":Ud(C)==="discrete"?($e(Vd(C,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(qd($.type))})(s,d,m,arguments.length>4&&arguments[4]!==void 0&&arguments[4]),{type:k}=l;return Fa(s)?k!==void 0?(function(C,$){let j=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!Fa(C))return!1;switch(C){case et:case nt:case Ze:case on:case la:case lt:return!!za($)||$==="band"||$==="point"&&!j;case xi:case fo:case Si:case Ut:case Ai:case Ur:return za($)||Zl($)||Y(["band","point","ordinal"],$);case Fe:case xr:case ei:return $!=="band";case Zo:case vn:return $==="ordinal"||Zl($)}})(s,k)?ze(d)&&(A=k,R=d.type,!(Y([rf,af],R)?A===void 0||zn(A):R===rs?Y([Vt.TIME,Vt.UTC,void 0],A):R!==bo||ty(A)||Zl(A)||A===void 0))?($e((function(C,$){return`FieldDef does not work with "${C}" scale. We are using "${$}" scale instead.`})(k,y)),y):k:($e((function(C,$,j){return`Channel "${C}" does not work with "${$}" scale. We are using "${j}" scale instead.`})(s,k,y)),y):y:null;var A,R}function _p(l){dn(l)?l.component.scales=(function(s){let{encoding:d,mark:m,markDef:y}=s,k={};for(let A of Gl){let R=mn(d[A]);if(R&&m===oy&&A===vn&&R.type===Vs)continue;let C=R&&R.scale;if(R&&C!==null&&C!==!1){C??={};let $=qg(C,A,R,y,yy(d,A));k[A]=new Bg(s.scaleName(`${A}`,!0),{value:$,explicit:C.type===$})}}return k})(l):l.component.scales=(function(s){let d=s.component.scales={},m={},y=s.component.resolve;for(let k of s.children){_p(k);for(let A of we(k.component.scales))if(y.scale[A]??=vg(A,s),y.scale[A]==="shared"){let R=m[A],C=k.component.scales[A].getWithExplicit("type");R?Lk(R.value,C.value)?m[A]=qi(R,C,"type","scale",E_):(y.scale[A]="independent",delete m[A]):m[A]=C}}for(let k of we(m)){let A=s.scaleName(k,!0),R=m[k];d[k]=new Bg(A,R);for(let C of s.children){let $=C.component.scales[k];$&&(C.renameScale($.get("name"),A),$.merged=!0)}}return d})(l)}let E_=My(((l,s)=>ey(l)-ey(s)));class Wg{constructor(){ct(this,"nameMap",void 0),this.nameMap={}}rename(s,d){this.nameMap[s]=d}has(s){return this.nameMap[s]!==void 0}get(s){for(;this.nameMap[s]&&s!==this.nameMap[s];)s=this.nameMap[s];return s}}function dn(l){return l?.type==="unit"}function Kr(l){return l?.type==="facet"}function Ji(l){return l?.type==="concat"}function Es(l){return l?.type==="layer"}class ad{constructor(s,d,m,y,k,A,R){this.type=d,this.parent=m,this.config=k,ct(this,"name",void 0),ct(this,"size",void 0),ct(this,"title",void 0),ct(this,"description",void 0),ct(this,"data",void 0),ct(this,"transforms",void 0),ct(this,"layout",void 0),ct(this,"scaleNameMap",void 0),ct(this,"projectionNameMap",void 0),ct(this,"signalNameMap",void 0),ct(this,"component",void 0),ct(this,"view",void 0),ct(this,"children",void 0),ct(this,"correctDataNames",(C=>(C.from?.data&&(C.from.data=this.lookupDataSource(C.from.data)),C.from?.facet?.data&&(C.from.facet.data=this.lookupDataSource(C.from.facet.data)),C))),this.parent=m,this.config=k,this.view=Jn(R),this.name=s.name??y,this.title=dr(s.title)?{text:s.title}:s.title?Jn(s.title):void 0,this.scaleNameMap=m?m.scaleNameMap:new Wg,this.projectionNameMap=m?m.projectionNameMap:new Wg,this.signalNameMap=m?m.signalNameMap:new Wg,this.data=s.data,this.description=s.description,this.transforms=(s.transform??[]).map((C=>$m(C)?{filter:L(C.filter,cu)}:C)),this.layout=d==="layer"||d==="unit"?{}:(function(C,$,j){let H=j[$],ee={},{spacing:ae,columns:ne}=H;ae!==void 0&&(ee.spacing=ae),ne!==void 0&&(hu(C)&&!Ql(C.facet)||xu(C))&&(ee.columns=ne),dc(C)&&(ee.columns=1);for(let de of Au)if(C[de]!==void 0)if(de==="spacing"){let he=C[de];ee[de]=h.isNumber(he)?he:{row:he.row??ae,column:he.column??ae}}else ee[de]=C[de];return ee})(s,d,k),this.component={data:{sources:m?m.component.data.sources:[],outputNodes:m?m.component.data.outputNodes:{},outputNodeRefCounts:m?m.component.data.outputNodeRefCounts:{},isFaceted:hu(s)||m?.component.data.isFaceted&&s.data===void 0},layoutSize:new ji,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:{scale:{},axis:{},legend:{},...A?U(A):{}},selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){(function(s){let{ignoreRange:d}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};_p(s),hv(s);for(let m of zk)kp(s,m);d||wv(s)})(this)}parseProjection(){Cg(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){dp(this)}assembleEncodeFromView(s){let{style:d,...m}=s,y={};for(let k of we(m)){let A=m[k];A!==void 0&&(y[k]=sn(A))}return y}assembleGroupEncodeEntry(s){let d={};return this.view&&(d=this.assembleEncodeFromView(this.view)),s||(this.description&&(d.description=sn(this.description)),this.type!=="unit"&&this.type!=="layer")?ye(d)?void 0:d:{width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height"),...d??{}}}assembleLayout(){if(!this.layout)return;let{spacing:s,...d}=this.layout,{component:m,config:y}=this,k=(function(A,R){let C={};for(let $ of zr){let j=A[$];if(j?.facetFieldDef){let{titleAnchor:H,titleOrient:ee}=zu(["titleAnchor","titleOrient"],j.facetFieldDef.header,R,$),ae=Uu($,ee),ne=av(H,ae);ne!==void 0&&(C[ae]=ne)}}return ye(C)?void 0:C})(m.layoutHeaders,y);return{padding:s,...this.assembleDefaultLayout(),...d,...k?{titleBand:k}:{}}}assembleDefaultLayout(){return{}}assembleHeaderMarks(){let{layoutHeaders:s}=this.component,d=[];for(let m of zr)s[m].title&&d.push(gs(this,m));for(let m of kc)d=d.concat(nv(this,m));return d}assembleAxes(){return(function(s,d){let{x:m=[],y=[]}=s;return[...m.map((k=>Xi(k,"grid",d))),...y.map((k=>Xi(k,"grid",d))),...m.map((k=>Xi(k,"main",d))),...y.map((k=>Xi(k,"main",d)))].filter((k=>k))})(this.component.axes,this.config)}assembleLegends(){return pp(this)}assembleProjections(){return Tg(this)}assembleTitle(){let{encoding:s,...d}=this.title??{},m={...au(this.config.title).nonMarkTitleProperties,...d,...s?{encode:{update:s}}:{}};if(m.text)return Y(["unit","layer"],this.type)?Y(["middle",void 0],m.anchor)&&(m.frame??="group"):m.anchor??="start",ye(m)?void 0:m}assembleGroup(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],d={};s=s.concat(this.assembleSignals()),s.length>0&&(d.signals=s);let m=this.assembleLayout();m&&(d.layout=m),d.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());let y=!this.parent||Kr(this.parent)?rd(this):[];y.length>0&&(d.scales=y);let k=this.assembleAxes();k.length>0&&(d.axes=k);let A=this.assembleLegends();return A.length>0&&(d.legends=A),d}getName(s){return me((this.name?`${this.name}_`:"")+s)}getDataName(s){return this.getName(nn[s].toLowerCase())}requestDataName(s){let d=this.getDataName(s),m=this.component.data.outputNodeRefCounts;return m[d]=(m[d]||0)+1,d}getSizeSignalRef(s){if(Kr(this.parent)){let d=tu(bg(s)),m=this.component.scales[d];if(m&&!m.merged){let y=m.get("type"),k=m.get("range");if(zn(y)&&go(k)){let A=m.get("name"),R=Pg(vs(this,d));return R?{signal:lp(A,m,Ge({aggregate:"distinct",field:R},{expr:"datum"}))}:($e(pr(d)),null)}}}return{signal:this.signalNameMap.get(this.getName(s))}}lookupDataSource(s){let d=this.component.data.outputNodes[s];return d?d.getSource():s}getSignalName(s){return this.signalNameMap.get(s)}renameSignal(s,d){this.signalNameMap.rename(s,d)}renameScale(s,d){this.scaleNameMap.rename(s,d)}renameProjection(s,d){this.projectionNameMap.rename(s,d)}scaleName(s,d){return d?this.getName(s):S0(s)&&Fa(s)&&this.component.scales[s]||this.scaleNameMap.has(this.getName(s))?this.scaleNameMap.get(this.getName(s)):void 0}projectionName(s){return s?this.getName("projection"):this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection"))?this.projectionNameMap.get(this.getName("projection")):void 0}getScaleComponent(s){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");let d=this.component.scales[s];return d&&!d.merged?d:this.parent?this.parent.getScaleComponent(s):void 0}getSelectionComponent(s,d){let m=this.component.selection[s];if(!m&&this.parent&&(m=this.parent.getSelectionComponent(s,d)),!m)throw new Error((function(y){return`Cannot find a selection named "${y}".`})(d));return m}hasAxisOrientSignalRef(){return this.component.axes.x?.some((s=>s.hasOrientSignalRef()))||this.component.axes.y?.some((s=>s.hasOrientSignalRef()))}}class id extends ad{vgField(s){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},m=this.fieldDef(s);if(m)return Ge(m,d)}reduceFieldDef(s,d){return(function(m,y,k,A){return m?we(m).reduce(((R,C)=>{let $=m[C];return h.isArray($)?$.reduce(((j,H)=>y.call(A,j,H,C)),R):y.call(A,R,$,C)}),k):k})(this.getMapping(),((m,y,k)=>{let A=ga(y);return A?s(m,A,k):m}),d)}forEachFieldDef(s,d){yu(this.getMapping(),((m,y)=>{let k=ga(m);k&&s(k,y)}),d)}}class _c extends Kt{clone(){return new _c(null,U(this.transform))}constructor(s,d){super(s),this.transform=d,this.transform=U(d);let m=this.transform.as??[void 0,void 0];this.transform.as=[m[0]??"value",m[1]??"density"]}dependentFields(){return new Set([this.transform.density,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${V(this.transform)}`}assemble(){let{density:s,...d}=this.transform,m={type:"kde",field:s,...d};return this.transform.groupby&&(m.resolve="shared"),m}}class xc extends Kt{clone(){return new xc(null,U(this.transform))}constructor(s,d){super(s),this.transform=d,this.transform=U(d)}dependentFields(){return new Set([this.transform.extent])}producedFields(){return new Set([])}hash(){return`ExtentTransform ${V(this.transform)}`}assemble(){let{extent:s,param:d}=this.transform;return{type:"extent",field:s,signal:d}}}class Qi extends Kt{clone(){return new Qi(null,{...this.filter})}constructor(s,d){super(s),this.filter=d}static make(s,d){let{config:m,mark:y,markDef:k}=d;if(Yt("invalid",k,m)!=="filter")return null;let A=d.reduceFieldDef(((R,C,$)=>{let j=Fa($)&&d.getScaleComponent($);return j&&qr(j.get("type"))&&C.aggregate!=="count"&&!as(y)&&(R[C.field]=C),R}),{});return we(A).length?new Qi(s,A):null}dependentFields(){return new Set(we(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${V(this.filter)}`}assemble(){let s=we(this.filter).reduce(((d,m)=>{let y=this.filter[m],k=Ge(y,{expr:"datum"});return y!==null&&(y.type==="temporal"?d.push(`(isDate(${k}) || (isValid(${k}) && isFinite(+${k})))`):y.type==="quantitative"&&(d.push(`isValid(${k})`),d.push(`isFinite(+${k})`))),d}),[]);return s.length>0?{type:"filter",expr:s.join(" && ")}:null}}class ja extends Kt{clone(){return new ja(this.parent,U(this.transform))}constructor(s,d){super(s),this.transform=d,this.transform=U(d);let{flatten:m,as:y=[]}=this.transform;this.transform.as=m.map(((k,A)=>y[A]??k))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${V(this.transform)}`}assemble(){let{flatten:s,as:d}=this.transform;return{type:"flatten",fields:s,as:d}}}class ws extends Kt{clone(){return new ws(null,U(this.transform))}constructor(s,d){super(s),this.transform=d,this.transform=U(d);let m=this.transform.as??[void 0,void 0];this.transform.as=[m[0]??"key",m[1]??"value"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${V(this.transform)}`}assemble(){let{fold:s,as:d}=this.transform;return{type:"fold",fields:s,as:d}}}class eo extends Kt{clone(){return new eo(null,U(this.fields),this.geojson,this.signal)}static parseAll(s,d){if(d.component.projection&&!d.component.projection.isFit)return s;let m=0;for(let y of[[Br,ot],[ca,ur]]){let k=y.map((A=>{let R=mn(d.encoding[A]);return ze(R)?R.field:Pi(R)?{expr:`${R.datum}`}:ma(R)?{expr:`${R.value}`}:void 0}));(k[0]||k[1])&&(s=new eo(s,k,null,d.getName("geojson_"+m++)))}if(d.channelHasField(vn)){let y=d.typedFieldDef(vn);y.type===Vs&&(s=new eo(s,null,y.field,d.getName("geojson_"+m++)))}return s}constructor(s,d,m,y){super(s),this.fields=d,this.geojson=m,this.signal=y}dependentFields(){let s=(this.fields??[]).filter(h.isString);return new Set([...this.geojson?[this.geojson]:[],...s])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${V(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],{type:"geojson",...this.fields?{fields:this.fields}:{},...this.geojson?{geojson:this.geojson}:{},signal:this.signal}]}}class ks extends Kt{clone(){return new ks(null,this.projection,U(this.fields),U(this.as))}constructor(s,d,m,y){super(s),this.projection=d,this.fields=m,this.as=y}static parseAll(s,d){if(!d.projectionName())return s;for(let m of[[Br,ot],[ca,ur]]){let y=m.map((A=>{let R=mn(d.encoding[A]);return ze(R)?R.field:Pi(R)?{expr:`${R.datum}`}:ma(R)?{expr:`${R.value}`}:void 0})),k=m[0]===ca?"2":"";(y[0]||y[1])&&(s=new ks(s,d.projectionName(),y,[d.getName(`x${k}`),d.getName(`y${k}`)]))}return s}dependentFields(){return new Set(this.fields.filter(h.isString))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${V(this.fields)} ${V(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class va extends Kt{clone(){return new va(null,U(this.transform))}constructor(s,d){super(s),this.transform=d}dependentFields(){return new Set([this.transform.impute,this.transform.key,...this.transform.groupby??[]])}producedFields(){return new Set([this.transform.impute])}processSequence(s){let{start:d=0,stop:m,step:y}=s;return{signal:`sequence(${[d,m,...y?[y]:[]].join(",")})`}}static makeFromTransform(s,d){return new va(s,d)}static makeFromEncoding(s,d){let m=d.encoding,y=m.x,k=m.y;if(ze(y)&&ze(k)){let A=y.impute?y:k.impute?k:void 0;if(A===void 0)return;let R=y.impute?k:k.impute?y:void 0,{method:C,value:$,frame:j,keyvals:H}=A.impute,ee=pm(d.mark,m);return new va(s,{impute:A.field,key:R.field,...C?{method:C}:{},...$!==void 0?{value:$}:{},...j?{frame:j}:{},...H!==void 0?{keyvals:H}:{},...ee.length?{groupby:ee}:{}})}return null}hash(){return`Impute ${V(this.transform)}`}assemble(){let{impute:s,key:d,keyvals:m,method:y,groupby:k,value:A,frame:R=[null,null]}=this.transform,C={type:"impute",field:s,key:d,...m?{keyvals:($=m,$?.stop!==void 0?this.processSequence(m):m)}:{},method:"value",...k?{groupby:k}:{},value:y&&y!=="value"?null:A};var $;return y&&y!=="value"?[C,{type:"window",as:[`imputed_${s}_value`],ops:[y],fields:[s],frame:R,ignorePeers:!1,...k?{groupby:k}:{}},{type:"formula",expr:`datum.${s} === null ? datum.imputed_${s}_value : datum.${s}`,as:s}]:[C]}}class to extends Kt{clone(){return new to(null,U(this.transform))}constructor(s,d){super(s),this.transform=d,this.transform=U(d);let m=this.transform.as??[void 0,void 0];this.transform.as=[m[0]??d.on,m[1]??d.loess]}dependentFields(){return new Set([this.transform.loess,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${V(this.transform)}`}assemble(){let{loess:s,on:d,...m}=this.transform;return{type:"loess",x:d,y:s,...m}}}class Xr extends Kt{clone(){return new Xr(null,U(this.transform),this.secondary)}constructor(s,d,m){super(s),this.transform=d,this.secondary=m}static make(s,d,m,y){let k=d.component.data.sources,{from:A}=m,R=null;if((function(C){return"data"in C})(A)){let C=Yg(A.data,k);C||(C=new Co(A.data),k.push(C));let $=d.getName(`lookup_${y}`);R=new rr(C,$,nn.Lookup,d.component.data.outputNodeRefCounts),d.component.data.outputNodes[$]=R}else if((function(C){return"param"in C})(A)){let C=A.param,$;m={as:C,...m};try{$=d.getSelectionComponent(me(C),C)}catch{throw new Error((function(H){return`Lookups can only be performed on selection parameters. "${H}" is a variable parameter.`})(C))}if(R=$.materialized,!R)throw new Error((function(j){return`Cannot define and lookup the "${j}" selection in the same view. Try moving the lookup into a second, layered view?`})(C))}return new Xr(s,m,R.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?h.array(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${V({transform:this.transform,secondary:this.secondary})}`}assemble(){let s;if(this.transform.from.fields)s={values:this.transform.from.fields,...this.transform.as?{as:h.array(this.transform.as)}:{}};else{let d=this.transform.as;h.isString(d)||($e('If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.'),d="_lookup"),s={as:[d]}}return{type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup],...s,...this.transform.default?{default:this.transform.default}:{}}}}class Io extends Kt{clone(){return new Io(null,U(this.transform))}constructor(s,d){super(s),this.transform=d,this.transform=U(d);let m=this.transform.as??[void 0,void 0];this.transform.as=[m[0]??"prob",m[1]??"value"]}dependentFields(){return new Set([this.transform.quantile,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${V(this.transform)}`}assemble(){let{quantile:s,...d}=this.transform;return{type:"quantile",field:s,...d}}}class Oo extends Kt{clone(){return new Oo(null,U(this.transform))}constructor(s,d){super(s),this.transform=d,this.transform=U(d);let m=this.transform.as??[void 0,void 0];this.transform.as=[m[0]??d.on,m[1]??d.regression]}dependentFields(){return new Set([this.transform.regression,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${V(this.transform)}`}assemble(){let{regression:s,on:d,...m}=this.transform;return{type:"regression",x:d,y:s,...m}}}class hl extends Kt{clone(){return new hl(null,U(this.transform))}constructor(s,d){super(s),this.transform=d}addDimensions(s){this.transform.groupby=be((this.transform.groupby??[]).concat(s),(d=>d))}producedFields(){}dependentFields(){return new Set([this.transform.pivot,this.transform.value,...this.transform.groupby??[]])}hash(){return`PivotTransform ${V(this.transform)}`}assemble(){let{pivot:s,value:d,groupby:m,limit:y,op:k}=this.transform;return{type:"pivot",field:s,value:d,...y!==void 0?{limit:y}:{},...k!==void 0?{op:k}:{},...m!==void 0?{groupby:m}:{}}}}class ml extends Kt{clone(){return new ml(null,U(this.transform))}constructor(s,d){super(s),this.transform=d}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${V(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function xp(l){let s=0;return function d(m,y){if(m instanceof Co&&!m.isGenerator&&!ds(m.data)&&(l.push(y),y={name:null,source:y.name,transform:[]}),m instanceof Wn&&(m.parent instanceof Co&&!y.source?(y.format={...y.format??{},parse:m.assembleFormatParse()},y.transform.push(...m.assembleTransforms(!0))):y.transform.push(...m.assembleTransforms())),m instanceof ul)return y.name||(y.name="data_"+s++),!y.source||y.transform.length>0?(l.push(y),m.data=y.name):m.data=y.source,void l.push(...m.assemble());switch((m instanceof Xu||m instanceof Zu||m instanceof Qi||m instanceof pi||m instanceof ol||m instanceof ks||m instanceof Yr||m instanceof Xr||m instanceof fl||m instanceof dl||m instanceof ws||m instanceof ja||m instanceof _c||m instanceof to||m instanceof Io||m instanceof Oo||m instanceof Ro||m instanceof ml||m instanceof hl||m instanceof xc)&&y.transform.push(m.assemble()),(m instanceof gi||m instanceof Wi||m instanceof va||m instanceof No||m instanceof eo)&&y.transform.push(...m.assemble()),m instanceof rr&&(y.source&&y.transform.length===0?m.setSource(y.source):m.parent instanceof rr?m.setSource(y.name):(y.name||(y.name="data_"+s++),m.setSource(y.name),m.numChildren()===1&&(l.push(y),y={name:null,source:y.name,transform:[]}))),m.numChildren()){case 0:m instanceof rr&&(!y.source||y.transform.length>0)&&l.push(y);break;case 1:d(m.children[0],y);break;default:{y.name||(y.name="data_"+s++);let k=y.name;!y.source||y.transform.length>0?l.push(y):k=y.source;for(let A of m.children)d(A,{name:null,source:k,transform:[]});break}}}}function Vg(l){return l==="top"||l==="left"||Je(l)?"header":"footer"}function _v(l,s){let{facet:d,config:m,child:y,component:k}=l;if(l.channelHasField(s)){let A=d[s],R=Zi("title",null,m,s),C=os(A,m,{allowDisabling:!0,includeDefault:R===void 0||!!R});y.component.layoutHeaders[s].title&&(C=h.isArray(C)?C.join(", "):C,C+=` / ${y.component.layoutHeaders[s].title}`,y.component.layoutHeaders[s].title=null);let $=Zi("labelOrient",A.header,m,s),j=A.header!==null&&Tt(A.header?.labels,m.header.labels,!0),H=Y(["bottom","right"],$)?"footer":"header";k.layoutHeaders[s]={title:A.header!==null?C:null,facetFieldDef:A,[H]:s==="facet"?[]:[Sp(l,s,j)]}}}function Sp(l,s,d){let m=s==="row"?"height":"width";return{labels:d,sizeSignal:l.child.component.layoutSize.get(m)?l.child.getSizeSignalRef(m):void 0,axes:[]}}function Tn(l,s){let{child:d}=l;if(d.component.axes[s]){let{layoutHeaders:m,resolve:y}=l.component;if(y.axis[s]=cp(y,s),y.axis[s]==="shared"){let k=s==="x"?"column":"row",A=m[k];for(let R of d.component.axes[s]){let C=Vg(R.get("orient"));A[C]??=[Sp(l,k,!1)];let $=Xi(R,"main",l.config,{header:!0});$&&A[C][0].axes.push($),R.mainExtracted=!0}}}}function gl(l){for(let s of l.children)s.parseLayoutSize()}function _s(l,s){let d=bg(s),m=tu(d),y=l.component.resolve,k=l.component.layoutSize,A;for(let R of l.children){let C=R.component.layoutSize.getWithExplicit(d),$=y.scale[m]??vg(m,l);if($==="independent"&&C.value==="step"){A=void 0;break}if(A){if($==="independent"&&A.value!==C.value){A=void 0;break}A=qi(A,C,d,"")}else A=C}if(A){for(let R of l.children)l.renameSignal(R.getName(d),l.getName(s)),R.component.layoutSize.set(d,"merged",!1);k.setWithExplicit(s,A)}else k.setWithExplicit(s,{explicit:!1,value:void 0})}function Ha(l,s){let d=s==="width"?"x":"y",m=l.config,y=l.getScaleComponent(d);if(y){let k=y.get("type"),A=y.get("range");if(zn(k)){let R=Tu(m.view,s);return go(A)||Wr(R)?"step":R}return us(m.view,s)}if(l.hasProjection||l.mark==="arc")return us(m.view,s);{let k=Tu(m.view,s);return Wr(k)?k.step:k}}function od(l,s,d){return Ge(s,{suffix:`by_${Ge(l)}`,...d??{}})}class bl extends id{constructor(s,d,m,y){super(s,"facet",d,m,y,s.resolve),ct(this,"facet",void 0),ct(this,"child",void 0),ct(this,"children",void 0),this.child=tb(s.spec,this,this.getName("child"),void 0,y),this.children=[this.child],this.facet=this.initFacet(s.facet)}initFacet(s){if(!Ql(s))return{facet:this.initFacetFieldDef(s,"facet")};let d=we(s),m={};for(let y of d){if(![We,at].includes(y)){$e(Mi(y,"facet"));break}let k=s[y];if(k.field===void 0){$e(Wd(k,y));break}m[y]=this.initFacetFieldDef(k,y)}return m}initFacetFieldDef(s,d){let m=ac(s,d);return m.header?m.header=Jn(m.header):m.header===null&&(m.header=null),m}channelHasField(s){return!!this.facet[s]}fieldDef(s){return this.facet[s]}parseData(){this.component.data=Ap(this),this.child.parseData()}parseLayoutSize(){gl(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),(function(s){for(let d of zr)_v(s,d);Tn(s,"x"),Tn(s,"y")})(this)}assembleSelectionTopLevelSignals(s){return this.child.assembleSelectionTopLevelSignals(s)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(s){return this.child.assembleSelectionData(s)}getHeaderLayoutMixins(){let s={};for(let d of zr)for(let m of Gu){let y=this.component.layoutHeaders[d],k=y[m],{facetFieldDef:A}=y;if(A){let R=Zi("titleOrient",A.header,this.config,d);if(["right","bottom"].includes(R)){let C=Uu(d,R);s.titleAnchor??={},s.titleAnchor[C]="end"}}if(k?.[0]){let R=d==="row"?"height":"width",C=m==="header"?"headerBand":"footerBand";d==="facet"||this.child.component.layoutSize.get(R)||(s[C]??={},s[C][d]=.5),y.title&&(s.offset??={},s.offset[d==="row"?"rowTitle":"columnTitle"]=10)}}return s}assembleDefaultLayout(){let{column:s,row:d}=this.facet,m=s?this.columnDistinctSignal():d?1:void 0,y="all";return(d||this.component.resolve.scale.x!=="independent")&&(s||this.component.resolve.scale.y!=="independent")||(y="none"),{...this.getHeaderLayoutMixins(),...m?{columns:m}:{},bounds:"full",align:y}}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof bl))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(s){return this.parent&&this.parent instanceof bl?{...this.channelHasField("column")?{encode:{update:{columns:{field:Ge(this.facet.column,{prefix:"distinct"})}}}}:{},...super.assembleGroup(s)}:super.assembleGroup(s)}getCardinalityAggregateForChild(){let s=[],d=[],m=[];if(this.child instanceof bl){if(this.child.channelHasField("column")){let y=Ge(this.child.facet.column);s.push(y),d.push("distinct"),m.push(`distinct_${y}`)}}else for(let y of ni){let k=this.child.component.scales[y];if(k&&!k.merged){let A=k.get("type"),R=k.get("range");if(zn(A)&&go(R)){let C=Pg(vs(this.child,y));C?(s.push(C),d.push("distinct"),m.push(`distinct_${C}`)):$e(pr(y))}}}return{fields:s,ops:d,as:m}}assembleFacet(){let{name:s,data:d}=this.component.data.facetRoot,{row:m,column:y}=this.facet,{fields:k,ops:A,as:R}=this.getCardinalityAggregateForChild(),C=[];for(let j of zr){let H=this.facet[j];if(H){C.push(Ge(H));let{bin:ee,sort:ae}=H;if(Jt(ee)&&C.push(Ge(H,{binSuffix:"end"})),li(ae)){let{field:ne,op:de=fu}=ae,he=od(H,ae);m&&y?(k.push(he),A.push("max"),R.push(he)):(k.push(ne),A.push(de),R.push(he))}else if(h.isArray(ae)){let ne=sl(H,j);k.push(ne),A.push("max"),R.push(ne)}}}let $=!!m&&!!y;return{name:s,data:d,groupby:C,...$||k.length>0?{aggregate:{...$?{cross:$}:{},...k.length?{fields:k,ops:A,as:R}:{}}}:{}}}facetSortFields(s){let{facet:d}=this,m=d[s];return m?li(m.sort)?[od(m,m.sort,{expr:"datum"})]:h.isArray(m.sort)?[sl(m,s,{expr:"datum"})]:[Ge(m,{expr:"datum"})]:[]}facetSortOrder(s){let{facet:d}=this,m=d[s];if(m){let{sort:y}=m;return[(li(y)?y.order:!h.isArray(y)&&y)||"ascending"]}return[]}assembleLabelTitle(){let{facet:s,config:d}=this;if(s.facet)return So(s.facet,"facet",d);let m={row:["top","bottom"],column:["left","right"]};for(let y of kc)if(s[y]){let k=Zi("labelOrient",s[y]?.header,d,y);if(m[y].includes(k))return So(s[y],y,d)}}assembleMarks(){let{child:s}=this,d=(function(A){let R=[],C=xp(R);for(let $ of A.children)C($,{source:A.name,name:null,transform:[]});return R})(this.component.data.facetRoot),m=s.assembleGroupEncodeEntry(!1),y=this.assembleLabelTitle()||s.assembleTitle(),k=s.assembleGroupStyle();return[{name:this.getName("cell"),type:"group",...y?{title:y}:{},...k?{style:k}:{},from:{facet:this.assembleFacet()},sort:{field:zr.map((A=>this.facetSortFields(A))).flat(),order:zr.map((A=>this.facetSortOrder(A))).flat()},...d.length>0?{data:d}:{},...m?{encode:{update:m}}:{},...s.assembleGroup(Iu(this,[]))}]}getMapping(){return this.facet}}function Yg(l,s){for(let d of s){let m=d.data;if(l.name&&d.hasName()&&l.name!==d.dataName)continue;let y=l.format?.mesh,k=m.format?.feature;if(y&&k)continue;let A=l.format?.feature;if((A||k)&&A!==k)continue;let R=m.format?.mesh;if(!y&&!R||y===R){if(mc(l)&&mc(m)){if(Ne(l.values,m.values))return d}else if(ds(l)&&ds(m)){if(l.url===m.url)return d}else if(Vf(l)&&l.name===d.dataName)return d}}return null}function Ap(l){let s=(function(ne,de){if(ne.data||!ne.parent){if(ne.data===null){let ge=new Co({values:[]});return de.push(ge),ge}let he=Yg(ne.data,de);if(he)return Eo(ne.data)||(he.data.format=le({},ne.data.format,he.data.format)),!he.hasName()&&ne.data.name&&(he.dataName=ne.data.name),he;{let ge=new Co(ne.data);return de.push(ge),ge}}return ne.parent.component.data.facetRoot?ne.parent.component.data.facetRoot:ne.parent.component.data.main})(l,l.component.data.sources),{outputNodes:d,outputNodeRefCounts:m}=l.component.data,y=l.data,k=!(y&&(Eo(y)||ds(y)||mc(y)))&&l.parent?l.parent.component.data.ancestorParse.clone():new Ly;Eo(y)?(Yf(y)?s=new Zu(s,y.sequence):Xf(y)&&(s=new Xu(s,y.graticule)),k.parseNothing=!0):y?.format?.parse===null&&(k.parseNothing=!0),s=Wn.makeExplicit(s,l,k)??s,s=new Ro(s);let A=l.parent&&Es(l.parent);(dn(l)||Kr(l))&&A&&(s=gi.makeFromEncoding(s,l)??s),l.transforms.length>0&&(s=(function(ne,de,he){let ge=0;for(let Ee of de.transforms){let Se,Re;if(s_(Ee))Re=ne=new ol(ne,Ee),Se="derived";else if($m(Ee)){let Pe=g_(Ee);Re=ne=Wn.makeWithAncestors(ne,{},Pe,he)??ne,ne=new pi(ne,de,Ee.filter)}else if(zf(Ee))Re=ne=gi.makeFromTransform(ne,Ee,de),Se="number";else if(Gf(Ee))Se="date",he.getWithExplicit(Ee.field).value===void 0&&(ne=new Wn(ne,{[Ee.field]:Se}),he.set(Ee.field,Se,!1)),Re=ne=Wi.makeFromTransform(ne,Ee);else if(Oy(Ee))Re=ne=Yr.makeFromTransform(ne,Ee),Se="number",pg(de)&&(ne=new Ro(ne));else if(Bm(Ee))Re=ne=Xr.make(ne,de,Ee,ge++),Se="derived";else if(zm(Ee))Re=ne=new fl(ne,Ee),Se="number";else if(Gm(Ee))Re=ne=new dl(ne,Ee),Se="number";else if(l_(Ee))Re=ne=No.makeFromTransform(ne,Ee),Se="derived";else if(Hm(Ee))Re=ne=new ws(ne,Ee),Se="derived";else if(qm(Ee))Re=ne=new xc(ne,Ee),Se="derived";else if(Iy(Ee))Re=ne=new ja(ne,Ee),Se="derived";else if(i_(Ee))Re=ne=new hl(ne,Ee),Se="derived";else if(Ny(Ee))ne=new ml(ne,Ee);else if(jm(Ee))Re=ne=va.makeFromTransform(ne,Ee),Se="derived";else if(Ry(Ee))Re=ne=new _c(ne,Ee),Se="derived";else if(Um(Ee))Re=ne=new Io(ne,Ee),Se="derived";else if(Cy(Ee))Re=ne=new Oo(ne,Ee),Se="derived";else{if(!o_(Ee)){$e(`Ignoring an invalid transform: ${Be(Ee)}.`);continue}Re=ne=new to(ne,Ee),Se="derived"}if(Re&&Se!==void 0)for(let Pe of Re.producedFields()??[])he.set(Pe,Se,!1)}return ne})(s,l,k));let R=(function(ne){let de={};if(dn(ne)&&ne.component.selection)for(let he of we(ne.component.selection)){let ge=ne.component.selection[he];for(let Ee of ge.project.items)!Ee.channel&&Zt(Ee.field)>1&&(de[Ee.field]="flatten")}return de})(l),C=qn(l);s=Wn.makeWithAncestors(s,{},{...R,...C},k)??s,dn(l)&&(s=eo.parseAll(s,l),s=ks.parseAll(s,l)),(dn(l)||Kr(l))&&(A||(s=gi.makeFromEncoding(s,l)??s),s=Wi.makeFromEncoding(s,l)??s,s=ol.parseAllForSortIndex(s,l));let $=l.getDataName(nn.Raw),j=new rr(s,$,nn.Raw,m);if(d[$]=j,s=j,dn(l)){let ne=Yr.makeFromEncoding(s,l);ne&&(s=ne,pg(l)&&(s=new Ro(s))),s=va.makeFromEncoding(s,l)??s,s=No.makeFromEncoding(s,l)??s}dn(l)&&(s=Qi.make(s,l)??s);let H=l.getDataName(nn.Main),ee=new rr(s,H,nn.Main,m);d[H]=ee,s=ee,dn(l)&&(function(ne,de){for(let[he,ge]of tt(ne.component.selection??{})){let Ee=ne.getName(`lookup_${he}`);ne.component.data.outputNodes[Ee]=ge.materialized=new rr(new pi(de,ne,{param:he}),Ee,nn.Lookup,ne.component.data.outputNodeRefCounts)}})(l,ee);let ae=null;if(Kr(l)){let ne=l.getName("facet");s=(function(de,he){let{row:ge,column:Ee}=he;if(ge&&Ee){let Se=null;for(let Re of[ge,Ee])if(li(Re.sort)){let{field:Pe,op:qe=fu}=Re.sort;de=Se=new dl(de,{joinaggregate:[{op:qe,field:Pe,as:od(Re,Re.sort,{forAs:!0})}],groupby:[Ge(Re)]})}return Se}return null})(s,l.facet)??s,ae=new ul(s,l,ne,ee.getSource()),d[ne]=ae}return{...l.component.data,outputNodes:d,outputNodeRefCounts:m,raw:j,main:ee,facetRoot:ae,ancestorParse:k}}class w_ extends ad{constructor(s,d,m,y){super(s,"concat",d,m,y,s.resolve),ct(this,"children",void 0),s.resolve?.axis?.x!=="shared"&&s.resolve?.axis?.y!=="shared"||$e("Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415)."),this.children=this.getChildren(s).map(((k,A)=>tb(k,this,this.getName(`concat_${A}`),void 0,y)))}parseData(){this.component.data=Ap(this);for(let s of this.children)s.parseData()}parseSelections(){this.component.selection={};for(let s of this.children){s.parseSelections();for(let d of we(s.component.selection))this.component.selection[d]=s.component.selection[d]}}parseMarkGroup(){for(let s of this.children)s.parseMarkGroup()}parseAxesAndHeaders(){for(let s of this.children)s.parseAxesAndHeaders()}getChildren(s){return dc(s)?s.vconcat:Lf(s)?s.hconcat:s.concat}parseLayoutSize(){(function(s){gl(s);let d=s.layout.columns===1?"width":"childWidth",m=s.layout.columns===void 0?"height":"childHeight";_s(s,d),_s(s,m)})(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(s){return this.children.reduce(((d,m)=>m.assembleSelectionTopLevelSignals(d)),s)}assembleSignals(){return this.children.forEach((s=>s.assembleSignals())),[]}assembleLayoutSignals(){let s=ya(this);for(let d of this.children)s.push(...d.assembleLayoutSignals());return s}assembleSelectionData(s){return this.children.reduce(((d,m)=>m.assembleSelectionData(d)),s)}assembleMarks(){return this.children.map((s=>{let d=s.assembleTitle(),m=s.assembleGroupStyle(),y=s.assembleGroupEncodeEntry(!1);return{type:"group",name:s.getName("group"),...d?{title:d}:{},...m?{style:m}:{},...y?{encode:{update:y}}:{},...s.assembleGroup()}}))}assembleGroupStyle(){}assembleDefaultLayout(){let s=this.layout.columns;return{...s!=null?{columns:s}:{},bounds:"full",align:"each"}}}let Tp={disable:1,gridScale:1,scale:1,...bu,labelExpr:1,encode:1},Kg=we(Tp);class Rp extends ji{constructor(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},m=arguments.length>2&&arguments[2]!==void 0&&arguments[2];super(),this.explicit=s,this.implicit=d,this.mainExtracted=m}clone(){return new Rp(U(this.explicit),U(this.implicit),this.mainExtracted)}hasAxisPart(s){return s==="axis"||(s==="grid"||s==="title"?!!this.get(s):!((d=this.get(s))===!1||d===null));var d}hasOrientSignalRef(){return Je(this.explicit.orient)}}let jt={bottom:"top",top:"bottom",left:"right",right:"left"};function xv(l,s){if(!l)return s.map((d=>d.clone()));{if(l.length!==s.length)return;let d=l.length;for(let m=0;m<d;m++){let y=l[m],k=s[m];if(!!y!=!!k)return;if(y&&k){let A=y.getWithExplicit("orient"),R=k.getWithExplicit("orient");if(A.explicit&&R.explicit&&A.value!==R.value)return;l[m]=yl(y,k)}}}return l}function yl(l,s){for(let d of Kg){let m=qi(l.getWithExplicit(d),s.getWithExplicit(d),d,"axis",((y,k)=>{switch(d){case"title":return ii(y,k);case"gridScale":return{explicit:y.explicit,value:Tt(y.value,k.value)}}return Nu(y,k,d,"axis")}));l.setWithExplicit(d,m)}return l}function Xg(l,s,d,m,y){if(s==="disable")return d!==void 0;switch(d=d||{},s){case"titleAngle":case"labelAngle":return l===(Je(d.labelAngle)?d.labelAngle:$r(d.labelAngle));case"values":return!!d.values;case"encode":return!!d.encoding||!!d.labelAngle;case"title":if(l===tv(m,y))return!0}return l===d[s]}let Sc=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function Zg(l,s){let d=s.axis(l),m=new Rp,y=mn(s.encoding[l]),{mark:k,config:A}=s,R=d?.orient||A[l==="x"?"axisX":"axisY"]?.orient||A.axis?.orient||(function(ge){return ge==="x"?"bottom":"left"})(l),C=s.getScaleComponent(l).get("type"),$=(function(ge,Ee,Se,Re){let Pe=Ee==="band"?["axisDiscrete","axisBand"]:Ee==="point"?["axisDiscrete","axisPoint"]:ty(Ee)?["axisQuantitative"]:Ee==="time"||Ee==="utc"?["axisTemporal"]:[],qe=ge==="x"?"axisX":"axisY",st=Je(Se)?"axisOrient":`axis${wt(Se)}`,mt=[...Pe,...Pe.map((Qe=>qe+Qe.substr(4)))],it=["axis",st,qe];return{vlOnlyAxisConfig:hi(mt,Re,ge,Se),vgAxisConfig:hi(it,Re,ge,Se),axisConfigStyle:m_([...it,...mt],Re)}})(l,C,R,s.config),j=d!==void 0?!d:hg("disable",A.style,d?.style,$).configValue;if(m.set("disable",j,d!==void 0),j)return m;d=d||{};let H=(function(ge,Ee,Se,Re,Pe){let qe=Ee?.labelAngle;if(qe!==void 0)return Je(qe)?qe:$r(qe);{let{configValue:st}=hg("labelAngle",Re,Ee?.style,Pe);return st!==void 0?$r(st):Se!==et||!Y([af,rf],ge.type)||ze(ge)&&ge.timeUnit?void 0:270}})(y,d,l,A.style,$),ee=fy(d.formatType,y,C),ae=dy(y,y.type,d.format,d.formatType,A,!0),ne={fieldOrDatumDef:y,axis:d,channel:l,model:s,scaleType:C,orient:R,labelAngle:H,format:ae,formatType:ee,mark:k,config:A};for(let ge of Kg){let Ee=ge in Jy?Jy[ge](ne):by(ge)?d[ge]:void 0,Se=Ee!==void 0,Re=Xg(Ee,ge,d,s,l);if(Se&&Re)m.set(ge,Ee,Re);else{let{configValue:Pe,configFrom:qe}=by(ge)&&ge!=="values"?hg(ge,A.style,d.style,$):{},st=Pe!==void 0;Se&&!st?m.set(ge,Ee,Re):(qe!=="vgAxisConfig"||Sc.has(ge)&&st||sc(Pe)||Je(Pe))&&m.set(ge,Pe,!1)}}let de=d.encoding??{},he=ls.reduce(((ge,Ee)=>{if(!m.hasAxisPart(Ee))return ge;let Se=yg(de[Ee]??{},s),Re=Ee==="labels"?(function(Pe,qe,st){let{encoding:mt,config:it}=Pe,Qe=mn(mt[qe])??mn(mt[Ri(qe)]),Ct=Pe.axis(qe)||{},{format:Ht,formatType:Mn}=Ct;if(Xs(Mn))return{text:si({fieldOrDatumDef:Qe,field:"datum.value",format:Ht,formatType:Mn,config:it}),...st};if(Ht===void 0&&Mn===void 0&&it.customFormatTypes){if(tc(Qe)==="quantitative"){if(nc(Qe)&&Qe.stack==="normalize"&&it.normalizedNumberFormatType)return{text:si({fieldOrDatumDef:Qe,field:"datum.value",format:it.normalizedNumberFormat,formatType:it.normalizedNumberFormatType,config:it}),...st};if(it.numberFormatType)return{text:si({fieldOrDatumDef:Qe,field:"datum.value",format:it.numberFormat,formatType:it.numberFormatType,config:it}),...st}}if(tc(Qe)==="temporal"&&it.timeFormatType&&ze(Qe)&&!Qe.timeUnit)return{text:si({fieldOrDatumDef:Qe,field:"datum.value",format:it.timeFormat,formatType:it.timeFormatType,config:it}),...st}}return st})(s,l,Se):Se;return Re===void 0||ye(Re)||(ge[Ee]={update:Re}),ge}),{});return ye(he)||m.set("encode",he,!!d.encoding||d.labelAngle!==void 0),m}function Cp(l,s){let{config:d}=l;return{...Nr(l,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...Hn("x",l,{defaultPos:"mid"}),...Hn("y",l,{defaultPos:"mid"}),...jn("size",l),...jn("angle",l),...Sv(l,d,s)}}function Sv(l,s,d){return d?{shape:{value:d}}:jn("shape",l)}let Av={vgMark:"rule",encodeEntry:l=>{let{markDef:s}=l,d=s.orient;return l.encoding.x||l.encoding.y||l.encoding.latitude||l.encoding.longitude?{...Nr(l,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...np("x",l,{defaultPos:d==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:d!=="vertical"}),...np("y",l,{defaultPos:d==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:d!=="horizontal"}),...jn("size",l,{vgChannel:"strokeWidth"})}:{}}};function k_(l,s,d){if(Yt("align",l,d)===void 0)return"center"}function Tv(l,s,d){if(Yt("baseline",l,d)===void 0)return"middle"}let Np={vgMark:"rect",encodeEntry:l=>{let{config:s,markDef:d}=l,m=d.orient,y=m==="horizontal"?"width":"height",k=m==="horizontal"?"height":"width";return{...Nr(l,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Hn("x",l,{defaultPos:"mid",vgChannel:"xc"}),...Hn("y",l,{defaultPos:"mid",vgChannel:"yc"}),...jn("size",l,{defaultValue:Rv(l),vgChannel:y}),[k]:sn(Yt("thickness",d,s))}}};function Rv(l){let{config:s,markDef:d}=l,{orient:m}=d,y=m==="horizontal"?"width":"height",k=l.getScaleComponent(m==="horizontal"?"x":"y"),A=Yt("size",d,s,{vgChannel:y})??s.tick.bandSize;if(A!==void 0)return A;{let R=k?k.get("range"):void 0;return R&&go(R)&&h.isNumber(R.step)?3*R.step/4:3*fc(s.view,y)/4}}let sd={arc:{vgMark:"arc",encodeEntry:l=>({...Nr(l,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...Hn("x",l,{defaultPos:"mid"}),...Hn("y",l,{defaultPos:"mid"}),...di(l,"radius"),...di(l,"theta")})},area:{vgMark:"area",encodeEntry:l=>({...Nr(l,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"}),...np("x",l,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:l.markDef.orient==="horizontal"}),...np("y",l,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:l.markDef.orient==="vertical"}),...Fu(l)})},bar:{vgMark:"rect",encodeEntry:l=>({...Nr(l,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...di(l,"x"),...di(l,"y")})},circle:{vgMark:"symbol",encodeEntry:l=>Cp(l,"circle")},geoshape:{vgMark:"shape",encodeEntry:l=>({...Nr(l,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})}),postEncodingTransform:l=>{let{encoding:s}=l,d=s.shape;return[{type:"geoshape",projection:l.projectionName(),...d&&ze(d)&&d.type===Vs?{field:Ge(d,{expr:"datum"})}:{}}]}},image:{vgMark:"image",encodeEntry:l=>({...Nr(l,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"}),...di(l,"x"),...di(l,"y"),...ep(l,"url")})},line:{vgMark:"line",encodeEntry:l=>({...Nr(l,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...Hn("x",l,{defaultPos:"mid"}),...Hn("y",l,{defaultPos:"mid"}),...jn("size",l,{vgChannel:"strokeWidth"}),...Fu(l)})},point:{vgMark:"symbol",encodeEntry:l=>Cp(l)},rect:{vgMark:"rect",encodeEntry:l=>({...Nr(l,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...di(l,"x"),...di(l,"y")})},rule:Av,square:{vgMark:"symbol",encodeEntry:l=>Cp(l,"square")},text:{vgMark:"text",encodeEntry:l=>{let{config:s,encoding:d}=l;return{...Nr(l,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"}),...Hn("x",l,{defaultPos:"mid"}),...Hn("y",l,{defaultPos:"mid"}),...ep(l),...jn("size",l,{vgChannel:"fontSize"}),...jn("angle",l),...Hy("align",k_(l.markDef,d,s)),...Hy("baseline",Tv(l.markDef,d,s)),...Hn("radius",l,{defaultPos:null}),...Hn("theta",l,{defaultPos:null})}}},tick:Np,trail:{vgMark:"trail",encodeEntry:l=>({...Nr(l,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...Hn("x",l,{defaultPos:"mid"}),...Hn("y",l,{defaultPos:"mid"}),...jn("size",l),...Fu(l)})}};function Jg(l){if(Y([uu,of,Hk],l.mark)){let s=pm(l.mark,l.encoding);if(s.length>0)return(function(d,m){return[{name:d.getName("pathgroup"),type:"group",from:{facet:{name:Qg+d.requestDataName(nn.Main),data:d.requestDataName(nn.Main),groupby:m}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:Ip(d,{fromPrefix:Qg})}]})(l,s)}else if(l.mark===sf){let s=Mh.some((d=>Yt(d,l.markDef,l.config)));if(l.stack&&!l.fieldDef("size")&&s)return(function(d){let[m]=Ip(d,{fromPrefix:eb}),y=d.scaleName(d.stack.fieldChannel),k=function(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return d.vgField(d.stack.fieldChannel,j)},A=(j,H)=>`${j}(${[k({prefix:"min",suffix:"start",expr:H}),k({prefix:"max",suffix:"start",expr:H}),k({prefix:"min",suffix:"end",expr:H}),k({prefix:"max",suffix:"end",expr:H})].map((ee=>`scale('${y}',${ee})`)).join(",")})`,R,C;d.stack.fieldChannel==="x"?(R={...J(m.encode.update,["y","yc","y2","height",...Mh]),x:{signal:A("min","datum")},x2:{signal:A("max","datum")},clip:{value:!0}},C={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},m.encode.update={...K(m.encode.update,["y","yc","y2"]),height:{field:{group:"height"}}}):(R={...J(m.encode.update,["x","xc","x2","width"]),y:{signal:A("min","datum")},y2:{signal:A("max","datum")},clip:{value:!0}},C={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},m.encode.update={...K(m.encode.update,["x","xc","x2"]),width:{field:{group:"width"}}});for(let j of Mh){let H=jr(j,d.markDef,d.config);m.encode.update[j]?(R[j]=m.encode.update[j],delete m.encode.update[j]):H&&(R[j]=sn(H)),H&&(m.encode.update[j]={value:0})}let $=[];if(d.stack.groupbyChannels?.length>0)for(let j of d.stack.groupbyChannels){let H=d.fieldDef(j),ee=Ge(H);ee&&$.push(ee),(H?.bin||H?.timeUnit)&&$.push(Ge(H,{binSuffix:"end"}))}return R=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce(((j,H)=>{if(m.encode.update[H])return{...j,[H]:m.encode.update[H]};{let ee=jr(H,d.markDef,d.config);return ee!==void 0?{...j,[H]:sn(ee)}:j}}),R),R.stroke&&(R.strokeForeground={value:!0},R.strokeOffset={value:0}),[{type:"group",from:{facet:{data:d.requestDataName(nn.Main),name:eb+d.requestDataName(nn.Main),groupby:$,aggregate:{fields:[k({suffix:"start"}),k({suffix:"start"}),k({suffix:"end"}),k({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:R},marks:[{type:"group",encode:{update:C},marks:[m]}]}]})(l)}return Ip(l)}let Qg="faceted_path_",eb="stack_group_";function Ip(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{fromPrefix:""},{mark:d,markDef:m,encoding:y,config:k}=l,A=Tt(m.clip,(function(ae){let ne=ae.getScaleComponent("x"),de=ae.getScaleComponent("y");return!(!ne?.get("selectionExtent")&&!de?.get("selectionExtent"))||void 0})(l),(function(ae){let ne=ae.component.projection;return!(!ne||ne.isFit)||void 0})(l)),R=P0(m),C=y.key,$=(function(ae){let{encoding:ne,stack:de,mark:he,markDef:ge,config:Ee}=ae,Se=ne.order;if(!(!h.isArray(Se)&&ma(Se)&&oe(Se.value)||!Se&&oe(Yt("order",ge,Ee)))){if((h.isArray(Se)||ze(Se))&&!de)return ql(Se,{expr:"datum"});if(as(he)){let Re=ge.orient==="horizontal"?"y":"x",Pe=ne[Re];if(ze(Pe)){let qe=Pe.sort;return h.isArray(qe)?{field:Ge(Pe,{prefix:Re,suffix:"sort_index",expr:"datum"})}:li(qe)?{field:Ge({aggregate:fm(ae.encoding)?qe.op:void 0,field:qe.field},{expr:"datum"})}:im(qe)?{field:Ge(ae.fieldDef(qe.encoding),{expr:"datum"}),order:qe.order}:qe===null?void 0:{field:Ge(Pe,{binSuffix:ae.stack?.impute?"mid":void 0,expr:"datum"})}}}}})(l),j=(function(ae){if(!ae.component.selection)return null;let ne=we(ae.component.selection).length,de=ne,he=ae.parent;for(;he&&de===0;)de=we(he.component.selection).length,he=he.parent;return de?{interactive:ne>0||ae.mark==="geoshape"||!!ae.encoding.tooltip}:null})(l),H=Yt("aria",m,k),ee=sd[d].postEncodingTransform?sd[d].postEncodingTransform(l):null;return[{name:l.getName("marks"),type:sd[d].vgMark,...A?{clip:!0}:{},...R?{style:R}:{},...C?{key:C.field}:{},...$?{sort:$}:{},...j||{},...H===!1?{aria:H}:{},from:{data:s.fromPrefix+l.requestDataName(nn.Main)},encode:{update:sd[d].encodeEntry(l)},...ee?{transform:ee}:{}}]}class Op extends id{constructor(s,d,m){let y=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},k=arguments.length>4?arguments[4]:void 0;super(s,"unit",d,m,k,void 0,Su(s)?s.view:void 0),ct(this,"markDef",void 0),ct(this,"encoding",void 0),ct(this,"specifiedScales",{}),ct(this,"stack",void 0),ct(this,"specifiedAxes",{}),ct(this,"specifiedLegends",{}),ct(this,"specifiedProjection",{}),ct(this,"selection",[]),ct(this,"children",[]);let A=Li(s.mark)?{...s.mark}:{type:s.mark},R=A.type;A.filled===void 0&&(A.filled=(function($,j,H){let{graticule:ee}=H;if(ee)return!1;let ae=jr("filled",$,j),ne=$.type;return Tt(ae,ne!==lf&&ne!==uu&&ne!==cf)})(A,k,{graticule:s.data&&Xf(s.data)}));let C=this.encoding=(function($,j,H,ee){let ae={};for(let de of we($))S0(de)||$e(`${ne=de}-encoding is dropped as ${ne} is not a valid encoding channel.`);var ne;for(let de of Jc){if(!$[de])continue;let he=$[de];if(Zn(de)){let ge=kk(de),Ee=ae[ge];if(ze(Ee)&&Q0(Ee.type)&&ze(he)&&!Ee.timeUnit){$e(Fh(ge));continue}}if(de!=="angle"||j!=="arc"||$.theta||($e("Arc marks uses theta channel rather than angle, replacing angle with theta."),de=la),xf($,de,j)){if(de===xi&&j==="line"&&ga($[de])?.aggregate){$e("Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.");continue}if(de===Fe&&(H?"fill"in $:"stroke"in $))$e(z0("encoding",{fill:"fill"in $,stroke:"stroke"in $}));else if(de===po||de===Bs&&!h.isArray(he)&&!ma(he)||de===ti&&h.isArray(he)){if(he){if(de===Bs){let ge=$[de];if(py(ge)){ae[de]=ge;continue}}ae[de]=h.array(he).reduce(((ge,Ee)=>(ze(Ee)?ge.push(ac(Ee,de)):$e(Wd(Ee,de)),ge)),[])}}else{if(de===ti&&he===null)ae[de]=null;else if(!(ze(he)||Pi(he)||ma(he)||gf(he)||Je(he))){$e(Wd(he,de));continue}ae[de]=dm(he,de,ee)}}else $e(Mi(de,j))}return ae})(s.encoding||{},R,A.filled,k);this.markDef=Ay(A,C,k),this.size=(function($){let{encoding:j,size:H}=$;for(let ee of ni){let ae=Sr(ee);Wr(H[ae])&&is(j[ee])&&(delete H[ae],$e(Uh(ae)))}return H})({encoding:C,size:Su(s)?{...y,...s.width?{width:s.width}:{},...s.height?{height:s.height}:{}}:y}),this.stack=Nm(this.markDef,C),this.specifiedScales=this.initScales(R,C),this.specifiedAxes=this.initAxes(C),this.specifiedLegends=this.initLegends(C),this.specifiedProjection=s.projection,this.selection=(s.params??[]).filter(($=>_u($)))}get hasProjection(){let{encoding:s}=this,d=this.mark===oy,m=s&&_0.some((y=>St(s[y])));return d||m}scaleDomain(s){let d=this.specifiedScales[s];return d?d.domain:void 0}axis(s){return this.specifiedAxes[s]}legend(s){return this.specifiedLegends[s]}initScales(s,d){return Gl.reduce(((m,y)=>{let k=mn(d[y]);return k&&(m[y]=this.initScale(k.scale??{})),m}),{})}initScale(s){let{domain:d,range:m}=s,y=Jn(s);return h.isArray(d)&&(y.domain=d.map(Bn)),h.isArray(m)&&(y.range=m.map(Bn)),y}initAxes(s){return ni.reduce(((d,m)=>{let y=s[m];if(St(y)||m===et&&St(s.x2)||m===nt&&St(s.y2)){let k=St(y)?y.axis:void 0;d[m]=k&&this.initAxis({...k})}return d}),{})}initAxis(s){let d=we(s),m={};for(let y of d){let k=s[y];m[y]=sc(k)?L0(k):Bn(k)}return m}initLegends(s){return I0.reduce(((d,m)=>{let y=mn(s[m]);if(y&&(function(k){switch(k){case Fe:case xr:case ei:case xi:case vn:case Si:case fo:case Zo:return!0;case Ut:case Ai:case Ur:return!1}})(m)){let k=y.legend;d[m]=k&&Jn(k)}return d}),{})}parseData(){this.component.data=Ap(this)}parseLayoutSize(){(function(s){let{size:d,component:m}=s;for(let y of ni){let k=Sr(y);if(d[k]){let A=d[k];m.layoutSize.set(k,Wr(A)?"step":A,!0)}else{let A=Ha(s,k);m.layoutSize.set(k,A,!1)}}})(this)}parseSelections(){this.component.selection=(function(s,d){let m={},y=s.config.selection;if(!d||!d.length)return m;for(let k of d){let A=me(k.name),R=k.select,C=h.isString(R)?R:R.type,$=h.isObject(R)?U(R):{type:C},j=y[C];for(let ae in j)ae!=="fields"&&ae!=="encodings"&&(ae==="mark"&&($[ae]={...j[ae],...$[ae]}),$[ae]!==void 0&&$[ae]!==!0||($[ae]=U(j[ae]??$[ae])));let H=m[A]={...$,name:A,type:C,init:k.value,bind:k.bind,events:h.isString($.on)?h.parseSelector($.on,"scope"):h.array(U($.on))},ee=U(k);for(let ae of il)ae.defined(H)&&ae.parse&&ae.parse(s,H,ee)}return m})(this,this.selection)}parseMarkGroup(){this.component.mark=Jg(this)}parseAxesAndHeaders(){var s;this.component.axes=(s=this,ni.reduce(((d,m)=>(s.component.scales[m]&&(d[m]=[Zg(m,s)]),d)),{}))}assembleSelectionTopLevelSignals(s){return(function(d,m){let y=!1;for(let k of Ve(d.component.selection??{})){let A=k.name,R=h.stringValue(A+hs);if(m.filter((C=>C.name===A)).length===0){let C=k.resolve==="global"?"union":k.resolve,$=k.type==="point"?", true, true)":")";m.push({name:k.name,update:`${fg}(${R}, ${h.stringValue(C)}${$}`})}y=!0;for(let C of il)C.defined(k)&&C.topLevelSignals&&(m=C.topLevelSignals(d,k,m))}return y&&m.filter((k=>k.name==="unit")).length===0&&m.unshift({name:"unit",value:{},on:[{events:"pointermove",update:"isTuple(group()) ? group() : unit"}]}),Zf(m)})(this,s)}assembleSignals(){return[...wc(this),...Fy(this,[])]}assembleSelectionData(s){return(function(d,m){let y=[...m],k=Vr(d,{escape:!1});for(let A of Ve(d.component.selection??{})){let R={name:A.name+hs};if(A.project.hasSelectionId&&(R.transform=[{type:"collect",sort:{field:ba}}]),A.init){let C=A.project.items.map(Jm);R.values=A.project.hasSelectionId?A.init.map(($=>({unit:k,[ba]:fs($,!1)[0]}))):A.init.map(($=>({unit:k,fields:C,values:fs($,!1)})))}y.filter((C=>C.name===A.name+hs)).length||y.push(R)}return y})(this,s)}assembleLayout(){return null}assembleLayoutSignals(){return ya(this)}assembleMarks(){let s=this.component.mark??[];return this.parent&&Es(this.parent)||(s=Py(this,s)),s.map(this.correctDataNames)}assembleGroupStyle(){let{style:s}=this.view||{};return s!==void 0?s:this.encoding.x||this.encoding.y?"cell":"view"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(s){return Ui(this.encoding,s)}fieldDef(s){return ga(this.encoding[s])}typedFieldDef(s){let d=this.fieldDef(s);return hr(d)?d:null}}class Ac extends ad{constructor(s,d,m,y,k){super(s,"layer",d,m,k,s.resolve,s.view),ct(this,"children",void 0);let A={...y,...s.width?{width:s.width}:{},...s.height?{height:s.height}:{}};this.children=s.layer.map(((R,C)=>{if(pc(R))return new Ac(R,this,this.getName(`layer_${C}`),A,k);if(Bi(R))return new Op(R,this,this.getName(`layer_${C}`),A,k);throw new Error(Lh(R))}))}parseData(){this.component.data=Ap(this);for(let s of this.children)s.parseData()}parseLayoutSize(){var s;gl(s=this),_s(s,"width"),_s(s,"height")}parseSelections(){this.component.selection={};for(let s of this.children){s.parseSelections();for(let d of we(s.component.selection))this.component.selection[d]=s.component.selection[d]}}parseMarkGroup(){for(let s of this.children)s.parseMarkGroup()}parseAxesAndHeaders(){(function(s){let{axes:d,resolve:m}=s.component,y={top:0,bottom:0,right:0,left:0};for(let k of s.children){k.parseAxesAndHeaders();for(let A of we(k.component.axes))m.axis[A]=cp(s.component.resolve,A),m.axis[A]==="shared"&&(d[A]=xv(d[A],k.component.axes[A]),d[A]||(m.axis[A]="independent",delete d[A]))}for(let k of ni){for(let A of s.children)if(A.component.axes[k]){if(m.axis[k]==="independent"){d[k]=(d[k]??[]).concat(A.component.axes[k]);for(let R of A.component.axes[k]){let{value:C,explicit:$}=R.getWithExplicit("orient");if(!Je(C)){if(y[C]>0&&!$){let j=jt[C];y[C]>y[j]&&R.set("orient",j,!1)}y[C]++}}}delete A.component.axes[k]}if(m.axis[k]==="independent"&&d[k]&&d[k].length>1)for(let[A,R]of(d[k]||[]).entries())A>0&&R.get("grid")&&!R.explicit.grid&&(R.implicit.grid=!1)}})(this)}assembleSelectionTopLevelSignals(s){return this.children.reduce(((d,m)=>m.assembleSelectionTopLevelSignals(d)),s)}assembleSignals(){return this.children.reduce(((s,d)=>s.concat(d.assembleSignals())),wc(this))}assembleLayoutSignals(){return this.children.reduce(((s,d)=>s.concat(d.assembleLayoutSignals())),ya(this))}assembleSelectionData(s){return this.children.reduce(((d,m)=>m.assembleSelectionData(d)),s)}assembleGroupStyle(){let s=new Set;for(let m of this.children)for(let y of h.array(m.assembleGroupStyle()))s.add(y);let d=Array.from(s);return d.length>1?d:d.length===1?d[0]:void 0}assembleTitle(){let s=super.assembleTitle();if(s)return s;for(let d of this.children)if(s=d.assembleTitle(),s)return s}assembleLayout(){return null}assembleMarks(){return(function(s,d){for(let m of s.children)dn(m)&&(d=Py(m,d));return d})(this,this.children.flatMap((s=>s.assembleMarks())))}assembleLegends(){return this.children.reduce(((s,d)=>s.concat(d.assembleLegends())),pp(this))}}function tb(l,s,d,m,y){if(hu(l))return new bl(l,s,d,y);if(pc(l))return new Ac(l,s,d,m,y);if(Bi(l))return new Op(l,s,d,m,y);if((function(k){return dc(k)||Lf(k)||xu(k)})(l))return new w_(l,s,d,y);throw new Error(Lh(l))}let __=w;p.accessPathDepth=Zt,p.accessPathWithDatum=Oe,p.compile=function(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var d;s.logger&&(d=s.logger,ou=d),s.fieldTitle&&mu(s.fieldTitle);try{let m=Tm(h.mergeConfig(s.config,l.config)),y=qf(l,m),k=tb(y,null,"",void 0,m);return k.parse(),(function(R,C){Ep(R.sources);let $=0,j=0;for(let H=0;H<vp&&pv(R,C,!0);H++)$++;R.sources.map(Mg);for(let H=0;H<vp&&pv(R,C,!1);H++)j++;Ep(R.sources),Math.max($,j)===vp&&$e(`Maximum optimization runs(${vp}) reached.`)})(k.component.data,k),{spec:(function(R,C){let $=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},j=arguments.length>3?arguments[3]:void 0,H=R.config?Pf(R.config):void 0,ee=[].concat(R.assembleSelectionData([]),(function(Re,Pe){let qe=[],st=xp(qe),mt=0;for(let Qe of Re.sources){Qe.hasName()||(Qe.dataName="source_"+mt++);let Ct=Qe.assemble();st(Qe,Ct)}for(let Qe of qe)Qe.transform.length===0&&delete Qe.transform;let it=0;for(let[Qe,Ct]of qe.entries())(Ct.transform??[]).length!==0||Ct.source||qe.splice(it++,0,qe.splice(Qe,1)[0]);for(let Qe of qe)for(let Ct of Qe.transform??[])Ct.type==="lookup"&&(Ct.from=Re.outputNodes[Ct.from].getSource());for(let Qe of qe)Qe.name in Pe&&(Qe.values=Pe[Qe.name]);return qe})(R.component.data,$)),ae=R.assembleProjections(),ne=R.assembleTitle(),de=R.assembleGroupStyle(),he=R.assembleGroupEncodeEntry(!0),ge=R.assembleLayoutSignals();ge=ge.filter((Re=>Re.name!=="width"&&Re.name!=="height"||Re.value===void 0||(C[Re.name]=+Re.value,!1)));let{params:Ee,...Se}=C;return{$schema:"https://vega.github.io/schema/vega/v5.json",...R.description?{description:R.description}:{},...Se,...ne?{title:ne}:{},...de?{style:de}:{},...he?{encode:{update:he}}:{},data:ee,...ae.length>0?{projections:ae}:{},...R.assembleGroup([...ge,...R.assembleSelectionTopLevelSignals([]),...Mf(Ee)]),...H?{config:H}:{},...j?{usermeta:j}:{}}})(k,(function(R,C,$,j){let H=j.component.layoutSize.get("width"),ee=j.component.layoutSize.get("height");if(C===void 0?(C={type:"pad"},j.hasAxisOrientSignalRef()&&(C.resize=!0)):h.isString(C)&&(C={type:C}),H&&ee&&(ae=C.type,ae==="fit"||ae==="fit-x"||ae==="fit-y")){if(H==="step"&&ee==="step")$e(An()),C.type="pad";else if(H==="step"||ee==="step"){let ne=H==="step"?"width":"height";$e(An(tu(ne)));let de=ne==="width"?"height":"width";C.type=(function(he){return he?`fit-${tu(he)}`:"fit"})(de)}}var ae;return{...we(C).length===1&&C.type?C.type==="pad"?{}:{autosize:C.type}:{autosize:C},...Wf($,!1),...Wf(R,!0)}})(l,y.autosize,m,k),l.datasets,l.usermeta),normalized:y}}finally{s.logger&&(ou=q0),s.fieldTitle&&mu(gy)}},p.contains=Y,p.deepEqual=Ne,p.deleteNestedProperty=rt,p.duplicate=U,p.entries=tt,p.every=se,p.fieldIntersection=ve,p.flatAccessWithDatum=Bt,p.getFirstDefined=Tt,p.hasIntersection=Le,p.hash=V,p.internalField=oa,p.isBoolean=Ye,p.isEmpty=ye,p.isEqual=function(l,s){let d=we(l),m=we(s);if(d.length!==m.length)return!1;for(let y of d)if(l[y]!==s[y])return!1;return!0},p.isInternalField=sa,p.isNullOrFalse=oe,p.isNumeric=Xn,p.keys=we,p.logicalExpr=ke,p.mergeDeep=le,p.never=q,p.normalize=qf,p.normalizeAngle=$r,p.omit=K,p.pick=J,p.prefixGenerator=Me,p.removePathFromField=Pt,p.replaceAll=_t,p.replacePathInField=Ot,p.resetIdCounter=function(){Pn=42},p.setEqual=xe,p.some=te,p.stringify=Be,p.titleCase=wt,p.unique=be,p.uniqueId=ia,p.vals=Ve,p.varName=me,p.version=__}))});var p2=sA((Y6,fk)=>{"use strict";var O4=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{},F=(function(p){var h=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,w=0,_={},T={manual:p.Prism&&p.Prism.manual,disableWorkerMessageHandler:p.Prism&&p.Prism.disableWorkerMessageHandler,util:{encode:function Y(te){return te instanceof M?new M(te.type,Y(te.content),te.alias):Array.isArray(te)?te.map(Y):te.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(Y){return Object.prototype.toString.call(Y).slice(8,-1)},objId:function(Y){return Y.__id||Object.defineProperty(Y,"__id",{value:++w}),Y.__id},clone:function Y(te,se){var le,ue;switch(se=se||{},T.util.type(te)){case"Object":if(ue=T.util.objId(te),se[ue])return se[ue];for(var be in le={},se[ue]=le,te)te.hasOwnProperty(be)&&(le[be]=Y(te[be],se));return le;case"Array":return ue=T.util.objId(te),se[ue]?se[ue]:(le=[],se[ue]=le,te.forEach((function(xe,Le){le[Le]=Y(xe,se)})),le);default:return te}},getLanguage:function(Y){for(;Y;){var te=h.exec(Y.className);if(te)return te[1].toLowerCase();Y=Y.parentElement}return"none"},setLanguage:function(Y,te){Y.className=Y.className.replace(RegExp(h,"gi"),""),Y.classList.add("language-"+te)},currentScript:function(){if(typeof document>"u")return null;if(document.currentScript&&document.currentScript.tagName==="SCRIPT")return document.currentScript;try{throw new Error}catch(le){var Y=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(le.stack)||[])[1];if(Y){var te=document.getElementsByTagName("script");for(var se in te)if(te[se].src==Y)return te[se]}return null}},isActive:function(Y,te,se){for(var le="no-"+te;Y;){var ue=Y.classList;if(ue.contains(te))return!0;if(ue.contains(le))return!1;Y=Y.parentElement}return!!se}},languages:{plain:_,plaintext:_,text:_,txt:_,extend:function(Y,te){var se=T.util.clone(T.languages[Y]);for(var le in te)se[le]=te[le];return se},insertBefore:function(Y,te,se,le){var ue=(le=le||T.languages)[Y],be={};for(var xe in ue)if(ue.hasOwnProperty(xe)){if(xe==te)for(var Le in se)se.hasOwnProperty(Le)&&(be[Le]=se[Le]);se.hasOwnProperty(xe)||(be[xe]=ue[xe])}var Me=le[Y];return le[Y]=be,T.languages.DFS(T.languages,(function(ve,ye){ye===Me&&ve!=Y&&(this[ve]=be)})),be},DFS:function Y(te,se,le,ue){ue=ue||{};var be=T.util.objId;for(var xe in te)if(te.hasOwnProperty(xe)){se.call(te,xe,te[xe],le||xe);var Le=te[xe],Me=T.util.type(Le);Me!=="Object"||ue[be(Le)]?Me!=="Array"||ue[be(Le)]||(ue[be(Le)]=!0,Y(Le,se,xe,ue)):(ue[be(Le)]=!0,Y(Le,se,null,ue))}}},plugins:{},highlightAll:function(Y,te){T.highlightAllUnder(document,Y,te)},highlightAllUnder:function(Y,te,se){var le={callback:se,container:Y,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};T.hooks.run("before-highlightall",le),le.elements=Array.prototype.slice.apply(le.container.querySelectorAll(le.selector)),T.hooks.run("before-all-elements-highlight",le);for(var ue,be=0;ue=le.elements[be++];)T.highlightElement(ue,te===!0,le.callback)},highlightElement:function(Y,te,se){var le=T.util.getLanguage(Y),ue=T.languages[le];T.util.setLanguage(Y,le);var be=Y.parentElement;be&&be.nodeName.toLowerCase()==="pre"&&T.util.setLanguage(be,le);var xe={element:Y,language:le,grammar:ue,code:Y.textContent};function Le(ve){xe.highlightedCode=ve,T.hooks.run("before-insert",xe),xe.element.innerHTML=xe.highlightedCode,T.hooks.run("after-highlight",xe),T.hooks.run("complete",xe),se&&se.call(xe.element)}if(T.hooks.run("before-sanity-check",xe),(be=xe.element.parentElement)&&be.nodeName.toLowerCase()==="pre"&&!be.hasAttribute("tabindex")&&be.setAttribute("tabindex","0"),!xe.code)return T.hooks.run("complete",xe),void(se&&se.call(xe.element));if(T.hooks.run("before-highlight",xe),xe.grammar)if(te&&p.Worker){var Me=new Worker(T.filename);Me.onmessage=function(ve){Le(ve.data)},Me.postMessage(JSON.stringify({language:xe.language,code:xe.code,immediateClose:!0}))}else Le(T.highlight(xe.code,xe.grammar,xe.language));else Le(T.util.encode(xe.code))},highlight:function(Y,te,se){var le={code:Y,grammar:te,language:se};if(T.hooks.run("before-tokenize",le),!le.grammar)throw new Error('The language "'+le.language+'" has no grammar.');return le.tokens=T.tokenize(le.code,le.grammar),T.hooks.run("after-tokenize",le),M.stringify(T.util.encode(le.tokens),le.language)},tokenize:function(Y,te){var se=te.rest;if(se){for(var le in se)te[le]=se[le];delete te.rest}var ue=new U;return q(ue,ue.head,Y),L(Y,ue,te,ue.head,0),(function(be){for(var xe=[],Le=be.head.next;Le!==be.tail;)xe.push(Le.value),Le=Le.next;return xe})(ue)},hooks:{all:{},add:function(Y,te){var se=T.hooks.all;se[Y]=se[Y]||[],se[Y].push(te)},run:function(Y,te){var se=T.hooks.all[Y];if(se&&se.length)for(var le,ue=0;le=se[ue++];)le(te)}},Token:M};function M(Y,te,se,le){this.type=Y,this.content=te,this.alias=se,this.length=0|(le||"").length}function D(Y,te,se,le){Y.lastIndex=te;var ue=Y.exec(se);if(ue&&le&&ue[1]){var be=ue[1].length;ue.index+=be,ue[0]=ue[0].slice(be)}return ue}function L(Y,te,se,le,ue,be){for(var xe in se)if(se.hasOwnProperty(xe)&&se[xe]){var Le=se[xe];Le=Array.isArray(Le)?Le:[Le];for(var Me=0;Me<Le.length;++Me){if(be&&be.cause==xe+","+Me)return;var ve=Le[Me],ye=ve.inside,we=!!ve.lookbehind,Ve=!!ve.greedy,tt=ve.alias;if(Ve&&!ve.pattern.global){var Ye=ve.pattern.toString().match(/[imsuy]*$/)[0];ve.pattern=RegExp(ve.pattern.source,Ye+"g")}for(var me=ve.pattern||ve,ke=le.next,rt=ue;ke!==te.tail&&!(be&&rt>=be.reach);rt+=ke.value.length,ke=ke.next){var wt=ke.value;if(te.length>Y.length)return;if(!(wt instanceof M)){var Oe,Bt=1;if(Ve){if(!(Oe=D(me,rt,Y,we))||Oe.index>=Y.length)break;var xt=Oe.index,Ot=Oe.index+Oe[0].length,_t=rt;for(_t+=ke.value.length;xt>=_t;)_t+=(ke=ke.next).value.length;if(rt=_t-=ke.value.length,ke.value instanceof M)continue;for(var Pt=ke;Pt!==te.tail&&(_t<Ot||typeof Pt.value=="string");Pt=Pt.next)Bt++,_t+=Pt.value.length;Bt--,wt=Y.slice(rt,_t),Oe.index-=rt}else if(!(Oe=D(me,0,wt,we)))continue;xt=Oe.index;var Zt=Oe[0],Tt=wt.slice(0,xt),Pn=wt.slice(xt+Zt.length),ia=rt+wt.length;be&&ia>be.reach&&(be.reach=ia);var oa=ke.prev;if(Tt&&(oa=q(te,oa,Tt),rt+=Tt.length),J(te,oa,Bt),ke=q(te,oa,new M(xe,ye?T.tokenize(Zt,ye):Zt,tt,Zt)),Pn&&q(te,ke,Pn),Bt>1){var sa={cause:xe+","+Me,reach:ia};L(Y,te,se,ke.prev,rt,sa),be&&sa.reach>be.reach&&(be.reach=sa.reach)}}}}}}function U(){var Y={value:null,prev:null,next:null},te={value:null,prev:Y,next:null};Y.next=te,this.head=Y,this.tail=te,this.length=0}function q(Y,te,se){var le=te.next,ue={value:se,prev:te,next:le};return te.next=ue,le.prev=ue,Y.length++,ue}function J(Y,te,se){for(var le=te.next,ue=0;ue<se&&le!==Y.tail;ue++)le=le.next;te.next=le,le.prev=te,Y.length-=ue}if(p.Prism=T,M.stringify=function Y(te,se){if(typeof te=="string")return te;if(Array.isArray(te)){var le="";return te.forEach((function(Me){le+=Y(Me,se)})),le}var ue={type:te.type,content:Y(te.content,se),tag:"span",classes:["token",te.type],attributes:{},language:se},be=te.alias;be&&(Array.isArray(be)?Array.prototype.push.apply(ue.classes,be):ue.classes.push(be)),T.hooks.run("wrap",ue);var xe="";for(var Le in ue.attributes)xe+=" "+Le+'="'+(ue.attributes[Le]||"").replace(/"/g,""")+'"';return"<"+ue.tag+' class="'+ue.classes.join(" ")+'"'+xe+">"+ue.content+"</"+ue.tag+">"},!p.document)return p.addEventListener&&(T.disableWorkerMessageHandler||p.addEventListener("message",(function(Y){var te=JSON.parse(Y.data),se=te.language,le=te.code,ue=te.immediateClose;p.postMessage(T.highlight(le,T.languages[se],se)),ue&&p.close()}),!1)),T;var K=T.util.currentScript();function V(){T.manual||T.highlightAll()}if(K&&(T.filename=K.src,K.hasAttribute("data-manual")&&(T.manual=!0)),!T.manual){var oe=document.readyState;oe==="loading"||oe==="interactive"&&K&&K.defer?document.addEventListener("DOMContentLoaded",V):window.requestAnimationFrame?window.requestAnimationFrame(V):window.setTimeout(V,16)}return T})(O4);typeof fk<"u"&&fk.exports&&(fk.exports=F),typeof global<"u"&&(global.Prism=F);F.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},F.languages.markup.tag.inside["attr-value"].inside.entity=F.languages.markup.entity,F.languages.markup.doctype.inside["internal-subset"].inside=F.languages.markup,F.hooks.add("wrap",(function(p){p.type==="entity"&&(p.attributes.title=p.content.replace(/&/,"&"))})),Object.defineProperty(F.languages.markup.tag,"addInlined",{value:function(p,h){var w={};w["language-"+h]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:F.languages[h]},w.cdata=/^<!\[CDATA\[|\]\]>$/i;var _={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:w}};_["language-"+h]={pattern:/[\s\S]+/,inside:F.languages[h]};var T={};T[p]={pattern:RegExp("(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[^])*?(?=</__>)".replace(/__/g,(function(){return p})),"i"),lookbehind:!0,greedy:!0,inside:_},F.languages.insertBefore("markup","cdata",T)}}),Object.defineProperty(F.languages.markup.tag,"addAttribute",{value:function(p,h){F.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(`(^|["'\\s])(?:`+p+`)\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s'">=]+(?=[\\s>]))`,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[h,"language-"+h],inside:F.languages[h]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),F.languages.html=F.languages.markup,F.languages.mathml=F.languages.markup,F.languages.svg=F.languages.markup,F.languages.xml=F.languages.extend("markup",{}),F.languages.ssml=F.languages.xml,F.languages.atom=F.languages.xml,F.languages.rss=F.languages.xml;(function(p){var h=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;p.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp(`@[\\w-](?:[^;{\\s"']|\\s+(?!\\s)|`+h.source+")*?(?:;|(?=\\s*\\{))"),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+h.source+`|(?:[^\\\\\r
|
|
13
|
+
`)):i+"";var o})(r))}function wO(e){return"["+e.map(kO).join(", ")+"]"}function kO(e){return ve(e)?"[\u2026]":ye(e)&&!vn(e)?"{\u2026}":e}function _O(e,t){let n=this;if(t=t||{},el.call(n),t.loader&&n.loader(t.loader),t.logger&&n.logger(t.logger),t.logLevel!=null&&n.logLevel(t.logLevel),t.locale||e.locale){let i=lt({},e.locale,t.locale);n.locale(sm(i.number,i.time))}n._el=null,n._elBind=null,n._renderType=t.renderer||Pc.Canvas,n._scenegraph=new X_;let r=n._scenegraph.root;n._renderer=null,n._tooltip=t.tooltip||CB,n._redraw=!0,n._handler=new mb().scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=(function(i){let o=lt({defaults:{}},i),c=(u,f)=>{f.forEach((g=>{ve(u[g])&&(u[g]=ua(u[g]))}))};return c(o.defaults,["prevent","allow"]),c(o,["view","window","selector"]),o})(e.eventConfig),n.globalCursor(n._eventConfig.globalCursor);let a=(function(i,o,c){return rO(i,tl,e0,c).parse(o)})(n,e,t.expr);n._runtime=a,n._signals=a.signals,n._bind=(e.bindings||[]).map((i=>({state:null,param:lt({},i)}))),a.root&&a.root.set(r),r.source=a.data.root.input,n.pulse(a.data.root.input,n.changeset().insert(r.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=vO(n,n._width),n._viewHeight=EO(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,(function(i){var o=i._signals,c=o[gO],u=o[bO],f=o[MS];function g(){i._autosize=i._resize=1}i._resizeWidth=i.add(null,(v=>{i._width=v.size,i._viewWidth=vO(i,v.size),g()}),{size:c}),i._resizeHeight=i.add(null,(v=>{i._height=v.size,i._viewHeight=EO(i,v.size),g()}),{size:u});let b=i.add(null,g,{pad:f});i._resizeWidth.rank=c.rank+1,i._resizeHeight.rank=u.rank+1,b.rank=f.rank+1})(n),(function(i){i.add(null,(o=>(i._background=o.bg,i._resize=1,o.bg)),{bg:i._signals.background})})(n),(function(i){let o=i._signals.cursor||(i._signals.cursor=i.add({user:CS,item:null}));i.on(i.events("view","mousemove"),o,((c,u)=>{let f=o.value,g=f?Ut(f)?f:f.user:CS,b=u.item&&u.item.cursor||null;return f&&g===f.user&&b==f.item?f:{user:g,item:b}})),i.add(null,(function(c){let u=c.cursor,f=this.value;return Ut(u)||(f=u.item,u=u.user),NS(i,u&&u!==CS?u:f||u),f}),{cursor:o})})(n),n.description(e.description),t.hover&&n.hover(),t.container&&n.initialize(t.container,t.bind)}function xw(e,t){return ot(e._signals,t)?e._signals[t]:L("Unrecognized signal name: "+ft(t))}function xO(e,t){let n=(e._targets||[]).filter((r=>r._update&&r._update.handler===t));return n.length?n[0]:null}function SO(e,t,n,r){let a=xO(n,r);return a||(a=IS(e,(()=>r(t,n.value))),a.handler=r,e.on(n,null,a)),e}function AO(e,t,n){let r=xO(t,n);return r&&t._targets.remove(r),e}Fe(_O,el,{async evaluate(e,t,n){if(await el.prototype.evaluate.call(this,e,t),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,(function(r){var a=ww(r),i=sO(r),o=lO(r);r._renderer.background(r.background()),r._renderer.resize(i,o,a),r._handler.origin(a),r._resizeListeners.forEach((c=>{try{c(i,o)}catch(u){r.error(u)}}))})(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(r){this.error(r)}return n&&mn(this,n),this},dirty(e){this._redraw=!0,this._renderer&&this._renderer.dirty(e)},description(e){if(arguments.length){let t=e!=null?e+"":null;return t!==this._desc&&oO(this._el,this._desc=t),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(e,t,n){let r=xw(this,e);return arguments.length===1?r.value:this.update(r,t,n)},width(e){return arguments.length?this.signal("width",e):this.signal("width")},height(e){return arguments.length?this.signal("height",e):this.signal("height")},padding(e){return arguments.length?this.signal("padding",mO(e)):mO(this.signal("padding"))},autosize(e){return arguments.length?this.signal("autosize",e):this.signal("autosize")},background(e){return arguments.length?this.signal("background",e):this.signal("background")},renderer(e){return arguments.length?(aE(e)||L("Unrecognized renderer type: "+e),e!==this._renderType&&(this._renderType=e,this._resetRenderer()),this):this._renderType},tooltip(e){return arguments.length?(e!==this._tooltip&&(this._tooltip=e,this._resetRenderer()),this):this._tooltip},loader(e){return arguments.length?(e!==this._loader&&(el.prototype.loader.call(this,e),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(xw(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:function(e,t,n,r,a,i){this.runAfter((o=>{let c=0;o._autosize=0,o.width()!==n&&(c=1,o.signal(gO,n,yO),o._resizeWidth.skip(!0)),o.height()!==r&&(c=1,o.signal(bO,r,yO),o._resizeHeight.skip(!0)),o._viewWidth!==e&&(o._resize=1,o._viewWidth=e),o._viewHeight!==t&&(o._resize=1,o._viewHeight=t),o._origin[0]===a[0]&&o._origin[1]===a[1]||(o._resize=1,o._origin=a),c&&o.run("enter"),i&&o.runAfter((u=>u.resize()))}),!1,1)},addEventListener(e,t,n){let r=t;return n&&n.trap===!1||(r=IS(this,t),r.raw=t),this._handler.on(e,r),this},removeEventListener(e,t){for(var n,r,a=this._handler.handlers(e),i=a.length;--i>=0;)if(r=a[i].type,n=a[i].handler,e===r&&(t===n||t===n.raw)){this._handler.off(r,n);break}return this},addResizeListener(e){let t=this._resizeListeners;return t.indexOf(e)<0&&t.push(e),this},removeResizeListener(e){var t=this._resizeListeners,n=t.indexOf(e);return n>=0&&t.splice(n,1),this},addSignalListener(e,t){return SO(this,e,xw(this,e),t)},removeSignalListener(e,t){return AO(this,xw(this,e),t)},addDataListener(e,t){return SO(this,e,vw(this,e).values,t)},removeDataListener(e,t){return AO(this,vw(this,e).values,t)},globalCursor(e){if(arguments.length){if(this._globalCursor!==!!e){let t=NS(this,null);this._globalCursor=!!e,t&&NS(this,t)}return this}return this._globalCursor},preventDefault(e){return arguments.length?(this._preventDefault=e,this):this._preventDefault},timer:function(e,t){this._timers.push((function(n,r,a){var i=new ZE,o=r;return r==null?(i.restart(n,r,a),i):(i._restart=i.restart,i.restart=function(c,u,f){u=+u,f=f==null?kx():+f,i._restart((function g(b){b+=o,i._restart(g,o+=u,f),c(b)}),u,f)},i.restart(n,r,a),i)})((function(n){e({timestamp:Date.now(),elapsed:n})}),t))},events:function(e,t,n){var r,a=this,i=new Ui(n),o=function(f,g){a.runAsync(null,(()=>{e===cO&&(function(b,v){var E=b._eventConfig.defaults,S=E.prevent,x=E.allow;return S!==!1&&x!==!0&&(S===!0||x===!1||(S?S[v]:x?!x[v]:b.preventDefault()))})(a,t)&&f.preventDefault(),i.receive(fB(a,f,g))}))};if(e===pB)kw(a,"timer",t)&&a.timer(o,t);else if(e===cO)kw(a,"view",t)&&a.addEventListener(t,o,mB);else if(e===hB?kw(a,"window",t)&&typeof window<"u"&&(r=[window]):typeof document<"u"&&kw(a,"selector",t)&&(r=Array.from(document.querySelectorAll(e))),r){for(var c=0,u=r.length;c<u;++c)r[c].addEventListener(t,o);uO(a,r,t,o)}else a.warn("Can not resolve event source: "+e);return i},finalize:function(){var e,t,n,r=this._tooltip,a=this._timers,i=this._eventListeners;for(e=a.length;--e>=0;)a[e].stop();for(e=i.length;--e>=0;)for(t=(n=i[e]).sources.length;--t>=0;)n.sources[t].removeEventListener(n.type,n.handler);return r&&r.call(this,this._handler,null,null,null),this},hover:function(e,t){return t=[t||"update",(e=[e||"hover"])[0]],this.on(this.events("view","mouseover",dO),fO,pO(e)),this.on(this.events("view","mouseout",dO),fO,pO(t)),this},data:function(e,t){return arguments.length<2?vw(this,e).values.value:Ew.call(this,e,ls().remove(Y).insert(t))},change:Ew,insert:function(e,t){return Ew.call(this,e,ls().insert(t))},remove:function(e,t){return Ew.call(this,e,ls().remove(t))},scale:function(e){var t=this._runtime.scales;return ot(t,e)||L("Unrecognized scale or projection: "+e),t[e].value},initialize:function(e,t){let n=this,r=n._renderType,a=n._eventConfig.bind,i=aE(r);e=n._el=e?OS(n,e,!0):null,(function(u){let f=u.container();f&&(f.setAttribute("role","graphics-document"),f.setAttribute("aria-roleDescription","visualization"),oO(f,u.description()))})(n),i||n.error("Unrecognized renderer type: "+r);let o=i.handler||mb,c=e?i.renderer:i.headless;return n._renderer=c?hO(n,n._renderer,e,c):null,n._handler=(function(u,f,g,b){let v=new b(u.loader(),IS(u,u.tooltip())).scene(u.scenegraph().root).initialize(g,ww(u),u);return f&&f.handlers().forEach((E=>{v.on(E.type,E.handler)})),v})(n,n._handler,e,o),n._redraw=!0,e&&a!=="none"&&(t=t?n._elBind=OS(n,t,!0):e.appendChild(ki("form",{class:"vega-bindings"})),n._bind.forEach((u=>{u.param.element&&a!=="container"&&(u.element=OS(n,u.param.element,!!u.param.input))})),n._bind.forEach((u=>{(function(f,g,b){if(!g)return;let v=b.param,E=b.state;E||(E=b.state={elements:null,active:!1,set:null,update:S=>{S!=f.signal(v.signal)&&f.runAsync(null,(()=>{E.source=!0,f.signal(v.signal,S)}))}},v.debounce&&(E.update=on(v.debounce,E.update))),(v.input==null&&v.element?vB:EB)(E,g,v,f),E.active||(f.on(f._signals[v.signal],null,(()=>{E.source?E.source=!1:E.set(f.signal(v.signal))})),E.active=!0)})(n,u.element||t,u)}))),n},toImageURL:async function(e,t){e!==Pc.Canvas&&e!==Pc.SVG&&e!==Pc.PNG&&L("Unrecognized image type: "+e);let n=await DS(this,e,t);return e===Pc.SVG?(function(r,a){let i=new Blob([r],{type:a});return window.URL.createObjectURL(i)})(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")},toCanvas:async function(e,t){return(await DS(this,Pc.Canvas,e,t)).canvas()},toSVG:async function(e){return(await DS(this,Pc.SVG,e)).svg()},getState:function(e){return this._runtime.getState(e||{data:TB,signals:RB,recurse:!0})},setState:function(e){return this.runAsync(null,(t=>{t._trigger=!1,t._runtime.setState(e)}),(t=>{t._trigger=!0})),this}});let NB="view",Sw="[",Aw="]",TO="{",RO="}",IB=":",CO=",",OB="@",DB=">",MB=/[[\]{}]/,LB={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},NO,IO;function OO(e,t,n){return NO=t||NB,IO=n||LB,DO(e.trim()).map(LS)}function r0(e,t,n,r,a){let i=e.length,o,c=0;for(;t<i;++t){if(o=e[t],!c&&o===n)return t;a&&a.indexOf(o)>=0?--c:r&&r.indexOf(o)>=0&&++c}return t}function DO(e){let t=[],n=e.length,r=0,a=0;for(;a<n;)a=r0(e,a,CO,Sw+TO,Aw+RO),t.push(e.substring(r,a).trim()),r=++a;if(t.length===0)throw"Empty event selector: "+e;return t}function LS(e){return e[0]==="["?(function(t){let n=t.length,r,a=1;if(a=r0(t,a,Aw,Sw,Aw),a===n)throw"Empty between selector: "+t;if(r=DO(t.substring(1,a)),r.length!==2)throw"Between selector must have two elements: "+t;if(t=t.slice(a+1).trim(),t[0]!==DB)throw"Expected '>' after between selector: "+t;r=r.map(LS);let i=LS(t.slice(1).trim());return i.between?{between:r,stream:i}:(i.between=r,i)})(e):(function(t){let n={source:NO},r=[],a,i,o=[0,0],c=0,u=0,f=t.length,g=0;if(t[f-1]===RO){if(g=t.lastIndexOf(TO),!(g>=0))throw"Unmatched right brace: "+t;try{o=(function(b){let v=b.split(CO);if(!b.length||v.length>2)throw b;return v.map((E=>{let S=+E;if(S!=S)throw b;return S}))})(t.substring(g+1,f-1))}catch{throw"Invalid throttle specification: "+t}f=(t=t.slice(0,g).trim()).length,g=0}if(!f)throw t;if(t[0]===OB&&(c=++g),a=r0(t,g,IB),a<f&&(r.push(t.substring(u,a).trim()),u=g=++a),g=r0(t,g,Sw),g===f)r.push(t.substring(u,f).trim());else if(r.push(t.substring(u,g).trim()),i=[],u=++g,u===f)throw"Unmatched left bracket: "+t;for(;g<f;){if(g=r0(t,g,Aw),g===f)throw"Unmatched left bracket: "+t;if(i.push(t.substring(u,g).trim()),g<f-1&&t[++g]!==Sw)throw"Expected left bracket: "+t;u=++g}if(!(f=r.length)||MB.test(r[f-1]))throw"Invalid event selector: "+t;return f>1?(n.type=r[1],c?n.markname=r[0].slice(1):(function(b){return IO[b]})(r[0])?n.marktype=r[0]:n.source=r[0]):n.type=r[0],n.type.slice(-1)==="!"&&(n.consume=!0,n.type=n.type.slice(0,-1)),i!=null&&(n.filter=i),o[0]&&(n.throttle=o[0]),o[1]&&(n.debounce=o[1]),n})(e)}function FB(e){return ye(e)?e:{type:e||"pad"}}let a0=e=>+e||0,PB=e=>({top:e,bottom:e,left:e,right:e});function $B(e){return ye(e)?e.signal?e:{top:a0(e.top),bottom:a0(e.bottom),left:a0(e.left),right:a0(e.right)}:PB(a0(e))}let br=e=>ye(e)&&!ve(e)?lt({},e):{value:e};function MO(e,t,n,r){return n!=null?(ye(n)&&!ve(n)||ve(n)&&n.length&&ye(n[0])?e.update[t]=n:e[r||"enter"][t]={value:n},1):0}function Fr(e,t,n){for(let r in t)MO(e,r,t[r]);for(let r in n)MO(e,r,n[r],"update")}function nh(e,t,n){for(let r in t)n&&ot(n,r)||(e[r]=lt(e[r]||{},t[r]));return e}function rh(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}let FS="mark",PS="frame",$S="scope",BB="axis",UB="axis-domain",zB="axis-grid",GB="axis-label",jB="axis-tick",HB="axis-title",qB="legend",WB="legend-band",VB="legend-entry",YB="legend-gradient",LO="legend-label",KB="legend-symbol",XB="legend-title",ZB="title",JB="title-text",QB="title-subtitle";function BS(e,t,n){e[t]=n&&n.signal?{signal:n.signal}:{value:n}}let FO=e=>Ut(e)?ft(e):e.signal?`(${e.signal})`:PO(e);function Tw(e){if(e.gradient!=null)return(function(n){let r=[n.start,n.stop,n.count].map((a=>a==null?null:ft(a)));for(;r.length&&me(r)==null;)r.pop();return r.unshift(FO(n.gradient)),`gradient(${r.join(",")})`})(e);let t=e.signal?`(${e.signal})`:e.color?(function(n){return n.c?Rw("hcl",n.h,n.c,n.l):n.h||n.s?Rw("hsl",n.h,n.s,n.l):n.l||n.a?Rw("lab",n.l,n.a,n.b):n.r||n.g||n.b?Rw("rgb",n.r,n.g,n.b):null})(e.color):e.field!=null?PO(e.field):e.value!==void 0?ft(e.value):void 0;return e.scale!=null&&(t=(function(n,r){let a=FO(n.scale);return n.range!=null?r=`lerp(_range(${a}), ${+n.range})`:(r!==void 0&&(r=`_scale(${a}, ${r})`),n.band&&(r=(r?r+"+":"")+`_bandwidth(${a})`+(+n.band==1?"":"*"+Cw(n.band)),n.extra&&(r=`(datum.extra ? _scale(${a}, datum.extra.value) : ${r})`)),r==null&&(r="0")),r})(e,t)),t===void 0&&(t=null),e.exponent!=null&&(t=`pow(${t},${Cw(e.exponent)})`),e.mult!=null&&(t+=`*${Cw(e.mult)}`),e.offset!=null&&(t+=`+${Cw(e.offset)}`),e.round&&(t=`round(${t})`),t}let Rw=(e,t,n,r)=>`(${e}(${[t,n,r].map(Tw).join(",")})+'')`;function Cw(e){return ye(e)?"("+Tw(e)+")":e}function PO(e){return $O(ye(e)?e:{datum:e})}function $O(e){let t,n,r;if(e.signal)t="datum",r=e.signal;else if(e.group||e.parent){for(n=Math.max(1,e.level||1),t="item";n-- >0;)t+=".mark.group";e.parent?(r=e.parent,t+=".datum"):r=e.group}else e.datum?(t="datum",r=e.datum):L("Invalid field reference: "+ft(e));return e.signal||(r=Ut(r)?U(r).map(ft).join("]["):$O(r)),t+"["+r+"]"}function BO(e,t,n,r,a,i){let o={};(i=i||{}).encoders={$encode:o},e=(function(c,u,f,g,b){let v={},E={},S,x,N,O;for(x in x="lineBreak",u!=="text"||b[x]==null||rh(x,c)||BS(v,x,b[x]),(f=="legend"||String(f).startsWith("axis"))&&(f=null),O=f===PS?b.group:f===FS?lt({},b.mark,b[u]):null,O)N=rh(x,c)||(x==="fill"||x==="stroke")&&(rh("fill",c)||rh("stroke",c)),N||BS(v,x,O[x]);for(x in Ne(g).forEach((I=>{let B=b.style&&b.style[I];for(let P in B)rh(P,c)||BS(v,P,B[P])})),c=lt({},c),v)O=v[x],O.signal?(S=S||{})[x]=O:E[x]=O;return c.enter=lt(E,c.enter),S&&(c.update=lt(S,c.update)),c})(e,t,n,r,a.config);for(let c in e)o[c]=eU(e[c],t,i,a);return i}function eU(e,t,n,r){let a={},i={};for(let c in e)e[c]!=null&&(a[c]=tU((o=e[c],ve(o)?(function(u){let f="";return u.forEach((g=>{let b=Tw(g);f+=g.test?`(${g.test})?${b}:`:b})),me(f)===":"&&(f+="null"),f})(o):Tw(o)),r,n,i));var o;return{$expr:{marktype:t,channels:a},$fields:Object.keys(i),$output:Object.keys(e)}}function tU(e,t,n,r){let a=Ds(e,t);return a.$fields.forEach((i=>r[i]=1)),lt(n,a.$params),a.$expr}let nU="outer",rU=["value","update","init","react","bind"];function UO(e,t){L(e+' for "outer" push: '+ft(t))}function zO(e,t){let n=e.name;if(e.push===nU)t.signals[n]||UO("No prior signal definition",n),rU.forEach((r=>{e[r]!==void 0&&UO("Invalid property ",r)}));else{let r=t.addSignal(n,e.value);e.react===!1&&(r.react=!1),e.bind&&t.addBinding(n,e.bind)}}function US(e,t,n,r){this.id=-1,this.type=e,this.value=t,this.params=n,r&&(this.parent=r)}function Nw(e,t,n,r){return new US(e,t,n,r)}function Iw(e,t){return Nw("operator",e,t)}function bt(e){let t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function i0(e,t){return t?{$field:e,$name:t}:{$field:e}}let zS=i0("key");function GO(e,t){return{$compare:e,$order:t}}let aU="descending";function Ow(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}let GS="scope",jS="view";function lr(e){return e&&e.signal}function Dw(e){if(lr(e))return!0;if(ye(e)){for(let t in e)if(Dw(e[t]))return!0}return!1}function Wo(e,t){return e??t}function xd(e){return e&&e.signal||e}let jO="timer";function o0(e,t){return(e.merge?iU:e.stream?oU:e.type?sU:L("Invalid stream specification: "+ft(e)))(e,t)}function iU(e,t){let n=HS({merge:e.merge.map((r=>o0(r,t)))},e,t);return t.addStream(n).id}function oU(e,t){let n=HS({stream:o0(e.stream,t)},e,t);return t.addStream(n).id}function sU(e,t){let n;e.type===jO?(n=t.event(jO,e.throttle),e={between:e.between,filter:e.filter}):n=t.event((function(a){return a===GS?jS:a||jS})(e.source),e.type);let r=HS({stream:n},e,t);return Object.keys(r).length===1?n:t.addStream(r).id}function HS(e,t,n){let r=t.between;return r&&(r.length!==2&&L('Stream "between" parameter must have 2 entries: '+ft(t)),e.between=[o0(r[0],n),o0(r[1],n)]),r=t.filter?[].concat(t.filter):[],(t.marktype||t.markname||t.markrole)&&r.push((function(a,i,o){let c="event.item";return c+(a&&a!=="*"?"&&"+c+".mark.marktype==='"+a+"'":"")+(o?"&&"+c+".mark.role==='"+o+"'":"")+(i?"&&"+c+".mark.name==='"+i+"'":"")})(t.marktype,t.markname,t.markrole)),t.source===GS&&r.push("inScope(event.item)"),r.length&&(e.filter=Ds("("+r.join(")&&(")+")",n).$expr),(r=t.throttle)!=null&&(e.throttle=+r),(r=t.debounce)!=null&&(e.debounce=+r),t.consume&&(e.consume=!0),e}let lU={code:"_.$value",ast:{type:"Identifier",value:"value"}};function cU(e,t,n){let r=e.encode,a={target:n},i=e.events,o=e.update,c=[];i||L("Signal update missing events specification."),Ut(i)&&(i=OO(i,t.isSubscope()?GS:jS)),i=Ne(i).filter((u=>u.signal||u.scale?(c.push(u),0):1)),c.length>1&&(c=[uU(c)]),i.length&&c.push(i.length>1?{merge:i}:i[0]),r!=null&&(o&&L("Signal encode and update are mutually exclusive."),o="encode(item(),"+ft(r)+")"),a.update=Ut(o)?Ds(o,t):o.expr!=null?Ds(o.expr,t):o.value!=null?o.value:o.signal!=null?{$expr:lU,$params:{$value:t.signalRef(o.signal)}}:L("Invalid signal update specification."),e.force&&(a.options={force:!0}),c.forEach((u=>t.addUpdate(lt((function(f,g){return{source:f.signal?g.signalRef(f.signal):f.scale?g.scaleRef(f.scale):o0(f,g)}})(u,t),a))))}function uU(e){return{signal:"["+e.map((t=>t.scale?'scale("'+t.scale+'")':t.signal))+"]"}}let rn=e=>(t,n,r)=>Nw(e,n,t||void 0,r),HO=rn("aggregate"),dU=rn("axisticks"),qO=rn("bound"),Vo=rn("collect"),WO=rn("compare"),fU=rn("datajoin"),VO=rn("encode"),pU=rn("expression"),hU=rn("facet"),mU=rn("field"),gU=rn("key"),bU=rn("legendentries"),yU=rn("load"),vU=rn("mark"),EU=rn("multiextent"),wU=rn("multivalues"),kU=rn("overlap"),_U=rn("params"),YO=rn("prefacet"),xU=rn("projection"),SU=rn("proxy"),AU=rn("relay"),KO=rn("render"),TU=rn("scale"),Sd=rn("sieve"),RU=rn("sortitems"),XO=rn("viewlayout"),CU=rn("values"),NU=0,ZO={min:"min",max:"max",count:"sum"};function IU(e,t){let n=t.getScale(e.name).params,r;for(r in n.domain=JO(e.domain,e,t),e.range!=null&&(n.range=eD(e,t,n)),e.interpolate!=null&&(function(a,i){i.interpolate=oo(a.type||a),a.gamma!=null&&(i.interpolateGamma=oo(a.gamma))})(e.interpolate,n),e.nice!=null&&(n.nice=(function(a){return ye(a)?{interval:oo(a.interval),step:oo(a.step)}:oo(a)})(e.nice)),e.bins!=null&&(n.bins=(function(a,i){return a.signal||ve(a)?Mw(a,i):i.objectProperty(a)})(e.bins,t)),e)ot(n,r)||r==="name"||(n[r]=oo(e[r],t))}function oo(e,t){return ye(e)?e.signal?t.signalRef(e.signal):L("Unsupported object: "+ft(e)):e}function Mw(e,t){return e.signal?t.signalRef(e.signal):e.map((n=>oo(n,t)))}function Lw(e){L("Can not find data set: "+ft(e))}function JO(e,t,n){if(e)return e.signal?n.signalRef(e.signal):(ve(e)?OU:e.fields?MU:DU)(e,t,n);t.domainMin==null&&t.domainMax==null||L("No scale domain defined for domainMin/domainMax to override.")}function OU(e,t,n){return e.map((r=>oo(r,n)))}function DU(e,t,n){let r=n.getData(e.data);return r||Lw(e.data),Sc(t.type)?r.valuesRef(n,e.field,QO(e.sort,!1)):Av(t.type)?r.domainRef(n,e.field):r.extentRef(n,e.field)}function MU(e,t,n){let r=e.data,a=e.fields.reduce(((i,o)=>(o=Ut(o)?{data:r,field:o}:ve(o)||o.signal?(function(c,u){let f="_:vega:_"+NU++,g=Vo({});if(ve(c))g.value={$ingest:c};else if(c.signal){let b="setdata("+ft(f)+","+c.signal+")";g.params.input=u.signalRef(b)}return u.addDataPipeline(f,[g,Sd({})]),{data:f,field:"data"}})(o,n):o,i.push(o),i)),[]);return(Sc(t.type)?LU:Av(t.type)?FU:PU)(e,n,a)}function LU(e,t,n){let r=QO(e.sort,!0),a,i,o=n.map((f=>{let g=t.getData(f.data);return g||Lw(f.data),g.countsRef(t,f.field,r)})),c={groupby:zS,pulse:o};r&&(a=r.op||"count",i=r.field?Ow(a,r.field):"count",c.ops=[ZO[a]],c.fields=[t.fieldRef(i)],c.as=[i]),a=t.add(HO(c));let u=t.add(Vo({pulse:bt(a)}));return i=t.add(CU({field:zS,sort:t.sortRef(r),pulse:bt(u)})),bt(i)}function QO(e,t){return e&&(e.field||e.op?e.field||e.op==="count"?t&&e.field&&e.op&&!ZO[e.op]&&L("Multiple domain scales can not be sorted using "+e.op):L("No field provided for sort aggregate op: "+e.op):ye(e)?e.field="key":e={field:"key"}),e}function FU(e,t,n){let r=n.map((a=>{let i=t.getData(a.data);return i||Lw(a.data),i.domainRef(t,a.field)}));return bt(t.add(wU({values:r})))}function PU(e,t,n){let r=n.map((a=>{let i=t.getData(a.data);return i||Lw(a.data),i.extentRef(t,a.field)}));return bt(t.add(EU({extents:r})))}function eD(e,t,n){let r=t.config.range,a=e.range;if(a.signal)return t.signalRef(a.signal);if(Ut(a)){if(r&&ot(r,a))return eD(e=lt({},e,{range:r[a]}),t,n);a==="width"?a=[0,{signal:"width"}]:a==="height"?a=Sc(e.type)?[0,{signal:"height"}]:[{signal:"height"},0]:L("Unrecognized scale range value: "+ft(a))}else{if(a.scheme)return n.scheme=ve(a.scheme)?Mw(a.scheme,t):oo(a.scheme,t),a.extent&&(n.schemeExtent=Mw(a.extent,t)),void(a.count&&(n.schemeCount=oo(a.count,t)));if(a.step)return void(n.rangeStep=oo(a.step,t));if(Sc(e.type)&&!ve(a))return JO(a,e,t);ve(a)||L("Unsupported range type: "+ft(a))}return a.map((i=>(ve(i)?Mw:oo)(i,t)))}function qS(e,t,n){return ve(e)?e.map((r=>qS(r,t,n))):ye(e)?e.signal?n.signalRef(e.signal):t==="fit"?e:L("Unsupported parameter object: "+ft(e)):e}let Yo="top",ah="left",ih="right",Vc="bottom",tD="center",$U="vertical",BU="start",UU="end",WS="index",VS="label",zU="offset",oh="perc",GU="perc2",so="value",s0="guide-label",YS="guide-title",jU="group-title",HU="group-subtitle",nD="symbol",Fw="gradient",KS="discrete",XS="size",ZS=[XS,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],l0={name:1,style:1,interactive:1},Wt={value:0},lo={value:1},Pw="group",rD="rect",JS="rule",qU="symbol",Ad="text";function c0(e){return e.type=Pw,e.interactive=e.interactive||!1,e}function Ja(e,t){let n=(r,a)=>Wo(e[r],Wo(t[r],a));return n.isVertical=r=>$U===Wo(e.direction,t.direction||(r?t.symbolDirection:t.gradientDirection)),n.gradientLength=()=>Wo(e.gradientLength,t.gradientLength||t.gradientWidth),n.gradientThickness=()=>Wo(e.gradientThickness,t.gradientThickness||t.gradientHeight),n.entryColumns=()=>Wo(e.columns,Wo(t.columns,+n.isVertical(!0))),n}function aD(e,t){let n=t&&(t.update&&t.update[e]||t.enter&&t.enter[e]);return n&&n.signal?n:n?n.value:null}function $w(e,t,n){return`item.anchor === '${BU}' ? ${e} : item.anchor === '${UU}' ? ${t} : ${n}`}let QS=$w(ft(ah),ft(ih),ft(tD));function iD(e,t){return t?e?ye(e)?Object.assign({},e,{offset:iD(e.offset,t)}):{value:e,offset:t}:t:e}function _i(e,t){return t?(e.name=t.name,e.style=t.style||e.style,e.interactive=!!t.interactive,e.encode=nh(e.encode,t,l0)):e.interactive=!1,e}function WU(e,t,n,r){let a=Ja(e,n),i=a.isVertical(),o=a.gradientThickness(),c=a.gradientLength(),u,f,g,b,v;i?(f=[0,1],g=[0,0],b=o,v=c):(f=[0,0],g=[1,0],b=c,v=o);let E={enter:u={opacity:Wt,x:Wt,y:Wt,width:br(b),height:br(v)},update:lt({},u,{opacity:lo,fill:{gradient:t,start:f,stop:g}}),exit:{opacity:Wt}};return Fr(E,{stroke:a("gradientStrokeColor"),strokeWidth:a("gradientStrokeWidth")},{opacity:a("gradientOpacity")}),_i({type:rD,role:YB,encode:E},r)}function VU(e,t,n,r,a){let i=Ja(e,n),o=i.isVertical(),c=i.gradientThickness(),u=i.gradientLength(),f,g,b,v,E="";o?(f="y",b="y2",g="x",v="width",E="1-"):(f="x",b="x2",g="y",v="height");let S={opacity:Wt,fill:{scale:t,field:so}};S[f]={signal:E+"datum."+oh,mult:u},S[g]=Wt,S[b]={signal:E+"datum."+GU,mult:u},S[v]=br(c);let x={enter:S,update:lt({},S,{opacity:lo}),exit:{opacity:Wt}};return Fr(x,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),_i({type:rD,role:WB,key:so,from:a,encode:x},r)}let YU=`datum.${oh}<=0?"${ah}":datum.${oh}>=1?"${ih}":"${tD}"`,KU=`datum.${oh}<=0?"${Vc}":datum.${oh}>=1?"${Yo}":"middle"`;function oD(e,t,n,r){let a=Ja(e,t),i=a.isVertical(),o=br(a.gradientThickness()),c=a.gradientLength(),u,f,g,b,v=a("labelOverlap"),E="",S={enter:u={opacity:Wt},update:f={opacity:lo,text:{field:VS}},exit:{opacity:Wt}};return Fr(S,{fill:a("labelColor"),fillOpacity:a("labelOpacity"),font:a("labelFont"),fontSize:a("labelFontSize"),fontStyle:a("labelFontStyle"),fontWeight:a("labelFontWeight"),limit:Wo(e.labelLimit,t.gradientLabelLimit)}),i?(u.align={value:"left"},u.baseline=f.baseline={signal:KU},g="y",b="x",E="1-"):(u.align=f.align={signal:YU},u.baseline={value:"top"},g="x",b="y"),u[g]=f[g]={signal:E+"datum."+oh,mult:c},u[b]=f[b]=o,o.offset=Wo(e.labelOffset,t.gradientLabelOffset)||0,v=v?{separation:a("labelSeparation"),method:v,order:"datum."+WS}:void 0,_i({type:Ad,role:LO,style:s0,key:so,from:r,encode:S,overlap:v},n)}function XU(e,t,n,r,a){let i=Ja(e,t),o=n.entries,c=!(!o||!o.interactive),u=o?o.name:void 0,f=i("clipHeight"),g=i("symbolOffset"),b={data:"value"},v=`(${a}) ? datum.${zU} : datum.${XS}`,E=f?br(f):{field:XS},S=`datum.${WS}`,x=`max(1, ${a})`,N,O,I,B,P;E.mult=.5,N={enter:O={opacity:Wt,x:{signal:v,mult:.5,offset:g},y:E},update:I={opacity:lo,x:O.x,y:O.y},exit:{opacity:Wt}};let z=null,G=null;e.fill||(z=t.symbolBaseFillColor,G=t.symbolBaseStrokeColor),Fr(N,{fill:i("symbolFillColor",z),shape:i("symbolType"),size:i("symbolSize"),stroke:i("symbolStrokeColor",G),strokeDash:i("symbolDash"),strokeDashOffset:i("symbolDashOffset"),strokeWidth:i("symbolStrokeWidth")},{opacity:i("symbolOpacity")}),ZS.forEach((re=>{e[re]&&(I[re]=O[re]={scale:e[re],field:so})}));let W=_i({type:qU,role:KB,key:so,from:b,clip:!!f||void 0,encode:N},n.symbols),X=br(g);X.offset=i("labelOffset"),N={enter:O={opacity:Wt,x:{signal:v,offset:X},y:E},update:I={opacity:lo,text:{field:VS},x:O.x,y:O.y},exit:{opacity:Wt}},Fr(N,{align:i("labelAlign"),baseline:i("labelBaseline"),fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:i("labelLimit")});let Z=_i({type:Ad,role:LO,style:s0,key:so,from:b,encode:N},n.labels);return N={enter:{noBound:{value:!f},width:Wt,height:f?br(f):Wt,opacity:Wt},exit:{opacity:Wt},update:I={opacity:lo,row:{signal:null},column:{signal:null}}},i.isVertical(!0)?(B=`ceil(item.mark.items.length / ${x})`,I.row.signal=`${S}%${B}`,I.column.signal=`floor(${S} / ${B})`,P={field:["row",S]}):(I.row.signal=`floor(${S} / ${x})`,I.column.signal=`${S} % ${x}`,P={field:S}),I.column.signal=`(${a})?${I.column.signal}:${S}`,c0({role:$S,from:r={facet:{data:r,name:"value",groupby:WS}},encode:nh(N,o,l0),marks:[W,Z],name:u,interactive:c,sort:P})}let eA='item.orient === "left"',tA='item.orient === "right"',Bw=`(${eA} || ${tA})`,ZU=`datum.vgrad && ${Bw}`,JU=$w('"top"','"bottom"','"middle"'),QU=`datum.vgrad && ${tA} ? (${$w('"right"','"left"','"center"')}) : (${Bw} && !(datum.vgrad && ${eA})) ? "left" : ${QS}`,ez=`item._anchor || (${Bw} ? "middle" : "start")`,tz=`${ZU} ? (${eA} ? -90 : 90) : 0`,nz=`${Bw} ? (datum.vgrad ? (${tA} ? "bottom" : "top") : ${JU}) : "top"`;function rz(e,t){let n;return ye(e)&&(e.signal?n=e.signal:e.path?n="pathShape("+sD(e.path)+")":e.sphere&&(n="geoShape("+sD(e.sphere)+', {type: "Sphere"})')),n?t.signalRef(n):!!e}function sD(e){return ye(e)&&e.signal?e.signal:ft(e)}function lD(e){let t=e.role||"";return t.indexOf("axis")&&t.indexOf("legend")&&t.indexOf("title")?e.type===Pw?$S:t||FS:t}function az(e){return{marktype:e.type,name:e.name||void 0,role:e.role||lD(e),zindex:+e.zindex||void 0,aria:e.aria,description:e.description}}function iz(e,t){return e&&e.signal?t.signalRef(e.signal):e!==!1}function nA(e,t){let n=hm(e.type);n||L("Unrecognized transform type: "+ft(e.type));let r=Nw(n.type.toLowerCase(),null,cD(n,e,t));return e.signal&&t.addSignal(e.signal,t.proxy(r)),r.metadata=n.metadata||{},r}function cD(e,t,n){let r={},a=e.params.length;for(let i=0;i<a;++i){let o=e.params[i];r[o.name]=oz(o,t,n)}return r}function oz(e,t,n){let r=e.type,a=t[e.name];return r==="index"?(function(i,o,c){return Ut(o.from)||L('Lookup "from" parameter must be a string literal.'),c.getData(o.from).lookupRef(c,o.key)})(0,t,n):a!==void 0?r==="param"?(function(i,o,c){let u=o[i.name];return i.array?(ve(u)||L("Expected an array of sub-parameters. Instead: "+ft(u)),u.map((f=>dD(i,f,c)))):dD(i,u,c)})(e,t,n):r==="projection"?n.projectionRef(t[e.name]):e.array&&!lr(a)?a.map((i=>uD(e,i,n))):uD(e,a,n):void(e.required&&L("Missing required "+ft(t.type)+" parameter: "+ft(e.name)))}function uD(e,t,n){let r=e.type;if(lr(t))return fD(r)?L("Expression references can not be signals."):rA(r)?n.fieldRef(t):pD(r)?n.compareRef(t):n.signalRef(t.signal);{let a=e.expr||rA(r);return a&&sz(t)?n.exprRef(t.expr,t.as):a&&lz(t)?i0(t.field,t.as):fD(r)?Ds(t,n):cz(r)?bt(n.getData(t).values):rA(r)?i0(t):pD(r)?n.compareRef(t):t}}function dD(e,t,n){let r=e.params.length,a;for(let o=0;o<r;++o){a=e.params[o];for(let c in a.key)if(a.key[c]!==t[c]){a=null;break}if(a)break}a||L("Unsupported parameter: "+ft(t));let i=lt(cD(a,t,n),a.key);return bt(n.add(_U(i)))}let sz=e=>e&&e.expr,lz=e=>e&&e.field,cz=e=>e==="data",fD=e=>e==="expr",rA=e=>e==="field",pD=e=>e==="compare";function Uw(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:bt(t.getData(e.data).output)}function Td(e,t,n,r,a){this.scope=e,this.input=t,this.output=n,this.values=r,this.aggregate=a,this.index={}}function hD(e){return Ut(e)?e:null}function mD(e,t,n){let r=Ow(n.op,n.field),a;if(t.ops){for(let i=0,o=t.as.length;i<o;++i)if(t.as[i]===r)return}else t.ops=["count"],t.fields=[null],t.as=["count"];n.op&&(t.ops.push((a=n.op.signal)?e.signalRef(a):n.op),t.fields.push(e.fieldRef(n.field)),t.as.push(r))}function u0(e,t,n,r,a,i,o){let c=t[n]||(t[n]={}),u=(function(v){return ye(v)?(v.order===aU?"-":"+")+Ow(v.op,v.field):""})(i),f,g,b=hD(a);if(b!=null&&(e=t.scope,b+=u?"|"+u:"",f=c[b]),!f){let v=i?{field:zS,pulse:t.countsRef(e,a,i)}:{field:e.fieldRef(a),pulse:bt(t.output)};u&&(v.sort=e.sortRef(i)),g=e.add(Nw(r,void 0,v)),o&&(t.index[a]=g),f=bt(g),b!=null&&(c[b]=f)}return f}function gD(e,t,n){let r=e.remove,a=e.insert,i=e.toggle,o=e.modify,c=e.values,u=t.add(Iw()),f=Ds("if("+e.trigger+',modify("'+n+'",'+[a,r,i,o,c].map((g=>g??"null")).join(",")+"),0)",t);u.update=f.$expr,u.params=f.$params}function zw(e,t){let n=lD(e),r=e.type===Pw,a=e.from&&e.from.facet,i=e.overlap,o,c,u,f,g,b,v,E=e.layout||n===$S||n===PS,S=n===FS||E||a,x=(function(G,W,X){let Z,re,Q,ie,ce;return G?(Z=G.facet)&&(W||L("Only group marks can be faceted."),Z.field!=null?ie=ce=Uw(Z,X):(G.data?ce=bt(X.getData(G.data).aggregate):(Q=nA(lt({type:"aggregate",groupby:Ne(Z.groupby)},Z.aggregate),X),Q.params.key=X.keyRef(Z.groupby),Q.params.pulse=Uw(Z,X),ie=ce=bt(X.add(Q))),re=X.keyRef(Z.groupby,!0))):ie=bt(X.add(Vo(null,[{}]))),ie||(ie=Uw(G,X)),{key:re,pulse:ie,parent:ce}})(e.from,r,t);c=t.add(fU({key:x.key||(e.key?i0(e.key):void 0),pulse:x.pulse,clean:!r}));let N=bt(c);c=u=t.add(Vo({pulse:N})),c=t.add(vU({markdef:az(e),interactive:iz(e.interactive,t),clip:rz(e.clip,t),context:{$context:!0},groups:t.lookup(),parent:t.signals.parent?t.signalRef("parent"):null,index:t.markpath(),pulse:bt(c)}));let O=bt(c);c=f=t.add(VO(BO(e.encode,e.type,n,e.style,t,{mod:!1,pulse:O}))),c.params.parent=t.encode(),e.transform&&e.transform.forEach((G=>{let W=nA(G,t),X=W.metadata;(X.generates||X.changes)&&L("Mark transforms should not generate new data."),X.nomod||(f.params.mod=!0),W.params.pulse=bt(c),t.add(c=W)})),e.sort&&(c=t.add(RU({sort:t.compareRef(e.sort),pulse:bt(c)})));let I=bt(c);(a||E)&&(E=t.add(XO({layout:t.objectProperty(e.layout),legends:t.legends,mark:O,pulse:I})),b=bt(E));let B=t.add(qO({mark:O,pulse:b||I}));v=bt(B),r&&(S&&(o=t.operators,o.pop(),E&&o.pop()),t.pushState(I,b||v,N),a?(function(G,W,X){let Z=G.from.facet,re=Z.name,Q=Uw(Z,W),ie;Z.name||L("Facet must have a name: "+ft(Z)),Z.data||L("Facet must reference a data set: "+ft(Z)),Z.field?ie=W.add(YO({field:W.fieldRef(Z.field),pulse:Q})):Z.groupby?ie=W.add(hU({key:W.keyRef(Z.groupby),group:bt(W.proxy(X.parent)),pulse:Q})):L("Facet must specify groupby or field: "+ft(Z));let ce=W.fork(),fe=ce.add(Vo()),pe=ce.add(Sd({pulse:bt(fe)}));ce.addData(re,new Td(ce,fe,fe,pe)),ce.addSignal("parent",null),ie.params.subflow={$subflow:ce.parse(G).toRuntime()}})(e,t,x):S?(function(G,W,X){let Z=W.add(YO({pulse:X.pulse})),re=W.fork();re.add(Sd()),re.addSignal("parent",null),Z.params.subflow={$subflow:re.parse(G).toRuntime()}})(e,t,x):t.parse(e),t.popState(),S&&(E&&o.push(E),o.push(B))),i&&(v=(function(G,W,X){let Z=G.method,re=G.bound,Q=G.separation,ie={separation:lr(Q)?X.signalRef(Q.signal):Q,method:lr(Z)?X.signalRef(Z.signal):Z,pulse:W};if(G.order&&(ie.sort=X.compareRef({field:G.order})),re){let ce=re.tolerance;ie.boundTolerance=lr(ce)?X.signalRef(ce.signal):+ce,ie.boundScale=X.scaleRef(re.scale),ie.boundOrient=re.orient}return bt(X.add(kU(ie)))})(i,v,t));let P=t.add(KO({pulse:v})),z=t.add(Sd({pulse:bt(P)},void 0,t.parent()));e.name!=null&&(g=e.name,t.addData(g,new Td(t,u,P,z)),e.on&&e.on.forEach((G=>{(G.insert||G.remove||G.toggle)&&L("Marks only support modify triggers."),gD(G,t,g)})))}function uz(e,t){let n=t.config.legend,r=e.encode||{},a=Ja(e,n),i=r.legend||{},o=i.name||void 0,c=i.interactive,u=i.style,f={},g,b,v,E=0;ZS.forEach((I=>e[I]?(f[I]=e[I],E=E||e[I]):0)),E||L("Missing valid scale for legend.");let S=(function(I,B){let P=I.type||nD;return I.type||(function(z){return ZS.reduce(((G,W)=>G+(z[W]?1:0)),0)})(I)!==1||!I.fill&&!I.stroke||(P=Xg(B)?Fw:Zg(B)?KS:nD),P!==Fw?P:Zg(B)?KS:Fw})(e,t.scaleType(E)),x={title:e.title!=null,scales:f,type:S,vgrad:S!=="symbol"&&a.isVertical()},N=bt(t.add(Vo(null,[x]))),O=bt(t.add(bU(b={type:S,scale:t.scaleRef(E),count:t.objectProperty(a("tickCount")),limit:t.property(a("symbolLimit")),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)})));return S===Fw?(v=[WU(e,E,n,r.gradient),oD(e,n,r.labels,O)],b.count=b.count||t.signalRef(`max(2,2*floor((${xd(a.gradientLength())})/100))`)):S===KS?v=[VU(e,E,n,r.gradient,O),oD(e,n,r.labels,O)]:(g=(function(I,B){let P=Ja(I,B);return{align:P("gridAlign"),columns:P.entryColumns(),center:{row:!0,column:!1},padding:{row:P("rowPadding"),column:P("columnPadding")}}})(e,n),v=[XU(e,n,r,O,xd(g.columns))],b.size=(function(I,B,P){let z=xd(bD("size",I,P)),G=xd(bD("strokeWidth",I,P)),W=xd((function(X,Z,re){return aD("fontSize",X)||(function(Q,ie,ce){let fe=ie.config.style[ce];return fe&&fe[Q]})("fontSize",Z,re)})(P[1].encode,B,s0));return Ds(`max(ceil(sqrt(${z})+${G}),${W})`,B)})(e,t,v[0].marks)),v=[c0({role:VB,from:N,encode:{enter:{x:{value:0},y:{value:0}}},marks:v,layout:g,interactive:c})],x.title&&v.push((function(I,B,P,z){let G=Ja(I,B),W={enter:{opacity:Wt},update:{opacity:lo,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:Wt}};return Fr(W,{orient:G("titleOrient"),_anchor:G("titleAnchor"),anchor:{signal:ez},angle:{signal:tz},align:{signal:QU},baseline:{signal:nz},text:I.title,fill:G("titleColor"),fillOpacity:G("titleOpacity"),font:G("titleFont"),fontSize:G("titleFontSize"),fontStyle:G("titleFontStyle"),fontWeight:G("titleFontWeight"),limit:G("titleLimit"),lineHeight:G("titleLineHeight")},{align:G("titleAlign"),baseline:G("titleBaseline")}),_i({type:Ad,role:XB,style:YS,from:z,encode:W},P)})(e,n,r.title,N)),zw(c0({role:qB,from:N,encode:nh(dz(a,e,n),i,l0),marks:v,aria:a("aria"),description:a("description"),zindex:a("zindex"),name:o,interactive:c,style:u}),t)}function dz(e,t,n){let r={enter:{},update:{}};return Fr(r,{orient:e("orient"),offset:e("offset"),padding:e("padding"),titlePadding:e("titlePadding"),cornerRadius:e("cornerRadius"),fill:e("fillColor"),stroke:e("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:e("legendX"),y:e("legendY"),format:t.format,formatType:t.formatType}),r}function bD(e,t,n){return t[e]?`scale("${t[e]}",datum)`:aD(e,n[0].encode)}Td.fromEntries=function(e,t){let n=t.length,r=t[n-1],a=t[n-2],i=t[0],o=null,c=1;for(i&&i.type==="load"&&(i=t[1]),e.add(t[0]);c<n;++c)t[c].params.pulse=bt(t[c-1]),e.add(t[c]),t[c].type==="aggregate"&&(o=t[c]);return new Td(e,i,a,r,o)},Td.prototype={countsRef(e,t,n){let r=this,a=r.counts||(r.counts={}),i=hD(t),o,c,u;return i!=null&&(e=r.scope,o=a[i]),o?n&&n.field&&mD(e,o.agg.params,n):(u={groupby:e.fieldRef(t,"key"),pulse:bt(r.output)},n&&n.field&&mD(e,u,n),c=e.add(HO(u)),o=e.add(Vo({pulse:bt(c)})),o={agg:c,ref:bt(o)},i!=null&&(a[i]=o)),o.ref},tuplesRef(){return bt(this.values)},extentRef(e,t){return u0(e,this,"extent","extent",t,!1)},domainRef(e,t){return u0(e,this,"domain","values",t,!1)},valuesRef(e,t,n){return u0(e,this,"vals","values",t,n||!0)},lookupRef(e,t){return u0(e,this,"lookup","tupleindex",t,!1)},indataRef(e,t){return u0(e,this,"indata","tupleindex",t,!0,!0)}};let fz=`item.orient==="${ah}"?-90:item.orient==="${ih}"?90:0`;function pz(e,t){let n=Ja(e=Ut(e)?{text:e}:e,t.config.title),r=e.encode||{},a=r.group||{},i=a.name||void 0,o=a.interactive,c=a.style,u=[],f=bt(t.add(Vo(null,[{}])));return u.push((function(g,b,v,E){let S={value:0},x=g.text,N={enter:{opacity:S},update:{opacity:{value:1}},exit:{opacity:S}};return Fr(N,{text:x,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:b("dx"),dy:b("dy"),fill:b("color"),font:b("font"),fontSize:b("fontSize"),fontStyle:b("fontStyle"),fontWeight:b("fontWeight"),lineHeight:b("lineHeight")},{align:b("align"),angle:b("angle"),baseline:b("baseline")}),_i({type:Ad,role:JB,style:jU,from:E,encode:N},v)})(e,n,(function(g){let b=g.encode;return b&&b.title||lt({name:g.name,interactive:g.interactive,style:g.style},b)})(e),f)),e.subtitle&&u.push((function(g,b,v,E){let S={value:0},x=g.subtitle,N={enter:{opacity:S},update:{opacity:{value:1}},exit:{opacity:S}};return Fr(N,{text:x,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:b("dx"),dy:b("dy"),fill:b("subtitleColor"),font:b("subtitleFont"),fontSize:b("subtitleFontSize"),fontStyle:b("subtitleFontStyle"),fontWeight:b("subtitleFontWeight"),lineHeight:b("subtitleLineHeight")},{align:b("align"),angle:b("angle"),baseline:b("baseline")}),_i({type:Ad,role:QB,style:HU,from:E,encode:N},v)})(e,n,r.subtitle,f)),zw(c0({role:ZB,from:f,encode:hz(n,a),marks:u,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:i,interactive:o,style:c}),t)}function hz(e,t){let n={enter:{},update:{}};return Fr(n,{orient:e("orient"),anchor:e("anchor"),align:{signal:QS},angle:{signal:fz},limit:e("limit"),frame:e("frame"),offset:e("offset")||0,padding:e("subtitlePadding")}),nh(n,t,l0)}function mz(e,t){let n=[];e.transform&&e.transform.forEach((r=>{n.push(nA(r,t))})),e.on&&e.on.forEach((r=>{gD(r,t,e.name)})),t.addDataPipeline(e.name,(function(r,a,i){let o=[],c,u,f,g,b,v=null,E=!1,S=!1;for(r.values?lr(r.values)||Dw(r.format)?(o.push(yD(a,r)),o.push(v=Rd())):o.push(v=Rd({$ingest:r.values,$format:r.format})):r.url?Dw(r.url)||Dw(r.format)?(o.push(yD(a,r)),o.push(v=Rd())):o.push(v=Rd({$request:r.url,$format:r.format})):r.source&&(v=c=Ne(r.source).map((x=>bt(a.getData(x).output))),o.push(null)),u=0,f=i.length;u<f;++u)g=i[u],b=g.metadata,v||b.source||o.push(v=Rd()),o.push(g),b.generates&&(S=!0),b.modifies&&!S&&(E=!0),b.source?v=g:b.changes&&(v=null);return c&&(f=c.length-1,o[0]=AU({derive:E,pulse:f?c:c[0]}),(E||f)&&o.splice(1,0,Rd())),v||o.push(Rd()),o.push(Sd({})),o})(e,t,n))}function Rd(e){let t=Vo({},e);return t.metadata={source:!0},t}function yD(e,t){return yU({url:t.url?e.property(t.url):void 0,async:t.async?e.property(t.async):void 0,values:t.values?e.property(t.values):void 0,format:e.objectProperty(t.format)})}let vD=e=>e===Vc||e===Yo,Gw=(e,t,n)=>lr(e)?vz(e.signal,t,n):e===ah||e===Yo?t:n,yr=(e,t,n)=>lr(e)?bz(e.signal,t,n):vD(e)?t:n,Ko=(e,t,n)=>lr(e)?yz(e.signal,t,n):vD(e)?n:t,ED=(e,t,n)=>lr(e)?Ez(e.signal,t,n):e===Yo?{value:t}:{value:n},gz=(e,t,n)=>lr(e)?wz(e.signal,t,n):e===ih?{value:t}:{value:n},bz=(e,t,n)=>wD(`${e} === '${Yo}' || ${e} === '${Vc}'`,t,n),yz=(e,t,n)=>wD(`${e} !== '${Yo}' && ${e} !== '${Vc}'`,t,n),vz=(e,t,n)=>aA(`${e} === '${ah}' || ${e} === '${Yo}'`,t,n),Ez=(e,t,n)=>aA(`${e} === '${Yo}'`,t,n),wz=(e,t,n)=>aA(`${e} === '${ih}'`,t,n),wD=(e,t,n)=>(t=t!=null?br(t):t,n=n!=null?br(n):n,kD(t)&&kD(n)?{signal:`${e} ? (${t=t?t.signal||ft(t.value):null}) : (${n=n?n.signal||ft(n.value):null})`}:[lt({test:e},t)].concat(n||[])),kD=e=>e==null||Object.keys(e).length===1,aA=(e,t,n)=>({signal:`${e} ? (${sh(t)}) : (${sh(n)})`}),kz=(e,t,n,r,a)=>({signal:(r!=null?`${e} === '${ah}' ? (${sh(r)}) : `:"")+(n!=null?`${e} === '${Vc}' ? (${sh(n)}) : `:"")+(a!=null?`${e} === '${ih}' ? (${sh(a)}) : `:"")+(t!=null?`${e} === '${Yo}' ? (${sh(t)}) : `:"")+"(null)"}),sh=e=>lr(e)?e.signal:e==null?null:ft(e),_z=(e,t)=>t===0?0:lr(e)?{signal:`(${e.signal}) * ${t}`}:{value:e*t},lh=(e,t)=>{let n=e.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+t.signal}:e};function ch(e,t,n,r){let a;if(t&&ot(t,e))return t[e];if(ot(n,e))return n[e];if(e.startsWith("title")){switch(e){case"titleColor":a="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":a=e[5].toLowerCase()+e.slice(6)}return r[YS][a]}if(e.startsWith("label")){switch(e){case"labelColor":a="fill";break;case"labelFont":case"labelFontSize":a=e[5].toLowerCase()+e.slice(6)}return r[s0][a]}return null}function _D(e){let t={};for(let n of e)if(n)for(let r in n)t[r]=1;return Object.keys(t)}function xD(e,t){return{scale:e.scale,range:t}}function xz(e,t,n,r,a){let i=Ja(e,t),o=e.orient,c=e.gridScale,u=Gw(o,1,-1),f=(function(I,B){if(B!==1)if(ye(I)){let P=I=lt({},I);for(;P.mult!=null;){if(!ye(P.mult))return P.mult=lr(B)?{signal:`(${P.mult}) * (${B.signal})`}:P.mult*B,I;P=P.mult=lt({},P.mult)}P.mult=B}else I=lr(B)?{signal:`(${B.signal}) * (${I||0})`}:B*(I||0);return I})(e.offset,u),g,b,v,E={enter:g={opacity:Wt},update:v={opacity:lo},exit:b={opacity:Wt}};Fr(E,{stroke:i("gridColor"),strokeCap:i("gridCap"),strokeDash:i("gridDash"),strokeDashOffset:i("gridDashOffset"),strokeOpacity:i("gridOpacity"),strokeWidth:i("gridWidth")});let S={scale:e.scale,field:so,band:a.band,extra:a.extra,offset:a.offset,round:i("tickRound")},x=yr(o,{signal:"height"},{signal:"width"}),N=c?{scale:c,range:0,mult:u,offset:f}:{value:0,offset:f},O=c?{scale:c,range:1,mult:u,offset:f}:lt(x,{mult:u,offset:f});return g.x=v.x=yr(o,S,N),g.y=v.y=Ko(o,S,N),g.x2=v.x2=Ko(o,O),g.y2=v.y2=yr(o,O),b.x=yr(o,S),b.y=Ko(o,S),_i({type:JS,role:zB,key:so,from:r,encode:E},n)}function iA(e,t,n,r,a){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+n+","+r+","+a+")"}}function Sz(e,t,n,r){let a=Ja(e,t),i=e.orient,o=Gw(i,-1,1),c,u,f={enter:c={opacity:Wt,anchor:br(a("titleAnchor",null)),align:{signal:QS}},update:u=lt({},c,{opacity:lo,text:br(e.title)}),exit:{opacity:Wt}},g={signal:`lerp(range("${e.scale}"), ${$w(0,1,.5)})`};return u.x=yr(i,g),u.y=Ko(i,g),c.angle=yr(i,Wt,_z(o,90)),c.baseline=yr(i,ED(i,Vc,Yo),{value:Vc}),u.angle=c.angle,u.baseline=c.baseline,Fr(f,{fill:a("titleColor"),fillOpacity:a("titleOpacity"),font:a("titleFont"),fontSize:a("titleFontSize"),fontStyle:a("titleFontStyle"),fontWeight:a("titleFontWeight"),limit:a("titleLimit"),lineHeight:a("titleLineHeight")},{align:a("titleAlign"),angle:a("titleAngle"),baseline:a("titleBaseline")}),(function(b,v,E,S){let x=(I,B)=>I!=null?(E.update[B]=lh(br(I),E.update[B]),!1):!rh(B,S),N=x(b("titleX"),"x"),O=x(b("titleY"),"y");E.enter.auto=O===N?br(O):yr(v,br(O),br(N))})(a,i,f,n),f.update.align=lh(f.update.align,c.align),f.update.angle=lh(f.update.angle,c.angle),f.update.baseline=lh(f.update.baseline,c.baseline),_i({type:Ad,role:HB,style:YS,from:r,encode:f},n)}function Az(e,t){let n=(function(x,N){var O,I,B,P=N.config,z=P.style,G=P.axis,W=N.scaleType(x.scale)==="band"&&P.axisBand,X=x.orient;if(lr(X)){let Z=_D([P.axisX,P.axisY]),re=_D([P.axisTop,P.axisBottom,P.axisLeft,P.axisRight]);for(B of(O={},Z))O[B]=yr(X,ch(B,P.axisX,G,z),ch(B,P.axisY,G,z));for(B of(I={},re))I[B]=kz(X.signal,ch(B,P.axisTop,G,z),ch(B,P.axisBottom,G,z),ch(B,P.axisLeft,G,z),ch(B,P.axisRight,G,z))}else O=X===Yo||X===Vc?P.axisX:P.axisY,I=P["axis"+X[0].toUpperCase()+X.slice(1)];return O||I||W?lt({},G,O,I,W):G})(e,t),r=e.encode||{},a=r.axis||{},i=a.name||void 0,o=a.interactive,c=a.style,u=Ja(e,n),f=(function(x){let N=x("tickBand"),O,I,B=x("tickOffset");return N?N.signal?(O={signal:`(${N.signal}) === 'extent' ? 1 : 0.5`},I={signal:`(${N.signal}) === 'extent'`},ye(B)||(B={signal:`(${N.signal}) === 'extent' ? 0 : ${B}`})):N==="extent"?(O=1,I=!0,B=0):(O=.5,I=!1):(O=x("bandPosition"),I=x("tickExtra")),{extra:I,band:O,offset:B}})(u),g={scale:e.scale,ticks:!!u("ticks"),labels:!!u("labels"),grid:!!u("grid"),domain:!!u("domain"),title:e.title!=null},b=bt(t.add(Vo({},[g]))),v=bt(t.add(dU({scale:t.scaleRef(e.scale),extra:t.property(f.extra),count:t.objectProperty(e.tickCount),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)}))),E=[],S;return g.grid&&E.push(xz(e,n,r.grid,v,f)),g.ticks&&(S=u("tickSize"),E.push((function(x,N,O,I,B,P){let z=Ja(x,N),G=x.orient,W=Gw(G,-1,1),X,Z,re,Q={enter:X={opacity:Wt},update:re={opacity:lo},exit:Z={opacity:Wt}};Fr(Q,{stroke:z("tickColor"),strokeCap:z("tickCap"),strokeDash:z("tickDash"),strokeDashOffset:z("tickDashOffset"),strokeOpacity:z("tickOpacity"),strokeWidth:z("tickWidth")});let ie=br(B);ie.mult=W;let ce={scale:x.scale,field:so,band:P.band,extra:P.extra,offset:P.offset,round:z("tickRound")};return re.y=X.y=yr(G,Wt,ce),re.y2=X.y2=yr(G,ie),Z.x=yr(G,ce),re.x=X.x=Ko(G,Wt,ce),re.x2=X.x2=Ko(G,ie),Z.y=Ko(G,ce),_i({type:JS,role:jB,key:so,from:I,encode:Q},O)})(e,n,r.ticks,v,S,f))),g.labels&&(S=g.ticks?S:0,E.push((function(x,N,O,I,B,P){let z=Ja(x,N),G=x.orient,W=x.scale,X=Gw(G,-1,1),Z=xd(z("labelFlush")),re=xd(z("labelFlushOffset")),Q=z("labelAlign"),ie=z("labelBaseline"),ce,fe=Z===0||!!Z,pe=br(B);pe.mult=X,pe.offset=br(z("labelPadding")||0),pe.offset.mult=X;let _e={scale:W,field:so,band:.5,offset:iD(P.offset,z("labelOffset"))},Ae=yr(G,fe?iA(W,Z,'"left"','"right"','"center"'):{value:"center"},gz(G,"left","right")),Ie=yr(G,ED(G,"bottom","top"),fe?iA(W,Z,'"top"','"bottom"','"middle"'):{value:"middle"}),Ue=iA(W,Z,`-(${re})`,re,0);fe=fe&&re;let je={opacity:Wt,x:yr(G,_e,pe),y:Ko(G,_e,pe)},De={enter:je,update:ce={opacity:lo,text:{field:VS},x:je.x,y:je.y,align:Ae,baseline:Ie},exit:{opacity:Wt,x:je.x,y:je.y}};Fr(De,{dx:!Q&&fe?yr(G,Ue):null,dy:!ie&&fe?Ko(G,Ue):null}),Fr(De,{angle:z("labelAngle"),fill:z("labelColor"),fillOpacity:z("labelOpacity"),font:z("labelFont"),fontSize:z("labelFontSize"),fontWeight:z("labelFontWeight"),fontStyle:z("labelFontStyle"),limit:z("labelLimit"),lineHeight:z("labelLineHeight")},{align:Q,baseline:ie});let pt=z("labelBound"),ht=z("labelOverlap");return ht=ht||pt?{separation:z("labelSeparation"),method:ht,order:"datum.index",bound:pt?{scale:W,orient:G,tolerance:pt}:null}:void 0,ce.align!==Ae&&(ce.align=lh(ce.align,Ae)),ce.baseline!==Ie&&(ce.baseline=lh(ce.baseline,Ie)),_i({type:Ad,role:GB,style:s0,key:so,from:I,encode:De,overlap:ht},O)})(e,n,r.labels,v,S,f))),g.domain&&E.push((function(x,N,O,I){let B=Ja(x,N),P=x.orient,z,G,W={enter:z={opacity:Wt},update:G={opacity:lo},exit:{opacity:Wt}};Fr(W,{stroke:B("domainColor"),strokeCap:B("domainCap"),strokeDash:B("domainDash"),strokeDashOffset:B("domainDashOffset"),strokeWidth:B("domainWidth"),strokeOpacity:B("domainOpacity")});let X=xD(x,0),Z=xD(x,1);return z.x=G.x=yr(P,X,Wt),z.x2=G.x2=yr(P,Z),z.y=G.y=Ko(P,X,Wt),z.y2=G.y2=Ko(P,Z),_i({type:JS,role:UB,from:I,encode:W},O)})(e,n,r.domain,b)),g.title&&E.push(Sz(e,n,r.title,b)),zw(c0({role:BB,from:b,encode:nh(Tz(u,e),a,l0),marks:E,aria:u("aria"),description:u("description"),zindex:u("zindex"),name:i,interactive:o,style:c}),t)}function Tz(e,t){let n={enter:{},update:{}};return Fr(n,{orient:e("orient"),offset:e("offset")||0,position:Wo(t.position,0),titlePadding:e("titlePadding"),minExtent:e("minExtent"),maxExtent:e("maxExtent"),range:{signal:`abs(span(range("${t.scale}")))`},translate:e("translate"),format:t.format,formatType:t.formatType}),n}function SD(e,t,n){let r=Ne(e.signals),a=Ne(e.scales);return n||r.forEach((i=>zO(i,t))),Ne(e.projections).forEach((i=>(function(o,c){let u=c.config.projection||{},f={};for(let g in o)g!=="name"&&(f[g]=qS(o[g],g,c));for(let g in u)f[g]==null&&(f[g]=qS(u[g],g,c));c.addProjection(o.name,f)})(i,t))),a.forEach((i=>(function(o,c){let u=o.type||"linear";xv(u)||L("Unrecognized scale type: "+ft(u)),c.addScale(o.name,{type:u,domain:void 0})})(i,t))),Ne(e.data).forEach((i=>mz(i,t))),a.forEach((i=>IU(i,t))),(n||r).forEach((i=>(function(o,c){let u=c.getSignal(o.name),f=o.update;o.init&&(f?L("Signals can not include both init and update expressions."):(f=o.init,u.initonly=!0)),f&&(f=Ds(f,c),u.update=f.$expr,u.params=f.$params),o.on&&o.on.forEach((g=>cU(g,c,u.id)))})(i,t))),Ne(e.axes).forEach((i=>Az(i,t))),Ne(e.marks).forEach((i=>zw(i,t))),Ne(e.legends).forEach((i=>uz(i,t))),e.title&&pz(e.title,t),t.parseLambdas(),t}let Rz=e=>nh({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},e);function Cz(e,t){let n=t.config,r=bt(t.root=t.add(Iw())),a=(function(f,g){let b=x=>Wo(f[x],g[x]),v=[d0("background",b("background")),d0("autosize",FB(b("autosize"))),d0("padding",$B(b("padding"))),d0("width",b("width")||0),d0("height",b("height")||0)],E=v.reduce(((x,N)=>(x[N.name]=N,x)),{}),S={};return Ne(f.signals).forEach((x=>{ot(E,x.name)?x=lt(E[x.name],x):v.push(x),S[x.name]=x})),Ne(g.signals).forEach((x=>{ot(S,x.name)||ot(E,x.name)||v.push(x)})),v})(e,n);a.forEach((f=>zO(f,t))),t.description=e.description||n.description,t.eventConfig=n.events,t.legends=t.objectProperty(n.legend&&n.legend.layout),t.locale=n.locale;let i=t.add(Vo()),o=t.add(VO(BO(Rz(e.encode),Pw,PS,e.style,t,{pulse:bt(i)}))),c=t.add(XO({layout:t.objectProperty(e.layout),legends:t.legends,autosize:t.signalRef("autosize"),mark:r,pulse:bt(o)}));t.operators.pop(),t.pushState(bt(o),bt(c),null),SD(e,t,a),t.operators.push(c);let u=t.add(qO({mark:r,pulse:bt(c)}));return u=t.add(KO({pulse:bt(u)})),u=t.add(Sd({pulse:bt(u)})),t.addData("root",new Td(t,i,i,u)),t}function d0(e,t){return t&&t.signal?{name:e,update:t.signal}:{name:e,value:t}}function AD(e,t){this.config=e||{},this.options=t||{},this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.eventConfig=null,this.locale=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function TD(e){this.config=e.config,this.options=e.options,this.legends=e.legends,this.field=Object.create(e.field),this.signals=Object.create(e.signals),this.lambdas=Object.create(e.lambdas),this.scales=Object.create(e.scales),this.events=Object.create(e.events),this.data=Object.create(e.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++e._nextsub[0],this._nextsub=e._nextsub,this._parent=e._parent.slice(),this._encode=e._encode.slice(),this._lookup=e._lookup.slice(),this._markpath=e._markpath}function oA(e){return(ve(e)?Nz:Iz)(e)}function Nz(e){let t=e.length,n="[";for(let r=0;r<t;++r){let a=e[r];n+=(r>0?",":"")+(ye(a)?a.signal||oA(a):ft(a))}return n+"]"}function Iz(e){let t,n,r="{",a=0;for(t in e)n=e[t],r+=(++a>1?",":"")+ft(t)+":"+(ye(n)?n.signal||oA(n):ft(n));return r+"}"}AD.prototype=TD.prototype={parse(e){return SD(e,this)},fork(){return new TD(this)},isSubscope(){return this._subid>0},toRuntime(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id(){return(this._subid?this._subid+":":0)+this._id++},add(e){return this.operators.push(e),e.id=this.id(),e.refs&&(e.refs.forEach((t=>{t.$ref=e.id})),e.refs=null),e},proxy(e){let t=e instanceof US?bt(e):e;return this.add(SU({value:t}))},addStream(e){return this.streams.push(e),e.id=this.id(),e},addUpdate(e){return this.updates.push(e),e},finish(){let e,t;for(e in this.root&&(this.root.root=!0),this.signals)this.signals[e].signal=e;for(e in this.scales)this.scales[e].scale=e;function n(r,a,i){let o,c;r&&(o=r.data||(r.data={}),c=o[a]||(o[a]=[]),c.push(i))}for(e in this.data){t=this.data[e],n(t.input,e,"input"),n(t.output,e,"output"),n(t.values,e,"values");for(let r in t.index)n(t.index[r],e,"index:"+r)}return this},pushState(e,t,n){this._encode.push(bt(this.add(Sd({pulse:e})))),this._parent.push(t),this._lookup.push(n?bt(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return me(this._parent)},encode(){return me(this._encode)},lookup(){return me(this._lookup)},markpath(){let e=this._markpath;return++e[e.length-1]},fieldRef(e,t){if(Ut(e))return i0(e,t);e.signal||L("Unsupported field reference: "+ft(e));let n=e.signal,r=this.field[n];if(!r){let a={name:this.signalRef(n)};t&&(a.as=t),this.field[n]=r=bt(this.add(mU(a)))}return r},compareRef(e){let t=!1,n=i=>lr(i)?(t=!0,this.signalRef(i.signal)):(function(o){return o&&o.expr})(i)?(t=!0,this.exprRef(i.expr)):i,r=Ne(e.field).map(n),a=Ne(e.order).map(n);return t?bt(this.add(WO({fields:r,orders:a}))):GO(r,a)},keyRef(e,t){let n=!1,r=this.signals;return e=Ne(e).map((a=>lr(a)?(n=!0,bt(r[a.signal])):a)),n?bt(this.add(gU({fields:e,flat:t}))):(function(a,i){let o={$key:a};return i&&(o.$flat=!0),o})(e,t)},sortRef(e){if(!e)return e;let t=Ow(e.op,e.field),n=e.order||"ascending";return n.signal?bt(this.add(WO({fields:t,orders:this.signalRef(n.signal)}))):GO(t,n)},event(e,t){let n=e+":"+t;if(!this.events[n]){let r=this.id();this.streams.push({id:r,source:e,type:t}),this.events[n]=r}return this.events[n]},hasOwnSignal(e){return ot(this.signals,e)},addSignal(e,t){this.hasOwnSignal(e)&&L("Duplicate signal name: "+ft(e));let n=t instanceof US?t:this.add(Iw(t));return this.signals[e]=n},getSignal(e){return this.signals[e]||L("Unrecognized signal name: "+ft(e)),this.signals[e]},signalRef(e){return this.signals[e]?bt(this.signals[e]):(ot(this.lambdas,e)||(this.lambdas[e]=this.add(Iw(null))),bt(this.lambdas[e]))},parseLambdas(){let e=Object.keys(this.lambdas);for(let t=0,n=e.length;t<n;++t){let r=e[t],a=Ds(r,this),i=this.lambdas[r];i.params=a.$params,i.update=a.$expr}},property(e){return e&&e.signal?this.signalRef(e.signal):e},objectProperty(e){return e&&ye(e)?this.signalRef(e.signal||oA(e)):e},exprRef(e,t){let n={expr:Ds(e,this)};return t&&(n.expr.$name=t),bt(this.add(pU(n)))},addBinding(e,t){this.bindings||L("Nested signals do not support binding: "+ft(e)),this.bindings.push(lt({signal:e},t))},addScaleProj(e,t){ot(this.scales,e)&&L("Duplicate scale or projection name: "+ft(e)),this.scales[e]=this.add(t)},addScale(e,t){this.addScaleProj(e,TU(t))},addProjection(e,t){this.addScaleProj(e,xU(t))},getScale(e){return this.scales[e]||L("Unrecognized scale name: "+ft(e)),this.scales[e]},scaleRef(e){return bt(this.getScale(e))},scaleType(e){return this.getScale(e).params.type},projectionRef(e){return this.scaleRef(e)},projectionType(e){return this.scaleType(e)},addData(e,t){return ot(this.data,e)&&L("Duplicate data set name: "+ft(e)),this.data[e]=t},getData(e){return this.data[e]||L("Undefined data set name: "+ft(e)),this.data[e]},addDataPipeline(e,t){return ot(this.data,e)&&L("Duplicate data set name: "+ft(e)),this.addData(e,Td.fromEntries(this,t))}},lt(tl,Jf,TL,$L,xF,qF,SP,mP,AP,zP,KP,JP),p.Bounds=Cn,p.CanvasHandler=mb,p.CanvasRenderer=eE,p.DATE=pr,p.DAY=tr,p.DAYOFYEAR=Di,p.Dataflow=el,p.Debug=Le,p.Error=ue,p.EventStream=Ui,p.Gradient=mt,p.GroupItem=vl,p.HOURS=Hr,p.Handler=Lc,p.Info=xe,p.Item=Lo,p.MILLISECONDS=Ba,p.MINUTES=pa,p.MONTH=er,p.Marks=vi,p.MultiPulse=vu,p.None=le,p.Operator=Qt,p.Parameters=bu,p.Pulse=ci,p.QUARTER=Tr,p.RenderType=Pc,p.Renderer=Ts,p.ResourceLoader=El,p.SECONDS=ha,p.SVGHandler=t1,p.SVGRenderer=l1,p.SVGStringRenderer=u1,p.Scenegraph=X_,p.TIME_UNITS=Hd,p.Transform=Te,p.View=_O,p.WEEK=An,p.Warn=be,p.YEAR=Qn,p.accessor=h,p.accessorFields=_,p.accessorName=w,p.array=Ne,p.ascending=et,p.bandwidthNRD=bm,p.bin=ym,p.bootstrapCI=vm,p.boundClip=uR,p.boundContext=ob,p.boundItem=K_,p.boundMark=TT,p.boundStroke=kl,p.changeset=ls,p.clampRange=Be,p.codegenExpression=LI,p.compare=Lt,p.constant=Ze,p.cumulativeLogNormal=ba,p.cumulativeNormal=wu,p.cumulativeUniform=xu,p.dayofyear=G0,p.debounce=on,p.defaultLocale=mf,p.definition=hm,p.densityLogNormal=If,p.densityNormal=Em,p.densityUniform=Mf,p.domChild=Wa,p.domClear=Bo,p.domCreate=Mc,p.domFind=Z_,p.dotbin=Cf,p.error=L,p.expressionFunction=Yn,p.extend=lt,p.extent=Sn,p.extentIndex=la,p.falsy=te,p.fastmap=ur,p.field=q,p.flush=ca,p.font=qv,p.fontFamily=db,p.fontSize=As,p.format=mu,p.formatLocale=pu,p.formats=os,p.hasOwnProperty=ot,p.id=J,p.identity=K,p.inferType=lm,p.inferTypes=cm,p.ingest=Dt,p.inherits=Fe,p.inrange=xr,p.interpolate=Jg,p.interpolateColors=Np,p.interpolateRange=Tv,p.intersect=oR,p.intersectBoxLine=Lp,p.intersectPath=D_,p.intersectPoint=M_,p.intersectRule=fT,p.isArray=ve,p.isBoolean=ei,p.isDate=vn,p.isFunction=We,p.isIterable=xi,p.isNumber=Ur,p.isObject=ye,p.isRegExp=Si,p.isString=Ut,p.isTuple=ac,p.key=Ai,p.lerp=fo,p.lineHeight=Oc,p.loader=Js,p.locale=sm,p.logger=Me,p.lruCache=Pl,p.markup=s1,p.merge=Bs,p.mergeConfig=Ve,p.multiLineOffset=W_,p.one=oe,p.pad=Xc,p.panLinear=_t,p.panLog=Pt,p.panPow=Zt,p.panSymlog=Tt,p.parse=function(e,t,n){return ye(e)||L("Input Vega specification must be an object."),Cz(e,new AD(t=Ve((function(){let r="sans-serif",a="#4c78a8",i="#000",o="#888",c="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:a},area:{fill:a},image:null,line:{stroke:a,strokeWidth:2},path:{stroke:a},rect:{fill:a},rule:{stroke:i},shape:{stroke:a},symbol:{fill:a,size:64},text:{fill:i,font:r,fontSize:11},trail:{fill:a,size:2},style:{"guide-label":{fill:i,font:r,fontSize:10},"guide-title":{fill:i,font:r,fontSize:11,fontWeight:"bold"},"group-title":{fill:i,font:r,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:i,font:r,fontSize:12},point:{size:30,strokeWidth:2,shape:"circle"},circle:{size:30,strokeWidth:2},square:{size:30,strokeWidth:2,shape:"square"},cell:{fill:"transparent",stroke:c},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:o,grid:!1,gridWidth:1,gridColor:c,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:o,tickOffset:0,tickRound:!0,tickSize:5,tickWidth:1,titlePadding:4},axisBand:{tickOffset:-.5},projection:{type:"mercator"},legend:{orient:"right",padding:0,gridAlign:"each",columnPadding:10,rowPadding:2,symbolDirection:"vertical",gradientDirection:"vertical",gradientLength:200,gradientThickness:16,gradientStrokeColor:c,gradientStrokeWidth:0,gradientLabelOffset:2,labelAlign:"left",labelBaseline:"middle",labelLimit:160,labelOffset:4,labelOverlap:!0,symbolLimit:30,symbolType:"circle",symbolSize:100,symbolOffset:0,symbolStrokeWidth:1.5,symbolBaseFillColor:"transparent",symbolBaseStrokeColor:o,titleLimit:180,titleOrient:"top",titlePadding:5,layout:{offset:18,direction:"horizontal",left:{direction:"vertical"},right:{direction:"vertical"}}},range:{category:{scheme:"tableau10"},ordinal:{scheme:"blues"},heatmap:{scheme:"yellowgreenblue"},ramp:{scheme:"blues"},diverging:{scheme:"blueorange",extent:[1,0]},symbol:["circle","square","triangle-up","cross","diamond","triangle-right","triangle-down","triangle-left"]}}})(),t,e.config),n)).toRuntime()},p.parseExpression=OI,p.parseSelector=OO,p.path=Du,p.pathCurves=Qe,p.pathEqual=dR,p.pathParse=qt,p.pathRectangle=rb,p.pathRender=Zr,p.pathSymbols=Jr,p.pathTrail=ab,p.peek=me,p.point=Vv,p.projection=sx,p.quantileLogNormal=_m,p.quantileNormal=ku,p.quantileUniform=dc,p.quantiles=gm,p.quantizeInterpolator=Rv,p.quarter=Xn,p.quartiles=Rf,p.randomInteger=function(e,t){let n,r,a;t==null&&(t=e,e=0);let i={min(o){return arguments.length?(n=o||0,a=r-n,i):n},max(o){return arguments.length?(r=o||0,a=r-n,i):r},sample:()=>n+Math.floor(a*p.random()),pdf:o=>o===Math.floor(o)&&o>=n&&o<r?1/a:0,cdf(o){let c=Math.floor(o);return c<n?0:c>=r?1:(c-n+1)/a},icdf:o=>o>=0&&o<=1?n-1+Math.floor(o*a):NaN};return i.min(e).max(t)},p.randomKDE=km,p.randomLCG=function(e){return function(){return(e=(1103515245*e+12345)%2147483647)/2147483647}},p.randomLogNormal=Of,p.randomMixture=Df,p.randomNormal=wm,p.randomUniform=Lf,p.read=Ef,p.regressionConstant=Ff,p.regressionExp=xm,p.regressionLinear=fc,p.regressionLoess=Tm,p.regressionLog=Tu,p.regressionPoly=Sm,p.regressionPow=_y,p.regressionQuad=ui,p.renderModule=aE,p.repeat=po,p.resetDefaultLocale=function(){return im(),hu(),mf()},p.resetSVGClipId=Dv,p.resetSVGDefIds=function(){Dv(),Se=0},p.responseType=vf,p.runtimeContext=rO,p.sampleCurve=Pf,p.sampleLogNormal=Nf,p.sampleNormal=uc,p.sampleUniform=_u,p.scale=jt,p.sceneEqual=f1,p.sceneFromJSON=CT,p.scenePickVisit=Uv,p.sceneToJSON=RT,p.sceneVisit=Po,p.sceneZOrder=L_,p.scheme=Op,p.serializeXML=ZT,p.setRandom=function(e){p.random=e},p.span=ti,p.splitAccessPath=U,p.stringValue=ft,p.textMetrics=$o,p.timeBin=oi,p.timeFloor=V0,p.timeFormatLocale=Zs,p.timeInterval=ns,p.timeOffset=Zd,p.timeSequence=jh,p.timeUnitSpecifier=Wd,p.timeUnits=qd,p.toBoolean=$l,p.toDate=Pd,p.toNumber=ke,p.toSet=ua,p.toString=$d,p.transform=mm,p.transforms=tl,p.truncate=xh,p.truthy=Y,p.tupleid=ut,p.typeParsers=ma,p.utcFloor=Xd,p.utcInterval=Ua,p.utcOffset=X0,p.utcSequence=Hh,p.utcdayofyear=Uh,p.utcquarter=La,p.utcweek=zh,p.version="5.25.0",p.visitArray=Jo,p.week=Vd,p.writeConfig=tt,p.zero=V,p.zoomLinear=ia,p.zoomLog=oa,p.zoomPow=sa,p.zoomSymlog=$r}))});var AM=sA((nk,SM)=>{"use strict";(function(p,h){typeof nk=="object"&&typeof SM<"u"?h(nk,xA()):typeof define=="function"&&define.amd?define(["exports","vega"],h):h((p=typeof globalThis<"u"?globalThis:p||self).vegaLite={},p.vega)})(nk,(function(p,h){"use strict";var w="5.16.1";function _(l){return!!l.or}function T(l){return!!l.and}function M(l){return!!l.not}function D(l,s){if(M(l))D(l.not,s);else if(T(l))for(let d of l.and)D(d,s);else if(_(l))for(let d of l.or)D(d,s);else s(l)}function L(l,s){return M(l)?{not:L(l.not,s)}:T(l)?{and:l.and.map((d=>L(d,s)))}:_(l)?{or:l.or.map((d=>L(d,s)))}:s(l)}let U=globalThis.structuredClone;function q(l){throw new Error(l)}function J(l,s){let d={};for(let m of s)h.hasOwnProperty(l,m)&&(d[m]=l[m]);return d}function K(l,s){let d={...l};for(let m of s)delete d[m];return d}function V(l){if(h.isNumber(l))return l;let s=h.isString(l)?l:Be(l);if(s.length<250)return s;let d=0;for(let m=0;m<s.length;m++)d=(d<<5)-d+s.charCodeAt(m),d&=d;return d}function oe(l){return l===!1||l===null}function Y(l,s){return l.includes(s)}function te(l,s){let d=0;for(let[m,y]of l.entries())if(s(y,m,d++))return!0;return!1}function se(l,s){let d=0;for(let[m,y]of l.entries())if(!s(y,m,d++))return!1;return!0}function le(l){for(var s=arguments.length,d=new Array(s>1?s-1:0),m=1;m<s;m++)d[m-1]=arguments[m];for(let y of d)ue(l,y??{});return l}function ue(l,s){for(let d of we(s))h.writeConfig(l,d,s[d],!0)}function be(l,s){let d=[],m={},y;for(let k of l)y=s(k),y in m||(m[y]=1,d.push(k));return d}function xe(l,s){if(l.size!==s.size)return!1;for(let d of l)if(!s.has(d))return!1;return!0}function Le(l,s){for(let d of l)if(s.has(d))return!0;return!1}function Me(l){let s=new Set;for(let d of l){let m=h.splitAccessPath(d).map(((k,A)=>A===0?k:`[${k}]`)),y=m.map(((k,A)=>m.slice(0,A+1).join("")));for(let k of y)s.add(k)}return s}function ve(l,s){return l===void 0||s===void 0||Le(Me(l),Me(s))}function ye(l){return we(l).length===0}Set.prototype.toJSON=function(){return`Set(${[...this].map((l=>Be(l))).join(",")})`};let we=Object.keys,Ve=Object.values,tt=Object.entries;function Ye(l){return l===!0||l===!1}function me(l){let s=l.replace(/\W/g,"_");return(l.match(/^\d+/)?"_":"")+s}function ke(l,s){return M(l)?`!(${ke(l.not,s)})`:T(l)?`(${l.and.map((d=>ke(d,s))).join(") && (")})`:_(l)?`(${l.or.map((d=>ke(d,s))).join(") || (")})`:s(l)}function rt(l,s){if(s.length===0)return!0;let d=s.shift();return d in l&&rt(l[d],s)&&delete l[d],ye(l)}function wt(l){return l.charAt(0).toUpperCase()+l.substr(1)}function Oe(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"datum",d=h.splitAccessPath(l),m=[];for(let y=1;y<=d.length;y++){let k=`[${d.slice(0,y).map(h.stringValue).join("][")}]`;m.push(`${s}${k}`)}return m.join(" && ")}function Bt(l){return`${arguments.length>1&&arguments[1]!==void 0?arguments[1]:"datum"}[${h.stringValue(h.splitAccessPath(l).join("."))}]`}function xt(l){return l.replace(/(\[|\]|\.|'|")/g,"\\$1")}function Ot(l){return`${h.splitAccessPath(l).map(xt).join("\\.")}`}function _t(l,s,d){return l.replace(new RegExp(s.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),d)}function Pt(l){return`${h.splitAccessPath(l).join(".")}`}function Zt(l){return l?h.splitAccessPath(l).length:0}function Tt(){for(var l=arguments.length,s=new Array(l),d=0;d<l;d++)s[d]=arguments[d];for(let m of s)if(m!==void 0)return m}let Pn=42;function ia(l){let s=++Pn;return l?String(l)+s:s}function oa(l){return sa(l)?l:`__${l}`}function sa(l){return l.startsWith("__")}function $r(l){if(l!==void 0)return(l%360+360)%360}function Xn(l){return!!h.isNumber(l)||!isNaN(l)&&!isNaN(parseFloat(l))}let La=Object.getPrototypeOf(globalThis.structuredClone({}));function Ne(l,s){if(l===s)return!0;if(l&&s&&typeof l=="object"&&typeof s=="object"){if(l.constructor.name!==s.constructor.name)return!1;let d,m;if(Array.isArray(l)){if(d=l.length,d!=s.length)return!1;for(m=d;m--!=0;)if(!Ne(l[m],s[m]))return!1;return!0}if(l instanceof Map&&s instanceof Map){if(l.size!==s.size)return!1;for(m of l.entries())if(!s.has(m[0]))return!1;for(m of l.entries())if(!Ne(m[1],s.get(m[0])))return!1;return!0}if(l instanceof Set&&s instanceof Set){if(l.size!==s.size)return!1;for(m of l.entries())if(!s.has(m[0]))return!1;return!0}if(ArrayBuffer.isView(l)&&ArrayBuffer.isView(s)){if(d=l.length,d!=s.length)return!1;for(m=d;m--!=0;)if(l[m]!==s[m])return!1;return!0}if(l.constructor===RegExp)return l.source===s.source&&l.flags===s.flags;if(l.valueOf!==Object.prototype.valueOf&&l.valueOf!==La.valueOf)return l.valueOf()===s.valueOf();if(l.toString!==Object.prototype.toString&&l.toString!==La.toString)return l.toString()===s.toString();let y=Object.keys(l);if(d=y.length,d!==Object.keys(s).length)return!1;for(m=d;m--!=0;)if(!Object.prototype.hasOwnProperty.call(s,y[m]))return!1;for(m=d;m--!=0;){let k=y[m];if(!Ne(l[k],s[k]))return!1}return!0}return l!=l&&s!=s}function Be(l){let s=[];return(function d(m){if(m&&m.toJSON&&typeof m.toJSON=="function"&&(m=m.toJSON()),m===void 0)return;if(typeof m=="number")return isFinite(m)?""+m:"null";if(typeof m!="object")return JSON.stringify(m);let y,k;if(Array.isArray(m)){for(k="[",y=0;y<m.length;y++)y&&(k+=","),k+=d(m[y])||"null";return k+"]"}if(m===null)return"null";if(s.includes(m))throw new TypeError("Converting circular structure to JSON");let A=s.push(m)-1,R=Object.keys(m).sort();for(k="",y=0;y<R.length;y++){let C=R[y],$=d(m[C]);$&&(k&&(k+=","),k+=JSON.stringify(C)+":"+$)}return s.splice(A,1),`{${k}}`})(l)}let We="row",at="column",Lt="facet",et="x",nt="y",Xe="x2",Ke="y2",Ze="xOffset",on="yOffset",lt="radius",Sn="radius2",la="theta",uo="theta2",ot="latitude",Br="longitude",ur="latitude2",ca="longitude2",Fe="color",xr="fill",ei="stroke",vn="shape",xi="size",Ur="angle",Si="opacity",Ut="fillOpacity",Ai="strokeOpacity",fo="strokeWidth",Zo="strokeDash",Pl="text",Bs="order",po="detail",Xc="key",ti="tooltip",ft="href",$l="url",Fd="description",Pd={theta:1,theta2:1,radius:1,radius2:1};function $d(l){return l in Pd}let ua={longitude:1,longitude2:1,latitude:1,latitude2:1};function xh(l){switch(l){case ot:return"y";case ur:return"y2";case Br:return"x";case ca:return"x2"}}function Jo(l){return l in ua}let _0=we(ua),Zc={x:1,y:1,x2:1,y2:1,...Pd,...ua,xOffset:1,yOffset:1,color:1,fill:1,stroke:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeDash:1,size:1,angle:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1,url:1,description:1};function Qo(l){return l===Fe||l===xr||l===ei}let Bl={row:1,column:1,facet:1},zr=we(Bl),Bd={...Zc,...Bl},x0=we(Bd),{order:da,detail:VA,tooltip:YA,...bk}=Bd,{row:KA,column:yk,facet:vk,...Ek}=bk;function S0(l){return!!Bd[l]}let wk=[Xe,Ke,ur,ca,uo,Sn];function Ti(l){return Us(l)!==l}function Us(l){switch(l){case Xe:return et;case Ke:return nt;case ur:return ot;case ca:return Br;case uo:return la;case Sn:return lt}return l}function fa(l){if($d(l))switch(l){case la:return"startAngle";case uo:return"endAngle";case lt:return"outerRadius";case Sn:return"innerRadius"}return l}function Ri(l){switch(l){case et:return Xe;case nt:return Ke;case ot:return ur;case Br:return ca;case la:return uo;case lt:return Sn}}function Sr(l){switch(l){case et:case Xe:return"width";case nt:case Ke:return"height"}}function Sh(l){switch(l){case et:return"xOffset";case nt:return"yOffset";case Xe:return"x2Offset";case Ke:return"y2Offset";case la:return"thetaOffset";case lt:return"radiusOffset";case uo:return"theta2Offset";case Sn:return"radius2Offset"}}function Ul(l){switch(l){case et:return"xOffset";case nt:return"yOffset"}}function kk(l){switch(l){case"xOffset":return"x";case"yOffset":return"y"}}let Jc=we(Zc),{x:Gr,y:_k,x2:Ah,y2:A0,xOffset:xk,yOffset:Sk,latitude:Ak,longitude:Tk,latitude2:XA,longitude2:ZA,theta:JA,theta2:Th,radius:T0,radius2:R0,...Ci}=Zc,zs=we(Ci),Qc={x:1,y:1},ni=we(Qc);function un(l){return l in Qc}let eu={theta:1,radius:1},C0=we(eu);function tu(l){return l==="width"?et:nt}let Rh={xOffset:1,yOffset:1};function Zn(l){return l in Rh}let{text:Rk,tooltip:QA,href:Ch,url:nu,description:Ck,detail:eT,key:zl,order:N0,...Nh}=Ci,I0=we(Nh),Ih={...Qc,...eu,...Rh,...Nh},Gl=we(Ih);function Fa(l){return!!Ih[l]}function Oh(l,s){return(function(d){switch(d){case Fe:case xr:case ei:case Fd:case po:case Xc:case ti:case ft:case Bs:case Si:case Ut:case Ai:case fo:case Lt:case We:case at:return Dh;case et:case nt:case Ze:case on:case ot:case Br:return O0;case Xe:case Ke:case ur:case ca:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case xi:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case Zo:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case vn:return{point:"always",geoshape:"always"};case Pl:return{text:"always"};case Ur:return{point:"always",square:"always",text:"always"};case $l:return{image:"always"};case la:case lt:return{text:"always",arc:"always"};case uo:case Sn:return{arc:"always"}}})(l)[s]}let Dh={arc:"always",area:"always",bar:"always",circle:"always",geoshape:"always",image:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},{geoshape:Nk,...O0}=Dh;function Ud(l){switch(l){case et:case nt:case la:case lt:case Ze:case on:case xi:case Ur:case fo:case Si:case Ut:case Ai:case Xe:case Ke:case uo:case Sn:return;case Lt:case We:case at:case vn:case Zo:case Pl:case ti:case ft:case $l:case Fd:return"discrete";case Fe:case xr:case ei:return"flexible";case ot:case Br:case ur:case ca:case po:case Xc:case Bs:return}}let D0={argmax:1,argmin:1,average:1,count:1,distinct:1,product:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1},M0={count:1,min:1,max:1};function ri(l){return!!l&&!!l.argmin}function Ni(l){return!!l&&!!l.argmax}function En(l){return h.isString(l)&&!!D0[l]}let jl=new Set(["count","valid","missing","distinct"]);function Ii(l){return h.isString(l)&&jl.has(l)}let Pa=new Set(["count","sum","distinct","valid","missing"]),ho=new Set(["mean","average","median","q1","q3","min","max"]);function Oi(l){return h.isBoolean(l)&&(l=ut(l,void 0)),"bin"+we(l).map((s=>$a(l[s])?me(`_${s}_${tt(l[s])}`):me(`_${s}_${l[s]}`))).join("")}function Jt(l){return l===!0||mo(l)&&!l.binned}function $n(l){return l==="binned"||mo(l)&&l.binned===!0}function mo(l){return h.isObject(l)}function $a(l){return l?.param}function ru(l){switch(l){case We:case at:case xi:case Fe:case xr:case ei:case fo:case Si:case Ut:case Ai:case vn:return 6;case Zo:return 4;default:return 10}}function es(l){return!!l?.expr}function Jn(l){let s=we(l||{}),d={};for(let m of s)d[m]=Bn(l[m]);return d}function au(l){let{anchor:s,frame:d,offset:m,orient:y,angle:k,limit:A,color:R,subtitleColor:C,subtitleFont:$,subtitleFontSize:j,subtitleFontStyle:H,subtitleFontWeight:ee,subtitleLineHeight:ae,subtitlePadding:ne,...de}=l,he={...s?{anchor:s}:{},...d?{frame:d}:{},...m?{offset:m}:{},...y?{orient:y}:{},...k!==void 0?{angle:k}:{},...A!==void 0?{limit:A}:{}},ge={...C?{subtitleColor:C}:{},...$?{subtitleFont:$}:{},...j?{subtitleFontSize:j}:{},...H?{subtitleFontStyle:H}:{},...ee?{subtitleFontWeight:ee}:{},...ae?{subtitleLineHeight:ae}:{},...ne?{subtitlePadding:ne}:{}};return{titleMarkConfig:{...de,...R?{fill:R}:{}},subtitleMarkConfig:J(l,["align","baseline","dx","dy","limit"]),nonMarkTitleProperties:he,subtitle:ge}}function dr(l){return h.isString(l)||h.isArray(l)&&h.isString(l[0])}function Je(l){return!!l?.signal}function go(l){return!!l.step}function Ar(l){return!h.isArray(l)&&"field"in l&&"data"in l}let Hl=we({aria:1,description:1,ariaRole:1,ariaRoleDescription:1,blend:1,opacity:1,fill:1,fillOpacity:1,stroke:1,strokeCap:1,strokeWidth:1,strokeOpacity:1,strokeDash:1,strokeDashOffset:1,strokeJoin:1,strokeOffset:1,strokeMiterLimit:1,startAngle:1,endAngle:1,padAngle:1,innerRadius:1,outerRadius:1,size:1,shape:1,interpolate:1,tension:1,orient:1,align:1,baseline:1,text:1,dir:1,dx:1,dy:1,ellipsis:1,limit:1,radius:1,theta:1,angle:1,font:1,fontSize:1,fontWeight:1,fontStyle:1,lineBreak:1,lineHeight:1,cursor:1,href:1,tooltip:1,cornerRadius:1,cornerRadiusTopLeft:1,cornerRadiusTopRight:1,cornerRadiusBottomLeft:1,cornerRadiusBottomRight:1,aspect:1,width:1,height:1,url:1,smooth:1}),zd={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},Mh=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function L0(l){let s=h.isArray(l.condition)?l.condition.map(F0):F0(l.condition);return{...Bn(l),condition:s}}function Bn(l){if(es(l)){let{expr:s,...d}=l;return{signal:s,...d}}return l}function F0(l){if(es(l)){let{expr:s,...d}=l;return{signal:s,...d}}return l}function sn(l){if(es(l)){let{expr:s,...d}=l;return{signal:s,...d}}return Je(l)?l:l!==void 0?{value:l}:void 0}function ts(l){return Je(l)?l.signal:h.stringValue(l.value)}function fr(l){return Je(l)?l.signal:l==null?null:h.stringValue(l)}function Gd(l,s,d){for(let m of d){let y=jr(m,s.markDef,s.config);y!==void 0&&(l[m]=sn(y))}return l}function P0(l){return[].concat(l.type,l.style??[])}function Yt(l,s,d){let m=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},{vgChannel:y,ignoreVgConfig:k}=m;return y&&s[y]!==void 0?s[y]:s[l]!==void 0?s[l]:!k||y&&y!==l?jr(l,s,d,m):void 0}function jr(l,s,d){let{vgChannel:m}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return Tt(m?jd(l,s,d.style):void 0,jd(l,s,d.style),m?d[s.type][m]:void 0,d[s.type][l],m?d.mark[m]:d.mark[l])}function jd(l,s,d){return $0(l,P0(s),d)}function $0(l,s,d){let m;s=h.array(s);for(let y of s){let k=d[y];k&&k[l]!==void 0&&(m=k[l])}return m}function ql(l,s){return h.array(l).reduce(((d,m)=>(d.field.push(Ge(m,s)),d.order.push(m.sort??"ascending"),d)),{field:[],order:[]})}function Wl(l,s){let d=[...l];return s.forEach((m=>{for(let y of d)if(Ne(y,m))return;d.push(m)})),d}function ai(l,s){return Ne(l,s)||!s?l:l?[...h.array(l),...h.array(s)].join(", "):s}function ii(l,s){let d=l.value,m=s.value;if(d==null||m===null)return{explicit:l.explicit,value:null};if((dr(d)||Je(d))&&(dr(m)||Je(m)))return{explicit:l.explicit,value:ai(d,m)};if(dr(d)||Je(d))return{explicit:l.explicit,value:d};if(dr(m)||Je(m))return{explicit:l.explicit,value:m};if(!(dr(d)||Je(d)||dr(m)||Je(m)))return{explicit:l.explicit,value:Wl(d,m)};throw new Error("It should never reach here")}function ct(l,s,d){return(s=(function(m){var y=(function(k,A){if(typeof k!="object"||k===null)return k;var R=k[Symbol.toPrimitive];if(R!==void 0){var C=R.call(k,A||"default");if(typeof C!="object")return C;throw new TypeError("@@toPrimitive must return a primitive value.")}return(A==="string"?String:Number)(k)})(m,"string");return typeof y=="symbol"?y:String(y)})(s))in l?Object.defineProperty(l,s,{value:d,enumerable:!0,configurable:!0,writable:!0}):l[s]=d,l}function B0(l,s,d){return(function(m,y,k){if(y.set)y.set.call(m,k);else{if(!y.writable)throw new TypeError("attempted to set read only private field");y.value=k}})(l,U0(l,s,"set"),d),d}function U0(l,s,d){if(!s.has(l))throw new TypeError("attempted to "+d+" private field on non-instance");return s.get(l)}function Ik(l,s,d){(function(m,y){if(y.has(m))throw new TypeError("Cannot initialize the same private elements twice on an object")})(l,s),s.set(l,d)}function Lh(l){return`Invalid specification ${Be(l)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}let Qn='Autosize "fit" only works for single views and layered views.';function Tr(l){return`${l=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function er(l){return`${l=="width"?"Width":"Height"} "container" only works well with autosize "fit" or "fit-${l=="width"?"x":"y"}".`}function An(l){return l?`Dropping "fit-${l}" because spec has discrete ${Sr(l)}.`:'Dropping "fit" because spec has discrete size.'}function pr(l){return`Unknown field for ${l}. Cannot calculate view size.`}function tr(l){return`Cannot project a selection on encoding channel "${l}", which has no field.`}function Di(l,s){return`Cannot project a selection on encoding channel "${l}" as it uses an aggregate function ("${s}").`}function Hr(l){return`Selection not supported for ${l} yet.`}let pa="The same selection must be used to override scale domains in a layered view.";function ha(l){return`The "columns" property cannot be used when "${l}" has nested row/column.`}function Ba(l,s,d){return`An ancestor parsed field "${l}" as ${d} but a child wants to parse the field as ${s}.`}function Hd(l){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${l} are dropped.`}function Fh(l){return`${l}Offset dropped because ${l} is continuous`}function qd(l){return`Invalid field type "${l}".`}function z0(l,s){let{fill:d,stroke:m}=s;return`Dropping color ${l} as the plot also has ${d&&m?"fill and stroke":d?"fill":"stroke"}.`}function Wd(l,s){return`Dropping ${Be(l)} from channel "${s}" since it does not contain any data field, datum, value, or signal.`}function Mi(l,s,d){return`${l} dropped as it is incompatible with "${s}"${d?` when ${d}`:""}.`}function Ph(l){return`${l} encoding should be discrete (ordinal / nominal / binned).`}function G0(l){return`${l} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function Vd(l,s){return`Using discrete channel "${l}" to encode "${s}" field can be misleading as it does not encode ${s==="ordinal"?"order":"magnitude"}.`}function j0(l){return`Using unaggregated domain with raw field has no effect (${Be(l)}).`}function $h(l){return`Unaggregated domain not applicable for "${l}" since it produces values outside the origin domain of the source data.`}function Bh(l){return`Unaggregated domain is currently unsupported for log scale (${Be(l)}).`}function H0(l,s,d){return`${d}-scale's "${s}" is dropped as it does not work with ${l} scale.`}function Uh(l){return`The step for "${l}" is dropped because the ${l==="width"?"x":"y"} is continuous.`}let zh="Domains that should be unioned has conflicting sort properties. Sort will be set to true.";function iu(l,s){return`Invalid ${l}: ${Be(s)}.`}function Yd(l){return`1D error band does not support ${l}.`}function Kd(l){return`Channel ${l} is required for "binned" bin.`}let q0=h.logger(h.Warn),ou=q0;function $e(){ou.warn(...arguments)}function Gs(l){if(l&&h.isObject(l)){for(let s of ns)if(s in l)return!0}return!1}let W0=["january","february","march","april","may","june","july","august","september","october","november","december"],V0=W0.map((l=>l.substr(0,3))),Y0=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Ok=Y0.map((l=>l.substr(0,3)));function Xd(l,s){let d=[];if(s&&l.day!==void 0&&we(l).length>1&&($e((function(m){return`Dropping day from datetime ${Be(m)} as day cannot be combined with other units.`})(l)),delete(l=U(l)).day),l.year!==void 0?d.push(l.year):d.push(2012),l.month!==void 0){let m=s?(function(y){if(Xn(y)&&(y=+y),h.isNumber(y))return y-1;{let k=y.toLowerCase(),A=W0.indexOf(k);if(A!==-1)return A;let R=k.substr(0,3),C=V0.indexOf(R);if(C!==-1)return C;throw new Error(iu("month",y))}})(l.month):l.month;d.push(m)}else if(l.quarter!==void 0){let m=s?(function(y){if(Xn(y)&&(y=+y),h.isNumber(y))return y>4&&$e(iu("quarter",y)),y-1;throw new Error(iu("quarter",y))})(l.quarter):l.quarter;d.push(h.isNumber(m)?3*m:`${m}*3`)}else d.push(0);if(l.date!==void 0)d.push(l.date);else if(l.day!==void 0){let m=s?(function(y){if(Xn(y)&&(y=+y),h.isNumber(y))return y%7;{let k=y.toLowerCase(),A=Y0.indexOf(k);if(A!==-1)return A;let R=k.substr(0,3),C=Ok.indexOf(R);if(C!==-1)return C;throw new Error(iu("day",y))}})(l.day):l.day;d.push(h.isNumber(m)?m+1:`${m}+1`)}else d.push(1);for(let m of["hours","minutes","seconds","milliseconds"]){let y=l[m];d.push(y===void 0?0:y)}return d}function js(l){let s=Xd(l,!0).join(", ");return l.utc?`utc(${s})`:`datetime(${s})`}let K0={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},ns=we(K0);function Ua(l){return h.isObject(l)?l.binned:Gh(l)}function Gh(l){return l&&l.startsWith("binned")}function Zd(l){return l.startsWith("utc")}let X0={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function su(l){return ns.filter((s=>Hh(l,s)))}function jh(l){let s=su(l);return s[s.length-1]}function Hh(l,s){let d=l.indexOf(s);return!(d<0)&&!(d>0&&s==="seconds"&&l.charAt(d-1)==="i")&&!(l.length>d+3&&s==="day"&&l.charAt(d+3)==="o")&&!(d>0&&s==="year"&&l.charAt(d-1)==="f")}function Dk(l,s){let{end:d}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{end:!1},m=Oe(s),y=Zd(l)?"utc":"",k,A={};for(let C of ns)Hh(l,C)&&(A[C]=(R=C)==="quarter"?`(${y}quarter(${m})-1)`:`${y}${R}(${m})`,k=C);var R;return d&&(A[k]+="+1"),(function(C){let $=Xd(C,!1).join(", ");return C.utc?`utc(${$})`:`datetime(${$})`})(A)}function Z0(l){if(l)return`timeUnitSpecifier(${Be(su(l))}, ${Be(X0)})`}function Un(l){if(!l)return;let s;return h.isString(l)?s=Gh(l)?{unit:l.substring(6),binned:!0}:{unit:l}:h.isObject(l)&&(s={...l,...l.unit?{unit:l.unit}:{}}),Zd(s.unit)&&(s.utc=!0,s.unit=s.unit.substring(3)),s}function J0(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:y=>y,d=Un(l),m=jh(d.unit);if(m&&m!=="day"){let y={year:2001,month:1,date:1,hours:0,minutes:0,seconds:0,milliseconds:0},{step:k,part:A}=Jd(m,d.step);return`${s(js({...y,[A]:+y[A]+k}))} - ${s(js(y))}`}}let Mk={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function Jd(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;if((function(d){return!!Mk[d]})(l))return{part:l,step:s};switch(l){case"day":case"dayofyear":return{part:"date",step:s};case"quarter":return{part:"month",step:3*s};case"week":return{part:"date",step:7*s}}}function Qd(l){return!!l?.field&&l.equal!==void 0}function Hs(l){return!!l?.field&&l.lt!==void 0}function qs(l){return!!l?.field&&l.lte!==void 0}function Ws(l){return!!l?.field&&l.gt!==void 0}function qh(l){return!!l?.field&&l.gte!==void 0}function ef(l){return!!(l?.field&&(h.isArray(l.range)&&l.range.length===2||Je(l.range)))}function tf(l){return!!l?.field&&(h.isArray(l.oneOf)||h.isArray(l.in))}function Vl(l){return tf(l)||Qd(l)||ef(l)||Hs(l)||Ws(l)||qs(l)||qh(l)}function oi(l,s){return ic(l,{timeUnit:s,wrapTime:!0})}function nf(l){let s=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],{field:d}=l,m=Un(l.timeUnit),{unit:y,binned:k}=m||{},A=Ge(l,{expr:"datum"}),R=y?`time(${k?A:Dk(y,d)})`:A;if(Qd(l))return`${R}===${oi(l.equal,y)}`;if(Hs(l))return`${R}<${oi(l.lt,y)}`;if(Ws(l))return`${R}>${oi(l.gt,y)}`;if(qs(l))return`${R}<=${oi(l.lte,y)}`;if(qh(l))return`${R}>=${oi(l.gte,y)}`;if(tf(l))return`indexof([${(function(C,$){return C.map((j=>oi(j,$)))})(l.oneOf,y).join(",")}], ${R}) !== -1`;if((function(C){return!!C?.field&&C.valid!==void 0})(l))return lu(R,l.valid);if(ef(l)){let{range:C}=l,$=Je(C)?{signal:`${C.signal}[0]`}:C[0],j=Je(C)?{signal:`${C.signal}[1]`}:C[1];if($!==null&&j!==null&&s)return"inrange("+R+", ["+oi($,y)+", "+oi(j,y)+"])";let H=[];return $!==null&&H.push(`${R} >= ${oi($,y)}`),j!==null&&H.push(`${R} <= ${oi(j,y)}`),H.length>0?H.join(" && "):"true"}throw new Error(`Invalid field predicate: ${Be(l)}`)}function lu(l){return!(arguments.length>1&&arguments[1]!==void 0)||arguments[1]?`isValid(${l}) && isFinite(+${l})`:`!isValid(${l}) || !isFinite(+${l})`}function cu(l){return Vl(l)&&l.timeUnit?{...l,timeUnit:Un(l.timeUnit)}:l}function Q0(l){return l==="quantitative"||l==="temporal"}function Yl(l){return l==="ordinal"||l==="nominal"}let bo="quantitative",rf="ordinal",rs="temporal",af="nominal",Vs="geojson",Vt={LINEAR:"linear",LOG:"log",POW:"pow",SQRT:"sqrt",SYMLOG:"symlog",IDENTITY:"identity",SEQUENTIAL:"sequential",TIME:"time",UTC:"utc",QUANTILE:"quantile",QUANTIZE:"quantize",THRESHOLD:"threshold",BIN_ORDINAL:"bin-ordinal",ORDINAL:"ordinal",POINT:"point",BAND:"band"},Wh={linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",identity:"numeric",sequential:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"};function Lk(l,s){let d=Wh[l],m=Wh[s];return d===m||d==="ordinal-position"&&m==="time"||m==="ordinal-position"&&d==="time"}let zt={linear:0,log:1,pow:1,sqrt:1,symlog:1,identity:1,sequential:1,time:0,utc:0,point:10,band:11,ordinal:0,"bin-ordinal":0,quantile:0,quantize:0,threshold:0};function ey(l){return zt[l]}let Kl=new Set(["linear","log","pow","sqrt","symlog"]),Xl=new Set([...Kl,"time","utc"]);function ty(l){return Kl.has(l)}let ny=new Set(["quantile","quantize","threshold"]),Fk=new Set([...Xl,...ny,"sequential","identity"]),Pk=new Set(["ordinal","bin-ordinal","point","band"]);function zn(l){return Pk.has(l)}function qr(l){return Fk.has(l)}function za(l){return Xl.has(l)}function Zl(l){return ny.has(l)}function ry(l){return l?.param}let{type:tT,domain:$k,range:nT,rangeMax:Bk,rangeMin:rT,scheme:aT,...Uk}={type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,domainRaw:1,align:1,range:1,rangeMax:1,rangeMin:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1},zk=we(Uk);function Vh(l,s){switch(s){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(l);case"bins":return!["point","band","identity","ordinal"].includes(l);case"round":return za(l)||l==="band"||l==="point";case"padding":case"rangeMin":case"rangeMax":return za(l)||["point","band"].includes(l);case"paddingOuter":case"align":return["point","band"].includes(l);case"paddingInner":return l==="band";case"domainMax":case"domainMid":case"domainMin":case"domainRaw":case"clamp":return za(l);case"nice":return za(l)||l==="quantize"||l==="threshold";case"exponent":return l==="pow";case"base":return l==="log";case"constant":return l==="symlog";case"zero":return qr(l)&&!Y(["log","time","utc","threshold","quantile"],l)}}function ay(l,s){switch(s){case"interpolate":case"scheme":case"domainMid":return Qo(l)?void 0:`Cannot use the scale property "${s}" with non-color channel.`;case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":case"domainRaw":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeMax":case"rangeMin":case"reverse":case"round":case"clamp":case"zero":return}}let Rr={arc:"arc",area:"area",bar:"bar",image:"image",line:"line",point:"point",rect:"rect",rule:"rule",text:"text",tick:"tick",trail:"trail",circle:"circle",square:"square",geoshape:"geoshape"},Yh=Rr.arc,of=Rr.area,sf=Rr.bar,Gk=Rr.image,uu=Rr.line,lf=Rr.point,jk=Rr.rect,cf=Rr.rule,iy=Rr.text,Kh=Rr.tick,Hk=Rr.trail,uf=Rr.circle,Xh=Rr.square,oy=Rr.geoshape;function as(l){return["line","area","trail"].includes(l)}function du(l){return["rect","bar","image","arc"].includes(l)}let qk=new Set(we(Rr));function Li(l){return l.type}let Wk=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit","fill","fillOpacity"],sy=we({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),Zh=we({mark:1,arc:1,area:1,bar:1,circle:1,image:1,line:1,point:1,rect:1,rule:1,square:1,text:1,tick:1,trail:1,geoshape:1});function Ys(l){return l&&l.band!=null}let Vk={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},Yk={binSpacing:1,continuousBandSize:5,minBandSize:.25,timeUnitBandPosition:.5},ly={binSpacing:0,continuousBandSize:5,minBandSize:.25,timeUnitBandPosition:.5};function Jh(l){let{channel:s,channelDef:d,markDef:m,scale:y,config:k}=l,A=em(l);return ze(d)&&!Ii(d.aggregate)&&y&&za(y.get("type"))?(function(R){let{fieldDef:C,channel:$,markDef:j,ref:H,config:ee}=R;return as(j.type)?H:Yt("invalid",j,ee)===null?[Kk(C,$),H]:H})({fieldDef:d,channel:s,markDef:m,ref:A,config:k}):A}function Kk(l,s){return{test:Qh(l,!0),...Us(s)==="y"?{field:{group:"height"}}:{value:0}}}function Qh(l){let s=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return lu(h.isString(l)?l:Ge(l,{expr:"datum"}),!s)}function Ks(l,s,d,m){let y={};if(s&&(y.scale=s),Pi(l)){let{datum:k}=l;Gs(k)?y.signal=js(k):Je(k)?y.signal=k.signal:es(k)?y.signal=k.expr:y.value=k}else y.field=Ge(l,d);if(m){let{offset:k,band:A}=m;k&&(y.offset=k),A&&(y.band=A)}return y}function df(l){let{scaleName:s,fieldOrDatumDef:d,fieldOrDatumDef2:m,offset:y,startSuffix:k,endSuffix:A="end",bandPosition:R=.5}=l,C=!Je(R)&&0<R&&R<1?"datum":void 0,$=Ge(d,{expr:C,suffix:k}),j=m!==void 0?Ge(m,{expr:C}):Ge(d,{suffix:A,expr:C}),H={};if(R===0||R===1){H.scale=s;let ee=R===0?$:j;H.field=ee}else{let ee=Je(R)?`(1-${R.signal}) * ${$} + ${R.signal} * ${j}`:`${1-R} * ${$} + ${R} * ${j}`;H.signal=`scale("${s}", ${ee})`}return y&&(H.offset=y),H}function em(l){let{channel:s,channelDef:d,channel2Def:m,markDef:y,config:k,scaleName:A,scale:R,stack:C,offset:$,defaultRef:j,bandPosition:H}=l;if(d){if(St(d)){let ee=R?.get("type");if(hr(d)){H??=Fi({fieldDef:d,fieldDef2:m,markDef:y,config:k});let{bin:ae,timeUnit:ne,type:de}=d;if(Jt(ae)||H&&ne&&de===rs)return C?.impute?Ks(d,A,{binSuffix:"mid"},{offset:$}):H&&!zn(ee)?df({scaleName:A,fieldOrDatumDef:d,bandPosition:H,offset:$}):Ks(d,A,oc(d,s)?{binSuffix:"range"}:{},{offset:$});if($n(ae)){if(ze(m))return df({scaleName:A,fieldOrDatumDef:d,fieldOrDatumDef2:m,bandPosition:H,offset:$});$e(Kd(s===et?Xe:Ke))}}return Ks(d,A,zn(ee)?{binSuffix:"range"}:{},{offset:$,band:ee==="band"?H??d.bandPosition??.5:void 0})}if(ma(d)){let ee=$?{offset:$}:{};return{...Jl(s,d.value),...ee}}}return h.isFunction(j)&&(j=j()),j&&{...j,...$?{offset:$}:{}}}function Jl(l,s){return Y(["x","x2"],l)&&s==="width"?{field:{group:"width"}}:Y(["y","y2"],l)&&s==="height"?{field:{group:"height"}}:sn(s)}function Xs(l){return l&&l!=="number"&&l!=="time"}function cy(l,s,d){return`${l}(${s}${d?`, ${Be(d)}`:""})`}let Xk=" \u2013 ";function tm(l){let{fieldOrDatumDef:s,format:d,formatType:m,expr:y,normalizeStack:k,config:A}=l;if(Xs(m))return si({fieldOrDatumDef:s,format:d,formatType:m,expr:y,config:A});let R=uy(s,y,k),C=tc(s);if(d===void 0&&m===void 0&&A.customFormatTypes){if(C==="quantitative"){if(k&&A.normalizedNumberFormatType)return si({fieldOrDatumDef:s,format:A.normalizedNumberFormat,formatType:A.normalizedNumberFormatType,expr:y,config:A});if(A.numberFormatType)return si({fieldOrDatumDef:s,format:A.numberFormat,formatType:A.numberFormatType,expr:y,config:A})}if(C==="temporal"&&A.timeFormatType&&ze(s)&&s.timeUnit===void 0)return si({fieldOrDatumDef:s,format:A.timeFormat,formatType:A.timeFormatType,expr:y,config:A})}if(Dt(s)){let $=(function(j){let{field:H,timeUnit:ee,format:ae,formatType:ne,rawTimeFormat:de,isUTCScale:he}=j;return!ee||ae?!ee&&ne?`${ne}(${H}, '${ae}')`:(ae=h.isString(ae)?ae:de,`${he?"utc":"time"}Format(${H}, '${ae}')`):(function(ge,Ee,Se){if(!ge)return;let Re=Z0(ge);return`${Se||Zd(ge)?"utc":"time"}Format(${Ee}, ${Re})`})(ee,H,he)})({field:R,timeUnit:ze(s)?Un(s.timeUnit)?.unit:void 0,format:d,formatType:A.timeFormatType,rawTimeFormat:A.timeFormat,isUTCScale:$i(s)&&s.scale?.type===Vt.UTC});return $?{signal:$}:void 0}return d=ff({type:C,specifiedFormat:d,config:A,normalizeStack:k}),ze(s)&&Jt(s.bin)?{signal:yo(R,Ge(s,{expr:y,binSuffix:"end"}),d,m,A)}:d||tc(s)==="quantitative"?{signal:`${nm(R,d)}`}:{signal:`isValid(${R}) ? ${R} : ""+${R}`}}function uy(l,s,d){return ze(l)?d?`${Ge(l,{expr:s,suffix:"end"})}-${Ge(l,{expr:s,suffix:"start"})}`:Ge(l,{expr:s}):(function(m){let{datum:y}=m;return Gs(y)?js(y):`${Be(y)}`})(l)}function si(l){let{fieldOrDatumDef:s,format:d,formatType:m,expr:y,normalizeStack:k,config:A,field:R}=l;return R??=uy(s,y,k),R!=="datum.value"&&ze(s)&&Jt(s.bin)?{signal:yo(R,Ge(s,{expr:y,binSuffix:"end"}),d,m,A)}:{signal:cy(m,R,d)}}function dy(l,s,d,m,y,k){if(!h.isString(m)||!Xs(m)){if(d===void 0&&m===void 0&&y.customFormatTypes&&tc(l)==="quantitative"&&(y.normalizedNumberFormatType&&nc(l)&&l.stack==="normalize"||y.numberFormatType))return;if(nc(l)&&l.stack==="normalize"&&y.normalizedNumberFormat)return ff({type:"quantitative",config:y,normalizeStack:!0});if(Dt(l)){let A=ze(l)?Un(l.timeUnit)?.unit:void 0;return A===void 0&&y.customFormatTypes&&y.timeFormatType?void 0:(function(R){let{specifiedFormat:C,timeUnit:$,config:j,omitTimeFormatConfig:H}=R;return C||($?{signal:Z0($)}:H?void 0:j.timeFormat)})({specifiedFormat:d,timeUnit:A,config:y,omitTimeFormatConfig:k})}return ff({type:s,specifiedFormat:d,config:y})}}function fy(l,s,d){return l&&(Je(l)||l==="number"||l==="time")?l:Dt(s)&&d!=="time"&&d!=="utc"?ze(s)&&Un(s?.timeUnit)?.utc?"utc":"time":void 0}function ff(l){let{type:s,specifiedFormat:d,config:m,normalizeStack:y}=l;return h.isString(d)?d:s===bo?y?m.normalizedNumberFormat:m.numberFormat:void 0}function nm(l,s){return`format(${l}, "${s||""}")`}function rm(l,s,d,m){return Xs(d)?cy(d,l,s):nm(l,(h.isString(s)?s:void 0)??m.numberFormat)}function yo(l,s,d,m,y){if(d===void 0&&m===void 0&&y.customFormatTypes&&y.numberFormatType)return yo(l,s,y.numberFormat,y.numberFormatType,y);let k=rm(l,d,m,y),A=rm(s,d,m,y);return`${lu(l,!1)} ? "null" : ${k} + "${Xk}" + ${A}`}let fu="min",am={x:1,y:1,color:1,fill:1,stroke:1,strokeWidth:1,size:1,shape:1,fillOpacity:1,strokeOpacity:1,opacity:1,text:1};function pf(l){return l in am}function im(l){return!!l?.encoding}function li(l){return l&&(l.op==="count"||!!l.field)}function pu(l){return l&&h.isArray(l)}function Ql(l){return"row"in l||"column"in l}function hf(l){return!!l&&"header"in l}function hu(l){return"facet"in l}function om(l){let{field:s,timeUnit:d,bin:m,aggregate:y}=l;return{...d?{timeUnit:d}:{},...m?{bin:m}:{},...y?{aggregate:y}:{},field:s}}function Zs(l){return"sort"in l}function Fi(l){let{fieldDef:s,fieldDef2:d,markDef:m,config:y}=l;if(St(s)&&s.bandPosition!==void 0)return s.bandPosition;if(ze(s)){let{timeUnit:k,bin:A}=s;if(k&&!d)return jr("timeUnitBandPosition",m,y);if(Jt(A))return .5}}function sm(l){let{channel:s,fieldDef:d,fieldDef2:m,markDef:y,config:k,scaleType:A,useVlSizeChannel:R}=l,C=Sr(s),$=Yt(R?"size":C,y,k,{vgChannel:C});if($!==void 0)return $;if(ze(d)){let{timeUnit:j,bin:H}=d;if(j&&!m)return{band:jr("timeUnitBandSize",y,k)};if(Jt(H)&&!zn(A))return{band:1}}return du(y.type)?A?zn(A)?k[y.type]?.discreteBandSize||{band:1}:k[y.type]?.continuousBandSize:k[y.type]?.discreteBandSize:void 0}function mf(l,s,d,m){return!!(Jt(l.bin)||l.timeUnit&&hr(l)&&l.type==="temporal")&&Fi({fieldDef:l,fieldDef2:s,markDef:d,config:m})!==void 0}function py(l){return l&&!!l.sort&&!l.field}function gf(l){return l&&"condition"in l}function bf(l){let s=l?.condition;return!!s&&!h.isArray(s)&&ze(s)}function ec(l){let s=l?.condition;return!!s&&!h.isArray(s)&&St(s)}function ze(l){return l&&(!!l.field||l.aggregate==="count")}function tc(l){return l?.type}function Pi(l){return l&&"datum"in l}function is(l){return hr(l)&&!rc(l)||yf(l)}function hy(l){return hr(l)&&l.type==="quantitative"&&!l.bin||yf(l)}function yf(l){return Pi(l)&&h.isNumber(l.datum)}function St(l){return ze(l)||Pi(l)}function hr(l){return l&&("field"in l||l.aggregate==="count")&&"type"in l}function ma(l){return l&&"value"in l&&"value"in l}function $i(l){return l&&("scale"in l||"sort"in l)}function nc(l){return l&&("axis"in l||"stack"in l||"impute"in l)}function lm(l){return l&&"legend"in l}function cm(l){return l&&("format"in l||"formatType"in l)}function my(l){return K(l,["legend","axis","header","scale"])}function Ge(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},d=l.field,m=s.prefix,y=s.suffix,k="";if((function(A){return A.aggregate==="count"})(l))d=oa("count");else{let A;if(!s.nofn)if((function(R){return"op"in R})(l))A=l.op;else{let{bin:R,aggregate:C,timeUnit:$}=l;Jt(R)?(A=Oi(R),y=(s.binSuffix??"")+(s.suffix??"")):C?Ni(C)?(k=`["${d}"]`,d=`argmax_${C.argmax}`):ri(C)?(k=`["${d}"]`,d=`argmin_${C.argmin}`):A=String(C):$&&!Ua($)&&(A=(function(j){let{utc:H,...ee}=Un(j);return ee.unit?(H?"utc":"")+we(ee).map((ae=>me(`${ae==="unit"?"":`_${ae}_`}${ee[ae]}`))).join(""):(H?"utc":"")+"timeunit"+we(ee).map((ae=>me(`_${ae}_${ee[ae]}`))).join("")})($),y=(!["range","mid"].includes(s.binSuffix)&&s.binSuffix||"")+(s.suffix??""))}A&&(d=d?`${A}_${d}`:A)}return y&&(d=`${d}_${y}`),m&&(d=`${m}_${d}`),s.forAs?Pt(d):s.expr?Bt(d,s.expr)+k:Ot(d)+k}function rc(l){switch(l.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return ze(l)&&!!l.bin;case"temporal":return!1}throw new Error(qd(l.type))}let gy=(l,s)=>{switch(s.fieldTitle){case"plain":return l.field;case"functional":return(function(d){let{aggregate:m,bin:y,timeUnit:k,field:A}=d;if(Ni(m))return`${A} for argmax(${m.argmax})`;if(ri(m))return`${A} for argmin(${m.argmin})`;let R=k&&!Ua(k)?Un(k):void 0,C=m||R?.unit||R?.maxbins&&"timeunit"||Jt(y)&&"bin";return C?`${C.toUpperCase()}(${A})`:A})(l);default:return(function(d,m){let{field:y,bin:k,timeUnit:A,aggregate:R}=d;if(R==="count")return m.countTitle;if(Jt(k))return`${y} (binned)`;if(A&&!Ua(A)){let C=Un(A)?.unit;if(C)return`${y} (${su(C).join("-")})`}else if(R)return Ni(R)?`${y} for max ${R.argmax}`:ri(R)?`${y} for min ${R.argmin}`:`${wt(R)} of ${y}`;return y})(l,s)}},um=gy;function mu(l){um=l}function os(l,s,d){let{allowDisabling:m,includeDefault:y=!0}=d,k=vf(l)?.title;if(!ze(l))return k??l.title;let A=l,R=y?Ef(A,s):void 0;return m?Tt(k,A.title,R):k??A.title??R}function vf(l){return nc(l)&&l.axis?l.axis:lm(l)&&l.legend?l.legend:hf(l)&&l.header?l.header:void 0}function Ef(l,s){return um(l,s)}function Js(l){if(cm(l)){let{format:s,formatType:d}=l;return{format:s,formatType:d}}{let s=vf(l)??{},{format:d,formatType:m}=s;return{format:d,formatType:m}}}function ga(l){return ze(l)?l:bf(l)?l.condition:void 0}function mn(l){return St(l)?l:ec(l)?l.condition:void 0}function dm(l,s,d){let m=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return h.isString(l)||h.isNumber(l)||h.isBoolean(l)?($e((function(y,k,A){return`Channel ${y} is a ${k}. Converted to {value: ${Be(A)}}.`})(s,h.isString(l)?"string":h.isNumber(l)?"number":"boolean",l)),{value:l}):St(l)?wf(l,s,d,m):ec(l)?{...l,condition:wf(l.condition,s,d,m)}:l}function wf(l,s,d,m){if(cm(l)){let{format:y,formatType:k,...A}=l;if(Xs(k)&&!d.customFormatTypes)return $e(Hd(s)),wf(A,s,d,m)}else{let y=nc(l)?"axis":lm(l)?"legend":hf(l)?"header":null;if(y&&l[y]){let{format:k,formatType:A,...R}=l[y];if(Xs(A)&&!d.customFormatTypes)return $e(Hd(s)),wf({...l,[y]:R},s,d,m)}}return ze(l)?ac(l,s,m):(function(y){let k=y.type;if(k)return y;let{datum:A}=y;return k=h.isNumber(A)?"quantitative":h.isString(A)?"nominal":Gs(A)?"temporal":void 0,{...y,type:k}})(l)}function ac(l,s){let{compositeMark:d=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{aggregate:m,timeUnit:y,bin:k,field:A}=l,R={...l};if(d||!m||En(m)||Ni(m)||ri(m)||($e((function(C){return`Invalid aggregation operator "${C}".`})(m)),delete R.aggregate),y&&(R.timeUnit=Un(y)),A&&(R.field=`${A}`),Jt(k)&&(R.bin=ut(k,s)),$n(k)&&!un(s)&&$e((function(C){return`Channel ${C} should not be used with "binned" bin.`})(s)),hr(R)){let{type:C}=R,$=(function(j){if(j)switch(j=j.toLowerCase()){case"q":case bo:return"quantitative";case"t":case rs:return"temporal";case"o":case rf:return"ordinal";case"n":case af:return"nominal";case Vs:return"geojson"}})(C);C!==$&&(R.type=$),C!=="quantitative"&&Ii(m)&&($e((function(j,H){return`Invalid field type "${j}" for aggregate: "${H}", using "quantitative" instead.`})(C,m)),R.type="quantitative")}else if(!Ti(s)){let C=(function($,j){switch(j){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(Zs($)&&h.isArray($.sort))return"ordinal";let{aggregate:H,bin:ee,timeUnit:ae}=$;if(ae)return"temporal";if(ee||H&&!Ni(H)&&!ri(H))return"quantitative";if($i($)&&$.scale?.type)switch(Wh[$.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"})(R,s);R.type=C}if(hr(R)){let{compatible:C,warning:$}=(function(j,H){let ee=j.type;if(ee==="geojson"&&H!=="shape")return{compatible:!1,warning:`Channel ${H} should not be used with a geojson data.`};switch(H){case We:case at:case Lt:return rc(j)?Qs:{compatible:!1,warning:Ph(H)};case et:case nt:case Ze:case on:case Fe:case xr:case ei:case Pl:case po:case Xc:case ti:case ft:case $l:case Ur:case la:case lt:case Fd:return Qs;case Br:case ca:case ot:case ur:return ee!==bo?{compatible:!1,warning:`Channel ${H} should be used with a quantitative field only, not ${j.type} field.`}:Qs;case Si:case Ut:case Ai:case fo:case xi:case uo:case Sn:case Xe:case Ke:return ee!=="nominal"||j.sort?Qs:{compatible:!1,warning:`Channel ${H} should not be used with an unsorted discrete field.`};case vn:case Zo:return rc(j)||$i(ae=j)&&Zl(ae.scale?.type)?Qs:{compatible:!1,warning:G0(H)};case Bs:return j.type!=="nominal"||"sort"in j?Qs:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}var ae})(R,s)||{};C===!1&&$e($)}if(Zs(R)&&h.isString(R.sort)){let{sort:C}=R;if(pf(C))return{...R,sort:{encoding:C}};let $=C.substr(1);if(C.charAt(0)==="-"&&pf($))return{...R,sort:{encoding:$,order:"descending"}}}if(hf(R)){let{header:C}=R;if(C){let{orient:$,...j}=C;if($)return{...R,header:{...j,labelOrient:C.labelOrient||$,titleOrient:C.titleOrient||$}}}}return R}function ut(l,s){return h.isBoolean(l)?{maxbins:ru(s)}:l==="binned"?{binned:!0}:l.maxbins||l.step?l:{...l,maxbins:ru(s)}}let Qs={compatible:!0};function Dt(l){let{formatType:s}=Js(l);return s==="time"||!s&&(d=l)&&(d.type==="temporal"||ze(d)&&!!d.timeUnit);var d}function ic(l,s){let{timeUnit:d,type:m,wrapTime:y,undefinedIfExprNotRequired:k}=s,A=d&&Un(d)?.unit,R,C=A||m==="temporal";return es(l)?R=l.expr:Je(l)?R=l.signal:Gs(l)?(C=!0,R=js(l)):(h.isString(l)||h.isNumber(l))&&C&&(R=`datetime(${Be(l)})`,(function($){return!!K0[$]})(A)&&(h.isNumber(l)&&l<1e4||h.isString(l)&&isNaN(Date.parse(l)))&&(R=js({[A]:l}))),R?y&&C?`time(${R})`:R:k?void 0:Be(l)}function gu(l,s){let{type:d}=l;return s.map((m=>{let y=ic(m,{timeUnit:ze(l)&&!Ua(l.timeUnit)?l.timeUnit:void 0,type:d,undefinedIfExprNotRequired:!0});return y!==void 0?{signal:y}:m}))}function oc(l,s){return Jt(l.bin)?Fa(s)&&["ordinal","nominal"].includes(l.type):(console.warn("Only call this method for binned field defs."),!1)}let ss={labelAlign:{part:"labels",vgProp:"align"},labelBaseline:{part:"labels",vgProp:"baseline"},labelColor:{part:"labels",vgProp:"fill"},labelFont:{part:"labels",vgProp:"font"},labelFontSize:{part:"labels",vgProp:"fontSize"},labelFontStyle:{part:"labels",vgProp:"fontStyle"},labelFontWeight:{part:"labels",vgProp:"fontWeight"},labelOpacity:{part:"labels",vgProp:"opacity"},labelOffset:null,labelPadding:null,gridColor:{part:"grid",vgProp:"stroke"},gridDash:{part:"grid",vgProp:"strokeDash"},gridDashOffset:{part:"grid",vgProp:"strokeDashOffset"},gridOpacity:{part:"grid",vgProp:"opacity"},gridWidth:{part:"grid",vgProp:"strokeWidth"},tickColor:{part:"ticks",vgProp:"stroke"},tickDash:{part:"ticks",vgProp:"strokeDash"},tickDashOffset:{part:"ticks",vgProp:"strokeDashOffset"},tickOpacity:{part:"ticks",vgProp:"opacity"},tickSize:null,tickWidth:{part:"ticks",vgProp:"strokeWidth"}};function sc(l){return l?.condition}let ls=["domain","grid","labels","ticks","title"],kf={grid:"grid",gridCap:"grid",gridColor:"grid",gridDash:"grid",gridDashOffset:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",aria:"main",description:"main",domain:"main",domainCap:"main",domainColor:"main",domainDash:"main",domainDashOffset:"main",domainOpacity:"main",domainWidth:"main",format:"main",formatType:"main",labelAlign:"main",labelAngle:"main",labelBaseline:"main",labelBound:"main",labelColor:"main",labelFlush:"main",labelFlushOffset:"main",labelFont:"main",labelFontSize:"main",labelFontStyle:"main",labelFontWeight:"main",labelLimit:"main",labelLineHeight:"main",labelOffset:"main",labelOpacity:"main",labelOverlap:"main",labelPadding:"main",labels:"main",labelSeparation:"main",maxExtent:"main",minExtent:"main",offset:"both",position:"main",tickCap:"main",tickColor:"main",tickDash:"main",tickDashOffset:"main",tickMinStep:"both",tickOffset:"both",tickOpacity:"main",tickRound:"both",ticks:"main",tickSize:"main",tickWidth:"both",title:"main",titleAlign:"main",titleAnchor:"main",titleAngle:"main",titleBaseline:"main",titleColor:"main",titleFont:"main",titleFontSize:"main",titleFontStyle:"main",titleFontWeight:"main",titleLimit:"main",titleLineHeight:"main",titleOpacity:"main",titlePadding:"main",titleX:"main",titleY:"main",encode:"both",scale:"both",tickBand:"both",tickCount:"both",tickExtra:"both",translate:"both",values:"both",zindex:"both"},bu={orient:1,aria:1,bandPosition:1,description:1,domain:1,domainCap:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridCap:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelLineHeight:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickBand:1,tickCap:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,translate:1,values:1,zindex:1},Zk={...bu,style:1,labelExpr:1,encoding:1};function by(l){return!!Zk[l]}let Qt=we({axis:1,axisBand:1,axisBottom:1,axisDiscrete:1,axisLeft:1,axisPoint:1,axisQuantitative:1,axisRight:1,axisTemporal:1,axisTop:1,axisX:1,axisXBand:1,axisXDiscrete:1,axisXPoint:1,axisXQuantitative:1,axisXTemporal:1,axisY:1,axisYBand:1,axisYDiscrete:1,axisYPoint:1,axisYQuantitative:1,axisYTemporal:1});function Bi(l){return"mark"in l}class _f{constructor(s,d){this.name=s,this.run=d}hasMatchingType(s){return!!Bi(s)&&(Li(d=s.mark)?d.type:d)===this.name;var d}}function Ui(l,s){let d=l&&l[s];return!!d&&(h.isArray(d)?te(d,(m=>!!m.field)):ze(d)||bf(d))}function vo(l,s){let d=l&&l[s];return!!d&&(h.isArray(d)?te(d,(m=>!!m.field)):ze(d)||Pi(d)||ec(d))}function yy(l,s){if(un(s)){let d=l[s];if((ze(d)||Pi(d))&&(Yl(d.type)||ze(d)&&d.timeUnit))return vo(l,Ul(s))}return!1}function fm(l){return te(x0,(s=>{if(Ui(l,s)){let d=l[s];if(h.isArray(d))return te(d,(m=>!!m.aggregate));{let m=ga(d);return m&&!!m.aggregate}}return!1}))}function vy(l,s){let d=[],m=[],y=[],k=[],A={};return yu(l,((R,C)=>{if(ze(R)){let{field:$,aggregate:j,bin:H,timeUnit:ee,...ae}=R;if(j||ee||H){let ne=vf(R),de=ne?.title,he=Ge(R,{forAs:!0}),ge={...de?[]:{title:os(R,s,{allowDisabling:!0})},...ae,field:he};if(j){let Ee;if(Ni(j)?(Ee="argmax",he=Ge({op:"argmax",field:j.argmax},{forAs:!0}),ge.field=`${he}.${$}`):ri(j)?(Ee="argmin",he=Ge({op:"argmin",field:j.argmin},{forAs:!0}),ge.field=`${he}.${$}`):j!=="boxplot"&&j!=="errorbar"&&j!=="errorband"&&(Ee=j),Ee){let Se={op:Ee,as:he};$&&(Se.field=$),k.push(Se)}}else if(d.push(he),hr(R)&&Jt(H)){if(m.push({bin:H,field:$,as:he}),d.push(Ge(R,{binSuffix:"end"})),oc(R,C)&&d.push(Ge(R,{binSuffix:"range"})),un(C)){let Ee={field:`${he}_end`};A[`${C}2`]=Ee}ge.bin="binned",Ti(C)||(ge.type=bo)}else if(ee&&!Ua(ee)){y.push({timeUnit:ee,field:$,as:he});let Ee=hr(R)&&R.type!==rs&&"time";Ee&&(C===Pl||C===ti?ge.formatType=Ee:(function(Se){return!!Ci[Se]})(C)?ge.legend={formatType:Ee,...ge.legend}:un(C)&&(ge.axis={formatType:Ee,...ge.axis}))}A[C]=ge}else d.push($),A[C]=l[C]}else A[C]=l[C]})),{bins:m,timeUnits:y,aggregate:k,groupby:d,encoding:A}}function xf(l,s,d){let m=Oh(s,d);if(!m)return!1;if(m==="binned"){let y=l[s===Xe?et:nt];return!!(ze(y)&&ze(l[s])&&$n(y.bin))}return!0}function ci(l,s){let d={};for(let m of we(l)){let y=dm(l[m],m,s,{compositeMark:!0});d[m]=y}return d}function yu(l,s,d){if(l)for(let m of we(l)){let y=l[m];if(h.isArray(y))for(let k of y)s.call(d,k,m);else s.call(d,y,m)}}function pm(l,s){return we(s).reduce(((d,m)=>{switch(m){case et:case nt:case ft:case Fd:case $l:case Xe:case Ke:case Ze:case on:case la:case uo:case lt:case Sn:case ot:case Br:case ur:case ca:case Pl:case vn:case Ur:case ti:return d;case Bs:if(l==="line"||l==="trail")return d;case po:case Xc:{let y=s[m];if(h.isArray(y)||ze(y))for(let k of h.array(y))k.aggregate||d.push(Ge(k,{}));return d}case xi:if(l==="trail")return d;case Fe:case xr:case ei:case Si:case Ut:case Ai:case Zo:case fo:{let y=ga(s[m]);return y&&!y.aggregate&&d.push(Ge(y,{})),d}}}),[])}function lc(l,s,d){let m=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3];return"tooltip"in d?{tooltip:d.tooltip}:{tooltip:[...l.map((y=>{let{fieldPrefix:k,titlePrefix:A}=y,R=m?` of ${vu(s)}`:"";return{field:k+s.field,type:s.type,title:Je(A)?{signal:`${A}"${escape(R)}"`}:A+R}})),...be((function(y){let k=[];for(let A of we(y))if(Ui(y,A)){let R=y[A],C=h.array(R);for(let $ of C)ze($)?k.push($):bf($)&&k.push($.condition)}return k})(d).map(my),V)]}}function vu(l){let{title:s,field:d}=l;return Tt(s,d)}function Sf(l,s,d,m,y){let{scale:k,axis:A}=d;return R=>{let{partName:C,mark:$,positionPrefix:j,endPositionPrefix:H,extraEncoding:ee={}}=R,ae=vu(d);return Af(l,C,y,{mark:$,encoding:{[s]:{field:`${j}_${d.field}`,type:d.type,...ae!==void 0?{title:ae}:{},...k!==void 0?{scale:k}:{},...A!==void 0?{axis:A}:{}},...h.isString(H)?{[`${s}2`]:{field:`${H}_${d.field}`}}:{},...m,...ee}})}}function Af(l,s,d,m){let{clip:y,color:k,opacity:A}=l,R=l.type;return l[s]||l[s]===void 0&&d[s]?[{...m,mark:{...d[s],...y?{clip:y}:{},...k?{color:k}:{},...A?{opacity:A}:{},...Li(m.mark)?m.mark:{type:m.mark},style:`${R}-${String(s)}`,...h.isBoolean(l[s])?{}:l[s]}}]:[]}function Ey(l,s,d){let{encoding:m}=l,y=s==="vertical"?"y":"x",k=m[y],A=m[`${y}2`],R=m[`${y}Error`],C=m[`${y}Error2`];return{continuousAxisChannelDef:Eu(k,d),continuousAxisChannelDef2:Eu(A,d),continuousAxisChannelDefError:Eu(R,d),continuousAxisChannelDefError2:Eu(C,d),continuousAxis:y}}function Eu(l,s){if(l?.aggregate){let{aggregate:d,...m}=l;return d!==s&&$e((function(y,k){return`Continuous axis should not have customized aggregation function ${y}; ${k} already agregates the axis.`})(d,s)),m}return l}function el(l,s){let{mark:d,encoding:m}=l,{x:y,y:k}=m;if(Li(d)&&d.orient)return d.orient;if(is(y)){if(is(k)){let A=ze(y)&&y.aggregate,R=ze(k)&&k.aggregate;if(A||R!==s){if(R||A!==s){if(A===s&&R===s)throw new Error("Both x and y cannot have aggregate");return Dt(k)&&!Dt(y)?"horizontal":"vertical"}return"horizontal"}return"vertical"}return"horizontal"}if(is(k))return"vertical";throw new Error(`Need a valid continuous axis for ${s}s`)}let cs="boxplot",Te=new _f(cs,hm);function tl(l){return h.isNumber(l)?"tukey":l}function hm(l,s){let{config:d}=s;l={...l,encoding:ci(l.encoding,d)};let{mark:m,encoding:y,params:k,projection:A,...R}=l,C=Li(m)?m:{type:m};k&&$e(Hr("boxplot"));let $=C.extent??d.boxplot.extent,j=Yt("size",C,d),H=C.invalid,ee=tl($),{bins:ae,timeUnits:ne,transform:de,continuousAxisChannelDef:he,continuousAxis:ge,groupby:Ee,aggregate:Se,encodingWithoutContinuousAxis:Re,ticksOrient:Pe,boxOrient:qe,customTooltipWithoutAggregatedField:st}=(function(ld,nb,Mo){let Rc=el(ld,cs),{continuousAxisChannelDef:rb,continuousAxis:ab}=Ey(ld,Rc,cs),bn=rb.field,Ss=tl(nb),cd=[...mm(bn),{op:"median",field:bn,as:`mid_box_${bn}`},{op:"min",field:bn,as:(Ss==="min-max"?"lower_whisker_":"min_")+bn},{op:"max",field:bn,as:(Ss==="min-max"?"upper_whisker_":"max_")+bn}],Dp=Ss==="min-max"||Ss==="tukey"?[]:[{calculate:`datum["upper_box_${bn}"] - datum["lower_box_${bn}"]`,as:`iqr_${bn}`},{calculate:`min(datum["upper_box_${bn}"] + datum["iqr_${bn}"] * ${nb}, datum["max_${bn}"])`,as:`upper_whisker_${bn}`},{calculate:`max(datum["lower_box_${bn}"] - datum["iqr_${bn}"] * ${nb}, datum["min_${bn}"])`,as:`lower_whisker_${bn}`}],{[ab]:iT,...x_}=ld.encoding,{customTooltipWithoutAggregatedField:S_,filteredEncoding:A_}=(function(Cn){let{tooltip:Lo,...vl}=Cn;if(!Lo)return{filteredEncoding:vl};let El,ro;if(h.isArray(Lo)){for(let wl of Lo)wl.aggregate?(El||(El=[]),El.push(wl)):(ro||(ro=[]),ro.push(wl));El&&(vl.tooltip=El)}else Lo.aggregate?vl.tooltip=Lo:ro=Lo;return h.isArray(ro)&&ro.length===1&&(ro=ro[0]),{customTooltipWithoutAggregatedField:ro,filteredEncoding:vl}})(x_),{bins:Cv,timeUnits:Nv,aggregate:Iv,groupby:Mp,encoding:Cc}=vy(A_,Mo),Ov=Rc==="vertical"?"horizontal":"vertical",Dv=Rc,ib=[...Cv,...Nv,{aggregate:[...Iv,...cd],groupby:Mp},...Dp];return{bins:Cv,timeUnits:Nv,transform:ib,groupby:Mp,aggregate:Iv,continuousAxisChannelDef:rb,continuousAxis:ab,encodingWithoutContinuousAxis:Cc,ticksOrient:Ov,boxOrient:Dv,customTooltipWithoutAggregatedField:S_}})(l,$,d),{color:mt,size:it,...Qe}=Re,Ct=ld=>Sf(C,ge,he,ld,d.boxplot),Ht=Ct(Qe),Mn=Ct(Re),wn=Ct({...Qe,...it?{size:it}:{}}),kn=lc([{fieldPrefix:ee==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:ee==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],he,Re),qt={type:"tick",color:"black",opacity:1,orient:Pe,invalid:H,aria:!1},Ft=ee==="min-max"?kn:lc([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],he,Re),gn=[...Ht({partName:"rule",mark:{type:"rule",invalid:H,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:Ft}),...Ht({partName:"rule",mark:{type:"rule",invalid:H,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:Ft}),...Ht({partName:"ticks",mark:qt,positionPrefix:"lower_whisker",extraEncoding:Ft}),...Ht({partName:"ticks",mark:qt,positionPrefix:"upper_whisker",extraEncoding:Ft})],Rn=[...ee!=="tukey"?gn:[],...Mn({partName:"box",mark:{type:"bar",...j?{size:j}:{},orient:qe,invalid:H,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:kn}),...wn({partName:"median",mark:{type:"tick",invalid:H,...h.isObject(d.boxplot.median)&&d.boxplot.median.color?{color:d.boxplot.median.color}:{},...j?{size:j}:{},orient:Pe,aria:!1},positionPrefix:"mid_box",extraEncoding:kn})];if(ee==="min-max")return{...R,transform:(R.transform??[]).concat(de),layer:Rn};let fn=`datum["lower_box_${he.field}"]`,Or=`datum["upper_box_${he.field}"]`,Dr=`(${Or} - ${fn})`,qa=`${fn} - ${$} * ${Dr}`,Vn=`${Or} + ${$} * ${Dr}`,or=`datum["${he.field}"]`,ln={joinaggregate:mm(he.field),groupby:Ee},At={transform:[{filter:`(${qa} <= ${or}) && (${or} <= ${Vn})`},{aggregate:[{op:"min",field:he.field,as:`lower_whisker_${he.field}`},{op:"max",field:he.field,as:`upper_whisker_${he.field}`},{op:"min",field:`lower_box_${he.field}`,as:`lower_box_${he.field}`},{op:"max",field:`upper_box_${he.field}`,as:`upper_box_${he.field}`},...Se],groupby:Ee}],layer:gn},{tooltip:Zr,...xs}=Qe,{scale:no,axis:Tc}=he,Jr=vu(he),Ea=K(Tc,["title"]),mr=Af(C,"outliers",d.boxplot,{transform:[{filter:`(${or} < ${qa}) || (${or} > ${Vn})`}],mark:"point",encoding:{[ge]:{field:he.field,type:he.type,...Jr!==void 0?{title:Jr}:{},...no!==void 0?{scale:no}:{},...ye(Ea)?{}:{axis:Ea}},...xs,...mt?{color:mt}:{},...st?{tooltip:st}:{}}})[0],yi,Do=[...ae,...ne,ln];return mr?yi={transform:Do,layer:[mr,At]}:(yi=At,yi.transform.unshift(...Do)),{...R,layer:[yi,{transform:de,layer:Rn}]}}function mm(l){return[{op:"q1",field:l,as:`lower_box_${l}`},{op:"q3",field:l,as:`upper_box_${l}`}]}let Tf="errorbar",gm=new _f(Tf,Rf);function Rf(l,s){let{config:d}=s;l={...l,encoding:ci(l.encoding,d)};let{transform:m,continuousAxisChannelDef:y,continuousAxis:k,encodingWithoutContinuousAxis:A,ticksOrient:R,markDef:C,outerSpec:$,tooltipEncoding:j}=ym(l,Tf,d);delete A.size;let H=Sf(C,k,y,A,d.errorbar),ee=C.thickness,ae=C.size,ne={type:"tick",orient:R,aria:!1,...ee!==void 0?{thickness:ee}:{},...ae!==void 0?{size:ae}:{}},de=[...H({partName:"ticks",mark:ne,positionPrefix:"lower",extraEncoding:j}),...H({partName:"ticks",mark:ne,positionPrefix:"upper",extraEncoding:j}),...H({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...ee!==void 0?{size:ee}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:j})];return{...$,transform:m,...de.length>1?{layer:de}:{...de[0]}}}function bm(l,s){let{encoding:d}=l;if((function(R){return(St(R.x)||St(R.y))&&!St(R.x2)&&!St(R.y2)&&!St(R.xError)&&!St(R.xError2)&&!St(R.yError)&&!St(R.yError2)})(d))return{orient:el(l,s),inputType:"raw"};let m=(function(R){return St(R.x2)||St(R.y2)})(d),y=(function(R){return St(R.xError)||St(R.xError2)||St(R.yError)||St(R.yError2)})(d),k=d.x,A=d.y;if(m){if(y)throw new Error(`${s} cannot be both type aggregated-upper-lower and aggregated-error`);let R=d.x2,C=d.y2;if(St(R)&&St(C))throw new Error(`${s} cannot have both x2 and y2`);if(St(R)){if(is(k))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${s}`)}if(St(C)){if(is(A))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${s}`)}throw new Error("No ranged axis")}{let R=d.xError,C=d.xError2,$=d.yError,j=d.yError2;if(St(C)&&!St(R))throw new Error(`${s} cannot have xError2 without xError`);if(St(j)&&!St($))throw new Error(`${s} cannot have yError2 without yError`);if(St(R)&&St($))throw new Error(`${s} cannot have both xError and yError with both are quantiative`);if(St(R)){if(is(k))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(St($)){if(is(A))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}}function ym(l,s,d){let{mark:m,encoding:y,params:k,projection:A,...R}=l,C=Li(m)?m:{type:m};k&&$e(Hr(s));let{orient:$,inputType:j}=bm(l,s),{continuousAxisChannelDef:H,continuousAxisChannelDef2:ee,continuousAxisChannelDefError:ae,continuousAxisChannelDefError2:ne,continuousAxis:de}=Ey(l,$,s),{errorBarSpecificAggregate:he,postAggregateCalculates:ge,tooltipSummary:Ee,tooltipTitleWithFieldName:Se}=(function(Ft,gn,Rn,fn,Or,Dr,qa,Vn){let or=[],ln=[],At=gn.field,Zr,xs=!1;if(Dr==="raw"){let Jr=Ft.center?Ft.center:Ft.extent?Ft.extent==="iqr"?"median":"mean":Vn.errorbar.center,Ea=Ft.extent?Ft.extent:Jr==="mean"?"stderr":"iqr";if(Jr==="median"!=(Ea==="iqr")&&$e((function(mr,yi,Do){return`${mr} is not usually used with ${yi} for ${Do}.`})(Jr,Ea,qa)),Ea==="stderr"||Ea==="stdev")or=[{op:Ea,field:At,as:`extent_${At}`},{op:Jr,field:At,as:`center_${At}`}],ln=[{calculate:`datum["center_${At}"] + datum["extent_${At}"]`,as:`upper_${At}`},{calculate:`datum["center_${At}"] - datum["extent_${At}"]`,as:`lower_${At}`}],Zr=[{fieldPrefix:"center_",titlePrefix:wt(Jr)},{fieldPrefix:"upper_",titlePrefix:vm(Jr,Ea,"+")},{fieldPrefix:"lower_",titlePrefix:vm(Jr,Ea,"-")}],xs=!0;else{let mr,yi,Do;Ea==="ci"?(mr="mean",yi="ci0",Do="ci1"):(mr="median",yi="q1",Do="q3"),or=[{op:yi,field:At,as:`lower_${At}`},{op:Do,field:At,as:`upper_${At}`},{op:mr,field:At,as:`center_${At}`}],Zr=[{fieldPrefix:"upper_",titlePrefix:os({field:At,aggregate:Do,type:"quantitative"},Vn,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:os({field:At,aggregate:yi,type:"quantitative"},Vn,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:os({field:At,aggregate:mr,type:"quantitative"},Vn,{allowDisabling:!1})}]}}else{(Ft.center||Ft.extent)&&$e((no=Ft.center,`${(Tc=Ft.extent)?"extent ":""}${Tc&&no?"and ":""}${no?"center ":""}${Tc&&no?"are ":"is "}not needed when data are aggregated.`)),Dr==="aggregated-upper-lower"?(Zr=[],ln=[{calculate:`datum["${Rn.field}"]`,as:`upper_${At}`},{calculate:`datum["${At}"]`,as:`lower_${At}`}]):Dr==="aggregated-error"&&(Zr=[{fieldPrefix:"",titlePrefix:At}],ln=[{calculate:`datum["${At}"] + datum["${fn.field}"]`,as:`upper_${At}`}],Or?ln.push({calculate:`datum["${At}"] + datum["${Or.field}"]`,as:`lower_${At}`}):ln.push({calculate:`datum["${At}"] - datum["${fn.field}"]`,as:`lower_${At}`}));for(let Jr of ln)Zr.push({fieldPrefix:Jr.as.substring(0,6),titlePrefix:_t(_t(Jr.calculate,'datum["',""),'"]',"")})}var no,Tc;return{postAggregateCalculates:ln,errorBarSpecificAggregate:or,tooltipSummary:Zr,tooltipTitleWithFieldName:xs}})(C,H,ee,ae,ne,j,s,d),{[de]:Re,[de==="x"?"x2":"y2"]:Pe,[de==="x"?"xError":"yError"]:qe,[de==="x"?"xError2":"yError2"]:st,...mt}=y,{bins:it,timeUnits:Qe,aggregate:Ct,groupby:Ht,encoding:Mn}=vy(mt,d),wn=[...Ct,...he],kn=j!=="raw"?[]:Ht,qt=lc(Ee,H,Mn,Se);return{transform:[...R.transform??[],...it,...Qe,...wn.length===0?[]:[{aggregate:wn,groupby:kn}],...ge],groupby:kn,continuousAxisChannelDef:H,continuousAxis:de,encodingWithoutContinuousAxis:Mn,ticksOrient:$==="vertical"?"horizontal":"vertical",markDef:C,outerSpec:R,tooltipEncoding:qt}}function vm(l,s,d){return`${wt(l)} ${d} ${s}`}let Cf="errorband",wy=new _f(Cf,ky);function ky(l,s){let{config:d}=s;l={...l,encoding:ci(l.encoding,d)};let{transform:m,continuousAxisChannelDef:y,continuousAxis:k,encodingWithoutContinuousAxis:A,markDef:R,outerSpec:C,tooltipEncoding:$}=ym(l,Cf,d),j=R,H=Sf(j,k,y,A,d.errorband),ee=l.encoding.x!==void 0&&l.encoding.y!==void 0,ae={type:ee?"area":"rect"},ne={type:ee?"line":"rule"},de={...j.interpolate?{interpolate:j.interpolate}:{},...j.tension&&j.interpolate?{tension:j.tension}:{}};return ee?(ae={...ae,...de,ariaRoleDescription:"errorband"},ne={...ne,...de,aria:!1}):j.interpolate?$e(Yd("interpolate")):j.tension&&$e(Yd("tension")),{...C,transform:m,layer:[...H({partName:"band",mark:ae,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:$}),...H({partName:"borders",mark:ne,positionPrefix:"lower",extraEncoding:$}),...H({partName:"borders",mark:ne,positionPrefix:"upper",extraEncoding:$})]}}let cc={};function uc(l,s,d){let m=new _f(l,s);cc[l]={normalizer:m,parts:d}}uc(cs,hm,["box","median","outliers","rule","ticks"]),uc(Tf,Rf,["ticks","rule"]),uc(Cf,ky,["band","borders"]);let Em=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],wu={titleAlign:"align",titleAnchor:"anchor",titleAngle:"angle",titleBaseline:"baseline",titleColor:"color",titleFont:"font",titleFontSize:"fontSize",titleFontStyle:"fontStyle",titleFontWeight:"fontWeight",titleLimit:"limit",titleLineHeight:"lineHeight",titleOrient:"orient",titlePadding:"offset"},ku={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelBaseline:"baseline",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelLimit:"limit",labelLineHeight:"lineHeight",labelOrient:"orient",labelPadding:"offset"},wm=we(wu),km=we(ku),Nf=we({header:1,headerRow:1,headerColumn:1,headerFacet:1}),If=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],ba="_vgsid_",_m={point:{on:"click",fields:[ba],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[pointerdown, window:pointerup] > window:pointermove!",encodings:["x","y"],translate:"[pointerdown, window:pointerup] > window:pointermove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function Of(l){return l==="legend"||!!l?.legend}function Df(l){return Of(l)&&h.isObject(l)}function _u(l){return!!l?.select}function Mf(l){let s=[];for(let d of l||[]){if(_u(d))continue;let{expr:m,bind:y,...k}=d;if(y&&m){let A={...k,bind:y,init:m};s.push(A)}else{let A={...k,...m?{update:m}:{},...y?{bind:y}:{}};s.push(A)}}return s}function xu(l){return"concat"in l}function dc(l){return"vconcat"in l}function Lf(l){return"hconcat"in l}function Ff(l){let{step:s,offsetIsDiscrete:d}=l;return d?s.for??"offset":"position"}function Wr(l){return h.isObject(l)&&l.step!==void 0}function Su(l){return l.view||l.width||l.height}let Au=we({align:1,bounds:1,center:1,columns:1,spacing:1});function us(l,s){return l[s]??l[s==="width"?"continuousWidth":"continuousHeight"]}function fc(l,s){let d=Tu(l,s);return Wr(d)?d.step:xm}function Tu(l,s){return Tt(l[s]??l[s==="width"?"discreteWidth":"discreteHeight"],{step:l.step})}let xm=20,_y={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:xm},mark:{color:"#4c78a8",invalid:"filter",timeUnitBandSize:1},arc:{},area:{},bar:Yk,circle:{},geoshape:{},image:{},line:{},point:{},rect:ly,rule:{color:"black"},square:{},text:{color:"black"},tick:{thickness:1},trail:{},boxplot:{size:14,extent:1.5,box:{},median:{color:"white"},outliers:{},rule:{},ticks:null},errorbar:{center:"mean",rule:!0,ticks:!1},errorband:{band:{opacity:.3},borders:!1},scale:{pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,bandWithNestedOffsetPaddingInner:.2,bandWithNestedOffsetPaddingOuter:.2,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:9,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4,zero:!0},projection:{},legend:{gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:_m,style:{},title:{},facet:{spacing:20},concat:{spacing:20},normalizedNumberFormat:".0%"},ui=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],Sm={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},xy={blue:ui[0],orange:ui[1],red:ui[2],teal:ui[3],green:ui[4],yellow:ui[5],purple:ui[6],pink:ui[7],brown:ui[8],gray0:"#000",gray1:"#111",gray2:"#222",gray3:"#333",gray4:"#444",gray5:"#555",gray6:"#666",gray7:"#777",gray8:"#888",gray9:"#999",gray10:"#aaa",gray11:"#bbb",gray12:"#ccc",gray13:"#ddd",gray14:"#eee",gray15:"#fff"};function Am(l){let s=we(l||{}),d={};for(let m of s){let y=l[m];d[m]=sc(y)?L0(y):Bn(y)}return d}let Sy=[...Zh,...Qt,...Nf,"background","padding","legend","lineBreak","scale","style","title","view"];function Tm(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{color:s,font:d,fontSize:m,selection:y,...k}=l,A=h.mergeConfig({},U(_y),d?(function(C){return{text:{font:C},style:{"guide-label":{font:C},"guide-title":{font:C},"group-title":{font:C},"group-subtitle":{font:C}}}})(d):{},s?(function(){let C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return{signals:[{name:"color",value:h.isObject(C)?{...xy,...C}:xy}],mark:{color:{signal:"color.blue"}},rule:{color:{signal:"color.gray0"}},text:{color:{signal:"color.gray0"}},style:{"guide-label":{fill:{signal:"color.gray0"}},"guide-title":{fill:{signal:"color.gray0"}},"group-title":{fill:{signal:"color.gray0"}},"group-subtitle":{fill:{signal:"color.gray0"}},cell:{stroke:{signal:"color.gray8"}}},axis:{domainColor:{signal:"color.gray13"},gridColor:{signal:"color.gray8"},tickColor:{signal:"color.gray13"}},range:{category:[{signal:"color.blue"},{signal:"color.orange"},{signal:"color.red"},{signal:"color.teal"},{signal:"color.green"},{signal:"color.yellow"},{signal:"color.purple"},{signal:"color.pink"},{signal:"color.brown"},{signal:"color.grey8"}]}}})(s):{},m?(function(C){return{signals:[{name:"fontSize",value:h.isObject(C)?{...Sm,...C}:Sm}],text:{fontSize:{signal:"fontSize.text"}},style:{"guide-label":{fontSize:{signal:"fontSize.guideLabel"}},"guide-title":{fontSize:{signal:"fontSize.guideTitle"}},"group-title":{fontSize:{signal:"fontSize.groupTitle"}},"group-subtitle":{fontSize:{signal:"fontSize.groupSubtitle"}}}}})(m):{},k||{});y&&h.writeConfig(A,"selection",y,!0);let R=K(A,Sy);for(let C of["background","lineBreak","padding"])A[C]&&(R[C]=Bn(A[C]));for(let C of Zh)A[C]&&(R[C]=Jn(A[C]));for(let C of Qt)A[C]&&(R[C]=Am(A[C]));for(let C of Nf)A[C]&&(R[C]=Jn(A[C]));return A.legend&&(R.legend=Jn(A.legend)),A.scale&&(R.scale=Jn(A.scale)),A.style&&(R.style=(function(C){let $=we(C),j={};for(let H of $)j[H]=Am(C[H]);return j})(A.style)),A.title&&(R.title=Jn(A.title)),A.view&&(R.view=Jn(A.view)),R}let Jk=new Set(["view",...qk]),Qk=["color","fontSize","background","padding","facet","concat","numberFormat","numberFormatType","normalizedNumberFormat","normalizedNumberFormatType","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],e_={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],line:["point"],tick:["bandSize","thickness"]};function Pf(l){l=U(l);for(let s of Qk)delete l[s];if(l.axis)for(let s in l.axis)sc(l.axis[s])&&delete l.axis[s];if(l.legend)for(let s of Em)delete l.legend[s];if(l.mark){for(let s of sy)delete l.mark[s];l.mark.tooltip&&h.isObject(l.mark.tooltip)&&delete l.mark.tooltip}l.params&&(l.signals=(l.signals||[]).concat(Mf(l.params)),delete l.params);for(let s of Jk){for(let m of sy)delete l[s][m];let d=e_[s];if(d)for(let m of d)delete l[s][m];t_(l,s)}for(let s of we(cc))delete l[s];(function(s){let{titleMarkConfig:d,subtitleMarkConfig:m,subtitle:y}=au(s.title);ye(d)||(s.style["group-title"]={...s.style["group-title"],...d}),ye(m)||(s.style["group-subtitle"]={...s.style["group-subtitle"],...m}),ye(y)?delete s.title:s.title=y})(l);for(let s in l)h.isObject(l[s])&&ye(l[s])&&delete l[s];return ye(l)?void 0:l}function t_(l,s,d,m){s==="view"&&(d="cell");let y={...m?l[s][m]:l[s],...l.style[d??s]};ye(y)||(l.style[d??s]=y),m||delete l[s]}function pc(l){return"layer"in l}class $f{map(s,d){return hu(s)?this.mapFacet(s,d):(function(m){return"repeat"in m})(s)?this.mapRepeat(s,d):Lf(s)?this.mapHConcat(s,d):dc(s)?this.mapVConcat(s,d):xu(s)?this.mapConcat(s,d):this.mapLayerOrUnit(s,d)}mapLayerOrUnit(s,d){if(pc(s))return this.mapLayer(s,d);if(Bi(s))return this.mapUnit(s,d);throw new Error(Lh(s))}mapLayer(s,d){return{...s,layer:s.layer.map((m=>this.mapLayerOrUnit(m,d)))}}mapHConcat(s,d){return{...s,hconcat:s.hconcat.map((m=>this.map(m,d)))}}mapVConcat(s,d){return{...s,vconcat:s.vconcat.map((m=>this.map(m,d)))}}mapConcat(s,d){let{concat:m,...y}=s;return{...y,concat:m.map((k=>this.map(k,d)))}}mapFacet(s,d){return{...s,spec:this.map(s.spec,d)}}mapRepeat(s,d){return{...s,spec:this.map(s.spec,d)}}}let Rm={zero:1,center:1,normalize:1},n_=new Set([Yh,sf,of,cf,lf,uf,Xh,uu,iy,Kh]),Ru=new Set([sf,of,Yh]);function zi(l){return ze(l)&&tc(l)==="quantitative"&&!l.bin}function Cm(l,s,d){let{orient:m,type:y}=d,k=s==="x"?"y":"radius",A=s==="x",R=l[s],C=l[k];if(ze(R)&&ze(C))if(zi(R)&&zi(C)){if(R.stack)return s;if(C.stack)return k;let $=ze(R)&&!!R.aggregate;if($!==(ze(C)&&!!C.aggregate))return $?s:k;if(A&&["bar","area"].includes(y)){if(m==="vertical")return k;if(m==="horizontal")return s}}else{if(zi(R))return s;if(zi(C))return k}else{if(zi(R))return s;if(zi(C))return k}}function Nm(l,s){let d=Li(l)?l:{type:l},m=d.type;if(!n_.has(m))return null;let y=Cm(s,"x",d)||Cm(s,"theta",d);if(!y)return null;let k=s[y],A=ze(k)?Ge(k,{}):void 0,R=(function(he){switch(he){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}})(y),C=[],$=new Set;if(s[R]){let he=s[R],ge=ze(he)?Ge(he,{}):void 0;ge&&ge!==A&&(C.push(R),$.add(ge))}let j=R==="x"?"xOffset":"yOffset",H=s[j],ee=ze(H)?Ge(H,{}):void 0;ee&&ee!==A&&(C.push(j),$.add(ee));let ae=zs.reduce(((he,ge)=>{if(ge!=="tooltip"&&Ui(s,ge)){let Ee=s[ge];for(let Se of h.array(Ee)){let Re=ga(Se);if(Re.aggregate)continue;let Pe=Ge(Re,{});Pe&&$.has(Pe)||he.push({channel:ge,fieldDef:Re})}}return he}),[]),ne;return k.stack!==void 0?ne=h.isBoolean(k.stack)?k.stack?"zero":null:k.stack:Ru.has(m)&&(ne="zero"),ne&&ne in Rm?fm(s)&&ae.length===0?null:k?.scale?.type&&k?.scale?.type!==Vt.LINEAR?(k?.stack&&$e((function(he){return`Cannot stack non-linear scale (${he}).`})(k.scale.type)),null):St(s[Ri(y)])?(k.stack!==void 0&&$e(`Cannot stack "${de=y}" if there is already "${de}2".`),null):(ze(k)&&k.aggregate&&!Pa.has(k.aggregate)&&$e(`Stacking is applied even though the aggregate function is non-summative ("${k.aggregate}").`),{groupbyChannels:C,groupbyFields:$,fieldChannel:y,impute:k.impute!==null&&as(m),stackBy:ae,offset:ne}):null;var de}function Ay(l,s,d){let m=Jn(l),y=Yt("orient",m,d);if(m.orient=(function(k,A,R){switch(k){case lf:case uf:case Xh:case iy:case jk:case Gk:return}let{x:C,y:$,x2:j,y2:H}=A;switch(k){case sf:if(ze(C)&&($n(C.bin)||ze($)&&$.aggregate&&!C.aggregate))return"vertical";if(ze($)&&($n($.bin)||ze(C)&&C.aggregate&&!$.aggregate))return"horizontal";if(H||j){if(R)return R;if(!j)return(ze(C)&&C.type===bo&&!Jt(C.bin)||yf(C))&&ze($)&&$n($.bin)?"horizontal":"vertical";if(!H)return(ze($)&&$.type===bo&&!Jt($.bin)||yf($))&&ze(C)&&$n(C.bin)?"vertical":"horizontal"}case cf:if(j&&(!ze(C)||!$n(C.bin))&&H&&(!ze($)||!$n($.bin)))return;case of:if(H)return ze($)&&$n($.bin)?"horizontal":"vertical";if(j)return ze(C)&&$n(C.bin)?"vertical":"horizontal";if(k===cf){if(C&&!$)return"vertical";if($&&!C)return"horizontal"}case uu:case Kh:{let ee=hy(C),ae=hy($);if(R)return R;if(ee&&!ae)return k!=="tick"?"horizontal":"vertical";if(!ee&&ae)return k!=="tick"?"vertical":"horizontal";if(ee&&ae)return"vertical";{let ne=hr(C)&&C.type===rs,de=hr($)&&$.type===rs;if(ne&&!de)return"vertical";if(!ne&&de)return"horizontal"}return}}return"vertical"})(m.type,s,y),y!==void 0&&y!==m.orient&&$e(`Specified orient "${m.orient}" overridden with "${y}".`),m.type==="bar"&&m.orient){let k=Yt("cornerRadiusEnd",m,d);if(k!==void 0){let A=m.orient==="horizontal"&&s.x2||m.orient==="vertical"&&s.y2?["cornerRadius"]:Vk[m.orient];for(let R of A)m[R]=k;m.cornerRadiusEnd!==void 0&&delete m.cornerRadiusEnd}}return Yt("opacity",m,d)===void 0&&(m.opacity=(function(k,A){if(Y([lf,Kh,uf,Xh],k)&&!fm(A))return .7})(m.type,s)),Yt("cursor",m,d)===void 0&&(m.cursor=(function(k,A,R){return A.href||k.href||Yt("href",k,R)?"pointer":k.cursor})(m,s,d)),m}function r_(l){let{point:s,line:d,...m}=l;return we(m).length>1?m:m.type}function a_(l){for(let s of["line","area","rule","trail"])l[s]&&(l={...l,[s]:K(l[s],["point","line"])});return l}function Im(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},d=arguments.length>2?arguments[2]:void 0;return l.point==="transparent"?{opacity:0}:l.point?h.isObject(l.point)?l.point:{}:l.point!==void 0?null:s.point||d.shape?h.isObject(s.point)?s.point:{}:void 0}function Om(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return l.line?l.line===!0?{}:l.line:l.line!==void 0?null:s.line?s.line===!0?{}:s.line:void 0}class Dm{constructor(){ct(this,"name","path-overlay")}hasMatchingType(s,d){if(Bi(s)){let{mark:m,encoding:y}=s,k=Li(m)?m:{type:m};switch(k.type){case"line":case"rule":case"trail":return!!Im(k,d[k.type],y);case"area":return!!Im(k,d[k.type],y)||!!Om(k,d[k.type])}}return!1}run(s,d,m){let{config:y}=d,{params:k,projection:A,mark:R,name:C,encoding:$,...j}=s,H=ci($,y),ee=Li(R)?R:{type:R},ae=Im(ee,y[ee.type],H),ne=ee.type==="area"&&Om(ee,y[ee.type]),de=[{name:C,...k?{params:k}:{},mark:r_({...ee.type==="area"&&ee.opacity===void 0&&ee.fillOpacity===void 0?{opacity:.7}:{},...ee}),encoding:K(H,["shape"])}],he=Nm(Ay(ee,H,y),H),ge=H;if(he){let{fieldChannel:Ee,offset:Se}=he;ge={...H,[Ee]:{...H[Ee],...Se?{stack:Se}:{}}}}return ge=K(ge,["y2","x2"]),ne&&de.push({...A?{projection:A}:{},mark:{type:"line",...J(ee,["clip","interpolate","tension","tooltip"]),...ne},encoding:ge}),ae&&de.push({...A?{projection:A}:{},mark:{type:"point",opacity:1,filled:!0,...J(ee,["clip","tooltip"]),...ae},encoding:ge}),m({...j,layer:de},{...d,config:a_(y)})}}function nr(l,s){return s?Ql(l)?Ty(l,s):Mm(l,s):l}function Gi(l,s){return s?Ty(l,s):l}function Cu(l,s,d){let m=s[l];return(y=m)&&!h.isString(y)&&"repeat"in y?m.repeat in d?{...s,[l]:d[m.repeat]}:void $e((function(k){return`Unknown repeated value "${k}".`})(m.repeat)):s;var y}function Mm(l,s){if((l=Cu("field",l,s))!==void 0){if(l===null)return null;if(Zs(l)&&li(l.sort)){let d=Cu("field",l.sort,s);l={...l,...d?{sort:d}:{}}}return l}}function Bf(l,s){if(ze(l))return Mm(l,s);{let d=Cu("datum",l,s);return d===l||d.type||(d.type="nominal"),d}}function Lm(l,s){if(!St(l)){if(ec(l)){let d=Bf(l.condition,s);if(d)return{...l,condition:d};{let{condition:m,...y}=l;return y}}return l}{let d=Bf(l,s);if(d)return d;if(gf(l))return{condition:l.condition}}}function Ty(l,s){let d={};for(let m in l)if(h.hasOwnProperty(l,m)){let y=l[m];if(h.isArray(y))d[m]=y.map((k=>Lm(k,s))).filter((k=>k));else{let k=Lm(y,s);k!==void 0&&(d[m]=k)}}return d}class Fm{constructor(){ct(this,"name","RuleForRangedLine")}hasMatchingType(s){if(Bi(s)){let{encoding:d,mark:m}=s;if(m==="line"||Li(m)&&m.type==="line")for(let y of wk){let k=d[Us(y)];if(d[y]&&(ze(k)&&!$n(k.bin)||Pi(k)))return!0}}return!1}run(s,d,m){let{encoding:y,mark:k}=s;var A,R;return $e((A=!!y.x2,R=!!y.y2,`Line mark is for continuous lines and thus cannot be used with ${A&&R?"x2 and y2":A?"x2":"y2"}. We will use the rule mark (line segments) instead.`)),m({...s,mark:h.isObject(k)?{...k,type:"rule"}:"rule"},d)}}function Uf(l){let{parentEncoding:s,encoding:d={},layer:m}=l,y={};if(s){let k=new Set([...we(s),...we(d)]);for(let A of k){let R=d[A],C=s[A];if(St(R)){let $={...C,...R};y[A]=$}else ec(R)?y[A]={...R,condition:{...C,...R.condition}}:R||R===null?y[A]=R:(m||ma(C)||Je(C)||St(C)||h.isArray(C))&&(y[A]=C)}}else y=d;return!y||ye(y)?void 0:y}function Pm(l){let{parentProjection:s,projection:d}=l;return s&&d&&$e((function(m){let{parentProjection:y,projection:k}=m;return`Layer's shared projection ${Be(y)} is overridden by a child projection ${Be(k)}.`})({parentProjection:s,projection:d})),d??s}function $m(l){return"filter"in l}function Bm(l){return"lookup"in l}function i_(l){return"pivot"in l}function Ry(l){return"density"in l}function Um(l){return"quantile"in l}function Cy(l){return"regression"in l}function o_(l){return"loess"in l}function Ny(l){return"sample"in l}function zm(l){return"window"in l}function Gm(l){return"joinaggregate"in l}function Iy(l){return"flatten"in l}function s_(l){return"calculate"in l}function zf(l){return"bin"in l}function jm(l){return"impute"in l}function Gf(l){return"timeUnit"in l}function Oy(l){return"aggregate"in l}function l_(l){return"stack"in l}function Hm(l){return"fold"in l}function qm(l){return"extent"in l&&!("density"in l)}function jf(l,s){let{transform:d,...m}=l;return d?{...m,transform:d.map((y=>{if($m(y))return{filter:hc(y,s)};if(zf(y)&&mo(y.bin))return{...y,bin:Wm(y.bin)};if(Bm(y)){let{selection:k,...A}=y.from;return k?{...y,from:{param:k,...A}}:y}return y}))}:l}function Hf(l,s){let d=U(l);if(ze(d)&&mo(d.bin)&&(d.bin=Wm(d.bin)),$i(d)&&d.scale?.domain?.selection){let{selection:m,...y}=d.scale.domain;d.scale.domain={...y,...m?{param:m}:{}}}if(gf(d))if(h.isArray(d.condition))d.condition=d.condition.map((m=>{let{selection:y,param:k,test:A,...R}=m;return k?m:{...R,test:hc(m,s)}}));else{let{selection:m,param:y,test:k,...A}=Hf(d.condition,s);d.condition=y?d.condition:{...A,test:hc(d.condition,s)}}return d}function Wm(l){let s=l.extent;if(s?.selection){let{selection:d,...m}=s;return{...l,extent:{...m,param:d}}}return l}function hc(l,s){let d=m=>L(m,(y=>{let k={param:y,empty:s.emptySelections[y]??!0};return s.selectionPredicates[y]??=[],s.selectionPredicates[y].push(k),k}));return l.selection?d(l.selection):L(l.test||l.filter,(m=>m.selection?d(m.selection):m))}class Vm extends $f{map(s,d){let m=d.selections??[];if(s.params&&!Bi(s)){let y=[];for(let k of s.params)_u(k)?m.push(k):y.push(k);s.params=y}return d.selections=m,super.map(s,d)}mapUnit(s,d){let m=d.selections;if(!m||!m.length)return s;let y=(d.path??[]).concat(s.name),k=[];for(let A of m)if(A.views&&A.views.length)for(let R of A.views)(h.isString(R)&&(R===s.name||y.includes(R))||h.isArray(R)&&R.map((C=>y.indexOf(C))).every(((C,$,j)=>C!==-1&&($===0||C>j[$-1]))))&&k.push(A);else k.push(A);return k.length&&(s.params=k),s}}for(let l of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){let s=Vm.prototype[l];Vm.prototype[l]=function(d,m){return s.call(this,d,Ym(d,m))}}function Ym(l,s){return l.name?{...s,path:(s.path??[]).concat(l.name)}:s}function qf(l,s){s===void 0&&(s=Tm(l.config));let d=(function(A){let C={config:arguments.length>1&&arguments[1]!==void 0?arguments[1]:{}};return c_.map(Km.map(Dy.map(A,C),C),C)})(l,s),{width:m,height:y}=l,k=(function(A,R,C){let{width:$,height:j}=R,H=Bi(A)||pc(A),ee={};H?$=="container"&&j=="container"?(ee.type="fit",ee.contains="padding"):$=="container"?(ee.type="fit-x",ee.contains="padding"):j=="container"&&(ee.type="fit-y",ee.contains="padding"):($=="container"&&($e(Tr("width")),$=void 0),j=="container"&&($e(Tr("height")),j=void 0));let ae={type:"pad",...ee,...C?Xm(C.autosize):{},...Xm(A.autosize)};if(ae.type!=="fit"||H||($e(Qn),ae.type="pad"),$=="container"&&ae.type!="fit"&&ae.type!="fit-x"&&$e(er("width")),j=="container"&&ae.type!="fit"&&ae.type!="fit-y"&&$e(er("height")),!Ne(ae,{type:"pad"}))return ae})(d,{width:m,height:y,autosize:l.autosize},s);return{...d,...k?{autosize:k}:{}}}let Km=new class extends $f{constructor(){super(...arguments),ct(this,"nonFacetUnitNormalizers",[Te,gm,wy,new Dm,new Fm])}map(l,s){if(Bi(l)){let d=Ui(l.encoding,We),m=Ui(l.encoding,at),y=Ui(l.encoding,Lt);if(d||m||y)return this.mapFacetedUnit(l,s)}return super.map(l,s)}mapUnit(l,s){let{parentEncoding:d,parentProjection:m}=s,y=Gi(l.encoding,s.repeater),k={...l,...l.name?{name:[s.repeaterPrefix,l.name].filter((R=>R)).join("_")}:{},...y?{encoding:y}:{}};if(d||m)return this.mapUnitWithParentEncodingOrProjection(k,s);let A=this.mapLayerOrUnit.bind(this);for(let R of this.nonFacetUnitNormalizers)if(R.hasMatchingType(k,s.config))return R.run(k,s,A);return k}mapRepeat(l,s){return(function(d){return!h.isArray(d.repeat)&&d.repeat.layer})(l)?this.mapLayerRepeat(l,s):this.mapNonLayerRepeat(l,s)}mapLayerRepeat(l,s){let{repeat:d,spec:m,...y}=l,{row:k,column:A,layer:R}=d,{repeater:C={},repeaterPrefix:$=""}=s;return k||A?this.mapRepeat({...l,repeat:{...k?{row:k}:{},...A?{column:A}:{}},spec:{repeat:{layer:R},spec:m}},s):{...y,layer:R.map((j=>{let H={...C,layer:j},ee=`${(m.name?`${m.name}_`:"")+$}child__layer_${me(j)}`,ae=this.mapLayerOrUnit(m,{...s,repeater:H,repeaterPrefix:ee});return ae.name=ee,ae}))}}mapNonLayerRepeat(l,s){let{repeat:d,spec:m,data:y,...k}=l;!h.isArray(d)&&l.columns&&(l=K(l,["columns"]),$e(ha("repeat")));let A=[],{repeater:R={},repeaterPrefix:C=""}=s,$=!h.isArray(d)&&d.row||[R?R.row:null],j=!h.isArray(d)&&d.column||[R?R.column:null],H=h.isArray(d)&&d||[R?R.repeat:null];for(let ae of H)for(let ne of $)for(let de of j){let he={repeat:ae,row:ne,column:de,layer:R.layer},ge=(m.name?`${m.name}_`:"")+C+"child__"+(h.isArray(d)?`${me(ae)}`:(d.row?`row_${me(ne)}`:"")+(d.column?`column_${me(de)}`:"")),Ee=this.map(m,{...s,repeater:he,repeaterPrefix:ge});Ee.name=ge,A.push(K(Ee,["data"]))}let ee=h.isArray(d)?l.columns:d.column?d.column.length:1;return{data:m.data??y,align:"all",...k,columns:ee,concat:A}}mapFacet(l,s){let{facet:d}=l;return Ql(d)&&l.columns&&(l=K(l,["columns"]),$e(ha("facet"))),super.mapFacet(l,s)}mapUnitWithParentEncodingOrProjection(l,s){let{encoding:d,projection:m}=l,{parentEncoding:y,parentProjection:k,config:A}=s,R=Pm({parentProjection:k,projection:m}),C=Uf({parentEncoding:y,encoding:Gi(d,s.repeater)});return this.mapUnit({...l,...R?{projection:R}:{},...C?{encoding:C}:{}},{config:A})}mapFacetedUnit(l,s){let{row:d,column:m,facet:y,...k}=l.encoding,{mark:A,width:R,projection:C,height:$,view:j,params:H,encoding:ee,...ae}=l,{facetMapping:ne,layout:de}=this.getFacetMappingAndLayout({row:d,column:m,facet:y},s),he=Gi(k,s.repeater);return this.mapFacet({...ae,...de,facet:ne,spec:{...R?{width:R}:{},...$?{height:$}:{},...j?{view:j}:{},...C?{projection:C}:{},mark:A,encoding:he,...H?{params:H}:{}}},s)}getFacetMappingAndLayout(l,s){let{row:d,column:m,facet:y}=l;if(d||m){y&&$e(`Facet encoding dropped as ${(k=[...d?[We]:[],...m?[at]:[]]).join(" and ")} ${k.length>1?"are":"is"} also specified.`);let A={},R={};for(let C of[We,at]){let $=l[C];if($){let{align:j,center:H,spacing:ee,columns:ae,...ne}=$;A[C]=ne;for(let de of["align","center","spacing"])$[de]!==void 0&&(R[de]??={},R[de][C]=$[de])}}return{facetMapping:A,layout:R}}{let{align:A,center:R,spacing:C,columns:$,...j}=y;return{facetMapping:nr(j,s.repeater),layout:{...A?{align:A}:{},...R?{center:R}:{},...C?{spacing:C}:{},...$?{columns:$}:{}}}}var k}mapLayer(l,s){let{parentEncoding:d,parentProjection:m,...y}=s,{encoding:k,projection:A,...R}=l,C={...y,parentEncoding:Uf({parentEncoding:d,encoding:k,layer:!0}),parentProjection:Pm({parentProjection:m,projection:A})};return super.mapLayer({...R,...l.name?{name:[C.repeaterPrefix,l.name].filter(($=>$)).join("_")}:{}},C)}},Dy=new class extends $f{map(l,s){return s.emptySelections??={},s.selectionPredicates??={},l=jf(l,s),super.map(l,s)}mapLayerOrUnit(l,s){if((l=jf(l,s)).encoding){let d={};for(let[m,y]of tt(l.encoding))d[m]=Hf(y,s);l={...l,encoding:d}}return super.mapLayerOrUnit(l,s)}mapUnit(l,s){let{selection:d,...m}=l;return d?{...m,params:tt(d).map((y=>{let[k,A]=y,{init:R,bind:C,empty:$,...j}=A;j.type==="single"?(j.type="point",j.toggle=!1):j.type==="multi"&&(j.type="point"),s.emptySelections[k]=$!=="none";for(let H of Ve(s.selectionPredicates[k]??{}))H.empty=$!=="none";return{name:k,value:R,select:j,bind:C}}))}:l}},c_=new Vm;function Xm(l){return h.isString(l)?{type:l}:l??{}}let Zm=["background","padding"];function Wf(l,s){let d={};for(let m of Zm)l&&l[m]!==void 0&&(d[m]=Bn(l[m]));return s&&(d.params=l.params),d}class ji{constructor(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.explicit=s,this.implicit=d}clone(){return new ji(U(this.explicit),U(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(s){return Tt(this.explicit[s],this.implicit[s])}getWithExplicit(s){return this.explicit[s]!==void 0?{explicit:!0,value:this.explicit[s]}:this.implicit[s]!==void 0?{explicit:!1,value:this.implicit[s]}:{explicit:!1,value:void 0}}setWithExplicit(s,d){let{value:m,explicit:y}=d;m!==void 0&&this.set(s,m,y)}set(s,d,m){return delete this[m?"implicit":"explicit"][s],this[m?"explicit":"implicit"][s]=d,this}copyKeyFromSplit(s,d){let{explicit:m,implicit:y}=d;m[s]!==void 0?this.set(s,m[s],!0):y[s]!==void 0&&this.set(s,y[s],!1)}copyKeyFromObject(s,d){d[s]!==void 0&&this.set(s,d[s],!0)}copyAll(s){for(let d of we(s.combine())){let m=s.getWithExplicit(d);this.setWithExplicit(d,m)}}}function Hi(l){return{explicit:!0,value:l}}function Ga(l){return{explicit:!1,value:l}}function My(l){return(s,d,m,y)=>{let k=l(s.value,d.value);return k>0?s:k<0?d:Nu(s,d,m,y)}}function Nu(l,s,d,m){return l.explicit&&s.explicit&&$e((function(y,k,A,R){return`Conflicting ${k.toString()} property "${y.toString()}" (${Be(A)} and ${Be(R)}). Using ${Be(A)}.`})(d,m,l.value,s.value)),l}function qi(l,s,d,m){let y=arguments.length>4&&arguments[4]!==void 0?arguments[4]:Nu;return l===void 0||l.value===void 0?s:l.explicit&&!s.explicit?l:s.explicit&&!l.explicit?s:Ne(l.value,s.value)?l:y(l,s,d,m)}class Ly extends ji{constructor(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},m=arguments.length>2&&arguments[2]!==void 0&&arguments[2];super(s,d),this.explicit=s,this.implicit=d,this.parseNothing=m}clone(){let s=super.clone();return s.parseNothing=this.parseNothing,s}}function ds(l){return"url"in l}function mc(l){return"values"in l}function Vf(l){return"name"in l&&!ds(l)&&!mc(l)&&!Eo(l)}function Eo(l){return l&&(Yf(l)||Kf(l)||Xf(l))}function Yf(l){return"sequence"in l}function Kf(l){return"sphere"in l}function Xf(l){return"graticule"in l}let nn=(function(l){return l[l.Raw=0]="Raw",l[l.Main=1]="Main",l[l.Row=2]="Row",l[l.Column=3]="Column",l[l.Lookup=4]="Lookup",l})({});function Jm(l){let{signals:s,hasLegend:d,index:m,...y}=l;return y.field=Ot(y.field),y}function fs(l){let s=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:h.identity;if(h.isArray(l)){let m=l.map((y=>fs(y,s,d)));return s?`[${m.join(", ")}]`:m}return Gs(l)?d(s?js(l):(function(m){let y=Xd(m,!0);return m.utc?+new Date(Date.UTC(...y)):+new Date(...y)})(l)):s?d(Be(l)):l}function Fy(l,s){for(let d of Ve(l.component.selection??{})){let m=d.name,y=`${m}${_o}, ${d.resolve==="global"?"true":`{unit: ${Vr(l)}}`}`;for(let k of il)k.defined(d)&&(k.signals&&(s=k.signals(l,d,s)),k.modifyExpr&&(y=k.modifyExpr(l,d,y)));s.push({name:m+Zy,on:[{events:{signal:d.name+_o},update:`modify(${h.stringValue(d.name+hs)}, ${y})`}]})}return Zf(s)}function Iu(l,s){if(l.component.selection&&we(l.component.selection).length){let d=h.stringValue(l.getName("cell"));s.unshift({name:"facet",value:{},on:[{events:h.parseSelector("pointermove","scope"),update:`isTuple(facet) ? facet : group(${d}).datum`}]})}return Zf(s)}function Py(l,s){for(let d of Ve(l.component.selection??{}))for(let m of il)m.defined(d)&&m.marks&&(s=m.marks(l,d,s));return s}function Zf(l){return l.map((s=>(s.on&&!s.on.length&&delete s.on,s)))}class Kt{constructor(s,d){this.debugName=d,ct(this,"_children",[]),ct(this,"_parent",null),ct(this,"_hash",void 0),s&&(this.parent=s)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(s){this._parent=s,s&&s.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(s,d){this._children.includes(s)?$e("Attempt to add the same child twice."):d!==void 0?this._children.splice(d,0,s):this._children.push(s)}removeChild(s){let d=this._children.indexOf(s);return this._children.splice(d,1),d}remove(){let s=this._parent.removeChild(this);for(let d of this._children)d._parent=this._parent,this._parent.addChild(d,s++)}insertAsParentOf(s){let d=s.parent;d.removeChild(this),this.parent=d,s.parent=this}swapWithParent(){let s=this._parent,d=s.parent;for(let y of this._children)y.parent=s;this._children=[],s.removeChild(this);let m=s.parent.removeChild(s);this._parent=d,d.addChild(this,m),s.parent=this}}class rr extends Kt{clone(){let s=new this.constructor;return s.debugName=`clone_${this.debugName}`,s._source=this._source,s._name=`clone_${this._name}`,s.type=this.type,s.refCounts=this.refCounts,s.refCounts[s._name]=0,s}constructor(s,d,m,y){super(s,d),this.type=m,this.refCounts=y,ct(this,"_source",void 0),ct(this,"_name",void 0),this._source=this._name=d,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${ia()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(s){this._source=s}}function Qm(l){return l.as!==void 0}function $y(l){return`${l}_end`}class Wi extends Kt{clone(){return new Wi(null,U(this.timeUnits))}constructor(s,d){super(s),this.timeUnits=d}static makeFromEncoding(s,d){let m=d.reduceFieldDef(((y,k,A)=>{let{field:R,timeUnit:C}=k;if(C){let $;if(Ua(C)){if(dn(d)){let{mark:j,markDef:H,config:ee}=d,ae=Fi({fieldDef:k,markDef:H,config:ee});(du(j)||ae)&&($={timeUnit:Un(C),field:R})}}else $={as:Ge(k,{forAs:!0}),field:R,timeUnit:C};if(dn(d)){let{mark:j,markDef:H,config:ee}=d,ae=Fi({fieldDef:k,markDef:H,config:ee});du(j)&&un(A)&&ae!==.5&&($.rectBandPosition=ae)}$&&(y[V($)]=$)}return y}),{});return ye(m)?null:new Wi(s,m)}static makeFromTransform(s,d){let{timeUnit:m,...y}={...d},k={...y,timeUnit:Un(m)};return new Wi(s,{[V(k)]:k})}merge(s){this.timeUnits={...this.timeUnits};for(let d in s.timeUnits)this.timeUnits[d]||(this.timeUnits[d]=s.timeUnits[d]);for(let d of s.children)s.removeChild(d),d.parent=this;s.remove()}removeFormulas(s){let d={};for(let[m,y]of tt(this.timeUnits)){let k=Qm(y)?y.as:`${y.field}_end`;s.has(k)||(d[m]=y)}this.timeUnits=d}producedFields(){return new Set(Ve(this.timeUnits).map((s=>Qm(s)?s.as:$y(s.field))))}dependentFields(){return new Set(Ve(this.timeUnits).map((s=>s.field)))}hash(){return`TimeUnit ${V(this.timeUnits)}`}assemble(){let s=[];for(let d of Ve(this.timeUnits)){let{rectBandPosition:m}=d,y=Un(d.timeUnit);if(Qm(d)){let{field:k,as:A}=d,{unit:R,utc:C,...$}=y,j=[A,`${A}_end`];s.push({field:Ot(k),type:"timeunit",...R?{units:su(R)}:{},...C?{timezone:"utc"}:{},...$,as:j}),s.push(...ar(j,m,y))}else if(d){let{field:k}=d,A=k.replaceAll("\\.","."),R=eg({timeUnit:y,field:A}),C=$y(A);s.push({type:"formula",expr:R,as:C}),s.push(...ar([A,C],m,y))}}return s}}let Jf="offsetted_rect_start",Gt="offsetted_rect_end";function eg(l){let{timeUnit:s,field:d,reverse:m}=l,{unit:y,utc:k}=s,A=jh(y),{part:R,step:C}=Jd(A,s.step);return`${k?"utcOffset":"timeOffset"}('${R}', datum['${d}'], ${m?-C:C})`}function ar(l,s,d){let[m,y]=l;if(s!==void 0&&s!==.5){let k=`datum['${m}']`,A=`datum['${y}']`;return[{type:"formula",expr:ps([eg({timeUnit:d,field:m,reverse:!0}),k],s+.5),as:`${m}_${Jf}`},{type:"formula",expr:ps([k,A],s+.5),as:`${m}_${Gt}`}]}return[]}function ps(l,s){let[d,m]=l;return`${1-s} * ${d} + ${s} * ${m}`}let Ou="_tuple_fields";class tg{constructor(){ct(this,"hasChannel",void 0),ct(this,"hasField",void 0),ct(this,"hasSelectionId",void 0),ct(this,"timeUnit",void 0),ct(this,"items",void 0);for(var s=arguments.length,d=new Array(s),m=0;m<s;m++)d[m]=arguments[m];this.items=d,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}let Vi={defined:()=>!0,parse:(l,s,d)=>{let m=s.name,y=s.project??=new tg,k={},A={},R=new Set,C=(ne,de)=>{let he=de==="visual"?ne.channel:ne.field,ge=me(`${m}_${he}`);for(let Ee=1;R.has(ge);Ee++)ge=me(`${m}_${he}_${Ee}`);return R.add(ge),{[de]:ge}},$=s.type,j=l.config.selection[$],H=d.value!==void 0?h.array(d.value):null,{fields:ee,encodings:ae}=h.isObject(d.select)?d.select:{};if(!ee&&!ae&&H){for(let ne of H)if(h.isObject(ne))for(let de of we(ne))Ek[de]?(ae||(ae=[])).push(de):$==="interval"?($e('Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.'),ae=j.encodings):(ee??=[]).push(de)}ee||ae||(ae=j.encodings,"fields"in j&&(ee=j.fields));for(let ne of ae??[]){let de=l.fieldDef(ne);if(de){let he=de.field;if(de.aggregate){$e(Di(ne,de.aggregate));continue}if(!he){$e(tr(ne));continue}if(de.timeUnit&&!Ua(de.timeUnit)){he=l.vgField(ne);let ge={timeUnit:de.timeUnit,as:he,field:de.field};A[V(ge)]=ge}if(!k[he]){let ge={field:he,channel:ne,type:$==="interval"&&Fa(ne)&&qr(l.getScaleComponent(ne).get("type"))?"R":de.bin?"R-RE":"E",index:y.items.length};ge.signals={...C(ge,"data"),...C(ge,"visual")},y.items.push(k[he]=ge),y.hasField[he]=k[he],y.hasSelectionId=y.hasSelectionId||he===ba,Jo(ne)?(ge.geoChannel=ne,ge.channel=xh(ne),y.hasChannel[ge.channel]=k[he]):y.hasChannel[ne]=k[he]}}else $e(tr(ne))}for(let ne of ee??[]){if(y.hasField[ne])continue;let de={type:"E",field:ne,index:y.items.length};de.signals={...C(de,"data")},y.items.push(de),y.hasField[ne]=de,y.hasSelectionId=y.hasSelectionId||ne===ba}H&&(s.init=H.map((ne=>y.items.map((de=>h.isObject(ne)?ne[de.geoChannel||de.channel]!==void 0?ne[de.geoChannel||de.channel]:ne[de.field]:ne))))),ye(A)||(y.timeUnit=new Wi(null,A))},signals:(l,s,d)=>{let m=s.name+Ou;return d.filter((y=>y.name===m)).length>0||s.project.hasSelectionId?d:d.concat({name:m,value:s.project.items.map(Jm)})}},Cr={defined:l=>l.type==="interval"&&l.resolve==="global"&&l.bind&&l.bind==="scales",parse:(l,s)=>{let d=s.scales=[];for(let m of s.project.items){let y=m.channel;if(!Fa(y))continue;let k=l.getScaleComponent(y),A=k?k.get("type"):void 0;k&&qr(A)?(k.set("selectionExtent",{param:s.name,field:m.field},!0),d.push(m)):$e("Scale bindings are currently only supported for scales with unbinned, continuous domains.")}},topLevelSignals:(l,s,d)=>{let m=s.scales.filter((A=>d.filter((R=>R.name===A.signals.data)).length===0));if(!l.parent||nl(l)||m.length===0)return d;let y=d.filter((A=>A.name===s.name))[0],k=y.update;if(k.indexOf(fg)>=0)y.update=`{${m.map((A=>`${h.stringValue(Ot(A.field))}: ${A.signals.data}`)).join(", ")}}`;else{for(let A of m){let R=`${h.stringValue(Ot(A.field))}: ${A.signals.data}`;k.includes(R)||(k=`${k.substring(0,k.length-1)}, ${R}}`)}y.update=k}return d.concat(m.map((A=>({name:A.signals.data}))))},signals:(l,s,d)=>{if(l.parent&&!nl(l))for(let m of s.scales){let y=d.filter((k=>k.name===m.signals.data))[0];y.push="outer",delete y.value,delete y.update}return d}};function Gn(l,s){return`domain(${h.stringValue(l.scaleName(s))})`}function nl(l){return l.parent&&Es(l.parent)&&!l.parent.parent}let wo="_brush",ng="_scale_trigger",gc="geo_interval_init_tick",Qf="_init",rg={defined:l=>l.type==="interval",parse:(l,s,d)=>{if(l.hasProjection){let m={...h.isObject(d.select)?d.select:{}};m.fields=[ba],m.encodings||(m.encodings=d.value?we(d.value):[Br,ot]),d.select={type:"interval",...m}}if(s.translate&&!Cr.defined(s)){let m=`!event.item || event.item.mark.name !== ${h.stringValue(s.name+wo)}`;for(let y of s.events){if(!y.between){$e(`${y} is not an ordered event stream for interval selections.`);continue}let k=h.array(y.between[0].filter??=[]);k.indexOf(m)<0&&k.push(m)}}},signals:(l,s,d)=>{let m=s.name,y=m+_o,k=Ve(s.project.hasChannel).filter((R=>R.channel===et||R.channel===nt)),A=s.init?s.init[0]:null;if(d.push(...k.reduce(((R,C)=>R.concat((function($,j,H,ee){let ae=!$.hasProjection,ne=H.channel,de=H.signals.visual,he=h.stringValue(ae?$.scaleName(ne):$.projectionName()),ge=Pe=>`scale(${he}, ${Pe})`,Ee=$.getSizeSignalRef(ne===et?"width":"height").signal,Se=`${ne}(unit)`,Re=j.events.reduce(((Pe,qe)=>[...Pe,{events:qe.between[0],update:`[${Se}, ${Se}]`},{events:qe,update:`[${de}[0], clamp(${Se}, 0, ${Ee})]`}]),[]);if(ae){let Pe=H.signals.data,qe=Cr.defined(j),st=$.getScaleComponent(ne),mt=st?st.get("type"):void 0,it=ee?{init:fs(ee,!0,ge)}:{value:[]};return Re.push({events:{signal:j.name+ng},update:qr(mt)?`[${ge(`${Pe}[0]`)}, ${ge(`${Pe}[1]`)}]`:"[0, 0]"}),qe?[{name:Pe,on:[]}]:[{name:de,...it,on:Re},{name:Pe,...ee?{init:fs(ee)}:{},on:[{events:{signal:de},update:`${de}[0] === ${de}[1] ? null : invert(${he}, ${de})`}]}]}{let Pe=ne===et?0:1,qe=j.name+Qf;return[{name:de,...ee?{init:`[${qe}[0][${Pe}], ${qe}[1][${Pe}]]`}:{value:[]},on:Re}]}})(l,s,C,A&&A[C.index]))),[])),l.hasProjection){let R=h.stringValue(l.projectionName()),C=l.projectionName()+"_center",{x:$,y:j}=s.project.hasChannel,H=$&&$.signals.visual,ee=j&&j.signals.visual,ae=$?A&&A[$.index]:`${C}[0]`,ne=j?A&&A[j.index]:`${C}[1]`,de=Se=>l.getSizeSignalRef(Se).signal,he=`[[${H?H+"[0]":"0"}, ${ee?ee+"[0]":"0"}],[${H?H+"[1]":de("width")}, ${ee?ee+"[1]":de("height")}]]`;A&&(d.unshift({name:m+Qf,init:`[scale(${R}, [${$?ae[0]:ae}, ${j?ne[0]:ne}]), scale(${R}, [${$?ae[1]:ae}, ${j?ne[1]:ne}])]`}),!$||!j)&&(d.find((Se=>Se.name===C))||d.unshift({name:C,update:`invert(${R}, [${de("width")}/2, ${de("height")}/2])`}));let ge=`vlSelectionTuples(${`intersect(${he}, {markname: ${h.stringValue(l.getName("marks"))}}, unit.mark)`}, ${`{unit: ${Vr(l)}}`})`,Ee=k.map((Se=>Se.signals.visual));return d.concat({name:y,on:[{events:[...Ee.length?[{signal:Ee.join(" || ")}]:[],...A?[{signal:gc}]:[]],update:ge}]})}{if(!Cr.defined(s)){let $=m+ng,j=k.map((H=>{let ee=H.channel,{data:ae,visual:ne}=H.signals,de=h.stringValue(l.scaleName(ee)),he=qr(l.getScaleComponent(ee).get("type"))?"+":"";return`(!isArray(${ae}) || (${he}invert(${de}, ${ne})[0] === ${he}${ae}[0] && ${he}invert(${de}, ${ne})[1] === ${he}${ae}[1]))`}));j.length&&d.push({name:$,value:{},on:[{events:k.map((H=>({scale:l.scaleName(H.channel)}))),update:j.join(" && ")+` ? ${$} : {}`}]})}let R=k.map(($=>$.signals.data)),C=`unit: ${Vr(l)}, fields: ${m+Ou}, values`;return d.concat({name:y,...A?{init:`{${C}: ${fs(A)}}`}:{},...R.length?{on:[{events:[{signal:R.join(" || ")}],update:`${R.join(" && ")} ? {${C}: [${R}]} : null`}]}:{}})}},topLevelSignals:(l,s,d)=>(dn(l)&&l.hasProjection&&s.init&&(d.filter((m=>m.name===gc)).length||d.unshift({name:gc,value:null,on:[{events:"timer{1}",update:`${gc} === null ? {} : ${gc}`}]})),d),marks:(l,s,d)=>{let m=s.name,{x:y,y:k}=s.project.hasChannel,A=y?.signals.visual,R=k?.signals.visual,C=`data(${h.stringValue(s.name+hs)})`;if(Cr.defined(s)||!y&&!k)return d;let $={x:y!==void 0?{signal:`${A}[0]`}:{value:0},y:k!==void 0?{signal:`${R}[0]`}:{value:0},x2:y!==void 0?{signal:`${A}[1]`}:{field:{group:"width"}},y2:k!==void 0?{signal:`${R}[1]`}:{field:{group:"height"}}};if(s.resolve==="global")for(let de of we($))$[de]=[{test:`${C}.length && ${C}[0].unit === ${Vr(l)}`,...$[de]},{value:0}];let{fill:j,fillOpacity:H,cursor:ee,...ae}=s.mark,ne=we(ae).reduce(((de,he)=>(de[he]=[{test:[y!==void 0&&`${A}[0] !== ${A}[1]`,k!==void 0&&`${R}[0] !== ${R}[1]`].filter((ge=>ge)).join(" && "),value:ae[he]},{value:null}],de)),{});return[{name:`${m+wo}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:j},fillOpacity:{value:H}},update:$}},...d,{name:m+wo,type:"rect",clip:!0,encode:{enter:{...ee?{cursor:{value:ee}}:{},fill:{value:"transparent"}},update:{...$,...ne}}}]}},rl={defined:l=>l.type==="point",signals:(l,s,d)=>{let m=s.name,y=m+Ou,k=s.project,A="(item().isVoronoi ? datum.datum : datum)",R=Ve(l.component.selection??{}).reduce(((H,ee)=>ee.type==="interval"?H.concat(ee.name+wo):H),[]).map((H=>`indexof(item().mark.name, '${H}') < 0`)).join(" && "),C="datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0"+(R?` && ${R}`:""),$=`unit: ${Vr(l)}, `;s.project.hasSelectionId?$+=`${ba}: ${A}[${h.stringValue(ba)}]`:$+=`fields: ${y}, values: [${k.items.map((H=>l.fieldDef(H.channel)?.bin?`[${A}[${h.stringValue(l.vgField(H.channel,{}))}], ${A}[${h.stringValue(l.vgField(H.channel,{binSuffix:"end"}))}]]`:`${A}[${h.stringValue(H.field)}]`)).join(", ")}]`;let j=s.events;return d.concat([{name:m+_o,on:j?[{events:j,update:`${C} ? {${$}} : null`,force:!0}]:[]}])}};function bc(l,s,d,m){let y=gf(s)&&s.condition,k=m(s);return y?{[d]:[...h.array(y).map((A=>{let R=m(A);if((function(C){return C.param})(A)){let{param:C,empty:$}=A;return{test:Ec(l,{param:C,empty:$}),...R}}return{test:Ki(l,A.test),...R}})),...k!==void 0?[k]:[]]}:k!==void 0?{[d]:k}:{}}function ep(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"text",d=l.encoding[s];return bc(l,d,s,(m=>yc(m,l.config)))}function yc(l,s){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"datum";if(l){if(ma(l))return sn(l.value);if(St(l)){let{format:m,formatType:y}=Js(l);return tm({fieldOrDatumDef:l,format:m,formatType:y,expr:d,config:s})}}}function Du(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{encoding:d,markDef:m,config:y,stack:k}=l,A=d.tooltip;if(h.isArray(A))return{tooltip:By({tooltip:A},k,y,s)};{let R=s.reactiveGeom?"datum.datum":"datum";return bc(l,A,"tooltip",(C=>{let $=yc(C,y,R);if($)return $;if(C===null)return;let j=Yt("tooltip",m,y);return j===!0&&(j={content:"encoding"}),h.isString(j)?{value:j}:h.isObject(j)?Je(j)?j:j.content==="encoding"?By(d,k,y,s):{signal:R}:void 0}))}}function Mu(l,s,d){let{reactiveGeom:m}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},y={...d,...d.tooltipFormat},k={},A=m?"datum.datum":"datum",R=[];function C(j,H){let ee=Us(H),ae=hr(j)?j:{...j,type:l[ee].type},ne=ae.title||Ef(ae,y),de=h.array(ne).join(", ").replaceAll(/"/g,'\\"'),he;if(un(H)){let ge=H==="x"?"x2":"y2",Ee=ga(l[ge]);if($n(ae.bin)&&Ee){let Se=Ge(ae,{expr:A}),Re=Ge(Ee,{expr:A}),{format:Pe,formatType:qe}=Js(ae);he=yo(Se,Re,Pe,qe,y),k[ge]=!0}}if((un(H)||H===la||H===lt)&&s&&s.fieldChannel===H&&s.offset==="normalize"){let{format:ge,formatType:Ee}=Js(ae);he=tm({fieldOrDatumDef:ae,format:ge,formatType:Ee,expr:A,config:y,normalizeStack:!0}).signal}he??=yc(ae,y,A).signal,R.push({channel:H,key:de,value:he})}yu(l,((j,H)=>{ze(j)?C(j,H):bf(j)&&C(j.condition,H)}));let $={};for(let{channel:j,key:H,value:ee}of R)k[j]||$[H]||($[H]=ee);return $}function By(l,s,d){let{reactiveGeom:m}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},y=Mu(l,s,d,{reactiveGeom:m}),k=tt(y).map((A=>{let[R,C]=A;return`"${R}": ${C}`}));return k.length>0?{signal:`{${k.join(", ")}}`}:void 0}function u_(l){let{markDef:s,config:d}=l,m=Yt("aria",s,d);return m===!1?{}:{...m?{aria:m}:{},...d_(l),...f_(l)}}function d_(l){let{mark:s,markDef:d,config:m}=l;if(m.aria===!1)return{};let y=Yt("ariaRoleDescription",d,m);return y!=null?{ariaRoleDescription:{value:y}}:s in zd?{}:{ariaRoleDescription:{value:s}}}function f_(l){let{encoding:s,markDef:d,config:m,stack:y}=l,k=s.description;if(k)return bc(l,k,"description",(C=>yc(C,l.config)));let A=Yt("description",d,m);if(A!=null)return{description:sn(A)};if(m.aria===!1)return{};let R=Mu(s,y,m);return ye(R)?void 0:{description:{signal:tt(R).map(((C,$)=>{let[j,H]=C;return`"${$>0?"; ":""}${j}: " + (${H})`})).join(" + ")}}}function jn(l,s){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{markDef:m,encoding:y,config:k}=s,{vgChannel:A}=d,{defaultRef:R,defaultValue:C}=d;R===void 0&&(C??=Yt(l,m,k,{vgChannel:A,ignoreVgConfig:!0}),C!==void 0&&(R=sn(C)));let $=y[l];return bc(s,$,A??l,(j=>em({channel:l,channelDef:j,markDef:m,config:k,scaleName:s.scaleName(l),scale:s.getScaleComponent(l),stack:null,defaultRef:R})))}function Lu(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{filled:void 0},{markDef:d,encoding:m,config:y}=l,{type:k}=d,A=s.filled??Yt("filled",d,y),R=Y(["bar","point","circle","square","geoshape"],k)?"transparent":void 0,C=Yt(A===!0?"color":void 0,d,y,{vgChannel:"fill"})??y.mark[A===!0&&"color"]??R,$=Yt(A===!1?"color":void 0,d,y,{vgChannel:"stroke"})??y.mark[A===!1&&"color"],j=A?"fill":"stroke",H={...C?{fill:sn(C)}:{},...$?{stroke:sn($)}:{}};return d.color&&(A?d.fill:d.stroke)&&$e(z0("property",{fill:"fill"in d,stroke:"stroke"in d})),{...H,...jn("color",l,{vgChannel:j,defaultValue:A?C:$}),...jn("fill",l,{defaultValue:m.fill?C:void 0}),...jn("stroke",l,{defaultValue:m.stroke?$:void 0})}}function Uy(l){let{encoding:s,mark:d}=l,m=s.order;return!as(d)&&ma(m)?bc(l,m,"zindex",(y=>sn(y.value))):{}}function vc(l){let{channel:s,markDef:d,encoding:m={},model:y,bandPosition:k}=l,A=`${s}Offset`,R=d[A],C=m[A];if((A==="xOffset"||A==="yOffset")&&C)return{offsetType:"encoding",offset:em({channel:A,channelDef:C,markDef:d,config:y?.config,scaleName:y.scaleName(A),scale:y.getScaleComponent(A),stack:null,defaultRef:sn(R),bandPosition:k})};let $=d[A];return $?{offsetType:"visual",offset:$}:{}}function Hn(l,s,d){let{defaultPos:m,vgChannel:y}=d,{encoding:k,markDef:A,config:R,stack:C}=s,$=k[l],j=k[Ri(l)],H=s.scaleName(l),ee=s.getScaleComponent(l),{offset:ae,offsetType:ne}=vc({channel:l,markDef:A,encoding:k,model:s,bandPosition:.5}),de=tp({model:s,defaultPos:m,channel:l,scaleName:H,scale:ee}),he=!$&&un(l)&&(k.latitude||k.longitude)?{field:s.getName(l)}:(function(ge){let{channel:Ee,channelDef:Se,scaleName:Re,stack:Pe,offset:qe,markDef:st}=ge;if(St(Se)&&Pe&&Ee===Pe.fieldChannel){if(ze(Se)){let mt=Se.bandPosition;if(mt!==void 0||st.type!=="text"||Ee!=="radius"&&Ee!=="theta"||(mt=.5),mt!==void 0)return df({scaleName:Re,fieldOrDatumDef:Se,startSuffix:"start",bandPosition:mt,offset:qe})}return Ks(Se,Re,{suffix:"end"},{offset:qe})}return Jh(ge)})({channel:l,channelDef:$,channel2Def:j,markDef:A,config:R,scaleName:H,scale:ee,stack:C,offset:ae,defaultRef:de,bandPosition:ne==="encoding"?0:void 0});return he?{[y||l]:he}:void 0}function tp(l){let{model:s,defaultPos:d,channel:m,scaleName:y,scale:k}=l,{markDef:A,config:R}=s;return()=>{let C=Us(m),$=fa(m),j=Yt(m,A,R,{vgChannel:$});if(j!==void 0)return Jl(m,j);switch(d){case"zeroOrMin":case"zeroOrMax":if(y){let H=k.get("type");if(!Y([Vt.LOG,Vt.TIME,Vt.UTC],H)){if(k.domainDefinitelyIncludesZero())return{scale:y,value:0}}}if(d==="zeroOrMin")return C==="y"?{field:{group:"height"}}:{value:0};switch(C){case"radius":return{signal:`min(${s.width.signal},${s.height.signal})/2`};case"theta":return{signal:"2*PI"};case"x":return{field:{group:"width"}};case"y":return{value:0}}break;case"mid":return{...s[Sr(m)],mult:.5}}}}let zy={left:"x",center:"xc",right:"x2"},Gy={top:"y",middle:"yc",bottom:"y2"};function ag(l,s,d){let m=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"middle";if(l==="radius"||l==="theta")return fa(l);let y=l==="x"?"align":"baseline",k=Yt(y,s,d),A;return Je(k)?($e((function(R){return`The ${R} for range marks cannot be an expression`})(y)),A=void 0):A=k,l==="x"?zy[A||(m==="top"?"left":"center")]:Gy[A||m]}function np(l,s,d){let{defaultPos:m,defaultPos2:y,range:k}=d;return k?ko(l,s,{defaultPos:m,defaultPos2:y}):Hn(l,s,{defaultPos:m})}function ko(l,s,d){let{defaultPos:m,defaultPos2:y}=d,{markDef:k,config:A}=s,R=Ri(l),C=Sr(l),$=(function(j,H,ee){let{encoding:ae,mark:ne,markDef:de,stack:he,config:ge}=j,Ee=Us(ee),Se=Sr(ee),Re=fa(ee),Pe=ae[Ee],qe=j.scaleName(Ee),st=j.getScaleComponent(Ee),{offset:mt}=vc(ee in ae||ee in de?{channel:ee,markDef:de,encoding:ae,model:j}:{channel:Ee,markDef:de,encoding:ae,model:j});if(!Pe&&(ee==="x2"||ee==="y2")&&(ae.latitude||ae.longitude)){let Qe=Sr(ee),Ct=j.markDef[Qe];return Ct!=null?{[Qe]:{value:Ct}}:{[Re]:{field:j.getName(ee)}}}let it=(function(Qe){let{channel:Ct,channelDef:Ht,channel2Def:Mn,markDef:wn,config:kn,scaleName:qt,scale:Ft,stack:gn,offset:Rn,defaultRef:fn}=Qe;return St(Ht)&&gn&&Ct.charAt(0)===gn.fieldChannel.charAt(0)?Ks(Ht,qt,{suffix:"start"},{offset:Rn}):Jh({channel:Ct,channelDef:Mn,scaleName:qt,scale:Ft,stack:gn,markDef:wn,config:kn,offset:Rn,defaultRef:fn})})({channel:ee,channelDef:Pe,channel2Def:ae[ee],markDef:de,config:ge,scaleName:qe,scale:st,stack:he,offset:mt,defaultRef:void 0});return it!==void 0?{[Re]:it}:al(ee,de)||al(ee,{[ee]:jd(ee,de,ge.style),[Se]:jd(Se,de,ge.style)})||al(ee,ge[ne])||al(ee,ge.mark)||{[Re]:tp({model:j,defaultPos:H,channel:ee,scaleName:qe,scale:st})()}})(s,y,R);return{...Hn(l,s,{defaultPos:m,vgChannel:$[C]?ag(l,k,A):fa(l)}),...$}}function al(l,s){let d=Sr(l),m=fa(l);if(s[m]!==void 0)return{[m]:Jl(l,s[m])};if(s[l]!==void 0)return{[m]:Jl(l,s[l])};if(s[d]){let y=s[d];if(!Ys(y))return{[d]:Jl(l,y)};$e((function(k){return`Position range does not support relative band size for ${k}.`})(d))}}function di(l,s){let{config:d,encoding:m,markDef:y}=l,k=y.type,A=Ri(s),R=Sr(s),C=m[s],$=m[A],j=l.getScaleComponent(s),H=j?j.get("type"):void 0,ee=y.orient,ae=m[R]??m.size??Yt("size",y,d,{vgChannel:R}),ne=Sh(s),de=k==="bar"&&(s==="x"?ee==="vertical":ee==="horizontal");return!ze(C)||!(Jt(C.bin)||$n(C.bin)||C.timeUnit&&!$)||ae&&!Ys(ae)||m[ne]||zn(H)?(St(C)&&zn(H)||de)&&!$?(function(he,ge,Ee){let{markDef:Se,encoding:Re,config:Pe,stack:qe}=Ee,st=Se.orient,mt=Ee.scaleName(ge),it=Ee.getScaleComponent(ge),Qe=Sr(ge),Ct=Ri(ge),Ht=Sh(ge),Mn=Ee.scaleName(Ht),wn=Ee.getScaleComponent(Ul(ge)),kn=st==="horizontal"&&ge==="y"||st==="vertical"&&ge==="x",qt;(Re.size||Se.size)&&(kn?qt=jn("size",Ee,{vgChannel:Qe,defaultRef:sn(Se.size)}):$e((function(or){return`Cannot apply size to non-oriented mark "${or}".`})(Se.type)));let Ft=!!qt,gn=sm({channel:ge,fieldDef:he,markDef:Se,config:Pe,scaleType:(it||wn)?.get("type"),useVlSizeChannel:kn});qt=qt||{[Qe]:jy(Qe,Mn||mt,wn||it,Pe,gn,!!he,Se.type)};let Rn=(it||wn)?.get("type")==="band"&&Ys(gn)&&!Ft?"top":"middle",fn=ag(ge,Se,Pe,Rn),Or=fn==="xc"||fn==="yc",{offset:Dr,offsetType:qa}=vc({channel:ge,markDef:Se,encoding:Re,model:Ee,bandPosition:Or?.5:0}),Vn=Jh({channel:ge,channelDef:he,markDef:Se,config:Pe,scaleName:mt,scale:it,stack:qe,offset:Dr,defaultRef:tp({model:Ee,defaultPos:"mid",channel:ge,scaleName:mt,scale:it}),bandPosition:Or?qa==="encoding"?0:.5:Je(gn)?{signal:`(1-${gn})/2`}:Ys(gn)?(1-gn.band)/2:0});if(Qe)return{[fn]:Vn,...qt};{let or=fa(Ct),ln=qt[Qe],At=Dr?{...ln,offset:Dr}:ln;return{[fn]:Vn,[or]:h.isArray(Vn)?[Vn[0],{...Vn[1],offset:At}]:{...Vn,offset:At}}}})(C,s,l):ko(s,l,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"}):(function(he){let{fieldDef:ge,fieldDef2:Ee,channel:Se,model:Re}=he,{config:Pe,markDef:qe,encoding:st}=Re,mt=Re.getScaleComponent(Se),it=Re.scaleName(Se),Qe=mt?mt.get("type"):void 0,Ct=mt.get("reverse"),Ht=sm({channel:Se,fieldDef:ge,markDef:qe,config:Pe,scaleType:Qe}),Mn=Re.component.axes[Se]?.[0],wn=Mn?.get("translate")??.5,kn=un(Se)?Yt("binSpacing",qe,Pe)??0:0,qt=Ri(Se),Ft=fa(Se),gn=fa(qt),Rn=jr("minBandSize",qe,Pe),{offset:fn}=vc({channel:Se,markDef:qe,encoding:st,model:Re,bandPosition:0}),{offset:Or}=vc({channel:qt,markDef:qe,encoding:st,model:Re,bandPosition:0}),Dr=(function(At){let{scaleName:Zr,fieldDef:xs}=At,no=Ge(xs,{expr:"datum"});return`abs(scale("${Zr}", ${Ge(xs,{expr:"datum",suffix:"end"})}) - scale("${Zr}", ${no}))`})({fieldDef:ge,scaleName:it}),qa=ig(Se,kn,Ct,wn,fn,Rn,Dr),Vn=ig(qt,kn,Ct,wn,Or??fn,Rn,Dr),or=Je(Ht)?{signal:`(1-${Ht.signal})/2`}:Ys(Ht)?(1-Ht.band)/2:.5,ln=Fi({fieldDef:ge,fieldDef2:Ee,markDef:qe,config:Pe});if(Jt(ge.bin)||ge.timeUnit){let At=ge.timeUnit&&ln!==.5;return{[gn]:og({fieldDef:ge,scaleName:it,bandPosition:or,offset:Vn,useRectOffsetField:At}),[Ft]:og({fieldDef:ge,scaleName:it,bandPosition:Je(or)?{signal:`1-${or.signal}`}:1-or,offset:qa,useRectOffsetField:At})}}if($n(ge.bin)){let At=Ks(ge,it,{},{offset:Vn});if(ze(Ee))return{[gn]:At,[Ft]:Ks(Ee,it,{},{offset:qa})};if(mo(ge.bin)&&ge.bin.step)return{[gn]:At,[Ft]:{signal:`scale("${it}", ${Ge(ge,{expr:"datum"})} + ${ge.bin.step})`,offset:qa}}}return void $e(Kd(qt))})({fieldDef:C,fieldDef2:$,channel:s,model:l})}function jy(l,s,d,m,y,k,A){if(Ys(y)){if(!d)return{mult:y.band,field:{group:l}};{let R=d.get("type");if(R==="band"){let C=`bandwidth('${s}')`;y.band!==1&&(C=`${y.band} * ${C}`);let $=jr("minBandSize",{type:A},m);return{signal:$?`max(${fr($)}, ${C})`:C}}y.band!==1&&($e((function(C){return`Cannot use the relative band size with ${C} scale.`})(R)),y=void 0)}}else{if(Je(y))return y;if(y)return{value:y}}if(d){let R=d.get("range");if(go(R)&&h.isNumber(R.step))return{value:R.step-2}}if(!k){let{bandPaddingInner:R,barBandPaddingInner:C,rectBandPaddingInner:$}=m.scale,j=Tt(R,A==="bar"?C:$);if(Je(j))return{signal:`(1 - (${j.signal})) * ${l}`};if(h.isNumber(j))return{signal:`${1-j} * ${l}`}}return{value:fc(m.view,l)-2}}function ig(l,s,d,m,y,k,A){if($d(l))return 0;let R=l==="x"||l==="y2",C=R?-s/2:s/2;if(Je(d)||Je(y)||Je(m)||k){let $=fr(d),j=fr(y),H=fr(m),ee=fr(k),ae=k?`(${A} < ${ee} ? ${R?"":"-"}0.5 * (${ee} - (${A})) : ${C})`:C;return{signal:(H?`${H} + `:"")+($?`(${$} ? -1 : 1) * `:"")+(j?`(${j} + ${ae})`:ae)}}return y=y||0,m+(d?-y-C:+y+C)}function og(l){let{fieldDef:s,scaleName:d,bandPosition:m,offset:y,useRectOffsetField:k}=l;return df({scaleName:d,fieldOrDatumDef:s,bandPosition:m,offset:y,...k?{startSuffix:Jf,endSuffix:Gt}:{}})}let p_=new Set(["aria","width","height"]);function Nr(l,s){let{fill:d,stroke:m}=s.color==="include"?Lu(l):{};return{...h_(l.markDef,s),...rp(l,"fill",d),...rp(l,"stroke",m),...jn("opacity",l),...jn("fillOpacity",l),...jn("strokeOpacity",l),...jn("strokeWidth",l),...jn("strokeDash",l),...Uy(l),...Du(l),...ep(l,"href"),...u_(l)}}function rp(l,s,d){let{config:m,mark:y,markDef:k}=l;if(Yt("invalid",k,m)==="hide"&&d&&!as(y)){let A=(function(R,C){let{invalid:$=!1,channels:j}=C,H=j.reduce(((ae,ne)=>{let de=R.getScaleComponent(ne);if(de){let he=de.get("type"),ge=R.vgField(ne,{expr:"datum"});ge&&qr(he)&&(ae[ge]=!0)}return ae}),{}),ee=we(H);if(ee.length>0){let ae=$?"||":"&&";return ee.map((ne=>Qh(ne,$))).join(` ${ae} `)}})(l,{invalid:!0,channels:Gl});if(A)return{[s]:[{test:A,value:null},...h.array(d)]}}return d?{[s]:d}:{}}function h_(l,s){return Hl.reduce(((d,m)=>(p_.has(m)||l[m]===void 0||s[m]==="ignore"||(d[m]=sn(l[m])),d)),{})}function Fu(l){let{config:s,markDef:d}=l;if(Yt("invalid",d,s)){let m=(function(y,k){let{invalid:A=!1,channels:R}=k,C=R.reduce(((j,H)=>{let ee=y.getScaleComponent(H);if(ee){let ae=ee.get("type"),ne=y.vgField(H,{expr:"datum",binSuffix:y.stack?.impute?"mid":void 0});ne&&qr(ae)&&(j[ne]=!0)}return j}),{}),$=we(C);if($.length>0){let j=A?"||":"&&";return $.map((H=>Qh(H,A))).join(` ${j} `)}})(l,{channels:ni});if(m)return{defined:{signal:m}}}return{}}function Hy(l,s){if(s!==void 0)return{[l]:sn(s)}}let Pu="voronoi",qy={defined:l=>l.type==="point"&&l.nearest,parse:(l,s)=>{if(s.events)for(let d of s.events)d.markname=l.getName(Pu)},marks:(l,s,d)=>{let{x:m,y}=s.project.hasChannel,k=l.mark;if(as(k))return $e(`The "nearest" transform is not supported for ${k} marks.`),d;let A={name:l.getName(Pu),type:"path",interactive:!0,from:{data:l.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...Du(l,{reactiveGeom:!0})}},transform:[{type:"voronoi",x:{expr:m||!y?"datum.datum.x || 0":"0"},y:{expr:y||!m?"datum.datum.y || 0":"0"},size:[l.getSizeSignalRef("width"),l.getSizeSignalRef("height")]}]},R=0,C=!1;return d.forEach((($,j)=>{let H=$.name??"";H===l.component.mark[0].name?R=j:H.indexOf(Pu)>=0&&(C=!0)})),C||d.splice(R+1,0,A),d}},ap={defined:l=>l.type==="point"&&l.resolve==="global"&&l.bind&&l.bind!=="scales"&&!Of(l.bind),parse:(l,s,d)=>fi(s,d),topLevelSignals:(l,s,d)=>{let m=s.name,y=s.project,k=s.bind,A=s.init&&s.init[0],R=qy.defined(s)?"(item().isVoronoi ? datum.datum : datum)":"datum";return y.items.forEach(((C,$)=>{let j=me(`${m}_${C.field}`);d.filter((H=>H.name===j)).length||d.unshift({name:j,...A?{init:fs(A[$])}:{value:null},on:s.events?[{events:s.events,update:`datum && item().mark.marktype !== 'group' ? ${R}[${h.stringValue(C.field)}] : null`}]:[],bind:k[C.field]??k[C.channel]??k})})),d},signals:(l,s,d)=>{let m=s.name,y=s.project,k=d.filter(($=>$.name===m+_o))[0],A=m+Ou,R=y.items.map(($=>me(`${m}_${$.field}`))),C=R.map(($=>`${$} !== null`)).join(" && ");return R.length&&(k.update=`${C} ? {fields: ${A}, values: [${R.join(", ")}]} : null`),delete k.value,delete k.on,d}},$u="_toggle",Wy={defined:l=>l.type==="point"&&!!l.toggle,signals:(l,s,d)=>d.concat({name:s.name+$u,value:!1,on:[{events:s.events,update:s.toggle}]}),modifyExpr:(l,s)=>{let d=s.name+_o,m=s.name+$u;return`${m} ? null : ${d}, `+(s.resolve==="global"?`${m} ? null : true, `:`${m} ? null : {unit: ${Vr(l)}}, `)+`${m} ? ${d} : null`}},Vy={defined:l=>l.clear!==void 0&&l.clear!==!1,parse:(l,s)=>{s.clear&&(s.clear=h.isString(s.clear)?h.parseSelector(s.clear,"view"):s.clear)},topLevelSignals:(l,s,d)=>{if(ap.defined(s))for(let m of s.project.items){let y=d.findIndex((k=>k.name===me(`${s.name}_${m.field}`)));y!==-1&&d[y].on.push({events:s.clear,update:"null"})}return d},signals:(l,s,d)=>{function m(y,k){y!==-1&&d[y].on&&d[y].on.push({events:s.clear,update:k})}if(s.type==="interval")for(let y of s.project.items){let k=d.findIndex((A=>A.name===y.signals.visual));m(k,"[0, 0]"),k===-1&&m(d.findIndex((A=>A.name===y.signals.data)),"null")}else{let y=d.findIndex((k=>k.name===s.name+_o));m(y,"null"),Wy.defined(s)&&(y=d.findIndex((k=>k.name===s.name+$u)),m(y,"false"))}return d}},Yy={defined:l=>{let s=l.resolve==="global"&&l.bind&&Of(l.bind),d=l.project.items.length===1&&l.project.items[0].field!==ba;return s&&!d&&$e("Legend bindings are only supported for selections over an individual field or encoding channel."),s&&d},parse:(l,s,d)=>{let m=U(d);if(m.select=h.isString(m.select)?{type:m.select,toggle:s.toggle}:{...m.select,toggle:s.toggle},fi(s,m),h.isObject(d.select)&&(d.select.on||d.select.clear)){let A='event.item && indexof(event.item.mark.role, "legend") < 0';for(let R of s.events)R.filter=h.array(R.filter??[]),R.filter.includes(A)||R.filter.push(A)}let y=Df(s.bind)?s.bind.legend:"click",k=h.isString(y)?h.parseSelector(y,"view"):h.array(y);s.bind={legend:{merge:k}}},topLevelSignals:(l,s,d)=>{let m=s.name,y=Df(s.bind)&&s.bind.legend,k=A=>R=>{let C=U(R);return C.markname=A,C};for(let A of s.project.items){if(!A.hasLegend)continue;let R=`${me(A.field)}_legend`,C=`${m}_${R}`;if(d.filter(($=>$.name===C)).length===0){let $=y.merge.map(k(`${R}_symbols`)).concat(y.merge.map(k(`${R}_labels`))).concat(y.merge.map(k(`${R}_entries`)));d.unshift({name:C,...s.init?{}:{value:null},on:[{events:$,update:"isDefined(datum.value) ? datum.value : item().items[0].items[0].datum.value",force:!0},{events:y.merge,update:`!event.item || !datum ? null : ${C}`,force:!0}]})}}return d},signals:(l,s,d)=>{let m=s.name,y=s.project,k=d.find((H=>H.name===m+_o)),A=m+Ou,R=y.items.filter((H=>H.hasLegend)).map((H=>me(`${m}_${me(H.field)}_legend`))),C=`${R.map((H=>`${H} !== null`)).join(" && ")} ? {fields: ${A}, values: [${R.join(", ")}]} : null`;s.events&&R.length>0?k.on.push({events:R.map((H=>({signal:H}))),update:C}):R.length>0&&(k.update=C,delete k.value,delete k.on);let $=d.find((H=>H.name===m+$u)),j=Df(s.bind)&&s.bind.legend;return $&&(s.events?$.on.push({...$.on[0],events:j}):$.on[0].events=j),d}},sg="_translate_anchor",Ky="_translate_delta",Xy={defined:l=>l.type==="interval"&&l.translate,signals:(l,s,d)=>{let m=s.name,y=Cr.defined(s),k=m+sg,{x:A,y:R}=s.project.hasChannel,C=h.parseSelector(s.translate,"scope");return y||(C=C.map(($=>($.between[0].markname=m+wo,$)))),d.push({name:k,value:{},on:[{events:C.map(($=>$.between[0])),update:"{x: x(unit), y: y(unit)"+(A!==void 0?`, extent_x: ${y?Gn(l,et):`slice(${A.signals.visual})`}`:"")+(R!==void 0?`, extent_y: ${y?Gn(l,nt):`slice(${R.signals.visual})`}`:"")+"}"}]},{name:m+Ky,value:{},on:[{events:C,update:`{x: ${k}.x - x(unit), y: ${k}.y - y(unit)}`}]}),A!==void 0&&lg(l,s,A,"width",d),R!==void 0&&lg(l,s,R,"height",d),d}};function lg(l,s,d,m,y){let k=s.name,A=k+sg,R=k+Ky,C=d.channel,$=Cr.defined(s),j=y.filter((ge=>ge.name===d.signals[$?"data":"visual"]))[0],H=l.getSizeSignalRef(m).signal,ee=l.getScaleComponent(C),ae=ee&&ee.get("type"),ne=ee&&ee.get("reverse"),de=`${A}.extent_${C}`,he=`${$&&ee?ae==="log"?"panLog":ae==="symlog"?"panSymlog":ae==="pow"?"panPow":"panLinear":"panLinear"}(${de}, ${`${$?C===et?ne?"":"-":ne?"-":"":""}${R}.${C} / ${$?`${H}`:`span(${de})`}`}${$?ae==="pow"?`, ${ee.get("exponent")??1}`:ae==="symlog"?`, ${ee.get("constant")??1}`:"":""})`;j.on.push({events:{signal:R},update:$?he:`clampRange(${he}, 0, ${H})`})}let cg="_zoom_anchor",ug="_zoom_delta",dg={defined:l=>l.type==="interval"&&l.zoom,signals:(l,s,d)=>{let m=s.name,y=Cr.defined(s),k=m+ug,{x:A,y:R}=s.project.hasChannel,C=h.stringValue(l.scaleName(et)),$=h.stringValue(l.scaleName(nt)),j=h.parseSelector(s.zoom,"scope");return y||(j=j.map((H=>(H.markname=m+wo,H)))),d.push({name:m+cg,on:[{events:j,update:y?"{"+[C?`x: invert(${C}, x(unit))`:"",$?`y: invert(${$}, y(unit))`:""].filter((H=>H)).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:k,on:[{events:j,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),A!==void 0&&Bu(l,s,A,"width",d),R!==void 0&&Bu(l,s,R,"height",d),d}};function Bu(l,s,d,m,y){let k=s.name,A=d.channel,R=Cr.defined(s),C=y.filter((de=>de.name===d.signals[R?"data":"visual"]))[0],$=l.getSizeSignalRef(m).signal,j=l.getScaleComponent(A),H=j&&j.get("type"),ee=R?Gn(l,A):C.name,ae=k+ug,ne=`${R&&j?H==="log"?"zoomLog":H==="symlog"?"zoomSymlog":H==="pow"?"zoomPow":"zoomLinear":"zoomLinear"}(${ee}, ${`${k}${cg}.${A}`}, ${ae}${R?H==="pow"?`, ${j.get("exponent")??1}`:H==="symlog"?`, ${j.get("constant")??1}`:"":""})`;C.on.push({events:{signal:ae},update:R?ne:`clampRange(${ne}, 0, ${$})`})}let hs="_store",_o="_tuple",Zy="_modify",fg="vlSelectionResolve",il=[rl,rg,Vi,Wy,ap,Cr,Yy,Vy,Xy,dg,qy];function Vr(l){let{escape:s}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{escape:!0},d=s?h.stringValue(l.name):l.name,m=(function(y){let k=y.parent;for(;k&&!Kr(k);)k=k.parent;return k})(l);if(m){let{facet:y}=m;for(let k of zr)y[k]&&(d+=` + '__facet_${k}_' + (facet[${h.stringValue(m.vgField(k))}])`)}return d}function pg(l){return Ve(l.component.selection??{}).reduce(((s,d)=>s||d.project.hasSelectionId),!1)}function fi(l,s){!h.isString(s.select)&&s.select.on||delete l.events,!h.isString(s.select)&&s.select.clear||delete l.clear,!h.isString(s.select)&&s.select.toggle||delete l.toggle}function Yi(l){let s=[];return l.type==="Identifier"?[l.name]:l.type==="Literal"?[l.value]:(l.type==="MemberExpression"&&(s.push(...Yi(l.object)),s.push(...Yi(l.property))),s)}function ip(l){return l.object.type==="MemberExpression"?ip(l.object):l.object.name==="datum"}function op(l){let s=h.parseExpression(l),d=new Set;return s.visit((m=>{m.type==="MemberExpression"&&ip(m)&&d.add(Yi(m).slice(1).join("."))})),d}class pi extends Kt{clone(){return new pi(null,this.model,U(this.filter))}constructor(s,d,m){super(s),this.model=d,this.filter=m,ct(this,"expr",void 0),ct(this,"_dependentFields",void 0),this.expr=Ki(this.model,this.filter,this),this._dependentFields=op(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function Ec(l,s,d){let m=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"datum",y=h.isString(s)?s:s.param,k=me(y),A=h.stringValue(k+hs),R;try{R=l.getSelectionComponent(k,y)}catch{return`!!${k}`}if(R.project.timeUnit){let j=d??l.component.data.raw,H=R.project.timeUnit.clone();j.parent?H.insertAsParentOf(j):j.parent=H}let C=`${R.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest("}${A}, ${m}${R.resolve==="global"?")":`, ${h.stringValue(R.resolve)})`}`,$=`length(data(${A}))`;return s.empty===!1?`${$} && ${C}`:`!${$} || ${C}`}function xo(l,s,d){let m=me(s),y=d.encoding,k,A=d.field;try{k=l.getSelectionComponent(m,s)}catch{return m}if(y||A){if(y&&!A){let R=k.project.items.filter((C=>C.channel===y));!R.length||R.length>1?(A=k.project.items[0].field,$e((R.length?"Multiple ":"No ")+`matching ${h.stringValue(y)} encoding found for selection ${h.stringValue(d.param)}. Using "field": ${h.stringValue(A)}.`)):A=R[0].field}}else A=k.project.items[0].field,k.project.items.length>1&&$e(`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${h.stringValue(A)}.`);return`${k.name}[${h.stringValue(Ot(A))}]`}function Ki(l,s,d){return ke(s,(m=>h.isString(m)?m:(function(y){return y?.param})(m)?Ec(l,m,d):nf(m)))}function ms(l,s,d,m){l.encode??={},l.encode[s]??={},l.encode[s].update??={},l.encode[s].update[d]=m}function Xi(l,s,d){let m=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{header:!1},{disable:y,orient:k,scale:A,labelExpr:R,title:C,zindex:$,...j}=l.combine();if(!y){for(let H in j){let ee=kf[H],ae=j[H];if(ee&&ee!==s&&ee!=="both")delete j[H];else if(sc(ae)){let{condition:ne,...de}=ae,he=h.array(ne),ge=ss[H];if(ge){let{vgProp:Ee,part:Se}=ge;ms(j,Se,Ee,[...he.map((Re=>{let{test:Pe,...qe}=Re;return{test:Ki(null,Pe),...qe}})),de]),delete j[H]}else if(ge===null){let Ee={signal:he.map((Se=>{let{test:Re,...Pe}=Se;return`${Ki(null,Re)} ? ${ts(Pe)} : `})).join("")+ts(de)};j[H]=Ee}}else if(Je(ae)){let ne=ss[H];if(ne){let{vgProp:de,part:he}=ne;ms(j,he,de,ae),delete j[H]}}Y(["labelAlign","labelBaseline"],H)&&j[H]===null&&delete j[H]}if(s==="grid"){if(!j.grid)return;if(j.encode){let{grid:H}=j.encode;j.encode={...H?{grid:H}:{}},ye(j.encode)&&delete j.encode}return{scale:A,orient:k,...j,domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:Tt($,0)}}{if(!m.header&&l.mainExtracted)return;if(R!==void 0){let ee=R;j.encode?.labels?.update&&Je(j.encode.labels.update.text)&&(ee=_t(R,"datum.label",j.encode.labels.update.text.signal)),ms(j,"labels","text",{signal:ee})}if(j.labelAlign===null&&delete j.labelAlign,j.encode){for(let ee of ls)l.hasAxisPart(ee)||delete j.encode[ee];ye(j.encode)&&delete j.encode}let H=(function(ee,ae){if(ee)return h.isArray(ee)&&!dr(ee)?ee.map((ne=>Ef(ne,ae))).join(", "):ee})(C,d);return{scale:A,orient:k,grid:!1,...H?{title:H}:{},...j,...d.aria===!1?{aria:!1}:{},zindex:Tt($,0)}}}}function wc(l){let{axes:s}=l.component,d=[];for(let m of ni)if(s[m]){for(let y of s[m])if(!y.get("disable")&&!y.get("gridScale")){let k=m==="x"?"height":"width",A=l.getSizeSignalRef(k).signal;k!==A&&d.push({name:k,update:A})}}return d}function hi(l,s,d,m){return Object.assign.apply(null,[{},...l.map((y=>{if(y==="axisOrient"){let k=d==="x"?"bottom":"left",A=s[d==="x"?"axisBottom":"axisLeft"]||{},R=s[d==="x"?"axisTop":"axisRight"]||{},C=new Set([...we(A),...we(R)]),$={};for(let j of C.values())$[j]={signal:`${m.signal} === "${k}" ? ${fr(A[j])} : ${fr(R[j])}`};return $}return s[y]}))])}function m_(l,s){let d=[{}];for(let m of l){let y=s[m]?.style;if(y){y=h.array(y);for(let k of y)d.push(s.style[k])}}return Object.assign.apply(null,d)}function hg(l,s,d){let m=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},y=$0(l,d,s);if(y!==void 0)return{configFrom:"style",configValue:y};for(let k of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(m[k]?.[l]!==void 0)return{configFrom:k,configValue:m[k][l]};return{}}let Jy={scale:l=>{let{model:s,channel:d}=l;return s.scaleName(d)},format:l=>{let{format:s}=l;return s},formatType:l=>{let{formatType:s}=l;return s},grid:l=>{let{fieldOrDatumDef:s,axis:d,scaleType:m}=l;return d.grid??(function(y,k){return!zn(y)&&ze(k)&&!Jt(k?.bin)&&!$n(k?.bin)})(m,s)},gridScale:l=>{let{model:s,channel:d}=l;return(function(m,y){let k=y==="x"?"y":"x";if(m.getScaleComponent(k))return m.scaleName(k)})(s,d)},labelAlign:l=>{let{axis:s,labelAngle:d,orient:m,channel:y}=l;return s.labelAlign||ev(d,m,y)},labelAngle:l=>{let{labelAngle:s}=l;return s},labelBaseline:l=>{let{axis:s,labelAngle:d,orient:m,channel:y}=l;return s.labelBaseline||Qy(d,m,y)},labelFlush:l=>{let{axis:s,fieldOrDatumDef:d,channel:m}=l;return s.labelFlush??(function(y,k){if(k==="x"&&Y(["quantitative","temporal"],y))return!0})(d.type,m)},labelOverlap:l=>{let{axis:s,fieldOrDatumDef:d,scaleType:m}=l;return s.labelOverlap??(function(y,k,A,R){if(A&&!h.isObject(R)||y!=="nominal"&&y!=="ordinal")return k!=="log"&&k!=="symlog"||"greedy"})(d.type,m,ze(d)&&!!d.timeUnit,ze(d)?d.sort:void 0)},orient:l=>{let{orient:s}=l;return s},tickCount:l=>{let{channel:s,model:d,axis:m,fieldOrDatumDef:y,scaleType:k}=l,A=s==="x"?"width":s==="y"?"height":void 0,R=A?d.getSizeSignalRef(A):void 0;return m.tickCount??(function(C){let{fieldOrDatumDef:$,scaleType:j,size:H,values:ee}=C;if(!ee&&!zn(j)&&j!=="log"){if(ze($)){if(Jt($.bin))return{signal:`ceil(${H.signal}/10)`};if($.timeUnit&&Y(["month","hours","day","quarter"],Un($.timeUnit)?.unit))return}return{signal:`ceil(${H.signal}/40)`}}})({fieldOrDatumDef:y,scaleType:k,size:R,values:m.values})},tickMinStep:function(l){let{format:s,fieldOrDatumDef:d}=l;if(s==="d")return 1;if(ze(d)){let{timeUnit:m}=d;if(m){let y=J0(m);if(y)return{signal:y}}}},title:l=>{let{axis:s,model:d,channel:m}=l;if(s.title!==void 0)return s.title;let y=tv(d,m);if(y!==void 0)return y;let k=d.typedFieldDef(m),A=m==="x"?"x2":"y2",R=d.fieldDef(A);return Wl(k?[om(k)]:[],ze(R)?[om(R)]:[])},values:l=>{let{axis:s,fieldOrDatumDef:d}=l;return(function(m,y){let k=m.values;if(h.isArray(k))return gu(y,k);if(Je(k))return k})(s,d)},zindex:l=>{let{axis:s,fieldOrDatumDef:d,mark:m}=l;return s.zindex??(function(y,k){return y==="rect"&&rc(k)?1:0})(m,d)}};function mg(l){return`(((${l.signal} % 360) + 360) % 360)`}function Qy(l,s,d,m){if(l!==void 0){if(d==="x"){if(Je(l)){let y=mg(l);return{signal:`(45 < ${y} && ${y} < 135) || (225 < ${y} && ${y} < 315) ? "middle" :(${y} <= 45 || 315 <= ${y}) === ${Je(s)?`(${s.signal} === "top")`:s==="top"} ? "bottom" : "top"`}}if(45<l&&l<135||225<l&&l<315)return"middle";if(Je(s)){let y=l<=45||315<=l?"===":"!==";return{signal:`${s.signal} ${y} "top" ? "bottom" : "top"`}}return(l<=45||315<=l)==(s==="top")?"bottom":"top"}if(Je(l)){let y=mg(l);return{signal:`${y} <= 45 || 315 <= ${y} || (135 <= ${y} && ${y} <= 225) ? ${m?'"middle"':"null"} : (45 <= ${y} && ${y} <= 135) === ${Je(s)?`(${s.signal} === "left")`:s==="left"} ? "top" : "bottom"`}}if(l<=45||315<=l||135<=l&&l<=225)return m?"middle":null;if(Je(s)){let y=45<=l&&l<=135?"===":"!==";return{signal:`${s.signal} ${y} "left" ? "top" : "bottom"`}}return(45<=l&&l<=135)==(s==="left")?"top":"bottom"}}function ev(l,s,d){if(l===void 0)return;let m=d==="x",y=m?0:90,k=m?"bottom":"left";if(Je(l)){let A=mg(l);return{signal:`(${y?`(${A} + 90)`:A} % 180 === 0) ? ${m?null:'"center"'} :(${y} < ${A} && ${A} < ${180+y}) === ${Je(s)?`(${s.signal} === "${k}")`:s===k} ? "left" : "right"`}}if((l+y)%180==0)return m?null:"center";if(Je(s)){let A=y<l&&l<180+y?"===":"!==";return{signal:`${`${s.signal} ${A} "${k}"`} ? "left" : "right"`}}return(y<l&&l<180+y)==(s===k)?"left":"right"}function tv(l,s){let d=s==="x"?"x2":"y2",m=l.fieldDef(s),y=l.fieldDef(d),k=m?m.title:void 0,A=y?y.title:void 0;return k&&A?ai(k,A):k||A||(k!==void 0?k:A!==void 0?A:void 0)}class ol extends Kt{clone(){return new ol(null,U(this.transform))}constructor(s,d){super(s),this.transform=d,ct(this,"_dependentFields",void 0),this._dependentFields=op(this.transform.calculate)}static parseAllForSortIndex(s,d){return d.forEachFieldDef(((m,y)=>{if($i(m)&&pu(m.sort)){let{field:k,timeUnit:A}=m,R=m.sort,C=R.map((($,j)=>`${nf({field:k,timeUnit:A,equal:$})} ? ${j} : `)).join("")+R.length;s=new ol(s,{calculate:C,as:sl(m,y,{forAs:!0})})}})),s}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${V(this.transform)}`}}function sl(l,s,d){return Ge(l,{prefix:s,suffix:"sort_index",...d??{}})}function Uu(l,s){return Y(["top","bottom"],s)?"column":Y(["left","right"],s)||l==="row"?"row":"column"}function Zi(l,s,d,m){let y=m==="row"?d.headerRow:m==="column"?d.headerColumn:d.headerFacet;return Tt((s||{})[l],y[l],d.header[l])}function zu(l,s,d,m){let y={};for(let k of l){let A=Zi(k,s||{},d,m);A!==void 0&&(y[k]=A)}return y}let kc=["row","column"],Gu=["header","footer"];function gs(l,s){let d=l.component.layoutHeaders[s].title,m=l.config?l.config:void 0,y=l.component.layoutHeaders[s].facetFieldDef?l.component.layoutHeaders[s].facetFieldDef:void 0,{titleAnchor:k,titleAngle:A,titleOrient:R}=zu(["titleAnchor","titleAngle","titleOrient"],y.header,m,s),C=Uu(s,R),$=$r(A);return{name:`${s}-title`,type:"group",role:`${C}-title`,title:{text:d,...s==="row"?{orient:"left"}:{},style:"guide-title",...gg($,C),...On(C,$,k),...ju(m,y,s,wm,wu)}}}function On(l,s){switch(arguments.length>2&&arguments[2]!==void 0?arguments[2]:"middle"){case"start":return{align:"left"};case"end":return{align:"right"}}let d=ev(s,l==="row"?"left":"top",l==="row"?"y":"x");return d?{align:d}:{}}function gg(l,s){let d=Qy(l,s==="row"?"left":"top",s==="row"?"y":"x",!0);return d?{baseline:d}:{}}function nv(l,s){let d=l.component.layoutHeaders[s],m=[];for(let y of Gu)if(d[y])for(let k of d[y]){let A=ll(l,s,y,d,k);A!=null&&m.push(A)}return m}function sp(l,s){let{sort:d}=l;return li(d)?{field:Ge(d,{expr:"datum"}),order:d.order??"ascending"}:h.isArray(d)?{field:sl(l,s,{expr:"datum"}),order:"ascending"}:{field:Ge(l,{expr:"datum"}),order:d??"ascending"}}function So(l,s,d){let{format:m,formatType:y,labelAngle:k,labelAnchor:A,labelOrient:R,labelExpr:C}=zu(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],l.header,d,s),$=tm({fieldOrDatumDef:l,format:m,formatType:y,expr:"parent",config:d}).signal,j=Uu(s,R);return{text:{signal:C?_t(_t(C,"datum.label",$),"datum.value",Ge(l,{expr:"parent"})):$},...s==="row"?{orient:"left"}:{},style:"guide-label",frame:"group",...gg(k,j),...On(j,k,A),...ju(d,l,s,km,ku)}}function ll(l,s,d,m,y){if(y){let k=null,{facetFieldDef:A}=m,R=l.config?l.config:void 0;if(A&&y.labels){let{labelOrient:H}=zu(["labelOrient"],A.header,R,s);(s==="row"&&!Y(["top","bottom"],H)||s==="column"&&!Y(["left","right"],H))&&(k=So(A,s,R))}let C=Kr(l)&&!Ql(l.facet),$=y.axes,j=$?.length>0;if(k||j){let H=s==="row"?"height":"width";return{name:l.getName(`${s}_${d}`),type:"group",role:`${s}-${d}`,...m.facetFieldDef?{from:{data:l.getName(`${s}_domain`)},sort:sp(A,s)}:{},...j&&C?{from:{data:l.getName(`facet_domain_${s}`)}}:{},...k?{title:k}:{},...y.sizeSignal?{encode:{update:{[H]:y.sizeSignal}}}:{},...j?{axes:$}:{}}}}return null}let rv={column:{start:0,end:1},row:{start:1,end:0}};function av(l,s){return rv[s][l]}function ju(l,s,d,m,y){let k={};for(let A of m){if(!y[A])continue;let R=Zi(A,s?.header,l,d);R!==void 0&&(k[y[A]]=R)}return k}function ya(l){return[...Hu(l,"width"),...Hu(l,"height"),...Hu(l,"childWidth"),...Hu(l,"childHeight")]}function Hu(l,s){let d=s==="width"?"x":"y",m=l.component.layoutSize.get(s);if(!m||m==="merged")return[];let y=l.getSizeSignalRef(s).signal;if(m==="step"){let k=l.getScaleComponent(d);if(k){let A=k.get("type"),R=k.get("range");if(zn(A)&&go(R)){let C=l.scaleName(d);return Kr(l.parent)&&l.parent.component.resolve.scale[d]==="independent"?[qu(C,R)]:[qu(C,R),{name:y,update:lp(C,k,`domain('${C}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}if(m=="container"){let k=y.endsWith("width"),A=k?"containerSize()[0]":"containerSize()[1]",R=`isFinite(${A}) ? ${A} : ${us(l.config.view,k?"width":"height")}`;return[{name:y,init:R,on:[{update:R,events:"window:resize"}]}]}return[{name:y,value:m}]}function qu(l,s){let d=`${l}_step`;return Je(s.step)?{name:d,update:s.step.signal}:{name:d,value:s.step}}function lp(l,s,d){let m=s.get("type"),y=s.get("padding"),k=Tt(s.get("paddingOuter"),y),A=s.get("paddingInner");return A=m==="band"?A!==void 0?A:y:1,`bandspace(${d}, ${fr(A)}, ${fr(k)}) * ${l}_step`}function bg(l){return l==="childWidth"?"width":l==="childHeight"?"height":l}function yg(l,s){return we(l).reduce(((d,m)=>{let y=l[m];return{...d,...bc(s,y,m,(k=>sn(k.value)))}}),{})}function vg(l,s){if(Kr(s))return l==="theta"?"independent":"shared";if(Es(s))return"shared";if(Ji(s))return un(l)||l==="theta"||l==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function cp(l,s){let d=l.scale[s],m=un(s)?"axis":"legend";return d==="independent"?(l[m][s]==="shared"&&$e((function(y){return`Setting the scale to be independent for "${y}" means we also have to set the guide (axis or legend) to be independent.`})(s)),"independent"):l[m][s]||"shared"}let Eg=we({aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1,disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1});class iv extends ji{}let cl={symbols:function(l,s){let{fieldOrDatumDef:d,model:m,channel:y,legendCmpt:k,legendType:A}=s;if(A!=="symbol")return;let{markDef:R,encoding:C,config:$,mark:j}=m,H=R.filled&&j!=="trail",ee={...Gd({},m,Wk),...Lu(m,{filled:H})},ae=k.get("symbolOpacity")??$.legend.symbolOpacity,ne=k.get("symbolFillColor")??$.legend.symbolFillColor,de=k.get("symbolStrokeColor")??$.legend.symbolStrokeColor,he=ae===void 0?wg(C.opacity)??R.opacity:void 0;if(ee.fill){if(y==="fill"||H&&y===Fe)delete ee.fill;else if(ee.fill.field)ne?delete ee.fill:(ee.fill=sn($.legend.symbolBaseFillColor??"black"),ee.fillOpacity=sn(he??1));else if(h.isArray(ee.fill)){let ge=kg(C.fill??C.color)??R.fill??(H&&R.color);ge&&(ee.fill=sn(ge))}}if(ee.stroke){if(y==="stroke"||!H&&y===Fe)delete ee.stroke;else if(ee.stroke.field||de)delete ee.stroke;else if(h.isArray(ee.stroke)){let ge=Tt(kg(C.stroke||C.color),R.stroke,H?R.color:void 0);ge&&(ee.stroke={value:ge})}}if(y!==Si){let ge=ze(d)&&Wu(m,k,d);ge?ee.opacity=[{test:ge,...sn(he??1)},sn($.legend.unselectedOpacity)]:he&&(ee.opacity=sn(he))}return ee={...ee,...l},ye(ee)?void 0:ee},gradient:function(l,s){let{model:d,legendType:m,legendCmpt:y}=s;if(m!=="gradient")return;let{config:k,markDef:A,encoding:R}=d,C={},$=(y.get("gradientOpacity")??k.legend.gradientOpacity)===void 0?wg(R.opacity)||A.opacity:void 0;return $&&(C.opacity=sn($)),C={...C,...l},ye(C)?void 0:C},labels:function(l,s){let{fieldOrDatumDef:d,model:m,channel:y,legendCmpt:k}=s,A=m.legend(y)||{},R=m.config,C=ze(d)?Wu(m,k,d):void 0,$=C?[{test:C,value:1},{value:R.legend.unselectedOpacity}]:void 0,{format:j,formatType:H}=A,ee;Xs(H)?ee=si({fieldOrDatumDef:d,field:"datum.value",format:j,formatType:H,config:R}):j===void 0&&H===void 0&&R.customFormatTypes&&(d.type==="quantitative"&&R.numberFormatType?ee=si({fieldOrDatumDef:d,field:"datum.value",format:R.numberFormat,formatType:R.numberFormatType,config:R}):d.type==="temporal"&&R.timeFormatType&&ze(d)&&d.timeUnit===void 0&&(ee=si({fieldOrDatumDef:d,field:"datum.value",format:R.timeFormat,formatType:R.timeFormatType,config:R})));let ae={...$?{opacity:$}:{},...ee?{text:ee}:{},...l};return ye(ae)?void 0:ae},entries:function(l,s){let{legendCmpt:d}=s;return d.get("selections")?.length?{...l,fill:{value:"transparent"}}:l}};function wg(l){return _g(l,((s,d)=>Math.max(s,d.value)))}function kg(l){return _g(l,((s,d)=>Tt(s,d.value)))}function _g(l,s){return(function(d){let m=d?.condition;return!!m&&(h.isArray(m)||ma(m))})(l)?h.array(l.condition).reduce(s,l.value):ma(l)?l.value:void 0}function Wu(l,s,d){let m=s.get("selections");if(!m?.length)return;let y=h.stringValue(d.field);return m.map((k=>`(!length(data(${h.stringValue(me(k)+hs)})) || (${k}[${y}] && indexof(${k}[${y}], datum.value) >= 0))`)).join(" || ")}let mi={direction:l=>{let{direction:s}=l;return s},format:l=>{let{fieldOrDatumDef:s,legend:d,config:m}=l,{format:y,formatType:k}=d;return dy(s,s.type,y,k,m,!1)},formatType:l=>{let{legend:s,fieldOrDatumDef:d,scaleType:m}=l,{formatType:y}=s;return fy(y,d,m)},gradientLength:l=>{let{legend:s,legendConfig:d}=l;return s.gradientLength??d.gradientLength??(function(m){let{legendConfig:y,model:k,direction:A,orient:R,scaleType:C}=m,{gradientHorizontalMaxLength:$,gradientHorizontalMinLength:j,gradientVerticalMaxLength:H,gradientVerticalMinLength:ee}=y;if(za(C))return A==="horizontal"?R==="top"||R==="bottom"?up(k,"width",j,$):j:up(k,"height",ee,H)})(l)},labelOverlap:l=>{let{legend:s,legendConfig:d,scaleType:m}=l;return s.labelOverlap??d.labelOverlap??(function(y){if(Y(["quantile","threshold","log","symlog"],y))return"greedy"})(m)},symbolType:l=>{let{legend:s,markDef:d,channel:m,encoding:y}=l;return s.symbolType??(function(k,A,R,C){if(A!=="shape"){let $=kg(R)??C;if($)return $}switch(k){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"arc":case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}})(d.type,m,y.shape,d.shape)},title:l=>{let{fieldOrDatumDef:s,config:d}=l;return os(s,d,{allowDisabling:!0})},type:l=>{let{legendType:s,scaleType:d,channel:m}=l;if(Qo(m)&&za(d)){if(s==="gradient")return}else if(s==="symbol")return;return s},values:l=>{let{fieldOrDatumDef:s,legend:d}=l;return(function(m,y){let k=m.values;if(h.isArray(k))return gu(y,k);if(Je(k))return k})(d,s)}};function xg(l){let{legend:s}=l;return Tt(s.type,(function(d){let{channel:m,timeUnit:y,scaleType:k}=d;if(Qo(m)){if(Y(["quarter","month","day"],y))return"symbol";if(za(k))return"gradient"}return"symbol"})(l))}function Sg(l){let{legendConfig:s,legendType:d,orient:m,legend:y}=l;return y.direction??s[d?"gradientDirection":"symbolDirection"]??(function(k,A){switch(k){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return A==="gradient"?"horizontal":void 0}})(m,d)}function up(l,s,d,m){return{signal:`clamp(${l.getSizeSignalRef(s).signal}, ${d}, ${m})`}}function dp(l){let s=dn(l)?(function(d){let{encoding:m}=d,y={};for(let k of[Fe,...If]){let A=mn(m[k]);A&&d.getScaleComponent(k)&&(k===vn&&ze(A)&&A.type===Vs||(y[k]=Ao(d,k)))}return y})(l):(function(d){let{legends:m,resolve:y}=d.component;for(let k of d.children){dp(k);for(let A of we(k.component.legends))y.legend[A]=cp(d.component.resolve,A),y.legend[A]==="shared"&&(m[A]=Ag(m[A],k.component.legends[A]),m[A]||(y.legend[A]="independent",delete m[A]))}for(let k of we(m))for(let A of d.children)A.component.legends[k]&&y.legend[k]==="shared"&&delete A.component.legends[k];return m})(l);return l.component.legends=s,s}function fp(l,s,d,m){switch(s){case"disable":return d!==void 0;case"values":return!!d?.values;case"title":if(s==="title"&&l===m?.title)return!0}return l===(d||{})[s]}function Ao(l,s){let d=l.legend(s),{markDef:m,encoding:y,config:k}=l,A=k.legend,R=new iv({},(function(Se,Re){let Pe=Se.scaleName(Re);if(Se.mark==="trail"){if(Re==="color")return{stroke:Pe};if(Re==="size")return{strokeWidth:Pe}}return Re==="color"?Se.markDef.filled?{fill:Pe}:{stroke:Pe}:{[Re]:Pe}})(l,s));(function(Se,Re,Pe){let qe=Se.fieldDef(Re)?.field;for(let st of Ve(Se.component.selection??{})){let mt=st.project.hasField[qe]??st.project.hasChannel[Re];if(mt&&Yy.defined(st)){let it=Pe.get("selections")??[];it.push(st.name),Pe.set("selections",it,!1),mt.hasLegend=!0}}})(l,s,R);let C=d!==void 0?!d:A.disable;if(R.set("disable",C,d!==void 0),C)return R;d=d||{};let $=l.getScaleComponent(s).get("type"),j=mn(y[s]),H=ze(j)?Un(j.timeUnit)?.unit:void 0,ee=d.orient||k.legend.orient||"right",ae=xg({legend:d,channel:s,timeUnit:H,scaleType:$}),ne={legend:d,channel:s,model:l,markDef:m,encoding:y,fieldOrDatumDef:j,legendConfig:A,config:k,scaleType:$,orient:ee,legendType:ae,direction:Sg({legend:d,legendType:ae,orient:ee,legendConfig:A})};for(let Se of Eg){if(ae==="gradient"&&Se.startsWith("symbol")||ae==="symbol"&&Se.startsWith("gradient"))continue;let Re=Se in mi?mi[Se](ne):d[Se];if(Re!==void 0){let Pe=fp(Re,Se,d,l.fieldDef(s));(Pe||k.legend[Se]===void 0)&&R.set(Se,Re,Pe)}}let de=d?.encoding??{},he=R.get("selections"),ge={},Ee={fieldOrDatumDef:j,model:l,channel:s,legendCmpt:R,legendType:ae};for(let Se of["labels","legend","title","symbols","gradient","entries"]){let Re=yg(de[Se]??{},l),Pe=Se in cl?cl[Se](Re,Ee):Re;Pe===void 0||ye(Pe)||(ge[Se]={...he?.length&&ze(j)?{name:`${me(j.field)}_legend_${Se}`}:{},...he?.length?{interactive:!!he}:{},update:Pe})}return ye(ge)||R.set("encode",ge,!!d?.encoding),R}function Ag(l,s){if(!l)return s.clone();let d=l.getWithExplicit("orient"),m=s.getWithExplicit("orient");if(d.explicit&&m.explicit&&d.value!==m.value)return;let y=!1;for(let k of Eg){let A=qi(l.getWithExplicit(k),s.getWithExplicit(k),k,"legend",((R,C)=>{switch(k){case"symbolType":return ov(R,C);case"title":return ii(R,C);case"type":return y=!0,Ga("symbol")}return Nu(R,C,k,"legend")}));l.setWithExplicit(k,A)}return y&&(l.implicit?.encode?.gradient&&rt(l.implicit,["encode","gradient"]),l.explicit?.encode?.gradient&&rt(l.explicit,["encode","gradient"])),l}function ov(l,s){return s.value==="circle"?s:l}function pp(l){let s=l.component.legends,d={};for(let m of we(s)){let y=Be(l.getScaleComponent(m).get("domains"));if(d[y])for(let k of d[y])Ag(k,s[m])||d[y].push(s[m]);else d[y]=[s[m].clone()]}return Ve(d).flat().map((m=>(function(y,k){let{disable:A,labelExpr:R,selections:C,...$}=y.combine();if(!A){if(k.aria===!1&&$.aria==null&&($.aria=!1),$.encode?.symbols){let j=$.encode.symbols.update;!j.fill||j.fill.value==="transparent"||j.stroke||$.stroke||(j.stroke={value:"transparent"});for(let H of If)$[H]&&delete j[H]}if($.title||delete $.title,R!==void 0){let j=R;$.encode?.labels?.update&&Je($.encode.labels.update.text)&&(j=_t(R,"datum.label",$.encode.labels.update.text.signal)),(function(H,ee,ae,ne){H.encode??={},H.encode[ee]??={},H.encode[ee].update??={},H.encode[ee].update[ae]=ne})($,"labels","text",{signal:j})}return $}})(m,l.config))).filter((m=>m!==void 0))}function Tg(l){return Es(l)||Ji(l)?(function(s){return s.children.reduce(((d,m)=>d.concat(m.assembleProjections())),Vu(s))})(l):Vu(l)}function Vu(l){let s=l.component.projection;if(!s||s.merged)return[];let d=s.combine(),{name:m}=d;if(s.data){let y={signal:`[${s.size.map((A=>A.signal)).join(", ")}]`},k=s.data.reduce(((A,R)=>{let C=Je(R)?R.signal:`data('${l.lookupDataSource(R)}')`;return Y(A,C)||A.push(C),A}),[]);if(k.length<=0)throw new Error("Projection's fit didn't find any data sources");return[{name:m,size:y,fit:{signal:k.length>1?`[${k.join(", ")}]`:k[0]},...d}]}return[{name:m,translate:{signal:"[width / 2, height / 2]"},...d}]}let Yu=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class Rg extends ji{constructor(s,d,m,y){super({...d},{name:s}),this.specifiedProjection=d,this.size=m,this.data=y,ct(this,"merged",!1)}get isFit(){return!!this.data}}function Cg(l){l.component.projection=dn(l)?(function(s){if(s.hasProjection){let d=Jn(s.specifiedProjection),m=!(d&&(d.scale!=null||d.translate!=null)),y=m?[s.getSizeSignalRef("width"),s.getSizeSignalRef("height")]:void 0,k=m?(function(R){let C=[],{encoding:$}=R;for(let j of[[Br,ot],[ca,ur]])(mn($[j[0]])||mn($[j[1]]))&&C.push({signal:R.getName(`geojson_${C.length}`)});return R.channelHasField(vn)&&R.typedFieldDef(vn).type===Vs&&C.push({signal:R.getName(`geojson_${C.length}`)}),C.length===0&&C.push(R.requestDataName(nn.Main)),C})(s):void 0,A=new Rg(s.projectionName(!0),{...Jn(s.config.projection)??{},...d??{}},y,k);return A.get("type")||A.set("type","equalEarth",!1),A}})(l):(function(s){if(s.children.length===0)return;let d;for(let y of s.children)Cg(y);let m=se(s.children,(y=>{let k=y.component.projection;if(k){if(d){let A=(function(R,C){let $=se(Yu,(j=>!h.hasOwnProperty(R.explicit,j)&&!h.hasOwnProperty(C.explicit,j)||!!(h.hasOwnProperty(R.explicit,j)&&h.hasOwnProperty(C.explicit,j)&&Ne(R.get(j),C.get(j)))));if(Ne(R.size,C.size)){if($)return R;if(Ne(R.explicit,{}))return C;if(Ne(C.explicit,{}))return R}return null})(d,k);return A&&(d=A),!!A}return d=k,!0}return!0}));if(d&&m){let y=s.projectionName(!0),k=new Rg(y,d.specifiedProjection,d.size,U(d.data));for(let A of s.children){let R=A.component.projection;R&&(R.isFit&&k.data.push(...A.component.projection.data),A.renameProjection(R.get("name"),y),R.merged=!0)}return k}})(l)}function sv(l,s,d,m){if(oc(s,d)){let y=dn(l)?l.axis(d)??l.legend(d)??{}:{},k=Ge(s,{expr:"datum"}),A=Ge(s,{expr:"datum",binSuffix:"end"});return{formulaAs:Ge(s,{binSuffix:"range",forAs:!0}),formula:yo(k,A,y.format,y.formatType,m)}}return{}}function hp(l,s){return`${Oi(l)}_${s}`}function To(l,s,d){let m=hp(ut(d,void 0)??{},s);return l.getName(`${m}_bins`)}function Ng(l,s,d){let m,y;m=(function($){return"as"in $})(l)?h.isString(l.as)?[l.as,`${l.as}_end`]:[l.as[0],l.as[1]]:[Ge(l,{forAs:!0}),Ge(l,{binSuffix:"end",forAs:!0})];let k={...ut(s,void 0)},A=hp(k,l.field),{signal:R,extentSignal:C}=(function($,j){return{signal:$.getName(`${j}_bins`),extentSignal:$.getName(`${j}_extent`)}})(d,A);if($a(k.extent)){let $=k.extent;y=xo(d,$.param,$),delete k.extent}return{key:A,binComponent:{bin:k,field:l.field,as:[m],...R?{signal:R}:{},...C?{extentSignal:C}:{},...y?{span:y}:{}}}}class gi extends Kt{clone(){return new gi(null,U(this.bins))}constructor(s,d){super(s),this.bins=d}static makeFromEncoding(s,d){let m=d.reduceFieldDef(((y,k,A)=>{if(hr(k)&&Jt(k.bin)){let{key:R,binComponent:C}=Ng(k,k.bin,d);y[R]={...C,...y[R],...sv(d,k,A,d.config)}}return y}),{});return ye(m)?null:new gi(s,m)}static makeFromTransform(s,d,m){let{key:y,binComponent:k}=Ng(d,d.bin,m);return new gi(s,{[y]:k})}merge(s,d){for(let m of we(s.bins))m in this.bins?(d(s.bins[m].signal,this.bins[m].signal),this.bins[m].as=be([...this.bins[m].as,...s.bins[m].as],V)):this.bins[m]=s.bins[m];for(let m of s.children)s.removeChild(m),m.parent=this;s.remove()}producedFields(){return new Set(Ve(this.bins).map((s=>s.as)).flat(2))}dependentFields(){return new Set(Ve(this.bins).map((s=>s.field)))}hash(){return`Bin ${V(this.bins)}`}assemble(){return Ve(this.bins).flatMap((s=>{let d=[],[m,...y]=s.as,{extent:k,...A}=s.bin,R={type:"bin",field:Ot(s.field),as:m,signal:s.signal,...$a(k)?{extent:null}:{extent:k},...s.span?{span:{signal:`span(${s.span})`}}:{},...A};!k&&s.extentSignal&&(d.push({type:"extent",field:Ot(s.field),signal:s.extentSignal}),R.extent={signal:s.extentSignal}),d.push(R);for(let C of y)for(let $=0;$<2;$++)d.push({type:"formula",expr:Ge({field:m[$]},{expr:"datum"}),as:C[$]});return s.formula&&d.push({type:"formula",expr:s.formula,as:s.formulaAs}),d}))}}function lv(l,s,d,m){let y=dn(m)?m.encoding[Ri(s)]:void 0;if(hr(d)&&dn(m)&&mf(d,y,m.markDef,m.config)){l.add(Ge(d,{})),l.add(Ge(d,{suffix:"end"}));let{mark:k,markDef:A,config:R}=m,C=Fi({fieldDef:d,markDef:A,config:R});du(k)&&C!==.5&&un(s)&&(l.add(Ge(d,{suffix:Jf})),l.add(Ge(d,{suffix:Gt}))),d.bin&&oc(d,s)&&l.add(Ge(d,{binSuffix:"range"}))}else if(Jo(s)){let k=xh(s);l.add(m.getName(k))}else l.add(Ge(d));return $i(d)&&(function(k){return h.isObject(k)&&"field"in k})(d.scale?.range)&&l.add(d.scale.range.field),l}class Yr extends Kt{clone(){return new Yr(null,new Set(this.dimensions),U(this.measures))}constructor(s,d,m){super(s),this.dimensions=d,this.measures=m}get groupBy(){return this.dimensions}static makeFromEncoding(s,d){let m=!1;d.forEachFieldDef((A=>{A.aggregate&&(m=!0)}));let y={},k=new Set;return m?(d.forEachFieldDef(((A,R)=>{let{aggregate:C,field:$}=A;if(C)if(C==="count")y["*"]??={},y["*"].count=new Set([Ge(A,{forAs:!0})]);else{if(ri(C)||Ni(C)){let j=ri(C)?"argmin":"argmax",H=C[j];y[H]??={},y[H][j]=new Set([Ge({op:j,field:H},{forAs:!0})])}else y[$]??={},y[$][C]=new Set([Ge(A,{forAs:!0})]);Fa(R)&&d.scaleDomain(R)==="unaggregated"&&(y[$]??={},y[$].min=new Set([Ge({field:$,aggregate:"min"},{forAs:!0})]),y[$].max=new Set([Ge({field:$,aggregate:"max"},{forAs:!0})]))}else lv(k,R,A,d)})),k.size+we(y).length===0?null:new Yr(s,k,y)):null}static makeFromTransform(s,d){let m=new Set,y={};for(let k of d.aggregate){let{op:A,field:R,as:C}=k;A&&(A==="count"?(y["*"]??={},y["*"].count=new Set([C||Ge(k,{forAs:!0})])):(y[R]??={},y[R][A]=new Set([C||Ge(k,{forAs:!0})])))}for(let k of d.groupby??[])m.add(k);return m.size+we(y).length===0?null:new Yr(s,m,y)}merge(s){return xe(this.dimensions,s.dimensions)?((function(d,m){for(let y of we(m)){let k=m[y];for(let A of we(k))y in d?d[y][A]=new Set([...d[y][A]??[],...k[A]]):d[y]={[A]:k[A]}}})(this.measures,s.measures),!0):((function(){ou.debug(...arguments)})("different dimensions, cannot merge"),!1)}addDimensions(s){s.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...we(this.measures)])}producedFields(){let s=new Set;for(let d of we(this.measures))for(let m of we(this.measures[d])){let y=this.measures[d][m];y.size===0?s.add(`${m}_${d}`):y.forEach(s.add,s)}return s}hash(){return`Aggregate ${V({dimensions:this.dimensions,measures:this.measures})}`}assemble(){let s=[],d=[],m=[];for(let y of we(this.measures))for(let k of we(this.measures[y]))for(let A of this.measures[y][k])m.push(A),s.push(k),d.push(y==="*"?null:Ot(y));return{type:"aggregate",groupby:[...this.dimensions].map(Ot),ops:s,fields:d,as:m}}}class ul extends Kt{constructor(s,d,m,y){super(s),this.model=d,this.name=m,this.data=y,ct(this,"column",void 0),ct(this,"row",void 0),ct(this,"facet",void 0),ct(this,"childModel",void 0);for(let k of zr){let A=d.facet[k];if(A){let{bin:R,sort:C}=A;this[k]={name:d.getName(`${k}_domain`),fields:[Ge(A),...Jt(R)?[Ge(A,{binSuffix:"end"})]:[]],...li(C)?{sortField:C}:h.isArray(C)?{sortIndexField:sl(A,k)}:{}}}}this.childModel=d.child}hash(){let s="Facet";for(let d of zr)this[d]&&(s+=` ${d.charAt(0)}:${V(this[d])}`);return s}get fields(){let s=[];for(let d of zr)this[d]?.fields&&s.push(...this[d].fields);return s}dependentFields(){let s=new Set(this.fields);for(let d of zr)this[d]&&(this[d].sortField&&s.add(this[d].sortField.field),this[d].sortIndexField&&s.add(this[d].sortIndexField));return s}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){let s={};for(let d of ni){let m=this.childModel.component.scales[d];if(m&&!m.merged){let y=m.get("type"),k=m.get("range");if(zn(y)&&go(k)){let A=Pg(vs(this.childModel,d));A?s[d]=A:$e(pr(d))}}}return s}assembleRowColumnHeaderData(s,d,m){let y={row:"y",column:"x",facet:void 0}[s],k=[],A=[],R=[];y&&m&&m[y]&&(d?(k.push(`distinct_${m[y]}`),A.push("max")):(k.push(m[y]),A.push("distinct")),R.push(`distinct_${m[y]}`));let{sortField:C,sortIndexField:$}=this[s];if(C){let{op:j=fu,field:H}=C;k.push(H),A.push(j),R.push(Ge(C,{forAs:!0}))}else $&&(k.push($),A.push("max"),R.push($));return{name:this[s].name,source:d??this.data,transform:[{type:"aggregate",groupby:this[s].fields,...k.length?{fields:k,ops:A,as:R}:{}}]}}assembleFacetHeaderData(s){let{columns:d}=this.model.layout,{layoutHeaders:m}=this.model.component,y=[],k={};for(let C of kc){for(let $ of Gu){let j=(m[C]&&m[C][$])??[];for(let H of j)if(H.axes?.length>0){k[C]=!0;break}}if(k[C]){let $=`length(data("${this.facet.name}"))`,j=C==="row"?d?{signal:`ceil(${$} / ${d})`}:1:d?{signal:`min(${$}, ${d})`}:{signal:$};y.push({name:`${this.facet.name}_${C}`,transform:[{type:"sequence",start:0,stop:j}]})}}let{row:A,column:R}=k;return(A||R)&&y.unshift(this.assembleRowColumnHeaderData("facet",null,s)),y}assemble(){let s=[],d=null,m=this.getChildIndependentFieldsWithStep(),{column:y,row:k,facet:A}=this;if(y&&k&&(m.x||m.y)){d=`cross_${this.column.name}_${this.row.name}`;let R=[].concat(m.x??[],m.y??[]),C=R.map((()=>"distinct"));s.push({name:d,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:R,ops:C}]})}for(let R of[at,We])this[R]&&s.push(this.assembleRowColumnHeaderData(R,d,m));if(A){let R=this.assembleFacetHeaderData(m);R&&s.push(...R)}return s}}function Ku(l){return l.startsWith("'")&&l.endsWith("'")||l.startsWith('"')&&l.endsWith('"')?l.slice(1,-1):l}function g_(l){let s={};return D(l.filter,(d=>{if(Vl(d)){let m=null;Qd(d)?m=Bn(d.equal):qs(d)?m=Bn(d.lte):Hs(d)?m=Bn(d.lt):Ws(d)?m=Bn(d.gt):qh(d)?m=Bn(d.gte):ef(d)?m=d.range[0]:tf(d)&&(m=(d.oneOf??d.in)[0]),m&&(Gs(m)?s[d.field]="date":h.isNumber(m)?s[d.field]="number":h.isString(m)&&(s[d.field]="string")),d.timeUnit&&(s[d.field]="date")}})),s}function qn(l){let s={};function d(m){var y;Dt(m)?s[m.field]="date":m.type==="quantitative"&&(y=m.aggregate,h.isString(y)&&Y(["min","max"],y))?s[m.field]="number":Zt(m.field)>1?m.field in s||(s[m.field]="flatten"):$i(m)&&li(m.sort)&&Zt(m.sort.field)>1&&(m.sort.field in s||(s[m.sort.field]="flatten"))}if((dn(l)||Kr(l))&&l.forEachFieldDef(((m,y)=>{if(hr(m))d(m);else{let k=Us(y),A=l.fieldDef(k);d({...m,type:A.type})}})),dn(l)){let{mark:m,markDef:y,encoding:k}=l;if(as(m)&&!l.encoding.order){let A=k[y.orient==="horizontal"?"y":"x"];ze(A)&&A.type==="quantitative"&&!(A.field in s)&&(s[A.field]="number")}}return s}class Wn extends Kt{clone(){return new Wn(null,U(this._parse))}constructor(s,d){super(s),ct(this,"_parse",void 0),this._parse=d}hash(){return`Parse ${V(this._parse)}`}static makeExplicit(s,d,m){let y={},k=d.data;return!Eo(k)&&k?.format?.parse&&(y=k.format.parse),this.makeWithAncestors(s,y,{},m)}static makeWithAncestors(s,d,m,y){for(let R of we(m)){let C=y.getWithExplicit(R);C.value!==void 0&&(C.explicit||C.value===m[R]||C.value==="derived"||m[R]==="flatten"?delete m[R]:$e(Ba(R,m[R],C.value)))}for(let R of we(d)){let C=y.get(R);C!==void 0&&(C===d[R]?delete d[R]:$e(Ba(R,d[R],C)))}let k=new ji(d,m);y.copyAll(k);let A={};for(let R of we(k.combine())){let C=k.get(R);C!==null&&(A[R]=C)}return we(A).length===0||y.parseNothing?null:new Wn(s,A)}get parse(){return this._parse}merge(s){this._parse={...this._parse,...s.parse},s.remove()}assembleFormatParse(){let s={};for(let d of we(this._parse)){let m=this._parse[d];Zt(d)===1&&(s[d]=m)}return s}producedFields(){return new Set(we(this._parse))}dependentFields(){return new Set(we(this._parse))}assembleTransforms(){let s=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return we(this._parse).filter((d=>!s||Zt(d)>1)).map((d=>{let m=(function(y,k){let A=Oe(y);return k==="number"?`toNumber(${A})`:k==="boolean"?`toBoolean(${A})`:k==="string"?`toString(${A})`:k==="date"?`toDate(${A})`:k==="flatten"?A:k.startsWith("date:")?`timeParse(${A},'${Ku(k.slice(5,k.length))}')`:k.startsWith("utc:")?`utcParse(${A},'${Ku(k.slice(4,k.length))}')`:($e(`Unrecognized parse "${k}".`),null)})(d,this._parse[d]);return m?{type:"formula",expr:m,as:Pt(d)}:null})).filter((d=>d!==null))}}class Ro extends Kt{clone(){return new Ro(null)}constructor(s){super(s)}dependentFields(){return new Set}producedFields(){return new Set([ba])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:ba}}}class Xu extends Kt{clone(){return new Xu(null,this.params)}constructor(s,d){super(s),this.params=d}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${V(this.params)}`}assemble(){return{type:"graticule",...this.params===!0?{}:this.params}}}class Zu extends Kt{clone(){return new Zu(null,this.params)}constructor(s,d){super(s),this.params=d}dependentFields(){return new Set}producedFields(){return new Set([this.params.as??"data"])}hash(){return`Hash ${V(this.params)}`}assemble(){return{type:"sequence",...this.params}}}class Co extends Kt{constructor(s){let d;if(super(null),ct(this,"_data",void 0),ct(this,"_name",void 0),ct(this,"_generator",void 0),s??={name:"source"},Eo(s)||(d=s.format?{...K(s.format,["parse"])}:{}),mc(s))this._data={values:s.values};else if(ds(s)){if(this._data={url:s.url},!d.type){let m=/(?:\.([^.]+))?$/.exec(s.url)[1];Y(["json","csv","tsv","dsv","topojson"],m)||(m="json"),d.type=m}}else Kf(s)?this._data={values:[{type:"Sphere"}]}:(Vf(s)||Eo(s))&&(this._data={});this._generator=Eo(s),s.name&&(this._name=s.name),d&&!ye(d)&&(this._data.format=d)}dependentFields(){return new Set}producedFields(){}get data(){return this._data}hasName(){return!!this._name}get isGenerator(){return this._generator}get dataName(){return this._name}set dataName(s){this._name=s}set parent(s){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return{name:this._name,...this._data,transform:[]}}}function mp(l){return l instanceof Co||l instanceof Xu||l instanceof Zu}var Ju=new WeakMap;class gp{constructor(){Ik(this,Ju,{writable:!0,value:void 0}),B0(this,Ju,!1)}setModified(){B0(this,Ju,!0)}get modifiedFlag(){return(function(d,m){return m.get?m.get.call(d):m.value})(s=this,U0(s,Ju,"get"));var s}}class ir extends gp{getNodeDepths(s,d,m){m.set(s,d);for(let y of s.children)this.getNodeDepths(y,d+1,m);return m}optimize(s){let d=[...this.getNodeDepths(s,0,new Map).entries()].sort(((m,y)=>y[1]-m[1]));for(let m of d)this.run(m[0]);return this.modifiedFlag}}class bp extends gp{optimize(s){this.run(s);for(let d of s.children)this.optimize(d);return this.modifiedFlag}}class Ig extends bp{mergeNodes(s,d){let m=d.shift();for(let y of d)s.removeChild(y),y.parent=m,y.remove()}run(s){let d=s.children.map((y=>y.hash())),m={};for(let y=0;y<d.length;y++)m[d[y]]===void 0?m[d[y]]=[s.children[y]]:m[d[y]].push(s.children[y]);for(let y of we(m))m[y].length>1&&(this.setModified(),this.mergeNodes(s,m[y]))}}class Og extends bp{constructor(s){super(),ct(this,"requiresSelectionId",void 0),this.requiresSelectionId=s&&pg(s)}run(s){s instanceof Ro&&(this.requiresSelectionId&&(mp(s.parent)||s.parent instanceof Yr||s.parent instanceof Wn)||(this.setModified(),s.remove()))}}class cv extends gp{optimize(s){return this.run(s,new Set),this.modifiedFlag}run(s,d){let m=new Set;s instanceof Wi&&(m=s.producedFields(),Le(m,d)&&(this.setModified(),s.removeFormulas(d),s.producedFields.length===0&&s.remove()));for(let y of s.children)this.run(y,new Set([...d,...m]))}}class bs extends bp{constructor(){super()}run(s){s instanceof rr&&!s.isRequired()&&(this.setModified(),s.remove())}}class Qu extends ir{run(s){if(!(mp(s)||s.numChildren()>1)){for(let d of s.children)if(d instanceof Wn)if(s instanceof Wn)this.setModified(),s.merge(d);else{if(ve(s.producedFields(),d.dependentFields()))continue;this.setModified(),d.swapWithParent()}}}}class yp extends ir{run(s){let d=[...s.children],m=s.children.filter((y=>y instanceof Wn));if(s.numChildren()>1&&m.length>=1){let y={},k=new Set;for(let A of m){let R=A.parse;for(let C of we(R))C in y?y[C]!==R[C]&&k.add(C):y[C]=R[C]}for(let A of k)delete y[A];if(!ye(y)){this.setModified();let A=new Wn(s,y);for(let R of d){if(R instanceof Wn)for(let C of we(y))delete R.parse[C];s.removeChild(R),R.parent=A,R instanceof Wn&&we(R.parse).length===0&&R.remove()}}}}}class uv extends ir{run(s){s instanceof rr||s.numChildren()>0||s instanceof ul||s instanceof Co||(this.setModified(),s.remove())}}class Dg extends ir{run(s){let d=s.children.filter((y=>y instanceof Wi)),m=d.pop();for(let y of d)this.setModified(),m.merge(y)}}class dv extends ir{run(s){let d=s.children.filter((y=>y instanceof Yr)),m={};for(let y of d){let k=V(y.groupBy);k in m||(m[k]=[]),m[k].push(y)}for(let y of we(m)){let k=m[y];if(k.length>1){let A=k.pop();for(let R of k)A.merge(R)&&(s.removeChild(R),R.parent=A,R.remove(),this.setModified())}}}}class fv extends ir{constructor(s){super(),this.model=s}run(s){let d=!(mp(s)||s instanceof pi||s instanceof Wn||s instanceof Ro),m=[],y=[];for(let k of s.children)k instanceof gi&&(d&&!ve(s.producedFields(),k.dependentFields())?m.push(k):y.push(k));if(m.length>0){let k=m.pop();for(let A of m)k.merge(A,this.model.renameSignal.bind(this.model));this.setModified(),s instanceof gi?s.merge(k,this.model.renameSignal.bind(this.model)):k.swapWithParent()}if(y.length>1){let k=y.pop();for(let A of y)k.merge(A,this.model.renameSignal.bind(this.model));this.setModified()}}}class b_ extends ir{run(s){let d=[...s.children];if(!te(d,(k=>k instanceof rr))||s.numChildren()<=1)return;let m=[],y;for(let k of d)if(k instanceof rr){let A=k;for(;A.numChildren()===1;){let[R]=A.children;if(!(R instanceof rr))break;A=R}m.push(...A.children),y?(s.removeChild(k),k.parent=y.parent,y.parent.removeChild(y),y.parent=A,this.setModified()):y=A}else m.push(k);if(m.length){this.setModified();for(let k of m)k.parent.removeChild(k),k.parent=y}}}class dl extends Kt{clone(){return new dl(null,U(this.transform))}constructor(s,d){super(s),this.transform=d}addDimensions(s){this.transform.groupby=be(this.transform.groupby.concat(s),(d=>d))}dependentFields(){let s=new Set;return this.transform.groupby&&this.transform.groupby.forEach(s.add,s),this.transform.joinaggregate.map((d=>d.field)).filter((d=>d!==void 0)).forEach(s.add,s),s}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(s){return s.as??Ge(s)}hash(){return`JoinAggregateTransform ${V(this.transform)}`}assemble(){let s=[],d=[],m=[];for(let k of this.transform.joinaggregate)d.push(k.op),m.push(this.getDefaultName(k)),s.push(k.field===void 0?null:k.field);let y=this.transform.groupby;return{type:"joinaggregate",as:m,ops:d,fields:s,...y!==void 0?{groupby:y}:{}}}}class No extends Kt{clone(){return new No(null,U(this._stack))}constructor(s,d){super(s),ct(this,"_stack",void 0),this._stack=d}static makeFromTransform(s,d){let{stack:m,groupby:y,as:k,offset:A="zero"}=d,R=[],C=[];if(d.sort!==void 0)for(let H of d.sort)R.push(H.field),C.push(Tt(H.order,"ascending"));let $={field:R,order:C},j;return j=(function(H){return h.isArray(H)&&H.every((ee=>h.isString(ee)))&&H.length>1})(k)?k:h.isString(k)?[k,`${k}_end`]:[`${d.stack}_start`,`${d.stack}_end`],new No(s,{dimensionFieldDefs:[],stackField:m,groupby:y,offset:A,sort:$,facetby:[],as:j})}static makeFromEncoding(s,d){let m=d.stack,{encoding:y}=d;if(!m)return null;let{groupbyChannels:k,fieldChannel:A,offset:R,impute:C}=m,$=k.map((ae=>ga(y[ae]))).filter((ae=>!!ae)),j=(function(ae){return ae.stack.stackBy.reduce(((ne,de)=>{let he=Ge(de.fieldDef);return he&&ne.push(he),ne}),[])})(d),H=d.encoding.order,ee;if(h.isArray(H)||ze(H))ee=ql(H);else{let ae=py(H)?H.sort:A==="y"?"descending":"ascending";ee=j.reduce(((ne,de)=>(ne.field.push(de),ne.order.push(ae),ne)),{field:[],order:[]})}return new No(s,{dimensionFieldDefs:$,stackField:d.vgField(A),facetby:[],stackby:j,sort:ee,offset:R,impute:C,as:[d.vgField(A,{suffix:"start",forAs:!0}),d.vgField(A,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(s){this._stack.facetby.push(...s)}dependentFields(){let s=new Set;return s.add(this._stack.stackField),this.getGroupbyFields().forEach(s.add,s),this._stack.facetby.forEach(s.add,s),this._stack.sort.field.forEach(s.add,s),s}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${V(this._stack)}`}getGroupbyFields(){let{dimensionFieldDefs:s,impute:d,groupby:m}=this._stack;return s.length>0?s.map((y=>y.bin?d?[Ge(y,{binSuffix:"mid"})]:[Ge(y,{}),Ge(y,{binSuffix:"end"})]:[Ge(y)])).flat():m??[]}assemble(){let s=[],{facetby:d,dimensionFieldDefs:m,stackField:y,stackby:k,sort:A,offset:R,impute:C,as:$}=this._stack;if(C)for(let j of m){let{bandPosition:H=.5,bin:ee}=j;if(ee){let ae=Ge(j,{expr:"datum"}),ne=Ge(j,{expr:"datum",binSuffix:"end"});s.push({type:"formula",expr:`${H}*${ae}+${1-H}*${ne}`,as:Ge(j,{binSuffix:"mid",forAs:!0})})}s.push({type:"impute",field:y,groupby:[...k,...d],key:Ge(j,{binSuffix:"mid"}),method:"value",value:0})}return s.push({type:"stack",groupby:[...this.getGroupbyFields(),...d],field:y,sort:A,as:$,offset:R}),s}}class fl extends Kt{clone(){return new fl(null,U(this.transform))}constructor(s,d){super(s),this.transform=d}addDimensions(s){this.transform.groupby=be(this.transform.groupby.concat(s),(d=>d))}dependentFields(){let s=new Set;return(this.transform.groupby??[]).forEach(s.add,s),(this.transform.sort??[]).forEach((d=>s.add(d.field))),this.transform.window.map((d=>d.field)).filter((d=>d!==void 0)).forEach(s.add,s),s}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(s){return s.as??Ge(s)}hash(){return`WindowTransform ${V(this.transform)}`}assemble(){let s=[],d=[],m=[],y=[];for(let H of this.transform.window)d.push(H.op),m.push(this.getDefaultName(H)),y.push(H.param===void 0?null:H.param),s.push(H.field===void 0?null:H.field);let k=this.transform.frame,A=this.transform.groupby;if(k&&k[0]===null&&k[1]===null&&d.every((H=>En(H))))return{type:"joinaggregate",as:m,ops:d,fields:s,...A!==void 0?{groupby:A}:{}};let R=[],C=[];if(this.transform.sort!==void 0)for(let H of this.transform.sort)R.push(H.field),C.push(H.order??"ascending");let $={field:R,order:C},j=this.transform.ignorePeers;return{type:"window",params:y,as:m,ops:d,fields:s,sort:$,...j!==void 0?{ignorePeers:j}:{},...A!==void 0?{groupby:A}:{},...k!==void 0?{frame:k}:{}}}}function Mg(l){if(l instanceof ul)if(l.numChildren()!==1||l.children[0]instanceof rr){let d=l.model.component.data.main;Lg(d);let m=(s=l,function k(A){if(!(A instanceof ul)){let R=A.clone();if(R instanceof rr){let C=Fg+R.getSource();R.setSource(C),s.model.component.data.outputNodes[C]=R}else(R instanceof Yr||R instanceof No||R instanceof fl||R instanceof dl)&&R.addDimensions(s.fields);for(let C of A.children.flatMap(k))C.parent=R;return[R]}return A.children.flatMap(k)}),y=l.children.map(m).flat();for(let k of y)k.parent=d}else{let d=l.children[0];(d instanceof Yr||d instanceof No||d instanceof fl||d instanceof dl)&&d.addDimensions(l.fields),d.swapWithParent(),Mg(l)}else l.children.map(Mg);var s}function Lg(l){if(l instanceof rr&&l.type===nn.Main&&l.numChildren()===1){let s=l.children[0];s instanceof ul||(s.swapWithParent(),Lg(l))}}let Fg="scale_",vp=5;function Ep(l){for(let s of l){for(let d of s.children)if(d.parent!==s)return!1;if(!Ep(s.children))return!1}return!0}function bi(l,s){let d=!1;for(let m of s)d=l.optimize(m)||d;return d}function pv(l,s,d){let m=l.sources,y=!1;return y=bi(new bs,m)||y,y=bi(new Og(s),m)||y,m=m.filter((k=>k.numChildren()>0)),y=bi(new uv,m)||y,m=m.filter((k=>k.numChildren()>0)),d||(y=bi(new Qu,m)||y,y=bi(new fv(s),m)||y,y=bi(new cv,m)||y,y=bi(new yp,m)||y,y=bi(new dv,m)||y,y=bi(new Dg,m)||y,y=bi(new Ig,m)||y,y=bi(new b_,m)||y),l.sources=m,y}class Dn{constructor(s){ct(this,"signal",void 0),Object.defineProperty(this,"signal",{enumerable:!0,get:s})}static fromName(s,d){return new Dn((()=>s(d)))}}function hv(l){dn(l)?(function(s){let d=s.component.scales;for(let m of we(d)){let y=y_(s,m);if(d[m].setWithExplicit("domains",y),mv(s,m),s.component.data.isFaceted){let k=s;for(;!Kr(k)&&k.parent;)k=k.parent;if(k.component.resolve.scale[m]==="shared")for(let A of y.value)Ar(A)&&(A.data=Fg+A.data.replace(Fg,""))}}})(l):(function(s){for(let m of s.children)hv(m);let d=s.component.scales;for(let m of we(d)){let y,k=null;for(let A of s.children){let R=A.component.scales[m];if(R){y=y===void 0?R.getWithExplicit("domains"):qi(y,R.getWithExplicit("domains"),"domains","scale",nd);let C=R.get("selectionExtent");k&&C&&k.param!==C.param&&$e(pa),k=C}}d[m].setWithExplicit("domains",y),k&&d[m].set("selectionExtent",k,!0)}})(l)}function y_(l,s){let d=l.getScaleComponent(s).get("type"),{encoding:m}=l,y=(function(k,A,R,C){if(k==="unaggregated"){let{valid:$,reason:j}=Ir(A,R);if(!$)return void $e(j)}else if(k===void 0&&C.useUnaggregatedDomain){let{valid:$}=Ir(A,R);if($)return"unaggregated"}return k})(l.scaleDomain(s),l.typedFieldDef(s),d,l.config.scale);return y!==l.scaleDomain(s)&&(l.specifiedScales[s]={...l.specifiedScales[s],domain:y}),s==="x"&&mn(m.x2)?mn(m.x)?qi(ys(d,y,l,"x"),ys(d,y,l,"x2"),"domain","scale",nd):ys(d,y,l,"x2"):s==="y"&&mn(m.y2)?mn(m.y)?qi(ys(d,y,l,"y"),ys(d,y,l,"y2"),"domain","scale",nd):ys(d,y,l,"y2"):ys(d,y,l,s)}function ed(l,s,d){let m=Un(d)?.unit;return s==="temporal"||m?(function(y,k,A){return y.map((R=>({signal:`{data: ${ic(R,{timeUnit:A,type:k})}}`})))})(l,s,m):[l]}function ys(l,s,d,m){let{encoding:y,markDef:k,mark:A,config:R,stack:C}=d,$=mn(y[m]),{type:j}=$,H=$.timeUnit;if((function(ne){return ne?.unionWith})(s)){let ne=ys(l,void 0,d,m);return Hi([...ed(s.unionWith,j,H),...ne.value])}if(Je(s))return Hi([s]);if(s&&s!=="unaggregated"&&!ry(s))return Hi(ed(s,j,H));if(C&&m===C.fieldChannel){if(C.offset==="normalize")return Ga([[0,1]]);let ne=d.requestDataName(nn.Main);return Ga([{data:ne,field:d.vgField(m,{suffix:"start"})},{data:ne,field:d.vgField(m,{suffix:"end"})}])}let ee=Fa(m)&&ze($)?(function(ne,de,he){if(!zn(he))return;let ge=ne.fieldDef(de),Ee=ge.sort;if(pu(Ee))return{op:"min",field:sl(ge,de),order:"ascending"};let{stack:Se}=ne,Re=Se?new Set([...Se.groupbyFields,...Se.stackBy.map((Pe=>Pe.fieldDef.field))]):void 0;if(li(Ee))return td(Ee,Se&&!Re.has(Ee.field));if(im(Ee)){let{encoding:Pe,order:qe}=Ee,st=ne.fieldDef(Pe),{aggregate:mt,field:it}=st,Qe=Se&&!Re.has(it);if(ri(mt)||Ni(mt))return td({field:Ge(st),order:qe},Qe);if(En(mt)||!mt)return td({op:mt,field:it,order:qe},Qe)}else{if(Ee==="descending")return{op:"min",field:ne.vgField(de),order:"descending"};if(Y(["ascending",void 0],Ee))return!0}})(d,m,l):void 0;if(Pi($))return Ga(ed([$.datum],j,H));let ae=$;if(s==="unaggregated"){let ne=d.requestDataName(nn.Main),{field:de}=$;return Ga([{data:ne,field:Ge({field:de,aggregate:"min"})},{data:ne,field:Ge({field:de,aggregate:"max"})}])}if(Jt(ae.bin)){if(zn(l))return Ga(l==="bin-ordinal"?[]:[{data:Ye(ee)?d.requestDataName(nn.Main):d.requestDataName(nn.Raw),field:d.vgField(m,oc(ae,m)?{binSuffix:"range"}:{}),sort:ee!==!0&&h.isObject(ee)?ee:{field:d.vgField(m,{}),op:"min"}}]);{let{bin:ne}=ae;if(Jt(ne)){let de=To(d,ae.field,ne);return Ga([new Dn((()=>{let he=d.getSignalName(de);return`[${he}.start, ${he}.stop]`}))])}return Ga([{data:d.requestDataName(nn.Main),field:d.vgField(m,{})}])}}if(ae.timeUnit&&Y(["time","utc"],l)){let ne=y[Ri(m)];if(mf(ae,ne,k,R)){let de=d.requestDataName(nn.Main),he=Fi({fieldDef:ae,fieldDef2:ne,markDef:k,config:R}),ge=du(A)&&he!==.5;return Ga([{data:de,field:d.vgField(m,ge?{suffix:Jf}:{})},{data:de,field:d.vgField(m,{suffix:ge?Gt:"end"})}])}}return Ga(ee?[{data:Ye(ee)?d.requestDataName(nn.Main):d.requestDataName(nn.Raw),field:d.vgField(m),sort:ee}]:[{data:d.requestDataName(nn.Main),field:d.vgField(m)}])}function td(l,s){let{op:d,field:m,order:y}=l;return{op:d??(s?"sum":fu),...m?{field:Ot(m)}:{},...y?{order:y}:{}}}function mv(l,s){let d=l.component.scales[s],m=l.specifiedScales[s].domain,y=l.fieldDef(s)?.bin,k=ry(m)&&m,A=mo(y)&&$a(y.extent)&&y.extent;(k||A)&&d.set("selectionExtent",k??A,!0)}function Ir(l,s){let{aggregate:d,type:m}=l;return d?h.isString(d)&&!ho.has(d)?{valid:!1,reason:$h(d)}:m==="quantitative"&&s==="log"?{valid:!1,reason:Bh(l)}:{valid:!0}:{valid:!1,reason:j0(l)}}function nd(l,s,d,m){return l.explicit&&s.explicit&&$e((function(y,k,A,R){return`Conflicting ${k.toString()} property "${y.toString()}" (${Be(A)} and ${Be(R)}). Using the union of the two domains.`})(d,m,l.value,s.value)),{explicit:l.explicit,value:[...l.value,...s.value]}}function v_(l){let s=be(l.map((A=>{if(Ar(A)){let{sort:R,...C}=A;return C}return A})),V),d=be(l.map((A=>{if(Ar(A)){let R=A.sort;return R===void 0||Ye(R)||("op"in R&&R.op==="count"&&delete R.field,R.order==="ascending"&&delete R.order),R}})).filter((A=>A!==void 0)),V);if(s.length===0)return;if(s.length===1){let A=l[0];if(Ar(A)&&d.length>0){let R=d[0];if(d.length>1){$e(zh);let C=d.filter(($=>h.isObject($)&&"op"in $&&$.op!=="min"));R=!d.every(($=>h.isObject($)&&"op"in $))||C.length!==1||C[0]}else if(h.isObject(R)&&"field"in R){let C=R.field;A.field===C&&(R=!R.order||{order:R.order})}return{...A,sort:R}}return A}let m=be(d.map((A=>Ye(A)||!("op"in A)||h.isString(A.op)&&A.op in M0?A:($e((function(R){return`Dropping sort property ${Be(R)} as unioned domains only support boolean or op "count", "min", and "max".`})(A)),!0))),V),y;m.length===1?y=m[0]:m.length>1&&($e(zh),y=!0);let k=be(l.map((A=>Ar(A)?A.data:null)),(A=>A));return k.length===1&&k[0]!==null?{data:k[0],fields:s.map((A=>A.field)),...y?{sort:y}:{}}:{fields:s,...y?{sort:y}:{}}}function Pg(l){if(Ar(l)&&h.isString(l.field))return l.field;if((function(s){return!h.isArray(s)&&"fields"in s&&!("data"in s)})(l)){let s;for(let d of l.fields)if(Ar(d)&&h.isString(d.field))if(s){if(s!==d.field)return $e("Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect."),s}else s=d.field;return $e("Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect."),s}if((function(s){return!h.isArray(s)&&"fields"in s&&"data"in s})(l)){$e("Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.");let s=l.fields[0];return h.isString(s)?s:void 0}}function vs(l,s){let d=l.component.scales[s].get("domains").map((m=>(Ar(m)&&(m.data=l.lookupDataSource(m.data)),m)));return v_(d)}function rd(l){return Es(l)||Ji(l)?l.children.reduce(((s,d)=>s.concat(rd(d))),$g(l)):$g(l)}function $g(l){return we(l.component.scales).reduce(((s,d)=>{let m=l.component.scales[d];if(m.merged)return s;let y=m.combine(),{name:k,type:A,selectionExtent:R,domains:C,range:$,reverse:j,...H}=y,ee=(function(de,he,ge,Ee){if(un(ge)){if(go(de))return{step:{signal:`${he}_step`}}}else if(h.isObject(de)&&Ar(de))return{...de,data:Ee.lookupDataSource(de.data)};return de})(y.range,k,d,l),ae=vs(l,d),ne=R?(function(de,he,ge,Ee){let Se=xo(de,he.param,he);return{signal:qr(ge.get("type"))&&h.isArray(Ee)&&Ee[0]>Ee[1]?`isValid(${Se}) && reverse(${Se})`:Se}})(l,R,m,ae):null;return s.push({name:k,type:A,...ae?{domain:ae}:{},...ne?{domainRaw:ne}:{},range:ee,...j!==void 0?{reverse:j}:{},...H}),s}),[])}class Bg extends ji{constructor(s,d){super({},{name:s}),ct(this,"merged",!1),this.setWithExplicit("type",d)}domainDefinitelyIncludesZero(){return this.get("zero")!==!1||te(this.get("domains"),(s=>h.isArray(s)&&s.length===2&&h.isNumber(s[0])&&s[0]<=0&&h.isNumber(s[1])&&s[1]>=0))}}let pl=["range","scheme"];function Ug(l,s){let d=l.fieldDef(s);if(d?.bin){let{bin:m,field:y}=d,k=Sr(s),A=l.getName(k);if(h.isObject(m)&&m.binned&&m.step!==void 0)return new Dn((()=>{let R=l.scaleName(s),C=`(domain("${R}")[1] - domain("${R}")[0]) / ${m.step}`;return`${l.getSignalName(A)} / (${C})`}));if(Jt(m)){let R=To(l,y,m);return new Dn((()=>{let C=l.getSignalName(R),$=`(${C}.stop - ${C}.start) / ${C}.step`;return`${l.getSignalName(A)} / (${$})`}))}}}function gv(l,s){let d=s.specifiedScales[l],{size:m}=s,y=s.getScaleComponent(l).get("type");for(let j of pl)if(d[j]!==void 0){let H=Vh(y,j),ee=ay(l,j);if(H)if(ee)$e(ee);else switch(j){case"range":{let ae=d.range;if(h.isArray(ae)){if(un(l))return Hi(ae.map((ne=>{if(ne==="width"||ne==="height"){let de=s.getName(ne),he=s.getSignalName.bind(s);return Dn.fromName(he,de)}return ne})))}else if(h.isObject(ae))return Hi({data:s.requestDataName(nn.Main),field:ae.field,sort:{op:"min",field:s.vgField(l)}});return Hi(ae)}case"scheme":return Hi(bv(d[j]))}else $e(H0(y,j,l))}let k=l===et||l==="xOffset"?"width":"height",A=m[k];if(Wr(A)){if(un(l))if(zn(y)){let j=vv(A,s,l);if(j)return Hi({step:j})}else $e(Uh(k));else if(Zn(l)){let j=l===Ze?"x":"y";if(s.getScaleComponent(j).get("type")==="band"){let H=Ev(A,y);if(H)return Hi(H)}}}let{rangeMin:R,rangeMax:C}=d,$=(function(j,H){let{size:ee,config:ae,mark:ne,encoding:de}=H,{type:he}=mn(de[j]),ge=H.getScaleComponent(j),Ee=ge.get("type"),{domain:Se,domainMid:Re}=H.specifiedScales[j];switch(j){case et:case nt:if(Y(["point","band"],Ee)){let Pe=zg(j,ee,ae.view);if(Wr(Pe))return{step:vv(Pe,H,j)}}return yv(j,H,Ee);case Ze:case on:return(function(Pe,qe,st){let mt=Pe===Ze?"x":"y",it=qe.getScaleComponent(mt);if(!it)return yv(mt,qe,st,{center:!0});let Qe=it.get("type"),Ct=qe.scaleName(mt),{markDef:Ht,config:Mn}=qe;if(Qe==="band"){let wn=zg(mt,qe.size,qe.config.view);if(Wr(wn)){let kn=Ev(wn,st);if(kn)return kn}return[0,{signal:`bandwidth('${Ct}')`}]}{let wn=qe.encoding[mt];if(ze(wn)&&wn.timeUnit){let kn=J0(wn.timeUnit,(Rn=>`scale('${Ct}', ${Rn})`)),qt=qe.config.scale.bandWithNestedOffsetPaddingInner,Ft=Fi({fieldDef:wn,markDef:Ht,config:Mn})-.5,gn=Ft!==0?` + ${Ft}`:"";return qt?[{signal:`${Je(qt)?`${qt.signal}/2`+gn:`${qt/2+Ft}`} * (${kn})`},{signal:`${Je(qt)?`(1 - ${qt.signal}/2)`+gn:`${1-qt/2+Ft}`} * (${kn})`}]:[0,{signal:kn}]}return q(`Cannot use ${Pe} scale if ${mt} scale is not discrete.`)}})(j,H,Ee);case xi:{let Pe=wp(ne,H.component.scales[j].get("zero"),ae),qe=(function(st,mt,it,Qe){let Ct={x:Ug(it,"x"),y:Ug(it,"y")};switch(st){case"bar":case"tick":{if(Qe.scale.maxBandSize!==void 0)return Qe.scale.maxBandSize;let Ht=jg(mt,Ct,Qe.view);return h.isNumber(Ht)?Ht-1:new Dn((()=>`${Ht.signal} - 1`))}case"line":case"trail":case"rule":return Qe.scale.maxStrokeWidth;case"text":return Qe.scale.maxFontSize;case"point":case"square":case"circle":{if(Qe.scale.maxSize)return Qe.scale.maxSize;let Ht=jg(mt,Ct,Qe.view);return h.isNumber(Ht)?Math.pow(Gg*Ht,2):new Dn((()=>`pow(${Gg} * ${Ht.signal}, 2)`))}}throw new Error(Mi("size",st))})(ne,ee,H,ae);return Zl(Ee)?(function(st,mt,it){let Qe=()=>{let Ct=fr(mt),Ht=fr(st),Mn=`(${Ct} - ${Ht}) / (${it} - 1)`;return`sequence(${Ht}, ${Ct} + ${Mn}, ${Mn})`};return Je(mt)?new Dn(Qe):{signal:Qe()}})(Pe,qe,(function(st,mt,it,Qe){switch(st){case"quantile":return mt.scale.quantileCount;case"quantize":return mt.scale.quantizeCount;case"threshold":return it!==void 0&&h.isArray(it)?it.length+1:($e((function(Ct){return`Domain for ${Ct} is required for threshold scale.`})(Qe)),3)}})(Ee,ae,Se,j)):[Pe,qe]}case la:return[0,2*Math.PI];case Ur:return[0,360];case lt:return[0,new Dn((()=>`min(${H.getSignalName("width")},${H.getSignalName("height")})/2`))];case fo:return[ae.scale.minStrokeWidth,ae.scale.maxStrokeWidth];case Zo:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case vn:return"symbol";case Fe:case xr:case ei:return Ee==="ordinal"?he==="nominal"?"category":"ordinal":Re!==void 0?"diverging":ne==="rect"||ne==="geoshape"?"heatmap":"ramp";case Si:case Ut:case Ai:return[ae.scale.minOpacity,ae.scale.maxOpacity]}})(l,s);return(R!==void 0||C!==void 0)&&Vh(y,"rangeMin")&&h.isArray($)&&$.length===2?Hi([R??$[0],C??$[1]]):Ga($)}function bv(l){return(function(s){return!h.isString(s)&&!!s.name})(l)?{scheme:l.name,...K(l,["name"])}:{scheme:l}}function yv(l,s,d){let{center:m}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},y=Sr(l),k=s.getName(y),A=s.getSignalName.bind(s);return l===nt&&qr(d)?m?[Dn.fromName((R=>`${A(R)}/2`),k),Dn.fromName((R=>`-${A(R)}/2`),k)]:[Dn.fromName(A,k),0]:m?[Dn.fromName((R=>`-${A(R)}/2`),k),Dn.fromName((R=>`${A(R)}/2`),k)]:[0,Dn.fromName(A,k)]}function vv(l,s,d){let{encoding:m}=s,y=s.getScaleComponent(d),k=Ul(d),A=m[k];if(Ff({step:l,offsetIsDiscrete:St(A)&&Yl(A.type)})==="offset"&&vo(m,k)){let C=s.getScaleComponent(k),$=`domain('${s.scaleName(k)}').length`;C.get("type")==="band"&&($=`bandspace(${$}, ${C.get("paddingInner")??C.get("padding")??0}, ${C.get("paddingOuter")??C.get("padding")??0})`);let j=y.get("paddingInner")??y.get("padding");return{signal:`${l.step} * ${$} / (1-${R=j,Je(R)?R.signal:h.stringValue(R)})`}}return l.step;var R}function Ev(l,s){if(Ff({step:l,offsetIsDiscrete:zn(s)})==="offset")return{step:l.step}}function zg(l,s,d){let m=l===et?"width":"height";return s[m]||Tu(d,m)}function wp(l,s,d){if(s)return Je(s)?{signal:`${s.signal} ? 0 : ${wp(l,!1,d)}`}:0;switch(l){case"bar":case"tick":return d.scale.minBandSize;case"line":case"trail":case"rule":return d.scale.minStrokeWidth;case"text":return d.scale.minFontSize;case"point":case"square":case"circle":return d.scale.minSize}throw new Error(Mi("size",l))}let Gg=.95;function jg(l,s,d){let m=Wr(l.width)?l.width.step:fc(d,"width"),y=Wr(l.height)?l.height.step:fc(d,"height");return s.x||s.y?new Dn((()=>`min(${[s.x?s.x.signal:m,s.y?s.y.signal:y].join(", ")})`)):Math.min(m,y)}function kp(l,s){dn(l)?(function(d,m){let y=d.component.scales,{config:k,encoding:A,markDef:R,specifiedScales:C}=d;for(let $ of we(y)){let j=C[$],H=y[$],ee=d.getScaleComponent($),ae=mn(A[$]),ne=j[m],de=ee.get("type"),he=ee.get("padding"),ge=ee.get("paddingInner"),Ee=Vh(de,m),Se=ay($,m);if(ne!==void 0&&(Ee?Se&&$e(Se):$e(H0(de,m,$))),Ee&&Se===void 0)if(ne!==void 0){let Re=ae.timeUnit,Pe=ae.type;switch(m){case"domainMax":case"domainMin":Gs(j[m])||Pe==="temporal"||Re?H.set(m,{signal:ic(j[m],{type:Pe,timeUnit:Re})},!0):H.set(m,j[m],!0);break;default:H.copyKeyFromObject(m,j)}}else{let Re=m in Hg?Hg[m]({model:d,channel:$,fieldOrDatumDef:ae,scaleType:de,scalePadding:he,scalePaddingInner:ge,domain:j.domain,domainMin:j.domainMin,domainMax:j.domainMax,markDef:R,config:k,hasNestedOffsetScale:yy(A,$),hasSecondaryRangeChannel:!!A[Ri($)]}):k.scale[m];Re!==void 0&&H.set(m,Re,!1)}}})(l,s):kv(l,s)}let Hg={bins:l=>{let{model:s,fieldOrDatumDef:d}=l;return ze(d)?(function(m,y){let k=y.bin;if(Jt(k)){let A=To(m,y.field,k);return new Dn((()=>m.getSignalName(A)))}if($n(k)&&mo(k)&&k.step!==void 0)return{step:k.step}})(s,d):void 0},interpolate:l=>{let{channel:s,fieldOrDatumDef:d}=l;return(function(m,y){if(Y([Fe,xr,ei],m)&&y!=="nominal")return"hcl"})(s,d.type)},nice:l=>{let{scaleType:s,channel:d,domain:m,domainMin:y,domainMax:k,fieldOrDatumDef:A}=l;return(function(R,C,$,j,H,ee){if(!(ga(ee)?.bin||h.isArray($)||H!=null||j!=null||Y([Vt.TIME,Vt.UTC],R)))return!!un(C)||void 0})(s,d,m,y,k,A)},padding:l=>{let{channel:s,scaleType:d,fieldOrDatumDef:m,markDef:y,config:k}=l;return(function(A,R,C,$,j,H){if(un(A)){if(za(R)){if(C.continuousPadding!==void 0)return C.continuousPadding;let{type:ee,orient:ae}=j;if(ee==="bar"&&(!ze($)||!$.bin&&!$.timeUnit)&&(ae==="vertical"&&A==="x"||ae==="horizontal"&&A==="y"))return H.continuousBandSize}if(R===Vt.POINT)return C.pointPadding}})(s,d,k.scale,m,y,k.bar)},paddingInner:l=>{let{scalePadding:s,channel:d,markDef:m,scaleType:y,config:k,hasNestedOffsetScale:A}=l;return(function(R,C,$,j,H){let ee=arguments.length>5&&arguments[5]!==void 0&&arguments[5];if(R===void 0){if(un(C)){let{bandPaddingInner:ae,barBandPaddingInner:ne,rectBandPaddingInner:de,bandWithNestedOffsetPaddingInner:he}=H;return ee?he:Tt(ae,$==="bar"?ne:de)}if(Zn(C)&&j===Vt.BAND)return H.offsetBandPaddingInner}})(s,d,m.type,y,k.scale,A)},paddingOuter:l=>{let{scalePadding:s,channel:d,scaleType:m,scalePaddingInner:y,config:k,hasNestedOffsetScale:A}=l;return(function(R,C,$,j,H){let ee=arguments.length>5&&arguments[5]!==void 0&&arguments[5];if(R===void 0){if(un(C)){let{bandPaddingOuter:ae,bandWithNestedOffsetPaddingOuter:ne}=H;if(ee)return ne;if($===Vt.BAND)return Tt(ae,Je(j)?{signal:`${j.signal}/2`}:j/2)}else if(Zn(C)){if($===Vt.POINT)return .5;if($===Vt.BAND)return H.offsetBandPaddingOuter}}})(s,d,m,y,k.scale,A)},reverse:l=>{let{fieldOrDatumDef:s,scaleType:d,channel:m,config:y}=l;return(function(k,A,R,C){if(R==="x"&&C.xReverse!==void 0)return qr(k)&&A==="descending"?Je(C.xReverse)?{signal:`!${C.xReverse.signal}`}:!C.xReverse:C.xReverse;if(qr(k)&&A==="descending")return!0})(d,ze(s)?s.sort:void 0,m,y.scale)},zero:l=>{let{channel:s,fieldOrDatumDef:d,domain:m,markDef:y,scaleType:k,config:A,hasSecondaryRangeChannel:R}=l;return(function(C,$,j,H,ee,ae,ne){if(j&&j!=="unaggregated"&&qr(ee)){if(h.isArray(j)){let de=j[0],he=j[j.length-1];if(h.isNumber(de)&&de<=0&&h.isNumber(he)&&he>=0)return!0}return!1}if(C==="size"&&$.type==="quantitative"&&!Zl(ee))return!0;if((!ze($)||!$.bin)&&Y([...ni,...C0],C)){let{orient:de,type:he}=H;return(!Y(["bar","area","line","trail"],he)||!(de==="horizontal"&&C==="y"||de==="vertical"&&C==="x"))&&(!(!Y(["bar","area"],he)||ne)||ae?.zero)}return!1})(s,d,m,y,k,A.scale,R)}};function wv(l){dn(l)?(function(s){let d=s.component.scales;for(let m of Gl){let y=d[m];if(!y)continue;let k=gv(m,s);y.setWithExplicit("range",k)}})(l):kv(l,"range")}function kv(l,s){let d=l.component.scales;for(let m of l.children)s==="range"?wv(m):kp(m,s);for(let m of we(d)){let y;for(let k of l.children){let A=k.component.scales[m];A&&(y=qi(y,A.getWithExplicit(s),s,"scale",My(((R,C)=>s==="range"&&R.step&&C.step?R.step-C.step:0))))}d[m].setWithExplicit(s,y)}}function qg(l,s,d,m){let y=(function(C,$,j,H){switch($.type){case"nominal":case"ordinal":if(Qo(C)||Ud(C)==="discrete")return C==="shape"&&$.type==="ordinal"&&$e(Vd(C,"ordinal")),"ordinal";if(un(C)||Zn(C)){if(Y(["rect","bar","image","rule"],j.type)||H)return"band"}else if(j.type==="arc"&&C in eu)return"band";return Ys(j[Sr(C)])||nc($)&&$.axis?.tickBand?"band":"point";case"temporal":return Qo(C)?"time":Ud(C)==="discrete"?($e(Vd(C,"temporal")),"ordinal"):ze($)&&$.timeUnit&&Un($.timeUnit).utc?"utc":"time";case"quantitative":return Qo(C)?ze($)&&Jt($.bin)?"bin-ordinal":"linear":Ud(C)==="discrete"?($e(Vd(C,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(qd($.type))})(s,d,m,arguments.length>4&&arguments[4]!==void 0&&arguments[4]),{type:k}=l;return Fa(s)?k!==void 0?(function(C,$){let j=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!Fa(C))return!1;switch(C){case et:case nt:case Ze:case on:case la:case lt:return!!za($)||$==="band"||$==="point"&&!j;case xi:case fo:case Si:case Ut:case Ai:case Ur:return za($)||Zl($)||Y(["band","point","ordinal"],$);case Fe:case xr:case ei:return $!=="band";case Zo:case vn:return $==="ordinal"||Zl($)}})(s,k)?ze(d)&&(A=k,R=d.type,!(Y([rf,af],R)?A===void 0||zn(A):R===rs?Y([Vt.TIME,Vt.UTC,void 0],A):R!==bo||ty(A)||Zl(A)||A===void 0))?($e((function(C,$){return`FieldDef does not work with "${C}" scale. We are using "${$}" scale instead.`})(k,y)),y):k:($e((function(C,$,j){return`Channel "${C}" does not work with "${$}" scale. We are using "${j}" scale instead.`})(s,k,y)),y):y:null;var A,R}function _p(l){dn(l)?l.component.scales=(function(s){let{encoding:d,mark:m,markDef:y}=s,k={};for(let A of Gl){let R=mn(d[A]);if(R&&m===oy&&A===vn&&R.type===Vs)continue;let C=R&&R.scale;if(R&&C!==null&&C!==!1){C??={};let $=qg(C,A,R,y,yy(d,A));k[A]=new Bg(s.scaleName(`${A}`,!0),{value:$,explicit:C.type===$})}}return k})(l):l.component.scales=(function(s){let d=s.component.scales={},m={},y=s.component.resolve;for(let k of s.children){_p(k);for(let A of we(k.component.scales))if(y.scale[A]??=vg(A,s),y.scale[A]==="shared"){let R=m[A],C=k.component.scales[A].getWithExplicit("type");R?Lk(R.value,C.value)?m[A]=qi(R,C,"type","scale",E_):(y.scale[A]="independent",delete m[A]):m[A]=C}}for(let k of we(m)){let A=s.scaleName(k,!0),R=m[k];d[k]=new Bg(A,R);for(let C of s.children){let $=C.component.scales[k];$&&(C.renameScale($.get("name"),A),$.merged=!0)}}return d})(l)}let E_=My(((l,s)=>ey(l)-ey(s)));class Wg{constructor(){ct(this,"nameMap",void 0),this.nameMap={}}rename(s,d){this.nameMap[s]=d}has(s){return this.nameMap[s]!==void 0}get(s){for(;this.nameMap[s]&&s!==this.nameMap[s];)s=this.nameMap[s];return s}}function dn(l){return l?.type==="unit"}function Kr(l){return l?.type==="facet"}function Ji(l){return l?.type==="concat"}function Es(l){return l?.type==="layer"}class ad{constructor(s,d,m,y,k,A,R){this.type=d,this.parent=m,this.config=k,ct(this,"name",void 0),ct(this,"size",void 0),ct(this,"title",void 0),ct(this,"description",void 0),ct(this,"data",void 0),ct(this,"transforms",void 0),ct(this,"layout",void 0),ct(this,"scaleNameMap",void 0),ct(this,"projectionNameMap",void 0),ct(this,"signalNameMap",void 0),ct(this,"component",void 0),ct(this,"view",void 0),ct(this,"children",void 0),ct(this,"correctDataNames",(C=>(C.from?.data&&(C.from.data=this.lookupDataSource(C.from.data)),C.from?.facet?.data&&(C.from.facet.data=this.lookupDataSource(C.from.facet.data)),C))),this.parent=m,this.config=k,this.view=Jn(R),this.name=s.name??y,this.title=dr(s.title)?{text:s.title}:s.title?Jn(s.title):void 0,this.scaleNameMap=m?m.scaleNameMap:new Wg,this.projectionNameMap=m?m.projectionNameMap:new Wg,this.signalNameMap=m?m.signalNameMap:new Wg,this.data=s.data,this.description=s.description,this.transforms=(s.transform??[]).map((C=>$m(C)?{filter:L(C.filter,cu)}:C)),this.layout=d==="layer"||d==="unit"?{}:(function(C,$,j){let H=j[$],ee={},{spacing:ae,columns:ne}=H;ae!==void 0&&(ee.spacing=ae),ne!==void 0&&(hu(C)&&!Ql(C.facet)||xu(C))&&(ee.columns=ne),dc(C)&&(ee.columns=1);for(let de of Au)if(C[de]!==void 0)if(de==="spacing"){let he=C[de];ee[de]=h.isNumber(he)?he:{row:he.row??ae,column:he.column??ae}}else ee[de]=C[de];return ee})(s,d,k),this.component={data:{sources:m?m.component.data.sources:[],outputNodes:m?m.component.data.outputNodes:{},outputNodeRefCounts:m?m.component.data.outputNodeRefCounts:{},isFaceted:hu(s)||m?.component.data.isFaceted&&s.data===void 0},layoutSize:new ji,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:{scale:{},axis:{},legend:{},...A?U(A):{}},selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){(function(s){let{ignoreRange:d}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};_p(s),hv(s);for(let m of zk)kp(s,m);d||wv(s)})(this)}parseProjection(){Cg(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){dp(this)}assembleEncodeFromView(s){let{style:d,...m}=s,y={};for(let k of we(m)){let A=m[k];A!==void 0&&(y[k]=sn(A))}return y}assembleGroupEncodeEntry(s){let d={};return this.view&&(d=this.assembleEncodeFromView(this.view)),s||(this.description&&(d.description=sn(this.description)),this.type!=="unit"&&this.type!=="layer")?ye(d)?void 0:d:{width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height"),...d??{}}}assembleLayout(){if(!this.layout)return;let{spacing:s,...d}=this.layout,{component:m,config:y}=this,k=(function(A,R){let C={};for(let $ of zr){let j=A[$];if(j?.facetFieldDef){let{titleAnchor:H,titleOrient:ee}=zu(["titleAnchor","titleOrient"],j.facetFieldDef.header,R,$),ae=Uu($,ee),ne=av(H,ae);ne!==void 0&&(C[ae]=ne)}}return ye(C)?void 0:C})(m.layoutHeaders,y);return{padding:s,...this.assembleDefaultLayout(),...d,...k?{titleBand:k}:{}}}assembleDefaultLayout(){return{}}assembleHeaderMarks(){let{layoutHeaders:s}=this.component,d=[];for(let m of zr)s[m].title&&d.push(gs(this,m));for(let m of kc)d=d.concat(nv(this,m));return d}assembleAxes(){return(function(s,d){let{x:m=[],y=[]}=s;return[...m.map((k=>Xi(k,"grid",d))),...y.map((k=>Xi(k,"grid",d))),...m.map((k=>Xi(k,"main",d))),...y.map((k=>Xi(k,"main",d)))].filter((k=>k))})(this.component.axes,this.config)}assembleLegends(){return pp(this)}assembleProjections(){return Tg(this)}assembleTitle(){let{encoding:s,...d}=this.title??{},m={...au(this.config.title).nonMarkTitleProperties,...d,...s?{encode:{update:s}}:{}};if(m.text)return Y(["unit","layer"],this.type)?Y(["middle",void 0],m.anchor)&&(m.frame??="group"):m.anchor??="start",ye(m)?void 0:m}assembleGroup(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],d={};s=s.concat(this.assembleSignals()),s.length>0&&(d.signals=s);let m=this.assembleLayout();m&&(d.layout=m),d.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());let y=!this.parent||Kr(this.parent)?rd(this):[];y.length>0&&(d.scales=y);let k=this.assembleAxes();k.length>0&&(d.axes=k);let A=this.assembleLegends();return A.length>0&&(d.legends=A),d}getName(s){return me((this.name?`${this.name}_`:"")+s)}getDataName(s){return this.getName(nn[s].toLowerCase())}requestDataName(s){let d=this.getDataName(s),m=this.component.data.outputNodeRefCounts;return m[d]=(m[d]||0)+1,d}getSizeSignalRef(s){if(Kr(this.parent)){let d=tu(bg(s)),m=this.component.scales[d];if(m&&!m.merged){let y=m.get("type"),k=m.get("range");if(zn(y)&&go(k)){let A=m.get("name"),R=Pg(vs(this,d));return R?{signal:lp(A,m,Ge({aggregate:"distinct",field:R},{expr:"datum"}))}:($e(pr(d)),null)}}}return{signal:this.signalNameMap.get(this.getName(s))}}lookupDataSource(s){let d=this.component.data.outputNodes[s];return d?d.getSource():s}getSignalName(s){return this.signalNameMap.get(s)}renameSignal(s,d){this.signalNameMap.rename(s,d)}renameScale(s,d){this.scaleNameMap.rename(s,d)}renameProjection(s,d){this.projectionNameMap.rename(s,d)}scaleName(s,d){return d?this.getName(s):S0(s)&&Fa(s)&&this.component.scales[s]||this.scaleNameMap.has(this.getName(s))?this.scaleNameMap.get(this.getName(s)):void 0}projectionName(s){return s?this.getName("projection"):this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection"))?this.projectionNameMap.get(this.getName("projection")):void 0}getScaleComponent(s){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");let d=this.component.scales[s];return d&&!d.merged?d:this.parent?this.parent.getScaleComponent(s):void 0}getSelectionComponent(s,d){let m=this.component.selection[s];if(!m&&this.parent&&(m=this.parent.getSelectionComponent(s,d)),!m)throw new Error((function(y){return`Cannot find a selection named "${y}".`})(d));return m}hasAxisOrientSignalRef(){return this.component.axes.x?.some((s=>s.hasOrientSignalRef()))||this.component.axes.y?.some((s=>s.hasOrientSignalRef()))}}class id extends ad{vgField(s){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},m=this.fieldDef(s);if(m)return Ge(m,d)}reduceFieldDef(s,d){return(function(m,y,k,A){return m?we(m).reduce(((R,C)=>{let $=m[C];return h.isArray($)?$.reduce(((j,H)=>y.call(A,j,H,C)),R):y.call(A,R,$,C)}),k):k})(this.getMapping(),((m,y,k)=>{let A=ga(y);return A?s(m,A,k):m}),d)}forEachFieldDef(s,d){yu(this.getMapping(),((m,y)=>{let k=ga(m);k&&s(k,y)}),d)}}class _c extends Kt{clone(){return new _c(null,U(this.transform))}constructor(s,d){super(s),this.transform=d,this.transform=U(d);let m=this.transform.as??[void 0,void 0];this.transform.as=[m[0]??"value",m[1]??"density"]}dependentFields(){return new Set([this.transform.density,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${V(this.transform)}`}assemble(){let{density:s,...d}=this.transform,m={type:"kde",field:s,...d};return this.transform.groupby&&(m.resolve="shared"),m}}class xc extends Kt{clone(){return new xc(null,U(this.transform))}constructor(s,d){super(s),this.transform=d,this.transform=U(d)}dependentFields(){return new Set([this.transform.extent])}producedFields(){return new Set([])}hash(){return`ExtentTransform ${V(this.transform)}`}assemble(){let{extent:s,param:d}=this.transform;return{type:"extent",field:s,signal:d}}}class Qi extends Kt{clone(){return new Qi(null,{...this.filter})}constructor(s,d){super(s),this.filter=d}static make(s,d){let{config:m,mark:y,markDef:k}=d;if(Yt("invalid",k,m)!=="filter")return null;let A=d.reduceFieldDef(((R,C,$)=>{let j=Fa($)&&d.getScaleComponent($);return j&&qr(j.get("type"))&&C.aggregate!=="count"&&!as(y)&&(R[C.field]=C),R}),{});return we(A).length?new Qi(s,A):null}dependentFields(){return new Set(we(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${V(this.filter)}`}assemble(){let s=we(this.filter).reduce(((d,m)=>{let y=this.filter[m],k=Ge(y,{expr:"datum"});return y!==null&&(y.type==="temporal"?d.push(`(isDate(${k}) || (isValid(${k}) && isFinite(+${k})))`):y.type==="quantitative"&&(d.push(`isValid(${k})`),d.push(`isFinite(+${k})`))),d}),[]);return s.length>0?{type:"filter",expr:s.join(" && ")}:null}}class ja extends Kt{clone(){return new ja(this.parent,U(this.transform))}constructor(s,d){super(s),this.transform=d,this.transform=U(d);let{flatten:m,as:y=[]}=this.transform;this.transform.as=m.map(((k,A)=>y[A]??k))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${V(this.transform)}`}assemble(){let{flatten:s,as:d}=this.transform;return{type:"flatten",fields:s,as:d}}}class ws extends Kt{clone(){return new ws(null,U(this.transform))}constructor(s,d){super(s),this.transform=d,this.transform=U(d);let m=this.transform.as??[void 0,void 0];this.transform.as=[m[0]??"key",m[1]??"value"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${V(this.transform)}`}assemble(){let{fold:s,as:d}=this.transform;return{type:"fold",fields:s,as:d}}}class eo extends Kt{clone(){return new eo(null,U(this.fields),this.geojson,this.signal)}static parseAll(s,d){if(d.component.projection&&!d.component.projection.isFit)return s;let m=0;for(let y of[[Br,ot],[ca,ur]]){let k=y.map((A=>{let R=mn(d.encoding[A]);return ze(R)?R.field:Pi(R)?{expr:`${R.datum}`}:ma(R)?{expr:`${R.value}`}:void 0}));(k[0]||k[1])&&(s=new eo(s,k,null,d.getName("geojson_"+m++)))}if(d.channelHasField(vn)){let y=d.typedFieldDef(vn);y.type===Vs&&(s=new eo(s,null,y.field,d.getName("geojson_"+m++)))}return s}constructor(s,d,m,y){super(s),this.fields=d,this.geojson=m,this.signal=y}dependentFields(){let s=(this.fields??[]).filter(h.isString);return new Set([...this.geojson?[this.geojson]:[],...s])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${V(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],{type:"geojson",...this.fields?{fields:this.fields}:{},...this.geojson?{geojson:this.geojson}:{},signal:this.signal}]}}class ks extends Kt{clone(){return new ks(null,this.projection,U(this.fields),U(this.as))}constructor(s,d,m,y){super(s),this.projection=d,this.fields=m,this.as=y}static parseAll(s,d){if(!d.projectionName())return s;for(let m of[[Br,ot],[ca,ur]]){let y=m.map((A=>{let R=mn(d.encoding[A]);return ze(R)?R.field:Pi(R)?{expr:`${R.datum}`}:ma(R)?{expr:`${R.value}`}:void 0})),k=m[0]===ca?"2":"";(y[0]||y[1])&&(s=new ks(s,d.projectionName(),y,[d.getName(`x${k}`),d.getName(`y${k}`)]))}return s}dependentFields(){return new Set(this.fields.filter(h.isString))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${V(this.fields)} ${V(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class va extends Kt{clone(){return new va(null,U(this.transform))}constructor(s,d){super(s),this.transform=d}dependentFields(){return new Set([this.transform.impute,this.transform.key,...this.transform.groupby??[]])}producedFields(){return new Set([this.transform.impute])}processSequence(s){let{start:d=0,stop:m,step:y}=s;return{signal:`sequence(${[d,m,...y?[y]:[]].join(",")})`}}static makeFromTransform(s,d){return new va(s,d)}static makeFromEncoding(s,d){let m=d.encoding,y=m.x,k=m.y;if(ze(y)&&ze(k)){let A=y.impute?y:k.impute?k:void 0;if(A===void 0)return;let R=y.impute?k:k.impute?y:void 0,{method:C,value:$,frame:j,keyvals:H}=A.impute,ee=pm(d.mark,m);return new va(s,{impute:A.field,key:R.field,...C?{method:C}:{},...$!==void 0?{value:$}:{},...j?{frame:j}:{},...H!==void 0?{keyvals:H}:{},...ee.length?{groupby:ee}:{}})}return null}hash(){return`Impute ${V(this.transform)}`}assemble(){let{impute:s,key:d,keyvals:m,method:y,groupby:k,value:A,frame:R=[null,null]}=this.transform,C={type:"impute",field:s,key:d,...m?{keyvals:($=m,$?.stop!==void 0?this.processSequence(m):m)}:{},method:"value",...k?{groupby:k}:{},value:y&&y!=="value"?null:A};var $;return y&&y!=="value"?[C,{type:"window",as:[`imputed_${s}_value`],ops:[y],fields:[s],frame:R,ignorePeers:!1,...k?{groupby:k}:{}},{type:"formula",expr:`datum.${s} === null ? datum.imputed_${s}_value : datum.${s}`,as:s}]:[C]}}class to extends Kt{clone(){return new to(null,U(this.transform))}constructor(s,d){super(s),this.transform=d,this.transform=U(d);let m=this.transform.as??[void 0,void 0];this.transform.as=[m[0]??d.on,m[1]??d.loess]}dependentFields(){return new Set([this.transform.loess,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${V(this.transform)}`}assemble(){let{loess:s,on:d,...m}=this.transform;return{type:"loess",x:d,y:s,...m}}}class Xr extends Kt{clone(){return new Xr(null,U(this.transform),this.secondary)}constructor(s,d,m){super(s),this.transform=d,this.secondary=m}static make(s,d,m,y){let k=d.component.data.sources,{from:A}=m,R=null;if((function(C){return"data"in C})(A)){let C=Yg(A.data,k);C||(C=new Co(A.data),k.push(C));let $=d.getName(`lookup_${y}`);R=new rr(C,$,nn.Lookup,d.component.data.outputNodeRefCounts),d.component.data.outputNodes[$]=R}else if((function(C){return"param"in C})(A)){let C=A.param,$;m={as:C,...m};try{$=d.getSelectionComponent(me(C),C)}catch{throw new Error((function(H){return`Lookups can only be performed on selection parameters. "${H}" is a variable parameter.`})(C))}if(R=$.materialized,!R)throw new Error((function(j){return`Cannot define and lookup the "${j}" selection in the same view. Try moving the lookup into a second, layered view?`})(C))}return new Xr(s,m,R.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?h.array(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${V({transform:this.transform,secondary:this.secondary})}`}assemble(){let s;if(this.transform.from.fields)s={values:this.transform.from.fields,...this.transform.as?{as:h.array(this.transform.as)}:{}};else{let d=this.transform.as;h.isString(d)||($e('If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.'),d="_lookup"),s={as:[d]}}return{type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup],...s,...this.transform.default?{default:this.transform.default}:{}}}}class Io extends Kt{clone(){return new Io(null,U(this.transform))}constructor(s,d){super(s),this.transform=d,this.transform=U(d);let m=this.transform.as??[void 0,void 0];this.transform.as=[m[0]??"prob",m[1]??"value"]}dependentFields(){return new Set([this.transform.quantile,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${V(this.transform)}`}assemble(){let{quantile:s,...d}=this.transform;return{type:"quantile",field:s,...d}}}class Oo extends Kt{clone(){return new Oo(null,U(this.transform))}constructor(s,d){super(s),this.transform=d,this.transform=U(d);let m=this.transform.as??[void 0,void 0];this.transform.as=[m[0]??d.on,m[1]??d.regression]}dependentFields(){return new Set([this.transform.regression,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${V(this.transform)}`}assemble(){let{regression:s,on:d,...m}=this.transform;return{type:"regression",x:d,y:s,...m}}}class hl extends Kt{clone(){return new hl(null,U(this.transform))}constructor(s,d){super(s),this.transform=d}addDimensions(s){this.transform.groupby=be((this.transform.groupby??[]).concat(s),(d=>d))}producedFields(){}dependentFields(){return new Set([this.transform.pivot,this.transform.value,...this.transform.groupby??[]])}hash(){return`PivotTransform ${V(this.transform)}`}assemble(){let{pivot:s,value:d,groupby:m,limit:y,op:k}=this.transform;return{type:"pivot",field:s,value:d,...y!==void 0?{limit:y}:{},...k!==void 0?{op:k}:{},...m!==void 0?{groupby:m}:{}}}}class ml extends Kt{clone(){return new ml(null,U(this.transform))}constructor(s,d){super(s),this.transform=d}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${V(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function xp(l){let s=0;return function d(m,y){if(m instanceof Co&&!m.isGenerator&&!ds(m.data)&&(l.push(y),y={name:null,source:y.name,transform:[]}),m instanceof Wn&&(m.parent instanceof Co&&!y.source?(y.format={...y.format??{},parse:m.assembleFormatParse()},y.transform.push(...m.assembleTransforms(!0))):y.transform.push(...m.assembleTransforms())),m instanceof ul)return y.name||(y.name="data_"+s++),!y.source||y.transform.length>0?(l.push(y),m.data=y.name):m.data=y.source,void l.push(...m.assemble());switch((m instanceof Xu||m instanceof Zu||m instanceof Qi||m instanceof pi||m instanceof ol||m instanceof ks||m instanceof Yr||m instanceof Xr||m instanceof fl||m instanceof dl||m instanceof ws||m instanceof ja||m instanceof _c||m instanceof to||m instanceof Io||m instanceof Oo||m instanceof Ro||m instanceof ml||m instanceof hl||m instanceof xc)&&y.transform.push(m.assemble()),(m instanceof gi||m instanceof Wi||m instanceof va||m instanceof No||m instanceof eo)&&y.transform.push(...m.assemble()),m instanceof rr&&(y.source&&y.transform.length===0?m.setSource(y.source):m.parent instanceof rr?m.setSource(y.name):(y.name||(y.name="data_"+s++),m.setSource(y.name),m.numChildren()===1&&(l.push(y),y={name:null,source:y.name,transform:[]}))),m.numChildren()){case 0:m instanceof rr&&(!y.source||y.transform.length>0)&&l.push(y);break;case 1:d(m.children[0],y);break;default:{y.name||(y.name="data_"+s++);let k=y.name;!y.source||y.transform.length>0?l.push(y):k=y.source;for(let A of m.children)d(A,{name:null,source:k,transform:[]});break}}}}function Vg(l){return l==="top"||l==="left"||Je(l)?"header":"footer"}function _v(l,s){let{facet:d,config:m,child:y,component:k}=l;if(l.channelHasField(s)){let A=d[s],R=Zi("title",null,m,s),C=os(A,m,{allowDisabling:!0,includeDefault:R===void 0||!!R});y.component.layoutHeaders[s].title&&(C=h.isArray(C)?C.join(", "):C,C+=` / ${y.component.layoutHeaders[s].title}`,y.component.layoutHeaders[s].title=null);let $=Zi("labelOrient",A.header,m,s),j=A.header!==null&&Tt(A.header?.labels,m.header.labels,!0),H=Y(["bottom","right"],$)?"footer":"header";k.layoutHeaders[s]={title:A.header!==null?C:null,facetFieldDef:A,[H]:s==="facet"?[]:[Sp(l,s,j)]}}}function Sp(l,s,d){let m=s==="row"?"height":"width";return{labels:d,sizeSignal:l.child.component.layoutSize.get(m)?l.child.getSizeSignalRef(m):void 0,axes:[]}}function Tn(l,s){let{child:d}=l;if(d.component.axes[s]){let{layoutHeaders:m,resolve:y}=l.component;if(y.axis[s]=cp(y,s),y.axis[s]==="shared"){let k=s==="x"?"column":"row",A=m[k];for(let R of d.component.axes[s]){let C=Vg(R.get("orient"));A[C]??=[Sp(l,k,!1)];let $=Xi(R,"main",l.config,{header:!0});$&&A[C][0].axes.push($),R.mainExtracted=!0}}}}function gl(l){for(let s of l.children)s.parseLayoutSize()}function _s(l,s){let d=bg(s),m=tu(d),y=l.component.resolve,k=l.component.layoutSize,A;for(let R of l.children){let C=R.component.layoutSize.getWithExplicit(d),$=y.scale[m]??vg(m,l);if($==="independent"&&C.value==="step"){A=void 0;break}if(A){if($==="independent"&&A.value!==C.value){A=void 0;break}A=qi(A,C,d,"")}else A=C}if(A){for(let R of l.children)l.renameSignal(R.getName(d),l.getName(s)),R.component.layoutSize.set(d,"merged",!1);k.setWithExplicit(s,A)}else k.setWithExplicit(s,{explicit:!1,value:void 0})}function Ha(l,s){let d=s==="width"?"x":"y",m=l.config,y=l.getScaleComponent(d);if(y){let k=y.get("type"),A=y.get("range");if(zn(k)){let R=Tu(m.view,s);return go(A)||Wr(R)?"step":R}return us(m.view,s)}if(l.hasProjection||l.mark==="arc")return us(m.view,s);{let k=Tu(m.view,s);return Wr(k)?k.step:k}}function od(l,s,d){return Ge(s,{suffix:`by_${Ge(l)}`,...d??{}})}class bl extends id{constructor(s,d,m,y){super(s,"facet",d,m,y,s.resolve),ct(this,"facet",void 0),ct(this,"child",void 0),ct(this,"children",void 0),this.child=tb(s.spec,this,this.getName("child"),void 0,y),this.children=[this.child],this.facet=this.initFacet(s.facet)}initFacet(s){if(!Ql(s))return{facet:this.initFacetFieldDef(s,"facet")};let d=we(s),m={};for(let y of d){if(![We,at].includes(y)){$e(Mi(y,"facet"));break}let k=s[y];if(k.field===void 0){$e(Wd(k,y));break}m[y]=this.initFacetFieldDef(k,y)}return m}initFacetFieldDef(s,d){let m=ac(s,d);return m.header?m.header=Jn(m.header):m.header===null&&(m.header=null),m}channelHasField(s){return!!this.facet[s]}fieldDef(s){return this.facet[s]}parseData(){this.component.data=Ap(this),this.child.parseData()}parseLayoutSize(){gl(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),(function(s){for(let d of zr)_v(s,d);Tn(s,"x"),Tn(s,"y")})(this)}assembleSelectionTopLevelSignals(s){return this.child.assembleSelectionTopLevelSignals(s)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(s){return this.child.assembleSelectionData(s)}getHeaderLayoutMixins(){let s={};for(let d of zr)for(let m of Gu){let y=this.component.layoutHeaders[d],k=y[m],{facetFieldDef:A}=y;if(A){let R=Zi("titleOrient",A.header,this.config,d);if(["right","bottom"].includes(R)){let C=Uu(d,R);s.titleAnchor??={},s.titleAnchor[C]="end"}}if(k?.[0]){let R=d==="row"?"height":"width",C=m==="header"?"headerBand":"footerBand";d==="facet"||this.child.component.layoutSize.get(R)||(s[C]??={},s[C][d]=.5),y.title&&(s.offset??={},s.offset[d==="row"?"rowTitle":"columnTitle"]=10)}}return s}assembleDefaultLayout(){let{column:s,row:d}=this.facet,m=s?this.columnDistinctSignal():d?1:void 0,y="all";return(d||this.component.resolve.scale.x!=="independent")&&(s||this.component.resolve.scale.y!=="independent")||(y="none"),{...this.getHeaderLayoutMixins(),...m?{columns:m}:{},bounds:"full",align:y}}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof bl))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(s){return this.parent&&this.parent instanceof bl?{...this.channelHasField("column")?{encode:{update:{columns:{field:Ge(this.facet.column,{prefix:"distinct"})}}}}:{},...super.assembleGroup(s)}:super.assembleGroup(s)}getCardinalityAggregateForChild(){let s=[],d=[],m=[];if(this.child instanceof bl){if(this.child.channelHasField("column")){let y=Ge(this.child.facet.column);s.push(y),d.push("distinct"),m.push(`distinct_${y}`)}}else for(let y of ni){let k=this.child.component.scales[y];if(k&&!k.merged){let A=k.get("type"),R=k.get("range");if(zn(A)&&go(R)){let C=Pg(vs(this.child,y));C?(s.push(C),d.push("distinct"),m.push(`distinct_${C}`)):$e(pr(y))}}}return{fields:s,ops:d,as:m}}assembleFacet(){let{name:s,data:d}=this.component.data.facetRoot,{row:m,column:y}=this.facet,{fields:k,ops:A,as:R}=this.getCardinalityAggregateForChild(),C=[];for(let j of zr){let H=this.facet[j];if(H){C.push(Ge(H));let{bin:ee,sort:ae}=H;if(Jt(ee)&&C.push(Ge(H,{binSuffix:"end"})),li(ae)){let{field:ne,op:de=fu}=ae,he=od(H,ae);m&&y?(k.push(he),A.push("max"),R.push(he)):(k.push(ne),A.push(de),R.push(he))}else if(h.isArray(ae)){let ne=sl(H,j);k.push(ne),A.push("max"),R.push(ne)}}}let $=!!m&&!!y;return{name:s,data:d,groupby:C,...$||k.length>0?{aggregate:{...$?{cross:$}:{},...k.length?{fields:k,ops:A,as:R}:{}}}:{}}}facetSortFields(s){let{facet:d}=this,m=d[s];return m?li(m.sort)?[od(m,m.sort,{expr:"datum"})]:h.isArray(m.sort)?[sl(m,s,{expr:"datum"})]:[Ge(m,{expr:"datum"})]:[]}facetSortOrder(s){let{facet:d}=this,m=d[s];if(m){let{sort:y}=m;return[(li(y)?y.order:!h.isArray(y)&&y)||"ascending"]}return[]}assembleLabelTitle(){let{facet:s,config:d}=this;if(s.facet)return So(s.facet,"facet",d);let m={row:["top","bottom"],column:["left","right"]};for(let y of kc)if(s[y]){let k=Zi("labelOrient",s[y]?.header,d,y);if(m[y].includes(k))return So(s[y],y,d)}}assembleMarks(){let{child:s}=this,d=(function(A){let R=[],C=xp(R);for(let $ of A.children)C($,{source:A.name,name:null,transform:[]});return R})(this.component.data.facetRoot),m=s.assembleGroupEncodeEntry(!1),y=this.assembleLabelTitle()||s.assembleTitle(),k=s.assembleGroupStyle();return[{name:this.getName("cell"),type:"group",...y?{title:y}:{},...k?{style:k}:{},from:{facet:this.assembleFacet()},sort:{field:zr.map((A=>this.facetSortFields(A))).flat(),order:zr.map((A=>this.facetSortOrder(A))).flat()},...d.length>0?{data:d}:{},...m?{encode:{update:m}}:{},...s.assembleGroup(Iu(this,[]))}]}getMapping(){return this.facet}}function Yg(l,s){for(let d of s){let m=d.data;if(l.name&&d.hasName()&&l.name!==d.dataName)continue;let y=l.format?.mesh,k=m.format?.feature;if(y&&k)continue;let A=l.format?.feature;if((A||k)&&A!==k)continue;let R=m.format?.mesh;if(!y&&!R||y===R){if(mc(l)&&mc(m)){if(Ne(l.values,m.values))return d}else if(ds(l)&&ds(m)){if(l.url===m.url)return d}else if(Vf(l)&&l.name===d.dataName)return d}}return null}function Ap(l){let s=(function(ne,de){if(ne.data||!ne.parent){if(ne.data===null){let ge=new Co({values:[]});return de.push(ge),ge}let he=Yg(ne.data,de);if(he)return Eo(ne.data)||(he.data.format=le({},ne.data.format,he.data.format)),!he.hasName()&&ne.data.name&&(he.dataName=ne.data.name),he;{let ge=new Co(ne.data);return de.push(ge),ge}}return ne.parent.component.data.facetRoot?ne.parent.component.data.facetRoot:ne.parent.component.data.main})(l,l.component.data.sources),{outputNodes:d,outputNodeRefCounts:m}=l.component.data,y=l.data,k=!(y&&(Eo(y)||ds(y)||mc(y)))&&l.parent?l.parent.component.data.ancestorParse.clone():new Ly;Eo(y)?(Yf(y)?s=new Zu(s,y.sequence):Xf(y)&&(s=new Xu(s,y.graticule)),k.parseNothing=!0):y?.format?.parse===null&&(k.parseNothing=!0),s=Wn.makeExplicit(s,l,k)??s,s=new Ro(s);let A=l.parent&&Es(l.parent);(dn(l)||Kr(l))&&A&&(s=gi.makeFromEncoding(s,l)??s),l.transforms.length>0&&(s=(function(ne,de,he){let ge=0;for(let Ee of de.transforms){let Se,Re;if(s_(Ee))Re=ne=new ol(ne,Ee),Se="derived";else if($m(Ee)){let Pe=g_(Ee);Re=ne=Wn.makeWithAncestors(ne,{},Pe,he)??ne,ne=new pi(ne,de,Ee.filter)}else if(zf(Ee))Re=ne=gi.makeFromTransform(ne,Ee,de),Se="number";else if(Gf(Ee))Se="date",he.getWithExplicit(Ee.field).value===void 0&&(ne=new Wn(ne,{[Ee.field]:Se}),he.set(Ee.field,Se,!1)),Re=ne=Wi.makeFromTransform(ne,Ee);else if(Oy(Ee))Re=ne=Yr.makeFromTransform(ne,Ee),Se="number",pg(de)&&(ne=new Ro(ne));else if(Bm(Ee))Re=ne=Xr.make(ne,de,Ee,ge++),Se="derived";else if(zm(Ee))Re=ne=new fl(ne,Ee),Se="number";else if(Gm(Ee))Re=ne=new dl(ne,Ee),Se="number";else if(l_(Ee))Re=ne=No.makeFromTransform(ne,Ee),Se="derived";else if(Hm(Ee))Re=ne=new ws(ne,Ee),Se="derived";else if(qm(Ee))Re=ne=new xc(ne,Ee),Se="derived";else if(Iy(Ee))Re=ne=new ja(ne,Ee),Se="derived";else if(i_(Ee))Re=ne=new hl(ne,Ee),Se="derived";else if(Ny(Ee))ne=new ml(ne,Ee);else if(jm(Ee))Re=ne=va.makeFromTransform(ne,Ee),Se="derived";else if(Ry(Ee))Re=ne=new _c(ne,Ee),Se="derived";else if(Um(Ee))Re=ne=new Io(ne,Ee),Se="derived";else if(Cy(Ee))Re=ne=new Oo(ne,Ee),Se="derived";else{if(!o_(Ee)){$e(`Ignoring an invalid transform: ${Be(Ee)}.`);continue}Re=ne=new to(ne,Ee),Se="derived"}if(Re&&Se!==void 0)for(let Pe of Re.producedFields()??[])he.set(Pe,Se,!1)}return ne})(s,l,k));let R=(function(ne){let de={};if(dn(ne)&&ne.component.selection)for(let he of we(ne.component.selection)){let ge=ne.component.selection[he];for(let Ee of ge.project.items)!Ee.channel&&Zt(Ee.field)>1&&(de[Ee.field]="flatten")}return de})(l),C=qn(l);s=Wn.makeWithAncestors(s,{},{...R,...C},k)??s,dn(l)&&(s=eo.parseAll(s,l),s=ks.parseAll(s,l)),(dn(l)||Kr(l))&&(A||(s=gi.makeFromEncoding(s,l)??s),s=Wi.makeFromEncoding(s,l)??s,s=ol.parseAllForSortIndex(s,l));let $=l.getDataName(nn.Raw),j=new rr(s,$,nn.Raw,m);if(d[$]=j,s=j,dn(l)){let ne=Yr.makeFromEncoding(s,l);ne&&(s=ne,pg(l)&&(s=new Ro(s))),s=va.makeFromEncoding(s,l)??s,s=No.makeFromEncoding(s,l)??s}dn(l)&&(s=Qi.make(s,l)??s);let H=l.getDataName(nn.Main),ee=new rr(s,H,nn.Main,m);d[H]=ee,s=ee,dn(l)&&(function(ne,de){for(let[he,ge]of tt(ne.component.selection??{})){let Ee=ne.getName(`lookup_${he}`);ne.component.data.outputNodes[Ee]=ge.materialized=new rr(new pi(de,ne,{param:he}),Ee,nn.Lookup,ne.component.data.outputNodeRefCounts)}})(l,ee);let ae=null;if(Kr(l)){let ne=l.getName("facet");s=(function(de,he){let{row:ge,column:Ee}=he;if(ge&&Ee){let Se=null;for(let Re of[ge,Ee])if(li(Re.sort)){let{field:Pe,op:qe=fu}=Re.sort;de=Se=new dl(de,{joinaggregate:[{op:qe,field:Pe,as:od(Re,Re.sort,{forAs:!0})}],groupby:[Ge(Re)]})}return Se}return null})(s,l.facet)??s,ae=new ul(s,l,ne,ee.getSource()),d[ne]=ae}return{...l.component.data,outputNodes:d,outputNodeRefCounts:m,raw:j,main:ee,facetRoot:ae,ancestorParse:k}}class w_ extends ad{constructor(s,d,m,y){super(s,"concat",d,m,y,s.resolve),ct(this,"children",void 0),s.resolve?.axis?.x!=="shared"&&s.resolve?.axis?.y!=="shared"||$e("Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415)."),this.children=this.getChildren(s).map(((k,A)=>tb(k,this,this.getName(`concat_${A}`),void 0,y)))}parseData(){this.component.data=Ap(this);for(let s of this.children)s.parseData()}parseSelections(){this.component.selection={};for(let s of this.children){s.parseSelections();for(let d of we(s.component.selection))this.component.selection[d]=s.component.selection[d]}}parseMarkGroup(){for(let s of this.children)s.parseMarkGroup()}parseAxesAndHeaders(){for(let s of this.children)s.parseAxesAndHeaders()}getChildren(s){return dc(s)?s.vconcat:Lf(s)?s.hconcat:s.concat}parseLayoutSize(){(function(s){gl(s);let d=s.layout.columns===1?"width":"childWidth",m=s.layout.columns===void 0?"height":"childHeight";_s(s,d),_s(s,m)})(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(s){return this.children.reduce(((d,m)=>m.assembleSelectionTopLevelSignals(d)),s)}assembleSignals(){return this.children.forEach((s=>s.assembleSignals())),[]}assembleLayoutSignals(){let s=ya(this);for(let d of this.children)s.push(...d.assembleLayoutSignals());return s}assembleSelectionData(s){return this.children.reduce(((d,m)=>m.assembleSelectionData(d)),s)}assembleMarks(){return this.children.map((s=>{let d=s.assembleTitle(),m=s.assembleGroupStyle(),y=s.assembleGroupEncodeEntry(!1);return{type:"group",name:s.getName("group"),...d?{title:d}:{},...m?{style:m}:{},...y?{encode:{update:y}}:{},...s.assembleGroup()}}))}assembleGroupStyle(){}assembleDefaultLayout(){let s=this.layout.columns;return{...s!=null?{columns:s}:{},bounds:"full",align:"each"}}}let Tp={disable:1,gridScale:1,scale:1,...bu,labelExpr:1,encode:1},Kg=we(Tp);class Rp extends ji{constructor(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},m=arguments.length>2&&arguments[2]!==void 0&&arguments[2];super(),this.explicit=s,this.implicit=d,this.mainExtracted=m}clone(){return new Rp(U(this.explicit),U(this.implicit),this.mainExtracted)}hasAxisPart(s){return s==="axis"||(s==="grid"||s==="title"?!!this.get(s):!((d=this.get(s))===!1||d===null));var d}hasOrientSignalRef(){return Je(this.explicit.orient)}}let jt={bottom:"top",top:"bottom",left:"right",right:"left"};function xv(l,s){if(!l)return s.map((d=>d.clone()));{if(l.length!==s.length)return;let d=l.length;for(let m=0;m<d;m++){let y=l[m],k=s[m];if(!!y!=!!k)return;if(y&&k){let A=y.getWithExplicit("orient"),R=k.getWithExplicit("orient");if(A.explicit&&R.explicit&&A.value!==R.value)return;l[m]=yl(y,k)}}}return l}function yl(l,s){for(let d of Kg){let m=qi(l.getWithExplicit(d),s.getWithExplicit(d),d,"axis",((y,k)=>{switch(d){case"title":return ii(y,k);case"gridScale":return{explicit:y.explicit,value:Tt(y.value,k.value)}}return Nu(y,k,d,"axis")}));l.setWithExplicit(d,m)}return l}function Xg(l,s,d,m,y){if(s==="disable")return d!==void 0;switch(d=d||{},s){case"titleAngle":case"labelAngle":return l===(Je(d.labelAngle)?d.labelAngle:$r(d.labelAngle));case"values":return!!d.values;case"encode":return!!d.encoding||!!d.labelAngle;case"title":if(l===tv(m,y))return!0}return l===d[s]}let Sc=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function Zg(l,s){let d=s.axis(l),m=new Rp,y=mn(s.encoding[l]),{mark:k,config:A}=s,R=d?.orient||A[l==="x"?"axisX":"axisY"]?.orient||A.axis?.orient||(function(ge){return ge==="x"?"bottom":"left"})(l),C=s.getScaleComponent(l).get("type"),$=(function(ge,Ee,Se,Re){let Pe=Ee==="band"?["axisDiscrete","axisBand"]:Ee==="point"?["axisDiscrete","axisPoint"]:ty(Ee)?["axisQuantitative"]:Ee==="time"||Ee==="utc"?["axisTemporal"]:[],qe=ge==="x"?"axisX":"axisY",st=Je(Se)?"axisOrient":`axis${wt(Se)}`,mt=[...Pe,...Pe.map((Qe=>qe+Qe.substr(4)))],it=["axis",st,qe];return{vlOnlyAxisConfig:hi(mt,Re,ge,Se),vgAxisConfig:hi(it,Re,ge,Se),axisConfigStyle:m_([...it,...mt],Re)}})(l,C,R,s.config),j=d!==void 0?!d:hg("disable",A.style,d?.style,$).configValue;if(m.set("disable",j,d!==void 0),j)return m;d=d||{};let H=(function(ge,Ee,Se,Re,Pe){let qe=Ee?.labelAngle;if(qe!==void 0)return Je(qe)?qe:$r(qe);{let{configValue:st}=hg("labelAngle",Re,Ee?.style,Pe);return st!==void 0?$r(st):Se!==et||!Y([af,rf],ge.type)||ze(ge)&&ge.timeUnit?void 0:270}})(y,d,l,A.style,$),ee=fy(d.formatType,y,C),ae=dy(y,y.type,d.format,d.formatType,A,!0),ne={fieldOrDatumDef:y,axis:d,channel:l,model:s,scaleType:C,orient:R,labelAngle:H,format:ae,formatType:ee,mark:k,config:A};for(let ge of Kg){let Ee=ge in Jy?Jy[ge](ne):by(ge)?d[ge]:void 0,Se=Ee!==void 0,Re=Xg(Ee,ge,d,s,l);if(Se&&Re)m.set(ge,Ee,Re);else{let{configValue:Pe,configFrom:qe}=by(ge)&&ge!=="values"?hg(ge,A.style,d.style,$):{},st=Pe!==void 0;Se&&!st?m.set(ge,Ee,Re):(qe!=="vgAxisConfig"||Sc.has(ge)&&st||sc(Pe)||Je(Pe))&&m.set(ge,Pe,!1)}}let de=d.encoding??{},he=ls.reduce(((ge,Ee)=>{if(!m.hasAxisPart(Ee))return ge;let Se=yg(de[Ee]??{},s),Re=Ee==="labels"?(function(Pe,qe,st){let{encoding:mt,config:it}=Pe,Qe=mn(mt[qe])??mn(mt[Ri(qe)]),Ct=Pe.axis(qe)||{},{format:Ht,formatType:Mn}=Ct;if(Xs(Mn))return{text:si({fieldOrDatumDef:Qe,field:"datum.value",format:Ht,formatType:Mn,config:it}),...st};if(Ht===void 0&&Mn===void 0&&it.customFormatTypes){if(tc(Qe)==="quantitative"){if(nc(Qe)&&Qe.stack==="normalize"&&it.normalizedNumberFormatType)return{text:si({fieldOrDatumDef:Qe,field:"datum.value",format:it.normalizedNumberFormat,formatType:it.normalizedNumberFormatType,config:it}),...st};if(it.numberFormatType)return{text:si({fieldOrDatumDef:Qe,field:"datum.value",format:it.numberFormat,formatType:it.numberFormatType,config:it}),...st}}if(tc(Qe)==="temporal"&&it.timeFormatType&&ze(Qe)&&!Qe.timeUnit)return{text:si({fieldOrDatumDef:Qe,field:"datum.value",format:it.timeFormat,formatType:it.timeFormatType,config:it}),...st}}return st})(s,l,Se):Se;return Re===void 0||ye(Re)||(ge[Ee]={update:Re}),ge}),{});return ye(he)||m.set("encode",he,!!d.encoding||d.labelAngle!==void 0),m}function Cp(l,s){let{config:d}=l;return{...Nr(l,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...Hn("x",l,{defaultPos:"mid"}),...Hn("y",l,{defaultPos:"mid"}),...jn("size",l),...jn("angle",l),...Sv(l,d,s)}}function Sv(l,s,d){return d?{shape:{value:d}}:jn("shape",l)}let Av={vgMark:"rule",encodeEntry:l=>{let{markDef:s}=l,d=s.orient;return l.encoding.x||l.encoding.y||l.encoding.latitude||l.encoding.longitude?{...Nr(l,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...np("x",l,{defaultPos:d==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:d!=="vertical"}),...np("y",l,{defaultPos:d==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:d!=="horizontal"}),...jn("size",l,{vgChannel:"strokeWidth"})}:{}}};function k_(l,s,d){if(Yt("align",l,d)===void 0)return"center"}function Tv(l,s,d){if(Yt("baseline",l,d)===void 0)return"middle"}let Np={vgMark:"rect",encodeEntry:l=>{let{config:s,markDef:d}=l,m=d.orient,y=m==="horizontal"?"width":"height",k=m==="horizontal"?"height":"width";return{...Nr(l,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Hn("x",l,{defaultPos:"mid",vgChannel:"xc"}),...Hn("y",l,{defaultPos:"mid",vgChannel:"yc"}),...jn("size",l,{defaultValue:Rv(l),vgChannel:y}),[k]:sn(Yt("thickness",d,s))}}};function Rv(l){let{config:s,markDef:d}=l,{orient:m}=d,y=m==="horizontal"?"width":"height",k=l.getScaleComponent(m==="horizontal"?"x":"y"),A=Yt("size",d,s,{vgChannel:y})??s.tick.bandSize;if(A!==void 0)return A;{let R=k?k.get("range"):void 0;return R&&go(R)&&h.isNumber(R.step)?3*R.step/4:3*fc(s.view,y)/4}}let sd={arc:{vgMark:"arc",encodeEntry:l=>({...Nr(l,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...Hn("x",l,{defaultPos:"mid"}),...Hn("y",l,{defaultPos:"mid"}),...di(l,"radius"),...di(l,"theta")})},area:{vgMark:"area",encodeEntry:l=>({...Nr(l,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"}),...np("x",l,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:l.markDef.orient==="horizontal"}),...np("y",l,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:l.markDef.orient==="vertical"}),...Fu(l)})},bar:{vgMark:"rect",encodeEntry:l=>({...Nr(l,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...di(l,"x"),...di(l,"y")})},circle:{vgMark:"symbol",encodeEntry:l=>Cp(l,"circle")},geoshape:{vgMark:"shape",encodeEntry:l=>({...Nr(l,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})}),postEncodingTransform:l=>{let{encoding:s}=l,d=s.shape;return[{type:"geoshape",projection:l.projectionName(),...d&&ze(d)&&d.type===Vs?{field:Ge(d,{expr:"datum"})}:{}}]}},image:{vgMark:"image",encodeEntry:l=>({...Nr(l,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"}),...di(l,"x"),...di(l,"y"),...ep(l,"url")})},line:{vgMark:"line",encodeEntry:l=>({...Nr(l,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...Hn("x",l,{defaultPos:"mid"}),...Hn("y",l,{defaultPos:"mid"}),...jn("size",l,{vgChannel:"strokeWidth"}),...Fu(l)})},point:{vgMark:"symbol",encodeEntry:l=>Cp(l)},rect:{vgMark:"rect",encodeEntry:l=>({...Nr(l,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...di(l,"x"),...di(l,"y")})},rule:Av,square:{vgMark:"symbol",encodeEntry:l=>Cp(l,"square")},text:{vgMark:"text",encodeEntry:l=>{let{config:s,encoding:d}=l;return{...Nr(l,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"}),...Hn("x",l,{defaultPos:"mid"}),...Hn("y",l,{defaultPos:"mid"}),...ep(l),...jn("size",l,{vgChannel:"fontSize"}),...jn("angle",l),...Hy("align",k_(l.markDef,d,s)),...Hy("baseline",Tv(l.markDef,d,s)),...Hn("radius",l,{defaultPos:null}),...Hn("theta",l,{defaultPos:null})}}},tick:Np,trail:{vgMark:"trail",encodeEntry:l=>({...Nr(l,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...Hn("x",l,{defaultPos:"mid"}),...Hn("y",l,{defaultPos:"mid"}),...jn("size",l),...Fu(l)})}};function Jg(l){if(Y([uu,of,Hk],l.mark)){let s=pm(l.mark,l.encoding);if(s.length>0)return(function(d,m){return[{name:d.getName("pathgroup"),type:"group",from:{facet:{name:Qg+d.requestDataName(nn.Main),data:d.requestDataName(nn.Main),groupby:m}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:Ip(d,{fromPrefix:Qg})}]})(l,s)}else if(l.mark===sf){let s=Mh.some((d=>Yt(d,l.markDef,l.config)));if(l.stack&&!l.fieldDef("size")&&s)return(function(d){let[m]=Ip(d,{fromPrefix:eb}),y=d.scaleName(d.stack.fieldChannel),k=function(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return d.vgField(d.stack.fieldChannel,j)},A=(j,H)=>`${j}(${[k({prefix:"min",suffix:"start",expr:H}),k({prefix:"max",suffix:"start",expr:H}),k({prefix:"min",suffix:"end",expr:H}),k({prefix:"max",suffix:"end",expr:H})].map((ee=>`scale('${y}',${ee})`)).join(",")})`,R,C;d.stack.fieldChannel==="x"?(R={...J(m.encode.update,["y","yc","y2","height",...Mh]),x:{signal:A("min","datum")},x2:{signal:A("max","datum")},clip:{value:!0}},C={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},m.encode.update={...K(m.encode.update,["y","yc","y2"]),height:{field:{group:"height"}}}):(R={...J(m.encode.update,["x","xc","x2","width"]),y:{signal:A("min","datum")},y2:{signal:A("max","datum")},clip:{value:!0}},C={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},m.encode.update={...K(m.encode.update,["x","xc","x2"]),width:{field:{group:"width"}}});for(let j of Mh){let H=jr(j,d.markDef,d.config);m.encode.update[j]?(R[j]=m.encode.update[j],delete m.encode.update[j]):H&&(R[j]=sn(H)),H&&(m.encode.update[j]={value:0})}let $=[];if(d.stack.groupbyChannels?.length>0)for(let j of d.stack.groupbyChannels){let H=d.fieldDef(j),ee=Ge(H);ee&&$.push(ee),(H?.bin||H?.timeUnit)&&$.push(Ge(H,{binSuffix:"end"}))}return R=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce(((j,H)=>{if(m.encode.update[H])return{...j,[H]:m.encode.update[H]};{let ee=jr(H,d.markDef,d.config);return ee!==void 0?{...j,[H]:sn(ee)}:j}}),R),R.stroke&&(R.strokeForeground={value:!0},R.strokeOffset={value:0}),[{type:"group",from:{facet:{data:d.requestDataName(nn.Main),name:eb+d.requestDataName(nn.Main),groupby:$,aggregate:{fields:[k({suffix:"start"}),k({suffix:"start"}),k({suffix:"end"}),k({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:R},marks:[{type:"group",encode:{update:C},marks:[m]}]}]})(l)}return Ip(l)}let Qg="faceted_path_",eb="stack_group_";function Ip(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{fromPrefix:""},{mark:d,markDef:m,encoding:y,config:k}=l,A=Tt(m.clip,(function(ae){let ne=ae.getScaleComponent("x"),de=ae.getScaleComponent("y");return!(!ne?.get("selectionExtent")&&!de?.get("selectionExtent"))||void 0})(l),(function(ae){let ne=ae.component.projection;return!(!ne||ne.isFit)||void 0})(l)),R=P0(m),C=y.key,$=(function(ae){let{encoding:ne,stack:de,mark:he,markDef:ge,config:Ee}=ae,Se=ne.order;if(!(!h.isArray(Se)&&ma(Se)&&oe(Se.value)||!Se&&oe(Yt("order",ge,Ee)))){if((h.isArray(Se)||ze(Se))&&!de)return ql(Se,{expr:"datum"});if(as(he)){let Re=ge.orient==="horizontal"?"y":"x",Pe=ne[Re];if(ze(Pe)){let qe=Pe.sort;return h.isArray(qe)?{field:Ge(Pe,{prefix:Re,suffix:"sort_index",expr:"datum"})}:li(qe)?{field:Ge({aggregate:fm(ae.encoding)?qe.op:void 0,field:qe.field},{expr:"datum"})}:im(qe)?{field:Ge(ae.fieldDef(qe.encoding),{expr:"datum"}),order:qe.order}:qe===null?void 0:{field:Ge(Pe,{binSuffix:ae.stack?.impute?"mid":void 0,expr:"datum"})}}}}})(l),j=(function(ae){if(!ae.component.selection)return null;let ne=we(ae.component.selection).length,de=ne,he=ae.parent;for(;he&&de===0;)de=we(he.component.selection).length,he=he.parent;return de?{interactive:ne>0||ae.mark==="geoshape"||!!ae.encoding.tooltip}:null})(l),H=Yt("aria",m,k),ee=sd[d].postEncodingTransform?sd[d].postEncodingTransform(l):null;return[{name:l.getName("marks"),type:sd[d].vgMark,...A?{clip:!0}:{},...R?{style:R}:{},...C?{key:C.field}:{},...$?{sort:$}:{},...j||{},...H===!1?{aria:H}:{},from:{data:s.fromPrefix+l.requestDataName(nn.Main)},encode:{update:sd[d].encodeEntry(l)},...ee?{transform:ee}:{}}]}class Op extends id{constructor(s,d,m){let y=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},k=arguments.length>4?arguments[4]:void 0;super(s,"unit",d,m,k,void 0,Su(s)?s.view:void 0),ct(this,"markDef",void 0),ct(this,"encoding",void 0),ct(this,"specifiedScales",{}),ct(this,"stack",void 0),ct(this,"specifiedAxes",{}),ct(this,"specifiedLegends",{}),ct(this,"specifiedProjection",{}),ct(this,"selection",[]),ct(this,"children",[]);let A=Li(s.mark)?{...s.mark}:{type:s.mark},R=A.type;A.filled===void 0&&(A.filled=(function($,j,H){let{graticule:ee}=H;if(ee)return!1;let ae=jr("filled",$,j),ne=$.type;return Tt(ae,ne!==lf&&ne!==uu&&ne!==cf)})(A,k,{graticule:s.data&&Xf(s.data)}));let C=this.encoding=(function($,j,H,ee){let ae={};for(let de of we($))S0(de)||$e(`${ne=de}-encoding is dropped as ${ne} is not a valid encoding channel.`);var ne;for(let de of Jc){if(!$[de])continue;let he=$[de];if(Zn(de)){let ge=kk(de),Ee=ae[ge];if(ze(Ee)&&Q0(Ee.type)&&ze(he)&&!Ee.timeUnit){$e(Fh(ge));continue}}if(de!=="angle"||j!=="arc"||$.theta||($e("Arc marks uses theta channel rather than angle, replacing angle with theta."),de=la),xf($,de,j)){if(de===xi&&j==="line"&&ga($[de])?.aggregate){$e("Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.");continue}if(de===Fe&&(H?"fill"in $:"stroke"in $))$e(z0("encoding",{fill:"fill"in $,stroke:"stroke"in $}));else if(de===po||de===Bs&&!h.isArray(he)&&!ma(he)||de===ti&&h.isArray(he)){if(he){if(de===Bs){let ge=$[de];if(py(ge)){ae[de]=ge;continue}}ae[de]=h.array(he).reduce(((ge,Ee)=>(ze(Ee)?ge.push(ac(Ee,de)):$e(Wd(Ee,de)),ge)),[])}}else{if(de===ti&&he===null)ae[de]=null;else if(!(ze(he)||Pi(he)||ma(he)||gf(he)||Je(he))){$e(Wd(he,de));continue}ae[de]=dm(he,de,ee)}}else $e(Mi(de,j))}return ae})(s.encoding||{},R,A.filled,k);this.markDef=Ay(A,C,k),this.size=(function($){let{encoding:j,size:H}=$;for(let ee of ni){let ae=Sr(ee);Wr(H[ae])&&is(j[ee])&&(delete H[ae],$e(Uh(ae)))}return H})({encoding:C,size:Su(s)?{...y,...s.width?{width:s.width}:{},...s.height?{height:s.height}:{}}:y}),this.stack=Nm(this.markDef,C),this.specifiedScales=this.initScales(R,C),this.specifiedAxes=this.initAxes(C),this.specifiedLegends=this.initLegends(C),this.specifiedProjection=s.projection,this.selection=(s.params??[]).filter(($=>_u($)))}get hasProjection(){let{encoding:s}=this,d=this.mark===oy,m=s&&_0.some((y=>St(s[y])));return d||m}scaleDomain(s){let d=this.specifiedScales[s];return d?d.domain:void 0}axis(s){return this.specifiedAxes[s]}legend(s){return this.specifiedLegends[s]}initScales(s,d){return Gl.reduce(((m,y)=>{let k=mn(d[y]);return k&&(m[y]=this.initScale(k.scale??{})),m}),{})}initScale(s){let{domain:d,range:m}=s,y=Jn(s);return h.isArray(d)&&(y.domain=d.map(Bn)),h.isArray(m)&&(y.range=m.map(Bn)),y}initAxes(s){return ni.reduce(((d,m)=>{let y=s[m];if(St(y)||m===et&&St(s.x2)||m===nt&&St(s.y2)){let k=St(y)?y.axis:void 0;d[m]=k&&this.initAxis({...k})}return d}),{})}initAxis(s){let d=we(s),m={};for(let y of d){let k=s[y];m[y]=sc(k)?L0(k):Bn(k)}return m}initLegends(s){return I0.reduce(((d,m)=>{let y=mn(s[m]);if(y&&(function(k){switch(k){case Fe:case xr:case ei:case xi:case vn:case Si:case fo:case Zo:return!0;case Ut:case Ai:case Ur:return!1}})(m)){let k=y.legend;d[m]=k&&Jn(k)}return d}),{})}parseData(){this.component.data=Ap(this)}parseLayoutSize(){(function(s){let{size:d,component:m}=s;for(let y of ni){let k=Sr(y);if(d[k]){let A=d[k];m.layoutSize.set(k,Wr(A)?"step":A,!0)}else{let A=Ha(s,k);m.layoutSize.set(k,A,!1)}}})(this)}parseSelections(){this.component.selection=(function(s,d){let m={},y=s.config.selection;if(!d||!d.length)return m;for(let k of d){let A=me(k.name),R=k.select,C=h.isString(R)?R:R.type,$=h.isObject(R)?U(R):{type:C},j=y[C];for(let ae in j)ae!=="fields"&&ae!=="encodings"&&(ae==="mark"&&($[ae]={...j[ae],...$[ae]}),$[ae]!==void 0&&$[ae]!==!0||($[ae]=U(j[ae]??$[ae])));let H=m[A]={...$,name:A,type:C,init:k.value,bind:k.bind,events:h.isString($.on)?h.parseSelector($.on,"scope"):h.array(U($.on))},ee=U(k);for(let ae of il)ae.defined(H)&&ae.parse&&ae.parse(s,H,ee)}return m})(this,this.selection)}parseMarkGroup(){this.component.mark=Jg(this)}parseAxesAndHeaders(){var s;this.component.axes=(s=this,ni.reduce(((d,m)=>(s.component.scales[m]&&(d[m]=[Zg(m,s)]),d)),{}))}assembleSelectionTopLevelSignals(s){return(function(d,m){let y=!1;for(let k of Ve(d.component.selection??{})){let A=k.name,R=h.stringValue(A+hs);if(m.filter((C=>C.name===A)).length===0){let C=k.resolve==="global"?"union":k.resolve,$=k.type==="point"?", true, true)":")";m.push({name:k.name,update:`${fg}(${R}, ${h.stringValue(C)}${$}`})}y=!0;for(let C of il)C.defined(k)&&C.topLevelSignals&&(m=C.topLevelSignals(d,k,m))}return y&&m.filter((k=>k.name==="unit")).length===0&&m.unshift({name:"unit",value:{},on:[{events:"pointermove",update:"isTuple(group()) ? group() : unit"}]}),Zf(m)})(this,s)}assembleSignals(){return[...wc(this),...Fy(this,[])]}assembleSelectionData(s){return(function(d,m){let y=[...m],k=Vr(d,{escape:!1});for(let A of Ve(d.component.selection??{})){let R={name:A.name+hs};if(A.project.hasSelectionId&&(R.transform=[{type:"collect",sort:{field:ba}}]),A.init){let C=A.project.items.map(Jm);R.values=A.project.hasSelectionId?A.init.map(($=>({unit:k,[ba]:fs($,!1)[0]}))):A.init.map(($=>({unit:k,fields:C,values:fs($,!1)})))}y.filter((C=>C.name===A.name+hs)).length||y.push(R)}return y})(this,s)}assembleLayout(){return null}assembleLayoutSignals(){return ya(this)}assembleMarks(){let s=this.component.mark??[];return this.parent&&Es(this.parent)||(s=Py(this,s)),s.map(this.correctDataNames)}assembleGroupStyle(){let{style:s}=this.view||{};return s!==void 0?s:this.encoding.x||this.encoding.y?"cell":"view"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(s){return Ui(this.encoding,s)}fieldDef(s){return ga(this.encoding[s])}typedFieldDef(s){let d=this.fieldDef(s);return hr(d)?d:null}}class Ac extends ad{constructor(s,d,m,y,k){super(s,"layer",d,m,k,s.resolve,s.view),ct(this,"children",void 0);let A={...y,...s.width?{width:s.width}:{},...s.height?{height:s.height}:{}};this.children=s.layer.map(((R,C)=>{if(pc(R))return new Ac(R,this,this.getName(`layer_${C}`),A,k);if(Bi(R))return new Op(R,this,this.getName(`layer_${C}`),A,k);throw new Error(Lh(R))}))}parseData(){this.component.data=Ap(this);for(let s of this.children)s.parseData()}parseLayoutSize(){var s;gl(s=this),_s(s,"width"),_s(s,"height")}parseSelections(){this.component.selection={};for(let s of this.children){s.parseSelections();for(let d of we(s.component.selection))this.component.selection[d]=s.component.selection[d]}}parseMarkGroup(){for(let s of this.children)s.parseMarkGroup()}parseAxesAndHeaders(){(function(s){let{axes:d,resolve:m}=s.component,y={top:0,bottom:0,right:0,left:0};for(let k of s.children){k.parseAxesAndHeaders();for(let A of we(k.component.axes))m.axis[A]=cp(s.component.resolve,A),m.axis[A]==="shared"&&(d[A]=xv(d[A],k.component.axes[A]),d[A]||(m.axis[A]="independent",delete d[A]))}for(let k of ni){for(let A of s.children)if(A.component.axes[k]){if(m.axis[k]==="independent"){d[k]=(d[k]??[]).concat(A.component.axes[k]);for(let R of A.component.axes[k]){let{value:C,explicit:$}=R.getWithExplicit("orient");if(!Je(C)){if(y[C]>0&&!$){let j=jt[C];y[C]>y[j]&&R.set("orient",j,!1)}y[C]++}}}delete A.component.axes[k]}if(m.axis[k]==="independent"&&d[k]&&d[k].length>1)for(let[A,R]of(d[k]||[]).entries())A>0&&R.get("grid")&&!R.explicit.grid&&(R.implicit.grid=!1)}})(this)}assembleSelectionTopLevelSignals(s){return this.children.reduce(((d,m)=>m.assembleSelectionTopLevelSignals(d)),s)}assembleSignals(){return this.children.reduce(((s,d)=>s.concat(d.assembleSignals())),wc(this))}assembleLayoutSignals(){return this.children.reduce(((s,d)=>s.concat(d.assembleLayoutSignals())),ya(this))}assembleSelectionData(s){return this.children.reduce(((d,m)=>m.assembleSelectionData(d)),s)}assembleGroupStyle(){let s=new Set;for(let m of this.children)for(let y of h.array(m.assembleGroupStyle()))s.add(y);let d=Array.from(s);return d.length>1?d:d.length===1?d[0]:void 0}assembleTitle(){let s=super.assembleTitle();if(s)return s;for(let d of this.children)if(s=d.assembleTitle(),s)return s}assembleLayout(){return null}assembleMarks(){return(function(s,d){for(let m of s.children)dn(m)&&(d=Py(m,d));return d})(this,this.children.flatMap((s=>s.assembleMarks())))}assembleLegends(){return this.children.reduce(((s,d)=>s.concat(d.assembleLegends())),pp(this))}}function tb(l,s,d,m,y){if(hu(l))return new bl(l,s,d,y);if(pc(l))return new Ac(l,s,d,m,y);if(Bi(l))return new Op(l,s,d,m,y);if((function(k){return dc(k)||Lf(k)||xu(k)})(l))return new w_(l,s,d,y);throw new Error(Lh(l))}let __=w;p.accessPathDepth=Zt,p.accessPathWithDatum=Oe,p.compile=function(l){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var d;s.logger&&(d=s.logger,ou=d),s.fieldTitle&&mu(s.fieldTitle);try{let m=Tm(h.mergeConfig(s.config,l.config)),y=qf(l,m),k=tb(y,null,"",void 0,m);return k.parse(),(function(R,C){Ep(R.sources);let $=0,j=0;for(let H=0;H<vp&&pv(R,C,!0);H++)$++;R.sources.map(Mg);for(let H=0;H<vp&&pv(R,C,!1);H++)j++;Ep(R.sources),Math.max($,j)===vp&&$e(`Maximum optimization runs(${vp}) reached.`)})(k.component.data,k),{spec:(function(R,C){let $=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},j=arguments.length>3?arguments[3]:void 0,H=R.config?Pf(R.config):void 0,ee=[].concat(R.assembleSelectionData([]),(function(Re,Pe){let qe=[],st=xp(qe),mt=0;for(let Qe of Re.sources){Qe.hasName()||(Qe.dataName="source_"+mt++);let Ct=Qe.assemble();st(Qe,Ct)}for(let Qe of qe)Qe.transform.length===0&&delete Qe.transform;let it=0;for(let[Qe,Ct]of qe.entries())(Ct.transform??[]).length!==0||Ct.source||qe.splice(it++,0,qe.splice(Qe,1)[0]);for(let Qe of qe)for(let Ct of Qe.transform??[])Ct.type==="lookup"&&(Ct.from=Re.outputNodes[Ct.from].getSource());for(let Qe of qe)Qe.name in Pe&&(Qe.values=Pe[Qe.name]);return qe})(R.component.data,$)),ae=R.assembleProjections(),ne=R.assembleTitle(),de=R.assembleGroupStyle(),he=R.assembleGroupEncodeEntry(!0),ge=R.assembleLayoutSignals();ge=ge.filter((Re=>Re.name!=="width"&&Re.name!=="height"||Re.value===void 0||(C[Re.name]=+Re.value,!1)));let{params:Ee,...Se}=C;return{$schema:"https://vega.github.io/schema/vega/v5.json",...R.description?{description:R.description}:{},...Se,...ne?{title:ne}:{},...de?{style:de}:{},...he?{encode:{update:he}}:{},data:ee,...ae.length>0?{projections:ae}:{},...R.assembleGroup([...ge,...R.assembleSelectionTopLevelSignals([]),...Mf(Ee)]),...H?{config:H}:{},...j?{usermeta:j}:{}}})(k,(function(R,C,$,j){let H=j.component.layoutSize.get("width"),ee=j.component.layoutSize.get("height");if(C===void 0?(C={type:"pad"},j.hasAxisOrientSignalRef()&&(C.resize=!0)):h.isString(C)&&(C={type:C}),H&&ee&&(ae=C.type,ae==="fit"||ae==="fit-x"||ae==="fit-y")){if(H==="step"&&ee==="step")$e(An()),C.type="pad";else if(H==="step"||ee==="step"){let ne=H==="step"?"width":"height";$e(An(tu(ne)));let de=ne==="width"?"height":"width";C.type=(function(he){return he?`fit-${tu(he)}`:"fit"})(de)}}var ae;return{...we(C).length===1&&C.type?C.type==="pad"?{}:{autosize:C.type}:{autosize:C},...Wf($,!1),...Wf(R,!0)}})(l,y.autosize,m,k),l.datasets,l.usermeta),normalized:y}}finally{s.logger&&(ou=q0),s.fieldTitle&&mu(gy)}},p.contains=Y,p.deepEqual=Ne,p.deleteNestedProperty=rt,p.duplicate=U,p.entries=tt,p.every=se,p.fieldIntersection=ve,p.flatAccessWithDatum=Bt,p.getFirstDefined=Tt,p.hasIntersection=Le,p.hash=V,p.internalField=oa,p.isBoolean=Ye,p.isEmpty=ye,p.isEqual=function(l,s){let d=we(l),m=we(s);if(d.length!==m.length)return!1;for(let y of d)if(l[y]!==s[y])return!1;return!0},p.isInternalField=sa,p.isNullOrFalse=oe,p.isNumeric=Xn,p.keys=we,p.logicalExpr=ke,p.mergeDeep=le,p.never=q,p.normalize=qf,p.normalizeAngle=$r,p.omit=K,p.pick=J,p.prefixGenerator=Me,p.removePathFromField=Pt,p.replaceAll=_t,p.replacePathInField=Ot,p.resetIdCounter=function(){Pn=42},p.setEqual=xe,p.some=te,p.stringify=Be,p.titleCase=wt,p.unique=be,p.uniqueId=ia,p.vals=Ve,p.varName=me,p.version=__}))});var p2=sA((W6,fk)=>{"use strict";var I4=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{},F=(function(p){var h=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,w=0,_={},T={manual:p.Prism&&p.Prism.manual,disableWorkerMessageHandler:p.Prism&&p.Prism.disableWorkerMessageHandler,util:{encode:function Y(te){return te instanceof M?new M(te.type,Y(te.content),te.alias):Array.isArray(te)?te.map(Y):te.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(Y){return Object.prototype.toString.call(Y).slice(8,-1)},objId:function(Y){return Y.__id||Object.defineProperty(Y,"__id",{value:++w}),Y.__id},clone:function Y(te,se){var le,ue;switch(se=se||{},T.util.type(te)){case"Object":if(ue=T.util.objId(te),se[ue])return se[ue];for(var be in le={},se[ue]=le,te)te.hasOwnProperty(be)&&(le[be]=Y(te[be],se));return le;case"Array":return ue=T.util.objId(te),se[ue]?se[ue]:(le=[],se[ue]=le,te.forEach((function(xe,Le){le[Le]=Y(xe,se)})),le);default:return te}},getLanguage:function(Y){for(;Y;){var te=h.exec(Y.className);if(te)return te[1].toLowerCase();Y=Y.parentElement}return"none"},setLanguage:function(Y,te){Y.className=Y.className.replace(RegExp(h,"gi"),""),Y.classList.add("language-"+te)},currentScript:function(){if(typeof document>"u")return null;if(document.currentScript&&document.currentScript.tagName==="SCRIPT")return document.currentScript;try{throw new Error}catch(le){var Y=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(le.stack)||[])[1];if(Y){var te=document.getElementsByTagName("script");for(var se in te)if(te[se].src==Y)return te[se]}return null}},isActive:function(Y,te,se){for(var le="no-"+te;Y;){var ue=Y.classList;if(ue.contains(te))return!0;if(ue.contains(le))return!1;Y=Y.parentElement}return!!se}},languages:{plain:_,plaintext:_,text:_,txt:_,extend:function(Y,te){var se=T.util.clone(T.languages[Y]);for(var le in te)se[le]=te[le];return se},insertBefore:function(Y,te,se,le){var ue=(le=le||T.languages)[Y],be={};for(var xe in ue)if(ue.hasOwnProperty(xe)){if(xe==te)for(var Le in se)se.hasOwnProperty(Le)&&(be[Le]=se[Le]);se.hasOwnProperty(xe)||(be[xe]=ue[xe])}var Me=le[Y];return le[Y]=be,T.languages.DFS(T.languages,(function(ve,ye){ye===Me&&ve!=Y&&(this[ve]=be)})),be},DFS:function Y(te,se,le,ue){ue=ue||{};var be=T.util.objId;for(var xe in te)if(te.hasOwnProperty(xe)){se.call(te,xe,te[xe],le||xe);var Le=te[xe],Me=T.util.type(Le);Me!=="Object"||ue[be(Le)]?Me!=="Array"||ue[be(Le)]||(ue[be(Le)]=!0,Y(Le,se,xe,ue)):(ue[be(Le)]=!0,Y(Le,se,null,ue))}}},plugins:{},highlightAll:function(Y,te){T.highlightAllUnder(document,Y,te)},highlightAllUnder:function(Y,te,se){var le={callback:se,container:Y,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};T.hooks.run("before-highlightall",le),le.elements=Array.prototype.slice.apply(le.container.querySelectorAll(le.selector)),T.hooks.run("before-all-elements-highlight",le);for(var ue,be=0;ue=le.elements[be++];)T.highlightElement(ue,te===!0,le.callback)},highlightElement:function(Y,te,se){var le=T.util.getLanguage(Y),ue=T.languages[le];T.util.setLanguage(Y,le);var be=Y.parentElement;be&&be.nodeName.toLowerCase()==="pre"&&T.util.setLanguage(be,le);var xe={element:Y,language:le,grammar:ue,code:Y.textContent};function Le(ve){xe.highlightedCode=ve,T.hooks.run("before-insert",xe),xe.element.innerHTML=xe.highlightedCode,T.hooks.run("after-highlight",xe),T.hooks.run("complete",xe),se&&se.call(xe.element)}if(T.hooks.run("before-sanity-check",xe),(be=xe.element.parentElement)&&be.nodeName.toLowerCase()==="pre"&&!be.hasAttribute("tabindex")&&be.setAttribute("tabindex","0"),!xe.code)return T.hooks.run("complete",xe),void(se&&se.call(xe.element));if(T.hooks.run("before-highlight",xe),xe.grammar)if(te&&p.Worker){var Me=new Worker(T.filename);Me.onmessage=function(ve){Le(ve.data)},Me.postMessage(JSON.stringify({language:xe.language,code:xe.code,immediateClose:!0}))}else Le(T.highlight(xe.code,xe.grammar,xe.language));else Le(T.util.encode(xe.code))},highlight:function(Y,te,se){var le={code:Y,grammar:te,language:se};if(T.hooks.run("before-tokenize",le),!le.grammar)throw new Error('The language "'+le.language+'" has no grammar.');return le.tokens=T.tokenize(le.code,le.grammar),T.hooks.run("after-tokenize",le),M.stringify(T.util.encode(le.tokens),le.language)},tokenize:function(Y,te){var se=te.rest;if(se){for(var le in se)te[le]=se[le];delete te.rest}var ue=new U;return q(ue,ue.head,Y),L(Y,ue,te,ue.head,0),(function(be){for(var xe=[],Le=be.head.next;Le!==be.tail;)xe.push(Le.value),Le=Le.next;return xe})(ue)},hooks:{all:{},add:function(Y,te){var se=T.hooks.all;se[Y]=se[Y]||[],se[Y].push(te)},run:function(Y,te){var se=T.hooks.all[Y];if(se&&se.length)for(var le,ue=0;le=se[ue++];)le(te)}},Token:M};function M(Y,te,se,le){this.type=Y,this.content=te,this.alias=se,this.length=0|(le||"").length}function D(Y,te,se,le){Y.lastIndex=te;var ue=Y.exec(se);if(ue&&le&&ue[1]){var be=ue[1].length;ue.index+=be,ue[0]=ue[0].slice(be)}return ue}function L(Y,te,se,le,ue,be){for(var xe in se)if(se.hasOwnProperty(xe)&&se[xe]){var Le=se[xe];Le=Array.isArray(Le)?Le:[Le];for(var Me=0;Me<Le.length;++Me){if(be&&be.cause==xe+","+Me)return;var ve=Le[Me],ye=ve.inside,we=!!ve.lookbehind,Ve=!!ve.greedy,tt=ve.alias;if(Ve&&!ve.pattern.global){var Ye=ve.pattern.toString().match(/[imsuy]*$/)[0];ve.pattern=RegExp(ve.pattern.source,Ye+"g")}for(var me=ve.pattern||ve,ke=le.next,rt=ue;ke!==te.tail&&!(be&&rt>=be.reach);rt+=ke.value.length,ke=ke.next){var wt=ke.value;if(te.length>Y.length)return;if(!(wt instanceof M)){var Oe,Bt=1;if(Ve){if(!(Oe=D(me,rt,Y,we))||Oe.index>=Y.length)break;var xt=Oe.index,Ot=Oe.index+Oe[0].length,_t=rt;for(_t+=ke.value.length;xt>=_t;)_t+=(ke=ke.next).value.length;if(rt=_t-=ke.value.length,ke.value instanceof M)continue;for(var Pt=ke;Pt!==te.tail&&(_t<Ot||typeof Pt.value=="string");Pt=Pt.next)Bt++,_t+=Pt.value.length;Bt--,wt=Y.slice(rt,_t),Oe.index-=rt}else if(!(Oe=D(me,0,wt,we)))continue;xt=Oe.index;var Zt=Oe[0],Tt=wt.slice(0,xt),Pn=wt.slice(xt+Zt.length),ia=rt+wt.length;be&&ia>be.reach&&(be.reach=ia);var oa=ke.prev;if(Tt&&(oa=q(te,oa,Tt),rt+=Tt.length),J(te,oa,Bt),ke=q(te,oa,new M(xe,ye?T.tokenize(Zt,ye):Zt,tt,Zt)),Pn&&q(te,ke,Pn),Bt>1){var sa={cause:xe+","+Me,reach:ia};L(Y,te,se,ke.prev,rt,sa),be&&sa.reach>be.reach&&(be.reach=sa.reach)}}}}}}function U(){var Y={value:null,prev:null,next:null},te={value:null,prev:Y,next:null};Y.next=te,this.head=Y,this.tail=te,this.length=0}function q(Y,te,se){var le=te.next,ue={value:se,prev:te,next:le};return te.next=ue,le.prev=ue,Y.length++,ue}function J(Y,te,se){for(var le=te.next,ue=0;ue<se&&le!==Y.tail;ue++)le=le.next;te.next=le,le.prev=te,Y.length-=ue}if(p.Prism=T,M.stringify=function Y(te,se){if(typeof te=="string")return te;if(Array.isArray(te)){var le="";return te.forEach((function(Me){le+=Y(Me,se)})),le}var ue={type:te.type,content:Y(te.content,se),tag:"span",classes:["token",te.type],attributes:{},language:se},be=te.alias;be&&(Array.isArray(be)?Array.prototype.push.apply(ue.classes,be):ue.classes.push(be)),T.hooks.run("wrap",ue);var xe="";for(var Le in ue.attributes)xe+=" "+Le+'="'+(ue.attributes[Le]||"").replace(/"/g,""")+'"';return"<"+ue.tag+' class="'+ue.classes.join(" ")+'"'+xe+">"+ue.content+"</"+ue.tag+">"},!p.document)return p.addEventListener&&(T.disableWorkerMessageHandler||p.addEventListener("message",(function(Y){var te=JSON.parse(Y.data),se=te.language,le=te.code,ue=te.immediateClose;p.postMessage(T.highlight(le,T.languages[se],se)),ue&&p.close()}),!1)),T;var K=T.util.currentScript();function V(){T.manual||T.highlightAll()}if(K&&(T.filename=K.src,K.hasAttribute("data-manual")&&(T.manual=!0)),!T.manual){var oe=document.readyState;oe==="loading"||oe==="interactive"&&K&&K.defer?document.addEventListener("DOMContentLoaded",V):window.requestAnimationFrame?window.requestAnimationFrame(V):window.setTimeout(V,16)}return T})(I4);typeof fk<"u"&&fk.exports&&(fk.exports=F),typeof global<"u"&&(global.Prism=F);F.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},F.languages.markup.tag.inside["attr-value"].inside.entity=F.languages.markup.entity,F.languages.markup.doctype.inside["internal-subset"].inside=F.languages.markup,F.hooks.add("wrap",(function(p){p.type==="entity"&&(p.attributes.title=p.content.replace(/&/,"&"))})),Object.defineProperty(F.languages.markup.tag,"addInlined",{value:function(p,h){var w={};w["language-"+h]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:F.languages[h]},w.cdata=/^<!\[CDATA\[|\]\]>$/i;var _={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:w}};_["language-"+h]={pattern:/[\s\S]+/,inside:F.languages[h]};var T={};T[p]={pattern:RegExp("(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[^])*?(?=</__>)".replace(/__/g,(function(){return p})),"i"),lookbehind:!0,greedy:!0,inside:_},F.languages.insertBefore("markup","cdata",T)}}),Object.defineProperty(F.languages.markup.tag,"addAttribute",{value:function(p,h){F.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(`(^|["'\\s])(?:`+p+`)\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s'">=]+(?=[\\s>]))`,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[h,"language-"+h],inside:F.languages[h]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),F.languages.html=F.languages.markup,F.languages.mathml=F.languages.markup,F.languages.svg=F.languages.markup,F.languages.xml=F.languages.extend("markup",{}),F.languages.ssml=F.languages.xml,F.languages.atom=F.languages.xml,F.languages.rss=F.languages.xml;(function(p){var h=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;p.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp(`@[\\w-](?:[^;{\\s"']|\\s+(?!\\s)|`+h.source+")*?(?:;|(?=\\s*\\{))"),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+h.source+`|(?:[^\\\\\r
|
|
14
14
|
()"']|\\\\[^])*)\\)`,"i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+h.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+h.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:h,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},p.languages.css.atrule.inside.rest=p.languages.css;var w=p.languages.markup;w&&(w.tag.addInlined("style","css"),w.tag.addAttribute("style","css"))})(F);F.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/};F.languages.javascript=F.languages.extend("clike",{"class-name":[F.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp("(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])"),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),F.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,F.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(`((?:^|[^$\\w\\xA0-\\uFFFF."'\\])\\s]|\\b(?:return|yield))\\s*)/(?:(?:\\[(?:[^\\]\\\\\r
|
|
15
15
|
]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\r
|
|
16
16
|
])+/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\r
|
|
@@ -100,7 +100,7 @@ var Oz=Object.create;var OD=Object.defineProperty;var Dz=Object.getOwnPropertyDe
|
|
|
100
100
|
]|\\\\(?:\r
|
|
101
101
|
|[^]))*")*\\}`;p.languages.tremor["interpolated-string"]={pattern:RegExp('(^|[^\\\\])(?:"""(?:[^"\\\\#]|\\\\[^]|"(?!"")|#(?!\\{)|'+h+`)*"""|"(?:[^"\\\\\r
|
|
102
102
|
#]|\\\\(?:\r
|
|
103
|
-
|[^])|#(?!\\{)|`+h+')*")'),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:RegExp(h),inside:{punctuation:/^#\{|\}$/,expression:{pattern:/[\s\S]+/,inside:p.languages.tremor}}},string:/[\s\S]+/}},p.languages.troy=p.languages.tremor,p.languages.trickle=p.languages.tremor})(F);F.languages.twig={comment:/^\{#[\s\S]*?#\}$/,"tag-name":{pattern:/(^\{%-?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%]-?|-?[%}]\}$/,alias:"punctuation"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/}},keyword:/\b(?:even|if|odd)\b/,boolean:/\b(?:false|null|true)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],punctuation:/[()\[\]{}:.,]/},F.hooks.add("before-tokenize",(function(p){p.language==="twig"&&F.languages["markup-templating"].buildPlaceholders(p,"twig",/\{(?:#[\s\S]*?#|%[\s\S]*?%|\{[\s\S]*?\})\}/g)})),F.hooks.add("after-tokenize",(function(p){F.languages["markup-templating"].tokenizePlaceholders(p,"twig")}));(function(p){var h=/\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\b/;p.languages.typoscript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:= \t]|(?:^|[^= \t])[ \t]+)\/\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^"'])#.*/,lookbehind:!0,greedy:!0}],function:[{pattern:/<INCLUDE_TYPOSCRIPT:\s*source\s*=\s*(?:"[^"\r\n]*"|'[^'\r\n]*')\s*>/,inside:{string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,inside:{keyword:h}},keyword:{pattern:/INCLUDE_TYPOSCRIPT/}}},{pattern:/@import\s*(?:"[^"\r\n]*"|'[^'\r\n]*')/,inside:{string:/"[^"\r\n]*"|'[^'\r\n]*'/}}],string:{pattern:/^([^=]*=[< ]?)(?:(?!\]\n).)*/,lookbehind:!0,inside:{function:/\{\$.*\}/,keyword:h,number:/^\d+$/,punctuation:/[,|:]/}},keyword:h,number:{pattern:/\b\d+\s*[.{=]/,inside:{operator:/[.{=]/}},tag:{pattern:/\.?[-\w\\]+\.?/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:|]/,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/},p.languages.tsconfig=p.languages.typoscript})(F);F.languages.unrealscript={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},category:{pattern:/(\b(?:(?:autoexpand|hide|show)categories|var)\s*\()[^()]+(?=\))/,lookbehind:!0,greedy:!0,alias:"property"},metadata:{pattern:/(\w\s*)<\s*\w+\s*=[^<>|=\r\n]+(?:\|\s*\w+\s*=[^<>|=\r\n]+)*>/,lookbehind:!0,greedy:!0,inside:{property:/\b\w+(?=\s*=)/,operator:/=/,punctuation:/[<>|]/}},macro:{pattern:/`\w+/,alias:"property"},"class-name":{pattern:/(\b(?:class|enum|extends|interface|state(?:\(\))?|struct|within)\s+)\w+/,lookbehind:!0},keyword:/\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/>>|<<|--|\+\+|\*\*|[-+*/~!=<>$@]=?|&&?|\|\|?|\^\^?|[?:%]|\b(?:ClockwiseFrom|Cross|Dot)\b/,punctuation:/[()[\]{};,.]/},F.languages.uc=F.languages.uscript=F.languages.unrealscript;F.languages.uorazor={"comment-hash":{pattern:/#.*/,alias:"comment",greedy:!0},"comment-slash":{pattern:/\/\/.*/,alias:"comment",greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/},greedy:!0},"source-layers":{pattern:/\b(?:arms|backpack|blue|bracelet|cancel|clear|cloak|criminal|earrings|enemy|facialhair|friend|friendly|gloves|gray|grey|ground|hair|head|innerlegs|innertorso|innocent|lefthand|middletorso|murderer|neck|nonfriendly|onehandedsecondary|outerlegs|outertorso|pants|red|righthand|ring|self|shirt|shoes|talisman|waist)\b/i,alias:"function"},"source-commands":{pattern:/\b(?:alliance|attack|cast|clearall|clearignore|clearjournal|clearlist|clearsysmsg|createlist|createtimer|dclick|dclicktype|dclickvar|dress|dressconfig|drop|droprelloc|emote|getlabel|guild|gumpclose|gumpresponse|hotkey|ignore|lasttarget|lift|lifttype|menu|menuresponse|msg|org|organize|organizer|overhead|pause|poplist|potion|promptresponse|pushlist|removelist|removetimer|rename|restock|say|scav|scavenger|script|setability|setlasttarget|setskill|settimer|setvar|sysmsg|target|targetloc|targetrelloc|targettype|undress|unignore|unsetvar|useobject|useonce|useskill|usetype|virtue|wait|waitforgump|waitformenu|waitforprompt|waitforstat|waitforsysmsg|waitfortarget|walk|wfsysmsg|wft|whisper|yell)\b/,alias:"function"},"tag-name":{pattern:/(^\{%-?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%]-?|-?[%}]\}$/,alias:"punctuation"},function:/\b(?:atlist|close|closest|count|counter|counttype|dead|dex|diffhits|diffmana|diffstam|diffweight|find|findbuff|finddebuff|findlayer|findtype|findtypelist|followers|gumpexists|hidden|hits|hp|hue|human|humanoid|ingump|inlist|insysmessage|insysmsg|int|invul|lhandempty|list|listexists|mana|maxhits|maxhp|maxmana|maxstam|maxweight|monster|mounted|name|next|noto|paralyzed|poisoned|position|prev|previous|queued|rand|random|rhandempty|skill|stam|str|targetexists|timer|timerexists|varexist|warmode|weight)\b/,keyword:/\b(?:and|as|break|continue|else|elseif|endfor|endif|endwhile|for|if|loop|not|or|replay|stop|while)\b/,boolean:/\b(?:false|null|true)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],punctuation:/[()\[\]{}:.,]/};F.languages.uri={scheme:{pattern:/^[a-z][a-z0-9+.-]*:/im,greedy:!0,inside:{"scheme-delimiter":/:$/}},fragment:{pattern:/#[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"fragment-delimiter":/^#/}},query:{pattern:/\?[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"query-delimiter":{pattern:/^\?/,greedy:!0},"pair-delimiter":/[&;]/,pair:{pattern:/^[^=][\s\S]*/,inside:{key:/^[^=]+/,value:{pattern:/(^=)[\s\S]+/,lookbehind:!0}}}}},authority:{pattern:RegExp("^//(?:[\\w\\-.~!$&'()*+,;=%:]*@)?(?:\\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\\.[\\w\\-.~!$&'()*+,;=]+)\\]|[\\w\\-.~!$&'()*+,;=%]*)(?::\\d*)?","m"),inside:{"authority-delimiter":/^\/\//,"user-info-segment":{pattern:/^[\w\-.~!$&'()*+,;=%:]*@/,inside:{"user-info-delimiter":/@$/,"user-info":/^[\w\-.~!$&'()*+,;=%:]+/}},"port-segment":{pattern:/:\d*$/,inside:{"port-delimiter":/^:/,port:/^\d+/}},host:{pattern:/[\s\S]+/,inside:{"ip-literal":{pattern:/^\[[\s\S]+\]$/,inside:{"ip-literal-delimiter":/^\[|\]$/,"ipv-future":/^v[\s\S]+/,"ipv6-address":/^[\s\S]+/}},"ipv4-address":/^(?:(?:[03-9]\d?|[12]\d{0,2})\.){3}(?:[03-9]\d?|[12]\d{0,2})$/}}}},path:{pattern:/^[\w\-.~!$&'()*+,;=%:@/]+/m,inside:{"path-separator":/\//}}},F.languages.url=F.languages.uri;(function(p){var h={pattern:/[\s\S]+/,inside:null};p.languages.v=p.languages.extend("clike",{string:{pattern:/r?(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,alias:"quoted-string",greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\{[^{}]*\}|\w+(?:\.\w+(?:\([^\(\)]*\))?|\[[^\[\]]+\])*)/,lookbehind:!0,inside:{"interpolation-variable":{pattern:/^\$\w[\s\S]*$/,alias:"variable"},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},"interpolation-expression":h}}}},"class-name":{pattern:/(\b(?:enum|interface|struct|type)\s+)(?:C\.)?\w+/,lookbehind:!0},keyword:/(?:\b(?:__global|as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\$(?:else|for|if)|#(?:flag|include))\b/,number:/\b(?:0x[a-f\d]+(?:_[a-f\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?)\b/i,operator:/~|\?|[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\.?/,builtin:/\b(?:any(?:_float|_int)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|64|128|nt)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\b/}),h.inside=p.languages.v,p.languages.insertBefore("v","string",{char:{pattern:/`(?:\\`|\\?[^`]{1,2})`/,alias:"rune"}}),p.languages.insertBefore("v","operator",{attribute:{pattern:/(^[\t ]*)\[(?:deprecated|direct_array_access|flag|inline|live|ref_only|typedef|unsafe_fn|windows_stdcall)\]/m,lookbehind:!0,alias:"annotation",inside:{punctuation:/[\[\]]/,keyword:/\w+/}},generic:{pattern:/<\w+>(?=\s*[\)\{])/,inside:{punctuation:/[<>]/,"class-name":/\w+/}}}),p.languages.insertBefore("v","function",{"generic-function":{pattern:/\b\w+\s*<\w+>(?=\()/,inside:{function:/^\w+/,generic:{pattern:/<\w+>/,inside:p.languages.v.generic.inside}}}})})(F);F.languages.vala=F.languages.extend("clike",{"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=(?:\?\s+|\*?\s+\*?)\w)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|enum|interface|new|struct)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],keyword:/\b(?:abstract|as|assert|async|base|bool|break|case|catch|char|class|const|construct|continue|default|delegate|delete|do|double|dynamic|else|ensures|enum|errordomain|extern|finally|float|for|foreach|get|if|in|inline|int|int16|int32|int64|int8|interface|internal|is|lock|long|namespace|new|null|out|override|owned|params|private|protected|public|ref|requires|return|set|short|signal|sizeof|size_t|ssize_t|static|string|struct|switch|this|throw|throws|try|typeof|uchar|uint|uint16|uint32|uint64|uint8|ulong|unichar|unowned|ushort|using|value|var|virtual|void|volatile|weak|while|yield)\b/i,function:/\b\w+(?=\s*\()/,number:/(?:\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?:f|u?l?)?/i,operator:/\+\+|--|&&|\|\||<<=?|>>=?|=>|->|~|[+\-*\/%&^|=!<>]=?|\?\??|\.\.\./,punctuation:/[{}[\];(),.:]/,constant:/\b[A-Z0-9_]+\b/}),F.languages.insertBefore("vala","string",{"raw-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"template-string":{pattern:/@"[\s\S]*?"/,greedy:!0,inside:{interpolation:{pattern:/\$(?:\([^)]*\)|[a-zA-Z]\w*)/,inside:{delimiter:{pattern:/^\$\(?|\)$/,alias:"punctuation"},rest:F.languages.vala}},string:/[\s\S]+/}}}),F.languages.insertBefore("vala","keyword",{regex:{pattern:/\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[imsx]{0,4}(?=\s*(?:$|[\r\n,.;})\]]))/,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:F.languages.regex},"regex-delimiter":/^\//,"regex-flags":/^[a-z]+$/}}});(function(p){p.languages.velocity=p.languages.extend("markup",{});var h={variable:{pattern:/(^|[^\\](?:\\\\)*)\$!?(?:[a-z][\w-]*(?:\([^)]*\))?(?:\.[a-z][\w-]*(?:\([^)]*\))?|\[[^\]]+\])*|\{[^}]+\})/i,lookbehind:!0,inside:{}},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},number:/\b\d+\b/,boolean:/\b(?:false|true)\b/,operator:/[=!<>]=?|[+*/%-]|&&|\|\||\.\.|\b(?:eq|g[et]|l[et]|n(?:e|ot))\b/,punctuation:/[(){}[\]:,.]/};h.variable.inside={string:h.string,function:{pattern:/([^\w-])[a-z][\w-]*(?=\()/,lookbehind:!0},number:h.number,boolean:h.boolean,punctuation:h.punctuation},p.languages.insertBefore("velocity","comment",{unparsed:{pattern:/(^|[^\\])#\[\[[\s\S]*?\]\]#/,lookbehind:!0,greedy:!0,inside:{punctuation:/^#\[\[|\]\]#$/}},"velocity-comment":[{pattern:/(^|[^\\])#\*[\s\S]*?\*#/,lookbehind:!0,greedy:!0,alias:"comment"},{pattern:/(^|[^\\])##.*/,lookbehind:!0,greedy:!0,alias:"comment"}],directive:{pattern:/(^|[^\\](?:\\\\)*)#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})(?:\s*\((?:[^()]|\([^()]*\))*\))?/i,lookbehind:!0,inside:{keyword:{pattern:/^#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})|\bin\b/,inside:{punctuation:/[{}]/}},rest:h}},variable:h.variable}),p.languages.velocity.tag.inside["attr-value"].inside.rest=p.languages.velocity})(F);F.languages.verilog={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"kernel-function":{pattern:/\B\$\w+\b/,alias:"property"},constant:/\B`\w+\b/,function:/\b\w+(?=\()/,keyword:/\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|case|casex|casez|cell|chandle|class|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endsequence|endspecify|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_ondetect|pulsestyle_onevent|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\b/,important:/\b(?:always|always_comb|always_ff|always_latch)\b(?: *@)?/,number:/\B##?\d+|(?:\b\d+)?'[odbh] ?[\da-fzx_?]+|\b(?:\d*[._])?\d+(?:e[-+]?\d+)?/i,operator:/[-+{}^~%*\/?=!<>&|]+/,punctuation:/[[\];(),.:]/};F.languages.vhdl={comment:/--.+/,"vhdl-vectors":{pattern:/\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,alias:"number"},"quoted-function":{pattern:/"\S+?"(?=\()/,alias:"function"},string:/"(?:[^\\"\r\n]|\\(?:\r\n|[\s\S]))*"/,attribute:{pattern:/\b'\w+/,alias:"attr-name"},keyword:/\b(?:access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|private|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|view|wait|when|while|with)\b/i,boolean:/\b(?:false|true)\b/i,function:/\w+(?=\()/,number:/'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,operator:/[<>]=?|:=|[-+*/&=]|\b(?:abs|and|mod|nand|nor|not|or|rem|rol|ror|sla|sll|sra|srl|xnor|xor)\b/i,punctuation:/[{}[\];(),.:]/};F.languages.vim={string:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/,comment:/".*/,function:/\b\w+(?=\()/,keyword:/\b(?:N|Next|P|Print|X|XMLent|XMLns|ab|abbreviate|abc|abclear|abo|aboveleft|al|all|ar|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|args|argu|argument|as|ascii|b|bN|bNext|ba|bad|badd|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bo|botright|bp|bprevious|br|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|brewind|bro|browse|bufdo|buffer|buffers|bun|bunload|bw|bwipeout|c|cN|cNext|cNfcNfile|ca|cabbrev|cabc|cabclear|cad|caddb|caddbuffer|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cg|cgetb|cgetbuffer|cgete|cgetexpr|cgetfile|change|changes|chd|chdir|che|checkpath|checkt|checktime|cl|cla|clast|clist|clo|close|cmapc|cmapclear|cn|cnew|cnewer|cnext|cnf|cnfile|cnorea|cnoreabbrev|co|col|colder|colo|colorscheme|comc|comclear|comp|compiler|con|conf|confirm|continue|cope|copen|copy|cp|cpf|cpfile|cprevious|cq|cquit|cr|crewind|cu|cuna|cunabbrev|cunmap|cw|cwindow|d|debugg|debuggreedy|delc|delcommand|delete|delf|delfunction|delm|delmarks|di|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|e|earlier|echoe|echoerr|echom|echomsg|echon|edit|el|else|elsei|elseif|em|emenu|en|endf|endfo|endfor|endfun|endfunction|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fin|fina|finally|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoc|folddoclosed|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|h|ha|hardcopy|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iu|iuna|iunabbrev|iunmap|j|join|ju|jumps|k|kee|keepalt|keepj|keepjumps|keepmarks|l|lN|lNext|lNf|lNfile|la|lad|laddb|laddbuffer|laddexpr|laddf|laddfile|lan|language|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|left|lefta|leftabove|let|lex|lexpr|lf|lfile|lfir|lfirst|lg|lgetb|lgetbuffer|lgete|lgetexpr|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|list|ll|lla|llast|lli|llist|lm|lmak|lmake|lmap|lmapc|lmapclear|ln|lne|lnew|lnewer|lnext|lnf|lnfile|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lpf|lpfile|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|ma|mak|make|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvie|mkview|mkvimrc|mod|mode|move|mz|mzf|mzfile|mzscheme|n|nbkey|new|next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|o|omapc|omapclear|on|only|open|opt|options|ou|ounmap|p|pc|pclose|pe|ped|pedit|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|print|prof|profd|profdel|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|ptN|ptNext|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|py|pyf|pyfile|python|q|qa|qall|quit|quita|quitall|r|read|rec|recover|red|redi|redir|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|rub|ruby|rubyd|rubydo|rubyf|rubyfile|runtime|rv|rviminfo|sN|sNext|sa|sal|sall|san|sandbox|sargument|sav|saveas|sb|sbN|sbNext|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbp|sbprevious|sbr|sbrewind|sbuffer|scrip|scripte|scriptencoding|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sl|sla|slast|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|so|sor|sort|source|sp|spe|spelld|spelldump|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|split|spr|sprevious|sre|srewind|st|sta|stag|star|startg|startgreplace|startinsert|startr|startreplace|stj|stjump|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tN|tNext|ta|tab|tabN|tabNext|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnew|tabnext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|u|una|unabbreviate|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|ve|verb|verbose|version|vert|vertical|vi|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|w|wN|wNext|wa|wall|wh|while|win|winc|wincmd|windo|winp|winpos|winsize|wn|wnext|wp|wprevious|wq|wqa|wqall|write|ws|wsverb|wv|wviminfo|x|xa|xall|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\b/,builtin:/\b(?:acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autocmd|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|t_AB|t_AF|t_AL|t_CS|t_CV|t_Ce|t_Co|t_Cs|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_IE|t_IS|t_K1|t_K3|t_K4|t_K5|t_K6|t_K7|t_K8|t_K9|t_KA|t_KB|t_KC|t_KD|t_KE|t_KF|t_KG|t_KH|t_KI|t_KJ|t_KK|t_KL|t_RI|t_RV|t_SI|t_Sb|t_Sf|t_WP|t_WS|t_ZH|t_ZR|t_al|t_bc|t_cd|t_ce|t_cl|t_cm|t_cs|t_da|t_db|t_dl|t_fs|t_k1|t_k2|t_k3|t_k4|t_k5|t_k6|t_k7|t_k8|t_k9|t_kB|t_kD|t_kI|t_kN|t_kP|t_kb|t_kd|t_ke|t_kh|t_kl|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_se|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_xs|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?)\b/i,operator:/\|\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\/%?]|\b(?:is(?:not)?)\b/,punctuation:/[{}[\](),;:]/};F.languages["visual-basic"]={comment:{pattern:/(?:['‘’]|REM\b)(?:[^\r\n_]|_(?:\r\n?|\n)?)*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\b_[ \t]*(?:\r\n?|\n)|.)+/i,alias:"property",greedy:!0},string:{pattern:/\$?["“”](?:["“”]{2}|[^"“”])*["“”]C?/i,greedy:!0},date:{pattern:/#[ \t]*(?:\d+([/-])\d+\1\d+(?:[ \t]+(?:\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?))?|\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?)[ \t]*#/i,alias:"number"},number:/(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:[FRD]|U?[ILS])?/i,boolean:/\b(?:False|Nothing|True)\b/i,keyword:/\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\b/i,operator:/[+\-*/\\^<=>&#@$%!]|\b_(?=[ \t]*[\r\n])/,punctuation:/[{}().,:?]/},F.languages.vb=F.languages["visual-basic"],F.languages.vba=F.languages["visual-basic"];F.languages.warpscript={comment:/#.*|\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'|<'(?:[^\\']|'(?!>)|\\.)*'>/,greedy:!0},variable:/\$\S+/,macro:{pattern:/@\S+/,alias:"property"},keyword:/\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\b/,number:/[+-]?\b(?:NaN|Infinity|\d+(?:\.\d*)?(?:[Ee][+-]?\d+)?|0x[\da-fA-F]+|0b[01]+)\b/,boolean:/\b(?:F|T|false|true)\b/,punctuation:/<%|%>|[{}[\]()]/,operator:/==|&&?|\|\|?|\*\*?|>>>?|<<|[<>!~]=?|[-/%^]|\+!?|\b(?:AND|NOT|OR)\b/};F.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};(function(p){var h="(?:\\B-|\\b_|\\b)[A-Za-z][\\w-]*(?![\\w-])",w="(?:\\b(?:unsigned\\s+)?long\\s+long(?![\\w-])|\\b(?:unrestricted|unsigned)\\s+[a-z]+(?![\\w-])|(?!(?:unrestricted|unsigned)\\b)"+h+"(?:\\s*<(?:[^<>]|<[^<>]*>)*>)?)(?:\\s*\\?)?",_={};for(var T in p.languages["web-idl"]={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/"[^"]*"/,greedy:!0},namespace:{pattern:RegExp("(\\bnamespace\\s+)"+h),lookbehind:!0},"class-name":[{pattern:/(^|[^\w-])(?:iterable|maplike|setlike)\s*<(?:[^<>]|<[^<>]*>)*>/,lookbehind:!0,inside:_},{pattern:RegExp("(\\b(?:attribute|const|deleter|getter|optional|setter)\\s+)"+w),lookbehind:!0,inside:_},{pattern:RegExp("(\\bcallback\\s+"+h+"\\s*=\\s*)"+w),lookbehind:!0,inside:_},{pattern:RegExp("(\\btypedef\\b\\s*)"+w),lookbehind:!0,inside:_},{pattern:RegExp("(\\b(?:callback|dictionary|enum|interface(?:\\s+mixin)?)\\s+)(?!(?:interface|mixin)\\b)"+h),lookbehind:!0},{pattern:RegExp("(:\\s*)"+h),lookbehind:!0},RegExp(h+"(?=\\s+(?:implements|includes)\\b)"),{pattern:RegExp("(\\b(?:implements|includes)\\s+)"+h),lookbehind:!0},{pattern:RegExp(w+"(?=\\s*(?:\\.{3}\\s*)?"+h+"\\s*[(),;=])"),inside:_}],builtin:/\b(?:ArrayBuffer|BigInt64Array|BigUint64Array|ByteString|DOMString|DataView|Float32Array|Float64Array|FrozenArray|Int16Array|Int32Array|Int8Array|ObservableArray|Promise|USVString|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray)\b/,keyword:[/\b(?:async|attribute|callback|const|constructor|deleter|dictionary|enum|getter|implements|includes|inherit|interface|mixin|namespace|null|optional|or|partial|readonly|required|setter|static|stringifier|typedef|unrestricted)\b/,/\b(?:any|bigint|boolean|byte|double|float|iterable|long|maplike|object|octet|record|sequence|setlike|short|symbol|undefined|unsigned|void)\b/],boolean:/\b(?:false|true)\b/,number:{pattern:/(^|[^\w-])-?(?:0x[0-9a-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|NaN|Infinity)(?![\w-])/i,lookbehind:!0},operator:/\.{3}|[=:?<>-]/,punctuation:/[(){}[\].,;]/},p.languages["web-idl"])T!=="class-name"&&(_[T]=p.languages["web-idl"][T]);p.languages.webidl=p.languages["web-idl"]})(F);F.languages.wgsl={comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},"builtin-attribute":{pattern:/(@)builtin\(.*?\)/,lookbehind:!0,inside:{attribute:{pattern:/^builtin/,alias:"attr-name"},punctuation:/[(),]/,"built-in-values":{pattern:/\b(?:frag_depth|front_facing|global_invocation_id|instance_index|local_invocation_id|local_invocation_index|num_workgroups|position|sample_index|sample_mask|vertex_index|workgroup_id)\b/,alias:"attr-value"}}},attributes:{pattern:/(@)(?:align|binding|compute|const|fragment|group|id|interpolate|invariant|location|size|vertex|workgroup_size)/i,lookbehind:!0,alias:"attr-name"},functions:{pattern:/\b(fn\s+)[_a-zA-Z]\w*(?=[(<])/,lookbehind:!0,alias:"function"},keyword:/\b(?:bitcast|break|case|const|continue|continuing|default|discard|else|enable|fallthrough|fn|for|function|if|let|loop|private|return|storage|struct|switch|type|uniform|var|while|workgroup)\b/,builtin:/\b(?:abs|acos|acosh|all|any|array|asin|asinh|atan|atan2|atanh|atomic|atomicAdd|atomicAnd|atomicCompareExchangeWeak|atomicExchange|atomicLoad|atomicMax|atomicMin|atomicOr|atomicStore|atomicSub|atomicXor|bool|ceil|clamp|cos|cosh|countLeadingZeros|countOneBits|countTrailingZeros|cross|degrees|determinant|distance|dot|dpdx|dpdxCoarse|dpdxFine|dpdy|dpdyCoarse|dpdyFine|exp|exp2|extractBits|f32|f64|faceForward|firstLeadingBit|floor|fma|fract|frexp|fwidth|fwidthCoarse|fwidthFine|i32|i64|insertBits|inverseSqrt|ldexp|length|log|log2|mat[2-4]x[2-4]|max|min|mix|modf|normalize|override|pack2x16float|pack2x16snorm|pack2x16unorm|pack4x8snorm|pack4x8unorm|pow|ptr|quantizeToF16|radians|reflect|refract|reverseBits|round|sampler|sampler_comparison|select|shiftLeft|shiftRight|sign|sin|sinh|smoothstep|sqrt|staticAssert|step|storageBarrier|tan|tanh|textureDimensions|textureGather|textureGatherCompare|textureLoad|textureNumLayers|textureNumLevels|textureNumSamples|textureSample|textureSampleBias|textureSampleCompare|textureSampleCompareLevel|textureSampleGrad|textureSampleLevel|textureStore|texture_1d|texture_2d|texture_2d_array|texture_3d|texture_cube|texture_cube_array|texture_depth_2d|texture_depth_2d_array|texture_depth_cube|texture_depth_cube_array|texture_depth_multisampled_2d|texture_multisampled_2d|texture_storage_1d|texture_storage_2d|texture_storage_2d_array|texture_storage_3d|transpose|trunc|u32|u64|unpack2x16float|unpack2x16snorm|unpack2x16unorm|unpack4x8snorm|unpack4x8unorm|vec[2-4]|workgroupBarrier)\b/,"function-calls":{pattern:/\b[_a-z]\w*(?=\()/i,alias:"function"},"class-name":/\b(?:[A-Z][A-Za-z0-9]*)\b/,"bool-literal":{pattern:/\b(?:false|true)\b/,alias:"boolean"},"hex-int-literal":{pattern:/\b0[xX][0-9a-fA-F]+[iu]?\b(?![.pP])/,alias:"number"},"hex-float-literal":{pattern:/\b0[xX][0-9a-fA-F]*(?:\.[0-9a-fA-F]*)?(?:[pP][+-]?\d+[fh]?)?/,alias:"number"},"decimal-float-literal":[{pattern:/\d*\.\d+(?:[eE](?:\+|-)?\d+)?[fh]?/,alias:"number"},{pattern:/\d+\.\d*(?:[eE](?:\+|-)?\d+)?[fh]?/,alias:"number"},{pattern:/\d+[eE](?:\+|-)?\d+[fh]?/,alias:"number"},{pattern:/\b\d+[fh]\b/,alias:"number"}],"int-literal":{pattern:/\b\d+[iu]?\b/,alias:"number"},operator:[{pattern:/(?:\^|~|\|(?!\|)|\|\||&&|<<|>>|!)(?!=)/},{pattern:/&(?![&=])/},{pattern:/(?:\+=|-=|\*=|\/=|%=|\^=|&=|\|=|<<=|>>=)/},{pattern:/(^|[^<>=!])=(?![=>])/,lookbehind:!0},{pattern:/(?:==|!=|<=|\+\+|--|(^|[^=])>=)/,lookbehind:!0},{pattern:/(?:(?:[+%]|(?:\*(?!\w)))(?!=))|(?:-(?!>))|(?:\/(?!\/))/},{pattern:/->/}],punctuation:/[@(){}[\],;<>:.]/};F.languages.wiki=F.languages.extend("markup",{"block-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,alias:"comment"},heading:{pattern:/^(=+)[^=\r\n].*?\1/m,inside:{punctuation:/^=+|=+$/,important:/.+/}},emphasis:{pattern:/('{2,5}).+?\1/,inside:{"bold-italic":{pattern:/(''''').+?(?=\1)/,lookbehind:!0,alias:["bold","italic"]},bold:{pattern:/(''')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},italic:{pattern:/('')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},punctuation:/^''+|''+$/}},hr:{pattern:/^-{4,}/m,alias:"punctuation"},url:[/ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:PMID|RFC) +\d+/i,/\[\[.+?\]\]|\[.+?\]/],variable:[/__[A-Z]+__/,/\{{3}.+?\}{3}/,/\{\{.+?\}\}/],symbol:[/^#redirect/im,/~{3,5}/],"table-tag":{pattern:/((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m,lookbehind:!0,inside:{"table-bar":{pattern:/\|$/,alias:"punctuation"},rest:F.languages.markup.tag.inside}},punctuation:/^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m}),F.languages.insertBefore("wiki","tag",{nowiki:{pattern:/<(nowiki|pre|source)\b[^>]*>[\s\S]*?<\/\1>/i,inside:{tag:{pattern:/<(?:nowiki|pre|source)\b[^>]*>|<\/(?:nowiki|pre|source)>/i,inside:F.languages.markup.tag.inside}}}});F.languages.wolfram={comment:/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\b/,context:{pattern:/\b\w+`+\w*/,alias:"class-name"},blank:{pattern:/\b\w+_\b/,alias:"regex"},"global-variable":{pattern:/\$\w+/,alias:"variable"},boolean:/\b(?:False|True)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/\/\.|;|=\.|\^=|\^:=|:=|<<|>>|<\||\|>|:>|\|->|->|<-|@@@|@@|@|\/@|=!=|===|==|=|\+|-|\[\/-+%=\]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},F.languages.mathematica=F.languages.wolfram,F.languages.wl=F.languages.wolfram,F.languages.nb=F.languages.wolfram;F.languages.wren={comment:[{pattern:/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*))*\*\/)*\*\/)*\*\//,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"string-literal":null,hashbang:{pattern:/^#!\/.+/,greedy:!0,alias:"comment"},attribute:{pattern:/#!?[ \t\u3000]*\w+/,alias:"keyword"},"class-name":[{pattern:/(\bclass\s+)\w+/,lookbehind:!0},/\b[A-Z][a-z\d_]*\b/],constant:/\b[A-Z][A-Z\d_]*\b/,null:{pattern:/\bnull\b/,alias:"keyword"},keyword:/\b(?:as|break|class|construct|continue|else|for|foreign|if|import|in|is|return|static|super|this|var|while)\b/,boolean:/\b(?:false|true)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,function:/\b[a-z_]\w*(?=\s*[({])/i,operator:/<<|>>|[=!<>]=?|&&|\|\||[-+*/%~^&|?:]|\.{2,3}/,punctuation:/[\[\](){}.,;]/},F.languages.wren["string-literal"]={pattern:/(^|[^\\"])"(?:[^\\"%]|\\[\s\S]|%(?!\()|%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\))*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\)/,lookbehind:!0,inside:{expression:{pattern:/^(%\()[\s\S]+(?=\)$)/,lookbehind:!0,inside:F.languages.wren},"interpolation-punctuation":{pattern:/^%\(|\)$/,alias:"punctuation"}}},string:/[\s\S]+/}};(function(p){p.languages.xeora=p.languages.extend("markup",{constant:{pattern:/\$(?:DomainContents|PageRenderDuration)\$/,inside:{punctuation:{pattern:/\$/}}},variable:{pattern:/\$@?(?:#+|[-+*~=^])?[\w.]+\$/,inside:{punctuation:{pattern:/[$.]/},operator:{pattern:/#+|[-+*~=^@]/}}},"function-inline":{pattern:/\$F:[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\$/,inside:{variable:{pattern:/(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/,inside:{punctuation:{pattern:/[,.|]/},operator:{pattern:/#+|[-+*~=^@]/}}},punctuation:{pattern:/\$\w:|[$:?.,|]/}},alias:"function"},"function-block":{pattern:/\$XF:\{[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\}:XF\$/,inside:{punctuation:{pattern:/[$:{}?.,|]/}},alias:"function"},"directive-inline":{pattern:/\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\/\w.]+\$/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}}},alias:"function"},"directive-block-open":{pattern:/\$\w+:\{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\w.]+:\{(?:![A-Z]+)?/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}},attribute:{pattern:/![A-Z]+$/,inside:{punctuation:{pattern:/!/}},alias:"keyword"}},alias:"function"},"directive-block-separator":{pattern:/\}:[-\w.]+:\{/,inside:{punctuation:{pattern:/[:{}]/}},alias:"function"},"directive-block-close":{pattern:/\}:[-\w.]+\$/,inside:{punctuation:{pattern:/[:{}$]/}},alias:"function"}}),p.languages.insertBefore("inside","punctuation",{variable:p.languages.xeora["function-inline"].inside.variable},p.languages.xeora["function-block"]),p.languages.xeoracube=p.languages.xeora})(F);(function(p){function h(M,D){p.languages[M]&&p.languages.insertBefore(M,"comment",{"doc-comment":D})}var w=p.languages.markup.tag,_={pattern:/\/\/\/.*/,greedy:!0,alias:"comment",inside:{tag:w}},T={pattern:/'''.*/,greedy:!0,alias:"comment",inside:{tag:w}};h("csharp",_),h("fsharp",_),h("vbnet",T)})(F);F.languages.xojo={comment:{pattern:/(?:'|\/\/|Rem\b).+/i,greedy:!0},string:{pattern:/"(?:""|[^"])*"/,greedy:!0},number:[/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,/&[bchou][a-z\d]+/i],directive:{pattern:/#(?:Else|ElseIf|Endif|If|Pragma)\b/i,alias:"property"},keyword:/\b(?:AddHandler|App|Array|As(?:signs)?|Auto|Boolean|Break|By(?:Ref|Val)|Byte|Call|Case|Catch|CFStringRef|CGFloat|Class|Color|Const|Continue|CString|Currency|CurrentMethodName|Declare|Delegate|Dim|Do(?:uble|wnTo)?|Each|Else(?:If)?|End|Enumeration|Event|Exception|Exit|Extends|False|Finally|For|Function|Get|GetTypeInfo|Global|GOTO|If|Implements|In|Inherits|Int(?:8|16|32|64|eger|erface)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Shared|Short|Single|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:8|16|32|64|eger)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\b/i,operator:/<[=>]?|>=?|[+\-*\/\\^=]|\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|WeakAddressOf|Xor)\b/i,punctuation:/[.,;:()]/};(function(p){p.languages.xquery=p.languages.extend("markup",{"xquery-comment":{pattern:/\(:[\s\S]*?:\)/,greedy:!0,alias:"comment"},string:{pattern:/(["'])(?:\1\1|(?!\1)[\s\S])*\1/,greedy:!0},extension:{pattern:/\(#.+?#\)/,alias:"symbol"},variable:/\$[-\w:]+/,axis:{pattern:/(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,lookbehind:!0,alias:"operator"},"keyword-operator":{pattern:/(^|[^:-])\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\b(?=$|[^:-])/,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^:-])\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\b(?=$|[^:-])/,lookbehind:!0},function:/[\w-]+(?::[\w-]+)*(?=\s*\()/,"xquery-element":{pattern:/(element\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"tag"},"xquery-attribute":{pattern:/(attribute\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"attr-name"},builtin:{pattern:/(^|[^:-])\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:ENTITIES|ENTITY|ID|IDREFS?|NCName|NMTOKENS?|NOTATION|Name|QName|anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|int|integer|language|long|negativeInteger|nonNegativeInteger|nonPositiveInteger|normalizedString|positiveInteger|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\b(?=$|[^:-])/,lookbehind:!0},number:/\b\d+(?:\.\d+)?(?:E[+-]?\d+)?/,operator:[/[+*=?|@]|\.\.?|:=|!=|<[=<]?|>[=>]?/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}],punctuation:/[[\](){},;:/]/}),p.languages.xquery.tag.pattern=/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/,p.languages.xquery.tag.inside["attr-value"].pattern=/=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+)/,p.languages.xquery.tag.inside["attr-value"].inside.punctuation=/^="|"$/,p.languages.xquery.tag.inside["attr-value"].inside.expression={pattern:/\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}/,inside:p.languages.xquery,alias:"language-xquery"};var h=function(_){return typeof _=="string"?_:typeof _.content=="string"?_.content:_.content.map(h).join("")},w=function(_){for(var T=[],M=0;M<_.length;M++){var D=_[M],L=!1;if(typeof D!="string"&&(D.type==="tag"&&D.content[0]&&D.content[0].type==="tag"?D.content[0].content[0].content==="</"?T.length>0&&T[T.length-1].tagName===h(D.content[0].content[1])&&T.pop():D.content[D.content.length-1].content==="/>"||T.push({tagName:h(D.content[0].content[1]),openedBraces:0}):!(T.length>0&&D.type==="punctuation"&&D.content==="{")||_[M+1]&&_[M+1].type==="punctuation"&&_[M+1].content==="{"||_[M-1]&&_[M-1].type==="plain-text"&&_[M-1].content==="{"?T.length>0&&T[T.length-1].openedBraces>0&&D.type==="punctuation"&&D.content==="}"?T[T.length-1].openedBraces--:D.type!=="comment"&&(L=!0):T[T.length-1].openedBraces++),(L||typeof D=="string")&&T.length>0&&T[T.length-1].openedBraces===0){var U=h(D);M<_.length-1&&(typeof _[M+1]=="string"||_[M+1].type==="plain-text")&&(U+=h(_[M+1]),_.splice(M+1,1)),M>0&&(typeof _[M-1]=="string"||_[M-1].type==="plain-text")&&(U=h(_[M-1])+U,_.splice(M-1,1),M--),/^\s+$/.test(U)?_[M]=U:_[M]=new p.Token("plain-text",U,null,U)}D.content&&typeof D.content!="string"&&w(D.content)}};p.hooks.add("after-tokenize",(function(_){_.language==="xquery"&&w(_.tokens)}))})(F);F.languages.yang={comment:/\/\*[\s\S]*?\*\/|\/\/.*/,string:{pattern:/"(?:[^\\"]|\\.)*"|'[^']*'/,greedy:!0},keyword:{pattern:/(^|[{};\r\n][ \t]*)[a-z_][\w.-]*/i,lookbehind:!0},namespace:{pattern:/(\s)[a-z_][\w.-]*(?=:)/i,lookbehind:!0},boolean:/\b(?:false|true)\b/,operator:/\+/,punctuation:/[{};:]/};(function(p){function h(D){return function(){return D}}var w=/\b(?:align|allowzero|and|anyframe|anytype|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|nosuspend|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\b/,_="\\b(?!"+w.source+")(?!\\d)\\w+\\b",T="align\\s*\\((?:[^()]|\\([^()]*\\))*\\)",M="(?!\\s)(?:!?\\s*(?:"+"(?:\\?|\\bpromise->|(?:\\[[^[\\]]*\\]|\\*(?!\\*)|\\*\\*)(?:\\s*<ALIGN>|\\s*const\\b|\\s*volatile\\b|\\s*allowzero\\b)*)".replace(/<ALIGN>/g,h(T))+"\\s*)*"+"(?:\\bpromise\\b|(?:\\berror\\.)?<ID>(?:\\.<ID>)*(?!\\s+<ID>))".replace(/<ID>/g,h(_))+")+";p.languages.zig={comment:[{pattern:/\/\/[/!].*/,alias:"doc-comment"},/\/{2}.*/],string:[{pattern:/(^|[^\\@])c?"(?:[^"\\\r\n]|\\.)*"/,lookbehind:!0,greedy:!0},{pattern:/([\r\n])([ \t]+c?\\{2}).*(?:(?:\r\n?|\n)\2.*)*/,lookbehind:!0,greedy:!0}],char:{pattern:/(^|[^\\])'(?:[^'\\\r\n]|[\uD800-\uDFFF]{2}|\\(?:.|x[a-fA-F\d]{2}|u\{[a-fA-F\d]{1,6}\}))'/,lookbehind:!0,greedy:!0},builtin:/\B@(?!\d)\w+(?=\s*\()/,label:{pattern:/(\b(?:break|continue)\s*:\s*)\w+\b|\b(?!\d)\w+\b(?=\s*:\s*(?:\{|while\b))/,lookbehind:!0},"class-name":[/\b(?!\d)\w+(?=\s*=\s*(?:(?:extern|packed)\s+)?(?:enum|struct|union)\s*[({])/,{pattern:RegExp("(:\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?[=;,)])|<TYPE>(?=\\s*(?:<ALIGN>\\s*)?\\{)".replace(/<TYPE>/g,h(M)).replace(/<ALIGN>/g,h(T))),lookbehind:!0,inside:null},{pattern:RegExp("(\\)\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?;)".replace(/<TYPE>/g,h(M)).replace(/<ALIGN>/g,h(T))),lookbehind:!0,inside:null}],"builtin-type":{pattern:/\b(?:anyerror|bool|c_u?(?:int|long|longlong|short)|c_longdouble|c_void|comptime_(?:float|int)|f(?:16|32|64|128)|[iu](?:8|16|32|64|128|size)|noreturn|type|void)\b/,alias:"keyword"},keyword:w,function:/\b(?!\d)\w+(?=\s*\()/,number:/\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\d]+(?:\.[a-fA-F\d]*)?(?:[pP][+-]?[a-fA-F\d]+)?|\d+(?:\.\d*)?(?:[eE][+-]?\d+)?)\b/,boolean:/\b(?:false|true)\b/,operator:/\.[*?]|\.{2,3}|[-=]>|\*\*|\+\+|\|\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,punctuation:/[.:,;(){}[\]]/},p.languages.zig["class-name"].forEach((function(D){D.inside===null&&(D.inside=p.languages.zig)}))})(F)});import $z from"uslug";var kr=class{constructor(){this.table={}}generateId(h){let w=(T,M)=>{let D=M.replace(/[!"#$%&'()*+,./:;<=>?@[\\]^`{|}~]/g,"").replace(/^\s/,"").replace(/\s$/,"").replace(/`/g,"~");return(M.match(/^\s+$/)?"~":D)+(T.endsWith(" ")&&!D.endsWith("~")?"~":"")};h=h.trim().replace(/~|。/g,"").replace(/``(.+?)``\s?/g,w).replace(/`(.*?)`\s?/g,w).replace(/\s__([^_]+?)__\s/g,"-$1-").replace(/\s_([^_]+?)_\s/g,"-$1-");let _=$z(h.replace(/\s/g,"~")).replace(/~/g,"-");return this.table[_]>=0?(this.table[_]=this.table[_]+1,_+="-"+this.table[_]):this.table[_]=0,_}};import Xz from"@ungap/structured-clone";import*as fh from"child_process";import*as p0 from"path";import Zz from"sval";import{closeSync as Bz,mkdtempSync as Uz,openSync as zz,rmSync as MD}from"fs";import{tmpdir as LD}from"os";import{join as PD}from"path";import{randomBytes as Gz}from"crypto";var $D=new Map,BD=new Set,uh=!1,FD=!1;function jz(){FD||(FD=!0,process.on("exit",()=>{if(uh){for(let[p,h]of $D){try{Bz(h)}catch{}try{MD(p,{force:!0})}catch{}}for(let p of BD)try{MD(p,{recursive:!0,force:!0})}catch{}}}))}function UD(p){return uh=p===void 0?!0:p,uh&&jz(),uh}function zD(p){return typeof p=="string"?{prefix:p,suffix:"",dir:LD()}:{prefix:p?.prefix??"",suffix:p?.suffix??"",dir:p?.dir??LD()}}function Hz(p,h){let{prefix:w,suffix:_,dir:T}=zD(p),M=Gz(8).toString("hex");return PD(T,`${w}-${h}${M}${_}`)}async function GD(p={}){let h=Hz(p,"f-"),w=zz(h,"wx+",384);return uh&&$D.set(h,w),{path:h,fd:w}}function jw(p=""){let{prefix:h,dir:w}=zD(p),_=Uz(PD(w,`${h}-d-`));return uh&&BD.add(_),_}import{fileURLToPath as Jz}from"url";import*as ph from"vm";import*as HD from"yaml";import*as dh from"fs";import*as Hw from"path";var qz=process.env.IMGUR_API_URL||"https://api.imgur.com/3/",Wz=process.env.IMGUR_CLIENT_ID||"f0ea04148a54268";async function jD(p,h,w){let _;p.lastIndexOf(".")?_=p.slice(0,p.lastIndexOf(".")):_=p;let T=``;if(!w)return;let M;try{M=dh.readFileSync(w,{encoding:"utf-8"})}catch{M=""}M=`
|
|
103
|
+
|[^])|#(?!\\{)|`+h+')*")'),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:RegExp(h),inside:{punctuation:/^#\{|\}$/,expression:{pattern:/[\s\S]+/,inside:p.languages.tremor}}},string:/[\s\S]+/}},p.languages.troy=p.languages.tremor,p.languages.trickle=p.languages.tremor})(F);F.languages.twig={comment:/^\{#[\s\S]*?#\}$/,"tag-name":{pattern:/(^\{%-?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%]-?|-?[%}]\}$/,alias:"punctuation"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/}},keyword:/\b(?:even|if|odd)\b/,boolean:/\b(?:false|null|true)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],punctuation:/[()\[\]{}:.,]/},F.hooks.add("before-tokenize",(function(p){p.language==="twig"&&F.languages["markup-templating"].buildPlaceholders(p,"twig",/\{(?:#[\s\S]*?#|%[\s\S]*?%|\{[\s\S]*?\})\}/g)})),F.hooks.add("after-tokenize",(function(p){F.languages["markup-templating"].tokenizePlaceholders(p,"twig")}));(function(p){var h=/\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\b/;p.languages.typoscript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:= \t]|(?:^|[^= \t])[ \t]+)\/\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^"'])#.*/,lookbehind:!0,greedy:!0}],function:[{pattern:/<INCLUDE_TYPOSCRIPT:\s*source\s*=\s*(?:"[^"\r\n]*"|'[^'\r\n]*')\s*>/,inside:{string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,inside:{keyword:h}},keyword:{pattern:/INCLUDE_TYPOSCRIPT/}}},{pattern:/@import\s*(?:"[^"\r\n]*"|'[^'\r\n]*')/,inside:{string:/"[^"\r\n]*"|'[^'\r\n]*'/}}],string:{pattern:/^([^=]*=[< ]?)(?:(?!\]\n).)*/,lookbehind:!0,inside:{function:/\{\$.*\}/,keyword:h,number:/^\d+$/,punctuation:/[,|:]/}},keyword:h,number:{pattern:/\b\d+\s*[.{=]/,inside:{operator:/[.{=]/}},tag:{pattern:/\.?[-\w\\]+\.?/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:|]/,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/},p.languages.tsconfig=p.languages.typoscript})(F);F.languages.unrealscript={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},category:{pattern:/(\b(?:(?:autoexpand|hide|show)categories|var)\s*\()[^()]+(?=\))/,lookbehind:!0,greedy:!0,alias:"property"},metadata:{pattern:/(\w\s*)<\s*\w+\s*=[^<>|=\r\n]+(?:\|\s*\w+\s*=[^<>|=\r\n]+)*>/,lookbehind:!0,greedy:!0,inside:{property:/\b\w+(?=\s*=)/,operator:/=/,punctuation:/[<>|]/}},macro:{pattern:/`\w+/,alias:"property"},"class-name":{pattern:/(\b(?:class|enum|extends|interface|state(?:\(\))?|struct|within)\s+)\w+/,lookbehind:!0},keyword:/\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/>>|<<|--|\+\+|\*\*|[-+*/~!=<>$@]=?|&&?|\|\|?|\^\^?|[?:%]|\b(?:ClockwiseFrom|Cross|Dot)\b/,punctuation:/[()[\]{};,.]/},F.languages.uc=F.languages.uscript=F.languages.unrealscript;F.languages.uorazor={"comment-hash":{pattern:/#.*/,alias:"comment",greedy:!0},"comment-slash":{pattern:/\/\/.*/,alias:"comment",greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/},greedy:!0},"source-layers":{pattern:/\b(?:arms|backpack|blue|bracelet|cancel|clear|cloak|criminal|earrings|enemy|facialhair|friend|friendly|gloves|gray|grey|ground|hair|head|innerlegs|innertorso|innocent|lefthand|middletorso|murderer|neck|nonfriendly|onehandedsecondary|outerlegs|outertorso|pants|red|righthand|ring|self|shirt|shoes|talisman|waist)\b/i,alias:"function"},"source-commands":{pattern:/\b(?:alliance|attack|cast|clearall|clearignore|clearjournal|clearlist|clearsysmsg|createlist|createtimer|dclick|dclicktype|dclickvar|dress|dressconfig|drop|droprelloc|emote|getlabel|guild|gumpclose|gumpresponse|hotkey|ignore|lasttarget|lift|lifttype|menu|menuresponse|msg|org|organize|organizer|overhead|pause|poplist|potion|promptresponse|pushlist|removelist|removetimer|rename|restock|say|scav|scavenger|script|setability|setlasttarget|setskill|settimer|setvar|sysmsg|target|targetloc|targetrelloc|targettype|undress|unignore|unsetvar|useobject|useonce|useskill|usetype|virtue|wait|waitforgump|waitformenu|waitforprompt|waitforstat|waitforsysmsg|waitfortarget|walk|wfsysmsg|wft|whisper|yell)\b/,alias:"function"},"tag-name":{pattern:/(^\{%-?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%]-?|-?[%}]\}$/,alias:"punctuation"},function:/\b(?:atlist|close|closest|count|counter|counttype|dead|dex|diffhits|diffmana|diffstam|diffweight|find|findbuff|finddebuff|findlayer|findtype|findtypelist|followers|gumpexists|hidden|hits|hp|hue|human|humanoid|ingump|inlist|insysmessage|insysmsg|int|invul|lhandempty|list|listexists|mana|maxhits|maxhp|maxmana|maxstam|maxweight|monster|mounted|name|next|noto|paralyzed|poisoned|position|prev|previous|queued|rand|random|rhandempty|skill|stam|str|targetexists|timer|timerexists|varexist|warmode|weight)\b/,keyword:/\b(?:and|as|break|continue|else|elseif|endfor|endif|endwhile|for|if|loop|not|or|replay|stop|while)\b/,boolean:/\b(?:false|null|true)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],punctuation:/[()\[\]{}:.,]/};F.languages.uri={scheme:{pattern:/^[a-z][a-z0-9+.-]*:/im,greedy:!0,inside:{"scheme-delimiter":/:$/}},fragment:{pattern:/#[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"fragment-delimiter":/^#/}},query:{pattern:/\?[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"query-delimiter":{pattern:/^\?/,greedy:!0},"pair-delimiter":/[&;]/,pair:{pattern:/^[^=][\s\S]*/,inside:{key:/^[^=]+/,value:{pattern:/(^=)[\s\S]+/,lookbehind:!0}}}}},authority:{pattern:RegExp("^//(?:[\\w\\-.~!$&'()*+,;=%:]*@)?(?:\\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\\.[\\w\\-.~!$&'()*+,;=]+)\\]|[\\w\\-.~!$&'()*+,;=%]*)(?::\\d*)?","m"),inside:{"authority-delimiter":/^\/\//,"user-info-segment":{pattern:/^[\w\-.~!$&'()*+,;=%:]*@/,inside:{"user-info-delimiter":/@$/,"user-info":/^[\w\-.~!$&'()*+,;=%:]+/}},"port-segment":{pattern:/:\d*$/,inside:{"port-delimiter":/^:/,port:/^\d+/}},host:{pattern:/[\s\S]+/,inside:{"ip-literal":{pattern:/^\[[\s\S]+\]$/,inside:{"ip-literal-delimiter":/^\[|\]$/,"ipv-future":/^v[\s\S]+/,"ipv6-address":/^[\s\S]+/}},"ipv4-address":/^(?:(?:[03-9]\d?|[12]\d{0,2})\.){3}(?:[03-9]\d?|[12]\d{0,2})$/}}}},path:{pattern:/^[\w\-.~!$&'()*+,;=%:@/]+/m,inside:{"path-separator":/\//}}},F.languages.url=F.languages.uri;(function(p){var h={pattern:/[\s\S]+/,inside:null};p.languages.v=p.languages.extend("clike",{string:{pattern:/r?(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,alias:"quoted-string",greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\{[^{}]*\}|\w+(?:\.\w+(?:\([^\(\)]*\))?|\[[^\[\]]+\])*)/,lookbehind:!0,inside:{"interpolation-variable":{pattern:/^\$\w[\s\S]*$/,alias:"variable"},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},"interpolation-expression":h}}}},"class-name":{pattern:/(\b(?:enum|interface|struct|type)\s+)(?:C\.)?\w+/,lookbehind:!0},keyword:/(?:\b(?:__global|as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\$(?:else|for|if)|#(?:flag|include))\b/,number:/\b(?:0x[a-f\d]+(?:_[a-f\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?)\b/i,operator:/~|\?|[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\.?/,builtin:/\b(?:any(?:_float|_int)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|64|128|nt)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\b/}),h.inside=p.languages.v,p.languages.insertBefore("v","string",{char:{pattern:/`(?:\\`|\\?[^`]{1,2})`/,alias:"rune"}}),p.languages.insertBefore("v","operator",{attribute:{pattern:/(^[\t ]*)\[(?:deprecated|direct_array_access|flag|inline|live|ref_only|typedef|unsafe_fn|windows_stdcall)\]/m,lookbehind:!0,alias:"annotation",inside:{punctuation:/[\[\]]/,keyword:/\w+/}},generic:{pattern:/<\w+>(?=\s*[\)\{])/,inside:{punctuation:/[<>]/,"class-name":/\w+/}}}),p.languages.insertBefore("v","function",{"generic-function":{pattern:/\b\w+\s*<\w+>(?=\()/,inside:{function:/^\w+/,generic:{pattern:/<\w+>/,inside:p.languages.v.generic.inside}}}})})(F);F.languages.vala=F.languages.extend("clike",{"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=(?:\?\s+|\*?\s+\*?)\w)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|enum|interface|new|struct)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],keyword:/\b(?:abstract|as|assert|async|base|bool|break|case|catch|char|class|const|construct|continue|default|delegate|delete|do|double|dynamic|else|ensures|enum|errordomain|extern|finally|float|for|foreach|get|if|in|inline|int|int16|int32|int64|int8|interface|internal|is|lock|long|namespace|new|null|out|override|owned|params|private|protected|public|ref|requires|return|set|short|signal|sizeof|size_t|ssize_t|static|string|struct|switch|this|throw|throws|try|typeof|uchar|uint|uint16|uint32|uint64|uint8|ulong|unichar|unowned|ushort|using|value|var|virtual|void|volatile|weak|while|yield)\b/i,function:/\b\w+(?=\s*\()/,number:/(?:\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?:f|u?l?)?/i,operator:/\+\+|--|&&|\|\||<<=?|>>=?|=>|->|~|[+\-*\/%&^|=!<>]=?|\?\??|\.\.\./,punctuation:/[{}[\];(),.:]/,constant:/\b[A-Z0-9_]+\b/}),F.languages.insertBefore("vala","string",{"raw-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"template-string":{pattern:/@"[\s\S]*?"/,greedy:!0,inside:{interpolation:{pattern:/\$(?:\([^)]*\)|[a-zA-Z]\w*)/,inside:{delimiter:{pattern:/^\$\(?|\)$/,alias:"punctuation"},rest:F.languages.vala}},string:/[\s\S]+/}}}),F.languages.insertBefore("vala","keyword",{regex:{pattern:/\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[imsx]{0,4}(?=\s*(?:$|[\r\n,.;})\]]))/,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:F.languages.regex},"regex-delimiter":/^\//,"regex-flags":/^[a-z]+$/}}});(function(p){p.languages.velocity=p.languages.extend("markup",{});var h={variable:{pattern:/(^|[^\\](?:\\\\)*)\$!?(?:[a-z][\w-]*(?:\([^)]*\))?(?:\.[a-z][\w-]*(?:\([^)]*\))?|\[[^\]]+\])*|\{[^}]+\})/i,lookbehind:!0,inside:{}},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},number:/\b\d+\b/,boolean:/\b(?:false|true)\b/,operator:/[=!<>]=?|[+*/%-]|&&|\|\||\.\.|\b(?:eq|g[et]|l[et]|n(?:e|ot))\b/,punctuation:/[(){}[\]:,.]/};h.variable.inside={string:h.string,function:{pattern:/([^\w-])[a-z][\w-]*(?=\()/,lookbehind:!0},number:h.number,boolean:h.boolean,punctuation:h.punctuation},p.languages.insertBefore("velocity","comment",{unparsed:{pattern:/(^|[^\\])#\[\[[\s\S]*?\]\]#/,lookbehind:!0,greedy:!0,inside:{punctuation:/^#\[\[|\]\]#$/}},"velocity-comment":[{pattern:/(^|[^\\])#\*[\s\S]*?\*#/,lookbehind:!0,greedy:!0,alias:"comment"},{pattern:/(^|[^\\])##.*/,lookbehind:!0,greedy:!0,alias:"comment"}],directive:{pattern:/(^|[^\\](?:\\\\)*)#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})(?:\s*\((?:[^()]|\([^()]*\))*\))?/i,lookbehind:!0,inside:{keyword:{pattern:/^#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})|\bin\b/,inside:{punctuation:/[{}]/}},rest:h}},variable:h.variable}),p.languages.velocity.tag.inside["attr-value"].inside.rest=p.languages.velocity})(F);F.languages.verilog={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"kernel-function":{pattern:/\B\$\w+\b/,alias:"property"},constant:/\B`\w+\b/,function:/\b\w+(?=\()/,keyword:/\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|case|casex|casez|cell|chandle|class|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endsequence|endspecify|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_ondetect|pulsestyle_onevent|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\b/,important:/\b(?:always|always_comb|always_ff|always_latch)\b(?: *@)?/,number:/\B##?\d+|(?:\b\d+)?'[odbh] ?[\da-fzx_?]+|\b(?:\d*[._])?\d+(?:e[-+]?\d+)?/i,operator:/[-+{}^~%*\/?=!<>&|]+/,punctuation:/[[\];(),.:]/};F.languages.vhdl={comment:/--.+/,"vhdl-vectors":{pattern:/\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,alias:"number"},"quoted-function":{pattern:/"\S+?"(?=\()/,alias:"function"},string:/"(?:[^\\"\r\n]|\\(?:\r\n|[\s\S]))*"/,attribute:{pattern:/\b'\w+/,alias:"attr-name"},keyword:/\b(?:access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|private|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|view|wait|when|while|with)\b/i,boolean:/\b(?:false|true)\b/i,function:/\w+(?=\()/,number:/'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,operator:/[<>]=?|:=|[-+*/&=]|\b(?:abs|and|mod|nand|nor|not|or|rem|rol|ror|sla|sll|sra|srl|xnor|xor)\b/i,punctuation:/[{}[\];(),.:]/};F.languages.vim={string:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/,comment:/".*/,function:/\b\w+(?=\()/,keyword:/\b(?:N|Next|P|Print|X|XMLent|XMLns|ab|abbreviate|abc|abclear|abo|aboveleft|al|all|ar|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|args|argu|argument|as|ascii|b|bN|bNext|ba|bad|badd|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bo|botright|bp|bprevious|br|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|brewind|bro|browse|bufdo|buffer|buffers|bun|bunload|bw|bwipeout|c|cN|cNext|cNfcNfile|ca|cabbrev|cabc|cabclear|cad|caddb|caddbuffer|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cg|cgetb|cgetbuffer|cgete|cgetexpr|cgetfile|change|changes|chd|chdir|che|checkpath|checkt|checktime|cl|cla|clast|clist|clo|close|cmapc|cmapclear|cn|cnew|cnewer|cnext|cnf|cnfile|cnorea|cnoreabbrev|co|col|colder|colo|colorscheme|comc|comclear|comp|compiler|con|conf|confirm|continue|cope|copen|copy|cp|cpf|cpfile|cprevious|cq|cquit|cr|crewind|cu|cuna|cunabbrev|cunmap|cw|cwindow|d|debugg|debuggreedy|delc|delcommand|delete|delf|delfunction|delm|delmarks|di|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|e|earlier|echoe|echoerr|echom|echomsg|echon|edit|el|else|elsei|elseif|em|emenu|en|endf|endfo|endfor|endfun|endfunction|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fin|fina|finally|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoc|folddoclosed|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|h|ha|hardcopy|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iu|iuna|iunabbrev|iunmap|j|join|ju|jumps|k|kee|keepalt|keepj|keepjumps|keepmarks|l|lN|lNext|lNf|lNfile|la|lad|laddb|laddbuffer|laddexpr|laddf|laddfile|lan|language|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|left|lefta|leftabove|let|lex|lexpr|lf|lfile|lfir|lfirst|lg|lgetb|lgetbuffer|lgete|lgetexpr|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|list|ll|lla|llast|lli|llist|lm|lmak|lmake|lmap|lmapc|lmapclear|ln|lne|lnew|lnewer|lnext|lnf|lnfile|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lpf|lpfile|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|ma|mak|make|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvie|mkview|mkvimrc|mod|mode|move|mz|mzf|mzfile|mzscheme|n|nbkey|new|next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|o|omapc|omapclear|on|only|open|opt|options|ou|ounmap|p|pc|pclose|pe|ped|pedit|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|print|prof|profd|profdel|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|ptN|ptNext|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|py|pyf|pyfile|python|q|qa|qall|quit|quita|quitall|r|read|rec|recover|red|redi|redir|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|rub|ruby|rubyd|rubydo|rubyf|rubyfile|runtime|rv|rviminfo|sN|sNext|sa|sal|sall|san|sandbox|sargument|sav|saveas|sb|sbN|sbNext|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbp|sbprevious|sbr|sbrewind|sbuffer|scrip|scripte|scriptencoding|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sl|sla|slast|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|so|sor|sort|source|sp|spe|spelld|spelldump|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|split|spr|sprevious|sre|srewind|st|sta|stag|star|startg|startgreplace|startinsert|startr|startreplace|stj|stjump|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tN|tNext|ta|tab|tabN|tabNext|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnew|tabnext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|u|una|unabbreviate|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|ve|verb|verbose|version|vert|vertical|vi|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|w|wN|wNext|wa|wall|wh|while|win|winc|wincmd|windo|winp|winpos|winsize|wn|wnext|wp|wprevious|wq|wqa|wqall|write|ws|wsverb|wv|wviminfo|x|xa|xall|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\b/,builtin:/\b(?:acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autocmd|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|t_AB|t_AF|t_AL|t_CS|t_CV|t_Ce|t_Co|t_Cs|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_IE|t_IS|t_K1|t_K3|t_K4|t_K5|t_K6|t_K7|t_K8|t_K9|t_KA|t_KB|t_KC|t_KD|t_KE|t_KF|t_KG|t_KH|t_KI|t_KJ|t_KK|t_KL|t_RI|t_RV|t_SI|t_Sb|t_Sf|t_WP|t_WS|t_ZH|t_ZR|t_al|t_bc|t_cd|t_ce|t_cl|t_cm|t_cs|t_da|t_db|t_dl|t_fs|t_k1|t_k2|t_k3|t_k4|t_k5|t_k6|t_k7|t_k8|t_k9|t_kB|t_kD|t_kI|t_kN|t_kP|t_kb|t_kd|t_ke|t_kh|t_kl|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_se|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_xs|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?)\b/i,operator:/\|\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\/%?]|\b(?:is(?:not)?)\b/,punctuation:/[{}[\](),;:]/};F.languages["visual-basic"]={comment:{pattern:/(?:['‘’]|REM\b)(?:[^\r\n_]|_(?:\r\n?|\n)?)*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\b_[ \t]*(?:\r\n?|\n)|.)+/i,alias:"property",greedy:!0},string:{pattern:/\$?["“”](?:["“”]{2}|[^"“”])*["“”]C?/i,greedy:!0},date:{pattern:/#[ \t]*(?:\d+([/-])\d+\1\d+(?:[ \t]+(?:\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?))?|\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?)[ \t]*#/i,alias:"number"},number:/(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:[FRD]|U?[ILS])?/i,boolean:/\b(?:False|Nothing|True)\b/i,keyword:/\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\b/i,operator:/[+\-*/\\^<=>&#@$%!]|\b_(?=[ \t]*[\r\n])/,punctuation:/[{}().,:?]/},F.languages.vb=F.languages["visual-basic"],F.languages.vba=F.languages["visual-basic"];F.languages.warpscript={comment:/#.*|\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'|<'(?:[^\\']|'(?!>)|\\.)*'>/,greedy:!0},variable:/\$\S+/,macro:{pattern:/@\S+/,alias:"property"},keyword:/\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\b/,number:/[+-]?\b(?:NaN|Infinity|\d+(?:\.\d*)?(?:[Ee][+-]?\d+)?|0x[\da-fA-F]+|0b[01]+)\b/,boolean:/\b(?:F|T|false|true)\b/,punctuation:/<%|%>|[{}[\]()]/,operator:/==|&&?|\|\|?|\*\*?|>>>?|<<|[<>!~]=?|[-/%^]|\+!?|\b(?:AND|NOT|OR)\b/};F.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};(function(p){var h="(?:\\B-|\\b_|\\b)[A-Za-z][\\w-]*(?![\\w-])",w="(?:\\b(?:unsigned\\s+)?long\\s+long(?![\\w-])|\\b(?:unrestricted|unsigned)\\s+[a-z]+(?![\\w-])|(?!(?:unrestricted|unsigned)\\b)"+h+"(?:\\s*<(?:[^<>]|<[^<>]*>)*>)?)(?:\\s*\\?)?",_={};for(var T in p.languages["web-idl"]={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/"[^"]*"/,greedy:!0},namespace:{pattern:RegExp("(\\bnamespace\\s+)"+h),lookbehind:!0},"class-name":[{pattern:/(^|[^\w-])(?:iterable|maplike|setlike)\s*<(?:[^<>]|<[^<>]*>)*>/,lookbehind:!0,inside:_},{pattern:RegExp("(\\b(?:attribute|const|deleter|getter|optional|setter)\\s+)"+w),lookbehind:!0,inside:_},{pattern:RegExp("(\\bcallback\\s+"+h+"\\s*=\\s*)"+w),lookbehind:!0,inside:_},{pattern:RegExp("(\\btypedef\\b\\s*)"+w),lookbehind:!0,inside:_},{pattern:RegExp("(\\b(?:callback|dictionary|enum|interface(?:\\s+mixin)?)\\s+)(?!(?:interface|mixin)\\b)"+h),lookbehind:!0},{pattern:RegExp("(:\\s*)"+h),lookbehind:!0},RegExp(h+"(?=\\s+(?:implements|includes)\\b)"),{pattern:RegExp("(\\b(?:implements|includes)\\s+)"+h),lookbehind:!0},{pattern:RegExp(w+"(?=\\s*(?:\\.{3}\\s*)?"+h+"\\s*[(),;=])"),inside:_}],builtin:/\b(?:ArrayBuffer|BigInt64Array|BigUint64Array|ByteString|DOMString|DataView|Float32Array|Float64Array|FrozenArray|Int16Array|Int32Array|Int8Array|ObservableArray|Promise|USVString|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray)\b/,keyword:[/\b(?:async|attribute|callback|const|constructor|deleter|dictionary|enum|getter|implements|includes|inherit|interface|mixin|namespace|null|optional|or|partial|readonly|required|setter|static|stringifier|typedef|unrestricted)\b/,/\b(?:any|bigint|boolean|byte|double|float|iterable|long|maplike|object|octet|record|sequence|setlike|short|symbol|undefined|unsigned|void)\b/],boolean:/\b(?:false|true)\b/,number:{pattern:/(^|[^\w-])-?(?:0x[0-9a-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|NaN|Infinity)(?![\w-])/i,lookbehind:!0},operator:/\.{3}|[=:?<>-]/,punctuation:/[(){}[\].,;]/},p.languages["web-idl"])T!=="class-name"&&(_[T]=p.languages["web-idl"][T]);p.languages.webidl=p.languages["web-idl"]})(F);F.languages.wgsl={comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},"builtin-attribute":{pattern:/(@)builtin\(.*?\)/,lookbehind:!0,inside:{attribute:{pattern:/^builtin/,alias:"attr-name"},punctuation:/[(),]/,"built-in-values":{pattern:/\b(?:frag_depth|front_facing|global_invocation_id|instance_index|local_invocation_id|local_invocation_index|num_workgroups|position|sample_index|sample_mask|vertex_index|workgroup_id)\b/,alias:"attr-value"}}},attributes:{pattern:/(@)(?:align|binding|compute|const|fragment|group|id|interpolate|invariant|location|size|vertex|workgroup_size)/i,lookbehind:!0,alias:"attr-name"},functions:{pattern:/\b(fn\s+)[_a-zA-Z]\w*(?=[(<])/,lookbehind:!0,alias:"function"},keyword:/\b(?:bitcast|break|case|const|continue|continuing|default|discard|else|enable|fallthrough|fn|for|function|if|let|loop|private|return|storage|struct|switch|type|uniform|var|while|workgroup)\b/,builtin:/\b(?:abs|acos|acosh|all|any|array|asin|asinh|atan|atan2|atanh|atomic|atomicAdd|atomicAnd|atomicCompareExchangeWeak|atomicExchange|atomicLoad|atomicMax|atomicMin|atomicOr|atomicStore|atomicSub|atomicXor|bool|ceil|clamp|cos|cosh|countLeadingZeros|countOneBits|countTrailingZeros|cross|degrees|determinant|distance|dot|dpdx|dpdxCoarse|dpdxFine|dpdy|dpdyCoarse|dpdyFine|exp|exp2|extractBits|f32|f64|faceForward|firstLeadingBit|floor|fma|fract|frexp|fwidth|fwidthCoarse|fwidthFine|i32|i64|insertBits|inverseSqrt|ldexp|length|log|log2|mat[2-4]x[2-4]|max|min|mix|modf|normalize|override|pack2x16float|pack2x16snorm|pack2x16unorm|pack4x8snorm|pack4x8unorm|pow|ptr|quantizeToF16|radians|reflect|refract|reverseBits|round|sampler|sampler_comparison|select|shiftLeft|shiftRight|sign|sin|sinh|smoothstep|sqrt|staticAssert|step|storageBarrier|tan|tanh|textureDimensions|textureGather|textureGatherCompare|textureLoad|textureNumLayers|textureNumLevels|textureNumSamples|textureSample|textureSampleBias|textureSampleCompare|textureSampleCompareLevel|textureSampleGrad|textureSampleLevel|textureStore|texture_1d|texture_2d|texture_2d_array|texture_3d|texture_cube|texture_cube_array|texture_depth_2d|texture_depth_2d_array|texture_depth_cube|texture_depth_cube_array|texture_depth_multisampled_2d|texture_multisampled_2d|texture_storage_1d|texture_storage_2d|texture_storage_2d_array|texture_storage_3d|transpose|trunc|u32|u64|unpack2x16float|unpack2x16snorm|unpack2x16unorm|unpack4x8snorm|unpack4x8unorm|vec[2-4]|workgroupBarrier)\b/,"function-calls":{pattern:/\b[_a-z]\w*(?=\()/i,alias:"function"},"class-name":/\b(?:[A-Z][A-Za-z0-9]*)\b/,"bool-literal":{pattern:/\b(?:false|true)\b/,alias:"boolean"},"hex-int-literal":{pattern:/\b0[xX][0-9a-fA-F]+[iu]?\b(?![.pP])/,alias:"number"},"hex-float-literal":{pattern:/\b0[xX][0-9a-fA-F]*(?:\.[0-9a-fA-F]*)?(?:[pP][+-]?\d+[fh]?)?/,alias:"number"},"decimal-float-literal":[{pattern:/\d*\.\d+(?:[eE](?:\+|-)?\d+)?[fh]?/,alias:"number"},{pattern:/\d+\.\d*(?:[eE](?:\+|-)?\d+)?[fh]?/,alias:"number"},{pattern:/\d+[eE](?:\+|-)?\d+[fh]?/,alias:"number"},{pattern:/\b\d+[fh]\b/,alias:"number"}],"int-literal":{pattern:/\b\d+[iu]?\b/,alias:"number"},operator:[{pattern:/(?:\^|~|\|(?!\|)|\|\||&&|<<|>>|!)(?!=)/},{pattern:/&(?![&=])/},{pattern:/(?:\+=|-=|\*=|\/=|%=|\^=|&=|\|=|<<=|>>=)/},{pattern:/(^|[^<>=!])=(?![=>])/,lookbehind:!0},{pattern:/(?:==|!=|<=|\+\+|--|(^|[^=])>=)/,lookbehind:!0},{pattern:/(?:(?:[+%]|(?:\*(?!\w)))(?!=))|(?:-(?!>))|(?:\/(?!\/))/},{pattern:/->/}],punctuation:/[@(){}[\],;<>:.]/};F.languages.wiki=F.languages.extend("markup",{"block-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,alias:"comment"},heading:{pattern:/^(=+)[^=\r\n].*?\1/m,inside:{punctuation:/^=+|=+$/,important:/.+/}},emphasis:{pattern:/('{2,5}).+?\1/,inside:{"bold-italic":{pattern:/(''''').+?(?=\1)/,lookbehind:!0,alias:["bold","italic"]},bold:{pattern:/(''')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},italic:{pattern:/('')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},punctuation:/^''+|''+$/}},hr:{pattern:/^-{4,}/m,alias:"punctuation"},url:[/ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:PMID|RFC) +\d+/i,/\[\[.+?\]\]|\[.+?\]/],variable:[/__[A-Z]+__/,/\{{3}.+?\}{3}/,/\{\{.+?\}\}/],symbol:[/^#redirect/im,/~{3,5}/],"table-tag":{pattern:/((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m,lookbehind:!0,inside:{"table-bar":{pattern:/\|$/,alias:"punctuation"},rest:F.languages.markup.tag.inside}},punctuation:/^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m}),F.languages.insertBefore("wiki","tag",{nowiki:{pattern:/<(nowiki|pre|source)\b[^>]*>[\s\S]*?<\/\1>/i,inside:{tag:{pattern:/<(?:nowiki|pre|source)\b[^>]*>|<\/(?:nowiki|pre|source)>/i,inside:F.languages.markup.tag.inside}}}});F.languages.wolfram={comment:/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\b/,context:{pattern:/\b\w+`+\w*/,alias:"class-name"},blank:{pattern:/\b\w+_\b/,alias:"regex"},"global-variable":{pattern:/\$\w+/,alias:"variable"},boolean:/\b(?:False|True)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/\/\.|;|=\.|\^=|\^:=|:=|<<|>>|<\||\|>|:>|\|->|->|<-|@@@|@@|@|\/@|=!=|===|==|=|\+|-|\[\/-+%=\]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},F.languages.mathematica=F.languages.wolfram,F.languages.wl=F.languages.wolfram,F.languages.nb=F.languages.wolfram;F.languages.wren={comment:[{pattern:/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*))*\*\/)*\*\/)*\*\//,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"string-literal":null,hashbang:{pattern:/^#!\/.+/,greedy:!0,alias:"comment"},attribute:{pattern:/#!?[ \t\u3000]*\w+/,alias:"keyword"},"class-name":[{pattern:/(\bclass\s+)\w+/,lookbehind:!0},/\b[A-Z][a-z\d_]*\b/],constant:/\b[A-Z][A-Z\d_]*\b/,null:{pattern:/\bnull\b/,alias:"keyword"},keyword:/\b(?:as|break|class|construct|continue|else|for|foreign|if|import|in|is|return|static|super|this|var|while)\b/,boolean:/\b(?:false|true)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,function:/\b[a-z_]\w*(?=\s*[({])/i,operator:/<<|>>|[=!<>]=?|&&|\|\||[-+*/%~^&|?:]|\.{2,3}/,punctuation:/[\[\](){}.,;]/},F.languages.wren["string-literal"]={pattern:/(^|[^\\"])"(?:[^\\"%]|\\[\s\S]|%(?!\()|%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\))*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\)/,lookbehind:!0,inside:{expression:{pattern:/^(%\()[\s\S]+(?=\)$)/,lookbehind:!0,inside:F.languages.wren},"interpolation-punctuation":{pattern:/^%\(|\)$/,alias:"punctuation"}}},string:/[\s\S]+/}};(function(p){p.languages.xeora=p.languages.extend("markup",{constant:{pattern:/\$(?:DomainContents|PageRenderDuration)\$/,inside:{punctuation:{pattern:/\$/}}},variable:{pattern:/\$@?(?:#+|[-+*~=^])?[\w.]+\$/,inside:{punctuation:{pattern:/[$.]/},operator:{pattern:/#+|[-+*~=^@]/}}},"function-inline":{pattern:/\$F:[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\$/,inside:{variable:{pattern:/(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/,inside:{punctuation:{pattern:/[,.|]/},operator:{pattern:/#+|[-+*~=^@]/}}},punctuation:{pattern:/\$\w:|[$:?.,|]/}},alias:"function"},"function-block":{pattern:/\$XF:\{[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\}:XF\$/,inside:{punctuation:{pattern:/[$:{}?.,|]/}},alias:"function"},"directive-inline":{pattern:/\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\/\w.]+\$/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}}},alias:"function"},"directive-block-open":{pattern:/\$\w+:\{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\w.]+:\{(?:![A-Z]+)?/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}},attribute:{pattern:/![A-Z]+$/,inside:{punctuation:{pattern:/!/}},alias:"keyword"}},alias:"function"},"directive-block-separator":{pattern:/\}:[-\w.]+:\{/,inside:{punctuation:{pattern:/[:{}]/}},alias:"function"},"directive-block-close":{pattern:/\}:[-\w.]+\$/,inside:{punctuation:{pattern:/[:{}$]/}},alias:"function"}}),p.languages.insertBefore("inside","punctuation",{variable:p.languages.xeora["function-inline"].inside.variable},p.languages.xeora["function-block"]),p.languages.xeoracube=p.languages.xeora})(F);(function(p){function h(M,D){p.languages[M]&&p.languages.insertBefore(M,"comment",{"doc-comment":D})}var w=p.languages.markup.tag,_={pattern:/\/\/\/.*/,greedy:!0,alias:"comment",inside:{tag:w}},T={pattern:/'''.*/,greedy:!0,alias:"comment",inside:{tag:w}};h("csharp",_),h("fsharp",_),h("vbnet",T)})(F);F.languages.xojo={comment:{pattern:/(?:'|\/\/|Rem\b).+/i,greedy:!0},string:{pattern:/"(?:""|[^"])*"/,greedy:!0},number:[/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,/&[bchou][a-z\d]+/i],directive:{pattern:/#(?:Else|ElseIf|Endif|If|Pragma)\b/i,alias:"property"},keyword:/\b(?:AddHandler|App|Array|As(?:signs)?|Auto|Boolean|Break|By(?:Ref|Val)|Byte|Call|Case|Catch|CFStringRef|CGFloat|Class|Color|Const|Continue|CString|Currency|CurrentMethodName|Declare|Delegate|Dim|Do(?:uble|wnTo)?|Each|Else(?:If)?|End|Enumeration|Event|Exception|Exit|Extends|False|Finally|For|Function|Get|GetTypeInfo|Global|GOTO|If|Implements|In|Inherits|Int(?:8|16|32|64|eger|erface)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Shared|Short|Single|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:8|16|32|64|eger)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\b/i,operator:/<[=>]?|>=?|[+\-*\/\\^=]|\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|WeakAddressOf|Xor)\b/i,punctuation:/[.,;:()]/};(function(p){p.languages.xquery=p.languages.extend("markup",{"xquery-comment":{pattern:/\(:[\s\S]*?:\)/,greedy:!0,alias:"comment"},string:{pattern:/(["'])(?:\1\1|(?!\1)[\s\S])*\1/,greedy:!0},extension:{pattern:/\(#.+?#\)/,alias:"symbol"},variable:/\$[-\w:]+/,axis:{pattern:/(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,lookbehind:!0,alias:"operator"},"keyword-operator":{pattern:/(^|[^:-])\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\b(?=$|[^:-])/,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^:-])\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\b(?=$|[^:-])/,lookbehind:!0},function:/[\w-]+(?::[\w-]+)*(?=\s*\()/,"xquery-element":{pattern:/(element\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"tag"},"xquery-attribute":{pattern:/(attribute\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"attr-name"},builtin:{pattern:/(^|[^:-])\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:ENTITIES|ENTITY|ID|IDREFS?|NCName|NMTOKENS?|NOTATION|Name|QName|anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|int|integer|language|long|negativeInteger|nonNegativeInteger|nonPositiveInteger|normalizedString|positiveInteger|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\b(?=$|[^:-])/,lookbehind:!0},number:/\b\d+(?:\.\d+)?(?:E[+-]?\d+)?/,operator:[/[+*=?|@]|\.\.?|:=|!=|<[=<]?|>[=>]?/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}],punctuation:/[[\](){},;:/]/}),p.languages.xquery.tag.pattern=/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/,p.languages.xquery.tag.inside["attr-value"].pattern=/=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+)/,p.languages.xquery.tag.inside["attr-value"].inside.punctuation=/^="|"$/,p.languages.xquery.tag.inside["attr-value"].inside.expression={pattern:/\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}/,inside:p.languages.xquery,alias:"language-xquery"};var h=function(_){return typeof _=="string"?_:typeof _.content=="string"?_.content:_.content.map(h).join("")},w=function(_){for(var T=[],M=0;M<_.length;M++){var D=_[M],L=!1;if(typeof D!="string"&&(D.type==="tag"&&D.content[0]&&D.content[0].type==="tag"?D.content[0].content[0].content==="</"?T.length>0&&T[T.length-1].tagName===h(D.content[0].content[1])&&T.pop():D.content[D.content.length-1].content==="/>"||T.push({tagName:h(D.content[0].content[1]),openedBraces:0}):!(T.length>0&&D.type==="punctuation"&&D.content==="{")||_[M+1]&&_[M+1].type==="punctuation"&&_[M+1].content==="{"||_[M-1]&&_[M-1].type==="plain-text"&&_[M-1].content==="{"?T.length>0&&T[T.length-1].openedBraces>0&&D.type==="punctuation"&&D.content==="}"?T[T.length-1].openedBraces--:D.type!=="comment"&&(L=!0):T[T.length-1].openedBraces++),(L||typeof D=="string")&&T.length>0&&T[T.length-1].openedBraces===0){var U=h(D);M<_.length-1&&(typeof _[M+1]=="string"||_[M+1].type==="plain-text")&&(U+=h(_[M+1]),_.splice(M+1,1)),M>0&&(typeof _[M-1]=="string"||_[M-1].type==="plain-text")&&(U=h(_[M-1])+U,_.splice(M-1,1),M--),/^\s+$/.test(U)?_[M]=U:_[M]=new p.Token("plain-text",U,null,U)}D.content&&typeof D.content!="string"&&w(D.content)}};p.hooks.add("after-tokenize",(function(_){_.language==="xquery"&&w(_.tokens)}))})(F);F.languages.yang={comment:/\/\*[\s\S]*?\*\/|\/\/.*/,string:{pattern:/"(?:[^\\"]|\\.)*"|'[^']*'/,greedy:!0},keyword:{pattern:/(^|[{};\r\n][ \t]*)[a-z_][\w.-]*/i,lookbehind:!0},namespace:{pattern:/(\s)[a-z_][\w.-]*(?=:)/i,lookbehind:!0},boolean:/\b(?:false|true)\b/,operator:/\+/,punctuation:/[{};:]/};(function(p){function h(D){return function(){return D}}var w=/\b(?:align|allowzero|and|anyframe|anytype|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|nosuspend|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\b/,_="\\b(?!"+w.source+")(?!\\d)\\w+\\b",T="align\\s*\\((?:[^()]|\\([^()]*\\))*\\)",M="(?!\\s)(?:!?\\s*(?:"+"(?:\\?|\\bpromise->|(?:\\[[^[\\]]*\\]|\\*(?!\\*)|\\*\\*)(?:\\s*<ALIGN>|\\s*const\\b|\\s*volatile\\b|\\s*allowzero\\b)*)".replace(/<ALIGN>/g,h(T))+"\\s*)*"+"(?:\\bpromise\\b|(?:\\berror\\.)?<ID>(?:\\.<ID>)*(?!\\s+<ID>))".replace(/<ID>/g,h(_))+")+";p.languages.zig={comment:[{pattern:/\/\/[/!].*/,alias:"doc-comment"},/\/{2}.*/],string:[{pattern:/(^|[^\\@])c?"(?:[^"\\\r\n]|\\.)*"/,lookbehind:!0,greedy:!0},{pattern:/([\r\n])([ \t]+c?\\{2}).*(?:(?:\r\n?|\n)\2.*)*/,lookbehind:!0,greedy:!0}],char:{pattern:/(^|[^\\])'(?:[^'\\\r\n]|[\uD800-\uDFFF]{2}|\\(?:.|x[a-fA-F\d]{2}|u\{[a-fA-F\d]{1,6}\}))'/,lookbehind:!0,greedy:!0},builtin:/\B@(?!\d)\w+(?=\s*\()/,label:{pattern:/(\b(?:break|continue)\s*:\s*)\w+\b|\b(?!\d)\w+\b(?=\s*:\s*(?:\{|while\b))/,lookbehind:!0},"class-name":[/\b(?!\d)\w+(?=\s*=\s*(?:(?:extern|packed)\s+)?(?:enum|struct|union)\s*[({])/,{pattern:RegExp("(:\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?[=;,)])|<TYPE>(?=\\s*(?:<ALIGN>\\s*)?\\{)".replace(/<TYPE>/g,h(M)).replace(/<ALIGN>/g,h(T))),lookbehind:!0,inside:null},{pattern:RegExp("(\\)\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?;)".replace(/<TYPE>/g,h(M)).replace(/<ALIGN>/g,h(T))),lookbehind:!0,inside:null}],"builtin-type":{pattern:/\b(?:anyerror|bool|c_u?(?:int|long|longlong|short)|c_longdouble|c_void|comptime_(?:float|int)|f(?:16|32|64|128)|[iu](?:8|16|32|64|128|size)|noreturn|type|void)\b/,alias:"keyword"},keyword:w,function:/\b(?!\d)\w+(?=\s*\()/,number:/\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\d]+(?:\.[a-fA-F\d]*)?(?:[pP][+-]?[a-fA-F\d]+)?|\d+(?:\.\d*)?(?:[eE][+-]?\d+)?)\b/,boolean:/\b(?:false|true)\b/,operator:/\.[*?]|\.{2,3}|[-=]>|\*\*|\+\+|\|\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,punctuation:/[.:,;(){}[\]]/},p.languages.zig["class-name"].forEach((function(D){D.inside===null&&(D.inside=p.languages.zig)}))})(F)});import $z from"uslug";var kr=class{constructor(){this.table={}}generateId(h){let w=(T,M)=>{let D=M.replace(/[!"#$%&'()*+,./:;<=>?@[\\]^`{|}~]/g,"").replace(/^\s/,"").replace(/\s$/,"").replace(/`/g,"~");return(M.match(/^\s+$/)?"~":D)+(T.endsWith(" ")&&!D.endsWith("~")?"~":"")};h=h.trim().replace(/~|。/g,"").replace(/``(.+?)``\s?/g,w).replace(/`(.*?)`\s?/g,w).replace(/\s__([^_]+?)__\s/g,"-$1-").replace(/\s_([^_]+?)_\s/g,"-$1-");let _=$z(h.replace(/\s/g,"~")).replace(/~/g,"-");return this.table[_]>=0?(this.table[_]=this.table[_]+1,_+="-"+this.table[_]):this.table[_]=0,_}};import Kz from"@ungap/structured-clone";import*as fh from"child_process";import*as p0 from"path";import Xz from"sval";import{closeSync as Bz,mkdtempSync as Uz,openSync as zz,rmSync as MD}from"fs";import{tmpdir as LD}from"os";import{join as PD}from"path";var $D=new Map,BD=new Set,uh=!1,FD=!1;function Gz(){FD||(FD=!0,process.on("exit",()=>{if(uh){for(let[p,h]of $D){try{Bz(h)}catch{}try{MD(p,{force:!0})}catch{}}for(let p of BD)try{MD(p,{recursive:!0,force:!0})}catch{}}}))}function UD(p){return uh=p===void 0?!0:p,uh&&Gz(),uh}function zD(p){return typeof p=="string"?{prefix:p,suffix:"",dir:LD()}:{prefix:p?.prefix??"",suffix:p?.suffix??"",dir:p?.dir??LD()}}function jz(p,h){let{prefix:w,suffix:_,dir:T}=zD(p),M=Math.random().toString(16).slice(2)+Math.random().toString(16).slice(2);return PD(T,`${w}-${h}${M}${_}`)}async function GD(p={}){let h=jz(p,"f-"),w=zz(h,"wx+",384);return uh&&$D.set(h,w),{path:h,fd:w}}function jw(p=""){let{prefix:h,dir:w}=zD(p),_=Uz(PD(w,`${h}-d-`));return uh&&BD.add(_),_}import{fileURLToPath as Zz}from"url";import*as ph from"vm";import*as HD from"yaml";import*as dh from"fs";import*as Hw from"path";var Hz=process.env.IMGUR_API_URL||"https://api.imgur.com/3/",qz=process.env.IMGUR_CLIENT_ID||"f0ea04148a54268";async function jD(p,h,w){let _;p.lastIndexOf(".")?_=p.slice(0,p.lastIndexOf(".")):_=p;let T=``;if(!w)return;let M;try{M=dh.readFileSync(w,{encoding:"utf-8"})}catch{M=""}M=`
|
|
104
104
|
${T}
|
|
105
105
|
|
|
106
106
|
\`${T}\`
|
|
@@ -109,11 +109,11 @@ ${new Date().toString()}
|
|
|
109
109
|
|
|
110
110
|
---
|
|
111
111
|
|
|
112
|
-
`+M,dh.writeFileSync(w,M,{encoding:"utf-8"})}async function
|
|
112
|
+
`+M,dh.writeFileSync(w,M,{encoding:"utf-8"})}async function Wz(p){let h=dh.readFileSync(p),w=new FormData;w.append("image",new Blob([h]),Hw.basename(p));let T=await(await fetch(`${Hz}image`,{method:"POST",headers:{Authorization:`Client-ID ${qz}`},body:w})).json();return T.success&&T.data.link?(await jD(p,T.data.link),T.data.link):T.data.error?.message??"Unknown imgur error"}async function Vz(p){let h=dh.readFileSync(p),w=new FormData;w.append("smfile",new Blob([h]),Hw.basename(p));try{let T=await(await fetch("https://sm.ms/api/v2/upload",{method:"POST",headers:{authority:"sm.ms","user-agent":"crossnote"},body:w})).json();if(T.code==="error")throw new Error(T.msg??"Upload failed");let M=T.data.url;return await jD(p,M),M}catch{throw new Error("Failed to connect to sm.ms host")}}function Yz(p,h,w,_,T){return new Promise((M,D)=>{if(!h)return D("Error: Qiniu AccessKey is missing");if(!w)return D("Error: Qiniu SecretKey is missing");if(!_)return D("Error: Qiniu Bucket is missing");if(!T)return D("Error: Qiniu Domain is missing");import("qiniu").then(L=>{let U=new L.auth.digest.Mac(h,w),J=new L.rs.PutPolicy({scope:_}).uploadToken(U),K=new L.conf.Config,V=Hw.basename(p),oe=new L.form_up.FormUploader(K),Y=new L.form_up.PutExtra;return oe.putFile(J,V,p,Y,(te,se,le)=>{if(te)return D(te.message);if(le.statusCode===200){let be=new L.rs.BucketManager(U,K).publicDownloadUrl(T,V);return M(be)}else return D(le.error)})}).catch(L=>D(L))})}function cA(p,{method:h="imgur",qiniu:w={AccessKey:"",SecretKey:"",Bucket:"",Domain:""}}={}){return h==="imgur"?Wz(p):h==="qiniu"?Yz(p,w.AccessKey,w.SecretKey,w.Bucket,w.Domain):Vz(p)}"structuredClone"in globalThis||(globalThis.structuredClone=Kz);UD();function Xo(p){return GD(p)}function Nd(p){if(process.platform==="win32")return p.match(/^[a-zA-Z]:\\/)&&(p="file:///"+p),p.startsWith("file:///")?fh.execFile("explorer.exe",[p]):fh.exec(`start ${p}`);process.platform==="darwin"?fh.execFile("open",[p]):fh.execFile("xdg-open",[p])}var uA=null;function Jz(){return uA===null&&(uA=!!process.env.WSL_DISTRO_NAME),uA}function Id(p,{useWSL:h=!1}={}){return h&&Jz()?`file:////wsl.localhost/${process.env.WSL_DISTRO_NAME}${p}`:`file:///${p}`}function qw(p=""){p.startsWith("---")&&(p=p.trim().replace(/^---\r?\n/,"").replace(/\r?\n---$/,""));try{return HD.parse(p)}catch(h){return{error:String(h)}}}var qD=(()=>{if(typeof __dirname<"u")return p0.resolve(__dirname,"../");if(import.meta.url){let p=Zz(import.meta.url),h=p0.dirname(p);return p0.resolve(h,"../")}else return""})();function WD(p){qD=p}function kt(){return qD}var dA=null;function VD(p){dA=p}function cn(p,h){return dA&&h?dA(p,h):(p.startsWith("file://")||(p="file:///"+p),p=p.replace(/^file:\/+/,"file:///"),p)}function Ls(p){let h=/^(?:(?:file|(vscode)-(?:webview-)?resource|vscode--resource):\/+)(.*)/m;return p.replace(h,(w,_,T)=>(_&&(T=T.replace(/^file\/+/,"")),process.platform!=="win32"&&!T.startsWith("/")?"/"+T:T))}function YD(p){let h=globalThis.eval;try{return globalThis.eval=w=>ph.runInThisContext(w),p()}finally{globalThis.eval=h}}function KD(p){let h=globalThis.Function;try{return globalThis.Function=fA,p()}finally{globalThis.Function=h}}async function XD(p){let h=globalThis.Function,w=globalThis.eval;try{return globalThis.Function=fA,globalThis.eval=_=>ph.runInThisContext(_),await p()}finally{globalThis.eval=w,globalThis.Function=h}}var h0=p=>p.attributes.cmd===!0?p.language:p.attributes.cmd;function fA(...p){let h="",w=[];if(p.length){h=p[p.length-1];for(let T=0;T<p.length-1;T++)w.push(p[T])}let _=[];for(let T=0,M=w.length;T<M;T++){let D=w[T];typeof D=="string"&&(D=D.split(/\s*,\s*/)),_.push.apply(_,D)}return ph.runInThisContext(`
|
|
113
113
|
(function(${_.join(", ")}) {
|
|
114
114
|
${h}
|
|
115
115
|
})
|
|
116
|
-
`)}fA.prototype=globalThis.Function.prototype;function Ww(){return process.env.IS_VSCODE_WEB_EXTENSION==="true"}function m0(p){if(p=p.trim().replace(/[;,]+$/,""),Ww()){let h=new
|
|
116
|
+
`)}fA.prototype=globalThis.Function.prototype;function Ww(){return process.env.IS_VSCODE_WEB_EXTENSION==="true"}function m0(p){if(p=p.trim().replace(/[;,]+$/,""),Ww()){let h=new Xz({sandBox:!0,ecmaVer:2019});return h.run(`exports.result = (${p})`),h.exports.result}else{let h={};return ph.runInNewContext(`result = (${p})`,h),h.result}}function Od(p,h={}){return p.replace(/^~(?=\/|$)/,process.env.HOME??"~").replace(/^\$HOME(?=\/|$)/,process.env.HOME??"$HOME").replace(/\${([^}]+)}/g,(_,T)=>T.startsWith("env:")?process.env[T.replace(/^env:/,"").trim()]??"":h[T]??_)}import*as Fl from"cheerio";import{execFile as mG}from"child_process";import{copy as S2}from"copy-anything";import A2 from"crypto-js";import*as Kn from"fs";import{escape as $s}from"html-escaper";import*as He from"path";import*as R2 from"yaml";import{execFile as Qz}from"child_process";import{mkdirp as e3}from"mkdirp";import*as Yw from"path";function t3(p={},h){let w=p.title||"No Title";h.push("--title",w),p.authors&&h.push("--authors",p.authors),p.cover&&h.push("--cover",p.cover),p.comment&&h.push("--comments",p.comments),p.publisher&&h.push("--publisher",p.publisher),p["book-producer"]&&h.push("--book-producer",p["book-producer"]),p.pubdate&&h.push("--pubdate",p.pubdate),p.language&&h.push("--language",p.language),p.isbn&&h.push("--isbn",p.isbn),p.tags&&h.push("--tags",p.tags),p.series&&h.push("--series",p.series),p.rating&&h.push("--rating",p.rating)}function n3(p={},h){p.asciiize&&h.push("--asciiize"),p["base-font-size"]&&h.push("--base-font-size="+p["base-font-size"]),p["disable-font-rescaling"]&&h.push("--disable-font-rescaling"),p["line-height"]&&h.push("--line-height="+p["line-height"]);let w=72,_=72,T=72,M=72;if(p.margin){let D=p.margin;D instanceof Array?D.length===1?(w=D[0],T=D[0],M=D[0],_=D[0]):D.length===2?(w=D[0],T=D[0],M=D[1],_=D[1]):D.length===4&&(w=D[0],_=D[1],T=D[2],M=D[3]):typeof D=="number"&&(w=D,T=D,M=D,_=D)}else p["margin-top"]&&(w=p["margin-top"]),p["margin-right"]&&(_=p["margin-right"]),p["margin-bottom"]&&(T=p["margin-bottom"]),p["margin-left"]&&(M=p["margin-left"]);h.push("--margin-top="+w),h.push("--margin-bottom="+T),h.push("--margin-left="+M),h.push("--margin-right="+_)}function r3(p={},h){p["no-default-epub-cover"]&&h.push("--no-default-epub-cover"),p["no-svg-cover"]&&h.push("--no-svg-cover"),p["pretty-print"]&&h.push("--pretty-print")}function a3(p={},h){p["paper-size"]&&h.push("--paper-size",p["paper-size"]),p["default-font-size"]&&h.push("--pdf-default-font-size="+p["default-font-size"]),p["header-template"]&&h.push("--pdf-header-template",p["header-template"]),p["footer-template"]&&h.push("--pdf-footer-template",p["footer-template"]),p["page-numbers"]&&h.push("--pdf-page-numbers"),p["pretty-print"]&&h.push("--pretty-print")}function ZD(p,h,w={}){return new Promise((_,T)=>{let M=[p,h,"--level1-toc","//*[@ebook-toc-level-1]/@heading","--level2-toc","//*[@ebook-toc-level-2]/@heading","--level3-toc","//*[@ebook-toc-level-3]/@heading","--no-chapters-in-toc"];t3(w,M),n3(w,M);let D=Yw.extname(h).slice(1);D==="epub"?r3(w.epub,M):D==="pdf"&&a3(w.pdf,M),(w.args||[]).forEach(U=>{M.push(U)}),e3(Yw.dirname(h)).then(()=>{Qz("ebook-convert",M,U=>U?T(U.toString()):_())}).catch(U=>{if(U)return T(U)})})}import*as $M from"fs";import{escape as PM}from"html-escaper";import{mkdirp as j3}from"mkdirp";import*as Ps from"path";import i3 from"md5";var o3=p=>i3(p).toString(),_r=o3;function s3(p,h){let w="";for(let _=0;_<h;_++)w+=p;return w}function JD(p){let h="",w=0,_=/!?\[([^\]]*)\]\(([^)]*)\)|<([^>]*)>([^<]*)<\/([^>]*)>|\[\^([^\]]*)\]/g,T;for(;T=_.exec(p);)h+=p.slice(w,T.index),w=T.index+T[0].length,T[0][0]==="<"?h+=T[4]:T[0][0]==="["&&T[0][1]==="^"?h+="":T[0][0]!=="!"?h+=T[1]:h+=T[0];return h+=p.slice(w,p.length),h}function hh(p,h){let w=new kr;if(!p)return{content:"",array:[]};let _=h.ordered,T=h.depthFrom||1,M=h.depthTo||6,D=h.tab||" ",L=h.ignoreLink||!1;if(_&&(D=" "),p=p.filter(K=>K.level>=T&&K.level<=M),!p.length)return{content:"",array:[]};let U=[],q=p[0].level;for(let K of p)K.level<q&&(q=K.level);let J=[];for(let K of p){let V=K.content.trim(),oe=K.level,Y=K.id||w.generateId(V),te=oe-q,se="1";_&&(te>=J.length?J.push(1):te===J.length-1?J[J.length-1]++:(J=J.slice(0,te+1),J.length&&J[J.length-1]++),se=J[J.length-1].toString());let le=`${s3(D,te)}${_?`${se}.`:"-"} ${L?JD(V):`[${JD(V)}](#${Y})`}`;U.push(le)}return{content:U.join(`
|
|
117
117
|
`),array:U}}function QD(p,h,w){if(!p.length)return"";let _=new kr,T=w.depthFrom||1,M=w.depthTo||6;if(p=p.filter(U=>U.level>=T&&U.level<=M),!p.length)return"";let D=p[0].level;for(let U of p)U.level<D&&(D=U.level);let L=U=>{let q="",J=0;for(;J<U.length;){let K=U[J],V=K.content.trim(),oe=h.renderInline(V),Y=K.id||_.generateId(V),te=K.level-D,se=J+1;for(;se<U.length&&U[se].level>K.level;)se++;let le=U.slice(J+1,se);le.length>0?q+=`<details open class="md-toc-details">
|
|
118
118
|
<summary class="md-toc-link-wrapper" data-level="${te}">
|
|
119
119
|
<a href="#${Y}" class="md-toc-link">${oe}</a>
|
|
@@ -124,21 +124,21 @@ ${L(le)}</details>
|
|
|
124
124
|
</div>
|
|
125
125
|
`,J=se}return q};return`<div class="md-toc">
|
|
126
126
|
${L(p)}</div>
|
|
127
|
-
`}import*as fM from"fs/promises";import{escape as dM}from"html-escaper";import*as pM from"less";import*as hM from"papaparse";import*as Pr from"path";import{snakeCase as
|
|
128
|
-
`)){let M=_.exec(T);M&&(w.has(M[1])||(w.add(M[1]),h.push({id:M[1],body:T.slice(0,M.index).trim()})))}return h}function
|
|
127
|
+
`}import*as fM from"fs/promises";import{escape as dM}from"html-escaper";import*as pM from"less";import*as hM from"papaparse";import*as Pr from"path";import{snakeCase as l3}from"case-anything";var eM=p=>{if(typeof p!="object")return{};let h=!1,w={...p};for(let _ in p)if(Object.prototype.hasOwnProperty.call(p,_)){if(_.startsWith("data-")||_.startsWith("aria-"))continue;let T=l3(_);T!==_&&(w[T]=w[_],delete w[_],h=!0)}return h?w:p};var tM=p=>p.toLowerCase()==="true"?!0:p.toLowerCase()==="false"?!1:isNaN(p)?p:parseFloat(p),nM=(p,h)=>{if(p[h]!=="(")return;let w=1,_=h+1;for(;_<p.length&&(p[_]==="("?w+=1:p[_]===")"&&(w-=1),_+=1,w!==0););return[p.substring(h,_),_,"stringWithBrackets"]},rM=(p,h)=>{let w=p[h];if(!"'\"\u201C`".includes(w))return;let _=w==="\u201C"?"\u201D":w,T=h+1,M=[];for(;T<p.length;){if(p[T]==="\\"){T+1<p.length&&M.push(p[T+1]),T+=2;continue}if(p[T]===_){T+=1;break}M.push(p[T]),T+=1}return[M.join(""),T,"stringInQuotes"]},c3=/^[^,;=\s]$/,aM=(p,h)=>{let w=h,_=0;for(;w<p.length;){let T=p[w];if(!c3.test(T)||(T==="["?_+=1:T==="]"&&(_-=1),_<0))break;w+=1}if(w!==h)return[p.substring(h,w),w,"word"]},iM=(p,h)=>{if(p[h]!=="[")return;let w=[],_=h+1;for(;_<p.length;){if(p[_]==="]"){_+=1;break}let M=iM(p,_)||nM(p,_)||rM(p,_)||aM(p,_);if(M){let[D,L,U]=M,q=U==="word"?tM(D):D;_=L,w.push(q)}else _+=1}return[w,_,"array"]},Da=p=>{let h=(p||"").trim();h[0]==="{"&&h[h.length-1]==="}"&&(h=h.slice(1,-1));let w={},_,T=0;for(;T<h.length;){let M=iM(h,T)||nM(h,T)||rM(h,T)||aM(h,T);if(M){let D=typeof _=="string",[L,U,q]=M,J=q==="word"&&D?tM(L):L;if(T=U,D)w[_]=J,_=void 0;else if(h[T]==="=")_=J;else{let K=J[0],V;switch(K){case".":V="class";break;case"#":V="id";break}if(V){let oe=J.substring(1);if(oe.length){let Y=w[V];w[V]=typeof Y>"u"?oe:`${Y} ${oe}`}}else typeof J=="string"&&(w[J]=!0)}}else T+=1}return w};var oM=p=>{let h=["["];return p.forEach((w,_)=>{w instanceof Array?h.push(oM(w)):h.push(JSON.stringify(w)),_+1!==p.length&&h.push(", ")}),h.push("]"),h.join("")},an=(p={},h=!1)=>{let w=[];for(let _ in p)if(Object.prototype.hasOwnProperty.call(p,_)){w.push(" "),w.push(`${_}=`);let T=p[_];T instanceof Array?w.push(oM(T)):w.push(JSON.stringify(T))}return w.shift(),h&&(w.unshift("{"),w.push("}")),w.join("")};function u3(p){let h=[],w=new Set,_=/\s\^([a-zA-Z0-9_-]+)\s*$/;for(let T of p.split(`
|
|
128
|
+
`)){let M=_.exec(T);M&&(w.has(M[1])||(w.add(M[1]),h.push({id:M[1],body:T.slice(0,M.index).trim()})))}return h}function d3(p){let h=[],w=new kr,_=p.split(`
|
|
129
129
|
`),T=!1,M="";for(let D of _){let L=D.match(/^\s*(`{3,}|~{3,})/);if(L){let V=L[1];T?V[0]===M&&(T=!1,M=""):(T=!0,M=V[0]);continue}if(T)continue;let U=D.match(/^(#{1,6})\s+(.+?)\s*$/);if(!U)continue;let q=U[1].length,J=U[2].replace(/\s*\{[^}]+\}\s*$/,"").trim();if(!J)continue;let K=w.generateId(J);h.push({level:q,text:J,slug:K})}return h}function mh(p,h){if(!h)return-1;let w=p.split(`
|
|
130
|
-
`),_=h.match(/\^([a-zA-Z0-9_-]+)$/);if(_){let M=_[1],D=new RegExp(`\\s\\^${M}\\s*$`);for(let L=0;L<w.length;L++)if(D.test(w[L]))return L}for(let M=0;M<w.length;M++){let D=w[M];if(!D.match(/^#{1,6}\s+/))continue;let L=D.match(/\{([^}]+)\}\s*$/);if(!L)continue;let U=L[1].match(/(?:^|\s)#([a-zA-Z][\w-]*)/);if(U&&U[1]===h)return M}let T=new kr;for(let M=0;M<w.length;M++){let D=w[M];if(D.match(/^#{1,6}\s+/)){let L=D.replace(/^#+\s+/,"").replace(/\s*\{[^}]+\}\s*$/,"").trim();if(T.generateId(L)===h)return M}}return-1}import{spawn as
|
|
131
|
-
`}}),D(Y)})})})}import{escape as Xw}from"html-escaper";var
|
|
132
|
-
`:"";return`<pre data-role="codeBlock" data-info="${Xw(_)}" data-parsed-info="${Xw(JSON.stringify(T))}" data-normalized-info="${Xw(JSON.stringify(M))}" ${"data-source-line"in T.attributes?`data-source-line="${T.attributes["data-source-line"]}"`:""}>${D}</pre>${L}`}var cM=p=>{p.renderer.rules.fence=hA};var mA=new Set(["mermaid","wavedrom","puml","plantuml","bitfield","bit-field","graphviz","viz","dot","vega","vega-lite","wsd","d2","tikz"]),gh=58;function
|
|
130
|
+
`),_=h.match(/\^([a-zA-Z0-9_-]+)$/);if(_){let M=_[1],D=new RegExp(`\\s\\^${M}\\s*$`);for(let L=0;L<w.length;L++)if(D.test(w[L]))return L}for(let M=0;M<w.length;M++){let D=w[M];if(!D.match(/^#{1,6}\s+/))continue;let L=D.match(/\{([^}]+)\}\s*$/);if(!L)continue;let U=L[1].match(/(?:^|\s)#([a-zA-Z][\w-]*)/);if(U&&U[1]===h)return M}let T=new kr;for(let M=0;M<w.length;M++){let D=w[M];if(D.match(/^#{1,6}\s+/)){let L=D.replace(/^#+\s+/,"").replace(/\s*\{[^}]+\}\s*$/,"").trim();if(T.generateId(L)===h)return M}}return-1}import{spawn as f3}from"child_process";import*as sM from"fs";import*as g0 from"path";var pA;function Kw(p,{svgDirectoryPath:h,markdownDirectoryPath:w,svgZoom:_,svgWidth:T,svgHeight:M}){return new Promise((D,L)=>{h||(pA||(pA=jw("crossnote_pdf")),h=pA);let U=_r(p)+"_",q=f3("pdf2svg",[`"${p}"`,`"${g0.resolve(h??"/tmp/crossnote_pdf",U+"%d.svg")}"`,"all"],{shell:!0}),J=[];q.stdout.on("data",V=>{J.push(V)});let K=[];q.stderr.on("data",V=>{K.push(V)}),q.on("error",V=>{K.push(Buffer.from(V.toString(),"utf-8"))}),q.on("close",()=>{if(K.length)return L(Buffer.concat(K).toString());sM.readdir(h??"",(V,oe)=>{if(V)return L(V.toString());oe=oe.sort((te,se)=>{let le=parseInt((te.match(/_(\d+)\.svg$/)??[])[1],10),ue=parseInt((se.match(/_(\d+)\.svg$/)??[])[1],10);return le-ue});let Y="";return oe.forEach(te=>{if(te.match(new RegExp(`^${U}(\\d+).svg`))){let le=g0.relative(w,g0.resolve(h??"",te));le=le.replace(/\.\.\\/g,"../").replace(/\\/g,"/"),_||T||M?Y+=`<img src="${le}" ${T?`width="${T}"`:""} ${M?`height="${M}"`:""} ${_?`style="zoom:${_};"`:""}>`:Y+=`
|
|
131
|
+
`}}),D(Y)})})})}import{escape as Xw}from"html-escaper";var p3=p=>typeof p=="string"?p.trim().toLowerCase():"",b0=p=>{let h=eM(p.attributes),w=p3(p.language);return h!==p.attributes||w!==p.language?{language:w,attributes:h}:p};var Fs=(p="")=>{let h,w,_,T=p.trim();if(T.indexOf("{")!==-1){let D=T.match(/^([^\s{]*)/);D?.[1].length&&(h=D[1]);let L=T.slice(h?.length??0).trim(),U=[],q=L;for(;q.length;){let J=q.indexOf("{");if(J===-1){let te=q.trim();te&&U.push(te);break}let K=q.slice(0,J).trim();K&&U.push(K);let V=1,oe=J+1;for(;oe<q.length&&V>0;)q[oe]==="{"?V++:q[oe]==="}"&&V--,oe++;let Y=q.slice(J+1,oe-1).trim();Y&&U.push(Y),q=q.slice(oe).trim()}w=U.join(" ")}else{let D=T.match(/^([^\s]+)\s+(.+?)$/);D?(D[1].length&&(h=D[1]),w=D[2]):(h=T,w="")}if(w)try{_=Da(w)}catch{_={}}else _={};let M=_.class?_.class.split(/\s+/):[];return h||(h=M[0]||""),M.includes(h)||(_.class=[h,...M].join(" ")),{language:h,attributes:_}};function hA(p,h){let w=p[h],_=w.info.trim(),T=Fs(_),M=b0(T),D=Xw(w.content),L=h+1<p.length&&p[h+1].type==="list_item_close"?`
|
|
132
|
+
`:"";return`<pre data-role="codeBlock" data-info="${Xw(_)}" data-parsed-info="${Xw(JSON.stringify(T))}" data-normalized-info="${Xw(JSON.stringify(M))}" ${"data-source-line"in T.attributes?`data-source-line="${T.attributes["data-source-line"]}"`:""}>${D}</pre>${L}`}var cM=p=>{p.renderer.rules.fence=hA};var mA=new Set(["mermaid","wavedrom","puml","plantuml","bitfield","bit-field","graphviz","viz","dot","vega","vega-lite","wsd","d2","tikz"]),gh=58;function h3(p,h,w,_){if(p.tShift[h]-p.blkIndent>0||p.level>0)return!1;let T=p.bMarks[h]+p.tShift[h],M=p.eMarks[h];if(T+3>=M||p.src.charCodeAt(T)!==gh||p.src.charCodeAt(T+1)!==gh||p.src.charCodeAt(T+2)!==gh)return!1;let D=T;T=p.skipChars(T,gh);let L=T-D,U=p.src.slice(T,M).trim();if(U.length===0)return!1;if(_)return!0;let q=h,J=!1;for(;q++,!(q>=w);){let oe=p.bMarks[q]+p.tShift[q],Y=p.eMarks[q];if(oe<Y&&p.sCount[q]<p.blkIndent)break;if(p.src.charCodeAt(oe)!==gh||p.sCount[q]-p.blkIndent>=4)continue;let te=oe;if(oe=p.skipChars(oe,gh),!(oe-te<L)&&!(p.src.slice(oe,Y).trim().length>0)){J=!0;break}}let K=Fs(U).language;if(mA.has(K)){let oe=p.push("colon_fence","code",0);oe.info=U,oe.content=p.getLines(h+1,q,p.blkIndent,!0),oe.markup=p.src.slice(p.bMarks[h]+p.tShift[h],p.bMarks[h]+p.tShift[h]+L),oe.map=[h,q+1],oe.block=!0}else{let oe=p.push("colon_div_open","div",1);oe.markup=p.src.slice(D,D+L),oe.block=!0,oe.info=U,oe.map=[h,h+1];let Y=m3(U);Y.dataSourceLine&&oe.attrSet("data-source-line",Y.dataSourceLine);let te=p.parentType,se=p.lineMax;p.parentType="colon_div",p.lineMax=q,p.md.block.tokenize(p,h+1,q),p.parentType=te,p.lineMax=se;let le=p.push("colon_div_close","div",-1);le.markup=p.src.slice(D,D+L),le.block=!0,le.map=[q,q+1]}return p.line=q+(J?1:0),!0}function m3(p){let h=p.match(/data-source-line=["']?(\d+)["']?/);return h?{dataSourceLine:h[1]}:{}}var uM=p=>{p.block.ruler.before("fence","colon_fence",h3,{alt:["paragraph","reference","blockquote","list"]}),p.renderer.rules.colon_fence=hA,p.renderer.rules.colon_div_open=(h,w)=>{let _=Fs(h[w].info),T=(_.attributes.class??_.language).toString().split(/\s+/).filter(Boolean),M=T.length?` class="${p.utils.escapeHtml(T.join(" "))}"`:"",D=_.attributes.id?` id="${p.utils.escapeHtml(_.attributes.id.toString())}"`:"",L=h[w].attrGet("data-source-line"),U=L?` data-source-line="${L}"`:"",q=Object.entries(_.attributes).filter(([J])=>J!=="class"&&J!=="id").map(([J,K])=>` ${p.utils.escapeHtml(J)}="${p.utils.escapeHtml(K.toString())}"`).join("");return`<div${M}${D}${U}${q}>
|
|
133
133
|
`},p.renderer.rules.colon_div_close=()=>`</div>
|
|
134
|
-
`};var gA=(D=>(D[D.pagebreak=0]="pagebreak",D[D.newpage=1]="newpage",D[D.toc=2]="toc",D[D.tocstop=3]="tocstop",D[D.slide=4]="slide",D[D[".slide"]=5]=".slide",D[D[".slide:"]=6]=".slide:",D[D.ebook=7]="ebook",D[D["toc-bracket"]=8]="toc-bracket",D))(gA||{});var bA={vhd:"vhdl",erl:"erlang",dot:"dot",gv:"dot",viz:"dot"};function
|
|
134
|
+
`};var gA=(D=>(D[D.pagebreak=0]="pagebreak",D[D.newpage=1]="newpage",D[D.toc=2]="toc",D[D.tocstop=3]="tocstop",D[D.slide=4]="slide",D[D[".slide"]=5]=".slide",D[D[".slide:"]=6]=".slide:",D[D.ebook=7]="ebook",D[D["toc-bracket"]=8]="toc-bracket",D))(gA||{});var bA={vhd:"vhdl",erl:"erlang",dot:"dot",gv:"dot",viz:"dot"};function g3(p){let h=`
|
|
135
135
|
`;return p.forEach((w,_)=>{let T=0;for(h+="|";T<w.length;)h+=w[T]+"|",T+=1;if(h+=`
|
|
136
136
|
`,_===0){for(h+="|",T=0;T<w.length;)h+="---|",T+=1;h+=`
|
|
137
|
-
`}}),h+=" ",h}function
|
|
137
|
+
`}}),h+=" ",h}function b3(p,{extraClass:h="",tag:w="p",prefix:_=""}={}){let T=_.trimEnd();return`
|
|
138
138
|
${T}
|
|
139
139
|
${_}<${w} data-source-line="${p+1}" class="${h}" style="margin:0;"></${w}>
|
|
140
140
|
${T}
|
|
141
|
-
${T}`}var yA=null;async function
|
|
141
|
+
${T}`}var yA=null;async function y3(p){if(!p.match(/^https?:\/\//))return p;yA||(yA=jw("crossnote_downloads"));let h=await fetch(p);if(!h.ok)throw new Error(`Failed to fetch ${p}: ${h.status}`);let w=await h.arrayBuffer(),_=Pr.resolve(yA??"/tmp/crossnote_downloads",_r(p))+Pr.extname(p);return await fM.writeFile(_,Buffer.from(w)),_}async function v3(p,{fileDirectoryPath:h,imageDirectoryPath:w,notebook:_},T={}){if(T[p])return T[p];if(p.endsWith(".less")){let M=await _.fs.readFile(p);return await new Promise((D,L)=>{pM.render(M,{paths:[Pr.dirname(p)]},(U,q)=>U?L(U):D(q?.css||""))})}else if(p.endsWith(".pdf")){let M=await y3(p);return await Kw(M,{markdownDirectoryPath:h,svgDirectoryPath:w})}else return p.match(/^https?:\/\//)?(p.startsWith("https://github.com/")&&(p=p.replace("https://github.com/","https://raw.githubusercontent.com/").replace("/blob/","/")),await fetch(p).then(M=>{if(!M.ok)throw new Error(`Failed to fetch ${p}: ${M.status}`);return M.text()})):await _.fs.readFile(p)}async function Dd(p,{fileDirectoryPath:h="",projectDirectoryPath:w="",filesCache:_={},useRelativeFilePath:T=!1,forPreview:M=!1,forMarkdownExport:D=!1,markdownParser:L="markdown-it",protocolsWhiteListRegExp:U=null,notSourceFile:q=!1,imageDirectoryPath:J="",headingIdGenerator:K=new kr,notebook:V,forJest:oe=!1,fileHash:Y,timestamp:te}){let se=L==="pandoc";p=p.replace(/\r\n/g,`
|
|
142
142
|
`);let le=null,ue=null,be=0,xe=0,Le=[],Me=[],ve=[],ye=!1,we="";async function Ve(Ye,me=0){let ke="";function rt(Oe){let Bt=p.indexOf(`
|
|
143
143
|
`,Oe);Bt<0&&(Bt=p.length);let xt=p.substring(Oe,Bt),Ot,_t=xt.match(/^\s*(>+)\s?/);return _t?(Ot=_t[0],xt=xt.replace(_t[0],"")):Ot="",{line:xt,blockquotePrefix:Ot,end:Bt}}let wt=()=>M&&!q;for(;Ye<p.length;){let{line:Oe,blockquotePrefix:Bt,end:xt}=rt(Ye);ke+=Bt;let Ot=!!le,_t=ue==="code",Pt=ue==="html-div",Zt=Oe.match(/^(\s*)/)?.[1]?.length??0,Tt=Oe.match(/^\s*(:{3,})(.*)/);if(Tt&&Zt===0){let Ne=Tt[1],Be=Tt[2].trim();if(!Ot&&!_t&&!Pt&&Be.length>0){let at=(Be.match(/^([^\s{]+)/)?.[1]??"").toLowerCase(),Lt=mA.has(at);if(L!=="markdown-it"&&!Lt){let et=Fs(Be),nt=(et.attributes.class??et.language).toString().split(/\s+/).filter(Boolean),Xe=nt.length?` class="${nt.join(" ")}"`:"",Ke=et.attributes.id?` id="${et.attributes.id}"`:"",Ze=Object.entries(et.attributes).filter(([lt])=>lt!=="class"&<!=="id").map(([lt,Sn])=>` ${lt}="${Sn}"`).join(""),on=wt()?` data-source-line="${me+1}"`:"";Oe=`<div${Xe}${Ke}${on}${Ze}>
|
|
144
144
|
`,ue="html-div",be=Ne.length}else{if(wt()){let et=Oe.indexOf("{"),nt=Oe.lastIndexOf("}");if(et>0&&nt>0){let Xe=Oe.substring(et+1,nt);Oe=Oe.substring(0,et)+` {${Xe} data-source-line="${me+1}"}`}else Oe=Oe.trimEnd()+` {data-source-line="${me+1}"}`}ue="code",be=Ne.length}Ye=xt+1,me=me+1,ke=ke+Oe+`
|
|
@@ -159,13 +159,13 @@ ${T}`}var yA=null;async function v3(p){if(!p.match(/^https?:\/\//))return p;yA||
|
|
|
159
159
|
`);continue}else if(sa=Oe.match(/^\s*(?:[*\-+]|\d+\.)\s+(\[[xX\s]\])\s/)){let Ne=sa[1]!=="[ ]";D||(Oe=Oe.replace(sa[1],`<input type="checkbox" class="task-list-item-checkbox" ${wt()?`data-source-line="${me+1}"`:""}${Ne?" checked":""}>`)),Ye=xt+1,me=me+1,ke=ke+Oe+`
|
|
160
160
|
`;continue}let $r=Oe.match(/^(\s*)@import(\s+)"([^"]+)";?/),Xn=Oe.match(/^(\s*)!\[([^\]]*)\]\(([^)]+)\)(?:{([^}]*)})?(\s*)$/),La=Oe.match(/^(\s*)!\[\[(.+?)\]\](?:{([^}]*)})?\s*$/);if($r||Xn||La){let Ne="";if($r)ke+=$r[1],Ne=$r[3].trim();else if(Xn)ke+=Xn[1],Ne=Xn[3].trim().replace(/\s"[^"]*"\s*$/,"");else if(La){ke+=La[1];let{link:Ke}=V.processWikilink(La[2]);Ne=Ke}try{Ne=decodeURIComponent(Ne)}catch{}let Be={},We="";if(Xn&&Xn[4])We=Xn[4];else if(La&&La[3])We=La[3];else if($r){let Ke=Oe.indexOf("{");if(Ke>0){let Ze=Oe.lastIndexOf("}");Ze>0&&(We=Oe.substring(Ke+1,Ze))}}if(We.length>0)try{Be=Da(We)}catch{}wt()&&(Be["data-source-line"]=me+1);let at;if(U&&Ne.match(U))at=Ne;else if(Ne.startsWith("/"))at=Pr.resolve(w,"."+Ne);else{let Ke=Pr.relative(w,h),Ze=Ke?Ke+"/_.md":"_.md",on=V.resolveWikilink(Ne,Ze);at=Pr.resolve(w,on)}let Lt="",et=at.lastIndexOf("#");et>0&&(Lt=at.substring(et),at=at.substring(0,et));let nt=Pr.extname(at).toLocaleLowerCase(),Xe="";if(Ne==="[TOC]"){Be.cmd="toc",Be.hide=!0,Be.run_on_save=!0,Be.modify_source=!0,q||(Be.code_chunk_offset=xe,xe++);let Ke=`\`\`\`text ${an(Be)}
|
|
161
161
|
\`\`\` `;Ye=xt+1,me=me+1,ke=ke+Ke;continue}else if(nt.match(/^\.(apng|avif|gif|jpeg|jpg|png|svg|bmp|webp|emf)/)||nt===""){if($r||La){let Ke=_[Ne];Ke||(U&&Ne.match(U)?Ke=Ne:T?(Ke=Pr.relative(h,at),D||(Ke+="?"+(te??Math.random()))):(Ke="/"+Pr.relative(w,at),D||(Ke+="?"+(te??Math.random()))),Ke=Ke.replace(/ /g,"%20").replace(/\\/g,"/"),_[Ne]=Ke),Xe=",Xe+=")";let Ze=an(Be);Ze?Xe+=`{${Ze}} `:Xe+=" "}else if(Xn){let Ke=an(Be);Xe=`![${Xn[2]??""}](${Xn[3]??""})${Ke?`{${Ke}}`:""}${Xn[5]}`}Ye=xt+1,me=me+1,ke=ke+Xe+`
|
|
162
|
-
`;continue}else try{let Ke=await
|
|
162
|
+
`;continue}else try{let Ke=await v3(at,{fileDirectoryPath:h,imageDirectoryPath:J,notebook:V},_);if(_[at]=Ke,Be.line_begin||Be.line_end){let Ze=Ke.split(/\n/);Ke=Ze.slice(parseInt(Be.line_begin,10)||0,parseInt(Be.line_end,10)||Ze.length).join(`
|
|
163
163
|
`)}if(Be.code_block){let Ze=nt.slice(1,nt.length);Xe=`\`\`\`${Be.as||bA[Ze]||Ze} ${an(Be)}
|
|
164
164
|
${Ke}
|
|
165
165
|
\`\`\` `}else if(Be.cmd){Be.id||(Be.id=_r(at)),q||(Be.code_chunk_offset=xe,xe++);let Ze=nt.slice(1,nt.length);Xe=`\`\`\`${Be.as||bA[Ze]||Ze} ${an(Be)}
|
|
166
166
|
${Ke}
|
|
167
167
|
\`\`\` `}else if(V.config.markdownFileExtensions.includes(nt)){V.config.parserConfig.onWillParseMarkdown&&(Ke=await V.config.parserConfig.onWillParseMarkdown(Ke));let{outputString:Ze,headings:on}=await Dd(Ke,{fileDirectoryPath:Pr.dirname(at),projectDirectoryPath:w,filesCache:_,useRelativeFilePath:!1,forPreview:!1,markdownParser:L,forMarkdownExport:D,protocolsWhiteListRegExp:U,notSourceFile:!0,imageDirectoryPath:J,notebook:V,headingIdGenerator:new kr,fileHash:Lt});Xe=`
|
|
168
|
-
`+Ze+" ",ve=ve.concat(on)}else if(nt===".html")Xe="<div>"+Ke+"</div> ";else if(nt===".csv"){let Ze=hM.parse(Ke.trim());Ze.errors.length?Xe=`<pre class="language-text"><code>${dM(Ze.errors[0].toString())}</code></pre> `:Xe=
|
|
168
|
+
`+Ze+" ",ve=ve.concat(on)}else if(nt===".html")Xe="<div>"+Ke+"</div> ";else if(nt===".csv"){let Ze=hM.parse(Ke.trim());Ze.errors.length?Xe=`<pre class="language-text"><code>${dM(Ze.errors[0].toString())}</code></pre> `:Xe=g3(Ze.data)}else if(nt===".css"||nt===".js"){if(M)Xe="";else{let Ze;U&&Ne.match(U)?Ze=Ne:T?Ze=Pr.relative(h,at):Ze="file:///"+at,nt===".js"?Xe=`<script type="text/javascript" src="${Ze}"></script>`:Xe=`<link rel="stylesheet" href="${Ze}">`}Me.push(Ne)}else if(nt===".less")Xe=`<style>${Ke}</style>`;else if(nt===".pdf")if(Be.page_no){let Ze=Ke.split(`
|
|
169
169
|
`),on=parseInt(Be.page_no,10)-1;on<0&&(on=0),Xe=Ze[on]||""}else if(Be&&(Be.page_begin||Be.page_end)){let Ze=Ke.split(`
|
|
170
170
|
`),on=parseInt(Be.page_begin,10)-1||0,lt=Be.page_end||Ze.length-1;on<0&&(on=0),Xe=Ze.slice(on,lt).join(`
|
|
171
171
|
`)||""}else Xe=Ke;else if(nt===".dot"||nt===".gv"||nt===".viz"||nt===".graphviz")Xe=`\`\`\`dot ${an(Be,!0)}
|
|
@@ -183,7 +183,7 @@ ${Ke}
|
|
|
183
183
|
`:ke=ke+`}){${an({...Be,error:btoa(encodeURIComponent(Xe))})}}
|
|
184
184
|
`;continue}}else if(Oe.match(/!\[\[[^\]]+\]\]/)&&!Oe.match(/^\s*!\[\[(.+?)\]\](?:{([^}]*)})?\s*$/)){Oe=Oe.replace(/!\[\[([^\]]+)\]\]/g,(Ne,Be)=>{let{text:We,link:at,blockRef:Lt}=V.processWikilink(Be);if(Pr.extname(at).toLowerCase().match(/^\.(apng|avif|gif|jpeg|jpg|png|svg|bmp|webp|emf)/))return``;let nt=at;Lt&&(nt=at.replace(new RegExp(`\\${Lt}$`),""));let Xe=Lt?` data-wikilink-embed-block-ref="${encodeURIComponent(Lt.slice(1))}"`:"";return`<wikilink-embed class="wikilink-embed" data-wikilink-embed-path="${encodeURIComponent(nt)}" data-wikilink-embed-text="${encodeURIComponent(We)}"${Xe}></wikilink-embed>`}),Ye=xt+1,me=me+1,ke=ke+Oe+`
|
|
185
185
|
`;continue}else{if(Oe=Oe.replace(/(.*?)\s+\^([a-zA-Z0-9_-]+)$/,(Ne,Be,We)=>`${Be} <span id="${We}" class="block-id"></span>`),V.config.enableTagSyntax&&L!=="markdown-it"){let Ne=[],Be=We=>{We.lastIndex=0;let at;for(;(at=We.exec(Oe))!==null;)Ne.push([at.index,at.index+at[0].length])};Be(/\{[^}]*\}/g),Be(/!?\[[^\]]*\]/g),Be(/\([^)]*\)/g),Oe=Oe.replace(/(^|[\s,.;:!?()[\]'"\\])#([a-zA-Z_][a-zA-Z0-9_/-]*)/g,(We,at,Lt,et)=>{let nt=et+at.length;for(let[Ke,Ze]of Ne)if(nt>=Ke&&nt<Ze)return We;let Xe=`tag://${encodeURIComponent(Lt)}`;return`${at}<a class="tag" data-tag="${Lt}" href="${Xe}">#${Lt}</a>`})}Ye=xt+1,me=me+1,ke=ke+Oe+`
|
|
186
|
-
`;continue}}if(wt()&&!oe&&(ke+=`${
|
|
186
|
+
`;continue}}if(wt()&&!oe&&(ke+=`${b3(me,{extraClass:"empty-line final-line end-of-document",prefix:""})}`),we){let Oe=(we.match(/\n/g)??[]).length;ke=`
|
|
187
187
|
`.repeat(Oe+1)+ke}if(Y){let Oe=Y.slice(1);try{Oe=decodeURIComponent(Oe)}catch{}if(Oe&&Oe.startsWith("^")){let Bt=mh(p,Oe);if(Bt>=0){let xt=p.split(`
|
|
188
188
|
`),Ot=ke.split(`
|
|
189
189
|
`),_t=Bt;for(;_t>0&&xt[_t-1].trim()!=="";)_t--;let Pt=Bt;for(;Pt<xt.length-1&&xt[Pt+1].trim()!=="";)Pt++;let Zt=Ot.slice(_t,Pt+1),Tt=Bt-_t;Tt>=0&&Tt<Zt.length&&(Zt[Tt]=Zt[Tt].replace(/\s\^[a-zA-Z0-9_-]+\s*$/,"")),ke=Zt.join(`
|
|
@@ -193,7 +193,7 @@ ${Ke}
|
|
|
193
193
|
`).slice(Tt-1).join(`
|
|
194
194
|
`)}else ke=`<!-- crossnote: heading "${Oe}" not found -->`,ve=[]}}return{outputString:ke,slideConfigs:Le,tocBracketEnabled:ye,JSAndCssFiles:Me,headings:ve,frontMatterString:we}}let tt;if(p.startsWith("---")&&(tt=p.indexOf(`
|
|
195
195
|
---`))>0){we=p.slice(0,tt+4);let Ye=we.length,me=(we.match(/\n/g)??[]).length,ke=p.indexOf(`
|
|
196
|
-
`,Ye);return ke>0&&(Ye=ke+1,me++),await Ve(Ye,me)}else return await Ve(0,0)}import*as FM from"cheerio";import*as Yc from"path";import{spawn as
|
|
196
|
+
`,Ye);return ke>0&&(Ye=ke+1,me++),await Ve(Ye,me)}else return await Ve(0,0)}import*as FM from"cheerio";import*as Yc from"path";import{spawn as k3}from"child_process";import*as EA from"fs/promises";import{unlink as vA}from"fs/promises";import*as wA from"path";import*as Qw from"vm";import{spawn as E3}from"child_process";import*as Jw from"fs";import*as Ml from"path";function Zw(p){let h=Ml.dirname(p),w=Ml.extname(p),_=Ml.basename(p).replace(new RegExp(w+"$"),"");Jw.readdir(h,(T,M)=>{T||M.forEach(D=>{D.startsWith(_)&&!D.match(/\.(la)?tex/)&&Jw.unlink(Ml.resolve(h,D),()=>{})})})}function mM(p,{latexEngine:h="pdflatex",svgDirectoryPath:w,markdownDirectoryPath:_,svgZoom:T,svgWidth:M,svgHeight:D}){return new Promise((L,U)=>{let q=E3(h,[`"${p}"`],{cwd:Ml.dirname(p),shell:!0}),J=[];q.stdout.on("data",V=>{J.push(V)});let K=[];q.stderr.on("data",V=>{K.push(V)}),q.on("error",V=>{K.push(Buffer.from(V.toString(),"utf-8"))}),q.on("close",()=>{if(K.length)return Zw(p),U(Buffer.concat(K).toString());{let V=Buffer.concat(J).toString();if(V.indexOf("LaTeX Error")>=0)return Zw(p),U(V);let oe=p.replace(/\.(la)?tex$/,".pdf");Kw(oe,{svgDirectoryPath:w,markdownDirectoryPath:_,svgZoom:T,svgWidth:M,svgHeight:D}).then(Y=>(Zw(p),L(Y))).catch(Y=>(Zw(p),U(Y)))}}),q.stdin.end()})}async function kA(p,h,w){let _=w.latex_engine||"pdflatex",T=w.latex_svg_dir,M=w.latex_zoom,D=w.latex_width,L=w.latex_height,U=wA.resolve(h,Math.random().toString(36).substr(2,9)+"_code_chunk.tex");await EA.writeFile(U,p);try{let q=await mM(U,{latexEngine:_,markdownDirectoryPath:h,svgDirectoryPath:T,svgZoom:M,svgWidth:D,svgHeight:L});return await vA(U),q}catch(q){throw await vA(U),q}}async function _3(p,h){let w=new Qw.Script(`((${p})())`),_=Qw.createContext(h.context||{});return w.runInContext(_)}async function gM(p,h,w,_,T="pdflatex"){let M=_.args||[];typeof M=="string"&&(M=[M]);let D=S3(w),L=wA.resolve(h,Math.random().toString(36).substr(2,9)+"_code_chunk"+D);if(p=p.replace(/\u00A0/g," "),w.match(/(la)?tex/)||w==="pdflatex"){let q={..._,latex_engine:_.latex_engine||T};return kA(p,h,q)}if(w==="node.vm")return _3(p,_);(_.matplotlib||_.mpl)&&(p=`
|
|
197
197
|
# -*- coding: utf-8 -*-
|
|
198
198
|
# modify default matplotlib pyplot show function
|
|
199
199
|
try:
|
|
@@ -217,11 +217,11 @@ try:
|
|
|
217
217
|
mpld3.display = new_mpld3_show
|
|
218
218
|
except Exception:
|
|
219
219
|
pass
|
|
220
|
-
`+p),await EA.writeFile(L,p);let U=!1;return M=M.map(q=>q==="$input_file"?(U=!0,L):q),!U&&!_.stdin&&M.push(L),await new Promise(q=>{let J=
|
|
221
|
-
`)})}startTask(){this.task=
|
|
220
|
+
`+p),await EA.writeFile(L,p);let U=!1;return M=M.map(q=>q==="$input_file"?(U=!0,L):q),!U&&!_.stdin&&M.push(L),await new Promise(q=>{let J=k3(w,M,{cwd:h});_.stdin&&J.stdin.write(p),J.stdin.end();let K=[];J.stdout.on("data",V=>{K.push(V)}),J.stderr.on("data",V=>{K.push(V)}),J.on("error",V=>{K.push(Buffer.from(V.toString(),"utf-8"))}),J.on("close",async()=>{await vA(L);let V=Buffer.concat(K).toString();q(V)})})}var x3={go:".go",javascript:".js",python:".py",typescript:".ts",node:".js","ts-node":".ts"};function S3(p){return x3[p]||`.${p}`}import{spawn as R3}from"child_process";import{existsSync as C3}from"fs";import*as wM from"path";import bM from"cross-fetch";import A3 from"plantuml-encoder";function T3(p){let h=p.headers.get("content-type")??"";return h.startsWith("image/")&&!h.includes("svg")}async function yM(p){if(T3(p)){let h=p.headers.get("content-type")??"image/png",_=Buffer.from(await p.arrayBuffer()).toString("base64");return`<img src="data:${h};base64,${_}" />`}return p.text()}var y0=class{constructor(h){this.serverURL=h}generateSVG(h){if(this.serverURL.match(/^https?:\/\/(www\.)?plantuml\.com\/plantuml/)){let w=A3.encode(h);return bM(`http://www.plantuml.com/plantuml/svg/${w}`).then(yM)}else return bM(this.serverURL,{method:"POST",body:h,headers:{"Content-Type":"text/plain; charset=utf-8"}}).then(yM)}};var v0={},vM={},EM={},_A=class{constructor(h,w){this.plantumlJarPath=h,this.fileDirectoryPath=w,this.chunks=vM[this.fileDirectoryPath]||"",this.callbacks=EM[this.fileDirectoryPath]||[],this.task=null,this.startTask()}generateSVG(h){return new Promise(w=>{this.callbacks.push(w),this.task?.stdin.write(h+`
|
|
221
|
+
`)})}startTask(){this.task=R3("java",["-Djava.awt.headless=true","-Dfile.encoding=UTF-8","-Dplantuml.include.path="+[this.fileDirectoryPath].join(wM.delimiter),"-jar",this.plantumlJarPath,"-pipe","-tsvg","-charset","UTF-8"]),this.task.stdout.on("data",h=>{let w=h.toString();if(this.chunks+=w,this.chunks.trimRight().endsWith("</svg>")&&(this.chunks.match(/<svg/g)??[]).length===(this.chunks.match(/<\/svg>/g)??[]).length){w=this.chunks,this.chunks="";let _=/<svg[^>]*>[\s\S]*?<\/svg>/g,T=w.match(_);T?.forEach(M=>{if(M.length){let D=this.callbacks.shift();D&&D(M.startsWith("<")?M:"<svg "+M)}})}}),this.task.on("error",h=>{this.callbacks.forEach(w=>w(JSON.stringify(h))),this.closeSelf()}),this.task.on("exit",()=>this.closeSelf())}closeSelf(){v0[this.fileDirectoryPath]=null,vM[this.fileDirectoryPath]=this.chunks,EM[this.fileDirectoryPath]=this.callbacks}};async function ek({content:p,fileDirectoryPath:h,serverURL:w,plantumlJarPath:_}){p=p.trim();let T=p.match(/^'\s@crossnote_file_directory_path:(.+)$/m);T&&(h=T[1]);let M=p.match(/^@start(.+?)\s+/m);if(M?p.match(new RegExp(`^\\@end${M[1]}`,"m"))||(p=`@startuml
|
|
222
222
|
@enduml`):p=`@startuml
|
|
223
223
|
${p}
|
|
224
|
-
@enduml`,!v0[h])if(w)v0[h]=new y0(w);else{if(!
|
|
224
|
+
@enduml`,!v0[h])if(w)v0[h]=new y0(w);else{if(!C3(_))throw new Error(`plantuml.jar file not found: "${_}"
|
|
225
225
|
|
|
226
226
|
Please download plantuml.jar from https://plantuml.com/download.
|
|
227
227
|
${_?`Then please put it at "${_}"`:""}
|
|
@@ -230,14 +230,14 @@ If you are using VSCode or coc.nvim, then please set the setting "markdown-previ
|
|
|
230
230
|
|
|
231
231
|
If you don't want to use plantuml.jar, then you can use the online plantuml server
|
|
232
232
|
by setting the setting "markdown-preview-enhanced.plantumlServer" to the URL of the online plantuml server, for example: https://kroki.io/plantuml/svg/
|
|
233
|
-
`);v0[h]=new _A(_,h)}return await v0[h]?.generateSVG(p)??""}import{loader as
|
|
233
|
+
`);v0[h]=new _A(_,h)}return await v0[h]?.generateSVG(p)??""}import{loader as I3}from"vega-loader";import*as _M from"yaml";async function O3(p,h){let w=`<?xml version="1.0" encoding="utf-8"?>
|
|
234
234
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
235
|
-
`;h&&h[h.length-1]!=="/"&&(h+="/");async function _(){let T=xA(),M=new T.View(T.parse(p),{loader:
|
|
235
|
+
`;h&&h[h.length-1]!=="/"&&(h+="/");async function _(){let T=xA(),M=new T.View(T.parse(p),{loader:I3({baseURL:h}),renderer:"none"}).initialize();return w+await M.toSVG()}return await XD(_)}async function bh(p="",h=""){p=p.trim();let w;return p[0]!=="{"?w=_M.parse(p):w=JSON.parse(p),O3(w,h)}var RM=DD(AM());import*as TM from"yaml";async function rk(p="",h=""){p=p.trim();let w;return p[0]!=="{"?w=TM.parse(p):w=JSON.parse(p),YD(()=>KD(()=>bh(JSON.stringify(RM.compile(w).spec),h)))}import{instance as M3}from"@viz-js/viz";var ak=null;async function ik(p,h){try{return ak||(ak=await M3()),await ak.renderString(p,{format:"svg",...h})}catch(w){throw ak=null,w}}import{execFileSync as L3}from"child_process";import*as CM from"fs";import F3 from"imagemagick-cli";async function NM(p,h,w=""){let _=await Xo({prefix:"crossnote-svg",suffix:".svg"});CM.writeFileSync(_.fd,p);let T=[_.path,h];try{w&&w.length?await L3(w,T):await F3.exec(`convert ${T.join(" ")}`)}catch(M){throw new Error(`imagemagick-cli failure
|
|
236
236
|
|
|
237
|
-
Please make sure you have ImageMagick installed.`,{cause:M})}return h}import{execFileSync as
|
|
237
|
+
Please make sure you have ImageMagick installed.`,{cause:M})}return h}import{execFileSync as $3}from"child_process";import*as IM from"fs";async function OM(p,h,w,_){let T=await Xo({prefix:"crossnote-mermaid",suffix:".mmd"});IM.writeFileSync(T.fd,p),_||(_="null");try{return $3("npx",["-p","@mermaid-js/mermaid-cli","mmdc","--theme",_,"--input",T.path,"--output",h],{shell:!0,cwd:w}),h}catch(M){throw new Error(`mermaid CLI is required to be installed.
|
|
238
238
|
Check https://github.com/mermaid-js/mermaid-cli for more information.`,{cause:M})}}async function DM(p,h){try{let w=(await import("sharp")).default;await w(Buffer.from(p.replace(/font-family="[\w|\-|,|\s]+"/g,'font-family="Arial, sans-serif"'))).png().toFile(h)}catch(w){throw new Error(`sharp conversion failure
|
|
239
239
|
|
|
240
|
-
Please make sure you have libvips installed.`,{cause:w})}return h}import{execFileSync as
|
|
240
|
+
Please make sure you have libvips installed.`,{cause:w})}return h}import{execFileSync as z3}from"child_process";import*as MM from"fs";async function LM(p,h){let w=await Xo({prefix:"crossnote-wavedrom",suffix:".js"});await MM.writeFileSync(w.fd,p);try{return(await z3("npx",["wavedrom-cli","-i",w.path],{shell:!0,cwd:h})).toString("utf-8")}catch(_){throw new Error(`wavedrom CLI is required to be installed.
|
|
241
241
|
Check http://github.com/wavedrom/cli for more information.`,{cause:_})}}async function ok(p,{fileDirectoryPath:h,projectDirectoryPath:w,imageDirectoryPath:_,imageFilePrefix:T,useRelativeFilePath:M,codeChunksData:D,graphsCache:L,addOptionsStr:U,cacheBust:q=!0,notebook:J}){let K=q===!1?"":"?"+Math.random(),V=p.split(`
|
|
242
242
|
`),oe=[],Y=0;for(;Y<V.length;){let Me=V[Y],ve=Me.trim();if(ve.match(/^```(.+)"?cmd"?[:=]/)||ve.match(/^```(puml|plantuml|dot|viz|mermaid|vega|vega-lite|wavedrom)/)){let ye=(Me.match(/^\s*/)??[]).length,we=Y+1,Ve="";for(;we<V.length;){if(V[we].trim()==="```"&&(V[we].match(/^\s*/)??[]).length===ye){let tt={},Ye="",me=ve.match(/\{(.+)\}$/);if(me)try{tt=Da(me[0]),Ye=me[1]}catch{tt={}}oe.push({start:Y,end:we,content:Ve,options:tt,optionsStr:Ye}),Y=we;break}Ve+=V[we]+`
|
|
243
243
|
`,we+=1}}else if(ve.match(/^```\S/)){let ye=Me.indexOf(" ",Me.indexOf("```"));ye>0&&(V[Y]=Me.slice(0,ye))}else ve||(V[Y]=" ");Y+=1}T||(T=Math.random().toString(36).substr(2,9)+"_"),T=T.replace(/[/&]/g,"_ss_"),T=encodeURIComponent(T);let te=0,se=[],le=[],ue=null;for(let Me in D)if(!D[Me].prev){ue=D[Me];break}function be(Me,ve,ye){let we=ve;for(;we<=ye;)Me[we]="",we+=1}async function xe(Me="",ve,ye,we,Ve,tt,Ye,me){Me||(Me=T+te+".png");let ke=Yc.resolve(_,Me);J.config.imageMagickPath?await NM(ve,ke,J.config.imageMagickPath):await DM(ve,ke);let rt;if(M?rt=Yc.relative(h,ke)+K:rt="/"+Yc.relative(w,ke)+K,rt=rt.replace(/\\/g,"/"),te++,tt){be(ye,we,Ve);let wt=Ye;wt==null&&(wt="");let Oe="";U&&(Oe=`{${me}}`),ye[Ve]+=`
|
|
@@ -272,22 +272,22 @@ ${me}
|
|
|
272
272
|
${ue.plainResult}\`\`\`
|
|
273
273
|
`);V[ye]+=`
|
|
274
274
|
`+me}ue.next?ue=D[ue.next]:ue=null}}}return await Promise.all(se),{outputString:V.filter(Me=>Me).join(`
|
|
275
|
-
`),imagePaths:le}}function
|
|
276
|
-
`}),T=T.replace(new RegExp(`(\`\`\`(?:[\\s\\S]+?)\`\`\`\\s*(?:\\n|$))|(?:${L}([\\s\\S]+?)${U})`,"g"),(K,V,oe)=>{if(V)return V;let Y=oe;return Y=Y.replace(/\n/g,"").replace(/#slash_dollarsign#/g,"\\$"),Y=PM(Y),`<img src="${_}?${Y.trim().replace(/ /g,"%20")}"/>`}),T=T.replace(/#slash_dollarsign#/g,"\\$"),T}function
|
|
275
|
+
`),imagePaths:le}}function H3(p,{mathInlineDelimiters:h,mathBlockDelimiters:w,mathRenderingOnlineService:_}){let T=p.replace(/\\\$/g,"#slash_dollarsign#"),M=h,D=w,L="(?:"+M.map(K=>K[0]).join("|").replace(/\\/g,"\\\\").replace(/([()[\]$])/g,"\\$1")+")",U="(?:"+M.map(K=>K[1]).join("|").replace(/\\/g,"\\\\").replace(/([()[\]$])/g,"\\$1")+")",q="(?:"+D.map(K=>K[0]).join("|").replace(/\\/g,"\\\\").replace(/([()[\]$])/g,"\\$1")+")",J="(?:"+D.map(K=>K[1]).join("|").replace(/\\/g,"\\\\").replace(/([()[\]$])/g,"\\$1")+")";return T=T.replace(new RegExp(`(\`\`\`(?:[\\s\\S]+?)\`\`\`\\s*(?:\\n|$))|(?:${q}([\\s\\S]+?)${J})`,"g"),(K,V,oe)=>{if(V)return V;let Y=oe;return Y=Y.replace(/\n/g,"").replace(/#slash_dollarsign#/g,"\\$"),Y=PM(Y),`<p align="center"><img src="${_}?${Y.trim().replace(/ /g,"%20")}"/></p>
|
|
276
|
+
`}),T=T.replace(new RegExp(`(\`\`\`(?:[\\s\\S]+?)\`\`\`\\s*(?:\\n|$))|(?:${L}([\\s\\S]+?)${U})`,"g"),(K,V,oe)=>{if(V)return V;let Y=oe;return Y=Y.replace(/\n/g,"").replace(/#slash_dollarsign#/g,"\\$"),Y=PM(Y),`<img src="${_}?${Y.trim().replace(/ /g,"%20")}"/>`}),T=T.replace(/#slash_dollarsign#/g,"\\$"),T}function q3(p,h,w,_,T){function M(U){return U.match(T)||(_?U.startsWith("/")&&(U=Ps.relative(h,Ps.resolve(w,"."+U))):U.startsWith("/")||(U="/"+Ps.relative(w,Ps.resolve(h,U)))),U.replace(/\\/g,"/")}let D=!1,L=p.split(`
|
|
277
277
|
`);return L=L.map(U=>{if(U.match(/^\s*```/))return D=!D,U;if(D)return U;{let q=/(!?\[.*?]\()([^)|^'|^"]*)(.*?\))/gi;return U=U.replace(q,(J,K,V,oe)=>V[0]==="<"?(V=V.slice(1,V.length-1),K+"<"+M(V.trim())+"> "+oe):K+M(V.trim())+" "+oe),q=/(<[img|a|iframe].*?[src|href]=['"])(.+?)(['"].*?>)/gi,U=U.replace(q,(J,K,V,oe)=>K+M(V)+oe),U}}),L.join(`
|
|
278
278
|
`)}async function BM(p,{projectDirectoryPath:h,fileDirectoryPath:w,protocolsWhiteListRegExp:_,filesCache:T,codeChunksData:M,graphsCache:D,notebook:L},U){if(!U.path)throw new Error("{path} has to be specified");if(!U.image_dir)throw new Error("{image_dir} has to be specified");let q,J=U.path,K=U.image_dir;J[0]==="/"?q=Ps.resolve(h,"."+J):q=Ps.resolve(w,J);for(let se in T)se.endsWith(".pdf")&&delete T[se];let V;K[0]==="/"?V=Ps.resolve(h,"."+K):V=Ps.resolve(w,K);let oe=!U.absolute_image_path;L.config.parserConfig.onWillParseMarkdown&&(p=await L.config.parserConfig.onWillParseMarkdown(p));let Y=await Dd(p,{fileDirectoryPath:w,projectDirectoryPath:h,useRelativeFilePath:oe,filesCache:T,forPreview:!1,markdownParser:"pandoc",forMarkdownExport:!0,protocolsWhiteListRegExp:_,imageDirectoryPath:V,notebook:L});if(p=Y.outputString,Y.tocBracketEnabled){let se=Y.headings,{content:le}=hh(se,{ordered:!1,depthFrom:1,depthTo:6,tab:" "});p=p.replace(/^\s*(?:<p[^>]*>)?<span>\[CROSSNOTETOC\]<\/span>(?:<\/p>)?\s*/gm,`
|
|
279
279
|
|
|
280
280
|
`+le+`
|
|
281
281
|
|
|
282
|
-
`)}return p=
|
|
282
|
+
`)}return p=q3(p,w,h,oe,_),p=L.config.mathRenderingOption!=="None"?H3(p,{mathInlineDelimiters:L.config.mathInlineDelimiters,mathBlockDelimiters:L.config.mathBlockDelimiters,mathRenderingOnlineService:L.config.mathRenderingOnlineService}):p,await new Promise((se,le)=>{j3(V).then(()=>{ok(p,{fileDirectoryPath:w,projectDirectoryPath:h,imageDirectoryPath:V,imageFilePrefix:_r(q),useRelativeFilePath:oe,codeChunksData:M,graphsCache:D,addOptionsStr:!1,cacheBust:!1,notebook:L}).then(({outputString:ue})=>{ue=Y.frontMatterString+ue,$M.writeFile(q,ue,{encoding:"utf-8"},be=>be?le(be.toString()):se(q))})}).catch(ue=>{if(ue)return le(ue.toString())})})}import{execFile as W3}from"child_process";import*as zM from"fs";import*as SA from"mkdirp";import*as Ma from"path";import*as GM from"yaml";function UM(p){return p==="pdf_document"||p==="beamer_presentation"?"pdf":p==="word_document"?"docx":p==="rtf_document"?"rtf":p==="custom_document"?"*":null}function V3(p,h,w="pdflatex"){if(p.toc&&h.push("--toc"),p.toc_depth&&h.push("--toc-depth="+p.toc_depth),p.highlight&&(p.highlight==="default"&&(p.highlight="pygments"),h.push("--highlight-style="+p.highlight)),p.reference_docx&&h.push("--reference-docx="+p.reference_docx),p.reference_doc&&h.push("--reference-doc="+p.reference_doc),p.highlight===null&&h.push("--no-highlight"),p.citation_package&&(p.citation_package==="natbib"?h.push("--natbib"):p.citation_package==="biblatex"&&h.push("--biblatex")),p.number_sections&&h.push("--number-sections"),p.incremental&&h.push("--incremental"),p.slide_level&&h.push("--slide-level="+p.slide_level),p.theme&&h.push("-V","theme:"+p.theme),p.colortheme&&h.push("-V","colortheme:"+p.colortheme),p.fonttheme&&h.push("-V","fonttheme:"+p.fonttheme),p.latex_engine?h.push("--pdf-engine="+p.latex_engine):p.pdf_engine?h.push("--pdf-engine="+p.pdf_engine):h.push("--pdf-engine="+w),p.includes&&typeof p.includes=="object"){let _=p.includes,T=(M,D)=>{typeof D=="string"?h.push(M+D):D.constructor===Array?D.forEach(L=>h.push(M+L)):h.push(M+D)};_.in_header&&T("--include-in-header=",_.in_header),_.before_body&&T("--include-before-body=",_.before_body),_.after_body&&T("--include-after-body=",_.after_body)}p.template&&h.push("--template="+p.template),p.pandoc_args&&p.pandoc_args.forEach(_=>h.push(_))}function Y3(p,h){let w=Ma.resolve(p,"_output.yaml"),_;try{_=zM.readFileSync(w,{encoding:"utf-8"})}catch{return Object.assign({},h)}let T={};if(_&&(T=qw(_)),h.output)if(typeof h.output=="string"&&T[h.output]){let M=h.output;h.output={},h.output[M]=T[M]}else{let M=Object.keys(h.output)[0];T[M]&&(h.output[M]=Object.assign({},T[M],h.output[M]))}return Object.assign({},T,h)}function K3(p,h,w){function _(D){return D.startsWith("/")?Ma.relative(h,Ma.resolve(w,"."+D)):D}let T=!1,M=p.split(`
|
|
283
283
|
`);return M=M.map(D=>{if(D.match(/^\s*```/))return T=!T,D;if(T)return D;{let L=/(!?\[.*?]\()([^)|^'|^"]*)(.*?\))/gi;return D=D.replace(L,(U,q,J,K)=>J[0]==="<"?(J=J.slice(1,J.length-1),q+"<"+_(J.trim())+"> "+K):q+_(J.trim())+" "+K),L=/(<[img|a|iframe].*?[src|href]=['"])(.+?)(['"].*?>)/gi,D=D.replace(L,(U,q,J,K)=>q+_(J)+K),D}}),M.join(`
|
|
284
|
-
`)}async function jM(p,{fileDirectoryPath:h,projectDirectoryPath:w,sourceFilePath:_,filesCache:T,protocolsWhiteListRegExp:M,codeChunksData:D,graphsCache:L,notebook:U},q={}){q=
|
|
284
|
+
`)}async function jM(p,{fileDirectoryPath:h,projectDirectoryPath:w,sourceFilePath:_,filesCache:T,protocolsWhiteListRegExp:M,codeChunksData:D,graphsCache:L,notebook:U},q={}){q=Y3(h,q);let J=["-f",U.config.pandocMarkdownFlavor.replace(/-raw_tex/,"")],K,V=null,oe;if(q.output)typeof q.output=="string"?(oe=q.output,K=UM(oe)):(oe=Object.keys(q.output)[0],K=UM(oe),V=q.output[oe]);else throw new Error("Output format needs to be specified.");if(K===null)throw new Error("Invalid document type.");if(oe==="custom_document"&&(!V||!V.path))throw new Error("custom_document requires path to be defined.");oe==="beamer_presentation"&&J.push("-t","beamer");let Y;if(V&&V.path){if(Y=V.path,Y.startsWith("/")?Y=Ma.resolve(w,"."+Y):Y=Ma.resolve(h,Y),oe!=="custom_document"&&Ma.extname(Y)!=="."+K)throw new Error("Invalid extension for "+oe+". Extension ."+K+" is required, but "+Ma.extname(Y)+" was provided.");J.push("-o",Y)}else Y=_,Y=Y.slice(0,Y.length-Ma.extname(Y).length)+"."+K,J.push("-o",Y);V3(V||{},J,U.config.latexEngine),U.config.parserConfig.onWillParseMarkdown&&(p=await U.config.parserConfig.onWillParseMarkdown(p));let te=await Dd(p,{fileDirectoryPath:h,projectDirectoryPath:w,useRelativeFilePath:!0,filesCache:T,protocolsWhiteListRegExp:M,forPreview:!1,markdownParser:"pandoc",notebook:U});if(p=te.outputString,p=`---
|
|
285
285
|
`+GM.stringify(q)+`---
|
|
286
286
|
`+p,te.tocBracketEnabled){let xe=te.headings,{content:Le}=hh(xe,{ordered:!1,depthFrom:1,depthTo:6,tab:" "});p=p.replace(/^\s*(?:<p[^>]*>)?<span>\[CROSSNOTETOC\]<\/span>(?:<\/p>)?\s*/gm,`
|
|
287
287
|
|
|
288
288
|
`+Le+`
|
|
289
289
|
|
|
290
|
-
`)}p=
|
|
290
|
+
`)}p=K3(p,h,w),J.find(xe=>xe.includes("pandoc-citeproc")||xe.includes("--defaults"))===void 0&&(q.bibliography||q.references)&&J.push("--citeproc");let ue=U.config.imageFolderPath;ue[0]==="/"?ue=Ma.resolve(w,"."+ue):ue=Ma.resolve(h,ue),await SA.sync(ue);let{outputString:be}=await ok(p,{fileDirectoryPath:h,projectDirectoryPath:w,imageDirectoryPath:ue,imageFilePrefix:_r(Y),useRelativeFilePath:!0,codeChunksData:D,graphsCache:L,addOptionsStr:!0,notebook:U});return await SA.sync(Ma.dirname(Y)),await new Promise((xe,Le)=>{W3(U.config.pandocPath,J,{cwd:h},ve=>ve?Le(ve.toString()):xe(Y)).stdin?.end(be)})}import{execFile as X3}from"child_process";function HM(p,h){return new Promise((w,_)=>{X3("prince",[p,"--javascript","-o",h],T=>{if(T){let M=T.toString();return T.message.indexOf("spawn prince ENOENT")>=0&&(M='"princexml" is required to be installed.'),_(M)}return w()})})}import{Mutex as s2}from"async-mutex";import*as l2 from"case-anything";import y4 from"ignore";import{execFileSync as v4}from"child_process";import E4 from"markdown-it";import w4 from"markdown-it-abbr";import k4 from"markdown-it-deflist";import _4 from"markdown-it-footnote";import x4 from"markdown-it-mark";import S4 from"markdown-it-sub";import A4 from"markdown-it-sup";import*as Rt from"path";import{URI as T4,Utils as R4}from"vscode-uri";import{escape as Z3}from"html-escaper";import J3 from"katex";import"katex/contrib/mhchem";var Kc=({content:p,openTag:h,closeTag:w,displayMode:_=!1,renderingOption:T,katexConfig:M})=>{if(!p)return"";if(T==="KaTeX")try{return J3.renderToString(p,Object.assign({},structuredClone(M),{displayMode:_}))}catch(D){return`<span style="color: #ee7f49; font-weight: 500;">${String(D)}</span>`}else if(T==="MathJax"){let D=(h+p+w).replace(/\n/g," "),L=_?"div":"span";return`<${L} class="mathjax-exps">${Z3(D)}</${L}>`}else return""};var qM=p=>{let _=["note","summary","abstract","tldr","info","todo","tip","hint","success","check","done","question","help","faq","warning","attention","caution","failure","fail","missing","danger","error","bug","example","snippet","quote","cite"];function T(){p.block.ruler.after("fence","admonition",D,{alt:[]}),p.renderer.rules.admonition_open=M,p.renderer.rules.admonition_title_open=M,p.renderer.rules.admonition_title_close=M,p.renderer.rules.admonition_close=M}function M(L,U,q,J,K){let V=L[U];return V.type==="admonition_open"?L[U].attrPush(["class","admonition "+V.info]):V.type==="admonition_title_open"&&L[U].attrPush(["class","admonition-title"]),K.renderToken(L,U,q)}function D(L,U,q,J){if(L.tShift[U]-L.blkIndent>=4)return!1;let K=L.bMarks[U]+L.tShift[U],V=L.eMarks[U],oe=L.src.charCodeAt(K);if(oe!==33)return!1;let Y=K;if(K=L.skipChars(K,oe),K-Y<3)return!1;let se=L.src.slice(Y,K),le,ue,be=L.src.slice(K,V).trim().split(" ");if(le=(be.shift()??"").toLowerCase(),ue=be.join(" "),_.indexOf(le)<0&&(le="note"),ue||(ue=le.substr(0,1).toUpperCase()+le.substr(1,le.length-1)),J)return!0;let xe=L.parentType,Le=L.lineMax,Me=L.blkIndent;L.blkIndent+=4;let ve=U;for(;ve++,!(ve>=q||(K=L.bMarks[ve]+L.tShift[ve],V=L.eMarks[ve],K<V&&L.sCount[ve]<L.blkIndent)););L.parentType="admonition",L.lineMax=ve;let ye=L.push("admonition_open","div",1);return ye.markup=se,ye.block=!0,ye.info=le,ye.map=[U,U+1],ue!=='""'&&(ye=L.push("admonition_title_open","p",1),ye.markup=se+" "+le,ye.map=[U,U+1],ye=L.push("inline","",0),ye.content=ue,ye.map=[U,U+1],ye.children=[],ye=L.push("admonition_title_close","p",-1),ye.markup=se+" "+le),L.md.block.tokenize(L,U+1,ve),ye=L.push("admonition_close","div",-1),ye.markup=se,ye.map=[U,ve],ye.block=!0,L.parentType=xe,L.lineMax=Le,L.line=ve,L.blkIndent=Me,!0}T()};var WM=p=>{let h=new Set(["note","summary","abstract","tldr","info","todo","hint","tip","important","check","done","success","help","question","faq","attention","caution","warning","fail","failure","missing","danger","error","bug","example","cite","quote"]),w={note:"Note",summary:"Summary",abstract:"Abstract",tldr:"TL;DR",info:"Info",todo:"Todo",hint:"Hint",tip:"Tip",important:"Important",check:"Check",done:"Done",success:"Success",help:"Help",question:"Question",faq:"FAQ",attention:"Attention",caution:"Caution",warning:"Warning",fail:"Fail",failure:"Failure",missing:"Missing",danger:"Danger",error:"Error",bug:"Bug",example:"Example",cite:"Cite",quote:"Quote"},_=p.renderer.rules.blockquote_open||(()=>`<blockquote>
|
|
291
291
|
`),T=p.renderer.rules.blockquote_close||(()=>`</blockquote>
|
|
292
292
|
`),M=(D,L,U)=>{let J=D[L].level;for(let K=L+1;K<D.length;K+=1){let V=D[K];if(V.type==="blockquote_close"&&V.level===J){V.meta={...V.meta||{},callout:!0,calloutTag:U};return}}};p.renderer.rules.blockquote_open=(D,L,U,q,J)=>{let K=D[L],V=!1,oe="info",Y="",te=null,se=D[L+1];if(se&&se.type==="paragraph_open"){let le=D[L+2];if(le&&le.type==="inline"){let be=le.content.match(/^\[!(\w+)\]([+-])?(?:[ \t]+([^\r\n]+))?(?:\r?\n|$)/);if(be&&h.has(be[1].toLowerCase())){V=!0,oe=be[1].toLowerCase(),te=be[2]==="+"?"open":be[2]==="-"?"closed":null,Y=be[3]||"",le.children=le.children?.filter((Me,ve)=>ve>1)||null;let xe=le.children;if(!xe||xe.length===0||xe.every(Me=>Me.type==="softbreak"||Me.type==="hardbreak")){let Me=D[L+1],ve=D[L+3];Me&&(Me.hidden=!0),le.hidden=!0,ve&&(ve.hidden=!0)}}}}else V=!1;if(V){let le=te?"details":"div";K.meta={callout:!0,type:oe,title:Y,calloutTag:le},M(D,L,le);let ue=Y||w[oe];if(te){let Le=`<details class="callout" data-callout="${oe}"${te==="open"?" open":""}>
|
|
293
293
|
`;return Le+=`<summary class="callout-title">${p.utils.escapeHtml(ue)}</summary>
|
|
@@ -295,7 +295,7 @@ ${ue.plainResult}\`\`\`
|
|
|
295
295
|
`;return ue&&(be+=`<div class="callout-title">${p.utils.escapeHtml(ue)}</div>
|
|
296
296
|
`),be}else return _(D,L,U,q,J)},p.renderer.rules.blockquote_close=(D,L,U,q,J)=>D[L].meta?.callout?D[L].meta?.calloutTag==="details"?`</details>
|
|
297
297
|
`:`</div>
|
|
298
|
-
`:T(D,L,U,q,J)};var VM=(p,h)=>{p.inline.ruler.before("strikethrough","critic-markup",(w,_)=>{if(!h.config.enableCriticMarkupSyntax)return!1;let{src:M,pos:D}=w;if(M[D]==="{"&&(M[D+1]==="-"&&M[D+2]==="-"||M[D+1]==="+"&&M[D+2]==="+"||M[D+1]==="~"&&M[D+2]==="~"||M[D+1]==="="&&M[D+2]==="="||M[D+1]===">"&&M[D+2]===">")){let L=M.slice(D+1,D+3),U=L[0]===">"?"<<}":`${L}}`,q=D+3,J=-1,K;for(;q<M.length;){if(M.startsWith(U,q)){J=q;break}q+=1}if(J>=0)K=M.slice(D+3,J);else return!1;if(K&&!_){let V=w.push("critic-markup","",0);return V.content=K,V.tag=L,w.pos=J+U.length,!0}else return!1}else return!1}),p.renderer.rules["critic-markup"]=(w,_)=>{let T=w[_],M=T.tag,D=T.content;if(M==="--")return`<del>${D}</del>`;if(M==="++")return`<ins>${D}</ins>`;if(M==="==")return`<mark>${D}</mark>`;if(M===">>")return`<span style="display:none">${D}</span>`;{let L=D.split("~>");return L.length===2?`<del>${L[0]}</del><ins>${L[1]}</ins>`:"<code>Error: ~> not found.</code>"}}};var YM=p=>{p.core.ruler.push("curly_bracket_attributes",w=>{let _=w.tokens;for(let T=0;T<_.length;T++)if(_[T].type==="heading_open"){let M=_[T+1];if(M.type==="inline"){if(h(M),!M.children||M.children.length===0)continue;let D=M.children[M.children.length-1];if(D.type==="text"){let L=D.content.match(/{([^}]+)}\s*$/);if(L){let U=Da(L[1]);D.content=D.content.replace(L[0],"");for(let q in U)_[T].attrJoin(q,U[q])}}}}else _[T].type==="inline"&&h(_[T])});function h(w){let _=w.children;if(!(!_||_.length===0))for(let T=0;T<_.length;T++){let M=_[T];if(M.type==="image"&&_[T+1]?.type==="text"){let D=_[T+1].content.match(/^{([^}]+)}/);if(D){let L=Da(D[1]);_[T+1].content=_[T+1].content.replace(D[0],"");for(let U in L)M.attrJoin(U,L[U])}}else if(M.type==="link_open"){let D=T+1;for(;D<_.length&&_[D].type!=="link_close";)D++;if(T=D,D<_.length-1&&_[D+1].type==="text"){let L=_[D+1].content.match(/^{([^}]+)}/);if(L){let U=Da(L[1]);_[D+1].content=_[D+1].content.replace(L[0],"");for(let q in U)M.attrJoin(q,U[q])}}}}}};import n4 from"markdown-it-emoji";import r4 from"markdown-it-emoji/lib/data/full.json"with{type:"json"};var e4=["fa-accessible-icon","fa-american-sign-language-interpreting","fa-assistive-listening-systems","fa-audio-description","fa-blind","fa-braille","fa-closed-captioning","fa-deaf","fa-low-vision","fa-phone-volume","fa-question-circle","fa-sign-language","fa-tty","fa-universal-access","fa-wheelchair","fa-bell","fa-bell-slash","fa-exclamation","fa-exclamation-circle","fa-exclamation-triangle","fa-radiation","fa-radiation-alt","fa-skull-crossbones","fa-cat","fa-crow","fa-dog","fa-dove","fa-dragon","fa-feather","fa-feather-alt","fa-fish","fa-frog","fa-hippo","fa-horse","fa-horse-head","fa-kiwi-bird","fa-otter","fa-paw","fa-spider","fa-angle-double-down","fa-angle-double-left","fa-angle-double-right","fa-angle-double-up","fa-angle-down","fa-angle-left","fa-angle-right","fa-angle-up","fa-arrow-alt-circle-down","fa-arrow-alt-circle-left","fa-arrow-alt-circle-right","fa-arrow-alt-circle-up","fa-arrow-circle-down","fa-arrow-circle-left","fa-arrow-circle-right","fa-arrow-circle-up","fa-arrow-down","fa-arrow-left","fa-arrow-right","fa-arrow-up","fa-arrows-alt","fa-arrows-alt-h","fa-arrows-alt-v","fa-caret-down","fa-caret-left","fa-caret-right","fa-caret-square-down","fa-caret-square-left","fa-caret-square-right","fa-caret-square-up","fa-caret-up","fa-cart-arrow-down","fa-chart-line","fa-chevron-circle-down","fa-chevron-circle-left","fa-chevron-circle-right","fa-chevron-circle-up","fa-chevron-down","fa-chevron-left","fa-chevron-right","fa-chevron-up","fa-cloud-download-alt","fa-cloud-upload-alt","fa-compress-alt","fa-compress-arrows-alt","fa-download","fa-exchange-alt","fa-expand-alt","fa-expand-arrows-alt","fa-external-link-alt","fa-external-link-square-alt","fa-hand-point-down","fa-hand-point-left","fa-hand-point-right","fa-hand-point-up","fa-hand-pointer","fa-history","fa-level-down-alt","fa-level-up-alt","fa-location-arrow","fa-long-arrow-alt-down","fa-long-arrow-alt-left","fa-long-arrow-alt-right","fa-long-arrow-alt-up","fa-mouse-pointer","fa-play","fa-random","fa-recycle","fa-redo","fa-redo-alt","fa-reply","fa-reply-all","fa-retweet","fa-share","fa-share-square","fa-sign-in-alt","fa-sign-out-alt","fa-sort","fa-sort-alpha-down","fa-sort-alpha-down-alt","fa-sort-alpha-up","fa-sort-alpha-up-alt","fa-sort-amount-down","fa-sort-amount-down-alt","fa-sort-amount-up","fa-sort-amount-up-alt","fa-sort-down","fa-sort-numeric-down","fa-sort-numeric-down-alt","fa-sort-numeric-up","fa-sort-numeric-up-alt","fa-sort-up","fa-sync","fa-sync-alt","fa-text-height","fa-text-width","fa-undo","fa-undo-alt","fa-upload","fa-audio-description","fa-backward","fa-broadcast-tower","fa-circle","fa-closed-captioning","fa-compress","fa-compress-alt","fa-compress-arrows-alt","fa-eject","fa-expand","fa-expand-alt","fa-expand-arrows-alt","fa-fast-backward","fa-fast-forward","fa-file-audio","fa-file-video","fa-film","fa-forward","fa-headphones","fa-microphone","fa-microphone-alt","fa-microphone-alt-slash","fa-microphone-slash","fa-music","fa-pause","fa-pause-circle","fa-phone-volume","fa-photo-video","fa-play","fa-play-circle","fa-podcast","fa-random","fa-redo","fa-redo-alt","fa-rss","fa-rss-square","fa-step-backward","fa-step-forward","fa-stop","fa-stop-circle","fa-sync","fa-sync-alt","fa-tv","fa-undo","fa-undo-alt","fa-video","fa-volume-down","fa-volume-mute","fa-volume-off","fa-volume-up","fa-youtube","fa-air-freshener","fa-ambulance","fa-bus","fa-bus-alt","fa-car","fa-car-alt","fa-car-battery","fa-car-crash","fa-car-side","fa-caravan","fa-charging-station","fa-gas-pump","fa-motorcycle","fa-oil-can","fa-shuttle-van","fa-tachometer-alt","fa-taxi","fa-trailer","fa-truck","fa-truck-monster","fa-truck-pickup","fa-apple-alt","fa-campground","fa-cloud-sun","fa-drumstick-bite","fa-football-ball","fa-hiking","fa-mountain","fa-tractor","fa-tree","fa-wind","fa-wine-bottle","fa-beer","fa-blender","fa-cocktail","fa-coffee","fa-flask","fa-glass-cheers","fa-glass-martini","fa-glass-martini-alt","fa-glass-whiskey","fa-mug-hot","fa-wine-bottle","fa-wine-glass","fa-wine-glass-alt","fa-archway","fa-building","fa-campground","fa-church","fa-city","fa-clinic-medical","fa-dungeon","fa-gopuram","fa-home","fa-hospital","fa-hospital-alt","fa-hospital-user","fa-hotel","fa-house-damage","fa-igloo","fa-industry","fa-kaaba","fa-landmark","fa-monument","fa-mosque","fa-place-of-worship","fa-school","fa-store","fa-store-alt","fa-synagogue","fa-torii-gate","fa-university","fa-vihara","fa-warehouse","fa-address-book","fa-address-card","fa-archive","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-birthday-cake","fa-book","fa-briefcase","fa-building","fa-bullhorn","fa-bullseye","fa-business-time","fa-calculator","fa-calendar","fa-calendar-alt","fa-certificate","fa-chart-area","fa-chart-bar","fa-chart-line","fa-chart-pie","fa-city","fa-clipboard","fa-coffee","fa-columns","fa-compass","fa-copy","fa-copyright","fa-cut","fa-edit","fa-envelope","fa-envelope-open","fa-envelope-square","fa-eraser","fa-fax","fa-file","fa-file-alt","fa-folder","fa-folder-minus","fa-folder-open","fa-folder-plus","fa-glasses","fa-globe","fa-highlighter","fa-industry","fa-landmark","fa-laptop-house","fa-marker","fa-paperclip","fa-paste","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pen-nib","fa-pen-square","fa-pencil-alt","fa-percent","fa-phone","fa-phone-alt","fa-phone-slash","fa-phone-square","fa-phone-square-alt","fa-phone-volume","fa-print","fa-project-diagram","fa-registered","fa-save","fa-sitemap","fa-socks","fa-sticky-note","fa-stream","fa-table","fa-tag","fa-tags","fa-tasks","fa-thumbtack","fa-trademark","fa-wallet","fa-binoculars","fa-campground","fa-caravan","fa-compass","fa-faucet","fa-fire","fa-fire-alt","fa-first-aid","fa-frog","fa-hiking","fa-map","fa-map-marked","fa-map-marked-alt","fa-map-signs","fa-mountain","fa-route","fa-toilet-paper","fa-trailer","fa-tree","fa-dollar-sign","fa-donate","fa-dove","fa-gift","fa-globe","fa-hand-holding-heart","fa-hand-holding-usd","fa-hand-holding-water","fa-hands-helping","fa-handshake","fa-heart","fa-leaf","fa-parachute-box","fa-piggy-bank","fa-ribbon","fa-seedling","fa-comment","fa-comment-alt","fa-comment-dots","fa-comment-medical","fa-comment-slash","fa-comments","fa-frown","fa-icons","fa-meh","fa-phone","fa-phone-alt","fa-phone-slash","fa-poo","fa-quote-left","fa-quote-right","fa-smile","fa-sms","fa-video","fa-video-slash","fa-chess","fa-chess-bishop","fa-chess-board","fa-chess-king","fa-chess-knight","fa-chess-pawn","fa-chess-queen","fa-chess-rook","fa-square-full","fa-apple-alt","fa-baby","fa-baby-carriage","fa-bath","fa-biking","fa-birthday-cake","fa-cookie","fa-cookie-bite","fa-gamepad","fa-ice-cream","fa-mitten","fa-robot","fa-school","fa-shapes","fa-snowman","fa-graduation-cap","fa-hat-cowboy","fa-hat-cowboy-side","fa-hat-wizard","fa-mitten","fa-shoe-prints","fa-socks","fa-tshirt","fa-user-tie","fa-archive","fa-barcode","fa-bath","fa-bug","fa-code","fa-code-branch","fa-coffee","fa-file","fa-file-alt","fa-file-code","fa-filter","fa-fire-extinguisher","fa-folder","fa-folder-open","fa-keyboard","fa-laptop-code","fa-microchip","fa-project-diagram","fa-qrcode","fa-shield-alt","fa-sitemap","fa-stream","fa-terminal","fa-user-secret","fa-window-close","fa-window-maximize","fa-window-minimize","fa-window-restore","fa-address-book","fa-address-card","fa-american-sign-language-interpreting","fa-assistive-listening-systems","fa-at","fa-bell","fa-bell-slash","fa-bluetooth","fa-bluetooth-b","fa-broadcast-tower","fa-bullhorn","fa-chalkboard","fa-comment","fa-comment-alt","fa-comments","fa-envelope","fa-envelope-open","fa-envelope-square","fa-fax","fa-inbox","fa-language","fa-microphone","fa-microphone-alt","fa-microphone-alt-slash","fa-microphone-slash","fa-mobile","fa-mobile-alt","fa-paper-plane","fa-phone","fa-phone-alt","fa-phone-slash","fa-phone-square","fa-phone-square-alt","fa-phone-volume","fa-rss","fa-rss-square","fa-tty","fa-voicemail","fa-wifi","fa-compact-disc","fa-database","fa-desktop","fa-download","fa-ethernet","fa-hdd","fa-headphones","fa-keyboard","fa-laptop","fa-laptop-house","fa-memory","fa-microchip","fa-mobile","fa-mobile-alt","fa-mouse","fa-plug","fa-power-off","fa-print","fa-satellite","fa-satellite-dish","fa-save","fa-sd-card","fa-server","fa-sim-card","fa-stream","fa-tablet","fa-tablet-alt","fa-tv","fa-upload","fa-brush","fa-drafting-compass","fa-dumpster","fa-hammer","fa-hard-hat","fa-paint-roller","fa-pencil-alt","fa-pencil-ruler","fa-ruler","fa-ruler-combined","fa-ruler-horizontal","fa-ruler-vertical","fa-screwdriver","fa-toolbox","fa-tools","fa-truck-pickup","fa-wrench","fa-bitcoin","fa-btc","fa-dollar-sign","fa-ethereum","fa-euro-sign","fa-gg","fa-gg-circle","fa-hryvnia","fa-lira-sign","fa-money-bill","fa-money-bill-alt","fa-money-bill-wave","fa-money-bill-wave-alt","fa-money-check","fa-money-check-alt","fa-pound-sign","fa-ruble-sign","fa-rupee-sign","fa-shekel-sign","fa-tenge","fa-won-sign","fa-yen-sign","fa-bell","fa-bell-slash","fa-calendar","fa-calendar-alt","fa-calendar-check","fa-calendar-minus","fa-calendar-plus","fa-calendar-times","fa-clock","fa-hourglass","fa-hourglass-end","fa-hourglass-half","fa-hourglass-start","fa-stopwatch","fa-adjust","fa-bezier-curve","fa-brush","fa-clone","fa-copy","fa-crop","fa-crop-alt","fa-crosshairs","fa-cut","fa-drafting-compass","fa-draw-polygon","fa-edit","fa-eraser","fa-eye","fa-eye-dropper","fa-eye-slash","fa-fill","fa-fill-drip","fa-highlighter","fa-icons","fa-layer-group","fa-magic","fa-marker","fa-object-group","fa-object-ungroup","fa-paint-brush","fa-paint-roller","fa-palette","fa-paste","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pen-nib","fa-pencil-alt","fa-pencil-ruler","fa-ruler-combined","fa-ruler-horizontal","fa-ruler-vertical","fa-save","fa-splotch","fa-spray-can","fa-stamp","fa-swatchbook","fa-tint","fa-tint-slash","fa-vector-square","fa-align-center","fa-align-justify","fa-align-left","fa-align-right","fa-bold","fa-border-all","fa-border-none","fa-border-style","fa-clipboard","fa-clone","fa-columns","fa-copy","fa-cut","fa-edit","fa-eraser","fa-file","fa-file-alt","fa-font","fa-glasses","fa-heading","fa-highlighter","fa-i-cursor","fa-icons","fa-indent","fa-italic","fa-link","fa-list","fa-list-alt","fa-list-ol","fa-list-ul","fa-marker","fa-outdent","fa-paper-plane","fa-paperclip","fa-paragraph","fa-paste","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pen-nib","fa-pencil-alt","fa-print","fa-quote-left","fa-quote-right","fa-redo","fa-redo-alt","fa-remove-format","fa-reply","fa-reply-all","fa-screwdriver","fa-share","fa-spell-check","fa-strikethrough","fa-subscript","fa-superscript","fa-sync","fa-sync-alt","fa-table","fa-tasks","fa-text-height","fa-text-width","fa-th","fa-th-large","fa-th-list","fa-tools","fa-trash","fa-trash-alt","fa-trash-restore","fa-trash-restore-alt","fa-underline","fa-undo","fa-undo-alt","fa-unlink","fa-wrench","fa-apple-alt","fa-atom","fa-award","fa-bell","fa-bell-slash","fa-book-open","fa-book-reader","fa-chalkboard","fa-chalkboard-teacher","fa-graduation-cap","fa-laptop-code","fa-microscope","fa-music","fa-school","fa-shapes","fa-theater-masks","fa-user-graduate","fa-angry","fa-dizzy","fa-flushed","fa-frown","fa-frown-open","fa-grimace","fa-grin","fa-grin-alt","fa-grin-beam","fa-grin-beam-sweat","fa-grin-hearts","fa-grin-squint","fa-grin-squint-tears","fa-grin-stars","fa-grin-tears","fa-grin-tongue","fa-grin-tongue-squint","fa-grin-tongue-wink","fa-grin-wink","fa-kiss","fa-kiss-beam","fa-kiss-wink-heart","fa-laugh","fa-laugh-beam","fa-laugh-squint","fa-laugh-wink","fa-meh","fa-meh-blank","fa-meh-rolling-eyes","fa-sad-cry","fa-sad-tear","fa-smile","fa-smile-beam","fa-smile-wink","fa-surprise","fa-tired","fa-atom","fa-battery-empty","fa-battery-full","fa-battery-half","fa-battery-quarter","fa-battery-three-quarters","fa-broadcast-tower","fa-burn","fa-charging-station","fa-fan","fa-fire","fa-fire-alt","fa-gas-pump","fa-industry","fa-leaf","fa-lightbulb","fa-plug","fa-poop","fa-power-off","fa-radiation","fa-radiation-alt","fa-seedling","fa-solar-panel","fa-sun","fa-water","fa-wind","fa-archive","fa-clone","fa-copy","fa-cut","fa-file","fa-file-alt","fa-file-archive","fa-file-audio","fa-file-code","fa-file-excel","fa-file-image","fa-file-pdf","fa-file-powerpoint","fa-file-video","fa-file-word","fa-folder","fa-folder-open","fa-paste","fa-photo-video","fa-save","fa-sticky-note","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-book","fa-cash-register","fa-chart-line","fa-chart-pie","fa-coins","fa-comment-dollar","fa-comments-dollar","fa-credit-card","fa-donate","fa-file-invoice","fa-file-invoice-dollar","fa-hand-holding-usd","fa-landmark","fa-money-bill","fa-money-bill-alt","fa-money-bill-wave","fa-money-bill-wave-alt","fa-money-check","fa-money-check-alt","fa-percentage","fa-piggy-bank","fa-receipt","fa-stamp","fa-wallet","fa-bicycle","fa-biking","fa-burn","fa-fire-alt","fa-heart","fa-heartbeat","fa-hiking","fa-running","fa-shoe-prints","fa-skating","fa-skiing","fa-skiing-nordic","fa-snowboarding","fa-spa","fa-swimmer","fa-walking","fa-apple-alt","fa-bacon","fa-bone","fa-bread-slice","fa-candy-cane","fa-carrot","fa-cheese","fa-cloud-meatball","fa-cookie","fa-drumstick-bite","fa-egg","fa-fish","fa-hamburger","fa-hotdog","fa-ice-cream","fa-lemon","fa-pepper-hot","fa-pizza-slice","fa-seedling","fa-stroopwafel","fa-apple-alt","fa-carrot","fa-leaf","fa-lemon","fa-pepper-hot","fa-seedling","fa-chess","fa-chess-bishop","fa-chess-board","fa-chess-king","fa-chess-knight","fa-chess-pawn","fa-chess-queen","fa-chess-rook","fa-dice","fa-dice-d20","fa-dice-d6","fa-dice-five","fa-dice-four","fa-dice-one","fa-dice-six","fa-dice-three","fa-dice-two","fa-gamepad","fa-ghost","fa-headset","fa-heart","fa-playstation","fa-puzzle-piece","fa-steam","fa-steam-square","fa-steam-symbol","fa-twitch","fa-xbox","fa-acquisitions-incorporated","fa-book-dead","fa-critical-role","fa-d-and-d","fa-d-and-d-beyond","fa-dice-d20","fa-dice-d6","fa-dragon","fa-dungeon","fa-fantasy-flight-games","fa-fist-raised","fa-hat-wizard","fa-penny-arcade","fa-ring","fa-scroll","fa-skull-crossbones","fa-wizards-of-the-coast","fa-genderless","fa-mars","fa-mars-double","fa-mars-stroke","fa-mars-stroke-h","fa-mars-stroke-v","fa-mercury","fa-neuter","fa-transgender","fa-transgender-alt","fa-venus","fa-venus-double","fa-venus-mars","fa-book-dead","fa-broom","fa-cat","fa-cloud-moon","fa-crow","fa-ghost","fa-hat-wizard","fa-mask","fa-skull-crossbones","fa-spider","fa-toilet-paper","fa-allergies","fa-fist-raised","fa-hand-holding","fa-hand-holding-heart","fa-hand-holding-medical","fa-hand-holding-usd","fa-hand-holding-water","fa-hand-lizard","fa-hand-middle-finger","fa-hand-paper","fa-hand-peace","fa-hand-point-down","fa-hand-point-left","fa-hand-point-right","fa-hand-point-up","fa-hand-pointer","fa-hand-rock","fa-hand-scissors","fa-hand-sparkles","fa-hand-spock","fa-hands","fa-hands-helping","fa-hands-wash","fa-handshake","fa-handshake-alt-slash","fa-handshake-slash","fa-praying-hands","fa-thumbs-down","fa-thumbs-up","fa-accessible-icon","fa-ambulance","fa-h-square","fa-heart","fa-heartbeat","fa-hospital","fa-medkit","fa-plus-square","fa-prescription","fa-stethoscope","fa-user-md","fa-wheelchair","fa-candy-cane","fa-carrot","fa-cookie-bite","fa-gift","fa-gifts","fa-glass-cheers","fa-holly-berry","fa-mug-hot","fa-sleigh","fa-snowman","fa-baby-carriage","fa-bath","fa-bed","fa-briefcase","fa-car","fa-cocktail","fa-coffee","fa-concierge-bell","fa-dice","fa-dice-five","fa-door-closed","fa-door-open","fa-dumbbell","fa-glass-martini","fa-glass-martini-alt","fa-hot-tub","fa-hotel","fa-infinity","fa-key","fa-luggage-cart","fa-shower","fa-shuttle-van","fa-smoking","fa-smoking-ban","fa-snowflake","fa-spa","fa-suitcase","fa-suitcase-rolling","fa-swimmer","fa-swimming-pool","fa-tv","fa-umbrella-beach","fa-utensils","fa-wheelchair","fa-wifi","fa-bath","fa-bed","fa-bell","fa-blender","fa-box-tissue","fa-chair","fa-coffee","fa-couch","fa-door-closed","fa-door-open","fa-dungeon","fa-fan","fa-faucet","fa-house-user","fa-laptop-house","fa-lightbulb","fa-plug","fa-pump-soap","fa-shower","fa-sink","fa-snowflake","fa-soap","fa-toilet-paper","fa-toilet-paper-slash","fa-tv","fa-adjust","fa-bolt","fa-camera","fa-camera-retro","fa-chalkboard","fa-clone","fa-compress","fa-compress-arrows-alt","fa-expand","fa-eye","fa-eye-dropper","fa-eye-slash","fa-file-image","fa-film","fa-id-badge","fa-id-card","fa-image","fa-images","fa-photo-video","fa-portrait","fa-sliders-h","fa-tint","fa-unsplash","fa-award","fa-ban","fa-barcode","fa-bars","fa-beer","fa-bell","fa-bell-slash","fa-blog","fa-bug","fa-bullhorn","fa-bullseye","fa-calculator","fa-calendar","fa-calendar-alt","fa-calendar-check","fa-calendar-minus","fa-calendar-plus","fa-calendar-times","fa-certificate","fa-check","fa-check-circle","fa-check-double","fa-check-square","fa-circle","fa-clipboard","fa-clone","fa-cloud","fa-cloud-download-alt","fa-cloud-upload-alt","fa-coffee","fa-cog","fa-cogs","fa-copy","fa-cut","fa-database","fa-dot-circle","fa-download","fa-edit","fa-ellipsis-h","fa-ellipsis-v","fa-envelope","fa-envelope-open","fa-eraser","fa-exclamation","fa-exclamation-circle","fa-exclamation-triangle","fa-external-link-alt","fa-external-link-square-alt","fa-eye","fa-eye-slash","fa-file","fa-file-alt","fa-file-download","fa-file-export","fa-file-import","fa-file-upload","fa-filter","fa-fingerprint","fa-flag","fa-flag-checkered","fa-folder","fa-folder-open","fa-frown","fa-glasses","fa-grip-horizontal","fa-grip-lines","fa-grip-lines-vertical","fa-grip-vertical","fa-hashtag","fa-heart","fa-history","fa-home","fa-i-cursor","fa-info","fa-info-circle","fa-language","fa-magic","fa-marker","fa-medal","fa-meh","fa-microphone","fa-microphone-alt","fa-microphone-slash","fa-minus","fa-minus-circle","fa-minus-square","fa-paste","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pencil-alt","fa-plus","fa-plus-circle","fa-plus-square","fa-poo","fa-qrcode","fa-question","fa-question-circle","fa-quote-left","fa-quote-right","fa-redo","fa-redo-alt","fa-reply","fa-reply-all","fa-rss","fa-rss-square","fa-save","fa-screwdriver","fa-search","fa-search-minus","fa-search-plus","fa-share","fa-share-alt","fa-share-alt-square","fa-share-square","fa-shield-alt","fa-sign-in-alt","fa-sign-out-alt","fa-signal","fa-sitemap","fa-sliders-h","fa-smile","fa-sort","fa-sort-alpha-down","fa-sort-alpha-down-alt","fa-sort-alpha-up","fa-sort-alpha-up-alt","fa-sort-amount-down","fa-sort-amount-down-alt","fa-sort-amount-up","fa-sort-amount-up-alt","fa-sort-down","fa-sort-numeric-down","fa-sort-numeric-down-alt","fa-sort-numeric-up","fa-sort-numeric-up-alt","fa-sort-up","fa-star","fa-star-half","fa-sync","fa-sync-alt","fa-thumbs-down","fa-thumbs-up","fa-times","fa-times-circle","fa-toggle-off","fa-toggle-on","fa-tools","fa-trash","fa-trash-alt","fa-trash-restore","fa-trash-restore-alt","fa-trophy","fa-undo","fa-undo-alt","fa-upload","fa-user","fa-user-alt","fa-user-circle","fa-volume-down","fa-volume-mute","fa-volume-off","fa-volume-up","fa-wifi","fa-wrench","fa-box","fa-boxes","fa-clipboard-check","fa-clipboard-list","fa-dolly","fa-dolly-flatbed","fa-hard-hat","fa-pallet","fa-shipping-fast","fa-truck","fa-warehouse","fa-ambulance","fa-anchor","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-bath","fa-bed","fa-beer","fa-bell","fa-bell-slash","fa-bicycle","fa-binoculars","fa-birthday-cake","fa-blind","fa-bomb","fa-book","fa-bookmark","fa-briefcase","fa-building","fa-car","fa-coffee","fa-crosshairs","fa-directions","fa-dollar-sign","fa-draw-polygon","fa-eye","fa-eye-slash","fa-fighter-jet","fa-fire","fa-fire-alt","fa-fire-extinguisher","fa-flag","fa-flag-checkered","fa-flask","fa-gamepad","fa-gavel","fa-gift","fa-glass-martini","fa-globe","fa-graduation-cap","fa-h-square","fa-heart","fa-heartbeat","fa-helicopter","fa-home","fa-hospital","fa-image","fa-images","fa-industry","fa-info","fa-info-circle","fa-key","fa-landmark","fa-layer-group","fa-leaf","fa-lemon","fa-life-ring","fa-lightbulb","fa-location-arrow","fa-low-vision","fa-magnet","fa-male","fa-map","fa-map-marker","fa-map-marker-alt","fa-map-pin","fa-map-signs","fa-medkit","fa-money-bill","fa-money-bill-alt","fa-motorcycle","fa-music","fa-newspaper","fa-parking","fa-paw","fa-phone","fa-phone-alt","fa-phone-square","fa-phone-square-alt","fa-phone-volume","fa-plane","fa-plug","fa-plus","fa-plus-square","fa-print","fa-recycle","fa-restroom","fa-road","fa-rocket","fa-route","fa-search","fa-search-minus","fa-search-plus","fa-ship","fa-shoe-prints","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-shower","fa-snowplow","fa-street-view","fa-subway","fa-suitcase","fa-tag","fa-tags","fa-taxi","fa-thumbtack","fa-ticket-alt","fa-tint","fa-traffic-light","fa-train","fa-tram","fa-tree","fa-trophy","fa-truck","fa-tty","fa-umbrella","fa-university","fa-utensil-spoon","fa-utensils","fa-vest","fa-vest-patches","fa-wheelchair","fa-wifi","fa-wine-glass","fa-wrench","fa-anchor","fa-binoculars","fa-compass","fa-dharmachakra","fa-frog","fa-ship","fa-skull-crossbones","fa-swimmer","fa-water","fa-wind","fa-ad","fa-bullhorn","fa-bullseye","fa-comment-dollar","fa-comments-dollar","fa-envelope-open-text","fa-funnel-dollar","fa-lightbulb","fa-mail-bulk","fa-poll","fa-poll-h","fa-search-dollar","fa-search-location","fa-calculator","fa-divide","fa-equals","fa-greater-than","fa-greater-than-equal","fa-infinity","fa-less-than","fa-less-than-equal","fa-minus","fa-not-equal","fa-percentage","fa-plus","fa-square-root-alt","fa-subscript","fa-superscript","fa-times","fa-wave-square","fa-allergies","fa-ambulance","fa-bacteria","fa-bacterium","fa-band-aid","fa-biohazard","fa-bone","fa-bong","fa-book-medical","fa-brain","fa-briefcase-medical","fa-burn","fa-cannabis","fa-capsules","fa-clinic-medical","fa-comment-medical","fa-crutch","fa-diagnoses","fa-disease","fa-dna","fa-file-medical","fa-file-medical-alt","fa-file-prescription","fa-first-aid","fa-hand-holding-medical","fa-head-side-cough","fa-head-side-cough-slash","fa-head-side-mask","fa-head-side-virus","fa-heart","fa-heartbeat","fa-hospital","fa-hospital-alt","fa-hospital-symbol","fa-hospital-user","fa-id-card-alt","fa-joint","fa-laptop-medical","fa-lungs","fa-lungs-virus","fa-microscope","fa-mortar-pestle","fa-notes-medical","fa-pager","fa-pills","fa-plus","fa-poop","fa-prescription","fa-prescription-bottle","fa-prescription-bottle-alt","fa-procedures","fa-pump-medical","fa-radiation","fa-radiation-alt","fa-shield-virus","fa-smoking","fa-smoking-ban","fa-star-of-life","fa-stethoscope","fa-syringe","fa-tablets","fa-teeth","fa-teeth-open","fa-thermometer","fa-tooth","fa-user-md","fa-user-nurse","fa-vial","fa-vials","fa-virus","fa-virus-slash","fa-viruses","fa-weight","fa-x-ray","fa-archive","fa-box-open","fa-caravan","fa-couch","fa-dolly","fa-people-carry","fa-route","fa-sign","fa-suitcase","fa-tape","fa-trailer","fa-truck-loading","fa-truck-moving","fa-wine-glass","fa-compact-disc","fa-drum","fa-drum-steelpan","fa-file-audio","fa-guitar","fa-headphones","fa-headphones-alt","fa-microphone","fa-microphone-alt","fa-microphone-alt-slash","fa-microphone-slash","fa-music","fa-napster","fa-play","fa-record-vinyl","fa-sliders-h","fa-soundcloud","fa-spotify","fa-volume-down","fa-volume-mute","fa-volume-off","fa-volume-up","fa-ambulance","fa-anchor","fa-archive","fa-award","fa-baby-carriage","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-bath","fa-bed","fa-beer","fa-bell","fa-bicycle","fa-binoculars","fa-birthday-cake","fa-blender","fa-bomb","fa-book","fa-book-dead","fa-bookmark","fa-briefcase","fa-broadcast-tower","fa-bug","fa-building","fa-bullhorn","fa-bullseye","fa-bus","fa-calculator","fa-calendar","fa-calendar-alt","fa-camera","fa-camera-retro","fa-candy-cane","fa-car","fa-carrot","fa-church","fa-clipboard","fa-cloud","fa-coffee","fa-cog","fa-cogs","fa-compass","fa-cookie","fa-cookie-bite","fa-copy","fa-cube","fa-cubes","fa-cut","fa-dice","fa-dice-d20","fa-dice-d6","fa-dice-five","fa-dice-four","fa-dice-one","fa-dice-six","fa-dice-three","fa-dice-two","fa-digital-tachograph","fa-door-closed","fa-door-open","fa-drum","fa-drum-steelpan","fa-envelope","fa-envelope-open","fa-eraser","fa-eye","fa-eye-dropper","fa-fax","fa-feather","fa-feather-alt","fa-fighter-jet","fa-file","fa-file-alt","fa-file-prescription","fa-film","fa-fire","fa-fire-alt","fa-fire-extinguisher","fa-flag","fa-flag-checkered","fa-flask","fa-futbol","fa-gamepad","fa-gavel","fa-gem","fa-gift","fa-gifts","fa-glass-cheers","fa-glass-martini","fa-glass-whiskey","fa-glasses","fa-globe","fa-graduation-cap","fa-guitar","fa-hat-wizard","fa-hdd","fa-headphones","fa-headphones-alt","fa-headset","fa-heart","fa-heart-broken","fa-helicopter","fa-highlighter","fa-holly-berry","fa-home","fa-hospital","fa-hourglass","fa-igloo","fa-image","fa-images","fa-industry","fa-key","fa-keyboard","fa-laptop","fa-leaf","fa-lemon","fa-life-ring","fa-lightbulb","fa-lock","fa-lock-open","fa-magic","fa-magnet","fa-map","fa-map-marker","fa-map-marker-alt","fa-map-pin","fa-map-signs","fa-marker","fa-medal","fa-medkit","fa-memory","fa-microchip","fa-microphone","fa-microphone-alt","fa-mitten","fa-mobile","fa-mobile-alt","fa-money-bill","fa-money-bill-alt","fa-money-check","fa-money-check-alt","fa-moon","fa-motorcycle","fa-mug-hot","fa-newspaper","fa-paint-brush","fa-paper-plane","fa-paperclip","fa-paste","fa-paw","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pen-nib","fa-pencil-alt","fa-phone","fa-phone-alt","fa-plane","fa-plug","fa-print","fa-puzzle-piece","fa-ring","fa-road","fa-rocket","fa-ruler-combined","fa-ruler-horizontal","fa-ruler-vertical","fa-satellite","fa-satellite-dish","fa-save","fa-school","fa-screwdriver","fa-scroll","fa-sd-card","fa-search","fa-shield-alt","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-shower","fa-sim-card","fa-skull-crossbones","fa-sleigh","fa-snowflake","fa-snowplow","fa-space-shuttle","fa-star","fa-sticky-note","fa-stopwatch","fa-stroopwafel","fa-subway","fa-suitcase","fa-sun","fa-tablet","fa-tablet-alt","fa-tachometer-alt","fa-tag","fa-tags","fa-taxi","fa-thumbtack","fa-ticket-alt","fa-toilet","fa-toolbox","fa-tools","fa-train","fa-tram","fa-trash","fa-trash-alt","fa-tree","fa-trophy","fa-truck","fa-tv","fa-umbrella","fa-university","fa-unlock","fa-unlock-alt","fa-utensil-spoon","fa-utensils","fa-wallet","fa-weight","fa-wheelchair","fa-wine-glass","fa-wrench","fa-alipay","fa-amazon-pay","fa-apple-pay","fa-bell","fa-bitcoin","fa-bookmark","fa-btc","fa-bullhorn","fa-camera","fa-camera-retro","fa-cart-arrow-down","fa-cart-plus","fa-cc-amazon-pay","fa-cc-amex","fa-cc-apple-pay","fa-cc-diners-club","fa-cc-discover","fa-cc-jcb","fa-cc-mastercard","fa-cc-paypal","fa-cc-stripe","fa-cc-visa","fa-certificate","fa-credit-card","fa-ethereum","fa-gem","fa-gift","fa-google-pay","fa-google-wallet","fa-handshake","fa-heart","fa-key","fa-money-check","fa-money-check-alt","fa-paypal","fa-receipt","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-star","fa-stripe","fa-stripe-s","fa-tag","fa-tags","fa-thumbs-down","fa-thumbs-up","fa-trophy","fa-band-aid","fa-book-medical","fa-cannabis","fa-capsules","fa-clinic-medical","fa-disease","fa-eye-dropper","fa-file-medical","fa-file-prescription","fa-first-aid","fa-flask","fa-history","fa-joint","fa-laptop-medical","fa-mortar-pestle","fa-notes-medical","fa-pills","fa-prescription","fa-prescription-bottle","fa-prescription-bottle-alt","fa-receipt","fa-skull-crossbones","fa-syringe","fa-tablets","fa-thermometer","fa-vial","fa-vials","fa-award","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-bullhorn","fa-check-double","fa-democrat","fa-donate","fa-dove","fa-fist-raised","fa-flag-usa","fa-handshake","fa-person-booth","fa-piggy-bank","fa-republican","fa-vote-yea","fa-ankh","fa-atom","fa-bahai","fa-bible","fa-church","fa-cross","fa-dharmachakra","fa-dove","fa-gopuram","fa-hamsa","fa-hanukiah","fa-jedi","fa-journal-whills","fa-kaaba","fa-khanda","fa-menorah","fa-mosque","fa-om","fa-pastafarianism","fa-peace","fa-place-of-worship","fa-pray","fa-praying-hands","fa-quran","fa-star-and-crescent","fa-star-of-david","fa-synagogue","fa-torah","fa-torii-gate","fa-vihara","fa-yin-yang","fa-atom","fa-biohazard","fa-brain","fa-burn","fa-capsules","fa-clipboard-check","fa-disease","fa-dna","fa-eye-dropper","fa-filter","fa-fire","fa-fire-alt","fa-flask","fa-frog","fa-magnet","fa-microscope","fa-mortar-pestle","fa-pills","fa-prescription-bottle","fa-radiation","fa-radiation-alt","fa-seedling","fa-skull-crossbones","fa-syringe","fa-tablets","fa-temperature-high","fa-temperature-low","fa-vial","fa-vials","fa-atom","fa-galactic-republic","fa-galactic-senate","fa-globe","fa-hand-spock","fa-jedi","fa-jedi-order","fa-journal-whills","fa-meteor","fa-moon","fa-old-republic","fa-robot","fa-rocket","fa-satellite","fa-satellite-dish","fa-space-shuttle","fa-user-astronaut","fa-ban","fa-bug","fa-door-closed","fa-door-open","fa-dungeon","fa-eye","fa-eye-slash","fa-file-contract","fa-file-signature","fa-fingerprint","fa-id-badge","fa-id-card","fa-id-card-alt","fa-key","fa-lock","fa-lock-open","fa-mask","fa-passport","fa-shield-alt","fa-unlock","fa-unlock-alt","fa-user-lock","fa-user-secret","fa-user-shield","fa-bookmark","fa-calendar","fa-certificate","fa-circle","fa-cloud","fa-comment","fa-file","fa-folder","fa-heart","fa-heart-broken","fa-map-marker","fa-play","fa-shapes","fa-square","fa-star","fa-barcode","fa-cart-arrow-down","fa-cart-plus","fa-cash-register","fa-gift","fa-gifts","fa-person-booth","fa-receipt","fa-shipping-fast","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-store","fa-store-alt","fa-store-alt-slash","fa-store-slash","fa-truck","fa-tshirt","fa-bell","fa-birthday-cake","fa-camera","fa-comment","fa-comment-alt","fa-envelope","fa-hashtag","fa-heart","fa-icons","fa-image","fa-images","fa-map-marker","fa-map-marker-alt","fa-photo-video","fa-poll","fa-poll-h","fa-retweet","fa-share","fa-share-alt","fa-share-square","fa-star","fa-thumbs-down","fa-thumbs-up","fa-thumbtack","fa-user","fa-user-circle","fa-user-friends","fa-user-plus","fa-users","fa-video","fa-asterisk","fa-atom","fa-bahai","fa-certificate","fa-circle-notch","fa-cog","fa-compact-disc","fa-compass","fa-crosshairs","fa-dharmachakra","fa-fan","fa-life-ring","fa-palette","fa-ring","fa-slash","fa-snowflake","fa-spinner","fa-stroopwafel","fa-sun","fa-sync","fa-sync-alt","fa-yin-yang","fa-baseball-ball","fa-basketball-ball","fa-biking","fa-bowling-ball","fa-dumbbell","fa-football-ball","fa-futbol","fa-golf-ball","fa-hockey-puck","fa-quidditch","fa-running","fa-skating","fa-skiing","fa-skiing-nordic","fa-snowboarding","fa-swimmer","fa-table-tennis","fa-volleyball-ball","fa-allergies","fa-broom","fa-cloud-sun","fa-cloud-sun-rain","fa-frog","fa-rainbow","fa-seedling","fa-umbrella","fa-ban","fa-battery-empty","fa-battery-full","fa-battery-half","fa-battery-quarter","fa-battery-three-quarters","fa-bell","fa-bell-slash","fa-calendar","fa-calendar-alt","fa-calendar-check","fa-calendar-day","fa-calendar-minus","fa-calendar-plus","fa-calendar-times","fa-calendar-week","fa-cart-arrow-down","fa-cart-plus","fa-comment","fa-comment-alt","fa-comment-slash","fa-compass","fa-door-closed","fa-door-open","fa-exclamation","fa-exclamation-circle","fa-exclamation-triangle","fa-eye","fa-eye-slash","fa-file","fa-file-alt","fa-folder","fa-folder-open","fa-gas-pump","fa-info","fa-info-circle","fa-lightbulb","fa-lock","fa-lock-open","fa-map-marker","fa-map-marker-alt","fa-microphone","fa-microphone-alt","fa-microphone-alt-slash","fa-microphone-slash","fa-minus","fa-minus-circle","fa-minus-square","fa-parking","fa-phone","fa-phone-alt","fa-phone-slash","fa-plus","fa-plus-circle","fa-plus-square","fa-print","fa-question","fa-question-circle","fa-shield-alt","fa-shopping-cart","fa-sign-in-alt","fa-sign-out-alt","fa-signal","fa-smoking-ban","fa-star","fa-star-half","fa-star-half-alt","fa-stream","fa-thermometer-empty","fa-thermometer-full","fa-thermometer-half","fa-thermometer-quarter","fa-thermometer-three-quarters","fa-thumbs-down","fa-thumbs-up","fa-tint","fa-tint-slash","fa-toggle-off","fa-toggle-on","fa-unlock","fa-unlock-alt","fa-user","fa-user-alt","fa-user-alt-slash","fa-user-slash","fa-video","fa-video-slash","fa-volume-down","fa-volume-mute","fa-volume-off","fa-volume-up","fa-wifi","fa-anchor","fa-biking","fa-fish","fa-hotdog","fa-ice-cream","fa-lemon","fa-sun","fa-swimmer","fa-swimming-pool","fa-umbrella-beach","fa-volleyball-ball","fa-water","fa-bullseye","fa-check-circle","fa-circle","fa-dot-circle","fa-microphone","fa-microphone-slash","fa-star","fa-star-half","fa-star-half-alt","fa-toggle-off","fa-toggle-on","fa-wifi","fa-archway","fa-atlas","fa-bed","fa-bus","fa-bus-alt","fa-caravan","fa-cocktail","fa-concierge-bell","fa-dumbbell","fa-glass-martini","fa-glass-martini-alt","fa-globe-africa","fa-globe-americas","fa-globe-asia","fa-globe-europe","fa-hot-tub","fa-hotel","fa-luggage-cart","fa-map","fa-map-marked","fa-map-marked-alt","fa-monument","fa-passport","fa-plane","fa-plane-arrival","fa-plane-departure","fa-shuttle-van","fa-spa","fa-suitcase","fa-suitcase-rolling","fa-swimmer","fa-swimming-pool","fa-taxi","fa-tram","fa-tv","fa-umbrella-beach","fa-wine-glass","fa-wine-glass-alt","fa-accessible-icon","fa-address-book","fa-address-card","fa-baby","fa-bed","fa-biking","fa-blind","fa-chalkboard-teacher","fa-child","fa-female","fa-frown","fa-hiking","fa-id-badge","fa-id-card","fa-id-card-alt","fa-male","fa-meh","fa-people-arrows","fa-people-carry","fa-person-booth","fa-poo","fa-portrait","fa-power-off","fa-pray","fa-restroom","fa-running","fa-skating","fa-skiing","fa-skiing-nordic","fa-smile","fa-snowboarding","fa-street-view","fa-swimmer","fa-user","fa-user-alt","fa-user-alt-slash","fa-user-astronaut","fa-user-check","fa-user-circle","fa-user-clock","fa-user-cog","fa-user-edit","fa-user-friends","fa-user-graduate","fa-user-injured","fa-user-lock","fa-user-md","fa-user-minus","fa-user-ninja","fa-user-nurse","fa-user-plus","fa-user-secret","fa-user-shield","fa-user-slash","fa-user-tag","fa-user-tie","fa-user-times","fa-users","fa-users-cog","fa-users-slash","fa-walking","fa-wheelchair","fa-accessible-icon","fa-ambulance","fa-baby-carriage","fa-bicycle","fa-bus","fa-bus-alt","fa-car","fa-car-alt","fa-car-crash","fa-car-side","fa-fighter-jet","fa-helicopter","fa-horse","fa-motorcycle","fa-paper-plane","fa-plane","fa-rocket","fa-ship","fa-shopping-cart","fa-shuttle-van","fa-sleigh","fa-snowplow","fa-space-shuttle","fa-subway","fa-taxi","fa-tractor","fa-train","fa-tram","fa-truck","fa-truck-monster","fa-truck-pickup","fa-wheelchair","fa-bolt","fa-cloud","fa-cloud-meatball","fa-cloud-moon","fa-cloud-moon-rain","fa-cloud-rain","fa-cloud-showers-heavy","fa-cloud-sun","fa-cloud-sun-rain","fa-meteor","fa-moon","fa-poo-storm","fa-rainbow","fa-smog","fa-snowflake","fa-sun","fa-temperature-high","fa-temperature-low","fa-umbrella","fa-water","fa-wind","fa-glass-whiskey","fa-icicles","fa-igloo","fa-mitten","fa-skating","fa-skiing","fa-skiing-nordic","fa-snowboarding","fa-snowplow","fa-tram","fa-archive","fa-blog","fa-book","fa-bookmark","fa-edit","fa-envelope","fa-envelope-open","fa-eraser","fa-file","fa-file-alt","fa-folder","fa-folder-open","fa-keyboard","fa-newspaper","fa-paper-plane","fa-paperclip","fa-paragraph","fa-pen","fa-pen-alt","fa-pen-square","fa-pencil-alt","fa-quote-left","fa-quote-right","fa-sticky-note","fa-thumbtack"],t4=["fa-500px","fa-accusoft","fa-adn","fa-adversal","fa-affiliatetheme","fa-airbnb","fa-algolia","fa-amazon","fa-amilia","fa-android","fa-angellist","fa-angrycreative","fa-angular","fa-app-store","fa-app-store-ios","fa-apper","fa-apple","fa-artstation","fa-asymmetrik","fa-atlassian","fa-audible","fa-autoprefixer","fa-avianex","fa-aviato","fa-aws","fa-backspace","fa-bandcamp","fa-battle-net","fa-behance","fa-behance-square","fa-bimobject","fa-bitbucket","fa-bity","fa-black-tie","fa-blackberry","fa-blender-phone","fa-blogger","fa-blogger-b","fa-bootstrap","fa-buffer","fa-buromobelexperte","fa-buy-n-large","fa-buysellads","fa-canadian-maple-leaf","fa-centercode","fa-centos","fa-chrome","fa-chromecast","fa-cloudflare","fa-cloudscale","fa-cloudsmith","fa-cloudversify","fa-codepen","fa-codiepie","fa-confluence","fa-connectdevelop","fa-contao","fa-cotton-bureau","fa-cpanel","fa-creative-commons","fa-creative-commons-by","fa-creative-commons-nc","fa-creative-commons-nc-eu","fa-creative-commons-nc-jp","fa-creative-commons-nd","fa-creative-commons-pd","fa-creative-commons-pd-alt","fa-creative-commons-remix","fa-creative-commons-sa","fa-creative-commons-sampling","fa-creative-commons-sampling-plus","fa-creative-commons-share","fa-creative-commons-zero","fa-crown","fa-css3","fa-css3-alt","fa-cuttlefish","fa-dailymotion","fa-dashcube","fa-deezer","fa-delicious","fa-deploydog","fa-deskpro","fa-dev","fa-deviantart","fa-dhl","fa-diaspora","fa-digg","fa-digital-ocean","fa-discord","fa-discourse","fa-dochub","fa-docker","fa-draft2digital","fa-dribbble","fa-dribbble-square","fa-dropbox","fa-drupal","fa-dumpster-fire","fa-dyalog","fa-earlybirds","fa-ebay","fa-edge","fa-edge-legacy","fa-elementor","fa-ello","fa-ember","fa-empire","fa-envira","fa-erlang","fa-etsy","fa-evernote","fa-expeditedssl","fa-facebook","fa-facebook-f","fa-facebook-messenger","fa-facebook-square","fa-fedex","fa-fedora","fa-figma","fa-file-csv","fa-firefox","fa-firefox-browser","fa-first-order","fa-first-order-alt","fa-firstdraft","fa-flickr","fa-flipboard","fa-fly","fa-font-awesome","fa-font-awesome-alt","fa-font-awesome-flag","fa-font-awesome-logo-full","fa-fonticons","fa-fonticons-fi","fa-fort-awesome","fa-fort-awesome-alt","fa-forumbee","fa-foursquare","fa-free-code-camp","fa-freebsd","fa-fulcrum","fa-get-pocket","fa-git","fa-git-alt","fa-git-square","fa-github","fa-github-alt","fa-github-square","fa-gitkraken","fa-gitlab","fa-gitter","fa-glide","fa-glide-g","fa-gofore","fa-goodreads","fa-goodreads-g","fa-google","fa-google-drive","fa-google-play","fa-google-plus","fa-google-plus-g","fa-google-plus-square","fa-gratipay","fa-grav","fa-gripfire","fa-grunt","fa-guilded","fa-gulp","fa-hacker-news","fa-hacker-news-square","fa-hackerrank","fa-hips","fa-hire-a-helper","fa-hive","fa-hooli","fa-hornbill","fa-hotjar","fa-houzz","fa-html5","fa-hubspot","fa-ideal","fa-imdb","fa-innosoft","fa-instagram","fa-instagram-square","fa-instalod","fa-intercom","fa-internet-explorer","fa-invision","fa-ioxhost","fa-itch-io","fa-itunes","fa-itunes-note","fa-java","fa-jenkins","fa-jira","fa-joget","fa-joomla","fa-js","fa-js-square","fa-jsfiddle","fa-kaggle","fa-keybase","fa-keycdn","fa-kickstarter","fa-kickstarter-k","fa-korvue","fa-laravel","fa-lastfm","fa-lastfm-square","fa-leanpub","fa-less","fa-line","fa-linkedin","fa-linkedin-in","fa-linode","fa-linux","fa-lyft","fa-magento","fa-mailchimp","fa-mandalorian","fa-markdown","fa-mastodon","fa-maxcdn","fa-mdb","fa-medapps","fa-medium","fa-medium-m","fa-medrt","fa-meetup","fa-megaport","fa-mendeley","fa-microblog","fa-microsoft","fa-mix","fa-mixcloud","fa-mixer","fa-mizuni","fa-modx","fa-monero","fa-neos","fa-network-wired","fa-nimblr","fa-node","fa-node-js","fa-npm","fa-ns8","fa-nutritionix","fa-octopus-deploy","fa-odnoklassniki","fa-odnoklassniki-square","fa-opencart","fa-openid","fa-opera","fa-optin-monster","fa-orcid","fa-osi","fa-page4","fa-pagelines","fa-palfed","fa-patreon","fa-perbyte","fa-periscope","fa-phabricator","fa-phoenix-framework","fa-phoenix-squadron","fa-php","fa-pied-piper","fa-pied-piper-alt","fa-pied-piper-hat","fa-pied-piper-pp","fa-pied-piper-square","fa-pinterest","fa-pinterest-p","fa-pinterest-square","fa-plane-slash","fa-product-hunt","fa-pushed","fa-python","fa-qq","fa-quinscape","fa-quora","fa-r-project","fa-raspberry-pi","fa-ravelry","fa-react","fa-reacteurope","fa-readme","fa-rebel","fa-red-river","fa-reddit","fa-reddit-alien","fa-reddit-square","fa-redhat","fa-renren","fa-replyd","fa-researchgate","fa-resolving","fa-rev","fa-rocketchat","fa-rockrms","fa-rust","fa-safari","fa-salesforce","fa-sass","fa-schlix","fa-scribd","fa-searchengin","fa-sellcast","fa-sellsy","fa-servicestack","fa-shirtsinbulk","fa-shopify","fa-shopware","fa-signature","fa-simplybuilt","fa-sistrix","fa-sith","fa-sketch","fa-skull","fa-skyatlas","fa-skype","fa-slack","fa-slack-hash","fa-slideshare","fa-snapchat","fa-snapchat-ghost","fa-snapchat-square","fa-sourcetree","fa-speakap","fa-speaker-deck","fa-squarespace","fa-stack-exchange","fa-stack-overflow","fa-stackpath","fa-staylinked","fa-sticker-mule","fa-stopwatch-20","fa-strava","fa-studiovinari","fa-stumbleupon","fa-stumbleupon-circle","fa-superpowers","fa-supple","fa-suse","fa-swift","fa-symfony","fa-teamspeak","fa-telegram","fa-telegram-plane","fa-tencent-weibo","fa-the-red-yeti","fa-themeco","fa-themeisle","fa-think-peaks","fa-tiktok","fa-trade-federation","fa-trello","fa-tumblr","fa-tumblr-square","fa-twitter","fa-twitter-square","fa-typo3","fa-uber","fa-ubuntu","fa-uikit","fa-umbraco","fa-uncharted","fa-uniregistry","fa-unity","fa-untappd","fa-ups","fa-usb","fa-usps","fa-ussunnah","fa-vaadin","fa-viacoin","fa-viadeo","fa-viadeo-square","fa-viber","fa-vimeo","fa-vimeo-square","fa-vimeo-v","fa-vine","fa-vk","fa-vnv","fa-vr-cardboard","fa-vuejs","fa-watchman-monitoring","fa-waze","fa-weebly","fa-weibo","fa-weight-hanging","fa-weixin","fa-whatsapp","fa-whatsapp-square","fa-whmcs","fa-wikipedia-w","fa-windows","fa-wix","fa-wodu","fa-wolf-pack-battalion","fa-wordpress","fa-wordpress-simple","fa-wpbeginner","fa-wpexplorer","fa-wpforms","fa-wpressr","fa-xing","fa-xing-square","fa-y-combinator","fa-yahoo","fa-yammer","fa-yandex","fa-yandex-international","fa-yarn","fa-yelp","fa-yoast","fa-youtube-square","fa-zhihu"],sk={},KM={};t4.forEach(p=>{KM[p]="",sk[p]=""});e4.forEach(p=>{sk[p]=p});var XM=p=>p in KM;var ZM=(p,h)=>{p.use(n4,{defs:{...r4,...sk}}),p.renderer.rules.emoji=(w,_)=>{let T=w[_];if(h.config.enableEmojiSyntax){let M=T.markup;return M.match("fa-")?`<i class="${XM(M)?"fa-brands":"fa-solid"} ${M}" aria-hidden="true"></i>`:T.content}else return`:${T.markup}:`}};import a4 from"markdown-it-html5-embed";var i4=p=>({html5embed:{useImageSyntax:p.config.HTML5EmbedUseImageSyntax,useLinkSyntax:p.config.HTML5EmbedUseLinkSyntax,isAllowedHttp:p.config.HTML5EmbedIsAllowedHttp,attributes:{audio:p.config.HTML5EmbedAudioAttributes,video:p.config.HTML5EmbedVideoAttributes}}}),JM=(p,h)=>{h.config.enableHTML5Embed&&p.use(a4,i4(h))};var e2=(p,h)=>{p.block.ruler.before("lheading","math_block",(_,T,M,D)=>{if(h.config.mathRenderingOption==="None")return!1;let L=_.bMarks[T]+_.tShift[T],{mathBlockDelimiters:U}=h.config,q=null,J=null;for(let[le,ue]of U)if(_.src.slice(L,L+le.length)===le){q=le,J=ue;break}if(!q||!J)return!1;let K=L+q.length,V=-1;for(;K<_.src.length;){if(_.src.startsWith(J,K)){V=K;break}_.src[K]==="\\"&&(K+=1),K+=1}if(V<0)return!1;let oe=V+J.length,Y=T;for(;Y<M&&_.bMarks[Y]<=oe;)Y++;if(D)return!0;let te=_.src.slice(L+q.length,V).trim(),se=_.push("math_block","div",0);return se.content=te,se.meta={openTag:q,closeTag:J},se.map=[T,Y],_.line=Y,!0}),p.inline.ruler.before("escape","math",(_,T)=>{if(h.config.mathRenderingOption==="None")return!1;let M=null,D=null,L=!0,{mathBlockDelimiters:U,mathInlineDelimiters:q}=h.config;for(let oe of U)if(_.src.startsWith(oe[0],_.pos)){[M,D]=oe;break}if(!M){for(let oe of q)if(_.src.startsWith(oe[0],_.pos)){[M,D]=oe,L=!1;break}}if(!M||!D)return!1;let J,K=-1,V=_.pos+M.length;for(;V<_.src.length;){if(D&&_.src.startsWith(D,V)){K=V;break}else _.src[V]==="\\"&&(V+=1);V+=1}if(K>=0)J=_.src.slice(_.pos+M.length,K);else return!1;if(J&&!T){let oe=_.push("math","",0);return oe.content=J.trim(),oe.meta=oe.meta||{},oe.meta.openTag=M,oe.meta.closeTag=D,oe.meta.displayMode=L,_.pos+=J.length+M.length+D.length,!0}else return!1}),p.renderer.rules.math=(_,T)=>{let M=_[T].content??"";return Kc({content:M,openTag:_[T].meta.openTag,closeTag:_[T].meta.closeTag,renderingOption:h.config.mathRenderingOption,displayMode:_[T].meta.displayMode,katexConfig:h.config.katexConfig})},p.renderer.rules.math_block=(_,T)=>{let M=_[T].content??"";return Kc({content:M,openTag:_[T].meta.openTag,closeTag:_[T].meta.closeTag,renderingOption:h.config.mathRenderingOption,displayMode:!0,katexConfig:h.config.katexConfig})};let w=p.renderer.rules.html_block;p.renderer.rules.html_block=(_,T,M,D,L)=>{let U=w?w(_,T,M,D,L):_[T].content;return h.config.mathRenderingOption==="None"?U:o4(U,h)}};function o4(p,h){let{mathBlockDelimiters:w,mathInlineDelimiters:_}=h.config;if((!w||w.length===0)&&(!_||_.length===0))return p;let T=/<(code|pre|script|style)\b[^>]*>[\s\S]*?<\/\1>/gi,M=[],D=[],L=0;for(let J=T.exec(p);J!==null;J=T.exec(p))M.push(p.slice(L,J.index)),D.push(J[0]),L=J.index+J[0].length;M.push(p.slice(L));let U=J=>{let K=J;for(let[se,le]of w||[])K=QM(K,se,le,!0,h);let V=/<(div|span)\b[^>]*class\s*=\s*"[^"]*\bmathjax-exps\b[^"]*"[^>]*>[\s\S]*?<\/\1>/gi,oe=[],Y=[],te=0;for(let se=V.exec(K);se!==null;se=V.exec(K))oe.push(K.slice(te,se.index)),Y.push(se[0]),te=se.index+se[0].length;oe.push(K.slice(te));for(let[se,le]of _||[])for(let ue=0;ue<oe.length;ue++)oe[ue]=QM(oe[ue],se,le,!1,h);K=oe[0];for(let se=0;se<Y.length;se++)K+=Y[se]+oe[se+1];return K},q=U(M[0]);for(let J=0;J<D.length;J++)q+=D[J]+U(M[J+1]);return q}function QM(p,h,w,_,T){if(!h||!w)return p;let M="",D=0;for(;D<p.length;){if(!p.startsWith(h,D)){M+=p[D],D+=1;continue}let L=D+h.length,U=-1;for(;L<p.length;){if(p.startsWith(w,L)){U=L;break}else p[L]==="\\"&&(L+=1);L+=1}if(U<0){M+=p.slice(D,D+h.length),D+=h.length;continue}let q=p.slice(D+h.length,U).trim();M+=Kc({content:q,openTag:h,closeTag:w,renderingOption:T.config.mathRenderingOption,displayMode:_,katexConfig:T.config.katexConfig}),D=U+w.length}return M}var t2=p=>{let h=p.renderer.renderToken.bind(p.renderer);p.renderer.renderToken=function(w,_,T){if(!T.sourceMap)return h(w,_,T);let M=w[_];return M.type.endsWith("_open")&&M.map!==null&&M.map[0]!==void 0&&M.attrSet("data-source-line",`${M.map[0]+1}`),h(w,_,T)}};var n2=(p,h)=>{p.inline.ruler.before("autolink","tag",(w,_)=>{if(!h.config.enableTagSyntax||w.src.charCodeAt(w.pos)!==35)return!1;if(w.pos>0){let D=w.src.charCodeAt(w.pos-1);if(D===47||D===38||D===63||D===92||D>=48&&D<=57||D>=65&&D<=90||D>=97&&D<=122||D===95||D===45)return!1}{let D=w.pos-1;for(;D>=0;){let L=w.src.charCodeAt(D);if(L===125||L===10)break;if(L===123)return!1;D--}}let T=w.pos+1;for(;T<w.src.length;){let D=w.src.charCodeAt(T);if(D>=48&&D<=57||D>=65&&D<=90||D>=97&&D<=122||D===95||D===45||D===47)T+=1;else break}let M=w.src.slice(w.pos+1,T);if(!M||!/[a-zA-Z_]/.test(M))return!1;if(!_){let D=w.push("tag","span",0);return D.content=M,w.pos=T,!0}return w.pos=T,!0}),p.renderer.rules.tag=(w,_)=>{let{content:T}=w[_];if(!T)return"";let M=p.utils.escapeHtml(T),D=`tag://${encodeURIComponent(T)}`;return`<a class="tag" data-tag="${M}" href="${D}">#${M}</a>`}};var r2=(p,h)=>{let w=p.renderer.rules.image.bind(p.renderer);p.renderer.rules.image=(_,T,M,D,L)=>{let U=_[T];if(U.children&&U.children[0]?.content==="@embedding"){let q=U.attrGet("error")??"";if(q)return decodeURIComponent(atob(q));{let J=U.attrGet("embedding")??"",K=decodeURIComponent(atob(J));return h.initMarkdownIt({...p.options,sourceMap:!1}).render(K)}}return w(_,T,M,D,L)}};import*as lk from"path";var a2=(p,h)=>{p.inline.ruler.before("autolink","wikilink",(w,_)=>{if(!h.config.enableWikiLinkSyntax||!w.src.startsWith("[[",w.pos))return!1;let T,M="]]",D=-1,L=w.pos+M.length;for(;L<w.src.length;){if(w.src[L]==="\\")L+=1;else if(w.src.startsWith(M,L)){D=L;break}L+=1}if(D>=0)T=w.src.slice(w.pos+M.length,D);else return!1;if(T&&!_){let U=w.push("wikilink","a",0);return U.content=T,w.pos+=T.length+2*M.length,!0}else return!1}),p.renderer.rules.wikilink=(w,_)=>{let{content:T}=w[_];if(!T)return"";let{text:M,link:D,hash:L,blockRef:U}=h.processWikilink(T),q=(L||"")+(U||""),J=q?D.slice(0,D.length-q.length):D,K=h.resolveWikilink(J,h.currentRenderFilePath),V=lk.dirname(h.currentRenderFilePath).replace(/\\/g,"/"),oe=K.replace(/\\/g,"/"),te=lk.posix.relative(V,oe)+q,se=T.includes("|")?M:s4(M);return`<a href="${p.utils.escapeHtml(te)}">${p.utils.escapeHtml(se)}</a>`}};function s4(p){let h=p.indexOf("#"),w=p.indexOf("^"),_;return h===-1&&w===-1?_=[p]:h===-1?_=[p.slice(0,w),p.slice(w)]:w===-1?_=[p.slice(0,h),p.slice(h+1)]:w<h?_=[p.slice(0,w),p.slice(w,h),p.slice(h+1)]:_=[p.slice(0,h),p.slice(h+1,w),p.slice(w)],_.filter(T=>T.length>0).join(" > ")}import*as ck from"fs";import*as o2 from"less";import*as Md from"path";var i2=typeof window>"u";function AA(){return{startOnLoad:!1}}function TA(){return{tex:{},options:{},loader:{}}}function RA(){return{macros:{}}}function CA(){return{onWillParseMarkdown:async function(p){return p},onDidParseMarkdown:async function(p){return p}}}function yh(){return{markdownFileExtensions:[".md",".markdown",".mdown",".mkdn",".mkd",".rmd",".qmd",".mdx"],globalCss:"",includeInHeader:"",mermaidConfig:AA(),mathjaxConfig:TA(),katexConfig:RA(),parserConfig:CA(),enablePreviewZenMode:!0,markdownParser:"markdown-it",breakOnSingleNewLine:!0,enableTypographer:!1,enableWikiLinkSyntax:!0,wikiLinkResolution:"relative",wikiLinkTargetFileExtension:".md",wikiLinkTargetFileNameChangeCase:"none",enableLinkify:!0,enableEmojiSyntax:!0,enableExtendedTableSyntax:!1,enableCriticMarkupSyntax:!1,enableTagSyntax:!0,useGitHubStylePipedLink:!1,protocolsWhiteList:"http://, https://, atom://, file://, mailto:, tel:",mathRenderingOption:"KaTeX",mathInlineDelimiters:[["$","$"]],mathBlockDelimiters:[["$$","$$"]],mathRenderingOnlineService:"https://latex.codecogs.com/gif.latex",mathjaxScriptSrc:"https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js",codeBlockTheme:"auto.css",previewTheme:"github-light.css",revealjsTheme:"white.css",mermaidTheme:"default",frontMatterRenderingOption:"none",imageFolderPath:"/assets",printBackground:!1,chromePath:"",imageMagickPath:"",markdownYoBinaryPath:"",pandocPath:"pandoc",pandocMarkdownFlavor:"markdown-raw_tex+tex_math_single_backslash",pandocArguments:[],latexEngine:"pdflatex",enableScriptExecution:!1,enableHTML5Embed:!1,HTML5EmbedUseImageSyntax:!0,HTML5EmbedUseLinkSyntax:!1,HTML5EmbedIsAllowedHttp:!1,HTML5EmbedAudioAttributes:'controls preload="metadata"',HTML5EmbedVideoAttributes:'controls preload="metadata"',puppeteerWaitForTimeout:0,puppeteerArgs:[],plantumlServer:"",plantumlJarPath:"",jsdelivrCdnHost:"cdn.jsdelivr.net",krokiServer:"https://kroki.io",webSequenceDiagramsServer:"https://www.websequencediagrams.com",webSequenceDiagramsApiKey:"",d2Path:"d2",d2Layout:"dagre",d2Theme:0,d2Sketch:!1,isVSCode:!1,alwaysShowBacklinksInPreview:!1,maxNoteFileSize:5*1024*1024,useVSCodeThemeForContextMenu:!1}}var l4=(_=>(_.SinglePreview="Single Preview",_.MultiplePreviews="Multiple Previews",_.PreviewsOnly="Previews Only",_))(l4||{});async function NA(p,h,w=!1){let _=yh(),T={globalCss:_.globalCss,includeInHeader:_.includeInHeader,mermaidConfig:_.mermaidConfig,mathjaxConfig:_.mathjaxConfig,katexConfig:_.katexConfig,parserConfig:_.parserConfig};return w&&await h.mkdir(p),await h.exists(p)&&(T.globalCss=await c4(p,h),T.parserConfig=await p4(p,h),T.includeInHeader=await u4(p,h),T={...T,...await d4(p,h)}),T}async function c4(p,h){let w=Md.join(p,"./style.less"),_;try{_=await h.readFile(w)}catch{_=`
|
|
298
|
+
`:T(D,L,U,q,J)};var VM=(p,h)=>{p.inline.ruler.before("strikethrough","critic-markup",(w,_)=>{if(!h.config.enableCriticMarkupSyntax)return!1;let{src:M,pos:D}=w;if(M[D]==="{"&&(M[D+1]==="-"&&M[D+2]==="-"||M[D+1]==="+"&&M[D+2]==="+"||M[D+1]==="~"&&M[D+2]==="~"||M[D+1]==="="&&M[D+2]==="="||M[D+1]===">"&&M[D+2]===">")){let L=M.slice(D+1,D+3),U=L[0]===">"?"<<}":`${L}}`,q=D+3,J=-1,K;for(;q<M.length;){if(M.startsWith(U,q)){J=q;break}q+=1}if(J>=0)K=M.slice(D+3,J);else return!1;if(K&&!_){let V=w.push("critic-markup","",0);return V.content=K,V.tag=L,w.pos=J+U.length,!0}else return!1}else return!1}),p.renderer.rules["critic-markup"]=(w,_)=>{let T=w[_],M=T.tag,D=T.content;if(M==="--")return`<del>${D}</del>`;if(M==="++")return`<ins>${D}</ins>`;if(M==="==")return`<mark>${D}</mark>`;if(M===">>")return`<span style="display:none">${D}</span>`;{let L=D.split("~>");return L.length===2?`<del>${L[0]}</del><ins>${L[1]}</ins>`:"<code>Error: ~> not found.</code>"}}};var YM=p=>{p.core.ruler.push("curly_bracket_attributes",w=>{let _=w.tokens;for(let T=0;T<_.length;T++)if(_[T].type==="heading_open"){let M=_[T+1];if(M.type==="inline"){if(h(M),!M.children||M.children.length===0)continue;let D=M.children[M.children.length-1];if(D.type==="text"){let L=D.content.match(/{([^}]+)}\s*$/);if(L){let U=Da(L[1]);D.content=D.content.replace(L[0],"");for(let q in U)_[T].attrJoin(q,U[q])}}}}else _[T].type==="inline"&&h(_[T])});function h(w){let _=w.children;if(!(!_||_.length===0))for(let T=0;T<_.length;T++){let M=_[T];if(M.type==="image"&&_[T+1]?.type==="text"){let D=_[T+1].content.match(/^{([^}]+)}/);if(D){let L=Da(D[1]);_[T+1].content=_[T+1].content.replace(D[0],"");for(let U in L)M.attrJoin(U,L[U])}}else if(M.type==="link_open"){let D=T+1;for(;D<_.length&&_[D].type!=="link_close";)D++;if(T=D,D<_.length-1&&_[D+1].type==="text"){let L=_[D+1].content.match(/^{([^}]+)}/);if(L){let U=Da(L[1]);_[D+1].content=_[D+1].content.replace(L[0],"");for(let q in U)M.attrJoin(q,U[q])}}}}}};import t4 from"markdown-it-emoji";import n4 from"markdown-it-emoji/lib/data/full.json"with{type:"json"};var Q3=["fa-accessible-icon","fa-american-sign-language-interpreting","fa-assistive-listening-systems","fa-audio-description","fa-blind","fa-braille","fa-closed-captioning","fa-deaf","fa-low-vision","fa-phone-volume","fa-question-circle","fa-sign-language","fa-tty","fa-universal-access","fa-wheelchair","fa-bell","fa-bell-slash","fa-exclamation","fa-exclamation-circle","fa-exclamation-triangle","fa-radiation","fa-radiation-alt","fa-skull-crossbones","fa-cat","fa-crow","fa-dog","fa-dove","fa-dragon","fa-feather","fa-feather-alt","fa-fish","fa-frog","fa-hippo","fa-horse","fa-horse-head","fa-kiwi-bird","fa-otter","fa-paw","fa-spider","fa-angle-double-down","fa-angle-double-left","fa-angle-double-right","fa-angle-double-up","fa-angle-down","fa-angle-left","fa-angle-right","fa-angle-up","fa-arrow-alt-circle-down","fa-arrow-alt-circle-left","fa-arrow-alt-circle-right","fa-arrow-alt-circle-up","fa-arrow-circle-down","fa-arrow-circle-left","fa-arrow-circle-right","fa-arrow-circle-up","fa-arrow-down","fa-arrow-left","fa-arrow-right","fa-arrow-up","fa-arrows-alt","fa-arrows-alt-h","fa-arrows-alt-v","fa-caret-down","fa-caret-left","fa-caret-right","fa-caret-square-down","fa-caret-square-left","fa-caret-square-right","fa-caret-square-up","fa-caret-up","fa-cart-arrow-down","fa-chart-line","fa-chevron-circle-down","fa-chevron-circle-left","fa-chevron-circle-right","fa-chevron-circle-up","fa-chevron-down","fa-chevron-left","fa-chevron-right","fa-chevron-up","fa-cloud-download-alt","fa-cloud-upload-alt","fa-compress-alt","fa-compress-arrows-alt","fa-download","fa-exchange-alt","fa-expand-alt","fa-expand-arrows-alt","fa-external-link-alt","fa-external-link-square-alt","fa-hand-point-down","fa-hand-point-left","fa-hand-point-right","fa-hand-point-up","fa-hand-pointer","fa-history","fa-level-down-alt","fa-level-up-alt","fa-location-arrow","fa-long-arrow-alt-down","fa-long-arrow-alt-left","fa-long-arrow-alt-right","fa-long-arrow-alt-up","fa-mouse-pointer","fa-play","fa-random","fa-recycle","fa-redo","fa-redo-alt","fa-reply","fa-reply-all","fa-retweet","fa-share","fa-share-square","fa-sign-in-alt","fa-sign-out-alt","fa-sort","fa-sort-alpha-down","fa-sort-alpha-down-alt","fa-sort-alpha-up","fa-sort-alpha-up-alt","fa-sort-amount-down","fa-sort-amount-down-alt","fa-sort-amount-up","fa-sort-amount-up-alt","fa-sort-down","fa-sort-numeric-down","fa-sort-numeric-down-alt","fa-sort-numeric-up","fa-sort-numeric-up-alt","fa-sort-up","fa-sync","fa-sync-alt","fa-text-height","fa-text-width","fa-undo","fa-undo-alt","fa-upload","fa-audio-description","fa-backward","fa-broadcast-tower","fa-circle","fa-closed-captioning","fa-compress","fa-compress-alt","fa-compress-arrows-alt","fa-eject","fa-expand","fa-expand-alt","fa-expand-arrows-alt","fa-fast-backward","fa-fast-forward","fa-file-audio","fa-file-video","fa-film","fa-forward","fa-headphones","fa-microphone","fa-microphone-alt","fa-microphone-alt-slash","fa-microphone-slash","fa-music","fa-pause","fa-pause-circle","fa-phone-volume","fa-photo-video","fa-play","fa-play-circle","fa-podcast","fa-random","fa-redo","fa-redo-alt","fa-rss","fa-rss-square","fa-step-backward","fa-step-forward","fa-stop","fa-stop-circle","fa-sync","fa-sync-alt","fa-tv","fa-undo","fa-undo-alt","fa-video","fa-volume-down","fa-volume-mute","fa-volume-off","fa-volume-up","fa-youtube","fa-air-freshener","fa-ambulance","fa-bus","fa-bus-alt","fa-car","fa-car-alt","fa-car-battery","fa-car-crash","fa-car-side","fa-caravan","fa-charging-station","fa-gas-pump","fa-motorcycle","fa-oil-can","fa-shuttle-van","fa-tachometer-alt","fa-taxi","fa-trailer","fa-truck","fa-truck-monster","fa-truck-pickup","fa-apple-alt","fa-campground","fa-cloud-sun","fa-drumstick-bite","fa-football-ball","fa-hiking","fa-mountain","fa-tractor","fa-tree","fa-wind","fa-wine-bottle","fa-beer","fa-blender","fa-cocktail","fa-coffee","fa-flask","fa-glass-cheers","fa-glass-martini","fa-glass-martini-alt","fa-glass-whiskey","fa-mug-hot","fa-wine-bottle","fa-wine-glass","fa-wine-glass-alt","fa-archway","fa-building","fa-campground","fa-church","fa-city","fa-clinic-medical","fa-dungeon","fa-gopuram","fa-home","fa-hospital","fa-hospital-alt","fa-hospital-user","fa-hotel","fa-house-damage","fa-igloo","fa-industry","fa-kaaba","fa-landmark","fa-monument","fa-mosque","fa-place-of-worship","fa-school","fa-store","fa-store-alt","fa-synagogue","fa-torii-gate","fa-university","fa-vihara","fa-warehouse","fa-address-book","fa-address-card","fa-archive","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-birthday-cake","fa-book","fa-briefcase","fa-building","fa-bullhorn","fa-bullseye","fa-business-time","fa-calculator","fa-calendar","fa-calendar-alt","fa-certificate","fa-chart-area","fa-chart-bar","fa-chart-line","fa-chart-pie","fa-city","fa-clipboard","fa-coffee","fa-columns","fa-compass","fa-copy","fa-copyright","fa-cut","fa-edit","fa-envelope","fa-envelope-open","fa-envelope-square","fa-eraser","fa-fax","fa-file","fa-file-alt","fa-folder","fa-folder-minus","fa-folder-open","fa-folder-plus","fa-glasses","fa-globe","fa-highlighter","fa-industry","fa-landmark","fa-laptop-house","fa-marker","fa-paperclip","fa-paste","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pen-nib","fa-pen-square","fa-pencil-alt","fa-percent","fa-phone","fa-phone-alt","fa-phone-slash","fa-phone-square","fa-phone-square-alt","fa-phone-volume","fa-print","fa-project-diagram","fa-registered","fa-save","fa-sitemap","fa-socks","fa-sticky-note","fa-stream","fa-table","fa-tag","fa-tags","fa-tasks","fa-thumbtack","fa-trademark","fa-wallet","fa-binoculars","fa-campground","fa-caravan","fa-compass","fa-faucet","fa-fire","fa-fire-alt","fa-first-aid","fa-frog","fa-hiking","fa-map","fa-map-marked","fa-map-marked-alt","fa-map-signs","fa-mountain","fa-route","fa-toilet-paper","fa-trailer","fa-tree","fa-dollar-sign","fa-donate","fa-dove","fa-gift","fa-globe","fa-hand-holding-heart","fa-hand-holding-usd","fa-hand-holding-water","fa-hands-helping","fa-handshake","fa-heart","fa-leaf","fa-parachute-box","fa-piggy-bank","fa-ribbon","fa-seedling","fa-comment","fa-comment-alt","fa-comment-dots","fa-comment-medical","fa-comment-slash","fa-comments","fa-frown","fa-icons","fa-meh","fa-phone","fa-phone-alt","fa-phone-slash","fa-poo","fa-quote-left","fa-quote-right","fa-smile","fa-sms","fa-video","fa-video-slash","fa-chess","fa-chess-bishop","fa-chess-board","fa-chess-king","fa-chess-knight","fa-chess-pawn","fa-chess-queen","fa-chess-rook","fa-square-full","fa-apple-alt","fa-baby","fa-baby-carriage","fa-bath","fa-biking","fa-birthday-cake","fa-cookie","fa-cookie-bite","fa-gamepad","fa-ice-cream","fa-mitten","fa-robot","fa-school","fa-shapes","fa-snowman","fa-graduation-cap","fa-hat-cowboy","fa-hat-cowboy-side","fa-hat-wizard","fa-mitten","fa-shoe-prints","fa-socks","fa-tshirt","fa-user-tie","fa-archive","fa-barcode","fa-bath","fa-bug","fa-code","fa-code-branch","fa-coffee","fa-file","fa-file-alt","fa-file-code","fa-filter","fa-fire-extinguisher","fa-folder","fa-folder-open","fa-keyboard","fa-laptop-code","fa-microchip","fa-project-diagram","fa-qrcode","fa-shield-alt","fa-sitemap","fa-stream","fa-terminal","fa-user-secret","fa-window-close","fa-window-maximize","fa-window-minimize","fa-window-restore","fa-address-book","fa-address-card","fa-american-sign-language-interpreting","fa-assistive-listening-systems","fa-at","fa-bell","fa-bell-slash","fa-bluetooth","fa-bluetooth-b","fa-broadcast-tower","fa-bullhorn","fa-chalkboard","fa-comment","fa-comment-alt","fa-comments","fa-envelope","fa-envelope-open","fa-envelope-square","fa-fax","fa-inbox","fa-language","fa-microphone","fa-microphone-alt","fa-microphone-alt-slash","fa-microphone-slash","fa-mobile","fa-mobile-alt","fa-paper-plane","fa-phone","fa-phone-alt","fa-phone-slash","fa-phone-square","fa-phone-square-alt","fa-phone-volume","fa-rss","fa-rss-square","fa-tty","fa-voicemail","fa-wifi","fa-compact-disc","fa-database","fa-desktop","fa-download","fa-ethernet","fa-hdd","fa-headphones","fa-keyboard","fa-laptop","fa-laptop-house","fa-memory","fa-microchip","fa-mobile","fa-mobile-alt","fa-mouse","fa-plug","fa-power-off","fa-print","fa-satellite","fa-satellite-dish","fa-save","fa-sd-card","fa-server","fa-sim-card","fa-stream","fa-tablet","fa-tablet-alt","fa-tv","fa-upload","fa-brush","fa-drafting-compass","fa-dumpster","fa-hammer","fa-hard-hat","fa-paint-roller","fa-pencil-alt","fa-pencil-ruler","fa-ruler","fa-ruler-combined","fa-ruler-horizontal","fa-ruler-vertical","fa-screwdriver","fa-toolbox","fa-tools","fa-truck-pickup","fa-wrench","fa-bitcoin","fa-btc","fa-dollar-sign","fa-ethereum","fa-euro-sign","fa-gg","fa-gg-circle","fa-hryvnia","fa-lira-sign","fa-money-bill","fa-money-bill-alt","fa-money-bill-wave","fa-money-bill-wave-alt","fa-money-check","fa-money-check-alt","fa-pound-sign","fa-ruble-sign","fa-rupee-sign","fa-shekel-sign","fa-tenge","fa-won-sign","fa-yen-sign","fa-bell","fa-bell-slash","fa-calendar","fa-calendar-alt","fa-calendar-check","fa-calendar-minus","fa-calendar-plus","fa-calendar-times","fa-clock","fa-hourglass","fa-hourglass-end","fa-hourglass-half","fa-hourglass-start","fa-stopwatch","fa-adjust","fa-bezier-curve","fa-brush","fa-clone","fa-copy","fa-crop","fa-crop-alt","fa-crosshairs","fa-cut","fa-drafting-compass","fa-draw-polygon","fa-edit","fa-eraser","fa-eye","fa-eye-dropper","fa-eye-slash","fa-fill","fa-fill-drip","fa-highlighter","fa-icons","fa-layer-group","fa-magic","fa-marker","fa-object-group","fa-object-ungroup","fa-paint-brush","fa-paint-roller","fa-palette","fa-paste","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pen-nib","fa-pencil-alt","fa-pencil-ruler","fa-ruler-combined","fa-ruler-horizontal","fa-ruler-vertical","fa-save","fa-splotch","fa-spray-can","fa-stamp","fa-swatchbook","fa-tint","fa-tint-slash","fa-vector-square","fa-align-center","fa-align-justify","fa-align-left","fa-align-right","fa-bold","fa-border-all","fa-border-none","fa-border-style","fa-clipboard","fa-clone","fa-columns","fa-copy","fa-cut","fa-edit","fa-eraser","fa-file","fa-file-alt","fa-font","fa-glasses","fa-heading","fa-highlighter","fa-i-cursor","fa-icons","fa-indent","fa-italic","fa-link","fa-list","fa-list-alt","fa-list-ol","fa-list-ul","fa-marker","fa-outdent","fa-paper-plane","fa-paperclip","fa-paragraph","fa-paste","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pen-nib","fa-pencil-alt","fa-print","fa-quote-left","fa-quote-right","fa-redo","fa-redo-alt","fa-remove-format","fa-reply","fa-reply-all","fa-screwdriver","fa-share","fa-spell-check","fa-strikethrough","fa-subscript","fa-superscript","fa-sync","fa-sync-alt","fa-table","fa-tasks","fa-text-height","fa-text-width","fa-th","fa-th-large","fa-th-list","fa-tools","fa-trash","fa-trash-alt","fa-trash-restore","fa-trash-restore-alt","fa-underline","fa-undo","fa-undo-alt","fa-unlink","fa-wrench","fa-apple-alt","fa-atom","fa-award","fa-bell","fa-bell-slash","fa-book-open","fa-book-reader","fa-chalkboard","fa-chalkboard-teacher","fa-graduation-cap","fa-laptop-code","fa-microscope","fa-music","fa-school","fa-shapes","fa-theater-masks","fa-user-graduate","fa-angry","fa-dizzy","fa-flushed","fa-frown","fa-frown-open","fa-grimace","fa-grin","fa-grin-alt","fa-grin-beam","fa-grin-beam-sweat","fa-grin-hearts","fa-grin-squint","fa-grin-squint-tears","fa-grin-stars","fa-grin-tears","fa-grin-tongue","fa-grin-tongue-squint","fa-grin-tongue-wink","fa-grin-wink","fa-kiss","fa-kiss-beam","fa-kiss-wink-heart","fa-laugh","fa-laugh-beam","fa-laugh-squint","fa-laugh-wink","fa-meh","fa-meh-blank","fa-meh-rolling-eyes","fa-sad-cry","fa-sad-tear","fa-smile","fa-smile-beam","fa-smile-wink","fa-surprise","fa-tired","fa-atom","fa-battery-empty","fa-battery-full","fa-battery-half","fa-battery-quarter","fa-battery-three-quarters","fa-broadcast-tower","fa-burn","fa-charging-station","fa-fan","fa-fire","fa-fire-alt","fa-gas-pump","fa-industry","fa-leaf","fa-lightbulb","fa-plug","fa-poop","fa-power-off","fa-radiation","fa-radiation-alt","fa-seedling","fa-solar-panel","fa-sun","fa-water","fa-wind","fa-archive","fa-clone","fa-copy","fa-cut","fa-file","fa-file-alt","fa-file-archive","fa-file-audio","fa-file-code","fa-file-excel","fa-file-image","fa-file-pdf","fa-file-powerpoint","fa-file-video","fa-file-word","fa-folder","fa-folder-open","fa-paste","fa-photo-video","fa-save","fa-sticky-note","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-book","fa-cash-register","fa-chart-line","fa-chart-pie","fa-coins","fa-comment-dollar","fa-comments-dollar","fa-credit-card","fa-donate","fa-file-invoice","fa-file-invoice-dollar","fa-hand-holding-usd","fa-landmark","fa-money-bill","fa-money-bill-alt","fa-money-bill-wave","fa-money-bill-wave-alt","fa-money-check","fa-money-check-alt","fa-percentage","fa-piggy-bank","fa-receipt","fa-stamp","fa-wallet","fa-bicycle","fa-biking","fa-burn","fa-fire-alt","fa-heart","fa-heartbeat","fa-hiking","fa-running","fa-shoe-prints","fa-skating","fa-skiing","fa-skiing-nordic","fa-snowboarding","fa-spa","fa-swimmer","fa-walking","fa-apple-alt","fa-bacon","fa-bone","fa-bread-slice","fa-candy-cane","fa-carrot","fa-cheese","fa-cloud-meatball","fa-cookie","fa-drumstick-bite","fa-egg","fa-fish","fa-hamburger","fa-hotdog","fa-ice-cream","fa-lemon","fa-pepper-hot","fa-pizza-slice","fa-seedling","fa-stroopwafel","fa-apple-alt","fa-carrot","fa-leaf","fa-lemon","fa-pepper-hot","fa-seedling","fa-chess","fa-chess-bishop","fa-chess-board","fa-chess-king","fa-chess-knight","fa-chess-pawn","fa-chess-queen","fa-chess-rook","fa-dice","fa-dice-d20","fa-dice-d6","fa-dice-five","fa-dice-four","fa-dice-one","fa-dice-six","fa-dice-three","fa-dice-two","fa-gamepad","fa-ghost","fa-headset","fa-heart","fa-playstation","fa-puzzle-piece","fa-steam","fa-steam-square","fa-steam-symbol","fa-twitch","fa-xbox","fa-acquisitions-incorporated","fa-book-dead","fa-critical-role","fa-d-and-d","fa-d-and-d-beyond","fa-dice-d20","fa-dice-d6","fa-dragon","fa-dungeon","fa-fantasy-flight-games","fa-fist-raised","fa-hat-wizard","fa-penny-arcade","fa-ring","fa-scroll","fa-skull-crossbones","fa-wizards-of-the-coast","fa-genderless","fa-mars","fa-mars-double","fa-mars-stroke","fa-mars-stroke-h","fa-mars-stroke-v","fa-mercury","fa-neuter","fa-transgender","fa-transgender-alt","fa-venus","fa-venus-double","fa-venus-mars","fa-book-dead","fa-broom","fa-cat","fa-cloud-moon","fa-crow","fa-ghost","fa-hat-wizard","fa-mask","fa-skull-crossbones","fa-spider","fa-toilet-paper","fa-allergies","fa-fist-raised","fa-hand-holding","fa-hand-holding-heart","fa-hand-holding-medical","fa-hand-holding-usd","fa-hand-holding-water","fa-hand-lizard","fa-hand-middle-finger","fa-hand-paper","fa-hand-peace","fa-hand-point-down","fa-hand-point-left","fa-hand-point-right","fa-hand-point-up","fa-hand-pointer","fa-hand-rock","fa-hand-scissors","fa-hand-sparkles","fa-hand-spock","fa-hands","fa-hands-helping","fa-hands-wash","fa-handshake","fa-handshake-alt-slash","fa-handshake-slash","fa-praying-hands","fa-thumbs-down","fa-thumbs-up","fa-accessible-icon","fa-ambulance","fa-h-square","fa-heart","fa-heartbeat","fa-hospital","fa-medkit","fa-plus-square","fa-prescription","fa-stethoscope","fa-user-md","fa-wheelchair","fa-candy-cane","fa-carrot","fa-cookie-bite","fa-gift","fa-gifts","fa-glass-cheers","fa-holly-berry","fa-mug-hot","fa-sleigh","fa-snowman","fa-baby-carriage","fa-bath","fa-bed","fa-briefcase","fa-car","fa-cocktail","fa-coffee","fa-concierge-bell","fa-dice","fa-dice-five","fa-door-closed","fa-door-open","fa-dumbbell","fa-glass-martini","fa-glass-martini-alt","fa-hot-tub","fa-hotel","fa-infinity","fa-key","fa-luggage-cart","fa-shower","fa-shuttle-van","fa-smoking","fa-smoking-ban","fa-snowflake","fa-spa","fa-suitcase","fa-suitcase-rolling","fa-swimmer","fa-swimming-pool","fa-tv","fa-umbrella-beach","fa-utensils","fa-wheelchair","fa-wifi","fa-bath","fa-bed","fa-bell","fa-blender","fa-box-tissue","fa-chair","fa-coffee","fa-couch","fa-door-closed","fa-door-open","fa-dungeon","fa-fan","fa-faucet","fa-house-user","fa-laptop-house","fa-lightbulb","fa-plug","fa-pump-soap","fa-shower","fa-sink","fa-snowflake","fa-soap","fa-toilet-paper","fa-toilet-paper-slash","fa-tv","fa-adjust","fa-bolt","fa-camera","fa-camera-retro","fa-chalkboard","fa-clone","fa-compress","fa-compress-arrows-alt","fa-expand","fa-eye","fa-eye-dropper","fa-eye-slash","fa-file-image","fa-film","fa-id-badge","fa-id-card","fa-image","fa-images","fa-photo-video","fa-portrait","fa-sliders-h","fa-tint","fa-unsplash","fa-award","fa-ban","fa-barcode","fa-bars","fa-beer","fa-bell","fa-bell-slash","fa-blog","fa-bug","fa-bullhorn","fa-bullseye","fa-calculator","fa-calendar","fa-calendar-alt","fa-calendar-check","fa-calendar-minus","fa-calendar-plus","fa-calendar-times","fa-certificate","fa-check","fa-check-circle","fa-check-double","fa-check-square","fa-circle","fa-clipboard","fa-clone","fa-cloud","fa-cloud-download-alt","fa-cloud-upload-alt","fa-coffee","fa-cog","fa-cogs","fa-copy","fa-cut","fa-database","fa-dot-circle","fa-download","fa-edit","fa-ellipsis-h","fa-ellipsis-v","fa-envelope","fa-envelope-open","fa-eraser","fa-exclamation","fa-exclamation-circle","fa-exclamation-triangle","fa-external-link-alt","fa-external-link-square-alt","fa-eye","fa-eye-slash","fa-file","fa-file-alt","fa-file-download","fa-file-export","fa-file-import","fa-file-upload","fa-filter","fa-fingerprint","fa-flag","fa-flag-checkered","fa-folder","fa-folder-open","fa-frown","fa-glasses","fa-grip-horizontal","fa-grip-lines","fa-grip-lines-vertical","fa-grip-vertical","fa-hashtag","fa-heart","fa-history","fa-home","fa-i-cursor","fa-info","fa-info-circle","fa-language","fa-magic","fa-marker","fa-medal","fa-meh","fa-microphone","fa-microphone-alt","fa-microphone-slash","fa-minus","fa-minus-circle","fa-minus-square","fa-paste","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pencil-alt","fa-plus","fa-plus-circle","fa-plus-square","fa-poo","fa-qrcode","fa-question","fa-question-circle","fa-quote-left","fa-quote-right","fa-redo","fa-redo-alt","fa-reply","fa-reply-all","fa-rss","fa-rss-square","fa-save","fa-screwdriver","fa-search","fa-search-minus","fa-search-plus","fa-share","fa-share-alt","fa-share-alt-square","fa-share-square","fa-shield-alt","fa-sign-in-alt","fa-sign-out-alt","fa-signal","fa-sitemap","fa-sliders-h","fa-smile","fa-sort","fa-sort-alpha-down","fa-sort-alpha-down-alt","fa-sort-alpha-up","fa-sort-alpha-up-alt","fa-sort-amount-down","fa-sort-amount-down-alt","fa-sort-amount-up","fa-sort-amount-up-alt","fa-sort-down","fa-sort-numeric-down","fa-sort-numeric-down-alt","fa-sort-numeric-up","fa-sort-numeric-up-alt","fa-sort-up","fa-star","fa-star-half","fa-sync","fa-sync-alt","fa-thumbs-down","fa-thumbs-up","fa-times","fa-times-circle","fa-toggle-off","fa-toggle-on","fa-tools","fa-trash","fa-trash-alt","fa-trash-restore","fa-trash-restore-alt","fa-trophy","fa-undo","fa-undo-alt","fa-upload","fa-user","fa-user-alt","fa-user-circle","fa-volume-down","fa-volume-mute","fa-volume-off","fa-volume-up","fa-wifi","fa-wrench","fa-box","fa-boxes","fa-clipboard-check","fa-clipboard-list","fa-dolly","fa-dolly-flatbed","fa-hard-hat","fa-pallet","fa-shipping-fast","fa-truck","fa-warehouse","fa-ambulance","fa-anchor","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-bath","fa-bed","fa-beer","fa-bell","fa-bell-slash","fa-bicycle","fa-binoculars","fa-birthday-cake","fa-blind","fa-bomb","fa-book","fa-bookmark","fa-briefcase","fa-building","fa-car","fa-coffee","fa-crosshairs","fa-directions","fa-dollar-sign","fa-draw-polygon","fa-eye","fa-eye-slash","fa-fighter-jet","fa-fire","fa-fire-alt","fa-fire-extinguisher","fa-flag","fa-flag-checkered","fa-flask","fa-gamepad","fa-gavel","fa-gift","fa-glass-martini","fa-globe","fa-graduation-cap","fa-h-square","fa-heart","fa-heartbeat","fa-helicopter","fa-home","fa-hospital","fa-image","fa-images","fa-industry","fa-info","fa-info-circle","fa-key","fa-landmark","fa-layer-group","fa-leaf","fa-lemon","fa-life-ring","fa-lightbulb","fa-location-arrow","fa-low-vision","fa-magnet","fa-male","fa-map","fa-map-marker","fa-map-marker-alt","fa-map-pin","fa-map-signs","fa-medkit","fa-money-bill","fa-money-bill-alt","fa-motorcycle","fa-music","fa-newspaper","fa-parking","fa-paw","fa-phone","fa-phone-alt","fa-phone-square","fa-phone-square-alt","fa-phone-volume","fa-plane","fa-plug","fa-plus","fa-plus-square","fa-print","fa-recycle","fa-restroom","fa-road","fa-rocket","fa-route","fa-search","fa-search-minus","fa-search-plus","fa-ship","fa-shoe-prints","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-shower","fa-snowplow","fa-street-view","fa-subway","fa-suitcase","fa-tag","fa-tags","fa-taxi","fa-thumbtack","fa-ticket-alt","fa-tint","fa-traffic-light","fa-train","fa-tram","fa-tree","fa-trophy","fa-truck","fa-tty","fa-umbrella","fa-university","fa-utensil-spoon","fa-utensils","fa-vest","fa-vest-patches","fa-wheelchair","fa-wifi","fa-wine-glass","fa-wrench","fa-anchor","fa-binoculars","fa-compass","fa-dharmachakra","fa-frog","fa-ship","fa-skull-crossbones","fa-swimmer","fa-water","fa-wind","fa-ad","fa-bullhorn","fa-bullseye","fa-comment-dollar","fa-comments-dollar","fa-envelope-open-text","fa-funnel-dollar","fa-lightbulb","fa-mail-bulk","fa-poll","fa-poll-h","fa-search-dollar","fa-search-location","fa-calculator","fa-divide","fa-equals","fa-greater-than","fa-greater-than-equal","fa-infinity","fa-less-than","fa-less-than-equal","fa-minus","fa-not-equal","fa-percentage","fa-plus","fa-square-root-alt","fa-subscript","fa-superscript","fa-times","fa-wave-square","fa-allergies","fa-ambulance","fa-bacteria","fa-bacterium","fa-band-aid","fa-biohazard","fa-bone","fa-bong","fa-book-medical","fa-brain","fa-briefcase-medical","fa-burn","fa-cannabis","fa-capsules","fa-clinic-medical","fa-comment-medical","fa-crutch","fa-diagnoses","fa-disease","fa-dna","fa-file-medical","fa-file-medical-alt","fa-file-prescription","fa-first-aid","fa-hand-holding-medical","fa-head-side-cough","fa-head-side-cough-slash","fa-head-side-mask","fa-head-side-virus","fa-heart","fa-heartbeat","fa-hospital","fa-hospital-alt","fa-hospital-symbol","fa-hospital-user","fa-id-card-alt","fa-joint","fa-laptop-medical","fa-lungs","fa-lungs-virus","fa-microscope","fa-mortar-pestle","fa-notes-medical","fa-pager","fa-pills","fa-plus","fa-poop","fa-prescription","fa-prescription-bottle","fa-prescription-bottle-alt","fa-procedures","fa-pump-medical","fa-radiation","fa-radiation-alt","fa-shield-virus","fa-smoking","fa-smoking-ban","fa-star-of-life","fa-stethoscope","fa-syringe","fa-tablets","fa-teeth","fa-teeth-open","fa-thermometer","fa-tooth","fa-user-md","fa-user-nurse","fa-vial","fa-vials","fa-virus","fa-virus-slash","fa-viruses","fa-weight","fa-x-ray","fa-archive","fa-box-open","fa-caravan","fa-couch","fa-dolly","fa-people-carry","fa-route","fa-sign","fa-suitcase","fa-tape","fa-trailer","fa-truck-loading","fa-truck-moving","fa-wine-glass","fa-compact-disc","fa-drum","fa-drum-steelpan","fa-file-audio","fa-guitar","fa-headphones","fa-headphones-alt","fa-microphone","fa-microphone-alt","fa-microphone-alt-slash","fa-microphone-slash","fa-music","fa-napster","fa-play","fa-record-vinyl","fa-sliders-h","fa-soundcloud","fa-spotify","fa-volume-down","fa-volume-mute","fa-volume-off","fa-volume-up","fa-ambulance","fa-anchor","fa-archive","fa-award","fa-baby-carriage","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-bath","fa-bed","fa-beer","fa-bell","fa-bicycle","fa-binoculars","fa-birthday-cake","fa-blender","fa-bomb","fa-book","fa-book-dead","fa-bookmark","fa-briefcase","fa-broadcast-tower","fa-bug","fa-building","fa-bullhorn","fa-bullseye","fa-bus","fa-calculator","fa-calendar","fa-calendar-alt","fa-camera","fa-camera-retro","fa-candy-cane","fa-car","fa-carrot","fa-church","fa-clipboard","fa-cloud","fa-coffee","fa-cog","fa-cogs","fa-compass","fa-cookie","fa-cookie-bite","fa-copy","fa-cube","fa-cubes","fa-cut","fa-dice","fa-dice-d20","fa-dice-d6","fa-dice-five","fa-dice-four","fa-dice-one","fa-dice-six","fa-dice-three","fa-dice-two","fa-digital-tachograph","fa-door-closed","fa-door-open","fa-drum","fa-drum-steelpan","fa-envelope","fa-envelope-open","fa-eraser","fa-eye","fa-eye-dropper","fa-fax","fa-feather","fa-feather-alt","fa-fighter-jet","fa-file","fa-file-alt","fa-file-prescription","fa-film","fa-fire","fa-fire-alt","fa-fire-extinguisher","fa-flag","fa-flag-checkered","fa-flask","fa-futbol","fa-gamepad","fa-gavel","fa-gem","fa-gift","fa-gifts","fa-glass-cheers","fa-glass-martini","fa-glass-whiskey","fa-glasses","fa-globe","fa-graduation-cap","fa-guitar","fa-hat-wizard","fa-hdd","fa-headphones","fa-headphones-alt","fa-headset","fa-heart","fa-heart-broken","fa-helicopter","fa-highlighter","fa-holly-berry","fa-home","fa-hospital","fa-hourglass","fa-igloo","fa-image","fa-images","fa-industry","fa-key","fa-keyboard","fa-laptop","fa-leaf","fa-lemon","fa-life-ring","fa-lightbulb","fa-lock","fa-lock-open","fa-magic","fa-magnet","fa-map","fa-map-marker","fa-map-marker-alt","fa-map-pin","fa-map-signs","fa-marker","fa-medal","fa-medkit","fa-memory","fa-microchip","fa-microphone","fa-microphone-alt","fa-mitten","fa-mobile","fa-mobile-alt","fa-money-bill","fa-money-bill-alt","fa-money-check","fa-money-check-alt","fa-moon","fa-motorcycle","fa-mug-hot","fa-newspaper","fa-paint-brush","fa-paper-plane","fa-paperclip","fa-paste","fa-paw","fa-pen","fa-pen-alt","fa-pen-fancy","fa-pen-nib","fa-pencil-alt","fa-phone","fa-phone-alt","fa-plane","fa-plug","fa-print","fa-puzzle-piece","fa-ring","fa-road","fa-rocket","fa-ruler-combined","fa-ruler-horizontal","fa-ruler-vertical","fa-satellite","fa-satellite-dish","fa-save","fa-school","fa-screwdriver","fa-scroll","fa-sd-card","fa-search","fa-shield-alt","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-shower","fa-sim-card","fa-skull-crossbones","fa-sleigh","fa-snowflake","fa-snowplow","fa-space-shuttle","fa-star","fa-sticky-note","fa-stopwatch","fa-stroopwafel","fa-subway","fa-suitcase","fa-sun","fa-tablet","fa-tablet-alt","fa-tachometer-alt","fa-tag","fa-tags","fa-taxi","fa-thumbtack","fa-ticket-alt","fa-toilet","fa-toolbox","fa-tools","fa-train","fa-tram","fa-trash","fa-trash-alt","fa-tree","fa-trophy","fa-truck","fa-tv","fa-umbrella","fa-university","fa-unlock","fa-unlock-alt","fa-utensil-spoon","fa-utensils","fa-wallet","fa-weight","fa-wheelchair","fa-wine-glass","fa-wrench","fa-alipay","fa-amazon-pay","fa-apple-pay","fa-bell","fa-bitcoin","fa-bookmark","fa-btc","fa-bullhorn","fa-camera","fa-camera-retro","fa-cart-arrow-down","fa-cart-plus","fa-cc-amazon-pay","fa-cc-amex","fa-cc-apple-pay","fa-cc-diners-club","fa-cc-discover","fa-cc-jcb","fa-cc-mastercard","fa-cc-paypal","fa-cc-stripe","fa-cc-visa","fa-certificate","fa-credit-card","fa-ethereum","fa-gem","fa-gift","fa-google-pay","fa-google-wallet","fa-handshake","fa-heart","fa-key","fa-money-check","fa-money-check-alt","fa-paypal","fa-receipt","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-star","fa-stripe","fa-stripe-s","fa-tag","fa-tags","fa-thumbs-down","fa-thumbs-up","fa-trophy","fa-band-aid","fa-book-medical","fa-cannabis","fa-capsules","fa-clinic-medical","fa-disease","fa-eye-dropper","fa-file-medical","fa-file-prescription","fa-first-aid","fa-flask","fa-history","fa-joint","fa-laptop-medical","fa-mortar-pestle","fa-notes-medical","fa-pills","fa-prescription","fa-prescription-bottle","fa-prescription-bottle-alt","fa-receipt","fa-skull-crossbones","fa-syringe","fa-tablets","fa-thermometer","fa-vial","fa-vials","fa-award","fa-balance-scale","fa-balance-scale-left","fa-balance-scale-right","fa-bullhorn","fa-check-double","fa-democrat","fa-donate","fa-dove","fa-fist-raised","fa-flag-usa","fa-handshake","fa-person-booth","fa-piggy-bank","fa-republican","fa-vote-yea","fa-ankh","fa-atom","fa-bahai","fa-bible","fa-church","fa-cross","fa-dharmachakra","fa-dove","fa-gopuram","fa-hamsa","fa-hanukiah","fa-jedi","fa-journal-whills","fa-kaaba","fa-khanda","fa-menorah","fa-mosque","fa-om","fa-pastafarianism","fa-peace","fa-place-of-worship","fa-pray","fa-praying-hands","fa-quran","fa-star-and-crescent","fa-star-of-david","fa-synagogue","fa-torah","fa-torii-gate","fa-vihara","fa-yin-yang","fa-atom","fa-biohazard","fa-brain","fa-burn","fa-capsules","fa-clipboard-check","fa-disease","fa-dna","fa-eye-dropper","fa-filter","fa-fire","fa-fire-alt","fa-flask","fa-frog","fa-magnet","fa-microscope","fa-mortar-pestle","fa-pills","fa-prescription-bottle","fa-radiation","fa-radiation-alt","fa-seedling","fa-skull-crossbones","fa-syringe","fa-tablets","fa-temperature-high","fa-temperature-low","fa-vial","fa-vials","fa-atom","fa-galactic-republic","fa-galactic-senate","fa-globe","fa-hand-spock","fa-jedi","fa-jedi-order","fa-journal-whills","fa-meteor","fa-moon","fa-old-republic","fa-robot","fa-rocket","fa-satellite","fa-satellite-dish","fa-space-shuttle","fa-user-astronaut","fa-ban","fa-bug","fa-door-closed","fa-door-open","fa-dungeon","fa-eye","fa-eye-slash","fa-file-contract","fa-file-signature","fa-fingerprint","fa-id-badge","fa-id-card","fa-id-card-alt","fa-key","fa-lock","fa-lock-open","fa-mask","fa-passport","fa-shield-alt","fa-unlock","fa-unlock-alt","fa-user-lock","fa-user-secret","fa-user-shield","fa-bookmark","fa-calendar","fa-certificate","fa-circle","fa-cloud","fa-comment","fa-file","fa-folder","fa-heart","fa-heart-broken","fa-map-marker","fa-play","fa-shapes","fa-square","fa-star","fa-barcode","fa-cart-arrow-down","fa-cart-plus","fa-cash-register","fa-gift","fa-gifts","fa-person-booth","fa-receipt","fa-shipping-fast","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-store","fa-store-alt","fa-store-alt-slash","fa-store-slash","fa-truck","fa-tshirt","fa-bell","fa-birthday-cake","fa-camera","fa-comment","fa-comment-alt","fa-envelope","fa-hashtag","fa-heart","fa-icons","fa-image","fa-images","fa-map-marker","fa-map-marker-alt","fa-photo-video","fa-poll","fa-poll-h","fa-retweet","fa-share","fa-share-alt","fa-share-square","fa-star","fa-thumbs-down","fa-thumbs-up","fa-thumbtack","fa-user","fa-user-circle","fa-user-friends","fa-user-plus","fa-users","fa-video","fa-asterisk","fa-atom","fa-bahai","fa-certificate","fa-circle-notch","fa-cog","fa-compact-disc","fa-compass","fa-crosshairs","fa-dharmachakra","fa-fan","fa-life-ring","fa-palette","fa-ring","fa-slash","fa-snowflake","fa-spinner","fa-stroopwafel","fa-sun","fa-sync","fa-sync-alt","fa-yin-yang","fa-baseball-ball","fa-basketball-ball","fa-biking","fa-bowling-ball","fa-dumbbell","fa-football-ball","fa-futbol","fa-golf-ball","fa-hockey-puck","fa-quidditch","fa-running","fa-skating","fa-skiing","fa-skiing-nordic","fa-snowboarding","fa-swimmer","fa-table-tennis","fa-volleyball-ball","fa-allergies","fa-broom","fa-cloud-sun","fa-cloud-sun-rain","fa-frog","fa-rainbow","fa-seedling","fa-umbrella","fa-ban","fa-battery-empty","fa-battery-full","fa-battery-half","fa-battery-quarter","fa-battery-three-quarters","fa-bell","fa-bell-slash","fa-calendar","fa-calendar-alt","fa-calendar-check","fa-calendar-day","fa-calendar-minus","fa-calendar-plus","fa-calendar-times","fa-calendar-week","fa-cart-arrow-down","fa-cart-plus","fa-comment","fa-comment-alt","fa-comment-slash","fa-compass","fa-door-closed","fa-door-open","fa-exclamation","fa-exclamation-circle","fa-exclamation-triangle","fa-eye","fa-eye-slash","fa-file","fa-file-alt","fa-folder","fa-folder-open","fa-gas-pump","fa-info","fa-info-circle","fa-lightbulb","fa-lock","fa-lock-open","fa-map-marker","fa-map-marker-alt","fa-microphone","fa-microphone-alt","fa-microphone-alt-slash","fa-microphone-slash","fa-minus","fa-minus-circle","fa-minus-square","fa-parking","fa-phone","fa-phone-alt","fa-phone-slash","fa-plus","fa-plus-circle","fa-plus-square","fa-print","fa-question","fa-question-circle","fa-shield-alt","fa-shopping-cart","fa-sign-in-alt","fa-sign-out-alt","fa-signal","fa-smoking-ban","fa-star","fa-star-half","fa-star-half-alt","fa-stream","fa-thermometer-empty","fa-thermometer-full","fa-thermometer-half","fa-thermometer-quarter","fa-thermometer-three-quarters","fa-thumbs-down","fa-thumbs-up","fa-tint","fa-tint-slash","fa-toggle-off","fa-toggle-on","fa-unlock","fa-unlock-alt","fa-user","fa-user-alt","fa-user-alt-slash","fa-user-slash","fa-video","fa-video-slash","fa-volume-down","fa-volume-mute","fa-volume-off","fa-volume-up","fa-wifi","fa-anchor","fa-biking","fa-fish","fa-hotdog","fa-ice-cream","fa-lemon","fa-sun","fa-swimmer","fa-swimming-pool","fa-umbrella-beach","fa-volleyball-ball","fa-water","fa-bullseye","fa-check-circle","fa-circle","fa-dot-circle","fa-microphone","fa-microphone-slash","fa-star","fa-star-half","fa-star-half-alt","fa-toggle-off","fa-toggle-on","fa-wifi","fa-archway","fa-atlas","fa-bed","fa-bus","fa-bus-alt","fa-caravan","fa-cocktail","fa-concierge-bell","fa-dumbbell","fa-glass-martini","fa-glass-martini-alt","fa-globe-africa","fa-globe-americas","fa-globe-asia","fa-globe-europe","fa-hot-tub","fa-hotel","fa-luggage-cart","fa-map","fa-map-marked","fa-map-marked-alt","fa-monument","fa-passport","fa-plane","fa-plane-arrival","fa-plane-departure","fa-shuttle-van","fa-spa","fa-suitcase","fa-suitcase-rolling","fa-swimmer","fa-swimming-pool","fa-taxi","fa-tram","fa-tv","fa-umbrella-beach","fa-wine-glass","fa-wine-glass-alt","fa-accessible-icon","fa-address-book","fa-address-card","fa-baby","fa-bed","fa-biking","fa-blind","fa-chalkboard-teacher","fa-child","fa-female","fa-frown","fa-hiking","fa-id-badge","fa-id-card","fa-id-card-alt","fa-male","fa-meh","fa-people-arrows","fa-people-carry","fa-person-booth","fa-poo","fa-portrait","fa-power-off","fa-pray","fa-restroom","fa-running","fa-skating","fa-skiing","fa-skiing-nordic","fa-smile","fa-snowboarding","fa-street-view","fa-swimmer","fa-user","fa-user-alt","fa-user-alt-slash","fa-user-astronaut","fa-user-check","fa-user-circle","fa-user-clock","fa-user-cog","fa-user-edit","fa-user-friends","fa-user-graduate","fa-user-injured","fa-user-lock","fa-user-md","fa-user-minus","fa-user-ninja","fa-user-nurse","fa-user-plus","fa-user-secret","fa-user-shield","fa-user-slash","fa-user-tag","fa-user-tie","fa-user-times","fa-users","fa-users-cog","fa-users-slash","fa-walking","fa-wheelchair","fa-accessible-icon","fa-ambulance","fa-baby-carriage","fa-bicycle","fa-bus","fa-bus-alt","fa-car","fa-car-alt","fa-car-crash","fa-car-side","fa-fighter-jet","fa-helicopter","fa-horse","fa-motorcycle","fa-paper-plane","fa-plane","fa-rocket","fa-ship","fa-shopping-cart","fa-shuttle-van","fa-sleigh","fa-snowplow","fa-space-shuttle","fa-subway","fa-taxi","fa-tractor","fa-train","fa-tram","fa-truck","fa-truck-monster","fa-truck-pickup","fa-wheelchair","fa-bolt","fa-cloud","fa-cloud-meatball","fa-cloud-moon","fa-cloud-moon-rain","fa-cloud-rain","fa-cloud-showers-heavy","fa-cloud-sun","fa-cloud-sun-rain","fa-meteor","fa-moon","fa-poo-storm","fa-rainbow","fa-smog","fa-snowflake","fa-sun","fa-temperature-high","fa-temperature-low","fa-umbrella","fa-water","fa-wind","fa-glass-whiskey","fa-icicles","fa-igloo","fa-mitten","fa-skating","fa-skiing","fa-skiing-nordic","fa-snowboarding","fa-snowplow","fa-tram","fa-archive","fa-blog","fa-book","fa-bookmark","fa-edit","fa-envelope","fa-envelope-open","fa-eraser","fa-file","fa-file-alt","fa-folder","fa-folder-open","fa-keyboard","fa-newspaper","fa-paper-plane","fa-paperclip","fa-paragraph","fa-pen","fa-pen-alt","fa-pen-square","fa-pencil-alt","fa-quote-left","fa-quote-right","fa-sticky-note","fa-thumbtack"],e4=["fa-500px","fa-accusoft","fa-adn","fa-adversal","fa-affiliatetheme","fa-airbnb","fa-algolia","fa-amazon","fa-amilia","fa-android","fa-angellist","fa-angrycreative","fa-angular","fa-app-store","fa-app-store-ios","fa-apper","fa-apple","fa-artstation","fa-asymmetrik","fa-atlassian","fa-audible","fa-autoprefixer","fa-avianex","fa-aviato","fa-aws","fa-backspace","fa-bandcamp","fa-battle-net","fa-behance","fa-behance-square","fa-bimobject","fa-bitbucket","fa-bity","fa-black-tie","fa-blackberry","fa-blender-phone","fa-blogger","fa-blogger-b","fa-bootstrap","fa-buffer","fa-buromobelexperte","fa-buy-n-large","fa-buysellads","fa-canadian-maple-leaf","fa-centercode","fa-centos","fa-chrome","fa-chromecast","fa-cloudflare","fa-cloudscale","fa-cloudsmith","fa-cloudversify","fa-codepen","fa-codiepie","fa-confluence","fa-connectdevelop","fa-contao","fa-cotton-bureau","fa-cpanel","fa-creative-commons","fa-creative-commons-by","fa-creative-commons-nc","fa-creative-commons-nc-eu","fa-creative-commons-nc-jp","fa-creative-commons-nd","fa-creative-commons-pd","fa-creative-commons-pd-alt","fa-creative-commons-remix","fa-creative-commons-sa","fa-creative-commons-sampling","fa-creative-commons-sampling-plus","fa-creative-commons-share","fa-creative-commons-zero","fa-crown","fa-css3","fa-css3-alt","fa-cuttlefish","fa-dailymotion","fa-dashcube","fa-deezer","fa-delicious","fa-deploydog","fa-deskpro","fa-dev","fa-deviantart","fa-dhl","fa-diaspora","fa-digg","fa-digital-ocean","fa-discord","fa-discourse","fa-dochub","fa-docker","fa-draft2digital","fa-dribbble","fa-dribbble-square","fa-dropbox","fa-drupal","fa-dumpster-fire","fa-dyalog","fa-earlybirds","fa-ebay","fa-edge","fa-edge-legacy","fa-elementor","fa-ello","fa-ember","fa-empire","fa-envira","fa-erlang","fa-etsy","fa-evernote","fa-expeditedssl","fa-facebook","fa-facebook-f","fa-facebook-messenger","fa-facebook-square","fa-fedex","fa-fedora","fa-figma","fa-file-csv","fa-firefox","fa-firefox-browser","fa-first-order","fa-first-order-alt","fa-firstdraft","fa-flickr","fa-flipboard","fa-fly","fa-font-awesome","fa-font-awesome-alt","fa-font-awesome-flag","fa-font-awesome-logo-full","fa-fonticons","fa-fonticons-fi","fa-fort-awesome","fa-fort-awesome-alt","fa-forumbee","fa-foursquare","fa-free-code-camp","fa-freebsd","fa-fulcrum","fa-get-pocket","fa-git","fa-git-alt","fa-git-square","fa-github","fa-github-alt","fa-github-square","fa-gitkraken","fa-gitlab","fa-gitter","fa-glide","fa-glide-g","fa-gofore","fa-goodreads","fa-goodreads-g","fa-google","fa-google-drive","fa-google-play","fa-google-plus","fa-google-plus-g","fa-google-plus-square","fa-gratipay","fa-grav","fa-gripfire","fa-grunt","fa-guilded","fa-gulp","fa-hacker-news","fa-hacker-news-square","fa-hackerrank","fa-hips","fa-hire-a-helper","fa-hive","fa-hooli","fa-hornbill","fa-hotjar","fa-houzz","fa-html5","fa-hubspot","fa-ideal","fa-imdb","fa-innosoft","fa-instagram","fa-instagram-square","fa-instalod","fa-intercom","fa-internet-explorer","fa-invision","fa-ioxhost","fa-itch-io","fa-itunes","fa-itunes-note","fa-java","fa-jenkins","fa-jira","fa-joget","fa-joomla","fa-js","fa-js-square","fa-jsfiddle","fa-kaggle","fa-keybase","fa-keycdn","fa-kickstarter","fa-kickstarter-k","fa-korvue","fa-laravel","fa-lastfm","fa-lastfm-square","fa-leanpub","fa-less","fa-line","fa-linkedin","fa-linkedin-in","fa-linode","fa-linux","fa-lyft","fa-magento","fa-mailchimp","fa-mandalorian","fa-markdown","fa-mastodon","fa-maxcdn","fa-mdb","fa-medapps","fa-medium","fa-medium-m","fa-medrt","fa-meetup","fa-megaport","fa-mendeley","fa-microblog","fa-microsoft","fa-mix","fa-mixcloud","fa-mixer","fa-mizuni","fa-modx","fa-monero","fa-neos","fa-network-wired","fa-nimblr","fa-node","fa-node-js","fa-npm","fa-ns8","fa-nutritionix","fa-octopus-deploy","fa-odnoklassniki","fa-odnoklassniki-square","fa-opencart","fa-openid","fa-opera","fa-optin-monster","fa-orcid","fa-osi","fa-page4","fa-pagelines","fa-palfed","fa-patreon","fa-perbyte","fa-periscope","fa-phabricator","fa-phoenix-framework","fa-phoenix-squadron","fa-php","fa-pied-piper","fa-pied-piper-alt","fa-pied-piper-hat","fa-pied-piper-pp","fa-pied-piper-square","fa-pinterest","fa-pinterest-p","fa-pinterest-square","fa-plane-slash","fa-product-hunt","fa-pushed","fa-python","fa-qq","fa-quinscape","fa-quora","fa-r-project","fa-raspberry-pi","fa-ravelry","fa-react","fa-reacteurope","fa-readme","fa-rebel","fa-red-river","fa-reddit","fa-reddit-alien","fa-reddit-square","fa-redhat","fa-renren","fa-replyd","fa-researchgate","fa-resolving","fa-rev","fa-rocketchat","fa-rockrms","fa-rust","fa-safari","fa-salesforce","fa-sass","fa-schlix","fa-scribd","fa-searchengin","fa-sellcast","fa-sellsy","fa-servicestack","fa-shirtsinbulk","fa-shopify","fa-shopware","fa-signature","fa-simplybuilt","fa-sistrix","fa-sith","fa-sketch","fa-skull","fa-skyatlas","fa-skype","fa-slack","fa-slack-hash","fa-slideshare","fa-snapchat","fa-snapchat-ghost","fa-snapchat-square","fa-sourcetree","fa-speakap","fa-speaker-deck","fa-squarespace","fa-stack-exchange","fa-stack-overflow","fa-stackpath","fa-staylinked","fa-sticker-mule","fa-stopwatch-20","fa-strava","fa-studiovinari","fa-stumbleupon","fa-stumbleupon-circle","fa-superpowers","fa-supple","fa-suse","fa-swift","fa-symfony","fa-teamspeak","fa-telegram","fa-telegram-plane","fa-tencent-weibo","fa-the-red-yeti","fa-themeco","fa-themeisle","fa-think-peaks","fa-tiktok","fa-trade-federation","fa-trello","fa-tumblr","fa-tumblr-square","fa-twitter","fa-twitter-square","fa-typo3","fa-uber","fa-ubuntu","fa-uikit","fa-umbraco","fa-uncharted","fa-uniregistry","fa-unity","fa-untappd","fa-ups","fa-usb","fa-usps","fa-ussunnah","fa-vaadin","fa-viacoin","fa-viadeo","fa-viadeo-square","fa-viber","fa-vimeo","fa-vimeo-square","fa-vimeo-v","fa-vine","fa-vk","fa-vnv","fa-vr-cardboard","fa-vuejs","fa-watchman-monitoring","fa-waze","fa-weebly","fa-weibo","fa-weight-hanging","fa-weixin","fa-whatsapp","fa-whatsapp-square","fa-whmcs","fa-wikipedia-w","fa-windows","fa-wix","fa-wodu","fa-wolf-pack-battalion","fa-wordpress","fa-wordpress-simple","fa-wpbeginner","fa-wpexplorer","fa-wpforms","fa-wpressr","fa-xing","fa-xing-square","fa-y-combinator","fa-yahoo","fa-yammer","fa-yandex","fa-yandex-international","fa-yarn","fa-yelp","fa-yoast","fa-youtube-square","fa-zhihu"],sk={},KM={};e4.forEach(p=>{KM[p]="",sk[p]=""});Q3.forEach(p=>{sk[p]=p});var XM=p=>p in KM;var ZM=(p,h)=>{p.use(t4,{defs:{...n4,...sk}}),p.renderer.rules.emoji=(w,_)=>{let T=w[_];if(h.config.enableEmojiSyntax){let M=T.markup;return M.match("fa-")?`<i class="${XM(M)?"fa-brands":"fa-solid"} ${M}" aria-hidden="true"></i>`:T.content}else return`:${T.markup}:`}};import r4 from"markdown-it-html5-embed";var a4=p=>({html5embed:{useImageSyntax:p.config.HTML5EmbedUseImageSyntax,useLinkSyntax:p.config.HTML5EmbedUseLinkSyntax,isAllowedHttp:p.config.HTML5EmbedIsAllowedHttp,attributes:{audio:p.config.HTML5EmbedAudioAttributes,video:p.config.HTML5EmbedVideoAttributes}}}),JM=(p,h)=>{h.config.enableHTML5Embed&&p.use(r4,a4(h))};var e2=(p,h)=>{p.block.ruler.before("lheading","math_block",(_,T,M,D)=>{if(h.config.mathRenderingOption==="None")return!1;let L=_.bMarks[T]+_.tShift[T],{mathBlockDelimiters:U}=h.config,q=null,J=null;for(let[le,ue]of U)if(_.src.slice(L,L+le.length)===le){q=le,J=ue;break}if(!q||!J)return!1;let K=L+q.length,V=-1;for(;K<_.src.length;){if(_.src.startsWith(J,K)){V=K;break}_.src[K]==="\\"&&(K+=1),K+=1}if(V<0)return!1;let oe=V+J.length,Y=T;for(;Y<M&&_.bMarks[Y]<=oe;)Y++;if(D)return!0;let te=_.src.slice(L+q.length,V).trim(),se=_.push("math_block","div",0);return se.content=te,se.meta={openTag:q,closeTag:J},se.map=[T,Y],_.line=Y,!0}),p.inline.ruler.before("escape","math",(_,T)=>{if(h.config.mathRenderingOption==="None")return!1;let M=null,D=null,L=!0,{mathBlockDelimiters:U,mathInlineDelimiters:q}=h.config;for(let oe of U)if(_.src.startsWith(oe[0],_.pos)){[M,D]=oe;break}if(!M){for(let oe of q)if(_.src.startsWith(oe[0],_.pos)){[M,D]=oe,L=!1;break}}if(!M||!D)return!1;let J,K=-1,V=_.pos+M.length;for(;V<_.src.length;){if(D&&_.src.startsWith(D,V)){K=V;break}else _.src[V]==="\\"&&(V+=1);V+=1}if(K>=0)J=_.src.slice(_.pos+M.length,K);else return!1;if(J&&!T){let oe=_.push("math","",0);return oe.content=J.trim(),oe.meta=oe.meta||{},oe.meta.openTag=M,oe.meta.closeTag=D,oe.meta.displayMode=L,_.pos+=J.length+M.length+D.length,!0}else return!1}),p.renderer.rules.math=(_,T)=>{let M=_[T].content??"";return Kc({content:M,openTag:_[T].meta.openTag,closeTag:_[T].meta.closeTag,renderingOption:h.config.mathRenderingOption,displayMode:_[T].meta.displayMode,katexConfig:h.config.katexConfig})},p.renderer.rules.math_block=(_,T)=>{let M=_[T].content??"";return Kc({content:M,openTag:_[T].meta.openTag,closeTag:_[T].meta.closeTag,renderingOption:h.config.mathRenderingOption,displayMode:!0,katexConfig:h.config.katexConfig})};let w=p.renderer.rules.html_block;p.renderer.rules.html_block=(_,T,M,D,L)=>{let U=w?w(_,T,M,D,L):_[T].content;return h.config.mathRenderingOption==="None"?U:i4(U,h)}};function i4(p,h){let{mathBlockDelimiters:w,mathInlineDelimiters:_}=h.config;if((!w||w.length===0)&&(!_||_.length===0))return p;let T=/<(code|pre|script|style)\b[^>]*>[\s\S]*?<\/\1>/gi,M=[],D=[],L=0;for(let J=T.exec(p);J!==null;J=T.exec(p))M.push(p.slice(L,J.index)),D.push(J[0]),L=J.index+J[0].length;M.push(p.slice(L));let U=J=>{let K=J;for(let[se,le]of w||[])K=QM(K,se,le,!0,h);let V=/<(div|span)\b[^>]*class\s*=\s*"[^"]*\bmathjax-exps\b[^"]*"[^>]*>[\s\S]*?<\/\1>/gi,oe=[],Y=[],te=0;for(let se=V.exec(K);se!==null;se=V.exec(K))oe.push(K.slice(te,se.index)),Y.push(se[0]),te=se.index+se[0].length;oe.push(K.slice(te));for(let[se,le]of _||[])for(let ue=0;ue<oe.length;ue++)oe[ue]=QM(oe[ue],se,le,!1,h);K=oe[0];for(let se=0;se<Y.length;se++)K+=Y[se]+oe[se+1];return K},q=U(M[0]);for(let J=0;J<D.length;J++)q+=D[J]+U(M[J+1]);return q}function QM(p,h,w,_,T){if(!h||!w)return p;let M="",D=0;for(;D<p.length;){if(!p.startsWith(h,D)){M+=p[D],D+=1;continue}let L=D+h.length,U=-1;for(;L<p.length;){if(p.startsWith(w,L)){U=L;break}else p[L]==="\\"&&(L+=1);L+=1}if(U<0){M+=p.slice(D,D+h.length),D+=h.length;continue}let q=p.slice(D+h.length,U).trim();M+=Kc({content:q,openTag:h,closeTag:w,renderingOption:T.config.mathRenderingOption,displayMode:_,katexConfig:T.config.katexConfig}),D=U+w.length}return M}var t2=p=>{let h=p.renderer.renderToken.bind(p.renderer);p.renderer.renderToken=function(w,_,T){if(!T.sourceMap)return h(w,_,T);let M=w[_];return M.type.endsWith("_open")&&M.map!==null&&M.map[0]!==void 0&&M.attrSet("data-source-line",`${M.map[0]+1}`),h(w,_,T)}};var n2=(p,h)=>{p.inline.ruler.before("autolink","tag",(w,_)=>{if(!h.config.enableTagSyntax||w.src.charCodeAt(w.pos)!==35)return!1;if(w.pos>0){let D=w.src.charCodeAt(w.pos-1);if(D===47||D===38||D===63||D===92||D>=48&&D<=57||D>=65&&D<=90||D>=97&&D<=122||D===95||D===45)return!1}{let D=w.pos-1;for(;D>=0;){let L=w.src.charCodeAt(D);if(L===125||L===10)break;if(L===123)return!1;D--}}let T=w.pos+1;for(;T<w.src.length;){let D=w.src.charCodeAt(T);if(D>=48&&D<=57||D>=65&&D<=90||D>=97&&D<=122||D===95||D===45||D===47)T+=1;else break}let M=w.src.slice(w.pos+1,T);if(!M||!/[a-zA-Z_]/.test(M))return!1;if(!_){let D=w.push("tag","span",0);return D.content=M,w.pos=T,!0}return w.pos=T,!0}),p.renderer.rules.tag=(w,_)=>{let{content:T}=w[_];if(!T)return"";let M=p.utils.escapeHtml(T),D=`tag://${encodeURIComponent(T)}`;return`<a class="tag" data-tag="${M}" href="${D}">#${M}</a>`}};var r2=(p,h)=>{let w=p.renderer.rules.image.bind(p.renderer);p.renderer.rules.image=(_,T,M,D,L)=>{let U=_[T];if(U.children&&U.children[0]?.content==="@embedding"){let q=U.attrGet("error")??"";if(q)return decodeURIComponent(atob(q));{let J=U.attrGet("embedding")??"",K=decodeURIComponent(atob(J));return h.initMarkdownIt({...p.options,sourceMap:!1}).render(K)}}return w(_,T,M,D,L)}};import*as lk from"path";var a2=(p,h)=>{p.inline.ruler.before("autolink","wikilink",(w,_)=>{if(!h.config.enableWikiLinkSyntax||!w.src.startsWith("[[",w.pos))return!1;let T,M="]]",D=-1,L=w.pos+M.length;for(;L<w.src.length;){if(w.src[L]==="\\")L+=1;else if(w.src.startsWith(M,L)){D=L;break}L+=1}if(D>=0)T=w.src.slice(w.pos+M.length,D);else return!1;if(T&&!_){let U=w.push("wikilink","a",0);return U.content=T,w.pos+=T.length+2*M.length,!0}else return!1}),p.renderer.rules.wikilink=(w,_)=>{let{content:T}=w[_];if(!T)return"";let{text:M,link:D,hash:L,blockRef:U}=h.processWikilink(T),q=(L||"")+(U||""),J=q?D.slice(0,D.length-q.length):D,K=h.resolveWikilink(J,h.currentRenderFilePath),V=lk.dirname(h.currentRenderFilePath).replace(/\\/g,"/"),oe=K.replace(/\\/g,"/"),te=lk.posix.relative(V,oe)+q,se=T.includes("|")?M:o4(M);return`<a href="${p.utils.escapeHtml(te)}">${p.utils.escapeHtml(se)}</a>`}};function o4(p){let h=p.indexOf("#"),w=p.indexOf("^"),_;return h===-1&&w===-1?_=[p]:h===-1?_=[p.slice(0,w),p.slice(w)]:w===-1?_=[p.slice(0,h),p.slice(h+1)]:w<h?_=[p.slice(0,w),p.slice(w,h),p.slice(h+1)]:_=[p.slice(0,h),p.slice(h+1,w),p.slice(w)],_.filter(T=>T.length>0).join(" > ")}import*as ck from"fs";import*as o2 from"less";import*as Md from"path";var i2=typeof window>"u";function AA(){return{startOnLoad:!1}}function TA(){return{tex:{},options:{},loader:{}}}function RA(){return{macros:{}}}function CA(){return{onWillParseMarkdown:async function(p){return p},onDidParseMarkdown:async function(p){return p}}}function yh(){return{markdownFileExtensions:[".md",".markdown",".mdown",".mkdn",".mkd",".rmd",".qmd",".mdx"],globalCss:"",includeInHeader:"",mermaidConfig:AA(),mathjaxConfig:TA(),katexConfig:RA(),parserConfig:CA(),enablePreviewZenMode:!0,markdownParser:"markdown-it",breakOnSingleNewLine:!0,enableTypographer:!1,enableWikiLinkSyntax:!0,wikiLinkResolution:"relative",wikiLinkTargetFileExtension:".md",wikiLinkTargetFileNameChangeCase:"none",enableLinkify:!0,enableEmojiSyntax:!0,enableExtendedTableSyntax:!1,enableCriticMarkupSyntax:!1,enableTagSyntax:!0,useGitHubStylePipedLink:!1,protocolsWhiteList:"http://, https://, atom://, file://, mailto:, tel:",mathRenderingOption:"KaTeX",mathInlineDelimiters:[["$","$"]],mathBlockDelimiters:[["$$","$$"]],mathRenderingOnlineService:"https://latex.codecogs.com/gif.latex",mathjaxScriptSrc:"https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js",codeBlockTheme:"auto.css",previewTheme:"github-light.css",revealjsTheme:"white.css",mermaidTheme:"default",frontMatterRenderingOption:"none",imageFolderPath:"/assets",printBackground:!1,chromePath:"",imageMagickPath:"",markdownYoBinaryPath:"",pandocPath:"pandoc",pandocMarkdownFlavor:"markdown-raw_tex+tex_math_single_backslash",pandocArguments:[],latexEngine:"pdflatex",enableScriptExecution:!1,enableHTML5Embed:!1,HTML5EmbedUseImageSyntax:!0,HTML5EmbedUseLinkSyntax:!1,HTML5EmbedIsAllowedHttp:!1,HTML5EmbedAudioAttributes:'controls preload="metadata"',HTML5EmbedVideoAttributes:'controls preload="metadata"',puppeteerWaitForTimeout:0,puppeteerArgs:[],plantumlServer:"",plantumlJarPath:"",jsdelivrCdnHost:"cdn.jsdelivr.net",krokiServer:"https://kroki.io",webSequenceDiagramsServer:"https://www.websequencediagrams.com",webSequenceDiagramsApiKey:"",d2Path:"d2",d2Layout:"dagre",d2Theme:0,d2Sketch:!1,isVSCode:!1,alwaysShowBacklinksInPreview:!1,maxNoteFileSize:5*1024*1024,useVSCodeThemeForContextMenu:!1}}var s4=(_=>(_.SinglePreview="Single Preview",_.MultiplePreviews="Multiple Previews",_.PreviewsOnly="Previews Only",_))(s4||{});async function NA(p,h,w=!1){let _=yh(),T={globalCss:_.globalCss,includeInHeader:_.includeInHeader,mermaidConfig:_.mermaidConfig,mathjaxConfig:_.mathjaxConfig,katexConfig:_.katexConfig,parserConfig:_.parserConfig};return w&&await h.mkdir(p),await h.exists(p)&&(T.globalCss=await l4(p,h),T.parserConfig=await f4(p,h),T.includeInHeader=await c4(p,h),T={...T,...await u4(p,h)}),T}async function l4(p,h){let w=Md.join(p,"./style.less"),_;try{_=await h.readFile(w)}catch{_=`
|
|
299
299
|
/* Please visit the URL below for more information: */
|
|
300
300
|
/* https://shd101wyy.github.io/markdown-preview-enhanced/#/customize-css */
|
|
301
301
|
|
|
@@ -307,18 +307,18 @@ ${ue.plainResult}\`\`\`
|
|
|
307
307
|
content: "Failed to compile \`style.less\`. ${D}" !important;
|
|
308
308
|
padding: 2em !important;
|
|
309
309
|
}
|
|
310
|
-
.crossnote.crossnote { display: none !important; }`;o2.render(_,{paths:[Md.dirname(w)]},(D,L)=>T(D?M(D):L?.css||""))})}async function
|
|
310
|
+
.crossnote.crossnote { display: none !important; }`;o2.render(_,{paths:[Md.dirname(w)]},(D,L)=>T(D?M(D):L?.css||""))})}async function c4(p,h){let w=Md.join(p,"./head.html"),_;try{_=await h.readFile(w)}catch{_=`<!-- The content below will be included at the end of the <head> element. -->
|
|
311
311
|
<script type="text/javascript">
|
|
312
312
|
document.addEventListener("DOMContentLoaded", function () {
|
|
313
313
|
// your code here
|
|
314
314
|
});
|
|
315
|
-
</script>`,await h.writeFile(w,_)}return _}async function
|
|
315
|
+
</script>`,await h.writeFile(w,_)}return _}async function u4(p,h){let w=Md.join(p,"./config.js"),_=async()=>{let T=RA(),M=TA(),D=AA();return await h.writeFile(w,`({
|
|
316
316
|
katexConfig: ${JSON.stringify(T,null,2)},
|
|
317
317
|
|
|
318
318
|
mathjaxConfig: ${JSON.stringify(M,null,2)},
|
|
319
319
|
|
|
320
320
|
mermaidConfig: ${JSON.stringify(D,null,2)},
|
|
321
|
-
})`),{katexConfig:T,mathjaxConfig:M,mermaidConfig:D}};if(await h.exists(w))try{let T=await h.readFile(w),M=m0(T);return Object.keys(M??{}).length===0?await _():M}catch(T){return console.error(T),{}}else return _()}function
|
|
321
|
+
})`),{katexConfig:T,mathjaxConfig:M,mermaidConfig:D}};if(await h.exists(w))try{let T=await h.readFile(w),M=m0(T);return Object.keys(M??{}).length===0?await _():M}catch(T){return console.error(T),{}}else return _()}function d4(p,h){let w=Object.create(null);return{onWillParseMarkdown:typeof h?.onWillParseMarkdown=="function"?_=>h.onWillParseMarkdown.call(w,_):p.onWillParseMarkdown,onDidParseMarkdown:typeof h?.onDidParseMarkdown=="function"?_=>h.onDidParseMarkdown.call(w,_):p.onDidParseMarkdown}}async function f4(p,h){let w=CA(),_=Md.join(p,"./parser.js");if(await h.exists(_))try{let T=await h.readFile(_),M=m0(T);return d4(w,M)}catch(T){return console.error(T),w}else return await h.writeFile(_,`({
|
|
322
322
|
// Please visit the URL below for more information:
|
|
323
323
|
// https://shd101wyy.github.io/markdown-preview-enhanced/#/extend-parser
|
|
324
324
|
|
|
@@ -333,20 +333,20 @@ ${ue.plainResult}\`\`\`
|
|
|
333
333
|
---`))>0){let _=p.slice(3,h);try{w=uk.parse(_)}catch{w={}}p=p.slice(h+4).replace(/^[ \t]*\n/,"")}return{data:w,content:p}}function DA(p,h){h=h||{};let w=uk.stringify(h).trim();return w==="{}"||!w?p:`---
|
|
334
334
|
${w}
|
|
335
335
|
---
|
|
336
|
-
${p}`}var vh=class{constructor(){this.map={}}addReference(h,w,_){if(h===w&&!_){h in this.map||(this.map[h]={[w]:[]});return}if(_)if(h in this.map){let T=this.map[h];w in T?T[w].push(_):T[w]=[_]}else this.map[h]={[w]:[_]}}deleteReferences(h,w){if(h===w){delete this.map[h];return}h in this.map&&w in this.map[h]&&(delete this.map[h][w],Object.keys(this.map[h]).length===0&&delete this.map[h])}hasRelation(h,w){return h in this.map&&w in this.map[h]||w in this.map&&h in this.map[w]||h===w}getReferences(h,w){return h in this.map&&w in this.map[h]?this.map[h][w]:[]}noteHasReferences(h){return h in this.map}getReferredByNotesCount(h){if(h in this.map){let w=Object.keys(this.map[h]).length;return h in this.map[h]&&(w-=1),w}else return 0}},Eh=class{constructor(){this.map=new Map}addReference(h,w,_){let T=h.toLowerCase(),M=this.map.get(T);M||(M=new Map,this.map.set(T,M));let D=M.get(w);D?D.push(_):M.set(w,[_])}deleteReferencesFrom(h){let w=[];for(let[_,T]of this.map)T.delete(h)&&T.size===0&&w.push(_);for(let _ of w)this.map.delete(_)}getReferrers(h){return this.map.get(h.toLowerCase())??new Map}getAllTags(){return Array.from(this.map.keys())}};import h4 from"minisearch";function m4(p,h="-"){return p.replace(/[.\s!@#$%^&*()\-=_+~`[\]{}\\<>?/|()【】::,。]+/g,h)}var wh=class{constructor(){this.miniSearch=new h4({fields:["title","aliases","filePath"],storeFields:["title","aliases","filePath"],extractField:(h,w)=>w==="aliases"?h.aliases.join("|"):w==="title"?h.title:w==="filePath"?h.filePath:h.id,tokenize:h=>m4(h," ").match(/([^\x00-\x7F]|\w+)/g)??[]}),this._cache={}}add(h,w,_=[]){if(!(h in this._cache)){let T={id:h+"#"+w,filePath:h,title:w,aliases:_};this.miniSearch.add(T),this._cache[h]=T}}remove(h){if(h in this._cache){let w=this._cache[h];w&&this.miniSearch.remove(w),delete this._cache[h]}}search(h,w){return this.miniSearch.search(h,w)}addAlias(h,w){let _=this._cache[h];_&&(this.remove(h),this.add(h,_.title,_.aliases.concat(w)))}deleteAlias(h,w){let _=this._cache[h];_&&(this.remove(h),this.add(h,_.title,_.aliases.filter(T=>T!==w)))}};import g4 from"object-hash";import{basename as b4}from"path";function y4(p){let h=[],w=[],_={},T=M=>{if(M in _)return;let D=p.notes[M];if(D)h.push({id:M,label:D.title});else{let L=M.lastIndexOf("."),U=M;L>0&&(U=M.slice(0,L)),h.push({id:M,label:b4(U)})}_[M]=!0};for(let M in p.referenceMap.map)if(p.referenceMap.map.hasOwnProperty(M)){T(M);for(let D in p.referenceMap.map[M])p.referenceMap.map[M].hasOwnProperty(D)&&D!==M&&(T(D),w.push({source:D,target:M}))}return{hash:g4({nodes:h,links:w}),nodes:h,links:w}}var N4={html:!0,xhtmlOut:!1,breaks:!0,langPrefix:"language-",linkify:!0,typographer:!0,sourceMap:!0},c2=class p{constructor(){this.notes={};this.hasLoadedNotes=!1;this.currentRenderFilePath="";this.referenceMap=new vh;this.tagReferenceMap=new Eh;this.refreshNotesIfNotLoadedMutex=new s2;this.refreshNotesMutex=new s2;this.processedMtimes=new Map;this.search=new wh;this.markdownYoRenderer=null;this.markdownYoRendererPromise=null;this.markdownEngines={}}async init({notebookPath:h,config:w={},fs:_}){let T=R4.parse(h);if(!Rt.isAbsolute(T.fsPath)||T.path.startsWith("/./"))throw new Error(`\`notebookPath\`: "${h}" must be an absolute path`);this.notebookPath=T,this.initFs(_),await this.initConfig(w),this.md=this.initMarkdownIt(),this.config.markdownParser==="markdown_yo"&&await this.initMarkdownYo(),this.updateConfig({})}static async init(h){let w=new p;return await w.init(h),w}async initConfig(h){let w=await NA(Rt.join(this.notebookPath.fsPath,"./.crossnote"),this.fs);this.config={...yh(),...w,...h}}initMarkdownIt(h){let w=new w4(h??N4);return w.use(x4),w.use(A4),w.use(T4),w.use(_4),w.use(k4),w.use(S4),cM(w),uM(w),YM(w),VM(w,this),ZM(w,this),JM(w,this),e2(w,this),a2(w,this),qM(w),WM(w),t2(w),n2(w,this),r2(w,this),w}initFs(h){if(h)this.fs=h;else if(i2)this.fs=IA();else throw new Error("`fs` is required")}async initMarkdownYo(){if(this.markdownYoRendererPromise){await this.markdownYoRendererPromise;return}this.markdownYoRenderer||(this.markdownYoRendererPromise=(async()=>{try{let{createRenderer:h}=await import("markdown_yo"),w=await h();this.config.markdownParser==="markdown_yo"?this.markdownYoRenderer=w:w.destroy()}catch(h){console.warn("Failed to load markdown_yo WASM renderer:",h),this.markdownYoRenderer=null}finally{this.markdownYoRendererPromise=null}})(),await this.markdownYoRendererPromise)}destroyMarkdownYo(){this.markdownYoRenderer?.destroy(),this.markdownYoRenderer=null}buildMarkdownYoOptions(h){let w=this.config;return{html:!0,typographer:!!w.enableTypographer,breaks:!!w.breakOnSingleNewLine,subscript:!0,superscript:!0,mark:!0,footnote:!0,deflist:!0,abbr:!0,admonition:!0,callout:!0,emoji:!!w.enableEmojiSyntax,wikilink:!!w.enableWikiLinkSyntax,critic:!!w.enableCriticMarkupSyntax,math:w.mathRenderingOption!=="None",sourceMap:h}}buildMarkdownYoBinaryArgs(h){let w=[];return h.html&&w.push("--html"),h.typographer&&w.push("--typographer"),h.commonmark&&w.push("--commonmark"),h.subscript&&w.push("--subscript"),h.superscript&&w.push("--superscript"),h.mark&&w.push("--mark"),h.math&&w.push("--math"),h.emoji&&w.push("--emoji"),h.wikilink&&w.push("--wikilink"),h.critic&&w.push("--critic"),h.abbr&&w.push("--abbr"),h.deflist&&w.push("--deflist"),h.admonition&&w.push("--admonition"),h.callout&&w.push("--callout"),h.footnote&&w.push("--footnote"),h.sourceMap&&w.push("--source-map"),w.push("-"),w}renderMarkdown(h,w){if(this.config.markdownParser==="markdown_yo"){let _=this.buildMarkdownYoOptions(!!w?.isForPreview),T=this.config.markdownYoBinaryPath,M;if(T){let D=this.buildMarkdownYoBinaryArgs(_);M=E4(T,D,{input:h,encoding:"utf8",maxBuffer:256*1024*1024})}else if(this.markdownYoRenderer)M=this.markdownYoRenderer.render(h,_);else return this.renderMarkdownWithMarkdownIt(h,w);return this.postProcessMarkdownYo(M)}return this.renderMarkdownWithMarkdownIt(h,w)}renderMarkdownWithMarkdownIt(h,w){return w?.isForPreview?this.md.render(h):this.initMarkdownIt({...this.md.options,sourceMap:!1}).render(h)}postProcessMarkdownYo(h){return this.config.mathRenderingOption==="KaTeX"?h=h.replace(/<(span|div) class="mathjax-exps">(\${1,2})([\s\S]*?)\2<\/\1>/g,(w,_,T,M)=>{let D=T==="$$";return Kc({content:M.trim(),openTag:T,closeTag:T,displayMode:D,renderingOption:this.config.mathRenderingOption,katexConfig:this.config.katexConfig})}):this.config.mathRenderingOption==="MathJax"&&(h=h.replace(/<(span|div) class="mathjax-exps">(\${1,2})([\s\S]*?)\2<\/\1>/g,(w,_,T,M)=>{let D=M.replace(/\n/g," ").trim(),L=T+D+T;return`<${_} class="mathjax-exps">${L}</${_}>`})),this.config.enableWikiLinkSyntax&&(h=h.replace(/<a href="([^"]*)"( class="wikilink")/g,(w,_,T)=>`<a href="${this.processWikilink(_).link}"${T}`)),h}updateConfig(h){this.config={...this.config,...h},this.interpolateConfig(),this.md.set({typographer:!!this.config.enableTypographer,breaks:!!this.config.breakOnSingleNewLine,linkify:!!this.config.enableLinkify}),this.config.markdownParser==="markdown_yo"?this.initMarkdownYo():this.destroyMarkdownYo()}interpolateConfig(){let h={projectDir:this.notebookPath.fsPath,workspaceFolder:this.notebookPath.fsPath};this.config.imageFolderPath=Od(this.config.imageFolderPath,h),this.config.imageMagickPath=Od(this.config.imageMagickPath,h),this.config.chromePath=Od(this.config.chromePath,h),this.config.pandocPath=Od(this.config.pandocPath,h),this.config.markdownYoBinaryPath=Od(this.config.markdownYoBinaryPath,h),this.config.plantumlJarPath=Od(this.config.plantumlJarPath,h)}async getBacklinkedNotes(h){if(h=this.resolveNoteRelativePath(h),!(h in this.referenceMap.map))return{};let w=this.referenceMap.map[h],_={};for(let T in w){if(T===h)continue;let M=this.notes[T];M&&(_[T]=M)}return _}getAllTags(){return this.tagReferenceMap.getAllTags()}async getNotesReferringToTag(h){let w=this.tagReferenceMap.getReferrers(h),_={};for(let T of w.keys()){let M=this.notes[T];M&&(_[T]=M)}return _}async getTagBacklinks(h){let w=this.tagReferenceMap.getReferrers(h),_=[];for(let[T,M]of w){let D=this.notes[T];D&&_.push({note:{notebookPath:D.notebookPath,filePath:D.filePath,title:D.title,config:D.config},references:M,referenceHtmls:M.map(L=>L.html)})}return _}async getNoteBacklinks(h){let w=await this.getBacklinkedNotes(h),_=[],T=Object.keys(w);for(let M of T){let D=w[M],L=await this.getReferences(h,M);_.push({note:{notebookPath:D.notebookPath,filePath:D.filePath,title:D.title,config:D.config},references:L,referenceHtmls:L.map(U=>U.html)})}return _}async getReferences(h,w){return this.referenceMap.getReferences(this.resolveNoteRelativePath(h),this.resolveNoteRelativePath(w))}renderReferenceHtml(h,w){return this.md.renderer.render([h??w],this.md.options,{})}referenceSourceLine(h,w){let _=h?.map?.[0]??w.map?.[0];return typeof _=="number"?_:void 0}async processNoteMentionsAndMentionedBy(h,w){let _=await this.getNote(h);if(!_)return;let T=w??await this.getNoteMarkdown(h);if(T==null)return;let M=this.md.parse(T,{}),D=V=>this.resolveWikilink(V,_.filePath),L=V=>C4.joinPath(this.notebookPath,V).toString(),U=(V,oe,Y,te)=>{for(let se=0;se<V.length;se++){let le=V[se];if(le.type==="wikilink"){let ue=this.processWikilink(le.content),{text:be}=ue,xe=ue.link;if(xe.match(/https?:\/\//))continue;let Le=xe.match(/[#^]/),Me=Le?xe.slice(0,Le.index):xe,ve=Le?xe.slice(Le.index):"",ye=Rt.extname(Me);if(ye&&!this.config.markdownFileExtensions.includes(ye))continue;let we=D(Me),Ve=we+ve;this.config.useGitHubStylePipedLink?le.content=`${be} | ${L(Ve)}`:le.content=`${L(Ve)} | ${be}`,Y.push({elementId:le.attrGet("id")||"",text:be,link:we,html:this.renderReferenceHtml(oe,le),sourceLine:this.referenceSourceLine(oe,le),kind:"wikilink"})}else if(le.type==="tag"){let ue=le.content.trim();Y.push({elementId:le.attrGet("id")||"",text:ue,link:"",html:this.renderReferenceHtml(oe,le),sourceLine:this.referenceSourceLine(oe,le),kind:"tag"})}else if(le.type==="link_open"&&V[se+1]&&V[se+1].type==="text"){if(le.attrs?.length&&le.attrs[0][0]==="href"){let ue=decodeURI(le.attrs[0][1]),be=V[se+1].content.trim(),xe=Rt.extname(ue).toLowerCase();if(ue.match(/https?:\/\//)||!be.length||!this.config.markdownFileExtensions.includes(xe))continue;ue=D(ue),le.attrs[0][1]=L(ue),Y.push({elementId:le.attrGet("id")||"",text:be,link:ue,html:this.renderReferenceHtml(oe,le),sourceLine:this.referenceSourceLine(oe,le),kind:"link"})}}else le.children&&le.children.length&&U(le.children,le,Y,te+1)}return Y},q=U(M,null,[],0),J={},K=_.mentions;for(let V in K)this.referenceMap.deleteReferences(V,_.filePath);this.tagReferenceMap.deleteReferencesFrom(_.filePath);for(let V=0;V<q.length;V++){let oe=q[V];if(oe.kind==="tag"){this.tagReferenceMap.addReference(oe.text,_.filePath,oe);continue}let{link:Y}=oe;Y&&(J[Y]=!0,this.referenceMap.addReference(Y,_.filePath,oe))}this.referenceMap.addReference(_.filePath,_.filePath,void 0),_.mentions=J}async getNote(h,w=!1){if(h=this.resolveNoteRelativePath(h),!w&&h in this.notes)return this.notes[h];let _=await this.loadNoteFromDisk(h);if(!_)return null;let{note:T,markdown:M}=_;return w&&(this.notes[T.filePath]=T,this.search.add(T.filePath,T.title,T.config.aliases),await this.processNoteMentionsAndMentionedBy(T.filePath,M)),T}async getNoteMarkdown(h){return h=this.resolveNoteRelativePath(h),(await this.loadNoteFromDisk(h))?.markdown??null}async loadNoteFromDisk(h){h=this.resolveNoteRelativePath(h);let w=this.resolveNoteAbsolutePath(h),_;try{_=await this.fs.stat(w)}catch{return null}if(!_.isFile()||!this.config.markdownFileExtensions.includes(Rt.extname(h)))return null;let T=this.config.maxNoteFileSize??0;if(T>0&&_.size>T)return null;let M=await this.fs.readFile(w),D={createdAt:new Date(_.ctimeMs),modifiedAt:new Date(_.mtimeMs),aliases:[]};try{let K=OA(M),V=Object.assign({},K.data);if(K.data.created&&(D.createdAt=new Date(K.data.created),delete V.created),K.data.modified&&(D.modifiedAt=new Date(K.data.modified),delete V.modified),K.data.pinned&&(D.pinned=K.data.pinned,delete V.pinned),K.data.favorited&&(D.favorited=K.data.favorited,delete V.favorited),K.data.icon&&(D.icon=K.data.icon,delete V.icon),K.data.aliases){let oe=K.data.aliases||[];typeof oe=="string"?D.aliases=oe.split(",").map(Y=>Y.trim()):D.aliases=oe,delete V.aliases}M=DA(K.content,V)}catch{M=`Please fix front-matter. (\u{1F448} Don't forget to delete this line)
|
|
336
|
+
${p}`}var vh=class{constructor(){this.map={}}addReference(h,w,_){if(h===w&&!_){h in this.map||(this.map[h]={[w]:[]});return}if(_)if(h in this.map){let T=this.map[h];w in T?T[w].push(_):T[w]=[_]}else this.map[h]={[w]:[_]}}deleteReferences(h,w){if(h===w){delete this.map[h];return}h in this.map&&w in this.map[h]&&(delete this.map[h][w],Object.keys(this.map[h]).length===0&&delete this.map[h])}hasRelation(h,w){return h in this.map&&w in this.map[h]||w in this.map&&h in this.map[w]||h===w}getReferences(h,w){return h in this.map&&w in this.map[h]?this.map[h][w]:[]}noteHasReferences(h){return h in this.map}getReferredByNotesCount(h){if(h in this.map){let w=Object.keys(this.map[h]).length;return h in this.map[h]&&(w-=1),w}else return 0}},Eh=class{constructor(){this.map=new Map}addReference(h,w,_){let T=h.toLowerCase(),M=this.map.get(T);M||(M=new Map,this.map.set(T,M));let D=M.get(w);D?D.push(_):M.set(w,[_])}deleteReferencesFrom(h){let w=[];for(let[_,T]of this.map)T.delete(h)&&T.size===0&&w.push(_);for(let _ of w)this.map.delete(_)}getReferrers(h){return this.map.get(h.toLowerCase())??new Map}getAllTags(){return Array.from(this.map.keys())}};import p4 from"minisearch";function h4(p,h="-"){return p.replace(/[.\s!@#$%^&*()\-=_+~`[\]{}\\<>?/|()【】::,。]+/g,h)}var wh=class{constructor(){this.miniSearch=new p4({fields:["title","aliases","filePath"],storeFields:["title","aliases","filePath"],extractField:(h,w)=>w==="aliases"?h.aliases.join("|"):w==="title"?h.title:w==="filePath"?h.filePath:h.id,tokenize:h=>h4(h," ").match(/([^\x00-\x7F]|\w+)/g)??[]}),this._cache={}}add(h,w,_=[]){if(!(h in this._cache)){let T={id:h+"#"+w,filePath:h,title:w,aliases:_};this.miniSearch.add(T),this._cache[h]=T}}remove(h){if(h in this._cache){let w=this._cache[h];w&&this.miniSearch.remove(w),delete this._cache[h]}}search(h,w){return this.miniSearch.search(h,w)}addAlias(h,w){let _=this._cache[h];_&&(this.remove(h),this.add(h,_.title,_.aliases.concat(w)))}deleteAlias(h,w){let _=this._cache[h];_&&(this.remove(h),this.add(h,_.title,_.aliases.filter(T=>T!==w)))}};import m4 from"object-hash";import{basename as g4}from"path";function b4(p){let h=[],w=[],_={},T=M=>{if(M in _)return;let D=p.notes[M];if(D)h.push({id:M,label:D.title});else{let L=M.lastIndexOf("."),U=M;L>0&&(U=M.slice(0,L)),h.push({id:M,label:g4(U)})}_[M]=!0};for(let M in p.referenceMap.map)if(p.referenceMap.map.hasOwnProperty(M)){T(M);for(let D in p.referenceMap.map[M])p.referenceMap.map[M].hasOwnProperty(D)&&D!==M&&(T(D),w.push({source:D,target:M}))}return{hash:m4({nodes:h,links:w}),nodes:h,links:w}}var C4={html:!0,xhtmlOut:!1,breaks:!0,langPrefix:"language-",linkify:!0,typographer:!0,sourceMap:!0},c2=class p{constructor(){this.notes={};this.hasLoadedNotes=!1;this.currentRenderFilePath="";this.referenceMap=new vh;this.tagReferenceMap=new Eh;this.refreshNotesIfNotLoadedMutex=new s2;this.refreshNotesMutex=new s2;this.processedMtimes=new Map;this.search=new wh;this.markdownYoRenderer=null;this.markdownYoRendererPromise=null;this.markdownEngines={}}async init({notebookPath:h,config:w={},fs:_}){let T=T4.parse(h);if(!Rt.isAbsolute(T.fsPath)||T.path.startsWith("/./"))throw new Error(`\`notebookPath\`: "${h}" must be an absolute path`);this.notebookPath=T,this.initFs(_),await this.initConfig(w),this.md=this.initMarkdownIt(),this.config.markdownParser==="markdown_yo"&&await this.initMarkdownYo(),this.updateConfig({})}static async init(h){let w=new p;return await w.init(h),w}async initConfig(h){let w=await NA(Rt.join(this.notebookPath.fsPath,"./.crossnote"),this.fs);this.config={...yh(),...w,...h}}initMarkdownIt(h){let w=new E4(h??C4);return w.use(_4),w.use(S4),w.use(A4),w.use(k4),w.use(w4),w.use(x4),cM(w),uM(w),YM(w),VM(w,this),ZM(w,this),JM(w,this),e2(w,this),a2(w,this),qM(w),WM(w),t2(w),n2(w,this),r2(w,this),w}initFs(h){if(h)this.fs=h;else if(i2)this.fs=IA();else throw new Error("`fs` is required")}async initMarkdownYo(){if(this.markdownYoRendererPromise){await this.markdownYoRendererPromise;return}this.markdownYoRenderer||(this.markdownYoRendererPromise=(async()=>{try{let{createRenderer:h}=await import("markdown_yo"),w=await h();this.config.markdownParser==="markdown_yo"?this.markdownYoRenderer=w:w.destroy()}catch(h){console.warn("Failed to load markdown_yo WASM renderer:",h),this.markdownYoRenderer=null}finally{this.markdownYoRendererPromise=null}})(),await this.markdownYoRendererPromise)}destroyMarkdownYo(){this.markdownYoRenderer?.destroy(),this.markdownYoRenderer=null}buildMarkdownYoOptions(h){let w=this.config;return{html:!0,typographer:!!w.enableTypographer,breaks:!!w.breakOnSingleNewLine,subscript:!0,superscript:!0,mark:!0,footnote:!0,deflist:!0,abbr:!0,admonition:!0,callout:!0,emoji:!!w.enableEmojiSyntax,wikilink:!!w.enableWikiLinkSyntax,critic:!!w.enableCriticMarkupSyntax,math:w.mathRenderingOption!=="None",sourceMap:h}}buildMarkdownYoBinaryArgs(h){let w=[];return h.html&&w.push("--html"),h.typographer&&w.push("--typographer"),h.commonmark&&w.push("--commonmark"),h.subscript&&w.push("--subscript"),h.superscript&&w.push("--superscript"),h.mark&&w.push("--mark"),h.math&&w.push("--math"),h.emoji&&w.push("--emoji"),h.wikilink&&w.push("--wikilink"),h.critic&&w.push("--critic"),h.abbr&&w.push("--abbr"),h.deflist&&w.push("--deflist"),h.admonition&&w.push("--admonition"),h.callout&&w.push("--callout"),h.footnote&&w.push("--footnote"),h.sourceMap&&w.push("--source-map"),w.push("-"),w}renderMarkdown(h,w){if(this.config.markdownParser==="markdown_yo"){let _=this.buildMarkdownYoOptions(!!w?.isForPreview),T=this.config.markdownYoBinaryPath,M;if(T){let D=this.buildMarkdownYoBinaryArgs(_);M=v4(T,D,{input:h,encoding:"utf8",maxBuffer:256*1024*1024})}else if(this.markdownYoRenderer)M=this.markdownYoRenderer.render(h,_);else return this.renderMarkdownWithMarkdownIt(h,w);return this.postProcessMarkdownYo(M)}return this.renderMarkdownWithMarkdownIt(h,w)}renderMarkdownWithMarkdownIt(h,w){return w?.isForPreview?this.md.render(h):this.initMarkdownIt({...this.md.options,sourceMap:!1}).render(h)}postProcessMarkdownYo(h){return this.config.mathRenderingOption==="KaTeX"?h=h.replace(/<(span|div) class="mathjax-exps">(\${1,2})([\s\S]*?)\2<\/\1>/g,(w,_,T,M)=>{let D=T==="$$";return Kc({content:M.trim(),openTag:T,closeTag:T,displayMode:D,renderingOption:this.config.mathRenderingOption,katexConfig:this.config.katexConfig})}):this.config.mathRenderingOption==="MathJax"&&(h=h.replace(/<(span|div) class="mathjax-exps">(\${1,2})([\s\S]*?)\2<\/\1>/g,(w,_,T,M)=>{let D=M.replace(/\n/g," ").trim(),L=T+D+T;return`<${_} class="mathjax-exps">${L}</${_}>`})),this.config.enableWikiLinkSyntax&&(h=h.replace(/<a href="([^"]*)"( class="wikilink")/g,(w,_,T)=>`<a href="${this.processWikilink(_).link}"${T}`)),h}updateConfig(h){this.config={...this.config,...h},this.interpolateConfig(),this.md.set({typographer:!!this.config.enableTypographer,breaks:!!this.config.breakOnSingleNewLine,linkify:!!this.config.enableLinkify}),this.config.markdownParser==="markdown_yo"?this.initMarkdownYo():this.destroyMarkdownYo()}interpolateConfig(){let h={projectDir:this.notebookPath.fsPath,workspaceFolder:this.notebookPath.fsPath};this.config.imageFolderPath=Od(this.config.imageFolderPath,h),this.config.imageMagickPath=Od(this.config.imageMagickPath,h),this.config.chromePath=Od(this.config.chromePath,h),this.config.pandocPath=Od(this.config.pandocPath,h),this.config.markdownYoBinaryPath=Od(this.config.markdownYoBinaryPath,h),this.config.plantumlJarPath=Od(this.config.plantumlJarPath,h)}async getBacklinkedNotes(h){if(h=this.resolveNoteRelativePath(h),!(h in this.referenceMap.map))return{};let w=this.referenceMap.map[h],_={};for(let T in w){if(T===h)continue;let M=this.notes[T];M&&(_[T]=M)}return _}getAllTags(){return this.tagReferenceMap.getAllTags()}async getNotesReferringToTag(h){let w=this.tagReferenceMap.getReferrers(h),_={};for(let T of w.keys()){let M=this.notes[T];M&&(_[T]=M)}return _}async getTagBacklinks(h){let w=this.tagReferenceMap.getReferrers(h),_=[];for(let[T,M]of w){let D=this.notes[T];D&&_.push({note:{notebookPath:D.notebookPath,filePath:D.filePath,title:D.title,config:D.config},references:M,referenceHtmls:M.map(L=>L.html)})}return _}async getNoteBacklinks(h){let w=await this.getBacklinkedNotes(h),_=[],T=Object.keys(w);for(let M of T){let D=w[M],L=await this.getReferences(h,M);_.push({note:{notebookPath:D.notebookPath,filePath:D.filePath,title:D.title,config:D.config},references:L,referenceHtmls:L.map(U=>U.html)})}return _}async getReferences(h,w){return this.referenceMap.getReferences(this.resolveNoteRelativePath(h),this.resolveNoteRelativePath(w))}renderReferenceHtml(h,w){return this.md.renderer.render([h??w],this.md.options,{})}referenceSourceLine(h,w){let _=h?.map?.[0]??w.map?.[0];return typeof _=="number"?_:void 0}async processNoteMentionsAndMentionedBy(h,w){let _=await this.getNote(h);if(!_)return;let T=w??await this.getNoteMarkdown(h);if(T==null)return;let M=this.md.parse(T,{}),D=V=>this.resolveWikilink(V,_.filePath),L=V=>R4.joinPath(this.notebookPath,V).toString(),U=(V,oe,Y,te)=>{for(let se=0;se<V.length;se++){let le=V[se];if(le.type==="wikilink"){let ue=this.processWikilink(le.content),{text:be}=ue,xe=ue.link;if(xe.match(/https?:\/\//))continue;let Le=xe.match(/[#^]/),Me=Le?xe.slice(0,Le.index):xe,ve=Le?xe.slice(Le.index):"",ye=Rt.extname(Me);if(ye&&!this.config.markdownFileExtensions.includes(ye))continue;let we=D(Me),Ve=we+ve;this.config.useGitHubStylePipedLink?le.content=`${be} | ${L(Ve)}`:le.content=`${L(Ve)} | ${be}`,Y.push({elementId:le.attrGet("id")||"",text:be,link:we,html:this.renderReferenceHtml(oe,le),sourceLine:this.referenceSourceLine(oe,le),kind:"wikilink"})}else if(le.type==="tag"){let ue=le.content.trim();Y.push({elementId:le.attrGet("id")||"",text:ue,link:"",html:this.renderReferenceHtml(oe,le),sourceLine:this.referenceSourceLine(oe,le),kind:"tag"})}else if(le.type==="link_open"&&V[se+1]&&V[se+1].type==="text"){if(le.attrs?.length&&le.attrs[0][0]==="href"){let ue=decodeURI(le.attrs[0][1]),be=V[se+1].content.trim(),xe=Rt.extname(ue).toLowerCase();if(ue.match(/https?:\/\//)||!be.length||!this.config.markdownFileExtensions.includes(xe))continue;ue=D(ue),le.attrs[0][1]=L(ue),Y.push({elementId:le.attrGet("id")||"",text:be,link:ue,html:this.renderReferenceHtml(oe,le),sourceLine:this.referenceSourceLine(oe,le),kind:"link"})}}else le.children&&le.children.length&&U(le.children,le,Y,te+1)}return Y},q=U(M,null,[],0),J={},K=_.mentions;for(let V in K)this.referenceMap.deleteReferences(V,_.filePath);this.tagReferenceMap.deleteReferencesFrom(_.filePath);for(let V=0;V<q.length;V++){let oe=q[V];if(oe.kind==="tag"){this.tagReferenceMap.addReference(oe.text,_.filePath,oe);continue}let{link:Y}=oe;Y&&(J[Y]=!0,this.referenceMap.addReference(Y,_.filePath,oe))}this.referenceMap.addReference(_.filePath,_.filePath,void 0),_.mentions=J}async getNote(h,w=!1){if(h=this.resolveNoteRelativePath(h),!w&&h in this.notes)return this.notes[h];let _=await this.loadNoteFromDisk(h);if(!_)return null;let{note:T,markdown:M}=_;return w&&(this.notes[T.filePath]=T,this.search.add(T.filePath,T.title,T.config.aliases),await this.processNoteMentionsAndMentionedBy(T.filePath,M)),T}async getNoteMarkdown(h){return h=this.resolveNoteRelativePath(h),(await this.loadNoteFromDisk(h))?.markdown??null}async loadNoteFromDisk(h){h=this.resolveNoteRelativePath(h);let w=this.resolveNoteAbsolutePath(h),_;try{_=await this.fs.stat(w)}catch{return null}if(!_.isFile()||!this.config.markdownFileExtensions.includes(Rt.extname(h)))return null;let T=this.config.maxNoteFileSize??0;if(T>0&&_.size>T)return null;let M=await this.fs.readFile(w),D={createdAt:new Date(_.ctimeMs),modifiedAt:new Date(_.mtimeMs),aliases:[]};try{let K=OA(M),V=Object.assign({},K.data);if(K.data.created&&(D.createdAt=new Date(K.data.created),delete V.created),K.data.modified&&(D.modifiedAt=new Date(K.data.modified),delete V.modified),K.data.pinned&&(D.pinned=K.data.pinned,delete V.pinned),K.data.favorited&&(D.favorited=K.data.favorited,delete V.favorited),K.data.icon&&(D.icon=K.data.icon,delete V.icon),K.data.aliases){let oe=K.data.aliases||[];typeof oe=="string"?D.aliases=oe.split(",").map(Y=>Y.trim()):D.aliases=oe,delete V.aliases}M=DA(K.content,V)}catch{M=`Please fix front-matter. (\u{1F448} Don't forget to delete this line)
|
|
337
337
|
|
|
338
|
-
`+M}let L={},U=this.notes[h];U&&(L=U.mentions);let q=Rt.extname(w),J=this.config.markdownFileExtensions.includes(q)?Rt.basename(w,q):Rt.basename(w);return{note:{notebookPath:this.notebookPath,filePath:Rt.relative(this.notebookPath.fsPath,w),title:J,config:D,mentions:L},markdown:M}}async refreshNotesIfNotLoaded({dir:h="./",includeSubdirectories:w=!1}){return await this.refreshNotesIfNotLoadedMutex.runExclusive(async()=>{this.hasLoadedNotes||(await this.refreshNotes({dir:h,includeSubdirectories:w,refreshRelations:!0}),this.hasLoadedNotes=!0)}),this.notes}async loadGitignoreForDir(h){try{let w=await this.fs.readFile(Rt.join(h,".gitignore"));return v4().add(w)}catch{return null}}async refreshNotes(h){return this.refreshNotesMutex.runExclusive(async()=>{let{refreshRelations:w=!0}=h;return w&&(this.notes={},this.referenceMap=new vh,this.tagReferenceMap=new Eh,this.search=new wh,this.processedMtimes.clear()),await this._refreshNotesInternal({...h,refreshRelations:w}),this.notes})}async refreshNotesIncremental(h){return this.refreshNotesMutex.runExclusive(async()=>{let{dir:w="./",includeSubdirectories:_=!1}=h,T=new Map;await this._collectOnDiskMtimes(w,_,[],T);let M=[];for(let U of Object.keys(this.notes))T.has(U)||M.push(U);for(let U of M)await this.removeNoteRelations(U),this.search.remove(U),this.processedMtimes.delete(U);let D=[];for(let[U,q]of T){let J=this.processedMtimes.get(U);(J===void 0||q>J)&&D.push(U)}let L=[];for(let U of D){let q=await this.loadNoteFromDisk(U);if(!q)continue;let{note:J,markdown:K}=q,V=!(J.filePath in this.notes);this.notes[J.filePath]=J,V&&this.search.add(J.filePath,J.title,J.config.aliases);let oe=T.get(J.filePath);L.push({notePath:J.filePath,markdown:K,mtime:oe??Math.floor(Date.now()/1e3),wasNew:V})}for(let{notePath:U,markdown:q,mtime:J}of L)await this.processNoteMentionsAndMentionedBy(U,q),J!==void 0&&this.processedMtimes.set(U,J);return this.notes})}async _walkNotebookDir(h,w,_,T){let M=Rt.resolve(this.notebookPath.fsPath,h),D=Rt.relative(this.notebookPath.fsPath,M).replace(/\\/g,"/"),L=await this.loadGitignoreForDir(M),U=L?[..._,{ig:L,base:D||"."}]:_,q=V=>{for(let{ig:oe,base:Y}of U){let te=Y==="."||Y===""?V:Rt.posix.relative(Y,V);if(!te.startsWith("..")&&oe.ignores(te))return!0}return!1},J;try{J=await this.fs.readdir(M)}catch(V){console.error(V);return}let K=[];for(let V of J){if(V.match(/^(node_modules|\.git)$/))continue;let oe=Rt.resolve(M,V),Y=Rt.relative(this.notebookPath.fsPath,oe).replace(/\\/g,"/");if(U.length>0&&q(Y))continue;let te;try{te=await this.fs.stat(oe)}catch(se){console.error(se);continue}te.isFile()?await T({absPath:oe,relPath:Y,stats:te}):te.isDirectory()&&w&&K.push(this._walkNotebookDir(Y,w,U,T))}await Promise.all(K)}async _collectOnDiskMtimes(h,w,_,T){let M=this.config.maxNoteFileSize??0;await this._walkNotebookDir(h,w,_,async({relPath:D,stats:L})=>{let U=Rt.extname(D);this.config.markdownFileExtensions.includes(U)&&(M<=0||L.size<=M)&&T.set(D,Math.floor(L.mtimeMs))})}async _refreshNotesInternal({dir:h="./",includeSubdirectories:w=!1,gitignoreStack:_=[],refreshRelations:T=!0}){let M=[];await this._walkNotebookDir(h,w,_,async({relPath:D,stats:L})=>{let U=await this.loadNoteFromDisk(D);if(!U)return;let{note:q,markdown:J}=U;this.notes[q.filePath]=q,this.search.add(q.filePath,q.title,q.config.aliases),T&&M.push({notePath:q.filePath,markdown:J,mtime:Math.floor(L.mtimeMs)})});for(let{notePath:D,markdown:L,mtime:U}of M)await this.processNoteMentionsAndMentionedBy(D,L),this.processedMtimes.set(D,U)}async removeNoteRelations(h){let w=await this.getNote(h);if(!w)return;this.tagReferenceMap.deleteReferencesFrom(w.filePath);let _=w.mentions;for(let T in _)this.referenceMap.deleteReferences(T,w.filePath);delete this.notes[w.filePath]}async deleteNote(h,w=!1){let _=this.resolveNoteAbsolutePath(h);(w||await this.fs.exists(_))&&(await this.fs.unlink(_),await this.removeNoteRelations(h),this.search.remove(h))}resolveNoteAbsolutePath(h){return Rt.isAbsolute(h)?h:Rt.resolve(this.notebookPath.fsPath,h)}resolveNoteRelativePath(h){return Rt.isAbsolute(h)?Rt.relative(this.notebookPath.fsPath,h):h}getNoteMarkdownEngine(h){return h=this.resolveNoteRelativePath(h),h in this.markdownEngines||(this.markdownEngines[h]=new dk({notebook:this,filePath:this.resolveNoteAbsolutePath(h)})),this.markdownEngines[h]}getNoteMarkdownEngines(){return this.markdownEngines}clearAllNoteMarkdownEngineCaches(){for(let h in this.markdownEngines)this.markdownEngines[h].clearCaches()}processWikilink(h){let w=h.split("|"),_,T;w.length===1?(T=w[0].trim(),_=T):this.config.useGitHubStylePipedLink?(T=w[0].trim(),_=w[1].trim()):(T=w[1].trim(),_=w[0].trim());let M=_.lastIndexOf("#"),D=_.lastIndexOf("^"),L="",U="";M>=0&&D>=0&&D>M?(L=_.slice(M,D),U=_.slice(D),_=_.slice(0,M)):M>=0?(L=_.slice(M),_=_.slice(0,M)):D>=0&&(U=_.slice(D),_=_.slice(0,D));let q=Rt.parse(_),J=q.name,K=q.ext;return K.match(/^\.\d+$/)&&(J+=K,K=""),this.config.wikiLinkTargetFileNameChangeCase!=="none"&&this.config.wikiLinkTargetFileNameChangeCase in l2&&(J=l2[this.config.wikiLinkTargetFileNameChangeCase](J)),K||(K=this.config.wikiLinkTargetFileExtension),_=Rt.join(q.dir,J+K),L&&(_+=L),U&&(_+=U),{link:_,text:T,hash:L,blockRef:U}}resolveWikilink(h,w){if(Rt.extname(h)||(h=h+this.config.wikiLinkTargetFileExtension),h.startsWith("/"))return Rt.relative(this.notebookPath.fsPath,Rt.join(this.notebookPath.fsPath,"."+h));let _=this.config.wikiLinkResolution;if(_==="absolute")return Rt.relative(this.notebookPath.fsPath,Rt.join(this.notebookPath.fsPath,h));if(_==="shortest"){let M=h.replace(/\\/g,"/"),D=Object.keys(this.notes).filter(L=>{let U=L.replace(/\\/g,"/");return U===M||U.endsWith("/"+M)});if(D.length===1)return D[0];if(D.length>1){let L=V=>V.replace(/\\/g,"/");D.sort((V,oe)=>L(V).split("/").length-L(oe).split("/").length||V.localeCompare(oe));let U=L(D[0]).split("/").length,q=D.filter(V=>L(V).split("/").length===U),J=L(Rt.dirname(w));return q.find(V=>{let oe=L(V);return J==="."?!oe.includes("/"):oe.startsWith(J+"/")})||q[0]}}let T=w?Rt.dirname(Rt.join(this.notebookPath.fsPath,w)):this.notebookPath.fsPath;return Rt.relative(this.notebookPath.fsPath,Rt.join(T,h))}};import{escape as D4}from"html-escaper";var I4={sh:"bash",bash:"bash",c:"c","c++":"cpp",cpp:"cpp",coffee:"coffeescript",coffeescript:"coffeescript","coffee-script":"coffeescript",cs:"csharp",csharp:"csharp",css:"css",scss:"scss",sass:"sass",elm:"elm",elmlang:"elm","elm-lang":"elm",erlang:"erlang",go:"go",html:"html",java:"java",js:"javascript",javascript:"javascript",json:"json",less:"less",objc:"objectivec",objectivec:"objectivec","objective-c":"objectivec",php:"php",py:"python",python:"python",rb:"ruby",ruby:"ruby",text:"text",tex:"latex",xml:"xml",yaml:"yaml",yml:"yaml",yaml_table:"yaml",mermaid:"mermaid",plantuml:"plantuml",puml:"plantuml",wavedrom:"wavedrom",graphviz:"dot",viz:"dot",dot:"dot",erd:"erd",node:"javascript",md:"gfm",diff:"diff"};function u2(p){return p=p.toLowerCase(),I4[p]||p}function d2(p){p.languages.iele={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],variable:{pattern:/(@|%)([A-Za-z0-9\\_\\.\\-\\$])[a-zA-Z\\.\\_\\$][0-9a-zA-Z\\.\\_\\-\\$]*/,greedy:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/\b(?:load|store|sload|sstore|iszero|not|add|mul|sub|div|exp|mod|addmod|mulmod|expmod|byte|sext|twos|and|or|xor|shift|lt|le|gt|ge|eq|ne|cmp|sha3|br|call|staticcall|at|send|gaslimit|ret|void|revert|log|create|copycreate|selfdestruct|contract|external|define|public|log2|bswap|calladdress)\b/,label:/(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+:/i,boolean:/\b(?:true|false)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}}function f2(p){p.languages.k={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":/\b(?:strict|avoid|prefer|bracket|non-assoc|seqstrict|left|right|macro-rec|macro|token|notInRules|autoReject|structural|latex|binder|klabel|symbol|format)\b/,keyword:{pattern:/\b(?:syntax\s+(?:priority|priorities|left|right|non-assoc|lexical)|syntax|rule|Id|Int|Bool|String|Token|Lexer|Float|configuration|import|imports|require|requires|Kresult|context\s+alias|context|module|endmodule|claim)\b/,greedy:!0},boolean:/\b(?:true|false)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:{pattern:/[<>]=|=>|~>|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/},punctuation:/[{}[\];(),.:]/,tag:{pattern:/<\/?(?!\d)[^\s>/=$<%]+(?:\s(?:\s*[^\s>/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>/]+/,inside:{namespace:/^[^\s>/:]+:/}}}}}}var kh=DD(p2());kh.default.hooks.add("wrap",p=>{p.type==="keyword"&&p.classes.push(`keyword-${p.content}`)});f2(kh.default);d2(kh.default);async function MA(p){p("pre>code").each((h,w)=>{let _=p(w),T=_.text(),M=_.parent();_.replaceWith(D4(T)),M.addClass("language-text")}),p('[data-role="codeBlock"]').each((h,w)=>{let _=p(w);if(_.data("hiddenByEnhancer")||_.data("normalizedInfo").attributes.hide===!0){_.remove();return}let M=_.text(),D=_.data("normalizedInfo"),L=M4(u2(D.language),M);try{let U=kh.default.highlight(M,kh.default.languages[L],L);_.empty().append(p("<code></code>").html(U))}catch{_.empty().append(p("<code></code>").text(M))}_.addClass(`language-${L||"text"}`),D.attributes.class&&(_.addClass(D.attributes.class),L4(_,M)),D.attributes.highlight&&F4(_,M,D.attributes.highlight),_.removeAttr("data-parsed-info"),_.removeAttr("data-normalized-info")})}function M4(p,h){return p==="vega"||p==="vega-lite"?(h.match(/^\s*(.)/)??[])[1]==="{"?"json":"yaml":p}function L4(p,h){if(p.hasClass("numberLines")&&(p.addClass("line-numbers"),p.removeClass("numberLines")),p.hasClass("line-numbers")){if(!h.trim().length)return;let w=h.match(/\n(?!$)/g),_=w?w.length+1:1,T="";for(let M=0;M<_;M++)T+="<span></span>";p.append(`<span aria-hidden="true" class="line-numbers-rows">${T}</span>`)}}function F4(p,h,w){if(!h.trim().length)return;typeof w=="number"?w=[w.toString()]:typeof w=="string"&&(w=w.split(","));let _=h.match(/\n(?!$)/g),T=_?_.length+1:1,M=[];w.forEach(D=>{if(D=D.toString(),D.indexOf("-")>0){let[L,U]=D.split("-").map(K=>parseInt(K,10));if(isNaN(L)||isNaN(U)||L<0||U<0||(L>U&&([L,U]=[U,L]),U>T))return;let q="";for(let K=L;K<=U;K++)q+=`
|
|
338
|
+
`+M}let L={},U=this.notes[h];U&&(L=U.mentions);let q=Rt.extname(w),J=this.config.markdownFileExtensions.includes(q)?Rt.basename(w,q):Rt.basename(w);return{note:{notebookPath:this.notebookPath,filePath:Rt.relative(this.notebookPath.fsPath,w),title:J,config:D,mentions:L},markdown:M}}async refreshNotesIfNotLoaded({dir:h="./",includeSubdirectories:w=!1}){return await this.refreshNotesIfNotLoadedMutex.runExclusive(async()=>{this.hasLoadedNotes||(await this.refreshNotes({dir:h,includeSubdirectories:w,refreshRelations:!0}),this.hasLoadedNotes=!0)}),this.notes}async loadGitignoreForDir(h){try{let w=await this.fs.readFile(Rt.join(h,".gitignore"));return y4().add(w)}catch{return null}}async refreshNotes(h){return this.refreshNotesMutex.runExclusive(async()=>{let{refreshRelations:w=!0}=h;return w&&(this.notes={},this.referenceMap=new vh,this.tagReferenceMap=new Eh,this.search=new wh,this.processedMtimes.clear()),await this._refreshNotesInternal({...h,refreshRelations:w}),this.notes})}async refreshNotesIncremental(h){return this.refreshNotesMutex.runExclusive(async()=>{let{dir:w="./",includeSubdirectories:_=!1}=h,T=new Map;await this._collectOnDiskMtimes(w,_,[],T);let M=[];for(let U of Object.keys(this.notes))T.has(U)||M.push(U);for(let U of M)await this.removeNoteRelations(U),this.search.remove(U),this.processedMtimes.delete(U);let D=[];for(let[U,q]of T){let J=this.processedMtimes.get(U);(J===void 0||q>J)&&D.push(U)}let L=[];for(let U of D){let q=await this.loadNoteFromDisk(U);if(!q)continue;let{note:J,markdown:K}=q,V=!(J.filePath in this.notes);this.notes[J.filePath]=J,V&&this.search.add(J.filePath,J.title,J.config.aliases);let oe=T.get(J.filePath);L.push({notePath:J.filePath,markdown:K,mtime:oe??Math.floor(Date.now()/1e3),wasNew:V})}for(let{notePath:U,markdown:q,mtime:J}of L)await this.processNoteMentionsAndMentionedBy(U,q),J!==void 0&&this.processedMtimes.set(U,J);return this.notes})}async _walkNotebookDir(h,w,_,T){let M=Rt.resolve(this.notebookPath.fsPath,h),D=Rt.relative(this.notebookPath.fsPath,M).replace(/\\/g,"/"),L=await this.loadGitignoreForDir(M),U=L?[..._,{ig:L,base:D||"."}]:_,q=V=>{for(let{ig:oe,base:Y}of U){let te=Y==="."||Y===""?V:Rt.posix.relative(Y,V);if(!te.startsWith("..")&&oe.ignores(te))return!0}return!1},J;try{J=await this.fs.readdir(M)}catch(V){console.error(V);return}let K=[];for(let V of J){if(V.match(/^(node_modules|\.git)$/))continue;let oe=Rt.resolve(M,V),Y=Rt.relative(this.notebookPath.fsPath,oe).replace(/\\/g,"/");if(U.length>0&&q(Y))continue;let te;try{te=await this.fs.stat(oe)}catch(se){console.error(se);continue}te.isFile()?await T({absPath:oe,relPath:Y,stats:te}):te.isDirectory()&&w&&K.push(this._walkNotebookDir(Y,w,U,T))}await Promise.all(K)}async _collectOnDiskMtimes(h,w,_,T){let M=this.config.maxNoteFileSize??0;await this._walkNotebookDir(h,w,_,async({relPath:D,stats:L})=>{let U=Rt.extname(D);this.config.markdownFileExtensions.includes(U)&&(M<=0||L.size<=M)&&T.set(D,Math.floor(L.mtimeMs))})}async _refreshNotesInternal({dir:h="./",includeSubdirectories:w=!1,gitignoreStack:_=[],refreshRelations:T=!0}){let M=[];await this._walkNotebookDir(h,w,_,async({relPath:D,stats:L})=>{let U=await this.loadNoteFromDisk(D);if(!U)return;let{note:q,markdown:J}=U;this.notes[q.filePath]=q,this.search.add(q.filePath,q.title,q.config.aliases),T&&M.push({notePath:q.filePath,markdown:J,mtime:Math.floor(L.mtimeMs)})});for(let{notePath:D,markdown:L,mtime:U}of M)await this.processNoteMentionsAndMentionedBy(D,L),this.processedMtimes.set(D,U)}async removeNoteRelations(h){let w=await this.getNote(h);if(!w)return;this.tagReferenceMap.deleteReferencesFrom(w.filePath);let _=w.mentions;for(let T in _)this.referenceMap.deleteReferences(T,w.filePath);delete this.notes[w.filePath]}async deleteNote(h,w=!1){let _=this.resolveNoteAbsolutePath(h);(w||await this.fs.exists(_))&&(await this.fs.unlink(_),await this.removeNoteRelations(h),this.search.remove(h))}resolveNoteAbsolutePath(h){return Rt.isAbsolute(h)?h:Rt.resolve(this.notebookPath.fsPath,h)}resolveNoteRelativePath(h){return Rt.isAbsolute(h)?Rt.relative(this.notebookPath.fsPath,h):h}getNoteMarkdownEngine(h){return h=this.resolveNoteRelativePath(h),h in this.markdownEngines||(this.markdownEngines[h]=new dk({notebook:this,filePath:this.resolveNoteAbsolutePath(h)})),this.markdownEngines[h]}getNoteMarkdownEngines(){return this.markdownEngines}clearAllNoteMarkdownEngineCaches(){for(let h in this.markdownEngines)this.markdownEngines[h].clearCaches()}processWikilink(h){let w=h.split("|"),_,T;w.length===1?(T=w[0].trim(),_=T):this.config.useGitHubStylePipedLink?(T=w[0].trim(),_=w[1].trim()):(T=w[1].trim(),_=w[0].trim());let M=_.lastIndexOf("#"),D=_.lastIndexOf("^"),L="",U="";M>=0&&D>=0&&D>M?(L=_.slice(M,D),U=_.slice(D),_=_.slice(0,M)):M>=0?(L=_.slice(M),_=_.slice(0,M)):D>=0&&(U=_.slice(D),_=_.slice(0,D));let q=Rt.parse(_),J=q.name,K=q.ext;return K.match(/^\.\d+$/)&&(J+=K,K=""),this.config.wikiLinkTargetFileNameChangeCase!=="none"&&this.config.wikiLinkTargetFileNameChangeCase in l2&&(J=l2[this.config.wikiLinkTargetFileNameChangeCase](J)),K||(K=this.config.wikiLinkTargetFileExtension),_=Rt.join(q.dir,J+K),L&&(_+=L),U&&(_+=U),{link:_,text:T,hash:L,blockRef:U}}resolveWikilink(h,w){if(Rt.extname(h)||(h=h+this.config.wikiLinkTargetFileExtension),h.startsWith("/"))return Rt.relative(this.notebookPath.fsPath,Rt.join(this.notebookPath.fsPath,"."+h));let _=this.config.wikiLinkResolution;if(_==="absolute")return Rt.relative(this.notebookPath.fsPath,Rt.join(this.notebookPath.fsPath,h));if(_==="shortest"){let M=h.replace(/\\/g,"/"),D=Object.keys(this.notes).filter(L=>{let U=L.replace(/\\/g,"/");return U===M||U.endsWith("/"+M)});if(D.length===1)return D[0];if(D.length>1){let L=V=>V.replace(/\\/g,"/");D.sort((V,oe)=>L(V).split("/").length-L(oe).split("/").length||V.localeCompare(oe));let U=L(D[0]).split("/").length,q=D.filter(V=>L(V).split("/").length===U),J=L(Rt.dirname(w));return q.find(V=>{let oe=L(V);return J==="."?!oe.includes("/"):oe.startsWith(J+"/")})||q[0]}}let T=w?Rt.dirname(Rt.join(this.notebookPath.fsPath,w)):this.notebookPath.fsPath;return Rt.relative(this.notebookPath.fsPath,Rt.join(T,h))}};import{escape as O4}from"html-escaper";var N4={sh:"bash",bash:"bash",c:"c","c++":"cpp",cpp:"cpp",coffee:"coffeescript",coffeescript:"coffeescript","coffee-script":"coffeescript",cs:"csharp",csharp:"csharp",css:"css",scss:"scss",sass:"sass",elm:"elm",elmlang:"elm","elm-lang":"elm",erlang:"erlang",go:"go",html:"html",java:"java",js:"javascript",javascript:"javascript",json:"json",less:"less",objc:"objectivec",objectivec:"objectivec","objective-c":"objectivec",php:"php",py:"python",python:"python",rb:"ruby",ruby:"ruby",text:"text",tex:"latex",xml:"xml",yaml:"yaml",yml:"yaml",yaml_table:"yaml",mermaid:"mermaid",plantuml:"plantuml",puml:"plantuml",wavedrom:"wavedrom",graphviz:"dot",viz:"dot",dot:"dot",erd:"erd",node:"javascript",md:"gfm",diff:"diff"};function u2(p){return p=p.toLowerCase(),N4[p]||p}function d2(p){p.languages.iele={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],variable:{pattern:/(@|%)([A-Za-z0-9\\_\\.\\-\\$])[a-zA-Z\\.\\_\\$][0-9a-zA-Z\\.\\_\\-\\$]*/,greedy:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/\b(?:load|store|sload|sstore|iszero|not|add|mul|sub|div|exp|mod|addmod|mulmod|expmod|byte|sext|twos|and|or|xor|shift|lt|le|gt|ge|eq|ne|cmp|sha3|br|call|staticcall|at|send|gaslimit|ret|void|revert|log|create|copycreate|selfdestruct|contract|external|define|public|log2|bswap|calladdress)\b/,label:/(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+:/i,boolean:/\b(?:true|false)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}}function f2(p){p.languages.k={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":/\b(?:strict|avoid|prefer|bracket|non-assoc|seqstrict|left|right|macro-rec|macro|token|notInRules|autoReject|structural|latex|binder|klabel|symbol|format)\b/,keyword:{pattern:/\b(?:syntax\s+(?:priority|priorities|left|right|non-assoc|lexical)|syntax|rule|Id|Int|Bool|String|Token|Lexer|Float|configuration|import|imports|require|requires|Kresult|context\s+alias|context|module|endmodule|claim)\b/,greedy:!0},boolean:/\b(?:true|false)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:{pattern:/[<>]=|=>|~>|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/},punctuation:/[{}[\];(),.:]/,tag:{pattern:/<\/?(?!\d)[^\s>/=$<%]+(?:\s(?:\s*[^\s>/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>/]+/,inside:{namespace:/^[^\s>/:]+:/}}}}}}var kh=DD(p2());kh.default.hooks.add("wrap",p=>{p.type==="keyword"&&p.classes.push(`keyword-${p.content}`)});f2(kh.default);d2(kh.default);async function MA(p){p("pre>code").each((h,w)=>{let _=p(w),T=_.text(),M=_.parent();_.replaceWith(O4(T)),M.addClass("language-text")}),p('[data-role="codeBlock"]').each((h,w)=>{let _=p(w);if(_.data("hiddenByEnhancer")||_.data("normalizedInfo").attributes.hide===!0){_.remove();return}let M=_.text(),D=_.data("normalizedInfo"),L=D4(u2(D.language),M);try{let U=kh.default.highlight(M,kh.default.languages[L],L);_.empty().append(p("<code></code>").html(U))}catch{_.empty().append(p("<code></code>").text(M))}_.addClass(`language-${L||"text"}`),D.attributes.class&&(_.addClass(D.attributes.class),M4(_,M)),D.attributes.highlight&&L4(_,M,D.attributes.highlight),_.removeAttr("data-parsed-info"),_.removeAttr("data-normalized-info")})}function D4(p,h){return p==="vega"||p==="vega-lite"?(h.match(/^\s*(.)/)??[])[1]==="{"?"json":"yaml":p}function M4(p,h){if(p.hasClass("numberLines")&&(p.addClass("line-numbers"),p.removeClass("numberLines")),p.hasClass("line-numbers")){if(!h.trim().length)return;let w=h.match(/\n(?!$)/g),_=w?w.length+1:1,T="";for(let M=0;M<_;M++)T+="<span></span>";p.append(`<span aria-hidden="true" class="line-numbers-rows">${T}</span>`)}}function L4(p,h,w){if(!h.trim().length)return;typeof w=="number"?w=[w.toString()]:typeof w=="string"&&(w=w.split(","));let _=h.match(/\n(?!$)/g),T=_?_.length+1:1,M=[];w.forEach(D=>{if(D=D.toString(),D.indexOf("-")>0){let[L,U]=D.split("-").map(K=>parseInt(K,10));if(isNaN(L)||isNaN(U)||L<0||U<0||(L>U&&([L,U]=[U,L]),U>T))return;let q="";for(let K=L;K<=U;K++)q+=`
|
|
339
339
|
`;let J="";for(let K=0;K<L-1;K++)J+=`
|
|
340
340
|
`;M.push(`<div class="line-highlight-wrapper">${J}<div aria-hidden="true" class="line-highlight" data-range="${L}-${U}" data-start="${L}" data-end="${U}">${q}</div></div>`)}else{let L="",U=parseInt(D,10);if(isNaN(U)||U<0||U>T)return;for(let q=0;q<U-1;q++)L+=`
|
|
341
341
|
`;M.push(`<div class="line-highlight-wrapper">${L}<div aria-hidden="true" class="line-highlight" data-range="${D}" data-start="${D}">
|
|
342
|
-
</div></div>`)}}),p.append(M.join("")),p.attr("data-line",w.join(","))}import{extname as
|
|
342
|
+
</div></div>`)}}),p.append(M.join("")),p.attr("data-line",w.join(","))}import{extname as F4}from"path";async function pk(p,h,w){let _=[];p("img").each((T,M)=>{let D=p(M),L=w(D.attr("src")??"",!1);if(L.match(/^(file|vscode-resource):\/\/+/)){L=Ls(L),L=L.replace(/\?(\.|\d)+$/,"");let q=F4(L).slice(1);if(q==="svg")return;_.push(new Promise(J=>{h.fs.readFile(decodeURI(L),"base64").then(K=>(D.attr("src",`data:image/${q};charset=utf-8;base64,${K}`),J(K))).catch(K=>(console.error(K),J(null)))}))}}),await Promise.all(_)}import{extname as P4}from"path";async function LA(p,h,w){let _=[];p("img").each((T,M)=>{let D=p(M),L=w(D.attr("src")??"",!1);if(L.match(/^(file|vscode-resource):\/\/+/)){if(L=Ls(L),L=L.replace(/\?(\.|\d)+$/,""),P4(L).slice(1)!=="svg")return;_.push(new Promise(J=>{h.fs.readFile(decodeURI(L),"base64").then(K=>(D.attr("src",`data:image/svg+xml;charset=utf-8;base64,${K}`),J(K))).catch(()=>J(null))}))}}),await Promise.all(_)}import{escape as Ll}from"html-escaper";import*as Ld from"path";import*as m2 from"cheerio";var h2=3,$4=new Set([".pdf",".zip",".tar",".gz",".tgz",".7z",".rar",".exe",".dll",".so",".dylib",".bin",".dmg",".iso",".mp3",".mp4",".mov",".wav",".flac",".ogg",".webm",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".odt",".ods",".odp"]),B4=/^\.(apng|avif|gif|jpeg|jpg|png|svg|bmp|webp|emf)$/;async function hk(p,h,w,_=0){let T=p("wikilink-embed.wikilink-embed");if(_>=h2){T.each((D,L)=>{let U=L.attribs,q=decodeURIComponent(U&&U["data-wikilink-embed-path"]||"");p(L).replaceWith(`<div class="wikilink-embed-content wikilink-embed-error">Maximum embed depth (${h2}) reached: ${Ll(q)}</div>`)});return}let M=[];T.each((D,L)=>{let U=L.attribs;if(!U)return;let q=decodeURIComponent(U["data-wikilink-embed-path"]||""),J=decodeURIComponent(U["data-wikilink-embed-text"]||""),K=decodeURIComponent(U["data-wikilink-embed-block-ref"]||"");q&&M.push(U4(p,h,w,p(L),q,J,K,_))}),await Promise.all(M)}async function U4(p,h,w,_,T,M,D,L){if(T.match(/^https?:\/\//)){_.replaceWith(`<div class="wikilink-embed-content wikilink-embed-error">Remote content embedding is not supported: ${Ll(T)}</div>`);return}let U;T.startsWith("/")?U=Ld.resolve(h.notebookPath.fsPath,"."+T):U=Ld.resolve(w,T);let q="",J=U.lastIndexOf("#");J>0&&(q=U.substring(J),U=U.substring(0,J));let K=Ld.extname(U).toLowerCase();if(B4.test(K)){_.replaceWith(`<div class="wikilink-embed-content"><img src="${Ll(U)}" alt="${Ll(M)}"></div>`);return}if($4.has(K)){_.replaceWith(`<div class="wikilink-embed-content wikilink-embed-error">Cannot embed binary file: ${Ll(T)}</div>`);return}let V;try{V=await h.fs.readFile(U)}catch{_.replaceWith(`<div class="wikilink-embed-content wikilink-embed-error">File not found: ${Ll(T)}</div>`);return}if(h.config.markdownFileExtensions.includes(K))try{let oe=V,Y=D?`^${D}`:q?q.slice(1):"";try{Y=decodeURIComponent(Y)}catch{}if(Y){let xe=oe.split(`
|
|
343
343
|
`),Le=mh(oe,Y);if(Le<0&&!Y.startsWith("^")){let Me=new kr().generateId(Y);Le=mh(oe,Me)}if(Le>=0)if(Y.startsWith("^")){let Me=Le;for(;Me>0&&xe[Me-1].trim()!=="";)Me--;let ve=Le;for(;ve<xe.length-1&&xe[ve+1].trim()!=="";)ve++;let ye=xe.slice(Me,ve+1),we=Le-Me;ye[we]=ye[we].replace(/\s\^[a-zA-Z0-9_-]+\s*$/,""),oe=ye.join(`
|
|
344
344
|
`)}else{let Me=xe[Le].match(/^(#{1,6})\s/),ve=Me?Me[1].length:1,ye=xe.length;for(let we=Le+1;we<xe.length;we++){let Ve=xe[we].match(/^(#{1,6})\s/);if(Ve&&Ve[1].length<=ve){ye=we;break}}oe=xe.slice(Le,ye).join(`
|
|
345
|
-
`)}else{_.replaceWith(`<div class="wikilink-embed-content wikilink-embed-error">${Y.startsWith("^")?"Block reference not found":"Heading not found"}: ${Ll(Y.replace(/^\^/,""))}</div>`);return}}let te=Ld.dirname(U),se=h.getNoteMarkdownEngine(U),{html:le}=await se.parseMD(oe,{useRelativeFilePath:!1,isForPreview:!0,hideFrontMatter:!0,fileDirectoryPath:te}),ue=m2.load(`<div>${le}</div>`);await hk(ue,h,te,L+1);let be=ue.html();be=`<div class="wikilink-embed-content">${be}</div>`,_.replaceWith(be)}catch(oe){_.replaceWith(`<div class="wikilink-embed-content wikilink-embed-error">Error rendering embed: ${Ll(String(oe))}</div>`)}else _.replaceWith(`<div class="wikilink-embed-content"><pre class="language-text"><code>${Ll(V)}</code></pre></div>`)}async function FA(p){let h=[],w=[],_=[];p("table").each((T,M)=>{let D=p(M),L=null;D.children().each((U,q)=>{p(q).children().each((K,V)=>{let oe=p(V);oe.children().each((Y,te)=>{let se=p(te),le=se.text(),ue=se.html();if(!le.length&&!ue?.length){let be=se.prev();be.length&&_.push([be,se])}else if(le.trim()==="^"&&L){let be=p(L.children()[Y]);be.length&&h.push([be,se])}else if(le.trim()===">"){let be=se.next();be.length&&w.push([se,be])}}),L=oe})})});for(let T=h.length-1;T>=0;T--){let[M,D]=h[T],L=(parseInt(M.attr("rowspan")??"",10)||1)+(parseInt(D.attr("rowspan")??"",10)||1);M.attr("rowspan",L.toString()),D.remove()}for(let T=0;T<w.length;T++){let[M,D]=w[T],L=(parseInt(M.attr("colspan")??"",10)||1)+(parseInt(D.attr("colspan")??"",10)||1);D.attr("colspan",L.toString()),M.remove()}for(let T=_.length-1;T>=0;T--){let[M,D]=_[T],L=(parseInt(M.attr("colspan")??"",10)||1)+(parseInt(D.attr("colspan")??"",10)||1);M.attr("colspan",L.toString()),D.remove()}}import{escape as g2}from"html-escaper";async function PA(p,h,w,_){let T=[],M=[];p('[data-role="codeBlock"]').each((D,L)=>{let U=p(L);if(U.data("executor"))return;let q=U.data("normalizedInfo");q.attributes.cmd&&(U.data("executor","fenced-code-chunks"),T.push(
|
|
346
|
-
`),Y=h0(J.normalizedInfo);J.running=!0;let te,se="text",le=J.normalizedInfo.attributes.modify_source;try{let ue=J.normalizedInfo.attributes;if(Y==="toc")te=hh(_,{ordered:ue.ordered_list,depthFrom:ue.depth_from,depthTo:ue.depth_to,tab:ue.tab||" ",ignoreLink:ue.ignore_link}).content,se="markdown",le=!0;else{if(!T)return"";te=await gM(oe,D,Y,J.normalizedInfo.attributes,L)}if(J.plainResult=te,le&&"code_chunk_offset"in J.normalizedInfo.attributes)return J.result="",U(J,te,M);if(Y.match(/(la)?tex/)||Y==="pdflatex"||ue.matplotlib||ue.mpl?se="markdown":J.normalizedInfo.attributes.output&&(se=J.normalizedInfo.attributes.output),!te)te="";else if(se!=="html")if(se==="png")te=`<img src="data:image/png;charset=utf-8;base64,${new Buffer(te).toString("base64")}">`;else if(se==="markdown"){let{html:be}=await q(te,{useRelativeFilePath:!0,isForPreview:!1,hideFrontMatter:!0});te=be}else se==="none"?te="":te=`<pre class="language-text"><code>${g2(te)}</code></pre>`}catch(ue){te=`<pre class="language-text"><code>${g2(String(ue))}</code></pre>`}return J.result=te,J.running=!1,te}async function $A(p,h){let w=[];for(let _ in p)p.hasOwnProperty(_)&&w.push(mk(_,p,h));return Promise.all(w)}import
|
|
345
|
+
`)}else{_.replaceWith(`<div class="wikilink-embed-content wikilink-embed-error">${Y.startsWith("^")?"Block reference not found":"Heading not found"}: ${Ll(Y.replace(/^\^/,""))}</div>`);return}}let te=Ld.dirname(U),se=h.getNoteMarkdownEngine(U),{html:le}=await se.parseMD(oe,{useRelativeFilePath:!1,isForPreview:!0,hideFrontMatter:!0,fileDirectoryPath:te}),ue=m2.load(`<div>${le}</div>`);await hk(ue,h,te,L+1);let be=ue.html();be=`<div class="wikilink-embed-content">${be}</div>`,_.replaceWith(be)}catch(oe){_.replaceWith(`<div class="wikilink-embed-content wikilink-embed-error">Error rendering embed: ${Ll(String(oe))}</div>`)}else _.replaceWith(`<div class="wikilink-embed-content"><pre class="language-text"><code>${Ll(V)}</code></pre></div>`)}async function FA(p){let h=[],w=[],_=[];p("table").each((T,M)=>{let D=p(M),L=null;D.children().each((U,q)=>{p(q).children().each((K,V)=>{let oe=p(V);oe.children().each((Y,te)=>{let se=p(te),le=se.text(),ue=se.html();if(!le.length&&!ue?.length){let be=se.prev();be.length&&_.push([be,se])}else if(le.trim()==="^"&&L){let be=p(L.children()[Y]);be.length&&h.push([be,se])}else if(le.trim()===">"){let be=se.next();be.length&&w.push([se,be])}}),L=oe})})});for(let T=h.length-1;T>=0;T--){let[M,D]=h[T],L=(parseInt(M.attr("rowspan")??"",10)||1)+(parseInt(D.attr("rowspan")??"",10)||1);M.attr("rowspan",L.toString()),D.remove()}for(let T=0;T<w.length;T++){let[M,D]=w[T],L=(parseInt(M.attr("colspan")??"",10)||1)+(parseInt(D.attr("colspan")??"",10)||1);D.attr("colspan",L.toString()),M.remove()}for(let T=_.length-1;T>=0;T--){let[M,D]=_[T],L=(parseInt(M.attr("colspan")??"",10)||1)+(parseInt(D.attr("colspan")??"",10)||1);M.attr("colspan",L.toString()),D.remove()}}import{escape as g2}from"html-escaper";async function PA(p,h,w,_){let T=[],M=[];p('[data-role="codeBlock"]').each((D,L)=>{let U=p(L);if(U.data("executor"))return;let q=U.data("normalizedInfo");q.attributes.cmd&&(U.data("executor","fenced-code-chunks"),T.push(z4(U,q,p,h,M,w,_)))}),await Promise.all(T)}async function z4(p,h,w,_,T,M,D){let L=p.text(),U=h.attributes.id||"code-chunk-id-"+T.length,q=h0(h),J=["js","javascript"].indexOf(q)!==-1,K=w('<div class="code-chunk"></div>');K.attr("data-id",U),K.attr("data-cmd",q),J&&K.attr("data-code",L),p.replaceWith(K);let V=w('<div class="input-div"/>');V.append(p),K.append(V);let oe=_[U],Y=T.length?T[T.length-1].id:"";oe?(oe.code=L,oe.normalizedInfo=h,oe.prev=Y):(oe={id:U,code:L,normalizedInfo:h,result:"",plainResult:"",running:!1,prev:Y,next:null},_[U]=oe),Y&&_[Y]&&(_[Y].next=U),T.push(oe),M.triggeredBySave&&h.attributes.run_on_save&&await mk(U,_,D);let te=oe.result;!te&&oe.normalizedInfo.attributes.element&&(te=oe.normalizedInfo.attributes.element,oe.result=te),oe.running&&K.addClass("running");let se='<div class="status">running...</div>',le='<div class="code-chunk-btn-group"><div class="run-btn btn btn-xs btn-primary"><span>\u25B6\uFE0E</span></div><div class="run-all-btn btn btn-xs btn-primary">all</div></div>',ue=`<div class="output-div">${te}</div>`;!M.isForPreview&&J&&(ue+=`<script>${L}</script>`),V.append(le),V.append(se),h.attributes.output_first===!0?K.prepend(ue):K.append(ue)}async function mk(p,h,w){let{headings:_,enableScriptExecution:T,filePath:M,fileDirectoryPath:D,latexEngine:L,modifySource:U,parseMD:q}=w,J=h[p];if(!J||J.running)return"";let K=[J.code],V=J;for(;V.normalizedInfo.attributes.continue;){let ue=V.normalizedInfo.attributes.continue;if(ue===!0&&(ue=V.prev),V=h[ue],!V)break;K.unshift(V.code)}let oe=K.join(`
|
|
346
|
+
`),Y=h0(J.normalizedInfo);J.running=!0;let te,se="text",le=J.normalizedInfo.attributes.modify_source;try{let ue=J.normalizedInfo.attributes;if(Y==="toc")te=hh(_,{ordered:ue.ordered_list,depthFrom:ue.depth_from,depthTo:ue.depth_to,tab:ue.tab||" ",ignoreLink:ue.ignore_link}).content,se="markdown",le=!0;else{if(!T)return"";te=await gM(oe,D,Y,J.normalizedInfo.attributes,L)}if(J.plainResult=te,le&&"code_chunk_offset"in J.normalizedInfo.attributes)return J.result="",U(J,te,M);if(Y.match(/(la)?tex/)||Y==="pdflatex"||ue.matplotlib||ue.mpl?se="markdown":J.normalizedInfo.attributes.output&&(se=J.normalizedInfo.attributes.output),!te)te="";else if(se!=="html")if(se==="png")te=`<img src="data:image/png;charset=utf-8;base64,${new Buffer(te).toString("base64")}">`;else if(se==="markdown"){let{html:be}=await q(te,{useRelativeFilePath:!0,isForPreview:!1,hideFrontMatter:!0});te=be}else se==="none"?te="":te=`<pre class="language-text"><code>${g2(te)}</code></pre>`}catch(ue){te=`<pre class="language-text"><code>${g2(String(ue))}</code></pre>`}return J.result=te,J.running=!1,te}async function $A(p,h){let w=[];for(let _ in p)p.hasOwnProperty(_)&&w.push(mk(_,p,h));return Promise.all(w)}import aG from"cross-fetch";import{escape as k0}from"html-escaper";import*as _2 from"yaml";import{escape as G4}from"html-escaper";import j4 from"onml";import H4 from"bit-field/lib/render.js";async function b2(p,h){try{let w=m0(p),_=H4(w,h);return j4.stringify(_)}catch(w){return`<pre class="language-text"><code>${G4(String(w))}</code></pre>`}}import{execFile as q4}from"child_process";import*as zA from"crypto";import{escape as W4}from"html-escaper";import*as E0 from"fs";import*as BA from"os";import*as UA from"path";var gk=Symbol("D2_NOT_FOUND");async function y2(p,h){if(typeof zA?.randomBytes!="function")return gk;let w=zA.randomBytes(8).toString("hex"),_=UA.join(BA.tmpdir(),`d2-${w}.d2`),T=UA.join(BA.tmpdir(),`d2-${w}.svg`);try{return await E0.promises.writeFile(_,p,"utf8"),await new Promise((M,D)=>{let L=[`--theme=${h.d2Theme}`,`--layout=${h.d2Layout}`,...h.d2Sketch?["--sketch"]:[],_,T];q4(h.d2Path,L,{timeout:3e4},(U,q,J)=>{if(U){let K=new Error(J||U.message);K.code=U.code,D(K)}else M()})}),await E0.promises.readFile(T,"utf8")}catch(M){let D=M instanceof Error?M.message:String(M);return M.code==="ENOENT"||/not recognized as an internal or external command/i.test(D)||/not found/i.test(D)||/cannot find/i.test(D)||/No such file or directory/i.test(D)?gk:`<pre class="language-text"><code>D2 error: ${W4(D)}</code></pre>`}finally{E0.promises.unlink(_).catch(()=>{}),E0.promises.unlink(T).catch(()=>{})}}import{escape as V4}from"html-escaper";import{Mutex as Y4}from"async-mutex";var GA=Symbol("TIKZ_NOT_AVAILABLE"),K4=new Y4,w0;async function X4(){if(w0!==void 0)return w0;try{let h=(await import("node-tikzjax")).default;w0=typeof h=="function"?h:h?.default}catch(p){console.error("[crossnote] node-tikzjax failed to load:",p),w0=null}return w0}var Z4={amsmath:"",amstext:"",amsfonts:"",amssymb:"",array:""},J4=[{pattern:/\\begin\{tikzcd\}/,pkg:"tikz-cd"},{pattern:/\\begin\{axis\}|\\begin\{semilogxaxis\}|\\begin\{semilogyaxis\}|pgfplots/,pkg:"pgfplots"},{pattern:/\\begin\{circuitikz\}/,pkg:"circuitikz"},{pattern:/\\chemfig|\\schemestart/,pkg:"chemfig"},{pattern:/\\tdplotsetmaincoords|tdplot_/,pkg:"tikz-3dplot"}];function Q4(p){let h={};for(let{pattern:w,pkg:_,opts:T}of J4)w.test(p)&&(h[_]=T??"");return h}async function v2(p,h){let w=await X4();return w?K4.runExclusive(async()=>{try{let _=p;return _.includes("\\begin{document}")||(_=`\\begin{document}
|
|
347
347
|
${_}
|
|
348
|
-
\\end{document}`),await w(_,{texPackages:{...
|
|
349
|
-
`),w="";for(let _=0;_<h.length;_++){let T=h.charCodeAt(_);T<128?w+=String.fromCharCode(T):T>127&&T<2048?(w+=String.fromCharCode(T>>6|192),w+=String.fromCharCode(T&63|128)):(w+=String.fromCharCode(T>>12|224),w+=String.fromCharCode(T>>6&63|128),w+=String.fromCharCode(T&63|128))}return w}function w2(p){return p>=16383?String.fromCharCode(128|p>>14&127)+String.fromCharCode(128|p>>7&127)+String.fromCharCode(p&127):p>=127?String.fromCharCode(128|p>>7&127)+String.fromCharCode(p&127):String.fromCharCode(p)}function
|
|
348
|
+
\\end{document}`),await w(_,{texPackages:{...Z4,...Q4(_),...h?.texPackages},tikzLibraries:h?.tikzLibraries,addToPreamble:h?.addToPreamble,showConsole:h?.showConsole??!1,embedFontCss:h?.embedFontCss??!1,fontCssUrl:h?.fontCssUrl})}catch(_){let T=_ instanceof Error?_.message:String(_);return`<pre class="language-text"><code>TikZ error: ${V4(T)}</code></pre>`}}):GA}var E2="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",jA=class{constructor(){this.str="";this.partial=0;this.partialSize=0}addBits(h,w){for(this.partial=this.partial<<w|h,this.partialSize+=w;this.partialSize>=6;)this.str+=E2.charAt(this.partial>>this.partialSize-6&63),this.partialSize-=6}finish(){return this.partialSize&&(this.str+=E2.charAt(this.partial<<6-this.partialSize&63),this.partialSize=0,this.partial=0),this.str}};function eG(p){let h=new jA;for(let w=0;w<p.length;w++)h.addBits(p.charCodeAt(w),8);return h.finish()}function tG(p){let h=p.replace(/\r\n/g,`
|
|
349
|
+
`),w="";for(let _=0;_<h.length;_++){let T=h.charCodeAt(_);T<128?w+=String.fromCharCode(T):T>127&&T<2048?(w+=String.fromCharCode(T>>6|192),w+=String.fromCharCode(T&63|128)):(w+=String.fromCharCode(T>>12|224),w+=String.fromCharCode(T>>6&63|128),w+=String.fromCharCode(T&63|128))}return w}function w2(p){return p>=16383?String.fromCharCode(128|p>>14&127)+String.fromCharCode(128|p>>7&127)+String.fromCharCode(p&127):p>=127?String.fromCharCode(128|p>>7&127)+String.fromCharCode(p&127):String.fromCharCode(p)}function nG(p){let w="",_=0,T={},M=p.length-4;for(let D=4;D<p.length;D++){let L=p.substr(D-4,4);T[L]===void 0&&(T[L]=[]),T[L].push(D-4)}for(;_<M;){let D=4,L=!1,U={distance:0,length:0},q=p.substr(_,4),J=T[q];if(J!==void 0)for(let K=0;K<J.length;K++){let V=J[K];if(V+D>=_)break;for(;V+D<_&&p.substr(V,D)===p.substr(_,D);){let Y=D;D++,L&&Y>U.length&&(U.distance=_-V-Y,U.length=Y),L=!0}}U.length?(w+="\0"+w2(U.distance)+w2(U.length),_+=U.length):(p.charCodeAt(_)!==0?w+=p.charAt(_):w+="\0\0",_++)}return w+p.slice(_).replace(/\0/g,"\0\0")}function rG(p){return eG(nG(tG(p)))}function k2(p,h,w,_){let T=rG(p),M=`${h}/cgi-bin/cdraw?lz=${T}`;return w&&(M+=`&s=${w}`),_&&(M+=`&apikey=${_}`),M}var _h=(p,h)=>{let w=p.class||"";return w.split(" ").indexOf(h)===-1?{...p,class:`${w} ${h}`.trim()}:p},iG=["mermaid","puml","plantuml","wavedrom","bitfield","bit-field","graphviz","viz","dot","vega","vega-lite","wsd","d2","tikz"];async function HA({$:p,graphsCache:h,fileDirectoryPath:w,imageDirectoryPath:_,plantumlServer:T,plantumlJarPath:M,kirokiServer:D,webSequenceDiagramsServer:L,webSequenceDiagramsApiKey:U,d2Path:q,d2Layout:J,d2Theme:K,d2Sketch:V}){let oe=[];p('[data-role="codeBlock"]').each((te,se)=>{let le=p(se);if(le.data("executor"))return;let ue=le.data("normalizedInfo"),be=!!ue.attributes.kroki||ue.language.startsWith("kroki-");ue.attributes.literate===!1||ue.attributes.cmd===!1||iG.indexOf(ue.language)===-1&&!be||ue.attributes.code_block===!0||(le.data("executor","fenced-diagrams"),ue.attributes.literate!==!1&&oe.push(oG({$container:le,normalizedInfo:ue,$:p,graphsCache:h,fileDirectoryPath:w,imageDirectoryPath:_,plantumlServer:T,plantumlJarPath:M,isKroki:be,kirokiServer:D,webSequenceDiagramsServer:L,webSequenceDiagramsApiKey:U,d2Path:q,d2Layout:J,d2Theme:K,d2Sketch:V})))}),await Promise.all(oe)}async function oG({$container:p,normalizedInfo:h,$:w,graphsCache:_,fileDirectoryPath:T,plantumlServer:M,plantumlJarPath:D,isKroki:L,kirokiServer:U,webSequenceDiagramsServer:q,webSequenceDiagramsApiKey:J,d2Path:K,d2Layout:V,d2Theme:oe,d2Sketch:Y}){let te=null,se=p.text(),le=_r(JSON.stringify(h)+se),ue=_[le];if(L)if(ue)te=ue;else{let be=U||"https://kroki.io",xe=typeof h.attributes.kroki=="string"?h.attributes.kroki:h.language.replace(/^kroki-/,"");try{let Me=await(await aG(`${be}/${xe}/${h.attributes.output??"svg"}`,{method:"POST",body:se,headers:{"Content-Type":"text/plain; charset=utf-8"}})).text();te=`<div ${an(_h(h.attributes,h.language))}>${Me}</div>`,_[le]=te}catch(Le){te=`<pre class="language-text"><code>${k0(String(Le))}</code></pre>`}}else try{switch(h.language){case"mermaid":{te=`<div ${an(_h(h.attributes,h.language))}>${k0(se)}</div>`;break}case"wavedrom":{te=`<div ${an(_h(h.attributes,h.language))}><script type="WaveDrom">${se}</script></div>`;break}case"puml":case"plantuml":{let be=ue;be||(be=await ek({content:se,fileDirectoryPath:T,serverURL:M,plantumlJarPath:D}),_[le]=be),te=`<p ${an(h.attributes)}>${be}</p>`;break}case"bitfield":case"bit-field":{let be=ue;be||(be=await b2(se,h.attributes),_[le]=be),te=`<p ${an(h.attributes)}>${be}</p>`;break}case"graphviz":case"viz":case"dot":{let be=ue;if(!be){let xe=h.attributes.engine||"dot";be=await ik(se,{engine:xe}),_[le]=be}te=`<p ${an(h.attributes)}>${be}</p>`;break}case"vega":case"vega-lite":{if(h.attributes.interactive===!0){let be=se.trim(),xe;be[0]!=="{"?xe=_2.parse(be):xe=JSON.parse(be),te=sG(k0(JSON.stringify(xe)),h.attributes,h.language)}else{let be=ue;be||(be=await(h.language==="vega"?bh:rk)(se,T),_[le]=be),te=`<p data-processed ${an(h.attributes)}>${be}</p>`}break}case"wsd":{let be=q||"https://www.websequencediagrams.com",xe=h.attributes.style||"default",Me=k2(se,be,xe,J||void 0);te=`<div ${an(_h(h.attributes,"wsd"))}><img src="${k0(Me)}" alt="Sequence Diagram"></div>`;break}case"d2":{let be={d2Path:K||"d2",d2Layout:h.attributes.layout||V||"dagre",d2Theme:h.attributes.theme??oe??0,d2Sketch:"sketch"in h.attributes?h.attributes.sketch===!0:Y??!1},xe=_r(JSON.stringify(h)+se+JSON.stringify(be)),Le=_[xe];if(Le)te=`<div class="d2-diagram">${Le}</div>`;else{let Me=await y2(se,be);Me!==gk&&(_[xe]=Me,te=`<div class="d2-diagram">${Me}</div>`)}break}case"tikz":{let be=ue;if(!be){let xe=h.attributes,Le=xe.texPackages??xe.tex_packages,Me={texPackages:typeof Le=="string"?JSON.parse(Le):void 0,tikzLibraries:xe.tikzLibraries??xe.tikz_libraries,addToPreamble:xe.addToPreamble??xe.add_to_preamble,showConsole:(xe.showConsole??xe.show_console)===!0,embedFontCss:(xe.embedFontCss??xe.embed_font_css)!==void 0?xe.embedFontCss??xe.embed_font_css:void 0,fontCssUrl:xe.fontCssUrl??xe.font_css_url},ve=await v2(se,Me);if(ve===GA){console.warn("[crossnote] TikZ server-side rendering unavailable, falling back to client-side tikzjax"),te=`<div ${an(_h(h.attributes,h.language))}><script type="text/tikz">${se}</script></div>`;break}be=ve,_[le]=be}te=`<div ${an(h.attributes)}>${be}</div>`;break}}}catch(be){te=w(`<pre class="language-text"><code>${k0(String(be))}</code></pre>`)}te!==null&&(h.attributes.output_first===!0?p.before(te):p.after(te)),h.attributes.hide!==!1&&h.attributes.code_block!==!0&&p.data("hiddenByEnhancer",!0)}var sG=(p,h,w)=>`<p ${an(_h(h,w))}><span style="display: none">${p}</span></p>`;import{escape as lG}from"html-escaper";var cG=["math"];async function qA(p,h,w,_){p('[data-role="codeBlock"]').each((T,M)=>{let D=p(M);if(D.data("executor"))return;let L=D.data("normalizedInfo");if(L.attributes.literate===!1||L.attributes.cmd===!1||cG.indexOf(L.language)===-1||(D.data("executor","math"),L.attributes.literate===!1))return;let U=D.text(),q=uG(U,L,h,w,_);L.attributes.output_first===!0?D.before(q):D.after(q),L.attributes.hide!==!1&&D.data("hiddenByEnhancer",!0)})}var uG=(p,h,w,_,T)=>{let M;try{let D=Kc({content:p,displayMode:!0,openTag:_.length?_[0][0]:"",closeTag:_.length?_[0][1]:"",renderingOption:w,katexConfig:T});M=`<p ${an(h.attributes)}>${D}</p>`}catch(D){M=`<pre class="language-text"><code>${lG(String(D))}</code></pre>`}return M};async function WA(p,h,w){p("img, a").each((_,T)=>{let M="src";T.name==="a"&&(M="href");let D=p(T),L=D.attr(M);L&&D.attr(M,w(L,h.useRelativeFilePath,h.fileDirectoryPath))})}var dG=/^\s*(javascript|vbscript)\s*:|^\s*data\s*:\s*text\/html/i,fG=["object","embed","applet"],pG=new Set(["wavedrom","text/tikz"]),hG=["href","src","action","formaction","xlink:href"];function x2(p){p(fG.join(", ")).remove(),p("script").each((h,w)=>{let _=(w.attribs?.type||"").toLowerCase().trim();pG.has(_)||p(w).remove()}),p("*").each((h,w)=>{if(!("attribs"in w))return;let _=w.attribs;if(_)for(let T of Object.keys(_)){if(/^on/i.test(T)){delete _[T];continue}hG.includes(T.toLowerCase())&&dG.test(_[T])&&delete _[T]}}),p("iframe").each((h,w)=>{let _=w.attribs;_&&(_.sandbox="",delete _.srcdoc)})}function gG(p){p('pre:not([data-role="codeBlock"])').each((h,w)=>{let _=p(w),T=_.children("code").first();if(!T.length)return;let M=(T.attr("class")??"").split(/\s+/),D="";for(let J of M){let K=J.match(/^(?:language|lang)-(.+)$/);if(K){D=K[1];break}}let L=T.text(),U=Fs(D),q=b0(U);_.attr("data-role","codeBlock").attr("data-info",D).attr("data-parsed-info",JSON.stringify(U)).attr("data-normalized-info",JSON.stringify(q)).html($s(L))})}function bG(p){p("h1, h2, h3, h4, h5, h6").each((h,w)=>{let _=p(w),M=(_.html()??"").match(/^([\s\S]*?)\s*(\{[^{}]+\})\s*$/);if(M)try{let D=Da(M[2]);_.html(M[1]),D.id&&_.attr("id",String(D.id)),D.class&&_.addClass(String(D.class));for(let[L,U]of Object.entries(D))L!=="id"&&L!=="class"&&L!=="ignore"&&_.attr(L,String(U))}catch{}})}var T2=[{key:"vega",version:"5.25.0"},{key:"vega-lite",version:"5.16.1"},{key:"vega-embed",version:"6.23.0"}],dk=class p{constructor({filePath:h,notebook:w}){this.graphsCache={};this.codeChunksData={};this.filesCache={};this.isPreviewInPresentationMode=!1;this.filePath=h,this.notebook=w,this.fileDirectoryPath=He.dirname(this.filePath),this.projectDirectoryPath=this.notebook.notebookPath||this.fileDirectoryPath,this.fs=this.notebook.fs,this.headings=[],this.tocHTML=""}get protocolsWhiteListRegExp(){let h=(this.notebook.config.protocolsWhiteList??yh().protocolsWhiteList??"").split(",").map(w=>w.trim());return new RegExp("^("+h.join("|")+")")}cacheCodeChunkResult(h,w){let _=this.codeChunksData[h];_&&(_.result=A2.AES.decrypt(w,"crossnote").toString(A2.enc.Utf8))}generateScriptsForPreview(h=!1,w={},_=null){let T="";if(T+="<script>var exports = undefined</script>",T+=`<script type="text/javascript" src="${cn(He.resolve(kt(),"./dependencies/mermaid/mermaid.min.js"),_)}" charset="UTF-8"></script>`,T+=`<script type="module">
|
|
350
350
|
import zenuml from 'https://cdn.jsdelivr.net/npm/@mermaid-js/mermaid-zenuml@0.1.0/dist/mermaid-zenuml.esm.min.mjs';
|
|
351
351
|
await mermaid.registerExternalDiagrams([zenuml]);
|
|
352
352
|
</script>`,T+=`<script type="text/javascript" src="${cn(He.resolve(kt(),"./dependencies/wavedrom/skins/default.js"),_)}" charset="UTF-8"></script>`,T+=`<script type="text/javascript" src="${cn(He.resolve(kt(),"./dependencies/wavedrom/skins/narrow.js"),_)}" charset="UTF-8"></script>`,T+=`<script type="text/javascript" src="${cn(He.resolve(kt(),"./dependencies/wavedrom/wavedrom.min.js"),_)}" charset="UTF-8"></script>`,Ww()&&(T+='<link rel="stylesheet" type="text/css" href="https://tikzjax.com/v1/fonts.css">',T+='<script src="https://tikzjax.com/v1/tikzjax.js"></script>',T+="<script>window.tikzjaxRender = function() { return typeof window.onload === 'function' ? window.onload.call(window) : Promise.resolve(); };</script>"),this.notebook.config.mathRenderingOption==="MathJax"||this.notebook.config.markdownParser==="pandoc"){let D=S2({...this.notebook.config.mathjaxConfig}),L=D.tex||{};D.tex=L,L.inlineMath=this.notebook.config.mathInlineDelimiters,L.displayMath=this.notebook.config.mathBlockDelimiters;let U=D.startup||{};D.startup=U,h||(U.typeset=!1,U.elements=[".hidden-preview"]),T+=`<script type="text/javascript"> window.MathJax = (${JSON.stringify(D)}); </script>`,T+=`<script type="text/javascript" defer src="${this.notebook.config.mathjaxScriptSrc}" charset="UTF-8"></script>`}let M="";if(h){T+=`<script src='${cn(He.resolve(kt(),"./dependencies/reveal/js/reveal.js"),_)}'></script>`;let D={},L=w.presentation;typeof L=="object"&&L!==null&&!Array.isArray(L)&&(D=L),typeof D!="object"&&(D={});let U=D.dependencies||[];U instanceof Array||(U=[]),D.dependencies=U,M+=`
|
|
@@ -620,8 +620,8 @@ sidebarTOCBtn.addEventListener('click', function(event) {
|
|
|
620
620
|
`}else K[1].length===U?T+=`${K[1]}\`\`\`
|
|
621
621
|
`:(L=!L,T+=J+`
|
|
622
622
|
`);D+=1;continue}T+=J+`
|
|
623
|
-
`,D+=1}let q=this.notebook.config.pandocPath;return await new Promise((J,K)=>{try{
|
|
624
|
-
Check "http://pandoc.org/installing.html" website.`),K(oe)}})}async parseMD(h,w){h||(h=await this.fs.readFile(this.filePath)),this.vscodePreviewPanel=w.vscodePreviewPanel,this.notebook.config.parserConfig.onWillParseMarkdown&&(h=await this.notebook.config.parserConfig.onWillParseMarkdown(h));let{outputString:_,slideConfigs:T,tocBracketEnabled:M,JSAndCssFiles:D,headings:L,frontMatterString:U}=await Dd(h,{fileDirectoryPath:w.fileDirectoryPath||this.fileDirectoryPath,projectDirectoryPath:this.projectDirectoryPath.fsPath,forPreview:w.isForPreview,markdownParser:this.notebook.config.markdownParser,protocolsWhiteListRegExp:this.protocolsWhiteListRegExp,useRelativeFilePath:w.useRelativeFilePath,filesCache:this.filesCache,notebook:this.notebook}),q=this.processFrontMatter(U,w.hideFrontMatter),J=q.table,K=q.data||{};typeof K!="object"&&(K={}),_=q.content+_;let V;if(this.notebook.config.markdownParser==="pandoc")try{let be=K.pandoc_args||[];be instanceof Array||(be=[]),be.find(Le=>Le.includes("pandoc-citeproc")||Le.includes("--defaults"))===void 0&&(K.bibliography||K.references)&&be.push("--citeproc"),be=this.notebook.config.pandocArguments.concat(be),V=await this.pandocRender(_,be)}catch(be){V=`<pre class="language-text"><code>${$s(String(be))}</code></pre>`}else this.notebook.currentRenderFilePath=He.relative(this.notebook.notebookPath.fsPath,this.filePath),this.notebook.config.wikiLinkResolution==="shortest"&&await this.notebook.refreshNotesIfNotLoaded({dir:".",includeSubdirectories:!0}),V=this.notebook.renderMarkdown(_,{isForPreview:w.isForPreview});let oe=K.toc||{},Y=oe.depth_from||1,te=oe.depth_to||6,se=!!oe.ordered,le=this.notebook.initMarkdownIt({...this.notebook.md.options,sourceMap:!1});this.tocHTML=QD(L,le,{ordered:se,depthFrom:Y,depthTo:te,tab:" "}),this.headings=L,M&&(V=V.replace(/^\s*(?:<p[^>]*>)?<span>\[CROSSNOTETOC\]<\/span>(?:<\/p>)?\s*/gm,be=>{let xe=be.match(/data-source-line="(\d+)"/),Le=xe?xe[1]:"";return Le?`<div data-source-line="${Le}">${this.tocHTML}</div>`:this.tocHTML}));let ue=Fl.load(V);return this.notebook.config.markdownParser==="markdown_yo"&&(
|
|
623
|
+
`,D+=1}let q=this.notebook.config.pandocPath;return await new Promise((J,K)=>{try{mG(q,w,{cwd:this.fileDirectoryPath,maxBuffer:1/0},(oe,Y,te)=>oe?K(oe):J(te?'<pre class="language-text"><code>'+$s(te)+"</code></pre>"+Y:Y)).stdin?.end(T,"utf-8")}catch(V){let oe=String(V);return oe.indexOf("Error: write EPIPE")>=0&&(oe=`"pandoc" is required to be installed.
|
|
624
|
+
Check "http://pandoc.org/installing.html" website.`),K(oe)}})}async parseMD(h,w){h||(h=await this.fs.readFile(this.filePath)),this.vscodePreviewPanel=w.vscodePreviewPanel,this.notebook.config.parserConfig.onWillParseMarkdown&&(h=await this.notebook.config.parserConfig.onWillParseMarkdown(h));let{outputString:_,slideConfigs:T,tocBracketEnabled:M,JSAndCssFiles:D,headings:L,frontMatterString:U}=await Dd(h,{fileDirectoryPath:w.fileDirectoryPath||this.fileDirectoryPath,projectDirectoryPath:this.projectDirectoryPath.fsPath,forPreview:w.isForPreview,markdownParser:this.notebook.config.markdownParser,protocolsWhiteListRegExp:this.protocolsWhiteListRegExp,useRelativeFilePath:w.useRelativeFilePath,filesCache:this.filesCache,notebook:this.notebook}),q=this.processFrontMatter(U,w.hideFrontMatter),J=q.table,K=q.data||{};typeof K!="object"&&(K={}),_=q.content+_;let V;if(this.notebook.config.markdownParser==="pandoc")try{let be=K.pandoc_args||[];be instanceof Array||(be=[]),be.find(Le=>Le.includes("pandoc-citeproc")||Le.includes("--defaults"))===void 0&&(K.bibliography||K.references)&&be.push("--citeproc"),be=this.notebook.config.pandocArguments.concat(be),V=await this.pandocRender(_,be)}catch(be){V=`<pre class="language-text"><code>${$s(String(be))}</code></pre>`}else this.notebook.currentRenderFilePath=He.relative(this.notebook.notebookPath.fsPath,this.filePath),this.notebook.config.wikiLinkResolution==="shortest"&&await this.notebook.refreshNotesIfNotLoaded({dir:".",includeSubdirectories:!0}),V=this.notebook.renderMarkdown(_,{isForPreview:w.isForPreview});let oe=K.toc||{},Y=oe.depth_from||1,te=oe.depth_to||6,se=!!oe.ordered,le=this.notebook.initMarkdownIt({...this.notebook.md.options,sourceMap:!1});this.tocHTML=QD(L,le,{ordered:se,depthFrom:Y,depthTo:te,tab:" "}),this.headings=L,M&&(V=V.replace(/^\s*(?:<p[^>]*>)?<span>\[CROSSNOTETOC\]<\/span>(?:<\/p>)?\s*/gm,be=>{let xe=be.match(/data-source-line="(\d+)"/),Le=xe?xe[1]:"";return Le?`<div data-source-line="${Le}">${this.tocHTML}</div>`:this.tocHTML}));let ue=Fl.load(V);return this.notebook.config.markdownParser==="markdown_yo"&&(gG(ue),bG(ue)),await qA(ue,this.notebook.config.mathRenderingOption,this.notebook.config.mathBlockDelimiters,this.notebook.config.katexConfig),await HA({$:ue,graphsCache:this.graphsCache,fileDirectoryPath:w.fileDirectoryPath||this.fileDirectoryPath,imageDirectoryPath:Ls(this.resolveFilePath(this.notebook.config.imageFolderPath,!1)),plantumlServer:this.notebook.config.plantumlServer,plantumlJarPath:this.notebook.config.plantumlJarPath,kirokiServer:this.notebook.config.krokiServer,webSequenceDiagramsServer:this.notebook.config.webSequenceDiagramsServer,webSequenceDiagramsApiKey:this.notebook.config.webSequenceDiagramsApiKey,d2Path:this.notebook.config.d2Path,d2Layout:this.notebook.config.d2Layout,d2Theme:this.notebook.config.d2Theme,d2Sketch:this.notebook.config.d2Sketch}),await PA(ue,this.codeChunksData,w,this.generateRunOptions()),await MA(ue),await WA(ue,w,this.resolveFilePath.bind(this)),this.notebook.config.enableExtendedTableSyntax&&await FA(ue),await hk(ue,this.notebook,w.fileDirectoryPath||this.fileDirectoryPath),x2(ue),V=J+`
|
|
625
625
|
`+ue("head").html()+ue("body").html(),T.length&&(V=this.parseSlides(V,T,w.useRelativeFilePath),K&&(K.isPresentationMode=!0)),this.notebook.config.parserConfig.onDidParseMarkdown&&(V=await this.notebook.config.parserConfig.onDidParseMarkdown(V)),w.runAllCodeChunks?(await $A(this.codeChunksData,this.generateRunOptions()),w.runAllCodeChunks=!1,this.parseMD(h,w)):(w.isForPreview&&(this.isPreviewInPresentationMode=!!T.length),w.triggeredBySave&&K.export_on_save&&this.exportOnSave(K.export_on_save),this.notebook.config.enableScriptExecution||(D=[]),{html:V,markdown:h,tocHTML:this.tocHTML,yamlConfig:K,JSAndCssFiles:D})}runCodeChunks(){return $A(this.codeChunksData,this.generateRunOptions())}runCodeChunk(h){return mk(h,this.codeChunksData,this.generateRunOptions())}async modifySource(h,w,_){let T=()=>(h.running=!1,w),M=await this.notebook.fs.readFile(_);if(!M)return T();let D=async(K,V)=>{let oe=V.length,Y=0;for(let te=K+1;te<K+6&&te<oe;te++)if(V[te].startsWith("<!-- code_chunk_output -->")){Y=te;break}if(Y){let te=Y+1;for(;te<oe&&!V[te].startsWith("<!-- /code_chunk_output -->");)te+=1;let se="";for(let ue=Y+2;ue<te-1;ue++)se+=V[ue]+`
|
|
626
626
|
`;if(se===w+`
|
|
627
627
|
`)return"";let le=[...V.slice(0,Y+2),w,...V.slice(te-1)];return await this.notebook.fs.writeFile(_,le.join(`
|
|
@@ -633,4 +633,4 @@ ${w}
|
|
|
633
633
|
<!-- /code_chunk_output -->
|
|
634
634
|
`,...V.slice(K+1)];return await this.notebook.fs.writeFile(_,te.join(`
|
|
635
635
|
`)),""}},L=M.split(`
|
|
636
|
-
`)||[],U=L.length,q=0,J=h.normalizedInfo.attributes.code_chunk_offset;for(let K=0;K<U;K++){let V=L[K];if(V.match(/^```(.+)"?cmd"?\s*[=\s}]/))if(q===J){for(K=K+1;K<U&&!L[K].match(/^```\s*/);)K+=1;await D(K,L);break}else q++;else if(V.match(/@import\s+(.+)"?cmd"?\s*[=\s}]/))if(q===J){await D(K,L);break}else q++}return T()}generateRunOptions(){return{enableScriptExecution:this.notebook.config.enableScriptExecution,fileDirectoryPath:this.fileDirectoryPath,filePath:this.filePath,imageFolderPath:this.notebook.config.imageFolderPath,latexEngine:this.notebook.config.latexEngine,modifySource:this.modifySource.bind(this),parseMD:this.parseMD.bind(this),headings:this.headings}}};var
|
|
636
|
+
`)||[],U=L.length,q=0,J=h.normalizedInfo.attributes.code_chunk_offset;for(let K=0;K<U;K++){let V=L[K];if(V.match(/^```(.+)"?cmd"?\s*[=\s}]/))if(q===J){for(K=K+1;K<U&&!L[K].match(/^```\s*/);)K+=1;await D(K,L);break}else q++;else if(V.match(/@import\s+(.+)"?cmd"?\s*[=\s}]/))if(q===J){await D(K,L);break}else q++}return T()}generateRunOptions(){return{enableScriptExecution:this.notebook.config.enableScriptExecution,fileDirectoryPath:this.fileDirectoryPath,filePath:this.filePath,imageFolderPath:this.notebook.config.imageFolderPath,latexEngine:this.notebook.config.latexEngine,modifySource:this.modifySource.bind(this),parseMD:this.parseMD.bind(this),headings:this.headings}}};var RH={addFileProtocol:cn,getCrossnoteBuildDirectory:kt,openFile:Nd,setCrossnoteBuildDirectory:WD,useExternalAddFileProtocolFunction:VD,uploadImage:cA};export{kr as HeadingIdGenerator,i2 as IS_NODE,dk as MarkdownEngine,c2 as Notebook,s4 as PreviewMode,vh as ReferenceMap,Eh as TagReferenceMap,b4 as constructGraphView,u3 as extractBlockIds,d3 as extractHeadings,mh as findFragmentTargetLine,RA as getDefaultKatexConfig,TA as getDefaultMathjaxConfig,AA as getDefaultMermaidConfig,yh as getDefaultNotebookConfig,CA as getDefaultParserConfig,NA as loadConfigsInDirectory,OA as matter,DA as matterStringify,Dd as transformMarkdown,RH as utility,IA as wrapNodeFSAsApi};
|