@malloydata/render 0.0.144-dev240503150037 → 0.0.144-dev240503230218
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module/index.mjs +12469 -12230
- package/dist/module/index.umd.js +245 -245
- package/dist/webcomponent/malloy-render.mjs +127 -130
- package/dist/webcomponent/malloy-render.umd.js +11 -11
- package/package.json +2 -2
|
@@ -114,13 +114,13 @@ AS (
|
|
|
114
114
|
${(0,nM.indent)(n)}
|
|
115
115
|
);
|
|
116
116
|
`}sqlCreateFunctionCombineLastStage(e){return`SELECT ARRAY((SELECT AS STRUCT * FROM ${e}))
|
|
117
|
-
`}sqlSelectAliasAsStruct(e){return`(SELECT AS STRUCT ${e}.*)`}sqlMaybeQuoteIdentifier(e){return"`"+e+"`"}sqlNow(){return(0,Mn.mkExpr)`CURRENT_TIMESTAMP()`}sqlTrunc(e,n,r){const i=bA(e),s=i?`, "${i}"`:"";return n.valueType==="date"?Nxe(r)?(0,Mn.mkExpr)`DATE_TRUNC(${n.value},${r})`:(0,Mn.mkExpr)`TIMESTAMP(${n.value}${s})`:(0,Mn.mkExpr)`TIMESTAMP_TRUNC(${n.value},${r}${s})`}sqlExtract(e,n,r){const i=Dxe[r]||r,s=n.valueType==="timestamp"&&bA(e),o=s?` AT TIME ZONE '${s}'`:"";return(0,Mn.mkExpr)`EXTRACT(${i} FROM ${n.value}${o})`}sqlAlterTime(e,n,r,i){let s=n.value,o=n.valueType;i!=="day"&&rM(i)?(o="timestamp",n.valueType!=="timestamp"&&(s=(0,Mn.mkExpr)`TIMESTAMP(${s})`)):n.valueType==="timestamp"&&(s=(0,Mn.mkExpr)`DATETIME(${s})`,o="datetime");const u=o.toUpperCase()+(e==="+"?"_ADD":"_SUB"),a=(0,Mn.mkExpr)`${u}(${s}, INTERVAL ${r} ${i})`;return o===n.valueType?a:(0,Mn.mkExpr)`${n.valueType.toUpperCase()}(${a})`}ignoreInProject(e){return e==="_PARTITIONTIME"}sqlCast(e,n){const r=`${n.srcType}::${n.dstType}`,i=bA(e);if(r==="timestamp::date"&&i)return(0,Mn.mkExpr)`DATE(${n.expr},'${i}')`;if(r==="date::timestamp"&&i)return(0,Mn.mkExpr)`TIMESTAMP(${n.expr}, '${i}')`;if(n.srcType!==n.dstType){const s=typeof n.dstType=="string"?this.malloyTypeToSQLType({type:n.dstType}):n.dstType.raw,o=n.safe?"SAFE_CAST":"CAST";return(0,Mn.mkExpr)`${o}(${n.expr} AS ${s})`}return n.expr}sqlRegexpMatch(e,n){return(0,Mn.mkExpr)`REGEXP_CONTAINS(${e}, ${n})`}sqlLiteralTime(e,n,r,i){if(r==="date")return`DATE('${n}')`;if(r==="timestamp"){let s=`'${n}'`;const o=i||bA(e);return o&&o!=="UTC"&&(s+=`,'${o}'`),`TIMESTAMP(${s})`}else throw new Error(`Unsupported Literal time format ${r}`)}sqlMeasureTime(e,n,r){const i={microsecond:{use:"microsecond",ratio:1},millisecond:{use:"microsecond",ratio:1e3},second:{use:"millisecond",ratio:1e3},minute:{use:"second",ratio:60},hour:{use:"minute",ratio:60},day:{use:"hour",ratio:24},week:{use:"day",ratio:7}};let s=e.value,o=n.value;if(i[r]){const{use:u,ratio:a}=i[r];if(!rM(u))throw new Error(`Measure in '${u} not implemented`);if(e.valueType!==n.valueType)throw new Error("Can't measure difference between different types");e.valueType==="date"&&(s=(0,Mn.mkExpr)`TIMESTAMP(${s})`,o=(0,Mn.mkExpr)`TIMESTAMP(${o})`);let l=(0,Mn.mkExpr)`TIMESTAMP_DIFF(${o},${s},${u})`;return a!==1&&(l=(0,Mn.mkExpr)`FLOOR(${l}/${a.toString()}.0)`),l}throw new Error(`Measure '${r} not implemented`)}sqlSampleTable(e,n){if(n!==void 0){if((0,Mn.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,Mn.isSamplingRows)(n))throw new Error("StandardSQL doesn't support sampling by rows only percent");if((0,Mn.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${n.percent} PERCENT))`}return e}sqlLiteralString(e){return"'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"}getGlobalFunctionDef(e){return Rxe.STANDARDSQL_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"INT64":"FLOAT64":e.type}sqlTypeToMalloyType(e){var n,r;const i=(r=(n=e.match(/^(\w+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return Fxe[i.toUpperCase()]}castToString(e){return`CAST(${e} as STRING)`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),<>0-9]*$/)!==null}}z2.StandardSQLDialect=wxe,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(z2,t)}(fD);var bD={},TA={},iM={},sM={},Hd={};Object.defineProperty(Hd,"__esModule",{value:!0}),Hd.fnStringAggDistinct=Hd.fnStringAgg=void 0;const An=ge;function Lxe(){const t=(0,An.makeParam)("value",(0,An.maxScalar)("string")),e=(0,An.makeParam)("separator",(0,An.literal)((0,An.maxScalar)("string"))),n={type:"aggregate_order_by"};return[(0,An.overload)((0,An.minAggregate)("string"),[t.param],(0,An.sql)`STRING_AGG(${t.arg}, ','${n})`,{supportsOrderBy:!0}),(0,An.overload)((0,An.minAggregate)("string"),[t.param,e.param],(0,An.sql)`STRING_AGG(${t.arg}, ${e.arg}${n})`,{supportsOrderBy:!0})]}Hd.fnStringAgg=Lxe;function Ixe(){const t=(0,An.makeParam)("value",(0,An.maxScalar)("string")),e=(0,An.makeParam)("separator",(0,An.literal)((0,An.maxScalar)("string"))),n={type:"aggregate_order_by"};return[(0,An.overload)((0,An.minAggregate)("string"),[t.param],(0,An.sql)`STRING_AGG(DISTINCT ${t.arg}, ','${n})`,{isSymmetric:!0,supportsOrderBy:"only_default",defaultOrderByArgIndex:0}),(0,An.overload)((0,An.minAggregate)("string"),[t.param,e.param],(0,An.sql)`STRING_AGG(DISTINCT ${t.arg}, ${e.arg}${n})`,{isSymmetric:!0,supportsOrderBy:"only_default",defaultOrderByArgIndex:0})]}Hd.fnStringAggDistinct=Ixe;var RA={};Object.defineProperty(RA,"__esModule",{value:!0}),RA.fnByteLength=void 0;const zd=ge;function $xe(){return[(0,zd.overload)((0,zd.minScalar)("number"),[(0,zd.param)("value",(0,zd.anyExprType)("string"))],(0,zd.sql)`OCTET_LENGTH(${(0,zd.arg)("value")})`)]}RA.fnByteLength=$xe;var OA={};Object.defineProperty(OA,"__esModule",{value:!0}),OA.fnEndsWith=void 0;const af=ge;function Bxe(){const t=(0,af.makeParam)("value",(0,af.anyExprType)("string")),e=(0,af.makeParam)("suffix",(0,af.anyExprType)("string"));return[(0,af.overload)((0,af.minScalar)("boolean"),[t.param,e.param],(0,af.sql)`COALESCE(RIGHT(${t.arg}, LENGTH(${e.arg})) = ${e.arg}, false)`)]}OA.fnEndsWith=Bxe;var Qd={};Object.defineProperty(Qd,"__esModule",{value:!0}),Qd.fnLeast=Qd.fnGreatest=void 0;const ja=ge,kxe=["string","number","timestamp","date","json"];function oM(t){return kxe.map(e=>(0,ja.overload)((0,ja.minScalar)(e),[(0,ja.params)("values",(0,ja.anyExprType)(e))],[(0,ja.sqlFragment)("CASE WHEN NUM_NULLS(",(0,ja.spread)((0,ja.arg)("values")),`) > 0 THEN NULL ELSE ${t}(`,(0,ja.spread)((0,ja.arg)("values")),") END")]))}const Pxe=()=>oM("GREATEST");Qd.fnGreatest=Pxe;const Mxe=()=>oM("LEAST");Qd.fnLeast=Mxe;var NA={};Object.defineProperty(NA,"__esModule",{value:!0}),NA.fnIfnull=void 0;const Ua=ge,jxe=["string","number","timestamp","date","json"];function Uxe(){return jxe.map(t=>(0,Ua.overload)((0,Ua.minScalar)(t),[(0,Ua.param)("value",(0,Ua.anyExprType)(t)),(0,Ua.param)("default",(0,Ua.anyExprType)(t))],(0,Ua.sql)`COALESCE(${(0,Ua.arg)("value")}, ${(0,Ua.arg)("default")})`))}NA.fnIfnull=Uxe;var DA={};Object.defineProperty(DA,"__esModule",{value:!0}),DA.fnIsInf=void 0;const X2=ge;function qxe(){const t=(0,X2.makeParam)("value",(0,X2.anyExprType)("number"));return[(0,X2.overload)((0,X2.minScalar)("boolean"),[t.param],(0,X2.sql)`COALESCE(${t.arg} = DOUBLE PRECISION 'Infinity' OR ${t.arg} = DOUBLE PRECISION '-Infinity', false)`)]}DA.fnIsInf=qxe;var FA={};Object.defineProperty(FA,"__esModule",{value:!0}),FA.fnIsNan=void 0;const Gd=ge;function Hxe(){return[(0,Gd.overload)((0,Gd.minScalar)("boolean"),[(0,Gd.param)("value",(0,Gd.anyExprType)("number"))],(0,Gd.sql)`COALESCE(${(0,Gd.arg)("value")} = NUMERIC 'NaN', false)`)]}FA.fnIsNan=Hxe;var wA={};Object.defineProperty(wA,"__esModule",{value:!0}),wA.fnLog=void 0;const lf=ge;function zxe(){const t=(0,lf.makeParam)("value",(0,lf.anyExprType)("number")),e=(0,lf.makeParam)("base",(0,lf.anyExprType)("number"));return[(0,lf.overload)((0,lf.minScalar)("number"),[t.param,e.param],(0,lf.sql)`LOG(${e.arg}, ${t.arg})`)]}wA.fnLog=zxe;var LA={};Object.defineProperty(LA,"__esModule",{value:!0}),LA.fnRand=void 0;const TD=ge;function Qxe(){return[(0,TD.overload)((0,TD.minScalar)("number"),[],(0,TD.sql)`RANDOM()`)]}LA.fnRand=Qxe;var IA={};Object.defineProperty(IA,"__esModule",{value:!0}),IA.fnRegexpExtract=void 0;const cf=ge;function Gxe(){const t=(0,cf.makeParam)("value",(0,cf.anyExprType)("string")),e=(0,cf.makeParam)("pattern",(0,cf.anyExprType)("regular expression"));return[(0,cf.overload)((0,cf.minScalar)("string"),[t.param,e.param],(0,cf.sql)`SUBSTRING(${t.arg}, ${e.arg})`)]}IA.fnRegexpExtract=Gxe;var $A={};Object.defineProperty($A,"__esModule",{value:!0}),$A.fnReplace=void 0;const Qi=ge;function Wxe(){const t=(0,Qi.makeParam)("value",(0,Qi.anyExprType)("string")),e=(0,Qi.makeParam)("pattern",(0,Qi.anyExprType)("string")),n=(0,Qi.makeParam)("pattern",(0,Qi.anyExprType)("regular expression")),r=(0,Qi.makeParam)("replacement",(0,Qi.anyExprType)("string"));return[(0,Qi.overload)((0,Qi.minScalar)("string"),[t.param,e.param,r.param],(0,Qi.sql)`REPLACE(${t.arg}, ${e.arg}, ${r.arg})`),(0,Qi.overload)((0,Qi.minScalar)("string"),[t.param,n.param,r.param],(0,Qi.sql)`REGEXP_REPLACE(${t.arg}, ${n.arg}, ${r.arg}, 'g')`)]}$A.fnReplace=Wxe;var BA={};Object.defineProperty(BA,"__esModule",{value:!0}),BA.fnRound=void 0;const mu=ge;function Vxe(){const t=(0,mu.makeParam)("value",(0,mu.anyExprType)("number")),e=(0,mu.makeParam)("precision",(0,mu.anyExprType)("number"));return[(0,mu.overload)((0,mu.minScalar)("number"),[t.param],(0,mu.sql)`ROUND((${t.arg})::NUMERIC)`),(0,mu.overload)((0,mu.minScalar)("number"),[t.param,e.param],(0,mu.sql)`ROUND((${t.arg})::NUMERIC, ${e.arg})`)]}BA.fnRound=Vxe;var kA={};Object.defineProperty(kA,"__esModule",{value:!0}),kA.fnStddev=void 0;const K2=ge;function Yxe(){const t=(0,K2.makeParam)("value",(0,K2.maxScalar)("number"));return[(0,K2.overload)((0,K2.minAggregate)("number"),[t.param],(0,K2.sql)`STDDEV(${t.arg}::DOUBLE PRECISION)`)]}kA.fnStddev=Yxe;var PA={};Object.defineProperty(PA,"__esModule",{value:!0}),PA.fnSubstr=void 0;const Ys=ge;function Xxe(){const t=(0,Ys.makeParam)("value",(0,Ys.anyExprType)("string")),e=(0,Ys.makeParam)("position",(0,Ys.anyExprType)("number")),n=(0,Ys.makeParam)("length",(0,Ys.anyExprType)("number"));return[(0,Ys.overload)((0,Ys.minScalar)("string"),[t.param,e.param],(0,Ys.sql)`SUBSTR(${t.arg}, CASE WHEN ${e.arg} < 0 THEN LENGTH(${t.arg}) + ${e.arg} + 1 ELSE ${e.arg} END)`),(0,Ys.overload)((0,Ys.minScalar)("string"),[t.param,e.param,n.param],(0,Ys.sql)`SUBSTR(${t.arg}, CASE WHEN ${e.arg} < 0 THEN LENGTH(${t.arg}) + ${e.arg} + 1 ELSE ${e.arg} END, ${n.arg})`)]}PA.fnSubstr=Xxe;var MA={};Object.defineProperty(MA,"__esModule",{value:!0}),MA.fnTrunc=void 0;const yu=ge;function Kxe(){const t=(0,yu.makeParam)("value",(0,yu.anyExprType)("number")),e=(0,yu.makeParam)("precision",(0,yu.anyExprType)("number"));return[(0,yu.overload)((0,yu.minScalar)("number"),[t.param],(0,yu.sql)`TRUNC(${t.arg}::NUMERIC)`),(0,yu.overload)((0,yu.minScalar)("number"),[t.param,e.param],(0,yu.sql)`TRUNC((${t.arg}::NUMERIC), ${e.arg})`)]}MA.fnTrunc=Kxe;var jA={};Object.defineProperty(jA,"__esModule",{value:!0}),jA.fnUnicode=void 0;const Wd=ge;function Jxe(){return[(0,Wd.overload)((0,Wd.minScalar)("number"),[(0,Wd.param)("value",(0,Wd.anyExprType)("string"))],(0,Wd.sql)`ASCII(${(0,Wd.arg)("value")})`)]}jA.fnUnicode=Jxe,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.POSTGRES_FUNCTIONS=void 0;const e=Jc,n=Hd,r=RA,i=OA,s=Qd,o=NA,u=DA,a=FA,l=wA,c=LA,f=IA,x=$A,h=BA,p=kA,m=PA,g=MA,y=jA;t.POSTGRES_FUNCTIONS=e.FUNCTIONS.clone(),t.POSTGRES_FUNCTIONS.add("regexp_extract",f.fnRegexpExtract),t.POSTGRES_FUNCTIONS.add("stddev",p.fnStddev),t.POSTGRES_FUNCTIONS.add("rand",c.fnRand),t.POSTGRES_FUNCTIONS.add("greatest",s.fnGreatest),t.POSTGRES_FUNCTIONS.add("least",s.fnLeast),t.POSTGRES_FUNCTIONS.add("is_nan",a.fnIsNan),t.POSTGRES_FUNCTIONS.add("is_inf",u.fnIsInf),t.POSTGRES_FUNCTIONS.add("round",h.fnRound),t.POSTGRES_FUNCTIONS.add("byte_length",r.fnByteLength),t.POSTGRES_FUNCTIONS.add("unicode",y.fnUnicode),t.POSTGRES_FUNCTIONS.add("ifnull",o.fnIfnull),t.POSTGRES_FUNCTIONS.add("trunc",g.fnTrunc),t.POSTGRES_FUNCTIONS.add("substr",m.fnSubstr),t.POSTGRES_FUNCTIONS.add("replace",x.fnReplace),t.POSTGRES_FUNCTIONS.add("ends_with",i.fnEndsWith),t.POSTGRES_FUNCTIONS.add("string_agg",n.fnStringAgg),t.POSTGRES_FUNCTIONS.add("string_agg_distinct",n.fnStringAggDistinct),t.POSTGRES_FUNCTIONS.add("log",l.fnLog),t.POSTGRES_FUNCTIONS.seal()}(sM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.POSTGRES_FUNCTIONS=void 0;var e=sM;Object.defineProperty(t,"POSTGRES_FUNCTIONS",{enumerable:!0,get:function(){return e.POSTGRES_FUNCTIONS}})}(iM),Object.defineProperty(TA,"__esModule",{value:!0}),TA.PostgresDialect=void 0;const Zxe=Wt,Mt=ne,uM=iM,J2=Kc,ede={day_of_week:"dow",day_of_year:"doy"},tde={year:"years",month:"months",week:"weeks",day:"days",hour:"hours",minute:"mins",second:"secs"},aM={second:1,minute:60,hour:3600,day:24*3600,week:7*24*3600},nde={"character varying":{type:"string"},name:{type:"string"},text:{type:"string"},date:{type:"date"},integer:{type:"number",numberType:"integer"},bigint:{type:"number",numberType:"integer"},"double precision":{type:"number",numberType:"float"},"timestamp without time zone":{type:"timestamp"},oid:{type:"string"},boolean:{type:"boolean"},timestamp:{type:"timestamp"},'"char"':{type:"string"},character:{type:"string"},smallint:{type:"number",numberType:"integer"},xid:{type:"string"},real:{type:"number",numberType:"float"},interval:{type:"string"},inet:{type:"string"},regtype:{type:"string"},numeric:{type:"number",numberType:"float"},bytea:{type:"string"},pg_ndistinct:{type:"number",numberType:"integer"},varchar:{type:"string"}};class rde extends J2.Dialect{constructor(){super(...arguments),this.name="postgres",this.defaultNumberType="DOUBLE PRECISION",this.defaultDecimalType="NUMERIC",this.udfPrefix="pg_temp.__udf",this.hasFinalStage=!0,this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!1,this.unnestWithNumbers=!1,this.defaultSampling={rows:5e4},this.supportUnnestArrayAgg=!0,this.supportsAggDistinct=!0,this.supportsCTEinCoorelatedSubQueries=!0,this.supportsSafeCast=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.globalFunctions=uM.POSTGRES_FUNCTIONS,this.supportsNesting=!0,this.readsNestedData=!1}quoteTablePath(e){return e.split(".").map(n=>`"${n}"`).join(".")}sqlGroupSetTable(e){return`CROSS JOIN GENERATE_SERIES(0,${e},1) as group_set`}sqlAnyValue(e,n){return`MAX(${n})`}mapFields(e){return e.map(n=>`
|
|
117
|
+
`}sqlSelectAliasAsStruct(e){return`(SELECT AS STRUCT ${e}.*)`}sqlMaybeQuoteIdentifier(e){return"`"+e+"`"}sqlNow(){return(0,Mn.mkExpr)`CURRENT_TIMESTAMP()`}sqlTrunc(e,n,r){const i=bA(e),s=i?`, "${i}"`:"";return n.valueType==="date"?Nxe(r)?(0,Mn.mkExpr)`DATE_TRUNC(${n.value},${r})`:(0,Mn.mkExpr)`TIMESTAMP(${n.value}${s})`:(0,Mn.mkExpr)`TIMESTAMP_TRUNC(${n.value},${r}${s})`}sqlExtract(e,n,r){const i=Dxe[r]||r,s=n.valueType==="timestamp"&&bA(e),o=s?` AT TIME ZONE '${s}'`:"";return(0,Mn.mkExpr)`EXTRACT(${i} FROM ${n.value}${o})`}sqlAlterTime(e,n,r,i){let s=n.value,o=n.valueType;i!=="day"&&rM(i)?(o="timestamp",n.valueType!=="timestamp"&&(s=(0,Mn.mkExpr)`TIMESTAMP(${s})`)):n.valueType==="timestamp"&&(s=(0,Mn.mkExpr)`DATETIME(${s})`,o="datetime");const u=o.toUpperCase()+(e==="+"?"_ADD":"_SUB"),a=(0,Mn.mkExpr)`${u}(${s}, INTERVAL ${r} ${i})`;return o===n.valueType?a:(0,Mn.mkExpr)`${n.valueType.toUpperCase()}(${a})`}ignoreInProject(e){return e==="_PARTITIONTIME"}sqlCast(e,n){const r=`${n.srcType}::${n.dstType}`,i=bA(e);if(r==="timestamp::date"&&i)return(0,Mn.mkExpr)`DATE(${n.expr},'${i}')`;if(r==="date::timestamp"&&i)return(0,Mn.mkExpr)`TIMESTAMP(${n.expr}, '${i}')`;if(n.srcType!==n.dstType){const s=typeof n.dstType=="string"?this.malloyTypeToSQLType({type:n.dstType}):n.dstType.raw,o=n.safe?"SAFE_CAST":"CAST";return(0,Mn.mkExpr)`${o}(${n.expr} AS ${s})`}return n.expr}sqlRegexpMatch(e,n){return(0,Mn.mkExpr)`REGEXP_CONTAINS(${e}, ${n})`}sqlLiteralTime(e,n,r,i){if(r==="date")return`DATE('${n}')`;if(r==="timestamp"){let s=`'${n}'`;const o=i||bA(e);return o&&o!=="UTC"&&(s+=`,'${o}'`),`TIMESTAMP(${s})`}else throw new Error(`Unsupported Literal time format ${r}`)}sqlMeasureTime(e,n,r){const i={microsecond:{use:"microsecond",ratio:1},millisecond:{use:"microsecond",ratio:1e3},second:{use:"millisecond",ratio:1e3},minute:{use:"second",ratio:60},hour:{use:"minute",ratio:60},day:{use:"hour",ratio:24},week:{use:"day",ratio:7}};let s=e.value,o=n.value;if(i[r]){const{use:u,ratio:a}=i[r];if(!rM(u))throw new Error(`Measure in '${u} not implemented`);if(e.valueType!==n.valueType)throw new Error("Can't measure difference between different types");e.valueType==="date"&&(s=(0,Mn.mkExpr)`TIMESTAMP(${s})`,o=(0,Mn.mkExpr)`TIMESTAMP(${o})`);let l=(0,Mn.mkExpr)`TIMESTAMP_DIFF(${o},${s},${u})`;return a!==1&&(l=(0,Mn.mkExpr)`FLOOR(${l}/${a.toString()}.0)`),l}throw new Error(`Measure '${r} not implemented`)}sqlSampleTable(e,n){if(n!==void 0){if((0,Mn.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,Mn.isSamplingRows)(n))throw new Error("StandardSQL doesn't support sampling by rows only percent");if((0,Mn.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${n.percent} PERCENT))`}return e}sqlLiteralString(e){return"'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"}getGlobalFunctionDef(e){return Rxe.STANDARDSQL_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"INT64":"FLOAT64":e.type}sqlTypeToMalloyType(e){var n,r;const i=(r=(n=e.match(/^(\w+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return Fxe[i.toUpperCase()]}castToString(e){return`CAST(${e} as STRING)`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),<>0-9]*$/)!==null}}z2.StandardSQLDialect=wxe,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(z2,t)}(fD);var bD={},TA={},iM={},sM={},Hd={};Object.defineProperty(Hd,"__esModule",{value:!0}),Hd.fnStringAggDistinct=Hd.fnStringAgg=void 0;const An=ge;function Lxe(){const t=(0,An.makeParam)("value",(0,An.maxScalar)("string")),e=(0,An.makeParam)("separator",(0,An.literal)((0,An.maxScalar)("string"))),n={type:"aggregate_order_by"};return[(0,An.overload)((0,An.minAggregate)("string"),[t.param],(0,An.sql)`STRING_AGG(${t.arg}, ','${n})`,{supportsOrderBy:!0}),(0,An.overload)((0,An.minAggregate)("string"),[t.param,e.param],(0,An.sql)`STRING_AGG(${t.arg}, ${e.arg}${n})`,{supportsOrderBy:!0})]}Hd.fnStringAgg=Lxe;function Ixe(){const t=(0,An.makeParam)("value",(0,An.maxScalar)("string")),e=(0,An.makeParam)("separator",(0,An.literal)((0,An.maxScalar)("string"))),n={type:"aggregate_order_by"};return[(0,An.overload)((0,An.minAggregate)("string"),[t.param],(0,An.sql)`STRING_AGG(DISTINCT ${t.arg}, ','${n})`,{isSymmetric:!0,supportsOrderBy:"only_default",defaultOrderByArgIndex:0}),(0,An.overload)((0,An.minAggregate)("string"),[t.param,e.param],(0,An.sql)`STRING_AGG(DISTINCT ${t.arg}, ${e.arg}${n})`,{isSymmetric:!0,supportsOrderBy:"only_default",defaultOrderByArgIndex:0})]}Hd.fnStringAggDistinct=Ixe;var RA={};Object.defineProperty(RA,"__esModule",{value:!0}),RA.fnByteLength=void 0;const zd=ge;function $xe(){return[(0,zd.overload)((0,zd.minScalar)("number"),[(0,zd.param)("value",(0,zd.anyExprType)("string"))],(0,zd.sql)`OCTET_LENGTH(${(0,zd.arg)("value")})`)]}RA.fnByteLength=$xe;var OA={};Object.defineProperty(OA,"__esModule",{value:!0}),OA.fnEndsWith=void 0;const af=ge;function Bxe(){const t=(0,af.makeParam)("value",(0,af.anyExprType)("string")),e=(0,af.makeParam)("suffix",(0,af.anyExprType)("string"));return[(0,af.overload)((0,af.minScalar)("boolean"),[t.param,e.param],(0,af.sql)`COALESCE(RIGHT(${t.arg}, LENGTH(${e.arg})) = ${e.arg}, false)`)]}OA.fnEndsWith=Bxe;var Qd={};Object.defineProperty(Qd,"__esModule",{value:!0}),Qd.fnLeast=Qd.fnGreatest=void 0;const ja=ge,kxe=["string","number","timestamp","date","json"];function oM(t){return kxe.map(e=>(0,ja.overload)((0,ja.minScalar)(e),[(0,ja.params)("values",(0,ja.anyExprType)(e))],[(0,ja.sqlFragment)("CASE WHEN NUM_NULLS(",(0,ja.spread)((0,ja.arg)("values")),`) > 0 THEN NULL ELSE ${t}(`,(0,ja.spread)((0,ja.arg)("values")),") END")]))}const Pxe=()=>oM("GREATEST");Qd.fnGreatest=Pxe;const Mxe=()=>oM("LEAST");Qd.fnLeast=Mxe;var NA={};Object.defineProperty(NA,"__esModule",{value:!0}),NA.fnIfnull=void 0;const Ua=ge,jxe=["string","number","timestamp","date","json"];function Uxe(){return jxe.map(t=>(0,Ua.overload)((0,Ua.minScalar)(t),[(0,Ua.param)("value",(0,Ua.anyExprType)(t)),(0,Ua.param)("default",(0,Ua.anyExprType)(t))],(0,Ua.sql)`COALESCE(${(0,Ua.arg)("value")}, ${(0,Ua.arg)("default")})`))}NA.fnIfnull=Uxe;var DA={};Object.defineProperty(DA,"__esModule",{value:!0}),DA.fnIsInf=void 0;const X2=ge;function qxe(){const t=(0,X2.makeParam)("value",(0,X2.anyExprType)("number"));return[(0,X2.overload)((0,X2.minScalar)("boolean"),[t.param],(0,X2.sql)`COALESCE(${t.arg} = DOUBLE PRECISION 'Infinity' OR ${t.arg} = DOUBLE PRECISION '-Infinity', false)`)]}DA.fnIsInf=qxe;var FA={};Object.defineProperty(FA,"__esModule",{value:!0}),FA.fnIsNan=void 0;const Gd=ge;function Hxe(){return[(0,Gd.overload)((0,Gd.minScalar)("boolean"),[(0,Gd.param)("value",(0,Gd.anyExprType)("number"))],(0,Gd.sql)`COALESCE(${(0,Gd.arg)("value")} = NUMERIC 'NaN', false)`)]}FA.fnIsNan=Hxe;var wA={};Object.defineProperty(wA,"__esModule",{value:!0}),wA.fnLog=void 0;const lf=ge;function zxe(){const t=(0,lf.makeParam)("value",(0,lf.anyExprType)("number")),e=(0,lf.makeParam)("base",(0,lf.anyExprType)("number"));return[(0,lf.overload)((0,lf.minScalar)("number"),[t.param,e.param],(0,lf.sql)`LOG(${e.arg}, ${t.arg})`)]}wA.fnLog=zxe;var LA={};Object.defineProperty(LA,"__esModule",{value:!0}),LA.fnRand=void 0;const TD=ge;function Qxe(){return[(0,TD.overload)((0,TD.minScalar)("number"),[],(0,TD.sql)`RANDOM()`)]}LA.fnRand=Qxe;var IA={};Object.defineProperty(IA,"__esModule",{value:!0}),IA.fnRegexpExtract=void 0;const cf=ge;function Gxe(){const t=(0,cf.makeParam)("value",(0,cf.anyExprType)("string")),e=(0,cf.makeParam)("pattern",(0,cf.anyExprType)("regular expression"));return[(0,cf.overload)((0,cf.minScalar)("string"),[t.param,e.param],(0,cf.sql)`SUBSTRING(${t.arg}, ${e.arg})`)]}IA.fnRegexpExtract=Gxe;var $A={};Object.defineProperty($A,"__esModule",{value:!0}),$A.fnReplace=void 0;const Qi=ge;function Wxe(){const t=(0,Qi.makeParam)("value",(0,Qi.anyExprType)("string")),e=(0,Qi.makeParam)("pattern",(0,Qi.anyExprType)("string")),n=(0,Qi.makeParam)("pattern",(0,Qi.anyExprType)("regular expression")),r=(0,Qi.makeParam)("replacement",(0,Qi.anyExprType)("string"));return[(0,Qi.overload)((0,Qi.minScalar)("string"),[t.param,e.param,r.param],(0,Qi.sql)`REPLACE(${t.arg}, ${e.arg}, ${r.arg})`),(0,Qi.overload)((0,Qi.minScalar)("string"),[t.param,n.param,r.param],(0,Qi.sql)`REGEXP_REPLACE(${t.arg}, ${n.arg}, ${r.arg}, 'g')`)]}$A.fnReplace=Wxe;var BA={};Object.defineProperty(BA,"__esModule",{value:!0}),BA.fnRound=void 0;const mu=ge;function Vxe(){const t=(0,mu.makeParam)("value",(0,mu.anyExprType)("number")),e=(0,mu.makeParam)("precision",(0,mu.anyExprType)("number"));return[(0,mu.overload)((0,mu.minScalar)("number"),[t.param],(0,mu.sql)`ROUND((${t.arg})::NUMERIC)`),(0,mu.overload)((0,mu.minScalar)("number"),[t.param,e.param],(0,mu.sql)`ROUND((${t.arg})::NUMERIC, ${e.arg})`)]}BA.fnRound=Vxe;var kA={};Object.defineProperty(kA,"__esModule",{value:!0}),kA.fnStddev=void 0;const K2=ge;function Yxe(){const t=(0,K2.makeParam)("value",(0,K2.maxScalar)("number"));return[(0,K2.overload)((0,K2.minAggregate)("number"),[t.param],(0,K2.sql)`STDDEV(${t.arg}::DOUBLE PRECISION)`)]}kA.fnStddev=Yxe;var PA={};Object.defineProperty(PA,"__esModule",{value:!0}),PA.fnSubstr=void 0;const Ys=ge;function Xxe(){const t=(0,Ys.makeParam)("value",(0,Ys.anyExprType)("string")),e=(0,Ys.makeParam)("position",(0,Ys.anyExprType)("number")),n=(0,Ys.makeParam)("length",(0,Ys.anyExprType)("number"));return[(0,Ys.overload)((0,Ys.minScalar)("string"),[t.param,e.param],(0,Ys.sql)`SUBSTR(${t.arg}, CASE WHEN ${e.arg} < 0 THEN LENGTH(${t.arg}) + ${e.arg} + 1 ELSE ${e.arg} END)`),(0,Ys.overload)((0,Ys.minScalar)("string"),[t.param,e.param,n.param],(0,Ys.sql)`SUBSTR(${t.arg}, CASE WHEN ${e.arg} < 0 THEN LENGTH(${t.arg}) + ${e.arg} + 1 ELSE ${e.arg} END, ${n.arg})`)]}PA.fnSubstr=Xxe;var MA={};Object.defineProperty(MA,"__esModule",{value:!0}),MA.fnTrunc=void 0;const yu=ge;function Kxe(){const t=(0,yu.makeParam)("value",(0,yu.anyExprType)("number")),e=(0,yu.makeParam)("precision",(0,yu.anyExprType)("number"));return[(0,yu.overload)((0,yu.minScalar)("number"),[t.param],(0,yu.sql)`TRUNC(${t.arg}::NUMERIC)`),(0,yu.overload)((0,yu.minScalar)("number"),[t.param,e.param],(0,yu.sql)`TRUNC((${t.arg}::NUMERIC), ${e.arg})`)]}MA.fnTrunc=Kxe;var jA={};Object.defineProperty(jA,"__esModule",{value:!0}),jA.fnUnicode=void 0;const Wd=ge;function Jxe(){return[(0,Wd.overload)((0,Wd.minScalar)("number"),[(0,Wd.param)("value",(0,Wd.anyExprType)("string"))],(0,Wd.sql)`ASCII(${(0,Wd.arg)("value")})`)]}jA.fnUnicode=Jxe,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.POSTGRES_FUNCTIONS=void 0;const e=Jc,n=Hd,r=RA,i=OA,s=Qd,o=NA,u=DA,a=FA,l=wA,c=LA,f=IA,x=$A,h=BA,p=kA,m=PA,g=MA,y=jA;t.POSTGRES_FUNCTIONS=e.FUNCTIONS.clone(),t.POSTGRES_FUNCTIONS.add("regexp_extract",f.fnRegexpExtract),t.POSTGRES_FUNCTIONS.add("stddev",p.fnStddev),t.POSTGRES_FUNCTIONS.add("rand",c.fnRand),t.POSTGRES_FUNCTIONS.add("greatest",s.fnGreatest),t.POSTGRES_FUNCTIONS.add("least",s.fnLeast),t.POSTGRES_FUNCTIONS.add("is_nan",a.fnIsNan),t.POSTGRES_FUNCTIONS.add("is_inf",u.fnIsInf),t.POSTGRES_FUNCTIONS.add("round",h.fnRound),t.POSTGRES_FUNCTIONS.add("byte_length",r.fnByteLength),t.POSTGRES_FUNCTIONS.add("unicode",y.fnUnicode),t.POSTGRES_FUNCTIONS.add("ifnull",o.fnIfnull),t.POSTGRES_FUNCTIONS.add("trunc",g.fnTrunc),t.POSTGRES_FUNCTIONS.add("substr",m.fnSubstr),t.POSTGRES_FUNCTIONS.add("replace",x.fnReplace),t.POSTGRES_FUNCTIONS.add("ends_with",i.fnEndsWith),t.POSTGRES_FUNCTIONS.add("string_agg",n.fnStringAgg),t.POSTGRES_FUNCTIONS.add("string_agg_distinct",n.fnStringAggDistinct),t.POSTGRES_FUNCTIONS.add("log",l.fnLog),t.POSTGRES_FUNCTIONS.seal()}(sM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.POSTGRES_FUNCTIONS=void 0;var e=sM;Object.defineProperty(t,"POSTGRES_FUNCTIONS",{enumerable:!0,get:function(){return e.POSTGRES_FUNCTIONS}})}(iM),Object.defineProperty(TA,"__esModule",{value:!0}),TA.PostgresDialect=void 0;const Zxe=Wt,Pt=ne,uM=iM,J2=Kc,ede={day_of_week:"dow",day_of_year:"doy"},tde={year:"years",month:"months",week:"weeks",day:"days",hour:"hours",minute:"mins",second:"secs"},aM={second:1,minute:60,hour:3600,day:24*3600,week:7*24*3600},nde={"character varying":{type:"string"},name:{type:"string"},text:{type:"string"},date:{type:"date"},integer:{type:"number",numberType:"integer"},bigint:{type:"number",numberType:"integer"},"double precision":{type:"number",numberType:"float"},"timestamp without time zone":{type:"timestamp"},oid:{type:"string"},boolean:{type:"boolean"},timestamp:{type:"timestamp"},'"char"':{type:"string"},character:{type:"string"},smallint:{type:"number",numberType:"integer"},xid:{type:"string"},real:{type:"number",numberType:"float"},interval:{type:"string"},inet:{type:"string"},regtype:{type:"string"},numeric:{type:"number",numberType:"float"},bytea:{type:"string"},pg_ndistinct:{type:"number",numberType:"integer"},varchar:{type:"string"}};class rde extends J2.Dialect{constructor(){super(...arguments),this.name="postgres",this.defaultNumberType="DOUBLE PRECISION",this.defaultDecimalType="NUMERIC",this.udfPrefix="pg_temp.__udf",this.hasFinalStage=!0,this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!1,this.unnestWithNumbers=!1,this.defaultSampling={rows:5e4},this.supportUnnestArrayAgg=!0,this.supportsAggDistinct=!0,this.supportsCTEinCoorelatedSubQueries=!0,this.supportsSafeCast=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.globalFunctions=uM.POSTGRES_FUNCTIONS,this.supportsNesting=!0,this.readsNestedData=!1}quoteTablePath(e){return e.split(".").map(n=>`"${n}"`).join(".")}sqlGroupSetTable(e){return`CROSS JOIN GENERATE_SERIES(0,${e},1) as group_set`}sqlAnyValue(e,n){return`MAX(${n})`}mapFields(e){return e.map(n=>`
|
|
118
118
|
${n.sqlExpression}${n.type==="number"?`::${this.defaultNumberType}`:""} as ${n.sqlOutputName}`).join(", ")}sqlAggregateTurtle(e,n,r,i){let s="";return i!==void 0&&(s+=`[1:${i}]`),`COALESCE(TO_JSONB((ARRAY_AGG((SELECT TO_JSONB(__x) FROM (SELECT ${this.mapFields(n)}
|
|
119
119
|
) as __x) ${r} ) FILTER (WHERE group_set=${e}))${s}),'[]'::JSONB)`}sqlAnyValueTurtle(e,n){const r=n.map(i=>`${i.sqlExpression} as ${i.sqlOutputName}`).join(", ");return`ANY_VALUE(CASE WHEN group_set=${e} THEN STRUCT(${r}))`}sqlAnyValueLastTurtle(e,n,r){return`(ARRAY_AGG(${e}) FILTER (WHERE group_set=${n} AND ${e} IS NOT NULL))[1] as ${r}`}sqlCoaleseMeasuresInline(e,n){return`TO_JSONB((ARRAY_AGG((SELECT __x FROM (SELECT ${this.mapFields(n)}) as __x)) FILTER (WHERE group_set=${e}))[1])`}sqlUnnestAlias(e,n,r,i,s,o){return s?i?`LEFT JOIN UNNEST(ARRAY((SELECT jsonb_build_object('__row_id', row_number() over (), 'value', v) FROM UNNEST(${e}) as v))) as ${n} ON true`:`LEFT JOIN UNNEST(ARRAY((SELECT jsonb_build_object('value', v) FROM UNNEST(${e}) as v))) as ${n} ON true`:i?`LEFT JOIN UNNEST(ARRAY((SELECT jsonb_build_object('__row_number', row_number() over())|| __xx::jsonb as b FROM JSONB_ARRAY_ELEMENTS(${e}) __xx ))) as ${n} ON true`:`LEFT JOIN JSONB_ARRAY_ELEMENTS(${e}) as ${n} ON true`}sqlSumDistinctHashedKey(e){return`('x' || MD5(${e}::varchar))::bit(64)::bigint::DECIMAL(65,0) *18446744073709551616 + ('x' || SUBSTR(MD5(${e}::varchar),17))::bit(64)::bigint::DECIMAL(65,0)`}sqlGenerateUUID(){return"GEN_RANDOM_UUID()"}sqlFieldReference(e,n,r,i,s){let o=`(${e}->>'${n}')`;if(i){switch(r){case"string":break;case"number":o=`${o}::double precision`;break;case"struct":o=`${o}::jsonb`;break}return o}else return`${e}."${n}"`}sqlUnnestPipelineHead(e,n){return e?`UNNEST(ARRAY((SELECT ${n})))`:`JSONB_ARRAY_ELEMENTS(${n})`}sqlCreateFunction(e,n){return`CREATE FUNCTION ${e}(JSONB) RETURNS JSONB AS $$
|
|
120
120
|
${(0,Zxe.indent)(n)}
|
|
121
121
|
$$ LANGUAGE SQL;
|
|
122
122
|
`}sqlCreateFunctionCombineLastStage(e){return`SELECT JSONB_AGG(__stage0) FROM ${e}
|
|
123
|
-
`}sqlFinalStage(e,n){return`SELECT row_to_json(finalStage) as row FROM ${e} AS finalStage`}sqlSelectAliasAsStruct(e){return`ROW(${e})`}sqlMaybeQuoteIdentifier(e){return`"${e}"`}sqlCreateTableAsSelect(e,n){throw new Error("Not implemented Yet")}sqlNow(){return(0,
|
|
123
|
+
`}sqlFinalStage(e,n){return`SELECT row_to_json(finalStage) as row FROM ${e} AS finalStage`}sqlSelectAliasAsStruct(e){return`ROW(${e})`}sqlMaybeQuoteIdentifier(e){return`"${e}"`}sqlCreateTableAsSelect(e,n){throw new Error("Not implemented Yet")}sqlNow(){return(0,Pt.mkExpr)`LOCALTIMESTAMP`}sqlTrunc(e,n,r){const i=r==="week",s=i?(0,Pt.mkExpr)`${n.value} + INTERVAL '1' DAY`:n.value;if(n.valueType==="timestamp"){const u=(0,J2.qtz)(e);if(u){const a=(0,Pt.mkExpr)`(${s}::TIMESTAMPTZ AT TIME ZONE '${u}')`;let l=(0,Pt.mkExpr)`DATE_TRUNC('${r}', ${a})`;l=(0,Pt.mkExpr)`${l}::TIMESTAMP`;const c=(0,Pt.mkExpr)`${l} AT TIME ZONE '${u}'`;return(0,Pt.mkExpr)`(${c})::TIMESTAMP`}}let o=(0,Pt.mkExpr)`DATE_TRUNC('${r}', ${s})`;return i&&(o=(0,Pt.mkExpr)`(${o} - INTERVAL '1' DAY)`),o}sqlExtract(e,n,r){const i=ede[r]||r;let s=n.value;if(n.valueType==="timestamp"){const u=(0,J2.qtz)(e);u&&(s=(0,Pt.mkExpr)`(${s}::TIMESTAMPTZ AT TIME ZONE '${u}')`)}const o=(0,Pt.mkExpr)`EXTRACT(${i} FROM ${s})`;return r==="day_of_week"?(0,Pt.mkExpr)`(${o}+1)`:o}sqlAlterTime(e,n,r,i){i==="quarter"&&(i="month",r=(0,Pt.mkExpr)`${r}*3`);const s=(0,Pt.mkExpr)`make_interval(${tde[i]}=>${r})`;return(0,Pt.mkExpr)`((${n.value})${e}${s})`}sqlCast(e,n){const r=`${n.srcType}::${n.dstType}`,i=(0,J2.qtz)(e);if(r==="timestamp::date"&&i){const s=(0,Pt.mkExpr)`${n.expr}::TIMESTAMPTZ`;return(0,Pt.mkExpr)`CAST((${s}) AT TIME ZONE '${i}' AS DATE)`}else if(r==="date::timestamp"&&i)return(0,Pt.mkExpr)`CAST((${n.expr})::TIMESTAMP AT TIME ZONE '${i}' AS TIMESTAMP)`;if(n.srcType!==n.dstType){const s=typeof n.dstType=="string"?this.malloyTypeToSQLType({type:n.dstType}):n.dstType.raw;if(n.safe)throw new Error("Postgres dialect doesn't support Safe Cast");return(0,Pt.mkExpr)`${"CAST"}(${n.expr} AS ${s})`}return n.expr}sqlRegexpMatch(e,n){return(0,Pt.mkExpr)`(${e} ~ ${n})`}sqlLiteralTime(e,n,r,i){if(r==="date")return`DATE '${n}'`;const s=i||(0,J2.qtz)(e);return s?`TIMESTAMPTZ '${n} ${s}'::TIMESTAMP`:`TIMESTAMP '${n}'`}sqlMeasureTime(e,n,r){let i=e.value,s=n.value;if(aM[r]){i=(0,Pt.mkExpr)`EXTRACT(EPOCH FROM ${i})`,s=(0,Pt.mkExpr)`EXTRACT(EPOCH FROM ${s})`;const o=(0,Pt.mkExpr)`${s}-${i}`;return r==="second"?(0,Pt.mkExpr)`FLOOR(${o})`:(0,Pt.mkExpr)`FLOOR((${o})/${aM[r].toString()}.0)`}throw new Error(`Unknown or unhandled postgres time unit: ${r}`)}sqlSumDistinct(e,n,r){return`(
|
|
124
124
|
SELECT ${r}((a::json->>'f2')::DOUBLE PRECISION) as value
|
|
125
125
|
FROM (
|
|
126
126
|
SELECT UNNEST(array_agg(distinct row_to_json(row(${e},${n}))::text)) a
|
|
@@ -130,7 +130,7 @@ $$ LANGUAGE SQL;
|
|
|
130
130
|
FROM (
|
|
131
131
|
SELECT UNNEST(array_agg(distinct row_to_json(row(${e},${n.join(",")}))::text)) a
|
|
132
132
|
) a
|
|
133
|
-
)`}sqlSampleTable(e,n){if(n!==void 0){if((0,
|
|
133
|
+
)`}sqlSampleTable(e,n){if(n!==void 0){if((0,Pt.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,Pt.isSamplingRows)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM_ROWS(${n.rows}))`;if((0,Pt.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${n.percent}))`}return e}sqlOrderBy(e){return`ORDER BY ${e.map(n=>`${n} NULLS LAST`).join(",")}`}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getGlobalFunctionDef(e){return uM.POSTGRES_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"integer":"double precision":e.type==="string"?"varchar":e.type}sqlTypeToMalloyType(e){var n,r;const i=(r=(n=e.match(/^([\w\s]+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return nde[i.trim().toLowerCase()]}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),[\]0-9]*$/)!==null}}TA.PostgresDialect=rde,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(TA,t)}(bD);var RD={},UA={},lM={},cM={},qA={};Object.defineProperty(qA,"__esModule",{value:!0}),qA.fnByteLength=void 0;const Vd=ge;function ide(){return[(0,Vd.overload)((0,Vd.minScalar)("number"),[(0,Vd.param)("value",(0,Vd.anyExprType)("string"))],(0,Vd.sql)`(BIT_LENGTH(${(0,Vd.arg)("value")}) / 8)`)]}qA.fnByteLength=ide;var HA={};Object.defineProperty(HA,"__esModule",{value:!0}),HA.fnDiv=void 0;const ff=ge;function sde(){const t=(0,ff.makeParam)("dividend",(0,ff.anyExprType)("number")),e=(0,ff.makeParam)("divisor",(0,ff.anyExprType)("number"));return[(0,ff.overload)((0,ff.minScalar)("number"),[t.param,e.param],(0,ff.sql)`CASE WHEN ${t.arg} / ${e.arg} < 0 THEN CEIL(${t.arg} / ${e.arg}) ELSE FLOOR(${t.arg} / ${e.arg}) END`)]}HA.fnDiv=sde;var zA={};Object.defineProperty(zA,"__esModule",{value:!0}),zA.fnEndsWith=void 0;const xf=ge;function ode(){const t=(0,xf.makeParam)("value",(0,xf.anyExprType)("string")),e=(0,xf.makeParam)("suffix",(0,xf.anyExprType)("string"));return[(0,xf.overload)((0,xf.minScalar)("boolean"),[t.param,e.param],(0,xf.sql)`COALESCE(SUFFIX(${t.arg}, ${e.arg}), false)`)]}zA.fnEndsWith=ode;var Yd={};Object.defineProperty(Yd,"__esModule",{value:!0}),Yd.fnLeast=Yd.fnGreatest=void 0;const qa=ge,ude=["string","number","timestamp","date","json"];function fM(t){return ude.map(e=>(0,qa.overload)((0,qa.minScalar)(e),[(0,qa.params)("values",(0,qa.anyExprType)(e))],[(0,qa.sqlFragment)("CASE WHEN LEN(LIST_FILTER([",(0,qa.spread)((0,qa.arg)("values")),`], x -> x is null)) > 0 THEN NULL ELSE ${t}(`,(0,qa.spread)((0,qa.arg)("values")),") END")]))}const ade=()=>fM("GREATEST");Yd.fnGreatest=ade;const lde=()=>fM("LEAST");Yd.fnLeast=lde;var QA={};Object.defineProperty(QA,"__esModule",{value:!0}),QA.fnIsInf=void 0;const Xd=ge;function cde(){return[(0,Xd.overload)((0,Xd.minScalar)("boolean"),[(0,Xd.param)("value",(0,Xd.anyExprType)("number"))],(0,Xd.sql)`COALESCE(ISINF(${(0,Xd.arg)("value")}), false)`)]}QA.fnIsInf=cde;var GA={};Object.defineProperty(GA,"__esModule",{value:!0}),GA.fnIsNan=void 0;const Kd=ge;function fde(){return[(0,Kd.overload)((0,Kd.minScalar)("boolean"),[(0,Kd.param)("value",(0,Kd.anyExprType)("number"))],(0,Kd.sql)`COALESCE(ISNAN(${(0,Kd.arg)("value")}), false)`)]}GA.fnIsNan=fde;var WA={};Object.defineProperty(WA,"__esModule",{value:!0}),WA.fnLog=void 0;const df=ge;function xde(){const t=(0,df.makeParam)("value",(0,df.anyExprType)("number")),e=(0,df.makeParam)("base",(0,df.anyExprType)("number"));return[(0,df.overload)((0,df.minScalar)("number"),[t.param,e.param],(0,df.sql)`(LN(${t.arg}) / LN(${e.arg}))`)]}WA.fnLog=xde;var VA={};Object.defineProperty(VA,"__esModule",{value:!0}),VA.fnRand=void 0;const OD=ge;function dde(){return[(0,OD.overload)((0,OD.minScalar)("number"),[],(0,OD.sql)`RANDOM()`)]}VA.fnRand=dde;var YA={};Object.defineProperty(YA,"__esModule",{value:!0}),YA.fnReplace=void 0;const Gi=ge;function hde(){const t=(0,Gi.makeParam)("value",(0,Gi.anyExprType)("string")),e=(0,Gi.makeParam)("pattern",(0,Gi.anyExprType)("string")),n=(0,Gi.makeParam)("pattern",(0,Gi.anyExprType)("regular expression")),r=(0,Gi.makeParam)("replacement",(0,Gi.anyExprType)("string"));return[(0,Gi.overload)((0,Gi.minScalar)("string"),[t.param,e.param,r.param],(0,Gi.sql)`REPLACE(${t.arg}, ${e.arg}, ${r.arg})`),(0,Gi.overload)((0,Gi.minScalar)("string"),[t.param,n.param,r.param],(0,Gi.sql)`REGEXP_REPLACE(${t.arg}, ${n.arg}, ${r.arg}, 'g')`)]}YA.fnReplace=hde;var XA={};Object.defineProperty(XA,"__esModule",{value:!0}),XA.fnTrunc=void 0;const Eu=ge;function pde(){const t=(0,Eu.makeParam)("value",(0,Eu.anyExprType)("number")),e=(0,Eu.makeParam)("precision",(0,Eu.anyExprType)("number"));return[(0,Eu.overload)((0,Eu.minScalar)("number"),[t.param],(0,Eu.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Eu.overload)((0,Eu.minScalar)("number"),[t.param,e.param],(0,Eu.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) ELSE FLOOR(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) END`)]}XA.fnTrunc=pde;var KA={};Object.defineProperty(KA,"__esModule",{value:!0}),KA.fnUnicode=void 0;const Z2=ge;function gde(){const t=(0,Z2.makeParam)("value",(0,Z2.anyExprType)("string"));return[(0,Z2.overload)((0,Z2.minScalar)("number"),[t.param],(0,Z2.sql)`CASE WHEN ${t.arg} = '' THEN 0 ELSE UNICODE(${t.arg}) END`)]}KA.fnUnicode=gde,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.DUCKDB_FUNCTIONS=void 0;const e=Jc,n=qA,r=HA,i=zA,s=Yd,o=QA,u=GA,a=WA,l=VA,c=YA,f=XA,x=KA;t.DUCKDB_FUNCTIONS=e.FUNCTIONS.clone(),t.DUCKDB_FUNCTIONS.add("trunc",f.fnTrunc),t.DUCKDB_FUNCTIONS.add("rand",l.fnRand),t.DUCKDB_FUNCTIONS.add("is_nan",u.fnIsNan),t.DUCKDB_FUNCTIONS.add("is_inf",o.fnIsInf),t.DUCKDB_FUNCTIONS.add("greatest",s.fnGreatest),t.DUCKDB_FUNCTIONS.add("least",s.fnLeast),t.DUCKDB_FUNCTIONS.add("div",r.fnDiv),t.DUCKDB_FUNCTIONS.add("byte_length",n.fnByteLength),t.DUCKDB_FUNCTIONS.add("unicode",x.fnUnicode),t.DUCKDB_FUNCTIONS.add("replace",c.fnReplace),t.DUCKDB_FUNCTIONS.add("ends_with",i.fnEndsWith),t.DUCKDB_FUNCTIONS.add("log",a.fnLog),t.DUCKDB_FUNCTIONS.seal()}(cM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.DUCKDB_FUNCTIONS=void 0;var e=cM;Object.defineProperty(t,"DUCKDB_FUNCTIONS",{enumerable:!0,get:function(){return e.DUCKDB_FUNCTIONS}})}(lM),Object.defineProperty(UA,"__esModule",{value:!0}),UA.DuckDBDialect=void 0;const Ut=ne,mde=Wt,yde=lM,Jd=Kc,xM="-- hack: split on this",Ede={day_of_week:"dow",day_of_year:"doy"},Ade={BIGINT:{type:"number",numberType:"integer"},INTEGER:{type:"number",numberType:"integer"},TINYINT:{type:"number",numberType:"integer"},SMALLINT:{type:"number",numberType:"integer"},UBIGINT:{type:"number",numberType:"integer"},UINTEGER:{type:"number",numberType:"integer"},UTINYINT:{type:"number",numberType:"integer"},USMALLINT:{type:"number",numberType:"integer"},HUGEINT:{type:"number",numberType:"integer"},DOUBLE:{type:"number",numberType:"float"},FLOAT:{type:"number",numberType:"float"},VARCHAR:{type:"string"},DATE:{type:"date"},TIMESTAMP:{type:"timestamp"},TIME:{type:"string"},DECIMAL:{type:"number",numberType:"float"},BOOLEAN:{type:"boolean"}};class Sde extends Jd.Dialect{constructor(){super(...arguments),this.name="duckdb",this.defaultNumberType="DOUBLE",this.defaultDecimalType="NUMERIC",this.hasFinalStage=!1,this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!0,this.unnestWithNumbers=!1,this.defaultSampling={rows:5e4},this.supportUnnestArrayAgg=!0,this.supportsAggDistinct=!0,this.supportsCTEinCoorelatedSubQueries=!0,this.dontUnionIndex=!0,this.supportsQualify=!0,this.supportsSafeCast=!0,this.supportsNesting=!0}get udfPrefix(){return`__udf${Math.floor(Math.random()*1e5)}`}quoteTablePath(e){return e.match(/[/*:]/)?`'${e}'`:e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT UNNEST(GENERATE_SERIES(0,${e},1)) as group_set ) as group_set`}sqlAnyValue(e,n){return`FIRST(${n}) FILTER (WHERE ${n} IS NOT NULL)`}sqlLiteralNumber(e){return e.includes(".")?`${e}::${this.defaultNumberType}`:e}mapFields(e){return e.join(", ")}sqlAggregateTurtle(e,n,r,i){let s="";return i!==void 0&&(s+=`[1:${i}]`),`COALESCE(LIST({${n.map(u=>`
|
|
134
134
|
${u.sqlOutputName}: ${u.sqlExpression}`).join(", ")}} ${r}) FILTER (WHERE group_set=${e})${s},[])`}sqlAnyValueTurtle(e,n){const r=n.map(i=>`${i.sqlExpression} as ${i.sqlOutputName}`).join(", ");return`ANY_VALUE(CASE WHEN group_set=${e} THEN STRUCT_PACK(${r}))`}sqlAnyValueLastTurtle(e,n,r){return`MAX(CASE WHEN group_set=${n} THEN ${e} END) as ${r}`}sqlCoaleseMeasuresInline(e,n){const r=n.map(s=>`${s.sqlOutputName}: ${s.sqlExpression} `).join(", "),i=n.map(s=>`${s.sqlOutputName}: NULL`).join(", ");return`COALESCE(FIRST({${r}}) FILTER(WHERE group_set=${e}), {${i}})`}sqlUnnestAlias(e,n,r,i,s,o){return this.unnestWithNumbers?`LEFT JOIN (select UNNEST(generate_series(1,
|
|
135
135
|
${o?"100000":`array_length(${e})`},
|
|
136
136
|
1)) as __row_id) as ${n} ON ${n}.__row_id <= array_length(${e})`:i?`LEFT JOIN LATERAL (SELECT UNNEST(GENERATE_SERIES(1, length(${e}),1)) as __row_id, UNNEST(${e}), 1 as ignoreme) as ${n}_outer(__row_id, ${n},ignoreme) ON ${n}_outer.ignoreme=1`:`LEFT JOIN LATERAL (SELECT UNNEST(${e}), 1 as ignoreme) as ${n}_outer(${n},ignoreme) ON ${n}_outer.ignoreme=1`}sqlSumDistinctHashedKey(e){return"uses sumDistinctFunction, should not be called"}sqlGenerateUUID(){return"GEN_RANDOM_UUID()"}sqlDateToString(e){return`(${e})::date::varchar`}sqlFieldReference(e,n,r,i,s){return!this.unnestWithNumbers&&n==="__row_id"?`${e}_outer.__row_id`:s?e:`${e}.${this.sqlMaybeQuoteIdentifier(n)}`}sqlUnnestPipelineHead(e,n){let r=n;return e&&(r=`[${r}]`),`(SELECT UNNEST(${r}) as base)`}sqlCreateFunction(e,n){return`DROP MACRO IF EXISTS ${e};
|
|
@@ -140,7 +140,7 @@ ${(0,mde.indent)(n)}
|
|
|
140
140
|
);
|
|
141
141
|
${xM}
|
|
142
142
|
`}sqlCreateFunctionCombineLastStage(e,n){return`SELECT LIST(STRUCT_PACK(${n.map(r=>this.sqlMaybeQuoteIdentifier(r.sqlOutputName)).join(",")})) FROM ${e}
|
|
143
|
-
`}sqlSelectAliasAsStruct(e,n){return`STRUCT_PACK(${n.map(r=>`${e}.${r.sqlOutputName}`).join(", ")})`}sqlMaybeQuoteIdentifier(e){return'"'+e+'"'}sqlCreateTableAsSelect(e,n){throw new Error("Not implemented Yet")}sqlMeasureTime(e,n,r){let i=e.value,s=n.value;return(0,Jd.inDays)(r)||(e.valueType==="date"&&(i=(0,
|
|
143
|
+
`}sqlSelectAliasAsStruct(e,n){return`STRUCT_PACK(${n.map(r=>`${e}.${r.sqlOutputName}`).join(", ")})`}sqlMaybeQuoteIdentifier(e){return'"'+e+'"'}sqlCreateTableAsSelect(e,n){throw new Error("Not implemented Yet")}sqlMeasureTime(e,n,r){let i=e.value,s=n.value;return(0,Jd.inDays)(r)||(e.valueType==="date"&&(i=(0,Ut.mkExpr)`(${i})::TIMESTAMP`),n.valueType==="date"&&(s=(0,Ut.mkExpr)`(${s})::TIMESTAMP`)),(0,Ut.mkExpr)`DATE_SUB('${r}',${i},${s})`}sqlNow(){return(0,Ut.mkExpr)`LOCALTIMESTAMP`}sqlTrunc(e,n,r){const i=r==="week",s=i?(0,Ut.mkExpr)`${n.value} + INTERVAL 1 DAY`:n.value;if(n.valueType==="timestamp"){const u=(0,Jd.qtz)(e);if(u){const a=(0,Ut.mkExpr)`(${s}::TIMESTAMPTZ AT TIME ZONE '${u}')`;let l=(0,Ut.mkExpr)`DATE_TRUNC('${r}', ${a})`;l=(0,Ut.mkExpr)`${l}::TIMESTAMP`;const c=(0,Ut.mkExpr)`${l} AT TIME ZONE '${u}'`;return(0,Ut.mkExpr)`(${c})::TIMESTAMP`}}let o=(0,Ut.mkExpr)`DATE_TRUNC('${r}', ${s})`;return i&&(o=(0,Ut.mkExpr)`(${o} - INTERVAL 1 DAY)`),o}sqlExtract(e,n,r){const i=Ede[r]||r;let s=n.value;if(n.valueType==="timestamp"){const u=(0,Jd.qtz)(e);u&&(s=(0,Ut.mkExpr)`(${s}::TIMESTAMPTZ AT TIME ZONE '${u}')`)}const o=(0,Ut.mkExpr)`EXTRACT(${i} FROM ${s})`;return r==="day_of_week"?(0,Ut.mkExpr)`(${o}+1)`:o}sqlAlterTime(e,n,r,i){i==="quarter"&&(i="month",r=(0,Ut.mkExpr)`${r}*3`),i==="week"&&(i="day",r=(0,Ut.mkExpr)`${r}*7`);const s=(0,Ut.mkExpr)`INTERVAL (${r}) ${i}`;return(0,Ut.mkExpr)`${n.value} ${e} ${s}`}sqlCast(e,n){const r=`${n.srcType}::${n.dstType}`,i=(0,Jd.qtz)(e);if(r==="timestamp::date"&&i){const s=(0,Ut.mkExpr)`${n.expr}::TIMESTAMPTZ`;return(0,Ut.mkExpr)`CAST((${s}) AT TIME ZONE '${i}' AS DATE)`}else if(r==="date::timestamp"&&i)return(0,Ut.mkExpr)`CAST((${n.expr})::TIMESTAMP AT TIME ZONE '${i}' AS TIMESTAMP)`;if(n.srcType!==n.dstType){const s=typeof n.dstType=="string"?this.malloyTypeToSQLType({type:n.dstType}):n.dstType.raw,o=n.safe?"TRY_CAST":"CAST";return(0,Ut.mkExpr)`${o}(${n.expr} AS ${s})`}return n.expr}sqlRegexpMatch(e,n){return(0,Ut.mkExpr)`REGEXP_MATCHES(${e}, ${n})`}sqlLiteralTime(e,n,r,i){if(r==="date")return`DATE '${n}'`;const s=i||(0,Jd.qtz)(e);return s?`TIMESTAMPTZ '${n} ${s}'::TIMESTAMP`:`TIMESTAMP '${n}'`}sqlSumDistinct(e,n,r){return`(
|
|
144
144
|
SELECT ${r}(a.val) as value
|
|
145
145
|
FROM (
|
|
146
146
|
SELECT UNNEST(list(distinct {key:${e}, val: ${n}})) a
|
|
@@ -150,7 +150,7 @@ ${xM}
|
|
|
150
150
|
FROM (
|
|
151
151
|
SELECT UNNEST(list(distinct {key:${e}, ${n.map((i,s)=>`val${s}: ${i}`).join(",")}})) a
|
|
152
152
|
)
|
|
153
|
-
)`}sqlSampleTable(e,n){if(n!==void 0){if((0,qt.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,qt.isSamplingRows)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.rows})`;if((0,qt.isSamplingPercent)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.percent} PERCENT (bernoulli))`}return e}sqlOrderBy(e){return`ORDER BY ${e.map(n=>`${n} NULLS LAST`).join(",")}`}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getGlobalFunctionDef(e){return yde.DUCKDB_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"integer":"double precision":e.type==="string"?"varchar":e.type}sqlTypeToMalloyType(e){var n,r;const i=(r=(n=e.match(/^(\w+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return Ade[i.toUpperCase()]}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),[\]0-9]*$/)!==null}}UA.DuckDBDialect=Sde,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(UA,t)}(RD);var ND={},JA={},dM={},hM={},ZA={};Object.defineProperty(ZA,"__esModule",{value:!0}),ZA.fnChr=void 0;const eg=ge;function vde(){const t=(0,eg.makeParam)("value",(0,eg.anyExprType)("number"));return[(0,eg.overload)((0,eg.minScalar)("string"),[t.param],(0,eg.sql)`COALESCE(CHR(${t.arg}), '')`)]}ZA.fnChr=vde;var eS={};Object.defineProperty(eS,"__esModule",{value:!0}),eS.fnDiv=void 0;const hf=ge;function _de(){const t=(0,hf.makeParam)("dividend",(0,hf.anyExprType)("number")),e=(0,hf.makeParam)("divisor",(0,hf.anyExprType)("number"));return[(0,hf.overload)((0,hf.minScalar)("number"),[t.param,e.param],(0,hf.sql)`CASE WHEN DIV0(${t.arg}, ${e.arg}) < 0 THEN CEIL(DIV0(${t.arg}, ${e.arg})) ELSE FLOOR(DIV0(${t.arg}, ${e.arg})) END`)]}eS.fnDiv=_de;var tS={};Object.defineProperty(tS,"__esModule",{value:!0}),tS.fnIsInf=void 0;const tg=ge;function Cde(){const t=(0,tg.makeParam)("value",(0,tg.anyExprType)("number"));return[(0,tg.overload)((0,tg.minScalar)("boolean"),[t.param],(0,tg.sql)`COALESCE(${t.arg} = 'inf'::FLOAT OR ${t.arg} = '-inf'::FLOAT, false)`)]}tS.fnIsInf=Cde;var nS={};Object.defineProperty(nS,"__esModule",{value:!0}),nS.fnIsNan=void 0;const Zd=ge;function bde(){return[(0,Zd.overload)((0,Zd.minScalar)("boolean"),[(0,Zd.param)("value",(0,Zd.anyExprType)("number"))],(0,Zd.sql)`COALESCE(${(0,Zd.arg)("value")} = 'NAN'::FLOAT, false)`)]}nS.fnIsNan=bde;var eh={};Object.defineProperty(eh,"__esModule",{value:!0}),eh.fnByteLength=eh.fnLength=void 0;const Xs=ge;function Tde(){return[(0,Xs.overload)((0,Xs.minScalar)("number"),[(0,Xs.param)("value",(0,Xs.anyExprType)("string"))],(0,Xs.sql)`LENGTH(${(0,Xs.arg)("value")})`)]}eh.fnLength=Tde;function Rde(){return[(0,Xs.overload)((0,Xs.minScalar)("number"),[(0,Xs.param)("value",(0,Xs.anyExprType)("string"))],(0,Xs.sql)`CEIL(BIT_LENGTH(${(0,Xs.arg)("value")}) / 8)`)]}eh.fnByteLength=Rde;var rS={};Object.defineProperty(rS,"__esModule",{value:!0}),rS.fnLog=void 0;const pf=ge;function Ode(){const t=(0,pf.makeParam)("value",(0,pf.anyExprType)("number")),e=(0,pf.makeParam)("base",(0,pf.anyExprType)("number"));return[(0,pf.overload)((0,pf.minScalar)("number"),[t.param,e.param],(0,pf.sql)`LOG(${e.arg}, ${t.arg})`)]}rS.fnLog=Ode;var iS={};Object.defineProperty(iS,"__esModule",{value:!0}),iS.fnRand=void 0;const DD=ge;function Nde(){return[(0,DD.overload)((0,DD.minScalar)("number"),[],(0,DD.sql)`UNIFORM(0::FLOAT, 1::FLOAT, RANDOM())`)]}iS.fnRand=Nde;var sS={};Object.defineProperty(sS,"__esModule",{value:!0}),sS.fnRegexpExtract=void 0;const gf=ge;function Dde(){const t=(0,gf.makeParam)("value",(0,gf.anyExprType)("string")),e=(0,gf.makeParam)("pattern",(0,gf.anyExprType)("regular expression"));return[(0,gf.overload)((0,gf.minScalar)("string"),[t.param,e.param],(0,gf.sql)`REGEXP_SUBSTR(${t.arg}, ${e.arg}, 1, 1, 'e')`)]}sS.fnRegexpExtract=Dde;var th={};Object.defineProperty(th,"__esModule",{value:!0}),th.fnEndsWith=th.fnStartsWith=void 0;const Wi=ge;function Fde(){const t=(0,Wi.makeParam)("value",(0,Wi.anyExprType)("string")),e=(0,Wi.makeParam)("prefix",(0,Wi.anyExprType)("string"));return[(0,Wi.overload)((0,Wi.minScalar)("boolean"),[t.param,e.param],(0,Wi.sql)`COALESCE(STARTSWITH(${t.arg}, ${e.arg}), false)`)]}th.fnStartsWith=Fde;function wde(){const t=(0,Wi.makeParam)("value",(0,Wi.anyExprType)("string")),e=(0,Wi.makeParam)("suffix",(0,Wi.anyExprType)("string"));return[(0,Wi.overload)((0,Wi.minScalar)("boolean"),[t.param,e.param],(0,Wi.sql)`COALESCE(ENDSWITH(${t.arg}, ${e.arg}), false)`)]}th.fnEndsWith=wde;var oS={};Object.defineProperty(oS,"__esModule",{value:!0}),oS.fnStrpos=void 0;const mf=ge;function Lde(){const t=(0,mf.makeParam)("test_string",(0,mf.anyExprType)("string")),e=(0,mf.makeParam)("search_string",(0,mf.anyExprType)("string"));return[(0,mf.overload)((0,mf.minScalar)("number"),[t.param,e.param],(0,mf.sql)`POSITION(${e.arg}, ${t.arg})`)]}oS.fnStrpos=Lde;var uS={};Object.defineProperty(uS,"__esModule",{value:!0}),uS.fnTrunc=void 0;const Au=ge;function Ide(){const t=(0,Au.makeParam)("value",(0,Au.anyExprType)("number")),e=(0,Au.makeParam)("precision",(0,Au.anyExprType)("number"));return[(0,Au.overload)((0,Au.minScalar)("number"),[t.param],(0,Au.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Au.overload)((0,Au.minScalar)("number"),[t.param,e.param],(0,Au.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) ELSE FLOOR(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) END`)]}uS.fnTrunc=Ide;var nh={};Object.defineProperty(nh,"__esModule",{value:!0}),nh.fnStringAggDistinct=nh.fnStringAgg=void 0;const Sn=ge;function $de(){const t=(0,Sn.makeParam)("value",(0,Sn.maxScalar)("string")),e=(0,Sn.makeParam)("separator",(0,Sn.literal)((0,Sn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"};return[(0,Sn.overload)((0,Sn.minAggregate)("string"),[t.param],(0,Sn.sql)`LISTAGG(${t.arg}, ',')${n}`,{supportsOrderBy:!0,supportsLimit:!1}),(0,Sn.overload)((0,Sn.minAggregate)("string"),[t.param,e.param],(0,Sn.sql)`LISTAGG(${t.arg}, ${e.arg})${n}`,{supportsOrderBy:!0,supportsLimit:!1})]}nh.fnStringAgg=$de;function Bde(){const t=(0,Sn.makeParam)("value",(0,Sn.maxScalar)("string")),e=(0,Sn.makeParam)("separator",(0,Sn.literal)((0,Sn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"};return[(0,Sn.overload)((0,Sn.minAggregate)("string"),[t.param],(0,Sn.sql)`LISTAGG(DISTINCT ${t.arg}, ',')${n}`,{supportsOrderBy:!0,supportsLimit:!1}),(0,Sn.overload)((0,Sn.minAggregate)("string"),[t.param,e.param],(0,Sn.sql)`LISTAGG(DISTINCT ${t.arg}, ${e.arg})${n}`,{supportsOrderBy:!0,supportsLimit:!1})]}nh.fnStringAggDistinct=Bde,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SNOWFLAKE_FUNCTIONS=void 0;const e=Jc,n=ZA,r=eS,i=tS,s=nS,o=eh,u=rS,a=iS,l=sS,c=th,f=oS,x=uS,h=nh;t.SNOWFLAKE_FUNCTIONS=e.FUNCTIONS.clone(),t.SNOWFLAKE_FUNCTIONS.add("byte_length",o.fnByteLength),t.SNOWFLAKE_FUNCTIONS.add("chr",n.fnChr),t.SNOWFLAKE_FUNCTIONS.add("div",r.fnDiv),t.SNOWFLAKE_FUNCTIONS.add("is_inf",i.fnIsInf),t.SNOWFLAKE_FUNCTIONS.add("is_nan",s.fnIsNan),t.SNOWFLAKE_FUNCTIONS.add("length",o.fnLength),t.SNOWFLAKE_FUNCTIONS.add("log",u.fnLog),t.SNOWFLAKE_FUNCTIONS.add("rand",a.fnRand),t.SNOWFLAKE_FUNCTIONS.add("regexp_extract",l.fnRegexpExtract),t.SNOWFLAKE_FUNCTIONS.add("starts_with",c.fnStartsWith),t.SNOWFLAKE_FUNCTIONS.add("ends_with",c.fnEndsWith),t.SNOWFLAKE_FUNCTIONS.add("strpos",f.fnStrpos),t.SNOWFLAKE_FUNCTIONS.add("trunc",x.fnTrunc),t.SNOWFLAKE_FUNCTIONS.add("string_agg",h.fnStringAgg),t.SNOWFLAKE_FUNCTIONS.add("string_agg_distinct",h.fnStringAggDistinct),t.SNOWFLAKE_FUNCTIONS.seal()}(hM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SNOWFLAKE_FUNCTIONS=void 0;var e=hM;Object.defineProperty(t,"SNOWFLAKE_FUNCTIONS",{enumerable:!0,get:function(){return e.SNOWFLAKE_FUNCTIONS}})}(dM),Object.defineProperty(JA,"__esModule",{value:!0}),JA.SnowflakeDialect=void 0;const kde=Wt,or=ne,pM=dM,ng=Kc,Pde={day_of_week:"dayofweek",day_of_year:"dayofyear"},Mde={varchar:{type:"string"},text:{type:"string"},string:{type:"string"},char:{type:"string"},character:{type:"string"},nvarchar:{type:"string"},nvarchar2:{type:"string"},"char varying":{type:"string"},"nchar varying":{type:"string"},number:{type:"number",numberType:"integer"},numeric:{type:"number",numberType:"integer"},decimal:{type:"number",numberType:"integer"},dec:{type:"number",numberType:"integer"},integer:{type:"number",numberType:"integer"},int:{type:"number",numberType:"integer"},bigint:{type:"number",numberType:"integer"},smallint:{type:"number",numberType:"integer"},tinyint:{type:"number",numberType:"integer"},byteint:{type:"number",numberType:"integer"},float:{type:"number",numberType:"float"},float4:{type:"number",numberType:"float"},float8:{type:"number",numberType:"float"},double:{type:"number",numberType:"float"},"double precision":{type:"number",numberType:"float"},real:{type:"number",numberType:"float"},boolean:{type:"boolean"},date:{type:"date"},timestamp:{type:"timestamp"},timestampntz:{type:"timestamp"},timestamp_ntz:{type:"timestamp"},"timestamp without time zone":{type:"timestamp"},timestamptz:{type:"timestamp"},timestamp_tz:{type:"timestamp"},"timestamp with time zone":{type:"timestamp"}};class jde extends ng.Dialect{constructor(){super(...arguments),this.name="snowflake",this.defaultNumberType="NUMBER",this.defaultDecimalType="NUMBER",this.udfPrefix="__udf",this.hasFinalStage=!1,this.divisionIsInteger=!1,this.supportsSumDistinctFunction=!1,this.supportsSafeCast=!0,this.supportsNesting=!0,this.defaultSampling={rows:5e4},this.globalFunctions=pM.SNOWFLAKE_FUNCTIONS,this.unnestWithNumbers=!1,this.supportUnnestArrayAgg=!1,this.supportsAggDistinct=!1,this.supportsCTEinCoorelatedSubQueries=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.supportsPipelinesInViews=!1}quoteTablePath(e){return e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT index as group_set FROM TABLE(FLATTEN(ARRAY_GENERATE_RANGE(0, ${e+1}))))`}sqlAnyValue(e,n){return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN ${n} END) WITHIN GROUP (ORDER BY ${n} ASC NULLS LAST))[0]`}mapFields(e){return e.map(n=>`
|
|
153
|
+
)`}sqlSampleTable(e,n){if(n!==void 0){if((0,Ut.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,Ut.isSamplingRows)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.rows})`;if((0,Ut.isSamplingPercent)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.percent} PERCENT (bernoulli))`}return e}sqlOrderBy(e){return`ORDER BY ${e.map(n=>`${n} NULLS LAST`).join(",")}`}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getGlobalFunctionDef(e){return yde.DUCKDB_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"integer":"double precision":e.type==="string"?"varchar":e.type}sqlTypeToMalloyType(e){var n,r;const i=(r=(n=e.match(/^(\w+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return Ade[i.toUpperCase()]}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),[\]0-9]*$/)!==null}}UA.DuckDBDialect=Sde,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(UA,t)}(RD);var ND={},JA={},dM={},hM={},ZA={};Object.defineProperty(ZA,"__esModule",{value:!0}),ZA.fnChr=void 0;const eg=ge;function vde(){const t=(0,eg.makeParam)("value",(0,eg.anyExprType)("number"));return[(0,eg.overload)((0,eg.minScalar)("string"),[t.param],(0,eg.sql)`COALESCE(CHR(${t.arg}), '')`)]}ZA.fnChr=vde;var eS={};Object.defineProperty(eS,"__esModule",{value:!0}),eS.fnDiv=void 0;const hf=ge;function _de(){const t=(0,hf.makeParam)("dividend",(0,hf.anyExprType)("number")),e=(0,hf.makeParam)("divisor",(0,hf.anyExprType)("number"));return[(0,hf.overload)((0,hf.minScalar)("number"),[t.param,e.param],(0,hf.sql)`CASE WHEN DIV0(${t.arg}, ${e.arg}) < 0 THEN CEIL(DIV0(${t.arg}, ${e.arg})) ELSE FLOOR(DIV0(${t.arg}, ${e.arg})) END`)]}eS.fnDiv=_de;var tS={};Object.defineProperty(tS,"__esModule",{value:!0}),tS.fnIsInf=void 0;const tg=ge;function Cde(){const t=(0,tg.makeParam)("value",(0,tg.anyExprType)("number"));return[(0,tg.overload)((0,tg.minScalar)("boolean"),[t.param],(0,tg.sql)`COALESCE(${t.arg} = 'inf'::FLOAT OR ${t.arg} = '-inf'::FLOAT, false)`)]}tS.fnIsInf=Cde;var nS={};Object.defineProperty(nS,"__esModule",{value:!0}),nS.fnIsNan=void 0;const Zd=ge;function bde(){return[(0,Zd.overload)((0,Zd.minScalar)("boolean"),[(0,Zd.param)("value",(0,Zd.anyExprType)("number"))],(0,Zd.sql)`COALESCE(${(0,Zd.arg)("value")} = 'NAN'::FLOAT, false)`)]}nS.fnIsNan=bde;var eh={};Object.defineProperty(eh,"__esModule",{value:!0}),eh.fnByteLength=eh.fnLength=void 0;const Xs=ge;function Tde(){return[(0,Xs.overload)((0,Xs.minScalar)("number"),[(0,Xs.param)("value",(0,Xs.anyExprType)("string"))],(0,Xs.sql)`LENGTH(${(0,Xs.arg)("value")})`)]}eh.fnLength=Tde;function Rde(){return[(0,Xs.overload)((0,Xs.minScalar)("number"),[(0,Xs.param)("value",(0,Xs.anyExprType)("string"))],(0,Xs.sql)`CEIL(BIT_LENGTH(${(0,Xs.arg)("value")}) / 8)`)]}eh.fnByteLength=Rde;var rS={};Object.defineProperty(rS,"__esModule",{value:!0}),rS.fnLog=void 0;const pf=ge;function Ode(){const t=(0,pf.makeParam)("value",(0,pf.anyExprType)("number")),e=(0,pf.makeParam)("base",(0,pf.anyExprType)("number"));return[(0,pf.overload)((0,pf.minScalar)("number"),[t.param,e.param],(0,pf.sql)`LOG(${e.arg}, ${t.arg})`)]}rS.fnLog=Ode;var iS={};Object.defineProperty(iS,"__esModule",{value:!0}),iS.fnRand=void 0;const DD=ge;function Nde(){return[(0,DD.overload)((0,DD.minScalar)("number"),[],(0,DD.sql)`UNIFORM(0::FLOAT, 1::FLOAT, RANDOM())`)]}iS.fnRand=Nde;var sS={};Object.defineProperty(sS,"__esModule",{value:!0}),sS.fnRegexpExtract=void 0;const gf=ge;function Dde(){const t=(0,gf.makeParam)("value",(0,gf.anyExprType)("string")),e=(0,gf.makeParam)("pattern",(0,gf.anyExprType)("regular expression"));return[(0,gf.overload)((0,gf.minScalar)("string"),[t.param,e.param],(0,gf.sql)`REGEXP_SUBSTR(${t.arg}, ${e.arg}, 1, 1, 'e')`)]}sS.fnRegexpExtract=Dde;var th={};Object.defineProperty(th,"__esModule",{value:!0}),th.fnEndsWith=th.fnStartsWith=void 0;const Wi=ge;function Fde(){const t=(0,Wi.makeParam)("value",(0,Wi.anyExprType)("string")),e=(0,Wi.makeParam)("prefix",(0,Wi.anyExprType)("string"));return[(0,Wi.overload)((0,Wi.minScalar)("boolean"),[t.param,e.param],(0,Wi.sql)`COALESCE(STARTSWITH(${t.arg}, ${e.arg}), false)`)]}th.fnStartsWith=Fde;function wde(){const t=(0,Wi.makeParam)("value",(0,Wi.anyExprType)("string")),e=(0,Wi.makeParam)("suffix",(0,Wi.anyExprType)("string"));return[(0,Wi.overload)((0,Wi.minScalar)("boolean"),[t.param,e.param],(0,Wi.sql)`COALESCE(ENDSWITH(${t.arg}, ${e.arg}), false)`)]}th.fnEndsWith=wde;var oS={};Object.defineProperty(oS,"__esModule",{value:!0}),oS.fnStrpos=void 0;const mf=ge;function Lde(){const t=(0,mf.makeParam)("test_string",(0,mf.anyExprType)("string")),e=(0,mf.makeParam)("search_string",(0,mf.anyExprType)("string"));return[(0,mf.overload)((0,mf.minScalar)("number"),[t.param,e.param],(0,mf.sql)`POSITION(${e.arg}, ${t.arg})`)]}oS.fnStrpos=Lde;var uS={};Object.defineProperty(uS,"__esModule",{value:!0}),uS.fnTrunc=void 0;const Au=ge;function Ide(){const t=(0,Au.makeParam)("value",(0,Au.anyExprType)("number")),e=(0,Au.makeParam)("precision",(0,Au.anyExprType)("number"));return[(0,Au.overload)((0,Au.minScalar)("number"),[t.param],(0,Au.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Au.overload)((0,Au.minScalar)("number"),[t.param,e.param],(0,Au.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) ELSE FLOOR(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) END`)]}uS.fnTrunc=Ide;var nh={};Object.defineProperty(nh,"__esModule",{value:!0}),nh.fnStringAggDistinct=nh.fnStringAgg=void 0;const Sn=ge;function $de(){const t=(0,Sn.makeParam)("value",(0,Sn.maxScalar)("string")),e=(0,Sn.makeParam)("separator",(0,Sn.literal)((0,Sn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"};return[(0,Sn.overload)((0,Sn.minAggregate)("string"),[t.param],(0,Sn.sql)`LISTAGG(${t.arg}, ',')${n}`,{supportsOrderBy:!0,supportsLimit:!1}),(0,Sn.overload)((0,Sn.minAggregate)("string"),[t.param,e.param],(0,Sn.sql)`LISTAGG(${t.arg}, ${e.arg})${n}`,{supportsOrderBy:!0,supportsLimit:!1})]}nh.fnStringAgg=$de;function Bde(){const t=(0,Sn.makeParam)("value",(0,Sn.maxScalar)("string")),e=(0,Sn.makeParam)("separator",(0,Sn.literal)((0,Sn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"};return[(0,Sn.overload)((0,Sn.minAggregate)("string"),[t.param],(0,Sn.sql)`LISTAGG(DISTINCT ${t.arg}, ',')${n}`,{supportsOrderBy:!0,supportsLimit:!1}),(0,Sn.overload)((0,Sn.minAggregate)("string"),[t.param,e.param],(0,Sn.sql)`LISTAGG(DISTINCT ${t.arg}, ${e.arg})${n}`,{supportsOrderBy:!0,supportsLimit:!1})]}nh.fnStringAggDistinct=Bde,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SNOWFLAKE_FUNCTIONS=void 0;const e=Jc,n=ZA,r=eS,i=tS,s=nS,o=eh,u=rS,a=iS,l=sS,c=th,f=oS,x=uS,h=nh;t.SNOWFLAKE_FUNCTIONS=e.FUNCTIONS.clone(),t.SNOWFLAKE_FUNCTIONS.add("byte_length",o.fnByteLength),t.SNOWFLAKE_FUNCTIONS.add("chr",n.fnChr),t.SNOWFLAKE_FUNCTIONS.add("div",r.fnDiv),t.SNOWFLAKE_FUNCTIONS.add("is_inf",i.fnIsInf),t.SNOWFLAKE_FUNCTIONS.add("is_nan",s.fnIsNan),t.SNOWFLAKE_FUNCTIONS.add("length",o.fnLength),t.SNOWFLAKE_FUNCTIONS.add("log",u.fnLog),t.SNOWFLAKE_FUNCTIONS.add("rand",a.fnRand),t.SNOWFLAKE_FUNCTIONS.add("regexp_extract",l.fnRegexpExtract),t.SNOWFLAKE_FUNCTIONS.add("starts_with",c.fnStartsWith),t.SNOWFLAKE_FUNCTIONS.add("ends_with",c.fnEndsWith),t.SNOWFLAKE_FUNCTIONS.add("strpos",f.fnStrpos),t.SNOWFLAKE_FUNCTIONS.add("trunc",x.fnTrunc),t.SNOWFLAKE_FUNCTIONS.add("string_agg",h.fnStringAgg),t.SNOWFLAKE_FUNCTIONS.add("string_agg_distinct",h.fnStringAggDistinct),t.SNOWFLAKE_FUNCTIONS.seal()}(hM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SNOWFLAKE_FUNCTIONS=void 0;var e=hM;Object.defineProperty(t,"SNOWFLAKE_FUNCTIONS",{enumerable:!0,get:function(){return e.SNOWFLAKE_FUNCTIONS}})}(dM),Object.defineProperty(JA,"__esModule",{value:!0}),JA.SnowflakeDialect=void 0;const kde=Wt,or=ne,pM=dM,ng=Kc,Pde={day_of_week:"dayofweek",day_of_year:"dayofyear"},Mde={varchar:{type:"string"},text:{type:"string"},string:{type:"string"},char:{type:"string"},character:{type:"string"},nvarchar:{type:"string"},nvarchar2:{type:"string"},"char varying":{type:"string"},"nchar varying":{type:"string"},number:{type:"number",numberType:"integer"},numeric:{type:"number",numberType:"integer"},decimal:{type:"number",numberType:"integer"},dec:{type:"number",numberType:"integer"},integer:{type:"number",numberType:"integer"},int:{type:"number",numberType:"integer"},bigint:{type:"number",numberType:"integer"},smallint:{type:"number",numberType:"integer"},tinyint:{type:"number",numberType:"integer"},byteint:{type:"number",numberType:"integer"},float:{type:"number",numberType:"float"},float4:{type:"number",numberType:"float"},float8:{type:"number",numberType:"float"},double:{type:"number",numberType:"float"},"double precision":{type:"number",numberType:"float"},real:{type:"number",numberType:"float"},boolean:{type:"boolean"},date:{type:"date"},timestamp:{type:"timestamp"},timestampntz:{type:"timestamp"},timestamp_ntz:{type:"timestamp"},"timestamp without time zone":{type:"timestamp"},timestamptz:{type:"timestamp"},timestamp_tz:{type:"timestamp"},"timestamp with time zone":{type:"timestamp"}};class jde extends ng.Dialect{constructor(){super(...arguments),this.name="snowflake",this.defaultNumberType="NUMBER",this.defaultDecimalType="NUMBER",this.udfPrefix="__udf",this.hasFinalStage=!1,this.divisionIsInteger=!1,this.supportsSumDistinctFunction=!1,this.supportsSafeCast=!0,this.supportsNesting=!0,this.defaultSampling={rows:5e4},this.globalFunctions=pM.SNOWFLAKE_FUNCTIONS,this.unnestWithNumbers=!1,this.supportUnnestArrayAgg=!1,this.supportsAggDistinct=!1,this.supportsCTEinCoorelatedSubQueries=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.supportsPipelinesInViews=!1}quoteTablePath(e){return e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT index as group_set FROM TABLE(FLATTEN(ARRAY_GENERATE_RANGE(0, ${e+1}))))`}sqlAnyValue(e,n){return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN ${n} END) WITHIN GROUP (ORDER BY ${n} ASC NULLS LAST))[0]`}mapFields(e){return e.map(n=>`
|
|
154
154
|
${n.sqlExpression} as ${n.sqlOutputName}`).join(", ")}mapFieldsForObjectConstruct(e){return e.map(n=>`'${n.rawName}', (${n.sqlExpression})`).join(", ")}sqlAggregateTurtle(e,n,r,i){const s=this.mapFieldsForObjectConstruct(n),o=r?` WITHIN GROUP (${r})`:"",u=`ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${s}) END)${o}`;return i===void 0?`COALESCE(${u}, [])`:`COALESCE(ARRAY_SLICE(${u}, 0, ${i}), [])`}sqlAnyValueTurtle(e,n){const r=this.mapFieldsForObjectConstruct(n);return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${r}) END) WITHIN GROUP (ORDER BY 1 ASC NULLS LAST))[0]`}sqlAnyValueLastTurtle(e,n,r){return`(ARRAY_AGG(CASE WHEN group_set=${n} THEN ${e} END) WITHIN GROUP (ORDER BY ${e} ASC NULLS LAST))[0] AS ${r}`}sqlCoaleseMeasuresInline(e,n){const r=this.mapFieldsForObjectConstruct(n),i=n.map(s=>`'${s.sqlOutputName}', NULL`).join(", ");return`COALESCE(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${r}) END)[0], OBJECT_CONSTRUCT_KEEP_NULL(${i}))`}sqlUnnestAlias(e,n,r,i,s,o){return s?`,LATERAL FLATTEN(INPUT => ${e}) AS ${n}_1, LATERAL (SELECT ${n}_1.INDEX, object_construct('value', ${n}_1.value) as value ) as ${n}`:`LEFT JOIN LATERAL FLATTEN(INPUT => ifnull(${e},[1])) AS ${n}`}sqlSumDistinctHashedKey(e){e=`${e}::STRING`;const n=`to_number(substr(md5_hex(${e}), 1, 15), repeat('X', 15)) * 4294967296`,r=`to_number(substr(md5_hex(${e}), 16, 8), repeat('X', 8))`;return`(${n} + ${r}) * 0.000000001`}sqlGenerateUUID(){return"UUID_STRING()"}sqlFieldReference(e,n,r,i,s){if(n==="__row_id")return`${e}.INDEX::varchar`;if(i){let o=r;return r==="string"?o="varchar":r==="struct"&&(o="variant"),`${e}.value:"${n}"::${o}`}else return`${e}."${n}"`}sqlUnnestPipelineHead(e,n){let r=n;return e&&(r=`[${r}]`),`TABLE(FLATTEN(input =>${r}))`}sqlCreateFunction(e,n){throw new Error("not implemented yet")}sqlCreateFunctionCombineLastStage(e){throw new Error("not implemented yet")}sqlSelectAliasAsStruct(e){return`OBJECT_CONSTRUCT_KEEP_NULL(${e}.*)`}sqlMaybeQuoteIdentifier(e){return`"${e}"`}sqlCreateTableAsSelect(e,n){return`
|
|
155
155
|
CREATE TEMP TABLE IF NOT EXISTS \`${e}\`
|
|
156
156
|
AS (
|
|
@@ -168,7 +168,7 @@ ${(0,kde.indent)(n)}
|
|
|
168
168
|
EXTRACT('epoch_${i}', ${n.value}) - EXTRACT('epoch_${i}', ${e.value}),
|
|
169
169
|
'1970-01-01 00:00:00'::TIMESTAMP_NTZ
|
|
170
170
|
)
|
|
171
|
-
)`}sqlRegexpMatch(e,n){return(0,or.mkExpr)`(REGEXP_INSTR(${e}, ${n}) != 0)`}sqlSampleTable(e,n){if(n!==void 0){if((0,or.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,or.isSamplingRows)(n))return`(SELECT * FROM ${e} TABLESAMPLE (${n.rows} ROWS))`;if((0,or.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE (${n.percent}))`}return e}sqlOrderBy(e){return`ORDER BY ${e.map(n=>`${n} NULLS LAST`).join(",")}`}sqlLiteralString(e){return"'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"}getGlobalFunctionDef(e){return pM.SNOWFLAKE_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"integer":"double":e.type}sqlTypeToMalloyType(e){var n,r;const i=(r=(n=e.match(/^([\w\s]+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return Mde[i.trim().toLowerCase()]}castToString(e){return`TO_VARCHAR(${e})`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),[\]0-9]*$/)!==null}}JA.SnowflakeDialect=jde,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(JA,t)}(ND);var FD={},aS={},gM={},mM={},lS={};Object.defineProperty(lS,"__esModule",{value:!0}),lS.fnTrunc=void 0;const Su=ge;function Ude(){const t=(0,Su.makeParam)("value",(0,Su.anyExprType)("number")),e=(0,Su.makeParam)("precision",(0,Su.anyExprType)("number"));return[(0,Su.overload)((0,Su.minScalar)("number"),[t.param],(0,Su.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Su.overload)((0,Su.minScalar)("number"),[t.param,e.param],(0,Su.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) ELSE FLOOR(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) END`)]}lS.fnTrunc=Ude;var cS={};Object.defineProperty(cS,"__esModule",{value:!0}),cS.fnLog=void 0;const yf=ge;function qde(){const t=(0,yf.makeParam)("value",(0,yf.anyExprType)("number")),e=(0,yf.makeParam)("base",(0,yf.anyExprType)("number"));return[(0,yf.overload)((0,yf.minScalar)("number"),[t.param,e.param],(0,yf.sql)`LOG(${e.arg},${t.arg})`)]}cS.fnLog=qde;var fS={};Object.defineProperty(fS,"__esModule",{value:!0}),fS.fnIfnull=void 0;const Ha=ge,Hde=["string","number","timestamp","date","json"];function zde(){return Hde.map(t=>(0,Ha.overload)((0,Ha.minScalar)(t),[(0,Ha.param)("value",(0,Ha.anyExprType)(t)),(0,Ha.param)("default",(0,Ha.anyExprType)(t))],(0,Ha.sql)`COALESCE(${(0,Ha.arg)("value")}, ${(0,Ha.arg)("default")})`))}fS.fnIfnull=zde;var xS={};Object.defineProperty(xS,"__esModule",{value:!0}),xS.fnIsInf=void 0;const rh=ge;function Qde(){return[(0,rh.overload)((0,rh.minScalar)("boolean"),[(0,rh.param)("value",(0,rh.anyExprType)("number"))],(0,rh.sql)`COALESCE(IS_INFINITE(${(0,rh.arg)("value")}), false)`)]}xS.fnIsInf=Qde;var dS={};Object.defineProperty(dS,"__esModule",{value:!0}),dS.fnConcat=void 0;const gs=ge;function Gde(){return[(0,gs.overload)((0,gs.minScalar)("string"),[],[{type:"dialect",function:"stringLiteral",literal:""}]),(0,gs.overload)((0,gs.minScalar)("string"),[(0,gs.params)("values",(0,gs.anyExprType)("string"),(0,gs.anyExprType)("number"),(0,gs.anyExprType)("date"),(0,gs.anyExprType)("timestamp"),(0,gs.anyExprType)("boolean"))],(0,gs.sql)`CONCAT(${(0,gs.spread)((0,gs.arg)("values"),"CAST(","AS VARCHAR)")})`)]}dS.fnConcat=Gde;var hS={};Object.defineProperty(hS,"__esModule",{value:!0}),hS.fnByteLength=void 0;const ih=ge;function Wde(){return[(0,ih.overload)((0,ih.minScalar)("number"),[(0,ih.param)("value",(0,ih.anyExprType)("string"))],(0,ih.sql)`(LENGTH(CAST(${(0,ih.arg)("value")} AS VARBINARY)))`)]}hS.fnByteLength=Wde;var sh={};Object.defineProperty(sh,"__esModule",{value:!0}),sh.fnStringAggDistinct=sh.fnStringAgg=void 0;const vn=ge;function Vde(){const t=(0,vn.makeParam)("value",(0,vn.maxScalar)("string")),e=(0,vn.makeParam)("separator",(0,vn.literal)((0,vn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:"",suffix:""};return[(0,vn.overload)((0,vn.minAggregate)("string"),[t.param],(0,vn.sql)`ARRAY_JOIN(ARRAY_AGG(${t.arg} ${n}), ',')`,{supportsOrderBy:!0,supportsLimit:!1}),(0,vn.overload)((0,vn.minAggregate)("string"),[t.param,e.param],(0,vn.sql)`ARRAY_JOIN(ARRAY_AGG(${t.arg} ${n}), ${e.arg})`,{supportsOrderBy:!0,supportsLimit:!1})]}sh.fnStringAgg=Vde;function Yde(){const t=(0,vn.makeParam)("value",(0,vn.maxScalar)("string")),e=(0,vn.makeParam)("separator",(0,vn.literal)((0,vn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:"",suffix:""};return[(0,vn.overload)((0,vn.minAggregate)("string"),[t.param],(0,vn.sql)`ARRAY_JOIN(ARRAY_AGG(DISTINCT ${t.arg} ${n}), ',')`,{supportsOrderBy:!0,supportsLimit:!1}),(0,vn.overload)((0,vn.minAggregate)("string"),[t.param,e.param],(0,vn.sql)`ARRAY_JOIN(ARRAY_AGG(DISTINCT ${t.arg} ${n}), ${e.arg})`,{supportsOrderBy:!0,supportsLimit:!1})]}sh.fnStringAggDistinct=Yde;var l0={};Object.defineProperty(l0,"__esModule",{value:!0}),l0.fnUnicode=l0.fnAscii=l0.fnChr=void 0;const Gn=ge;function Xde(){return[(0,Gn.overload)((0,Gn.minScalar)("string"),[(0,Gn.param)("value",(0,Gn.anyExprType)("number"))],(0,Gn.sql)`CASE WHEN ${(0,Gn.arg)("value")} = 0 THEN '' ELSE CHR(${(0,Gn.arg)("value")}) END`)]}l0.fnChr=Xde;function Kde(){return[(0,Gn.overload)((0,Gn.minScalar)("number"),[(0,Gn.param)("value",(0,Gn.anyExprType)("string"))],(0,Gn.sql)`CODEPOINT(NULLIF(CAST(${(0,Gn.arg)("value")} as VARCHAR(1)),''))`)]}l0.fnAscii=Kde;function Jde(){return[(0,Gn.overload)((0,Gn.minScalar)("number"),[(0,Gn.param)("value",(0,Gn.anyExprType)("string"))],(0,Gn.sql)`CODEPOINT(NULLIF(CAST(${(0,Gn.arg)("value")} as VARCHAR(1)),''))`)]}l0.fnUnicode=Jde;var oh={};Object.defineProperty(oh,"__esModule",{value:!0}),oh.fnEndsWith=oh.fnStartsWith=void 0;const Vi=ge;function Zde(){const t=(0,Vi.makeParam)("value",(0,Vi.anyExprType)("string")),e=(0,Vi.makeParam)("prefix",(0,Vi.anyExprType)("string"));return[(0,Vi.overload)((0,Vi.minScalar)("boolean"),[t.param,e.param],(0,Vi.sql)`COALESCE(STARTS_WITH(${t.arg}, ${e.arg}), false)`)]}oh.fnStartsWith=Zde;function ehe(){const t=(0,Vi.makeParam)("value",(0,Vi.anyExprType)("string")),e=(0,Vi.makeParam)("suffix",(0,Vi.anyExprType)("string"));return[(0,Vi.overload)((0,Vi.minScalar)("boolean"),[t.param,e.param],(0,Vi.sql)`COALESCE(STARTS_WITH(REVERSE(CAST(${t.arg} AS VARCHAR)), REVERSE(CAST(${e.arg} AS VARCHAR))), false)`)]}oh.fnEndsWith=ehe;var pS={};Object.defineProperty(pS,"__esModule",{value:!0}),pS.fnDiv=void 0;const za=ge;function the(){return[(0,za.overload)((0,za.minScalar)("number"),[(0,za.param)("dividend",(0,za.anyExprType)("number")),(0,za.param)("divisor",(0,za.anyExprType)("number"))],(0,za.sql)`FLOOR(${(0,za.arg)("dividend")} / ${(0,za.arg)("divisor")})`)]}pS.fnDiv=the;var gS={};Object.defineProperty(gS,"__esModule",{value:!0}),gS.fnRepeat=void 0;const Ef=ge;function nhe(){const t=(0,Ef.makeParam)("value",(0,Ef.anyExprType)("string")),e=(0,Ef.makeParam)("count",(0,Ef.anyExprType)("number"));return[(0,Ef.overload)((0,Ef.minScalar)("string"),[t.param,e.param],(0,Ef.sql)`ARRAY_JOIN(REPEAT(${t.arg}, CASE WHEN ${t.arg} IS NOT NULL THEN ${e.arg} END),'')`)]}gS.fnRepeat=nhe;var mS={};Object.defineProperty(mS,"__esModule",{value:!0}),mS.fnReverse=void 0;const rg=ge;function rhe(){const t=(0,rg.makeParam)("value",(0,rg.anyExprType)("string"));return[(0,rg.overload)((0,rg.minScalar)("string"),[t.param],(0,rg.sql)`REVERSE(CAST(${t.arg} AS VARCHAR))`)]}mS.fnReverse=rhe,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.TRINO_FUNCTIONS=void 0;const e=Jc,n=lS,r=cS,i=fS,s=xS,o=dS,u=hS,a=sh,l=l0,c=oh,f=pS,x=gS,h=mS;t.TRINO_FUNCTIONS=e.FUNCTIONS.clone(),t.TRINO_FUNCTIONS.add("trunc",n.fnTrunc),t.TRINO_FUNCTIONS.add("log",r.fnLog),t.TRINO_FUNCTIONS.add("ifnull",i.fnIfnull),t.TRINO_FUNCTIONS.add("is_inf",s.fnIsInf),t.TRINO_FUNCTIONS.add("byte_length",u.fnByteLength),t.TRINO_FUNCTIONS.add("concat",o.fnConcat),t.TRINO_FUNCTIONS.add("string_agg",a.fnStringAgg),t.TRINO_FUNCTIONS.add("string_agg_distinct",a.fnStringAggDistinct),t.TRINO_FUNCTIONS.add("div",f.fnDiv),t.TRINO_FUNCTIONS.add("starts_with",c.fnStartsWith),t.TRINO_FUNCTIONS.add("ends_with",c.fnEndsWith),t.TRINO_FUNCTIONS.add("chr",l.fnChr),t.TRINO_FUNCTIONS.add("ascii",l.fnAscii),t.TRINO_FUNCTIONS.add("unicode",l.fnUnicode),t.TRINO_FUNCTIONS.add("repeat",x.fnRepeat),t.TRINO_FUNCTIONS.add("reverse",h.fnReverse),t.TRINO_FUNCTIONS.seal()}(mM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.TRINO_FUNCTIONS=void 0;var e=mM;Object.defineProperty(t,"TRINO_FUNCTIONS",{enumerable:!0,get:function(){return e.TRINO_FUNCTIONS}})}(gM),Object.defineProperty(aS,"__esModule",{value:!0}),aS.TrinoDialect=void 0;const yM=Wt,kt=ne,ihe=gM,EM=Kc;function she(t){return["microsecond","millisecond","second","minute","hour","day"].includes(t)}const ohe={day_of_week:"dow",day_of_year:"doy"};function yS(t){const e=t.queryTimezone;if(e&&e!=="UTC")return e}const uhe={string:"VARCHAR",number:"DOUBLE"};class ahe extends EM.Dialect{constructor(){super(...arguments),this.name="trino",this.defaultNumberType="DOUBLE",this.defaultDecimalType="DECIMAL",this.udfPrefix="__udf",this.hasFinalStage=!1,this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!1,this.unnestWithNumbers=!1,this.defaultSampling={enable:!1},this.supportUnnestArrayAgg=!1,this.supportsAggDistinct=!1,this.supportsCTEinCoorelatedSubQueries=!1,this.dontUnionIndex=!0,this.supportsQualify=!0,this.supportsSafeCast=!0,this.supportsNesting=!0,this.cantPartitionWindowFunctionsOnExpressions=!1,this.orderByClause="output_name",this.nullMatchesFunctionSignature=!1,this.supportsSelectReplace=!1,this.supportsComplexFilteredSources=!1,this.supportsTempTables=!1,this.keywords=`
|
|
171
|
+
)`}sqlRegexpMatch(e,n){return(0,or.mkExpr)`(REGEXP_INSTR(${e}, ${n}) != 0)`}sqlSampleTable(e,n){if(n!==void 0){if((0,or.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,or.isSamplingRows)(n))return`(SELECT * FROM ${e} TABLESAMPLE (${n.rows} ROWS))`;if((0,or.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE (${n.percent}))`}return e}sqlOrderBy(e){return`ORDER BY ${e.map(n=>`${n} NULLS LAST`).join(",")}`}sqlLiteralString(e){return"'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"}getGlobalFunctionDef(e){return pM.SNOWFLAKE_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"integer":"double":e.type}sqlTypeToMalloyType(e){var n,r;const i=(r=(n=e.match(/^([\w\s]+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return Mde[i.trim().toLowerCase()]}castToString(e){return`TO_VARCHAR(${e})`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),[\]0-9]*$/)!==null}}JA.SnowflakeDialect=jde,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(JA,t)}(ND);var FD={},aS={},gM={},mM={},lS={};Object.defineProperty(lS,"__esModule",{value:!0}),lS.fnTrunc=void 0;const Su=ge;function Ude(){const t=(0,Su.makeParam)("value",(0,Su.anyExprType)("number")),e=(0,Su.makeParam)("precision",(0,Su.anyExprType)("number"));return[(0,Su.overload)((0,Su.minScalar)("number"),[t.param],(0,Su.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Su.overload)((0,Su.minScalar)("number"),[t.param,e.param],(0,Su.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) ELSE FLOOR(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) END`)]}lS.fnTrunc=Ude;var cS={};Object.defineProperty(cS,"__esModule",{value:!0}),cS.fnLog=void 0;const yf=ge;function qde(){const t=(0,yf.makeParam)("value",(0,yf.anyExprType)("number")),e=(0,yf.makeParam)("base",(0,yf.anyExprType)("number"));return[(0,yf.overload)((0,yf.minScalar)("number"),[t.param,e.param],(0,yf.sql)`LOG(${e.arg},${t.arg})`)]}cS.fnLog=qde;var fS={};Object.defineProperty(fS,"__esModule",{value:!0}),fS.fnIfnull=void 0;const Ha=ge,Hde=["string","number","timestamp","date","json"];function zde(){return Hde.map(t=>(0,Ha.overload)((0,Ha.minScalar)(t),[(0,Ha.param)("value",(0,Ha.anyExprType)(t)),(0,Ha.param)("default",(0,Ha.anyExprType)(t))],(0,Ha.sql)`COALESCE(${(0,Ha.arg)("value")}, ${(0,Ha.arg)("default")})`))}fS.fnIfnull=zde;var xS={};Object.defineProperty(xS,"__esModule",{value:!0}),xS.fnIsInf=void 0;const rh=ge;function Qde(){return[(0,rh.overload)((0,rh.minScalar)("boolean"),[(0,rh.param)("value",(0,rh.anyExprType)("number"))],(0,rh.sql)`COALESCE(IS_INFINITE(${(0,rh.arg)("value")}), false)`)]}xS.fnIsInf=Qde;var dS={};Object.defineProperty(dS,"__esModule",{value:!0}),dS.fnConcat=void 0;const gs=ge;function Gde(){return[(0,gs.overload)((0,gs.minScalar)("string"),[],[{type:"dialect",function:"stringLiteral",literal:""}]),(0,gs.overload)((0,gs.minScalar)("string"),[(0,gs.params)("values",(0,gs.anyExprType)("string"),(0,gs.anyExprType)("number"),(0,gs.anyExprType)("date"),(0,gs.anyExprType)("timestamp"),(0,gs.anyExprType)("boolean"))],(0,gs.sql)`CONCAT(${(0,gs.spread)((0,gs.arg)("values"),"CAST(","AS VARCHAR)")})`)]}dS.fnConcat=Gde;var hS={};Object.defineProperty(hS,"__esModule",{value:!0}),hS.fnByteLength=void 0;const ih=ge;function Wde(){return[(0,ih.overload)((0,ih.minScalar)("number"),[(0,ih.param)("value",(0,ih.anyExprType)("string"))],(0,ih.sql)`(LENGTH(CAST(${(0,ih.arg)("value")} AS VARBINARY)))`)]}hS.fnByteLength=Wde;var sh={};Object.defineProperty(sh,"__esModule",{value:!0}),sh.fnStringAggDistinct=sh.fnStringAgg=void 0;const vn=ge;function Vde(){const t=(0,vn.makeParam)("value",(0,vn.maxScalar)("string")),e=(0,vn.makeParam)("separator",(0,vn.literal)((0,vn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:"",suffix:""};return[(0,vn.overload)((0,vn.minAggregate)("string"),[t.param],(0,vn.sql)`ARRAY_JOIN(ARRAY_AGG(${t.arg} ${n}), ',')`,{supportsOrderBy:!0,supportsLimit:!1}),(0,vn.overload)((0,vn.minAggregate)("string"),[t.param,e.param],(0,vn.sql)`ARRAY_JOIN(ARRAY_AGG(${t.arg} ${n}), ${e.arg})`,{supportsOrderBy:!0,supportsLimit:!1})]}sh.fnStringAgg=Vde;function Yde(){const t=(0,vn.makeParam)("value",(0,vn.maxScalar)("string")),e=(0,vn.makeParam)("separator",(0,vn.literal)((0,vn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:"",suffix:""};return[(0,vn.overload)((0,vn.minAggregate)("string"),[t.param],(0,vn.sql)`ARRAY_JOIN(ARRAY_AGG(DISTINCT ${t.arg} ${n}), ',')`,{supportsOrderBy:!0,supportsLimit:!1}),(0,vn.overload)((0,vn.minAggregate)("string"),[t.param,e.param],(0,vn.sql)`ARRAY_JOIN(ARRAY_AGG(DISTINCT ${t.arg} ${n}), ${e.arg})`,{supportsOrderBy:!0,supportsLimit:!1})]}sh.fnStringAggDistinct=Yde;var l0={};Object.defineProperty(l0,"__esModule",{value:!0}),l0.fnUnicode=l0.fnAscii=l0.fnChr=void 0;const Gn=ge;function Xde(){return[(0,Gn.overload)((0,Gn.minScalar)("string"),[(0,Gn.param)("value",(0,Gn.anyExprType)("number"))],(0,Gn.sql)`CASE WHEN ${(0,Gn.arg)("value")} = 0 THEN '' ELSE CHR(${(0,Gn.arg)("value")}) END`)]}l0.fnChr=Xde;function Kde(){return[(0,Gn.overload)((0,Gn.minScalar)("number"),[(0,Gn.param)("value",(0,Gn.anyExprType)("string"))],(0,Gn.sql)`CODEPOINT(NULLIF(CAST(${(0,Gn.arg)("value")} as VARCHAR(1)),''))`)]}l0.fnAscii=Kde;function Jde(){return[(0,Gn.overload)((0,Gn.minScalar)("number"),[(0,Gn.param)("value",(0,Gn.anyExprType)("string"))],(0,Gn.sql)`CODEPOINT(NULLIF(CAST(${(0,Gn.arg)("value")} as VARCHAR(1)),''))`)]}l0.fnUnicode=Jde;var oh={};Object.defineProperty(oh,"__esModule",{value:!0}),oh.fnEndsWith=oh.fnStartsWith=void 0;const Vi=ge;function Zde(){const t=(0,Vi.makeParam)("value",(0,Vi.anyExprType)("string")),e=(0,Vi.makeParam)("prefix",(0,Vi.anyExprType)("string"));return[(0,Vi.overload)((0,Vi.minScalar)("boolean"),[t.param,e.param],(0,Vi.sql)`COALESCE(STARTS_WITH(${t.arg}, ${e.arg}), false)`)]}oh.fnStartsWith=Zde;function ehe(){const t=(0,Vi.makeParam)("value",(0,Vi.anyExprType)("string")),e=(0,Vi.makeParam)("suffix",(0,Vi.anyExprType)("string"));return[(0,Vi.overload)((0,Vi.minScalar)("boolean"),[t.param,e.param],(0,Vi.sql)`COALESCE(STARTS_WITH(REVERSE(CAST(${t.arg} AS VARCHAR)), REVERSE(CAST(${e.arg} AS VARCHAR))), false)`)]}oh.fnEndsWith=ehe;var pS={};Object.defineProperty(pS,"__esModule",{value:!0}),pS.fnDiv=void 0;const za=ge;function the(){return[(0,za.overload)((0,za.minScalar)("number"),[(0,za.param)("dividend",(0,za.anyExprType)("number")),(0,za.param)("divisor",(0,za.anyExprType)("number"))],(0,za.sql)`FLOOR(${(0,za.arg)("dividend")} / ${(0,za.arg)("divisor")})`)]}pS.fnDiv=the;var gS={};Object.defineProperty(gS,"__esModule",{value:!0}),gS.fnRepeat=void 0;const Ef=ge;function nhe(){const t=(0,Ef.makeParam)("value",(0,Ef.anyExprType)("string")),e=(0,Ef.makeParam)("count",(0,Ef.anyExprType)("number"));return[(0,Ef.overload)((0,Ef.minScalar)("string"),[t.param,e.param],(0,Ef.sql)`ARRAY_JOIN(REPEAT(${t.arg}, CASE WHEN ${t.arg} IS NOT NULL THEN ${e.arg} END),'')`)]}gS.fnRepeat=nhe;var mS={};Object.defineProperty(mS,"__esModule",{value:!0}),mS.fnReverse=void 0;const rg=ge;function rhe(){const t=(0,rg.makeParam)("value",(0,rg.anyExprType)("string"));return[(0,rg.overload)((0,rg.minScalar)("string"),[t.param],(0,rg.sql)`REVERSE(CAST(${t.arg} AS VARCHAR))`)]}mS.fnReverse=rhe,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.TRINO_FUNCTIONS=void 0;const e=Jc,n=lS,r=cS,i=fS,s=xS,o=dS,u=hS,a=sh,l=l0,c=oh,f=pS,x=gS,h=mS;t.TRINO_FUNCTIONS=e.FUNCTIONS.clone(),t.TRINO_FUNCTIONS.add("trunc",n.fnTrunc),t.TRINO_FUNCTIONS.add("log",r.fnLog),t.TRINO_FUNCTIONS.add("ifnull",i.fnIfnull),t.TRINO_FUNCTIONS.add("is_inf",s.fnIsInf),t.TRINO_FUNCTIONS.add("byte_length",u.fnByteLength),t.TRINO_FUNCTIONS.add("concat",o.fnConcat),t.TRINO_FUNCTIONS.add("string_agg",a.fnStringAgg),t.TRINO_FUNCTIONS.add("string_agg_distinct",a.fnStringAggDistinct),t.TRINO_FUNCTIONS.add("div",f.fnDiv),t.TRINO_FUNCTIONS.add("starts_with",c.fnStartsWith),t.TRINO_FUNCTIONS.add("ends_with",c.fnEndsWith),t.TRINO_FUNCTIONS.add("chr",l.fnChr),t.TRINO_FUNCTIONS.add("ascii",l.fnAscii),t.TRINO_FUNCTIONS.add("unicode",l.fnUnicode),t.TRINO_FUNCTIONS.add("repeat",x.fnRepeat),t.TRINO_FUNCTIONS.add("reverse",h.fnReverse),t.TRINO_FUNCTIONS.seal()}(mM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.TRINO_FUNCTIONS=void 0;var e=mM;Object.defineProperty(t,"TRINO_FUNCTIONS",{enumerable:!0,get:function(){return e.TRINO_FUNCTIONS}})}(gM),Object.defineProperty(aS,"__esModule",{value:!0}),aS.TrinoDialect=void 0;const yM=Wt,qt=ne,ihe=gM,EM=Kc;function she(t){return["microsecond","millisecond","second","minute","hour","day"].includes(t)}const ohe={day_of_week:"dow",day_of_year:"doy"};function yS(t){const e=t.queryTimezone;if(e&&e!=="UTC")return e}const uhe={string:"VARCHAR",number:"DOUBLE"};class ahe extends EM.Dialect{constructor(){super(...arguments),this.name="trino",this.defaultNumberType="DOUBLE",this.defaultDecimalType="DECIMAL",this.udfPrefix="__udf",this.hasFinalStage=!1,this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!1,this.unnestWithNumbers=!1,this.defaultSampling={enable:!1},this.supportUnnestArrayAgg=!1,this.supportsAggDistinct=!1,this.supportsCTEinCoorelatedSubQueries=!1,this.dontUnionIndex=!0,this.supportsQualify=!0,this.supportsSafeCast=!0,this.supportsNesting=!0,this.cantPartitionWindowFunctionsOnExpressions=!1,this.orderByClause="output_name",this.nullMatchesFunctionSignature=!1,this.supportsSelectReplace=!1,this.supportsComplexFilteredSources=!1,this.supportsTempTables=!1,this.keywords=`
|
|
172
172
|
ALL
|
|
173
173
|
AND
|
|
174
174
|
ANY
|
|
@@ -263,7 +263,7 @@ ${(0,kde.indent)(n)}
|
|
|
263
263
|
WHERE
|
|
264
264
|
WINDOW
|
|
265
265
|
WITH
|
|
266
|
-
WITHIN`.split(/\s/)}quoteTablePath(e){return e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT row_number() OVER() -1 group_set FROM UNNEST(SEQUENCE(0,${e})))`}dialectExpr(e,n){switch(n.function){case"div":return(0,
|
|
266
|
+
WITHIN`.split(/\s/)}quoteTablePath(e){return e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT row_number() OVER() -1 group_set FROM UNNEST(SEQUENCE(0,${e})))`}dialectExpr(e,n){switch(n.function){case"div":return(0,qt.mkExpr)`CAST(${n.numerator} AS DOUBLE)/${n.denominator}`}return super.dialectExpr(e,n)}sqlAnyValue(e,n){return`ANY_VALUE(CASE WHEN group_set=${e} THEN ${n} END)`}buildTypeExpression(e){const n=[];for(const r of e)if((0,EM.isDialectFieldStruct)(r)){let i=`ROW(${this.buildTypeExpression(r.nestedStruct)})`;r.isArray&&(i=`array(${i})`),n.push(`${r.sqlOutputName} ${i}`)}else n.push(`${r.sqlOutputName} ${uhe[r.type]||r.type}`);return n.join(`,
|
|
267
267
|
`)}sqlAggregateTurtle(e,n,r,i){const s=n.map(a=>a.sqlExpression).join(`,
|
|
268
268
|
`),o=this.buildTypeExpression(n);let u=`ARRAY_AGG(CAST(ROW(${s}) AS ROW(${o})) ${r}) FILTER (WHERE group_set=${e})`;return i!==void 0&&(u=`SLICE(${u}, 1, ${i})`),u}sqlAnyValueTurtle(e,n){const r=n.map(i=>`
|
|
269
269
|
'${i.sqlOutputName}' VALUE ${i.sqlExpression}`).join(", ");return`ANY_VALUE(CASE WHEN group_set=${e} THEN JSON_OBJECT(${r}))`}sqlAnyValueLastTurtle(e,n,r){return`ANY_VALUE(CASE WHEN group_set=${n} THEN ${e} END) as ${r}`}sqlCoaleseMeasuresInline(e,n){const r=n.map(o=>o.sqlExpression).join(", "),i=n.map(o=>"NULL").join(", "),s=this.buildTypeExpression(n);return`COALESCE(ANY_VALUE(CASE WHEN group_set=${e} THEN CAST(ROW(${r}) AS ROW(${s})) END), CAST(ROW(${i}) AS ROW(${s})))`}sqlUnnestAlias(e,n,r,i,s,o){const u=r.map(a=>this.sqlMaybeQuoteIdentifier(a.sqlOutputName));return s?i?`LEFT JOIN UNNEST(zip(${e}, SEQUENCE(1,cardinality(${e})))) as words_0(value,__row_id_from_${n}) ON TRUE`:`LEFT JOIN UNNEST(transform(${e}, x -> ROW(x) )) as ${n}(value) ON TRUE`:i?`LEFT JOIN UNNEST(zip_with(${e}, SEQUENCE(1,cardinality(${e})), (r,__row_id) -> (r, __row_id))) as ${n}_outer(${n},__row_id_from_${n}) ON TRUE`:`LEFT JOIN UNNEST(${e}) as ${n}(${u.join(", ")}) ON TRUE`}sqlSumDistinctHashedKey(e){e=`CAST(${e} AS VARCHAR)`;const n=`cast(from_base(substr(to_hex(md5(to_utf8(${e}))), 1, 15),16) as DECIMAL) * DECIMAL '4294967296' `,r=`cast(from_base(substr(to_hex(md5(to_utf8(${e}))), 16, 8),16) as DECIMAL) `;return`(${n} + ${r}) * 0.000000001`}sqlGenerateUUID(){return"UUID()"}sqlFieldReference(e,n,r,i,s){return n==="__row_id"?`__row_id_from_${e}`:`${e}.${this.sqlMaybeQuoteIdentifier(n)}`}sqlUnnestPipelineHead(e,n){let r=n;return e&&(r=`ARRAY[${r}]`),`UNNEST(${r})`}sqlCreateFunction(e,n){return`CREATE TEMPORARY FUNCTION ${e}(__param ANY TYPE) AS ((
|
|
@@ -277,7 +277,7 @@ AS (
|
|
|
277
277
|
${(0,yM.indent)(n)}
|
|
278
278
|
);
|
|
279
279
|
`}sqlCreateFunctionCombineLastStage(e,n){const r=n.map(s=>s.sqlExpression).join(", "),i=this.buildTypeExpression(n);return`SELECT ARRAY_AGG(CAST(ROW(${r}) as ROW(${i}))) FROM ${e}
|
|
280
|
-
`}sqlSelectAliasAsStruct(e,n){const r=n.map(s=>s.sqlExpression).join(", "),i=this.buildTypeExpression(n);return`CAST(ROW(${r}) as ROW(${i})`}sqlMaybeQuoteIdentifier(e){return'"'+e+'"'}sqlNow(){return(0,
|
|
280
|
+
`}sqlSelectAliasAsStruct(e,n){const r=n.map(s=>s.sqlExpression).join(", "),i=this.buildTypeExpression(n);return`CAST(ROW(${r}) as ROW(${i})`}sqlMaybeQuoteIdentifier(e){return'"'+e+'"'}sqlNow(){return(0,qt.mkExpr)`LOCALTIMESTAMP`}sqlTrunc(e,n,r){const i=r==="week",s=i?(0,qt.mkExpr)`DATE_ADD('day', 1, ${n.value})`:n.value;if(n.valueType==="timestamp"){const u=yS(e);if(u){const a=(0,qt.mkExpr)`AT_TIMEZONE(${s},'${u}')`,l=(0,qt.mkExpr)`DATE_TRUNC('${r}', ${a})`;return(0,qt.mkExpr)`AT_TIMEZONE(${l},'${u}')`}}let o=(0,qt.mkExpr)`DATE_TRUNC('${r}', ${s})`;return i&&(o=(0,qt.mkExpr)`DATE_ADD('day',-1, ${o})`),o}sqlExtract(e,n,r){const i=ohe[r]||r;let s=n.value;if(n.valueType==="timestamp"){const u=yS(e);u&&(s=(0,qt.mkExpr)`at_timezone(${s},'${u}')`)}const o=(0,qt.mkExpr)`EXTRACT(${i} FROM ${s})`;return r==="day_of_week"?(0,qt.mkExpr)`mod(${o}+1,7)`:o}sqlAlterTime(e,n,r,i){return i==="quarter"&&(i="month",r=(0,qt.mkExpr)`${r}*3`),i==="week"&&(i="day",r=(0,qt.mkExpr)`${r}*7`),e==="-"&&(r=(0,qt.mkExpr)`(${r})*-1`),(0,qt.mkExpr)`DATE_ADD('${i}', ${r}, ${n.value})`}sqlCast(e,n){const r=`${n.srcType}=>${n.dstType}`,i=yS(e);if(r==="timestamp=>date"&&i){const s=(0,qt.mkExpr)`CAST(${n.expr} as TIMESTAMP)`;return(0,qt.mkExpr)`CAST((${s}) AT TIME ZONE '${i}' AS DATE)`}else if(r==="date=>timestamp"&&i)return(0,qt.mkExpr)`CAST(CONCAT(CAST(CAST(${n.expr} AS TIMESTAMP) AS VARCHAR), ' ${i}') AS TIMESTAMP WITH TIME ZONE)`;if(n.srcType!==n.dstType){const s=typeof n.dstType=="string"?this.malloyTypeToSQLType({type:n.dstType}):n.dstType.raw,o=n.safe?"TRY_CAST":"CAST";return(0,qt.mkExpr)`${o}(${n.expr} AS ${s})`}return n.expr}sqlRegexpMatch(e,n){return(0,qt.mkExpr)`REGEXP_LIKE(${e}, ${n})`}sqlLiteralTime(e,n,r,i){if(r==="date")return`DATE '${n}'`;const s=i||yS(e);return s?`TIMESTAMP '${n} ${s}'`:`TIMESTAMP '${n}'`}sqlMeasureTime(e,n,r){const i={microsecond:{use:"microsecond",ratio:1},millisecond:{use:"microsecond",ratio:1e3},second:{use:"millisecond",ratio:1e3},minute:{use:"second",ratio:60},hour:{use:"minute",ratio:60},day:{use:"hour",ratio:24},week:{use:"day",ratio:7}};let s=e.value,o=n.value;if(i[r]){const{use:u,ratio:a}=i[r];if(!she(u))throw new Error(`Measure in '${u} not implemented`);if(e.valueType!==n.valueType)throw new Error("Can't measure difference between different types");e.valueType==="date"&&(s=(0,qt.mkExpr)`CAST(${s} AS TIMESTAMP)`,o=(0,qt.mkExpr)`CAST(${o} AS TIMESTAMP)`);let l=(0,qt.mkExpr)`DATE_DIFF('${u}',${s},${o})`;return a!==1&&(l=(0,qt.mkExpr)`FLOOR(CAST(${l} AS DOUBLE)/${a.toString()}.0)`),l}throw new Error(`Measure '${r} not implemented`)}sqlSampleTable(e,n){if(n!==void 0){if((0,qt.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,qt.isSamplingRows)(n))throw new Error("Trino doesn't support sampling by rows only percent");if((0,qt.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${n.percent}))`}return e}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getGlobalFunctionDef(e){return ihe.TRINO_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"BIGINT":"DOUBLE":e.type==="string"?"VARCHAR":e.type}sqlTypeToMalloyType(e){}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}sqlMakeUnnestKey(e,n){return`CAST(${e} as VARCHAR) || 'x' || CAST(${n} as VARCHAR)`}sqlStringAggDistinct(e,n,r){return`
|
|
281
281
|
ARRAY_JOIN(TRANSFORM(ARRAY_AGG(DISTINCT ARRAY[CAST(${n} AS VARCHAR),CAST(${e} as VARCHAR)]), x -> x[1]),${r.length>0?r:"','"})`}validateTypeName(e){return e.match(/^[A-Za-z\s(),<>0-9]*$/)!==null}}aS.TrinoDialect=ahe,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(aS,t)}(FD);var vu={};Object.defineProperty(vu,"__esModule",{value:!0}),vu.getDialectFunction=vu.registerDialect=vu.getDialect=void 0;const lhe=RD,che=bD,fhe=ND,xhe=fD,dhe=FD,wD=new Map;function hhe(t){const e=wD.get(t);if(e===void 0)throw new Error(`Unknown Dialect ${t}`);return e}vu.getDialect=hhe;function uh(t){wD.set(t.name,t)}vu.registerDialect=uh,uh(new che.PostgresDialect),uh(new xhe.StandardSQLDialect),uh(new lhe.DuckDBDialect),uh(new fhe.SnowflakeDialect),uh(new dhe.TrinoDialect);function AM(t,e){return t.params.length===e.params.length&&t.params.every((n,r)=>{const i=e.params[r];return n.isVariadic===i.isVariadic&&n.name===i.name&&n.allowedTypes.length===i.allowedTypes.length&&n.allowedTypes.every(s=>i.allowedTypes.some(o=>s.dataType===o.dataType&&s.expressionType===o.expressionType))})}function phe(t,e){return AM(t,e)}function ghe(t,e){return t.returnType.dataType===e.returnType.dataType&&t.returnType.expressionType===e.returnType.expressionType}function mhe(t){const e={type:"function",name:t,overloads:[]};let n=!1;for(const r of wD.values()){const i=r.getGlobalFunctionDef(t);if(i){for(const s of i){let o=!1;for(const u of e.overloads)if(phe(s,u)){if(!AM(s,u))throw new Error("params are compatible but not equal");if(!ghe(s,u))throw new Error("params match but return types differ!");u.dialect[r.name]={e:s.e,supportsOrderBy:s.supportsOrderBy,defaultOrderByArgIndex:s.defaultOrderByArgIndex,supportsLimit:s.supportsLimit},o=!0}o||e.overloads.push({returnType:s.returnType,params:s.params,dialect:{[r.name]:{e:s.e,supportsOrderBy:s.supportsOrderBy,defaultOrderByArgIndex:s.defaultOrderByArgIndex,supportsLimit:s.supportsLimit}},needsWindowOrderBy:s.needsWindowOrderBy,between:s.between,isSymmetric:s.isSymmetric})}n=!0}}return n?e:void 0}vu.getDialectFunction=mhe,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.FUNCTIONS=t.getDialectFunction=t.registerDialect=t.getDialect=t.TrinoDialect=t.SnowflakeDialect=t.DuckDBDialect=t.PostgresDialect=t.StandardSQLDialect=t.qtz=t.Dialect=t.sql=t.literal=t.params=t.param=t.sqlFragment=t.spread=t.maxScalar=t.minAggregate=t.minScalar=t.overload=t.makeParam=t.anyExprType=t.arg=void 0;var e=ge;Object.defineProperty(t,"arg",{enumerable:!0,get:function(){return e.arg}}),Object.defineProperty(t,"anyExprType",{enumerable:!0,get:function(){return e.anyExprType}}),Object.defineProperty(t,"makeParam",{enumerable:!0,get:function(){return e.makeParam}}),Object.defineProperty(t,"overload",{enumerable:!0,get:function(){return e.overload}}),Object.defineProperty(t,"minScalar",{enumerable:!0,get:function(){return e.minScalar}}),Object.defineProperty(t,"minAggregate",{enumerable:!0,get:function(){return e.minAggregate}}),Object.defineProperty(t,"maxScalar",{enumerable:!0,get:function(){return e.maxScalar}}),Object.defineProperty(t,"spread",{enumerable:!0,get:function(){return e.spread}}),Object.defineProperty(t,"sqlFragment",{enumerable:!0,get:function(){return e.sqlFragment}}),Object.defineProperty(t,"param",{enumerable:!0,get:function(){return e.param}}),Object.defineProperty(t,"params",{enumerable:!0,get:function(){return e.params}}),Object.defineProperty(t,"literal",{enumerable:!0,get:function(){return e.literal}}),Object.defineProperty(t,"sql",{enumerable:!0,get:function(){return e.sql}});var n=Kc;Object.defineProperty(t,"Dialect",{enumerable:!0,get:function(){return n.Dialect}}),Object.defineProperty(t,"qtz",{enumerable:!0,get:function(){return n.qtz}});var r=fD;Object.defineProperty(t,"StandardSQLDialect",{enumerable:!0,get:function(){return r.StandardSQLDialect}});var i=bD;Object.defineProperty(t,"PostgresDialect",{enumerable:!0,get:function(){return i.PostgresDialect}});var s=RD;Object.defineProperty(t,"DuckDBDialect",{enumerable:!0,get:function(){return s.DuckDBDialect}});var o=ND;Object.defineProperty(t,"SnowflakeDialect",{enumerable:!0,get:function(){return o.SnowflakeDialect}});var u=FD;Object.defineProperty(t,"TrinoDialect",{enumerable:!0,get:function(){return u.TrinoDialect}});var a=vu;Object.defineProperty(t,"getDialect",{enumerable:!0,get:function(){return a.getDialect}}),Object.defineProperty(t,"registerDialect",{enumerable:!0,get:function(){return a.registerDialect}}),Object.defineProperty(t,"getDialectFunction",{enumerable:!0,get:function(){return a.getDialectFunction}});var l=Jc;Object.defineProperty(t,"FUNCTIONS",{enumerable:!0,get:function(){return l.FUNCTIONS}})}(q3);var _u={},Af={};Object.defineProperty(Af,"__esModule",{value:!0}),Af.QueryModel=Af.Segment=void 0;const yhe=q3,Ehe=z2,Ue=ne,Cr=Wt;function SM(t){return t.map(e=>encodeURIComponent(e)).join("/")}function LD(t){return`'${t}'`}function Ahe(t){return t.replace(/[^a-zA-Z0-9_]/g,"_o_")}function ig(t){const e=[];for(const n of t.fields.filter(Ue.isPhysical))e.push({type:n.type,sqlExpression:(0,Ue.getIdentifier)(n),rawName:(0,Ue.getIdentifier)(n),sqlOutputName:(0,Ue.getIdentifier)(n)});return e}class She extends Set{add_use(e){if(e!==void 0)return this.add(e)}hasAsymetricFunctions(){return this.has("sum")||this.has("avg")||this.has("count")||this.has("generic_asymmetric_aggregate")}}class sg{constructor(e=!0,n){this.parent=n,this.withs=[],this.udfs=[],this.pdts=[],this.stagePrefix="__stage",this.useCTE=e}getName(e){return`${this.stagePrefix}${e}`}root(){return this.parent===void 0?this:this.parent.root()}addStage(e){return this.useCTE?(this.withs.push(e),this.getName(this.withs.length-1)):(this.withs[0]=e,(0,Cr.indent)(`
|
|
282
282
|
(${e})
|
|
283
283
|
`))}addUDF(e,n,r){let{sql:i,lastStageName:s}=e.combineStages(!0);if(s===void 0)throw new Error("Internal Error: no stage to combine");i+=n.sqlCreateFunctionCombineLastStage(s,ig(r));const o=`${n.udfPrefix}${this.root().udfs.length}`;return i=n.sqlCreateFunction(o,i),this.root().udfs.push(i),o}addPDT(e,n){const r=this.combineStages(!1).sql+this.withs[this.withs.length-1],i="scratch."+e+(0,Cr.generateHash)(r);return this.root().pdts.push(n.sqlCreateTableAsSelect(i,r)),i}combineStages(e){if(!this.useCTE)return{sql:this.withs[0],lastStageName:this.withs[0]};let n=this.getName(0),r="WITH ",i="";for(let s=0;s<this.withs.length-(e?0:1);s++){const o=this.withs[s];if(n=this.getName(s),o===void 0)throw new Error(`Expected sql WITH to be present for stage ${n}.`);i+=`${r}${n} AS (
|
|
@@ -1310,13 +1310,13 @@ ${m}`,p)}}else{if(h.urls)for(const m of h.urls)try{if(m.startsWith("internal://"
|
|
|
1310
1310
|
`)}function a(f){return f.map(l).join(`
|
|
1311
1311
|
`)}function l(f){return f.map(c).join(t)}function c(f){return f==null?"":f instanceof Date?zDe(f):e.test(f+="")?'"'+f.replace(/"/g,'""')+'"':f}return{parse:r,parseRows:i,format:o,formatBody:u,formatRows:a,formatRow:l,formatValue:c}}function GDe(t){return t}function WDe(t){if(t==null)return GDe;var e,n,r=t.scale[0],i=t.scale[1],s=t.translate[0],o=t.translate[1];return function(u,a){a||(e=n=0);var l=2,c=u.length,f=new Array(c);for(f[0]=(e+=u[0])*r+s,f[1]=(n+=u[1])*i+o;l<c;)f[l]=u[l],++l;return f}}function VDe(t,e){for(var n,r=t.length,i=r-e;i<--r;)n=t[i],t[i++]=t[r],t[r]=n}function YDe(t,e){return typeof e=="string"&&(e=t.objects[e]),e.type==="GeometryCollection"?{type:"FeatureCollection",features:e.geometries.map(function(n){return WW(t,n)})}:WW(t,e)}function WW(t,e){var n=e.id,r=e.bbox,i=e.properties==null?{}:e.properties,s=VW(t,e);return n==null&&r==null?{type:"Feature",properties:i,geometry:s}:r==null?{type:"Feature",id:n,properties:i,geometry:s}:{type:"Feature",id:n,bbox:r,properties:i,geometry:s}}function VW(t,e){var n=WDe(t.transform),r=t.arcs;function i(c,f){f.length&&f.pop();for(var x=r[c<0?~c:c],h=0,p=x.length;h<p;++h)f.push(n(x[h],h));c<0&&VDe(f,p)}function s(c){return n(c)}function o(c){for(var f=[],x=0,h=c.length;x<h;++x)i(c[x],f);return f.length<2&&f.push(f[0]),f}function u(c){for(var f=o(c);f.length<4;)f.push(f[0]);return f}function a(c){return c.map(u)}function l(c){var f=c.type,x;switch(f){case"GeometryCollection":return{type:f,geometries:c.geometries.map(l)};case"Point":x=s(c.coordinates);break;case"MultiPoint":x=c.coordinates.map(s);break;case"LineString":x=o(c.arcs);break;case"MultiLineString":x=c.arcs.map(o);break;case"Polygon":x=a(c.arcs);break;case"MultiPolygon":x=c.arcs.map(a);break;default:return null}return{type:f,coordinates:x}}return l(e)}function XDe(t,e){var n={},r={},i={},s=[],o=-1;e.forEach(function(l,c){var f=t.arcs[l<0?~l:l],x;f.length<3&&!f[1][0]&&!f[1][1]&&(x=e[++o],e[o]=l,e[c]=x)}),e.forEach(function(l){var c=u(l),f=c[0],x=c[1],h,p;if(h=i[f])if(delete i[h.end],h.push(l),h.end=x,p=r[x]){delete r[p.start];var m=p===h?h:h.concat(p);r[m.start=h.start]=i[m.end=p.end]=m}else r[h.start]=i[h.end]=h;else if(h=r[x])if(delete r[h.start],h.unshift(l),h.start=f,p=i[f]){delete i[p.end];var g=p===h?h:p.concat(h);r[g.start=p.start]=i[g.end=h.end]=g}else r[h.start]=i[h.end]=h;else h=[l],r[h.start=f]=i[h.end=x]=h});function u(l){var c=t.arcs[l<0?~l:l],f=c[0],x;return t.transform?(x=[0,0],c.forEach(function(h){x[0]+=h[0],x[1]+=h[1]})):x=c[c.length-1],l<0?[x,f]:[f,x]}function a(l,c){for(var f in l){var x=l[f];delete c[x.start],delete x.start,delete x.end,x.forEach(function(h){n[h<0?~h:h]=1}),s.push(x)}}return a(i,r),a(r,i),e.forEach(function(l){n[l<0?~l:l]||s.push([l])}),s}function KDe(t){return VW(t,JDe.apply(this,arguments))}function JDe(t,e,n){var r,i,s;if(arguments.length>1)r=ZDe(t,e,n);else for(i=0,r=new Array(s=t.arcs.length);i<s;++i)r[i]=i;return{type:"MultiLineString",arcs:XDe(t,r)}}function ZDe(t,e,n){var r=[],i=[],s;function o(f){var x=f<0?~f:f;(i[x]||(i[x]=[])).push({i:f,g:s})}function u(f){f.forEach(o)}function a(f){f.forEach(u)}function l(f){f.forEach(a)}function c(f){switch(s=f,f.type){case"GeometryCollection":f.geometries.forEach(c);break;case"LineString":u(f.arcs);break;case"MultiLineString":case"Polygon":a(f.arcs);break;case"MultiPolygon":l(f.arcs);break}}return c(e),i.forEach(n==null?function(f){r.push(f[0].i)}:function(f){n(f[0].g,f[f.length-1].g)&&r.push(f[0].i)}),r}function gl(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function eFe(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function sy(t){let e,n,r;t.length!==2?(e=gl,n=(u,a)=>gl(t(u),a),r=(u,a)=>t(u)-a):(e=t===gl||t===eFe?t:tFe,n=t,r=t);function i(u,a,l=0,c=u.length){if(l<c){if(e(a,a)!==0)return c;do{const f=l+c>>>1;n(u[f],a)<0?l=f+1:c=f}while(l<c)}return l}function s(u,a,l=0,c=u.length){if(l<c){if(e(a,a)!==0)return c;do{const f=l+c>>>1;n(u[f],a)<=0?l=f+1:c=f}while(l<c)}return l}function o(u,a,l=0,c=u.length){const f=i(u,a,l,c-1);return f>l&&r(u[f-1],a)>-r(u[f],a)?f-1:f}return{left:i,center:o,right:s}}function tFe(){return 0}function YW(t){return t===null?NaN:+t}function*nFe(t,e){if(e===void 0)for(let n of t)n!=null&&(n=+n)>=n&&(yield n);else{let n=-1;for(let r of t)(r=e(r,++n,t))!=null&&(r=+r)>=r&&(yield r)}}const XW=sy(gl),J0=XW.right,rFe=XW.left;sy(YW).center;function iFe(t,e){let n=0,r,i=0,s=0;if(e===void 0)for(let o of t)o!=null&&(o=+o)>=o&&(r=o-i,i+=r/++n,s+=r*(o-i));else{let o=-1;for(let u of t)(u=e(u,++o,t))!=null&&(u=+u)>=u&&(r=u-i,i+=r/++n,s+=r*(u-i))}if(n>1)return s/(n-1)}function sFe(t,e){const n=iFe(t,e);return n&&Math.sqrt(n)}class Ai{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const n=this._partials;let r=0;for(let i=0;i<this._n&&i<32;i++){const s=n[i],o=e+s,u=Math.abs(e)<Math.abs(s)?e-(o-s):s-(o-e);u&&(n[r++]=u),e=o}return n[r]=e,this._n=r+1,this}valueOf(){const e=this._partials;let n=this._n,r,i,s,o=0;if(n>0){for(o=e[--n];n>0&&(r=o,i=e[--n],o=r+i,s=i-(o-r),!s););n>0&&(s<0&&e[n-1]<0||s>0&&e[n-1]>0)&&(i=s*2,r=o+i,i==r-o&&(o=r))}return o}}class KW extends Map{constructor(e,n=eV){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[r,i]of e)this.set(r,i)}get(e){return super.get(J4(this,e))}has(e){return super.has(J4(this,e))}set(e,n){return super.set(JW(this,e),n)}delete(e){return super.delete(ZW(this,e))}}class Ob extends Set{constructor(e,n=eV){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const r of e)this.add(r)}has(e){return super.has(J4(this,e))}add(e){return super.add(JW(this,e))}delete(e){return super.delete(ZW(this,e))}}function J4({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function JW({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function ZW({_intern:t,_key:e},n){const r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function eV(t){return t!==null&&typeof t=="object"?t.valueOf():t}function oFe(t,e){return Array.from(e,n=>t[n])}function uFe(t=gl){if(t===gl)return tV;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,n)=>{const r=t(e,n);return r||r===0?r:(t(n,n)===0)-(t(e,e)===0)}}function tV(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(t<e?-1:t>e?1:0)}const aFe=Math.sqrt(50),lFe=Math.sqrt(10),cFe=Math.sqrt(2);function Nb(t,e,n){const r=(e-t)/Math.max(0,n),i=Math.floor(Math.log10(r)),s=r/Math.pow(10,i),o=s>=aFe?10:s>=lFe?5:s>=cFe?2:1;let u,a,l;return i<0?(l=Math.pow(10,-i)/o,u=Math.round(t*l),a=Math.round(e*l),u/l<t&&++u,a/l>e&&--a,l=-l):(l=Math.pow(10,i)*o,u=Math.round(t/l),a=Math.round(e/l),u*l<t&&++u,a*l>e&&--a),a<u&&.5<=n&&n<2?Nb(t,e,n*2):[u,a,l]}function Z4(t,e,n){if(e=+e,t=+t,n=+n,!(n>0))return[];if(t===e)return[t];const r=e<t,[i,s,o]=r?Nb(e,t,n):Nb(t,e,n);if(!(s>=i))return[];const u=s-i+1,a=new Array(u);if(r)if(o<0)for(let l=0;l<u;++l)a[l]=(s-l)/-o;else for(let l=0;l<u;++l)a[l]=(s-l)*o;else if(o<0)for(let l=0;l<u;++l)a[l]=(i+l)/-o;else for(let l=0;l<u;++l)a[l]=(i+l)*o;return a}function e5(t,e,n){return e=+e,t=+t,n=+n,Nb(t,e,n)[2]}function Z0(t,e,n){e=+e,t=+t,n=+n;const r=e<t,i=r?e5(e,t,n):e5(t,e,n);return(r?-1:1)*(i<0?1/-i:i)}function Cx(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n<r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function t5(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function nV(t,e,n=0,r=1/0,i){if(e=Math.floor(e),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(t.length-1,r)),!(n<=e&&e<=r))return t;for(i=i===void 0?tV:uFe(i);r>n;){if(r-n>600){const a=r-n+1,l=e-n+1,c=Math.log(a),f=.5*Math.exp(2*c/3),x=.5*Math.sqrt(c*f*(a-f)/a)*(l-a/2<0?-1:1),h=Math.max(n,Math.floor(e-l*f/a+x)),p=Math.min(r,Math.floor(e+(a-l)*f/a+x));nV(t,e,h,p,i)}const s=t[e];let o=n,u=r;for(oy(t,n,e),i(t[r],s)>0&&oy(t,n,r);o<u;){for(oy(t,o,u),++o,--u;i(t[o],s)<0;)++o;for(;i(t[u],s)>0;)--u}i(t[n],s)===0?oy(t,n,u):(++u,oy(t,u,r)),u<=e&&(n=u+1),e<=u&&(r=u-1)}return t}function oy(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function n5(t,e,n){if(t=Float64Array.from(nFe(t,n)),!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return t5(t);if(e>=1)return Cx(t);var r,i=(r-1)*e,s=Math.floor(i),o=Cx(nV(t,s).subarray(0,s+1)),u=t5(t.subarray(s+1));return o+(u-o)*(i-s)}}function rV(t,e,n=YW){if(!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,s=Math.floor(i),o=+n(t[s],s,t),u=+n(t[s+1],s+1,t);return o+(u-o)*(i-s)}}function fFe(t,e){let n=0,r=0;if(e===void 0)for(let i of t)i!=null&&(i=+i)>=i&&(++n,r+=i);else{let i=-1;for(let s of t)(s=e(s,++i,t))!=null&&(s=+s)>=s&&(++n,r+=s)}if(n)return r/n}function iV(t,e){return n5(t,.5,e)}function*xFe(t){for(const e of t)yield*e}function sV(t){return Array.from(xFe(t))}function Fs(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((e-t)/n))|0,s=new Array(i);++r<i;)s[r]=t+r*n;return s}function oV(t,e){let n=0;if(e===void 0)for(let r of t)(r=+r)&&(n+=r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&(n+=i)}return n}function dFe(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Db(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function Ep(t){return t=Db(Math.abs(t)),t?t[1]:NaN}function hFe(t,e){return function(n,r){for(var i=n.length,s=[],o=0,u=t[0],a=0;i>0&&u>0&&(a+u+1>r&&(u=Math.max(1,r-a)),s.push(n.substring(i-=u,i+u)),!((a+=u+1)>r));)u=t[o=(o+1)%t.length];return s.reverse().join(e)}}function pFe(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var gFe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function bx(t){if(!(e=gFe.exec(t)))throw new Error("invalid format: "+t);var e;return new r5({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}bx.prototype=r5.prototype;function r5(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}r5.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function mFe(t){e:for(var e=t.length,n=1,r=-1,i;n<e;++n)switch(t[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+t[n])break e;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(i+1):t}var uV;function yFe(t,e){var n=Db(t,e);if(!n)return t+"";var r=n[0],i=n[1],s=i-(uV=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return s===o?r:s>o?r+new Array(s-o+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+Db(t,Math.max(0,e+s-1))[0]}function aV(t,e){var n=Db(t,e);if(!n)return t+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const lV={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:dFe,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>aV(t*100,e),r:aV,s:yFe,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function cV(t){return t}var fV=Array.prototype.map,xV=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function dV(t){var e=t.grouping===void 0||t.thousands===void 0?cV:hFe(fV.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",s=t.numerals===void 0?cV:pFe(fV.call(t.numerals,String)),o=t.percent===void 0?"%":t.percent+"",u=t.minus===void 0?"−":t.minus+"",a=t.nan===void 0?"NaN":t.nan+"";function l(f){f=bx(f);var x=f.fill,h=f.align,p=f.sign,m=f.symbol,g=f.zero,y=f.width,E=f.comma,A=f.precision,S=f.trim,v=f.type;v==="n"?(E=!0,v="g"):lV[v]||(A===void 0&&(A=12),S=!0,v="g"),(g||x==="0"&&h==="=")&&(g=!0,x="0",h="=");var _=m==="$"?n:m==="#"&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",C=m==="$"?r:/[%p]/.test(v)?o:"",b=lV[v],R=/[defgprs%]/.test(v);A=A===void 0?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,A)):Math.max(0,Math.min(20,A));function O(L){var M=_,q=C,W,B,G;if(v==="c")q=b(L)+q,L="";else{L=+L;var te=L<0||1/L<0;if(L=isNaN(L)?a:b(Math.abs(L),A),S&&(L=mFe(L)),te&&+L==0&&p!=="+"&&(te=!1),M=(te?p==="("?p:u:p==="-"||p==="("?"":p)+M,q=(v==="s"?xV[8+uV/3]:"")+q+(te&&p==="("?")":""),R){for(W=-1,B=L.length;++W<B;)if(G=L.charCodeAt(W),48>G||G>57){q=(G===46?i+L.slice(W+1):L.slice(W))+q,L=L.slice(0,W);break}}}E&&!g&&(L=e(L,1/0));var K=M.length+L.length+q.length,de=K<y?new Array(y-K+1).join(x):"";switch(E&&g&&(L=e(de+L,de.length?y-q.length:1/0),de=""),h){case"<":L=M+L+q+de;break;case"=":L=M+de+L+q;break;case"^":L=de.slice(0,K=de.length>>1)+M+L+q+de.slice(K);break;default:L=de+M+L+q;break}return s(L)}return O.toString=function(){return f+""},O}function c(f,x){var h=l((f=bx(f),f.type="f",f)),p=Math.max(-8,Math.min(8,Math.floor(Ep(x)/3)))*3,m=Math.pow(10,-p),g=xV[8+p/3];return function(y){return h(m*y)+g}}return{format:l,formatPrefix:c}}var Fb,wb,i5;EFe({thousands:",",grouping:[3],currency:["$",""]});function EFe(t){return Fb=dV(t),wb=Fb.format,i5=Fb.formatPrefix,Fb}function hV(t){return Math.max(0,-Ep(Math.abs(t)))}function pV(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ep(e)/3)))*3-Ep(Math.abs(t)))}function gV(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Ep(e)-Ep(t))+1}const s5=new Date,o5=new Date;function Xn(t,e,n,r){function i(s){return t(s=arguments.length===0?new Date:new Date(+s)),s}return i.floor=s=>(t(s=new Date(+s)),s),i.ceil=s=>(t(s=new Date(s-1)),e(s,1),t(s),s),i.round=s=>{const o=i(s),u=i.ceil(s);return s-o<u-s?o:u},i.offset=(s,o)=>(e(s=new Date(+s),o==null?1:Math.floor(o)),s),i.range=(s,o,u)=>{const a=[];if(s=i.ceil(s),u=u==null?1:Math.floor(u),!(s<o)||!(u>0))return a;let l;do a.push(l=new Date(+s)),e(s,u),t(s);while(l<s&&s<o);return a},i.filter=s=>Xn(o=>{if(o>=o)for(;t(o),!s(o);)o.setTime(o-1)},(o,u)=>{if(o>=o)if(u<0)for(;++u<=0;)for(;e(o,-1),!s(o););else for(;--u>=0;)for(;e(o,1),!s(o););}),n&&(i.count=(s,o)=>(s5.setTime(+s),o5.setTime(+o),t(s5),t(o5),Math.floor(n(s5,o5))),i.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?i.filter(r?o=>r(o)%s===0:o=>i.count(0,o)%s===0):i)),i}const Ap=Xn(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);Ap.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?Xn(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):Ap),Ap.range;const ml=1e3,uo=ml*60,yl=uo*60,El=yl*24,u5=El*7,mV=El*30,a5=El*365,Al=Xn(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*ml)},(t,e)=>(e-t)/ml,t=>t.getUTCSeconds());Al.range;const Lb=Xn(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*ml)},(t,e)=>{t.setTime(+t+e*uo)},(t,e)=>(e-t)/uo,t=>t.getMinutes());Lb.range;const Ib=Xn(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*uo)},(t,e)=>(e-t)/uo,t=>t.getUTCMinutes());Ib.range;const $b=Xn(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*ml-t.getMinutes()*uo)},(t,e)=>{t.setTime(+t+e*yl)},(t,e)=>(e-t)/yl,t=>t.getHours());$b.range;const Bb=Xn(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*yl)},(t,e)=>(e-t)/yl,t=>t.getUTCHours());Bb.range;const Sl=Xn(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*uo)/El,t=>t.getDate()-1);Sl.range;const ec=Xn(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/El,t=>t.getUTCDate()-1);ec.range;const yV=Xn(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/El,t=>Math.floor(t/El));yV.range;function Tx(t){return Xn(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*uo)/u5)}const Sp=Tx(0),kb=Tx(1),AFe=Tx(2),SFe=Tx(3),vp=Tx(4),vFe=Tx(5),_Fe=Tx(6);Sp.range,kb.range,AFe.range,SFe.range,vp.range,vFe.range,_Fe.range;function Rx(t){return Xn(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/u5)}const _p=Rx(0),Pb=Rx(1),CFe=Rx(2),bFe=Rx(3),Cp=Rx(4),TFe=Rx(5),RFe=Rx(6);_p.range,Pb.range,CFe.range,bFe.range,Cp.range,TFe.range,RFe.range;const uy=Xn(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());uy.range;const ay=Xn(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());ay.range;const Ku=Xn(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());Ku.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:Xn(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)}),Ku.range;const Ju=Xn(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());Ju.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:Xn(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)}),Ju.range;function EV(t,e,n,r,i,s){const o=[[Al,1,ml],[Al,5,5*ml],[Al,15,15*ml],[Al,30,30*ml],[s,1,uo],[s,5,5*uo],[s,15,15*uo],[s,30,30*uo],[i,1,yl],[i,3,3*yl],[i,6,6*yl],[i,12,12*yl],[r,1,El],[r,2,2*El],[n,1,u5],[e,1,mV],[e,3,3*mV],[t,1,a5]];function u(l,c,f){const x=c<l;x&&([l,c]=[c,l]);const h=f&&typeof f.range=="function"?f:a(l,c,f),p=h?h.range(l,+c+1):[];return x?p.reverse():p}function a(l,c,f){const x=Math.abs(c-l)/f,h=sy(([,,g])=>g).right(o,x);if(h===o.length)return t.every(Z0(l/a5,c/a5,f));if(h===0)return Ap.every(Math.max(Z0(l,c,f),1));const[p,m]=o[x/o[h-1][2]<o[h][2]/x?h-1:h];return p.every(m)}return[u,a]}const[OFe,NFe]=EV(Ju,ay,_p,yV,Bb,Ib),[DFe,FFe]=EV(Ku,uy,Sp,Sl,$b,Lb),Xr="year",ws="quarter",Si="month",xr="week",Ls="date",vi="day",vl="dayofyear",ao="hours",lo="minutes",Wo="seconds",Zu="milliseconds",AV=[Xr,ws,Si,xr,Ls,vi,vl,ao,lo,Wo,Zu],l5=AV.reduce((t,e,n)=>(t[e]=1+n,t),{});function SV(t){const e=Pe(t).slice(),n={};return e.length||ve("Missing time unit."),e.forEach(i=>{Je(l5,i)?n[i]=1:ve(`Invalid time unit: ${i}.`)}),(n[xr]||n[vi]?1:0)+(n[ws]||n[Si]||n[Ls]?1:0)+(n[vl]?1:0)>1&&ve(`Incompatible time units: ${t}`),e.sort((i,s)=>l5[i]-l5[s]),e}const wFe={[Xr]:"%Y ",[ws]:"Q%q ",[Si]:"%b ",[Ls]:"%d ",[xr]:"W%U ",[vi]:"%a ",[vl]:"%j ",[ao]:"%H:00",[lo]:"00:%M",[Wo]:":%S",[Zu]:".%L",[`${Xr}-${Si}`]:"%Y-%m ",[`${Xr}-${Si}-${Ls}`]:"%Y-%m-%d ",[`${ao}-${lo}`]:"%H:%M"};function LFe(t,e){const n=ft({},wFe,e),r=SV(t),i=r.length;let s="",o=0,u,a;for(o=0;o<i;)for(u=r.length;u>o;--u)if(a=r.slice(o,u).join("-"),n[a]!=null){s+=n[a],o=u;break}return s.trim()}const Ox=new Date;function c5(t){return Ox.setFullYear(t),Ox.setMonth(0),Ox.setDate(1),Ox.setHours(0,0,0,0),Ox}function IFe(t){return vV(new Date(t))}function $Fe(t){return f5(new Date(t))}function vV(t){return Sl.count(c5(t.getFullYear())-1,t)}function f5(t){return Sp.count(c5(t.getFullYear())-1,t)}function x5(t){return c5(t).getDay()}function BFe(t,e,n,r,i,s,o){if(0<=t&&t<100){const u=new Date(-1,e,n,r,i,s,o);return u.setFullYear(t),u}return new Date(t,e,n,r,i,s,o)}function kFe(t){return _V(new Date(t))}function PFe(t){return d5(new Date(t))}function _V(t){const e=Date.UTC(t.getUTCFullYear(),0,1);return ec.count(e-1,t)}function d5(t){const e=Date.UTC(t.getUTCFullYear(),0,1);return _p.count(e-1,t)}function h5(t){return Ox.setTime(Date.UTC(t,0,1)),Ox.getUTCDay()}function MFe(t,e,n,r,i,s,o){if(0<=t&&t<100){const u=new Date(Date.UTC(-1,e,n,r,i,s,o));return u.setUTCFullYear(n.y),u}return new Date(Date.UTC(t,e,n,r,i,s,o))}function CV(t,e,n,r,i){const s=e||1,o=vt(t),u=(y,E,A)=>(A=A||y,jFe(n[A],r[A],y===o&&s,E)),a=new Date,l=Xu(t),c=l[Xr]?u(Xr):Ei(2012),f=l[Si]?u(Si):l[ws]?u(ws):Ax,x=l[xr]&&l[vi]?u(vi,1,xr+vi):l[xr]?u(xr,1):l[vi]?u(vi,1):l[Ls]?u(Ls,1):l[vl]?u(vl,1):ty,h=l[ao]?u(ao):Ax,p=l[lo]?u(lo):Ax,m=l[Wo]?u(Wo):Ax,g=l[Zu]?u(Zu):Ax;return function(y){a.setTime(+y);const E=c(a);return i(E,f(a),x(a,E),h(a),p(a),m(a),g(a))}}function jFe(t,e,n,r){const i=n<=1?t:r?(s,o)=>r+n*Math.floor((t(s,o)-r)/n):(s,o)=>n*Math.floor(t(s,o)/n);return e?(s,o)=>e(i(s,o),o):i}function bp(t,e,n){return e+t*7-(n+6)%7}const UFe={[Xr]:t=>t.getFullYear(),[ws]:t=>Math.floor(t.getMonth()/3),[Si]:t=>t.getMonth(),[Ls]:t=>t.getDate(),[ao]:t=>t.getHours(),[lo]:t=>t.getMinutes(),[Wo]:t=>t.getSeconds(),[Zu]:t=>t.getMilliseconds(),[vl]:t=>vV(t),[xr]:t=>f5(t),[xr+vi]:(t,e)=>bp(f5(t),t.getDay(),x5(e)),[vi]:(t,e)=>bp(1,t.getDay(),x5(e))},qFe={[ws]:t=>3*t,[xr]:(t,e)=>bp(t,0,x5(e))};function HFe(t,e){return CV(t,e||1,UFe,qFe,BFe)}const zFe={[Xr]:t=>t.getUTCFullYear(),[ws]:t=>Math.floor(t.getUTCMonth()/3),[Si]:t=>t.getUTCMonth(),[Ls]:t=>t.getUTCDate(),[ao]:t=>t.getUTCHours(),[lo]:t=>t.getUTCMinutes(),[Wo]:t=>t.getUTCSeconds(),[Zu]:t=>t.getUTCMilliseconds(),[vl]:t=>_V(t),[xr]:t=>d5(t),[vi]:(t,e)=>bp(1,t.getUTCDay(),h5(e)),[xr+vi]:(t,e)=>bp(d5(t),t.getUTCDay(),h5(e))},QFe={[ws]:t=>3*t,[xr]:(t,e)=>bp(t,0,h5(e))};function GFe(t,e){return CV(t,e||1,zFe,QFe,MFe)}const WFe={[Xr]:Ku,[ws]:uy.every(3),[Si]:uy,[xr]:Sp,[Ls]:Sl,[vi]:Sl,[vl]:Sl,[ao]:$b,[lo]:Lb,[Wo]:Al,[Zu]:Ap},VFe={[Xr]:Ju,[ws]:ay.every(3),[Si]:ay,[xr]:_p,[Ls]:ec,[vi]:ec,[vl]:ec,[ao]:Bb,[lo]:Ib,[Wo]:Al,[Zu]:Ap};function ly(t){return WFe[t]}function cy(t){return VFe[t]}function bV(t,e,n){return t?t.offset(e,n):void 0}function YFe(t,e,n){return bV(ly(t),e,n)}function XFe(t,e,n){return bV(cy(t),e,n)}function TV(t,e,n,r){return t?t.range(e,n,r):void 0}function KFe(t,e,n,r){return TV(ly(t),e,n,r)}function JFe(t,e,n,r){return TV(cy(t),e,n,r)}const fy=1e3,xy=fy*60,dy=xy*60,Mb=dy*24,ZFe=Mb*7,RV=Mb*30,p5=Mb*365,OV=[Xr,Si,Ls,ao,lo,Wo,Zu],hy=OV.slice(0,-1),py=hy.slice(0,-1),gy=py.slice(0,-1),ewe=gy.slice(0,-1),twe=[Xr,xr],NV=[Xr,Si],DV=[Xr],my=[[hy,1,fy],[hy,5,5*fy],[hy,15,15*fy],[hy,30,30*fy],[py,1,xy],[py,5,5*xy],[py,15,15*xy],[py,30,30*xy],[gy,1,dy],[gy,3,3*dy],[gy,6,6*dy],[gy,12,12*dy],[ewe,1,Mb],[twe,1,ZFe],[NV,1,RV],[NV,3,3*RV],[DV,1,p5]];function nwe(t){const e=t.extent,n=t.maxbins||40,r=Math.abs(Rb(e))/n;let i=sy(u=>u[2]).right(my,r),s,o;return i===my.length?(s=DV,o=Z0(e[0]/p5,e[1]/p5,n)):i?(i=my[r/my[i-1][2]<my[i][2]/r?i-1:i],s=i[0],o=i[1]):(s=OV,o=Math.max(Z0(e[0],e[1],n),1)),{units:s,step:o}}function g5(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function m5(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function yy(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function FV(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,s=t.days,o=t.shortDays,u=t.months,a=t.shortMonths,l=Ey(i),c=Ay(i),f=Ey(s),x=Ay(s),h=Ey(o),p=Ay(o),m=Ey(u),g=Ay(u),y=Ey(a),E=Ay(a),A={a:te,A:K,b:de,B:be,c:null,d:kV,e:kV,f:bwe,g:$we,G:kwe,H:vwe,I:_we,j:Cwe,L:PV,m:Twe,M:Rwe,p:ee,q:U,Q:zV,s:QV,S:Owe,u:Nwe,U:Dwe,V:Fwe,w:wwe,W:Lwe,x:null,X:null,y:Iwe,Y:Bwe,Z:Pwe,"%":HV},S={a:T,A:w,b:k,B:z,c:null,d:jV,e:jV,f:qwe,g:Jwe,G:eLe,H:Mwe,I:jwe,j:Uwe,L:UV,m:Hwe,M:zwe,p:Y,q:V,Q:zV,s:QV,S:Qwe,u:Gwe,U:Wwe,V:Vwe,w:Ywe,W:Xwe,x:null,X:null,y:Kwe,Y:Zwe,Z:tLe,"%":HV},v={a:O,A:L,b:M,B:q,c:W,d:$V,e:$V,f:ywe,g:IV,G:LV,H:BV,I:BV,j:hwe,L:mwe,m:dwe,M:pwe,p:R,q:xwe,Q:Awe,s:Swe,S:gwe,u:uwe,U:awe,V:lwe,w:owe,W:cwe,x:B,X:G,y:IV,Y:LV,Z:fwe,"%":Ewe};A.x=_(n,A),A.X=_(r,A),A.c=_(e,A),S.x=_(n,S),S.X=_(r,S),S.c=_(e,S);function _(D,$){return function(j){var Q=[],I=-1,H=0,P=D.length,J,ce,ue;for(j instanceof Date||(j=new Date(+j));++I<P;)D.charCodeAt(I)===37&&(Q.push(D.slice(H,I)),(ce=wV[J=D.charAt(++I)])!=null?J=D.charAt(++I):ce=J==="e"?" ":"0",(ue=$[J])&&(J=ue(j,ce)),Q.push(J),H=I+1);return Q.push(D.slice(H,I)),Q.join("")}}function C(D,$){return function(j){var Q=yy(1900,void 0,1),I=b(Q,D,j+="",0),H,P;if(I!=j.length)return null;if("Q"in Q)return new Date(Q.Q);if("s"in Q)return new Date(Q.s*1e3+("L"in Q?Q.L:0));if($&&!("Z"in Q)&&(Q.Z=0),"p"in Q&&(Q.H=Q.H%12+Q.p*12),Q.m===void 0&&(Q.m="q"in Q?Q.q:0),"V"in Q){if(Q.V<1||Q.V>53)return null;"w"in Q||(Q.w=1),"Z"in Q?(H=m5(yy(Q.y,0,1)),P=H.getUTCDay(),H=P>4||P===0?Pb.ceil(H):Pb(H),H=ec.offset(H,(Q.V-1)*7),Q.y=H.getUTCFullYear(),Q.m=H.getUTCMonth(),Q.d=H.getUTCDate()+(Q.w+6)%7):(H=g5(yy(Q.y,0,1)),P=H.getDay(),H=P>4||P===0?kb.ceil(H):kb(H),H=Sl.offset(H,(Q.V-1)*7),Q.y=H.getFullYear(),Q.m=H.getMonth(),Q.d=H.getDate()+(Q.w+6)%7)}else("W"in Q||"U"in Q)&&("w"in Q||(Q.w="u"in Q?Q.u%7:"W"in Q?1:0),P="Z"in Q?m5(yy(Q.y,0,1)).getUTCDay():g5(yy(Q.y,0,1)).getDay(),Q.m=0,Q.d="W"in Q?(Q.w+6)%7+Q.W*7-(P+5)%7:Q.w+Q.U*7-(P+6)%7);return"Z"in Q?(Q.H+=Q.Z/100|0,Q.M+=Q.Z%100,m5(Q)):g5(Q)}}function b(D,$,j,Q){for(var I=0,H=$.length,P=j.length,J,ce;I<H;){if(Q>=P)return-1;if(J=$.charCodeAt(I++),J===37){if(J=$.charAt(I++),ce=v[J in wV?$.charAt(I++):J],!ce||(Q=ce(D,j,Q))<0)return-1}else if(J!=j.charCodeAt(Q++))return-1}return Q}function R(D,$,j){var Q=l.exec($.slice(j));return Q?(D.p=c.get(Q[0].toLowerCase()),j+Q[0].length):-1}function O(D,$,j){var Q=h.exec($.slice(j));return Q?(D.w=p.get(Q[0].toLowerCase()),j+Q[0].length):-1}function L(D,$,j){var Q=f.exec($.slice(j));return Q?(D.w=x.get(Q[0].toLowerCase()),j+Q[0].length):-1}function M(D,$,j){var Q=y.exec($.slice(j));return Q?(D.m=E.get(Q[0].toLowerCase()),j+Q[0].length):-1}function q(D,$,j){var Q=m.exec($.slice(j));return Q?(D.m=g.get(Q[0].toLowerCase()),j+Q[0].length):-1}function W(D,$,j){return b(D,e,$,j)}function B(D,$,j){return b(D,n,$,j)}function G(D,$,j){return b(D,r,$,j)}function te(D){return o[D.getDay()]}function K(D){return s[D.getDay()]}function de(D){return a[D.getMonth()]}function be(D){return u[D.getMonth()]}function ee(D){return i[+(D.getHours()>=12)]}function U(D){return 1+~~(D.getMonth()/3)}function T(D){return o[D.getUTCDay()]}function w(D){return s[D.getUTCDay()]}function k(D){return a[D.getUTCMonth()]}function z(D){return u[D.getUTCMonth()]}function Y(D){return i[+(D.getUTCHours()>=12)]}function V(D){return 1+~~(D.getUTCMonth()/3)}return{format:function(D){var $=_(D+="",A);return $.toString=function(){return D},$},parse:function(D){var $=C(D+="",!1);return $.toString=function(){return D},$},utcFormat:function(D){var $=_(D+="",S);return $.toString=function(){return D},$},utcParse:function(D){var $=C(D+="",!0);return $.toString=function(){return D},$}}}var wV={"-":"",_:" ",0:"0"},dr=/^\s*\d+/,rwe=/^%/,iwe=/[\\^$*+?|[\]().{}]/g;function Rt(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",s=i.length;return r+(s<n?new Array(n-s+1).join(e)+i:i)}function swe(t){return t.replace(iwe,"\\$&")}function Ey(t){return new RegExp("^(?:"+t.map(swe).join("|")+")","i")}function Ay(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function owe(t,e,n){var r=dr.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function uwe(t,e,n){var r=dr.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function awe(t,e,n){var r=dr.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function lwe(t,e,n){var r=dr.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function cwe(t,e,n){var r=dr.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function LV(t,e,n){var r=dr.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function IV(t,e,n){var r=dr.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function fwe(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function xwe(t,e,n){var r=dr.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function dwe(t,e,n){var r=dr.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function $V(t,e,n){var r=dr.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function hwe(t,e,n){var r=dr.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function BV(t,e,n){var r=dr.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function pwe(t,e,n){var r=dr.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function gwe(t,e,n){var r=dr.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function mwe(t,e,n){var r=dr.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function ywe(t,e,n){var r=dr.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Ewe(t,e,n){var r=rwe.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function Awe(t,e,n){var r=dr.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function Swe(t,e,n){var r=dr.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function kV(t,e){return Rt(t.getDate(),e,2)}function vwe(t,e){return Rt(t.getHours(),e,2)}function _we(t,e){return Rt(t.getHours()%12||12,e,2)}function Cwe(t,e){return Rt(1+Sl.count(Ku(t),t),e,3)}function PV(t,e){return Rt(t.getMilliseconds(),e,3)}function bwe(t,e){return PV(t,e)+"000"}function Twe(t,e){return Rt(t.getMonth()+1,e,2)}function Rwe(t,e){return Rt(t.getMinutes(),e,2)}function Owe(t,e){return Rt(t.getSeconds(),e,2)}function Nwe(t){var e=t.getDay();return e===0?7:e}function Dwe(t,e){return Rt(Sp.count(Ku(t)-1,t),e,2)}function MV(t){var e=t.getDay();return e>=4||e===0?vp(t):vp.ceil(t)}function Fwe(t,e){return t=MV(t),Rt(vp.count(Ku(t),t)+(Ku(t).getDay()===4),e,2)}function wwe(t){return t.getDay()}function Lwe(t,e){return Rt(kb.count(Ku(t)-1,t),e,2)}function Iwe(t,e){return Rt(t.getFullYear()%100,e,2)}function $we(t,e){return t=MV(t),Rt(t.getFullYear()%100,e,2)}function Bwe(t,e){return Rt(t.getFullYear()%1e4,e,4)}function kwe(t,e){var n=t.getDay();return t=n>=4||n===0?vp(t):vp.ceil(t),Rt(t.getFullYear()%1e4,e,4)}function Pwe(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Rt(e/60|0,"0",2)+Rt(e%60,"0",2)}function jV(t,e){return Rt(t.getUTCDate(),e,2)}function Mwe(t,e){return Rt(t.getUTCHours(),e,2)}function jwe(t,e){return Rt(t.getUTCHours()%12||12,e,2)}function Uwe(t,e){return Rt(1+ec.count(Ju(t),t),e,3)}function UV(t,e){return Rt(t.getUTCMilliseconds(),e,3)}function qwe(t,e){return UV(t,e)+"000"}function Hwe(t,e){return Rt(t.getUTCMonth()+1,e,2)}function zwe(t,e){return Rt(t.getUTCMinutes(),e,2)}function Qwe(t,e){return Rt(t.getUTCSeconds(),e,2)}function Gwe(t){var e=t.getUTCDay();return e===0?7:e}function Wwe(t,e){return Rt(_p.count(Ju(t)-1,t),e,2)}function qV(t){var e=t.getUTCDay();return e>=4||e===0?Cp(t):Cp.ceil(t)}function Vwe(t,e){return t=qV(t),Rt(Cp.count(Ju(t),t)+(Ju(t).getUTCDay()===4),e,2)}function Ywe(t){return t.getUTCDay()}function Xwe(t,e){return Rt(Pb.count(Ju(t)-1,t),e,2)}function Kwe(t,e){return Rt(t.getUTCFullYear()%100,e,2)}function Jwe(t,e){return t=qV(t),Rt(t.getUTCFullYear()%100,e,2)}function Zwe(t,e){return Rt(t.getUTCFullYear()%1e4,e,4)}function eLe(t,e){var n=t.getUTCDay();return t=n>=4||n===0?Cp(t):Cp.ceil(t),Rt(t.getUTCFullYear()%1e4,e,4)}function tLe(){return"+0000"}function HV(){return"%"}function zV(t){return+t}function QV(t){return Math.floor(+t/1e3)}var Tp,y5,GV,E5,WV;nLe({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function nLe(t){return Tp=FV(t),y5=Tp.format,GV=Tp.parse,E5=Tp.utcFormat,WV=Tp.utcParse,Tp}function Sy(t){const e={};return n=>e[n]||(e[n]=t(n))}function rLe(t,e){return n=>{const r=t(n),i=r.indexOf(e);if(i<0)return r;let s=iLe(r,i);const o=s<r.length?r.slice(s):"";for(;--s>i;)if(r[s]!=="0"){++s;break}return r.slice(0,s)+o}}function iLe(t,e){let n=t.lastIndexOf("e"),r;if(n>0)return n;for(n=t.length;--n>e;)if(r=t.charCodeAt(n),r>=48&&r<=57)return n+1}function VV(t){const e=Sy(t.format),n=t.formatPrefix;return{format:e,formatPrefix:n,formatFloat(r){const i=bx(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return rLe(e(i),e(".1f")(1)[1])}else return e(i)},formatSpan(r,i,s,o){o=bx(o??",f");const u=Z0(r,i,s),a=Math.max(Math.abs(r),Math.abs(i));let l;if(o.precision==null)switch(o.type){case"s":return isNaN(l=pV(u,a))||(o.precision=l),n(o,a);case"":case"e":case"g":case"p":case"r":{isNaN(l=gV(u,a))||(o.precision=l-(o.type==="e"));break}case"f":case"%":{isNaN(l=hV(u))||(o.precision=l-(o.type==="%")*2);break}}return e(o)}}}let A5;sLe();function sLe(){return A5=VV({format:wb,formatPrefix:i5})}function YV(t){return VV(dV(t))}function S5(t){return arguments.length?A5=YV(t):A5}function XV(t,e,n){n=n||{},He(n)||ve(`Invalid time multi-format specifier: ${n}`);const r=e(Wo),i=e(lo),s=e(ao),o=e(Ls),u=e(xr),a=e(Si),l=e(ws),c=e(Xr),f=t(n[Zu]||".%L"),x=t(n[Wo]||":%S"),h=t(n[lo]||"%I:%M"),p=t(n[ao]||"%I %p"),m=t(n[Ls]||n[vi]||"%a %d"),g=t(n[xr]||"%b %d"),y=t(n[Si]||"%B"),E=t(n[ws]||"%B"),A=t(n[Xr]||"%Y");return S=>(r(S)<S?f:i(S)<S?x:s(S)<S?h:o(S)<S?p:a(S)<S?u(S)<S?m:g:c(S)<S?l(S)<S?y:E:A)(S)}function KV(t){const e=Sy(t.format),n=Sy(t.utcFormat);return{timeFormat:r=>je(r)?e(r):XV(e,ly,r),utcFormat:r=>je(r)?n(r):XV(n,cy,r),timeParse:Sy(t.parse),utcParse:Sy(t.utcParse)}}let v5;oLe();function oLe(){return v5=KV({format:y5,parse:GV,utcFormat:E5,utcParse:WV})}function JV(t){return KV(FV(t))}function jb(t){return arguments.length?v5=JV(t):v5}const _5=(t,e)=>ft({},t,e);function ZV(t,e){const n=t?YV(t):S5(),r=e?JV(e):jb();return _5(n,r)}function uLe(t,e){const n=arguments.length;return n&&n!==2&&ve("defaultLocale expects either zero or two arguments."),n?_5(S5(t),jb(e)):_5(S5(),jb())}const aLe=/^(data:|([A-Za-z]+:)?\/\/)/,lLe=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,cLe=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,eY="file://";function fLe(t,e){return n=>({options:n||{},sanitize:dLe,load:xLe,fileAccess:!!e,file:hLe(e),http:gLe(t)})}async function xLe(t,e){const n=await this.sanitize(t,e),r=n.href;return n.localFile?this.file(r):this.http(r,e)}async function dLe(t,e){e=ft({},this.options,e);const n=this.fileAccess,r={href:null};let i,s,o;const u=lLe.test(t.replace(cLe,""));(t==null||typeof t!="string"||!u)&&ve("Sanitize failure, invalid URI: "+we(t));const a=aLe.test(t);return(o=e.baseURL)&&!a&&(!t.startsWith("/")&&!o.endsWith("/")&&(t="/"+t),t=o+t),s=(i=t.startsWith(eY))||e.mode==="file"||e.mode!=="http"&&!a&&n,i?t=t.slice(eY.length):t.startsWith("//")&&(e.defaultProtocol==="file"?(t=t.slice(2),s=!0):t=(e.defaultProtocol||"http")+":"+t),Object.defineProperty(r,"localFile",{value:!!s}),r.href=t,e.target&&(r.target=e.target+""),e.rel&&(r.rel=e.rel+""),e.context==="image"&&e.crossOrigin&&(r.crossOrigin=e.crossOrigin+""),r}function hLe(t){return t?e=>new Promise((n,r)=>{t.readFile(e,(i,s)=>{i?r(i):n(s)})}):pLe}async function pLe(){ve("No file system access.")}function gLe(t){return t?async function(e,n){const r=ft({},this.options.http,n),i=n&&n.response,s=await t(e,r);return s.ok?ct(s[i])?s[i]():s.text():ve(s.status+""+s.statusText)}:mLe}async function mLe(){ve("No HTTP fetch method available.")}const yLe=t=>t!=null&&t===t,ELe=t=>t==="true"||t==="false"||t===!0||t===!1,ALe=t=>!Number.isNaN(Date.parse(t)),tY=t=>!Number.isNaN(+t)&&!(t instanceof Date),SLe=t=>tY(t)&&Number.isInteger(+t),nY={boolean:UW,integer:yi,number:yi,date:qW,string:HW,unknown:mi},Ub=[ELe,SLe,tY,ALe],vLe=["boolean","integer","number","date"];function _Le(t,e){if(!t||!t.length)return"unknown";const n=t.length,r=Ub.length,i=Ub.map((s,o)=>o+1);for(let s=0,o=0,u,a;s<n;++s)for(a=e?t[s][e]:t[s],u=0;u<r;++u)if(i[u]&&yLe(a)&&!Ub[u](a)&&(i[u]=0,++o,o===Ub.length))return"string";return vLe[i.reduce((s,o)=>s===0?o:s,0)-1]}function CLe(t,e){return e.reduce((n,r)=>(n[r]=_Le(t,r),n),{})}function rY(t){const e=function(n,r){const i={delimiter:t};return C5(n,r?ft(r,i):i)};return e.responseType="text",e}function C5(t,e){return e.header&&(t=e.header.map(we).join(e.delimiter)+`
|
|
1312
1312
|
`+t),QDe(e.delimiter).parse(t+"")}C5.responseType="text";function bLe(t){return typeof Buffer=="function"&&ct(Buffer.isBuffer)?Buffer.isBuffer(t):!1}function b5(t,e){const n=e&&e.property?Ds(e.property):mi;return He(t)&&!bLe(t)?TLe(n(t),e):n(JSON.parse(t))}b5.responseType="json";function TLe(t,e){return!_e(t)&&LDe(t)&&(t=[...t]),e&&e.copy?JSON.parse(JSON.stringify(t)):t}const RLe={interior:(t,e)=>t!==e,exterior:(t,e)=>t===e};function iY(t,e){let n,r,i,s;return t=b5(t,e),e&&e.feature?(n=YDe,i=e.feature):e&&e.mesh?(n=KDe,i=e.mesh,s=RLe[e.filter]):ve("Missing TopoJSON feature or mesh parameter."),r=(r=t.objects[i])?n(t,r,s):ve("Invalid TopoJSON object: "+i),r&&r.features||[r]}iY.responseType="json";const T5={dsv:C5,csv:rY(","),tsv:rY(" "),json:b5,topojson:iY};function sY(t,e){return arguments.length>1?(T5[t]=e,this):Je(T5,t)?T5[t]:null}function OLe(t){const e=sY(t);return e&&e.responseType||"text"}function NLe(t,e,n,r){e=e||{};const i=sY(e.type||"json");return i||ve("Unknown data format type: "+e.type),t=i(t,e),e.parse&&DLe(t,e.parse,n,r),Je(t,"columns")&&delete t.columns,t}function DLe(t,e,n,r){if(!t.length)return;const i=jb();n=n||i.timeParse,r=r||i.utcParse;let s=t.columns||Object.keys(t[0]),o,u,a,l,c,f;e==="auto"&&(e=CLe(t,s)),s=Object.keys(e);const x=s.map(h=>{const p=e[h];let m,g;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return m=p.split(/:(.+)?/,2),g=m[1],(g[0]==="'"&&g[g.length-1]==="'"||g[0]==='"'&&g[g.length-1]==='"')&&(g=g.slice(1,-1)),(m[0]==="utc"?r:n)(g);if(!nY[p])throw Error("Illegal format pattern: "+h+":"+p);return nY[p]});for(a=0,c=t.length,f=s.length;a<c;++a)for(o=t[a],l=0;l<f;++l)u=s[l],o[u]=x[l](o[u])}const R5=fLe(typeof fetch<"u"&&fetch,null);function qb(t){const e=t||mi,n=[],r={};return n.add=i=>{const s=e(i);return r[s]||(r[s]=1,n.push(i)),n},n.remove=i=>{const s=e(i);if(r[s]){r[s]=0;const o=n.indexOf(i);o>=0&&n.splice(o,1)}return n},n}async function Hb(t,e){try{await e(t)}catch(n){t.error(n)}}const oY=Symbol("vega_id");let FLe=1;function O5(t){return!!(t&&Ze(t))}function Ze(t){return t[oY]}function uY(t,e){return t[oY]=e,t}function Lt(t){const e=t===Object(t)?t:{data:t};return Ze(e)?e:uY(e,FLe++)}function N5(t){return zb(t,Lt({}))}function zb(t,e){for(const n in t)e[n]=t[n];return e}function aY(t,e){return uY(e,Ze(t))}function Nx(t,e){return t?e?(n,r)=>t(n,r)||Ze(e(n))-Ze(e(r)):(n,r)=>t(n,r)||Ze(n)-Ze(r):null}function lY(t){return t&&t.constructor===Rp}function Rp(){const t=[],e=[],n=[],r=[],i=[];let s=null,o=!1;return{constructor:Rp,insert(u){const a=Pe(u),l=a.length;for(let c=0;c<l;++c)t.push(a[c]);return this},remove(u){const a=ct(u)?r:e,l=Pe(u),c=l.length;for(let f=0;f<c;++f)a.push(l[f]);return this},modify(u,a,l){const c={field:a,value:Ei(l)};return ct(u)?(c.filter=u,i.push(c)):(c.tuple=u,n.push(c)),this},encode(u,a){return ct(u)?i.push({filter:u,field:a}):n.push({tuple:u,field:a}),this},clean(u){return s=u,this},reflow(){return o=!0,this},pulse(u,a){const l={},c={};let f,x,h,p,m,g;for(f=0,x=a.length;f<x;++f)l[Ze(a[f])]=1;for(f=0,x=e.length;f<x;++f)m=e[f],l[Ze(m)]=-1;for(f=0,x=r.length;f<x;++f)p=r[f],a.forEach(E=>{p(E)&&(l[Ze(E)]=-1)});for(f=0,x=t.length;f<x;++f)m=t[f],g=Ze(m),l[g]?l[g]=1:u.add.push(Lt(t[f]));for(f=0,x=a.length;f<x;++f)m=a[f],l[Ze(m)]<0&&u.rem.push(m);function y(E,A,S){S?E[A]=S(E):u.encode=A,o||(c[Ze(E)]=E)}for(f=0,x=n.length;f<x;++f)h=n[f],m=h.tuple,p=h.field,g=l[Ze(m)],g>0&&(y(m,p,h.value),u.modifies(p));for(f=0,x=i.length;f<x;++f)h=i[f],p=h.filter,a.forEach(E=>{p(E)&&l[Ze(E)]>0&&y(E,h.field,h.value)}),u.modifies(h.field);if(o)u.mod=e.length||r.length?a.filter(E=>l[Ze(E)]>0):a.slice();else for(g in c)u.mod.push(c[g]);return(s||s==null&&(e.length||r.length))&&u.clean(!0),u}}}const Qb="_:mod:_";function D5(){Object.defineProperty(this,Qb,{writable:!0,value:{}})}D5.prototype={set(t,e,n,r){const i=this,s=i[t],o=i[Qb];return e!=null&&e>=0?(s[e]!==n||r)&&(s[e]=n,o[e+":"+t]=-1,o[t]=-1):(s!==n||r)&&(i[t]=n,o[t]=_e(n)?1+n.length:-1),i},modified(t,e){const n=this[Qb];if(arguments.length){if(_e(t)){for(let r=0;r<t.length;++r)if(n[t[r]])return!0;return!1}}else{for(const r in n)if(n[r])return!0;return!1}return e!=null&&e>=0?e+1<n[t]||!!n[e+":"+t]:!!n[t]},clear(){return this[Qb]={},this}};let wLe=0;const LLe="pulse",ILe=new D5,$Le=1,BLe=2;function Yt(t,e,n,r){this.id=++wLe,this.value=t,this.stamp=-1,this.rank=-1,this.qrank=-1,this.flags=0,e&&(this._update=e),n&&this.parameters(n,r)}function cY(t){return function(e){const n=this.flags;return arguments.length===0?!!(n&t):(this.flags=e?n|t:n&~t,this)}}Yt.prototype={targets(){return this._targets||(this._targets=qb(Ab))},set(t){return this.value!==t?(this.value=t,1):0},skip:cY($Le),modified:cY(BLe),parameters(t,e,n){e=e!==!1;const r=this._argval=this._argval||new D5,i=this._argops=this._argops||[],s=[];let o,u,a,l;const c=(f,x,h)=>{h instanceof Yt?(h!==this&&(e&&h.targets().add(this),s.push(h)),i.push({op:h,name:f,index:x})):r.set(f,x,h)};for(o in t)if(u=t[o],o===LLe)Pe(u).forEach(f=>{f instanceof Yt?f!==this&&(f.targets().add(this),s.push(f)):ve("Pulse parameters must be operator instances.")}),this.source=u;else if(_e(u))for(r.set(o,-1,Array(a=u.length)),l=0;l<a;++l)c(o,l,u[l]);else c(o,-1,u);return this.marshall().clear(),n&&(i.initonly=!0),s},marshall(t){const e=this._argval||ILe,n=this._argops;let r,i,s,o;if(n){const u=n.length;for(i=0;i<u;++i)r=n[i],s=r.op,o=s.modified()&&s.stamp===t,e.set(r.name,r.index,s.value,o);if(n.initonly){for(i=0;i<u;++i)r=n[i],r.op.targets().remove(this);this._argops=null,this._update=null}}return e},detach(){const t=this._argops;let e,n,r,i;if(t)for(e=0,n=t.length;e<n;++e)r=t[e],i=r.op,i._targets&&i._targets.remove(this);this.pulse=null,this.source=null},evaluate(t){const e=this._update;if(e){const n=this.marshall(t.stamp),r=e.call(this,n,t);if(n.clear(),r!==this.value)this.value=r;else if(!this.modified())return t.StopPropagation}},run(t){if(t.stamp<this.stamp)return t.StopPropagation;let e;return this.skip()?(this.skip(!1),e=0):e=this.evaluate(t),this.pulse=e||t}};function kLe(t,e,n,r){let i=1,s;return t instanceof Yt?s=t:t&&t.prototype instanceof Yt?s=new t:ct(t)?s=new Yt(null,t):(i=0,s=new Yt(t,e)),this.rank(s),i&&(r=n,n=e),n&&this.connect(s,s.parameters(n,r)),this.touch(s),s}function PLe(t,e){const n=t.rank,r=e.length;for(let i=0;i<r;++i)if(n<e[i].rank){this.rerank(t);return}}let MLe=0;function F5(t,e,n){this.id=++MLe,this.value=null,n&&(this.receive=n),t&&(this._filter=t),e&&(this._apply=e)}function tc(t,e,n){return new F5(t,e,n)}F5.prototype={_filter:Go,_apply:mi,targets(){return this._targets||(this._targets=qb(Ab))},consume(t){return arguments.length?(this._consume=!!t,this):!!this._consume},receive(t){if(this._filter(t)){const e=this.value=this._apply(t),n=this._targets,r=n?n.length:0;for(let i=0;i<r;++i)n[i].receive(e);this._consume&&(t.preventDefault(),t.stopPropagation())}},filter(t){const e=tc(t);return this.targets().add(e),e},apply(t){const e=tc(null,t);return this.targets().add(e),e},merge(){const t=tc();this.targets().add(t);for(let e=0,n=arguments.length;e<n;++e)arguments[e].targets().add(t);return t},throttle(t){let e=-1;return this.filter(()=>{const n=Date.now();return n-e>t?(e=n,1):0})},debounce(t){const e=tc();return this.targets().add(tc(null,null,MW(t,n=>{const r=n.dataflow;e.receive(n),r&&r.run&&r.run()}))),e},between(t,e){let n=!1;return t.targets().add(tc(null,null,()=>n=!0)),e.targets().add(tc(null,null,()=>n=!1)),this.filter(()=>n)},detach(){this._filter=Go,this._targets=null}};function jLe(t,e,n,r){const i=this,s=tc(n,r),o=function(l){l.dataflow=i;try{s.receive(l)}catch(c){i.error(c)}finally{i.run()}};let u;typeof t=="string"&&typeof document<"u"?u=document.querySelectorAll(t):u=Pe(t);const a=u.length;for(let l=0;l<a;++l)u[l].addEventListener(e,o);return s}function ULe(t,e){const n=this.locale();return NLe(t,e,n.timeParse,n.utcParse)}function qLe(t,e,n){return e=this.parse(e,n),this.pulse(t,this.changeset().insert(e))}async function HLe(t,e){const n=this;let r=0,i;try{i=await n.loader().load(t,{context:"dataflow",response:OLe(e&&e.type)});try{i=n.parse(i,e)}catch(s){r=-2,n.warn("Data ingestion failed",t,s)}}catch(s){r=-1,n.warn("Loading failed",t,s)}return{data:i,status:r}}async function zLe(t,e,n){const r=this,i=r._pending||QLe(r);i.requests+=1;const s=await r.request(e,n);return r.pulse(t,r.changeset().remove(Go).insert(s.data||[])),i.done(),s}function QLe(t){let e;const n=new Promise(r=>e=r);return n.requests=0,n.done=()=>{--n.requests===0&&(t._pending=null,e(t))},t._pending=n}const GLe={skip:!0};function WLe(t,e,n,r,i){return(t instanceof Yt?YLe:VLe)(this,t,e,n,r,i),this}function VLe(t,e,n,r,i,s){const o=ft({},s,GLe);let u,a;ct(n)||(n=Ei(n)),r===void 0?u=l=>t.touch(n(l)):ct(r)?(a=new Yt(null,r,i,!1),u=l=>{a.evaluate(l);const c=n(l),f=a.value;lY(f)?t.pulse(c,f,s):t.update(c,f,o)}):u=l=>t.update(n(l),r,o),e.apply(u)}function YLe(t,e,n,r,i,s){if(r===void 0)e.targets().add(n);else{const o=s||{},u=new Yt(null,XLe(n,r),i,!1);u.modified(o.force),u.rank=e.rank,e.targets().add(u),n&&(u.skip(!0),u.value=n.value,u.targets().add(n),t.connect(n,[u]))}}function XLe(t,e){return e=ct(e)?e:Ei(e),t?function(n,r){const i=e(n,r);return t.skip()||(t.skip(i!==this.value).value=i),i}:e}function KLe(t){t.rank=++this._rank}function JLe(t){const e=[t];let n,r,i;for(;e.length;)if(this.rank(n=e.pop()),r=n._targets)for(i=r.length;--i>=0;)e.push(n=r[i]),n===t&&ve("Cycle detected in dataflow graph.")}const Gb={},ea=1,nc=2,_l=4,ZLe=ea|nc,fY=ea|_l,Op=ea|nc|_l,xY=8,vy=16,dY=32,hY=64;function Dx(t,e,n){this.dataflow=t,this.stamp=e??-1,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=n||null}function w5(t,e){const n=[];return _x(t,e,r=>n.push(r)),n}function pY(t,e){const n={};return t.visit(e,r=>{n[Ze(r)]=1}),r=>n[Ze(r)]?null:r}function Wb(t,e){return t?(n,r)=>t(n,r)&&e(n,r):e}Dx.prototype={StopPropagation:Gb,ADD:ea,REM:nc,MOD:_l,ADD_REM:ZLe,ADD_MOD:fY,ALL:Op,REFLOW:xY,SOURCE:vy,NO_SOURCE:dY,NO_FIELDS:hY,fork(t){return new Dx(this.dataflow).init(this,t)},clone(){const t=this.fork(Op);return t.add=t.add.slice(),t.rem=t.rem.slice(),t.mod=t.mod.slice(),t.source&&(t.source=t.source.slice()),t.materialize(Op|vy)},addAll(){let t=this;return!t.source||t.add===t.rem||!t.rem.length&&t.source.length===t.add.length||(t=new Dx(this.dataflow).init(this),t.add=t.source,t.rem=[]),t},init(t,e){const n=this;return n.stamp=t.stamp,n.encode=t.encode,t.fields&&!(e&hY)&&(n.fields=t.fields),e&ea?(n.addF=t.addF,n.add=t.add):(n.addF=null,n.add=[]),e&nc?(n.remF=t.remF,n.rem=t.rem):(n.remF=null,n.rem=[]),e&_l?(n.modF=t.modF,n.mod=t.mod):(n.modF=null,n.mod=[]),e&dY?(n.srcF=null,n.source=null):(n.srcF=t.srcF,n.source=t.source,t.cleans&&(n.cleans=t.cleans)),n},runAfter(t){this.dataflow.runAfter(t)},changed(t){const e=t||Op;return e&ea&&this.add.length||e&nc&&this.rem.length||e&_l&&this.mod.length},reflow(t){if(t)return this.fork(Op).reflow();const e=this.add.length,n=this.source&&this.source.length;return n&&n!==e&&(this.mod=this.source,e&&this.filter(_l,pY(this,ea))),this},clean(t){return arguments.length?(this.cleans=!!t,this):this.cleans},modifies(t){const e=this.fields||(this.fields={});return _e(t)?t.forEach(n=>e[n]=!0):e[t]=!0,this},modified(t,e){const n=this.fields;return(e||this.mod.length)&&n?arguments.length?_e(t)?t.some(r=>n[r]):n[t]:!!n:!1},filter(t,e){const n=this;return t&ea&&(n.addF=Wb(n.addF,e)),t&nc&&(n.remF=Wb(n.remF,e)),t&_l&&(n.modF=Wb(n.modF,e)),t&vy&&(n.srcF=Wb(n.srcF,e)),n},materialize(t){t=t||Op;const e=this;return t&ea&&e.addF&&(e.add=w5(e.add,e.addF),e.addF=null),t&nc&&e.remF&&(e.rem=w5(e.rem,e.remF),e.remF=null),t&_l&&e.modF&&(e.mod=w5(e.mod,e.modF),e.modF=null),t&vy&&e.srcF&&(e.source=e.source.filter(e.srcF),e.srcF=null),e},visit(t,e){const n=this,r=e;if(t&vy)return _x(n.source,n.srcF,r),n;t&ea&&_x(n.add,n.addF,r),t&nc&&_x(n.rem,n.remF,r),t&_l&&_x(n.mod,n.modF,r);const i=n.source;if(t&xY&&i){const s=n.add.length+n.mod.length;s===i.length||(s?_x(i,pY(n,fY),r):_x(i,n.srcF,r))}return n}};function gY(t,e,n,r){const i=this;let s=0;this.dataflow=t,this.stamp=e,this.fields=null,this.encode=r||null,this.pulses=n;for(const o of n)if(o.stamp===e){if(o.fields){const u=i.fields||(i.fields={});for(const a in o.fields)u[a]=1}o.changed(i.ADD)&&(s|=i.ADD),o.changed(i.REM)&&(s|=i.REM),o.changed(i.MOD)&&(s|=i.MOD)}this.changes=s}Fe(gY,Dx,{fork(t){const e=new Dx(this.dataflow).init(this,t&this.NO_FIELDS);return t!==void 0&&(t&e.ADD&&this.visit(e.ADD,n=>e.add.push(n)),t&e.REM&&this.visit(e.REM,n=>e.rem.push(n)),t&e.MOD&&this.visit(e.MOD,n=>e.mod.push(n))),e},changed(t){return this.changes&t},modified(t){const e=this,n=e.fields;return n&&e.changes&e.MOD?_e(t)?t.some(r=>n[r]):n[t]:0},filter(){ve("MultiPulse does not support filtering.")},materialize(){ve("MultiPulse does not support materialization.")},visit(t,e){const n=this,r=n.pulses,i=r.length;let s=0;if(t&n.SOURCE)for(;s<i;++s)r[s].visit(t,e);else for(;s<i;++s)r[s].stamp===n.stamp&&r[s].visit(t,e);return n}});async function e4e(t,e,n){const r=this,i=[];if(r._pulse)return mY(r);if(r._pending&&await r._pending,e&&await Hb(r,e),!r._touched.length)return r.debug("Dataflow invoked, but nothing to do."),r;const s=++r._clock;r._pulse=new Dx(r,s,t),r._touched.forEach(c=>r._enqueue(c,!0)),r._touched=qb(Ab);let o=0,u,a,l;try{for(;r._heap.size()>0;){if(u=r._heap.pop(),u.rank!==u.qrank){r._enqueue(u,!0);continue}a=u.run(r._getPulse(u,t)),a.then?a=await a:a.async&&(i.push(a.async),a=Gb),a!==Gb&&u._targets&&u._targets.forEach(c=>r._enqueue(c)),++o}}catch(c){r._heap.clear(),l=c}if(r._input={},r._pulse=null,r.debug(`Pulse ${s}: ${o} operators`),l&&(r._postrun=[],r.error(l)),r._postrun.length){const c=r._postrun.sort((f,x)=>x.priority-f.priority);r._postrun=[];for(let f=0;f<c.length;++f)await Hb(r,c[f].callback)}return n&&await Hb(r,n),i.length&&Promise.all(i).then(c=>r.runAsync(null,()=>{c.forEach(f=>{try{f(r)}catch(x){r.error(x)}})})),r}async function t4e(t,e,n){for(;this._running;)await this._running;const r=()=>this._running=null;return(this._running=this.evaluate(t,e,n)).then(r,r),this._running}function n4e(t,e,n){return this._pulse?mY(this):(this.evaluate(t,e,n),this)}function r4e(t,e,n){if(this._pulse||e)this._postrun.push({priority:n||0,callback:t});else try{t(this)}catch(r){this.error(r)}}function mY(t){return t.error("Dataflow already running. Use runAsync() to chain invocations."),t}function i4e(t,e){const n=t.stamp<this._clock;n&&(t.stamp=this._clock),(n||e)&&(t.qrank=t.rank,this._heap.push(t))}function s4e(t,e){const n=t.source,r=this._clock;return n&&_e(n)?new gY(this,r,n.map(i=>i.pulse),e):this._input[t.id]||o4e(this._pulse,n&&n.pulse)}function o4e(t,e){return e&&e.stamp===t.stamp?e:(t=t.fork(),e&&e!==Gb&&(t.source=e.source),t)}const L5={skip:!1,force:!1};function u4e(t,e){const n=e||L5;return this._pulse?this._enqueue(t):this._touched.add(t),n.skip&&t.skip(!0),this}function a4e(t,e,n){const r=n||L5;return(t.set(e)||r.force)&&this.touch(t,r),this}function l4e(t,e,n){this.touch(t,n||L5);const r=new Dx(this,this._clock+(this._pulse?0:1)),i=t.pulse&&t.pulse.source||[];return r.target=t,this._input[t.id]=e.pulse(r,i),this}function c4e(t){let e=[];return{clear:()=>e=[],size:()=>e.length,peek:()=>e[0],push:n=>(e.push(n),yY(e,0,e.length-1,t)),pop:()=>{const n=e.pop();let r;return e.length?(r=e[0],e[0]=n,f4e(e,0,t)):r=n,r}}}function yY(t,e,n,r){let i,s;const o=t[n];for(;n>e;){if(s=n-1>>1,i=t[s],r(o,i)<0){t[n]=i,n=s;continue}break}return t[n]=o}function f4e(t,e,n){const r=e,i=t.length,s=t[e];let o=(e<<1)+1,u;for(;o<i;)u=o+1,u<i&&n(t[o],t[u])>=0&&(o=u),t[e]=t[o],e=o,o=(e<<1)+1;return t[e]=s,yY(t,r,e,n)}function _y(){this.logger(NW()),this.logLevel(RW),this._clock=0,this._rank=0,this._locale=uLe();try{this._loader=R5()}catch{}this._touched=qb(Ab),this._input={},this._pulse=null,this._heap=c4e((t,e)=>t.qrank-e.qrank),this._postrun=[]}function Cy(t){return function(){return this._log[t].apply(this,arguments)}}_y.prototype={stamp(){return this._clock},loader(t){return arguments.length?(this._loader=t,this):this._loader},locale(t){return arguments.length?(this._locale=t,this):this._locale},logger(t){return arguments.length?(this._log=t,this):this._log},error:Cy("error"),warn:Cy("warn"),info:Cy("info"),debug:Cy("debug"),logLevel:Cy("level"),cleanThreshold:1e4,add:kLe,connect:PLe,rank:KLe,rerank:JLe,pulse:l4e,touch:u4e,update:a4e,changeset:Rp,ingest:qLe,parse:ULe,preload:zLe,request:HLe,events:jLe,on:WLe,evaluate:e4e,run:n4e,runAsync:t4e,runAfter:r4e,_enqueue:i4e,_getPulse:s4e};function pe(t,e){Yt.call(this,t,null,e)}Fe(pe,Yt,{run(t){if(t.stamp<this.stamp)return t.StopPropagation;let e;return this.skip()?this.skip(!1):e=this.evaluate(t),e=e||t,e.then?e=e.then(n=>this.pulse=n):e!==t.StopPropagation&&(this.pulse=e),e},evaluate(t){const e=this.marshall(t.stamp),n=this.transform(e,t);return e.clear(),n},transform(){}});const by={};function x4e(t){const e=d4e(t);return e&&e.Definition||null}function d4e(t){return t=t&&t.toLowerCase(),Je(by,t)?by[t]:null}function*EY(t,e){if(e==null)for(let n of t)n!=null&&n!==""&&(n=+n)>=n&&(yield n);else{let n=-1;for(let r of t)r=e(r,++n,t),r!=null&&r!==""&&(r=+r)>=r&&(yield r)}}function AY(t,e,n){const r=Float64Array.from(EY(t,n));return r.sort(gl),e.map(i=>rV(r,i))}function SY(t,e){return AY(t,[.25,.5,.75],e)}function vY(t,e){const n=t.length,r=sFe(t,e),i=SY(t,e),s=(i[2]-i[0])/1.34;return 1.06*(Math.min(r,s)||r||Math.abs(i[0])||1)*Math.pow(n,-.2)}function h4e(t){const e=t.maxbins||20,n=t.base||10,r=Math.log(n),i=t.divide||[5,2];let s=t.extent[0],o=t.extent[1],u,a,l,c,f,x;const h=t.span||o-s||Math.abs(s)||1;if(t.step)u=t.step;else if(t.steps){for(c=h/e,f=0,x=t.steps.length;f<x&&t.steps[f]<c;++f);u=t.steps[Math.max(0,f-1)]}else{for(a=Math.ceil(Math.log(e)/r),l=t.minstep||0,u=Math.max(l,Math.pow(n,Math.round(Math.log(h)/r)-a));Math.ceil(h/u)>e;)u*=n;for(f=0,x=i.length;f<x;++f)c=u/i[f],c>=l&&h/c<=e&&(u=c)}c=Math.log(u);const p=c>=0?0:~~(-c/r)+1,m=Math.pow(n,-p-1);return(t.nice||t.nice===void 0)&&(c=Math.floor(s/u+m)*u,s=s<c?c-u:c,o=Math.ceil(o/u)*u),{start:s,stop:o===s?s+u:o,step:u}}var Cl=Math.random;function p4e(t,e,n,r){if(!t.length)return[void 0,void 0];const i=Float64Array.from(EY(t,r)),s=i.length,o=e;let u,a,l,c;for(l=0,c=Array(o);l<o;++l){for(u=0,a=0;a<s;++a)u+=i[~~(Cl()*s)];c[l]=u/s}return c.sort(gl),[n5(c,n/2),n5(c,1-n/2)]}function g4e(t,e,n,r){r=r||(x=>x);const i=t.length,s=new Float64Array(i);let o=0,u=1,a=r(t[0]),l=a,c=a+e,f;for(;u<i;++u){if(f=r(t[u]),f>=c){for(l=(a+l)/2;o<u;++o)s[o]=l;c=f+e,a=f}l=f}for(l=(a+l)/2;o<u;++o)s[o]=l;return n?m4e(s,e+e/4):s}function m4e(t,e){const n=t.length;let r=0,i=1,s,o;for(;t[r]===t[i];)++i;for(;i<n;){for(s=i+1;t[i]===t[s];)++s;if(t[i]-t[i-1]<e){for(o=i+(r+s-i-i>>1);o<i;)t[o++]=t[i];for(;o>i;)t[o--]=t[r]}r=i,i=s}return t}const _Y=Math.sqrt(2*Math.PI),y4e=Math.SQRT2;let Ty=NaN;function I5(t,e){t=t||0,e=e??1;let n=0,r=0,i,s;if(Ty===Ty)n=Ty,Ty=NaN;else{do n=Cl()*2-1,r=Cl()*2-1,i=n*n+r*r;while(i===0||i>1);s=Math.sqrt(-2*Math.log(i)/i),n*=s,Ty=r*s}return t+n*e}function CY(t,e,n){n=n??1;const r=(t-(e||0))/n;return Math.exp(-.5*r*r)/(n*_Y)}function $5(t,e,n){e=e||0,n=n??1;const r=(t-e)/n,i=Math.abs(r);let s;if(i>37)s=0;else{const o=Math.exp(-i*i/2);let u;i<7.07106781186547?(u=.0352624965998911*i+.700383064443688,u=u*i+6.37396220353165,u=u*i+33.912866078383,u=u*i+112.079291497871,u=u*i+221.213596169931,u=u*i+220.206867912376,s=o*u,u=.0883883476483184*i+1.75566716318264,u=u*i+16.064177579207,u=u*i+86.7807322029461,u=u*i+296.564248779674,u=u*i+637.333633378831,u=u*i+793.826512519948,u=u*i+440.413735824752,s=s/u):(u=i+.65,u=i+4/u,u=i+3/u,u=i+2/u,u=i+1/u,s=o/u/2.506628274631)}return r>0?1-s:s}function B5(t,e,n){return t<0||t>1?NaN:(e||0)+(n??1)*y4e*E4e(2*t-1)}function E4e(t){let e=-Math.log((1-t)*(1+t)),n;return e<6.25?(e-=3.125,n=-364441206401782e-35,n=-16850591381820166e-35+n*e,n=128584807152564e-32+n*e,n=11157877678025181e-33+n*e,n=-1333171662854621e-31+n*e,n=20972767875968562e-33+n*e,n=6637638134358324e-30+n*e,n=-4054566272975207e-29+n*e,n=-8151934197605472e-29+n*e,n=26335093153082323e-28+n*e,n=-12975133253453532e-27+n*e,n=-5415412054294628e-26+n*e,n=10512122733215323e-25+n*e,n=-4112633980346984e-24+n*e,n=-29070369957882005e-24+n*e,n=42347877827932404e-23+n*e,n=-13654692000834679e-22+n*e,n=-13882523362786469e-21+n*e,n=.00018673420803405714+n*e,n=-.000740702534166267+n*e,n=-.006033670871430149+n*e,n=.24015818242558962+n*e,n=1.6536545626831027+n*e):e<16?(e=Math.sqrt(e)-3.25,n=22137376921775787e-25,n=9075656193888539e-23+n*e,n=-27517406297064545e-23+n*e,n=18239629214389228e-24+n*e,n=15027403968909828e-22+n*e,n=-4013867526981546e-21+n*e,n=29234449089955446e-22+n*e,n=12475304481671779e-21+n*e,n=-47318229009055734e-21+n*e,n=6828485145957318e-20+n*e,n=24031110387097894e-21+n*e,n=-.0003550375203628475+n*e,n=.0009532893797373805+n*e,n=-.0016882755560235047+n*e,n=.002491442096107851+n*e,n=-.003751208507569241+n*e,n=.005370914553590064+n*e,n=1.0052589676941592+n*e,n=3.0838856104922208+n*e):Number.isFinite(e)?(e=Math.sqrt(e)-5,n=-27109920616438573e-27,n=-2555641816996525e-25+n*e,n=15076572693500548e-25+n*e,n=-3789465440126737e-24+n*e,n=761570120807834e-23+n*e,n=-1496002662714924e-23+n*e,n=2914795345090108e-23+n*e,n=-6771199775845234e-23+n*e,n=22900482228026655e-23+n*e,n=-99298272942317e-20+n*e,n=4526062597223154e-21+n*e,n=-1968177810553167e-20+n*e,n=7599527703001776e-20+n*e,n=-.00021503011930044477+n*e,n=-.00013871931833623122+n*e,n=1.0103004648645344+n*e,n=4.849906401408584+n*e):n=1/0,n*t}function bY(t,e){let n,r;const i={mean(s){return arguments.length?(n=s||0,i):n},stdev(s){return arguments.length?(r=s??1,i):r},sample:()=>I5(n,r),pdf:s=>CY(s,n,r),cdf:s=>$5(s,n,r),icdf:s=>B5(s,n,r)};return i.mean(t).stdev(e)}function TY(t,e){const n=bY();let r=0;const i={data(s){return arguments.length?(t=s,r=s?s.length:0,i.bandwidth(e)):t},bandwidth(s){return arguments.length?(e=s,!e&&t&&(e=vY(t)),i):e},sample(){return t[~~(Cl()*r)]+e*n.sample()},pdf(s){let o=0,u=0;for(;u<r;++u)o+=n.pdf((s-t[u])/e);return o/e/r},cdf(s){let o=0,u=0;for(;u<r;++u)o+=n.cdf((s-t[u])/e);return o/r},icdf(){throw Error("KDE icdf not supported.")}};return i.data(t)}function RY(t,e){return t=t||0,e=e??1,Math.exp(t+I5()*e)}function OY(t,e,n){if(t<=0)return 0;e=e||0,n=n??1;const r=(Math.log(t)-e)/n;return Math.exp(-.5*r*r)/(n*_Y*t)}function NY(t,e,n){return $5(Math.log(t),e,n)}function DY(t,e,n){return Math.exp(B5(t,e,n))}function A4e(t,e){let n,r;const i={mean(s){return arguments.length?(n=s||0,i):n},stdev(s){return arguments.length?(r=s??1,i):r},sample:()=>RY(n,r),pdf:s=>OY(s,n,r),cdf:s=>NY(s,n,r),icdf:s=>DY(s,n,r)};return i.mean(t).stdev(e)}function S4e(t,e){let n=0,r;function i(o){const u=[];let a=0,l;for(l=0;l<n;++l)a+=u[l]=o[l]==null?1:+o[l];for(l=0;l<n;++l)u[l]/=a;return u}const s={weights(o){return arguments.length?(r=i(e=o||[]),s):e},distributions(o){return arguments.length?(o?(n=o.length,t=o):(n=0,t=[]),s.weights(e)):t},sample(){const o=Cl();let u=t[n-1],a=r[0],l=0;for(;l<n-1;a+=r[++l])if(o<a){u=t[l];break}return u.sample()},pdf(o){let u=0,a=0;for(;a<n;++a)u+=r[a]*t[a].pdf(o);return u},cdf(o){let u=0,a=0;for(;a<n;++a)u+=r[a]*t[a].cdf(o);return u},icdf(){throw Error("Mixture icdf not supported.")}};return s.distributions(t).weights(e)}function FY(t,e){return e==null&&(e=t??1,t=0),t+(e-t)*Cl()}function wY(t,e,n){return n==null&&(n=e??1,e=0),t>=e&&t<=n?1/(n-e):0}function LY(t,e,n){return n==null&&(n=e??1,e=0),t<e?0:t>n?1:(t-e)/(n-e)}function IY(t,e,n){return n==null&&(n=e??1,e=0),t>=0&&t<=1?e+t*(n-e):NaN}function v4e(t,e){let n,r;const i={min(s){return arguments.length?(n=s||0,i):n},max(s){return arguments.length?(r=s??1,i):r},sample:()=>FY(n,r),pdf:s=>wY(s,n,r),cdf:s=>LY(s,n,r),icdf:s=>IY(s,n,r)};return e==null&&(e=t??1,t=0),i.min(t).max(e)}function Ry(t,e,n,r){const i=r-t*t,s=Math.abs(i)<1e-24?0:(n-t*e)/i;return[e-s*t,s]}function Vb(t,e,n,r){t=t.filter(h=>{let p=e(h),m=n(h);return p!=null&&(p=+p)>=p&&m!=null&&(m=+m)>=m}),r&&t.sort((h,p)=>e(h)-e(p));const i=t.length,s=new Float64Array(i),o=new Float64Array(i);let u=0,a=0,l=0,c,f,x;for(x of t)s[u]=c=+e(x),o[u]=f=+n(x),++u,a+=(c-a)/u,l+=(f-l)/u;for(u=0;u<i;++u)s[u]-=a,o[u]-=l;return[s,o,a,l]}function Oy(t,e,n,r){let i=-1,s,o;for(const u of t)s=e(u),o=n(u),s!=null&&(s=+s)>=s&&o!=null&&(o=+o)>=o&&r(s,o,++i)}function Np(t,e,n,r,i){let s=0,o=0;return Oy(t,e,n,(u,a)=>{const l=a-i(u),c=a-r;s+=l*l,o+=c*c}),1-s/o}function $Y(t,e,n){let r=0,i=0,s=0,o=0,u=0;Oy(t,e,n,(c,f)=>{++u,r+=(c-r)/u,i+=(f-i)/u,s+=(c*f-s)/u,o+=(c*c-o)/u});const a=Ry(r,i,s,o),l=c=>a[0]+a[1]*c;return{coef:a,predict:l,rSquared:Np(t,e,n,i,l)}}function _4e(t,e,n){let r=0,i=0,s=0,o=0,u=0;Oy(t,e,n,(c,f)=>{++u,c=Math.log(c),r+=(c-r)/u,i+=(f-i)/u,s+=(c*f-s)/u,o+=(c*c-o)/u});const a=Ry(r,i,s,o),l=c=>a[0]+a[1]*Math.log(c);return{coef:a,predict:l,rSquared:Np(t,e,n,i,l)}}function C4e(t,e,n){const[r,i,s,o]=Vb(t,e,n);let u=0,a=0,l=0,c=0,f=0,x,h,p;Oy(t,e,n,(E,A)=>{x=r[f++],h=Math.log(A),p=x*A,u+=(A*h-u)/f,a+=(p-a)/f,l+=(p*h-l)/f,c+=(x*p-c)/f});const[m,g]=Ry(a/o,u/o,l/o,c/o),y=E=>Math.exp(m+g*(E-s));return{coef:[Math.exp(m-g*s),g],predict:y,rSquared:Np(t,e,n,o,y)}}function b4e(t,e,n){let r=0,i=0,s=0,o=0,u=0,a=0;Oy(t,e,n,(f,x)=>{const h=Math.log(f),p=Math.log(x);++a,r+=(h-r)/a,i+=(p-i)/a,s+=(h*p-s)/a,o+=(h*h-o)/a,u+=(x-u)/a});const l=Ry(r,i,s,o),c=f=>l[0]*Math.pow(f,l[1]);return l[0]=Math.exp(l[0]),{coef:l,predict:c,rSquared:Np(t,e,n,u,c)}}function BY(t,e,n){const[r,i,s,o]=Vb(t,e,n),u=r.length;let a=0,l=0,c=0,f=0,x=0,h,p,m,g;for(h=0;h<u;)p=r[h],m=i[h++],g=p*p,a+=(g-a)/h,l+=(g*p-l)/h,c+=(g*g-c)/h,f+=(p*m-f)/h,x+=(g*m-x)/h;const y=c-a*a,E=a*y-l*l,A=(x*a-f*l)/E,S=(f*y-x*l)/E,v=-A*a,_=C=>(C=C-s,A*C*C+S*C+v+o);return{coef:[v-S*s+A*s*s+o,S-2*A*s,A],predict:_,rSquared:Np(t,e,n,o,_)}}function T4e(t,e,n,r){if(r===1)return $Y(t,e,n);if(r===2)return BY(t,e,n);const[i,s,o,u]=Vb(t,e,n),a=i.length,l=[],c=[],f=r+1;let x,h,p,m,g;for(x=0;x<f;++x){for(p=0,m=0;p<a;++p)m+=Math.pow(i[p],x)*s[p];for(l.push(m),g=new Float64Array(f),h=0;h<f;++h){for(p=0,m=0;p<a;++p)m+=Math.pow(i[p],x+h);g[h]=m}c.push(g)}c.push(l);const y=O4e(c),E=A=>{A-=o;let S=u+y[0]+y[1]*A+y[2]*A*A;for(x=3;x<f;++x)S+=y[x]*Math.pow(A,x);return S};return{coef:R4e(f,y,-o,u),predict:E,rSquared:Np(t,e,n,u,E)}}function R4e(t,e,n,r){const i=Array(t);let s,o,u,a;for(s=0;s<t;++s)i[s]=0;for(s=t-1;s>=0;--s)for(u=e[s],a=1,i[s]+=u,o=1;o<=s;++o)a*=(s+1-o)/o,i[s-o]+=u*Math.pow(n,o)*a;return i[0]+=r,i}function O4e(t){const e=t.length-1,n=[];let r,i,s,o,u;for(r=0;r<e;++r){for(o=r,i=r+1;i<e;++i)Math.abs(t[r][i])>Math.abs(t[r][o])&&(o=i);for(s=r;s<e+1;++s)u=t[s][r],t[s][r]=t[s][o],t[s][o]=u;for(i=r+1;i<e;++i)for(s=e;s>=r;s--)t[s][i]-=t[s][r]*t[r][i]/t[r][r]}for(i=e-1;i>=0;--i){for(u=0,s=i+1;s<e;++s)u+=t[s][i]*n[s];n[i]=(t[e][i]-u)/t[i][i]}return n}const kY=2,PY=1e-12;function N4e(t,e,n,r){const[i,s,o,u]=Vb(t,e,n,!0),a=i.length,l=Math.max(2,~~(r*a)),c=new Float64Array(a),f=new Float64Array(a),x=new Float64Array(a).fill(1);for(let h=-1;++h<=kY;){const p=[0,l-1];for(let g=0;g<a;++g){const y=i[g],E=p[0],A=p[1],S=y-i[E]>i[A]-y?E:A;let v=0,_=0,C=0,b=0,R=0;const O=1/Math.abs(i[S]-y||1);for(let q=E;q<=A;++q){const W=i[q],B=s[q],G=D4e(Math.abs(y-W)*O)*x[q],te=W*G;v+=G,_+=te,C+=B*G,b+=B*te,R+=W*te}const[L,M]=Ry(_/v,C/v,b/v,R/v);c[g]=L+M*y,f[g]=Math.abs(s[g]-c[g]),F4e(i,g+1,p)}if(h===kY)break;const m=iV(f);if(Math.abs(m)<PY)break;for(let g=0,y,E;g<a;++g)y=f[g]/(6*m),x[g]=y>=1?PY:(E=1-y*y)*E}return w4e(i,c,o,u)}function D4e(t){return(t=1-t*t*t)*t*t}function F4e(t,e,n){const r=t[e];let i=n[0],s=n[1]+1;if(!(s>=t.length))for(;e>i&&t[s]-r<=r-t[i];)n[0]=++i,n[1]=s,++s}function w4e(t,e,n,r){const i=t.length,s=[];let o=0,u=0,a=[],l;for(;o<i;++o)l=t[o]+n,a[0]===l?a[1]+=(e[o]-a[1])/++u:(u=0,a[1]+=r,a=[l,e[o]],s.push(a));return a[1]+=r,s}const L4e=.5*Math.PI/180;function k5(t,e,n,r){n=n||25,r=Math.max(n,r||200);const i=m=>[m,t(m)],s=e[0],o=e[1],u=o-s,a=u/r,l=[i(s)],c=[];if(n===r){for(let m=1;m<r;++m)l.push(i(s+m/n*u));return l.push(i(o)),l}else{c.push(i(o));for(let m=n;--m>0;)c.push(i(s+m/n*u))}let f=l[0],x=c[c.length-1];const h=1/u,p=I4e(f[1],c);for(;x;){const m=i((f[0]+x[0])/2);m[0]-f[0]>=a&&$4e(f,m,x,h,p)>L4e?c.push(m):(f=x,l.push(x),c.pop()),x=c[c.length-1]}return l}function I4e(t,e){let n=t,r=t;const i=e.length;for(let s=0;s<i;++s){const o=e[s][1];o<n&&(n=o),o>r&&(r=o)}return 1/(r-n)}function $4e(t,e,n,r,i){const s=Math.atan2(i*(n[1]-t[1]),r*(n[0]-t[0])),o=Math.atan2(i*(e[1]-t[1]),r*(e[0]-t[0]));return Math.abs(s-o)}function B4e(t){return e=>{const n=t.length;let r=1,i=String(t[0](e));for(;r<n;++r)i+="|"+t[r](e);return i}}function P5(t){return!t||!t.length?function(){return""}:t.length===1?t[0]:B4e(t)}function MY(t,e,n){return n||t+(e?"_"+e:"")}const M5=()=>{},k4e={init:M5,add:M5,rem:M5,idx:0},Ny={values:{init:t=>t.cell.store=!0,value:t=>t.cell.data.values(),idx:-1},count:{value:t=>t.cell.num},__count__:{value:t=>t.missing+t.valid},missing:{value:t=>t.missing},valid:{value:t=>t.valid},sum:{init:t=>t.sum=0,value:t=>t.sum,add:(t,e)=>t.sum+=+e,rem:(t,e)=>t.sum-=e},product:{init:t=>t.product=1,value:t=>t.valid?t.product:void 0,add:(t,e)=>t.product*=e,rem:(t,e)=>t.product/=e},mean:{init:t=>t.mean=0,value:t=>t.valid?t.mean:void 0,add:(t,e)=>(t.mean_d=e-t.mean,t.mean+=t.mean_d/t.valid),rem:(t,e)=>(t.mean_d=e-t.mean,t.mean-=t.valid?t.mean_d/t.valid:t.mean)},average:{value:t=>t.valid?t.mean:void 0,req:["mean"],idx:1},variance:{init:t=>t.dev=0,value:t=>t.valid>1?t.dev/(t.valid-1):void 0,add:(t,e)=>t.dev+=t.mean_d*(e-t.mean),rem:(t,e)=>t.dev-=t.mean_d*(e-t.mean),req:["mean"],idx:1},variancep:{value:t=>t.valid>1?t.dev/t.valid:void 0,req:["variance"],idx:2},stdev:{value:t=>t.valid>1?Math.sqrt(t.dev/(t.valid-1)):void 0,req:["variance"],idx:2},stdevp:{value:t=>t.valid>1?Math.sqrt(t.dev/t.valid):void 0,req:["variance"],idx:2},stderr:{value:t=>t.valid>1?Math.sqrt(t.dev/(t.valid*(t.valid-1))):void 0,req:["variance"],idx:2},distinct:{value:t=>t.cell.data.distinct(t.get),req:["values"],idx:3},ci0:{value:t=>t.cell.data.ci0(t.get),req:["values"],idx:3},ci1:{value:t=>t.cell.data.ci1(t.get),req:["values"],idx:3},median:{value:t=>t.cell.data.q2(t.get),req:["values"],idx:3},q1:{value:t=>t.cell.data.q1(t.get),req:["values"],idx:3},q3:{value:t=>t.cell.data.q3(t.get),req:["values"],idx:3},min:{init:t=>t.min=void 0,value:t=>t.min=Number.isNaN(t.min)?t.cell.data.min(t.get):t.min,add:(t,e)=>{(e<t.min||t.min===void 0)&&(t.min=e)},rem:(t,e)=>{e<=t.min&&(t.min=NaN)},req:["values"],idx:4},max:{init:t=>t.max=void 0,value:t=>t.max=Number.isNaN(t.max)?t.cell.data.max(t.get):t.max,add:(t,e)=>{(e>t.max||t.max===void 0)&&(t.max=e)},rem:(t,e)=>{e>=t.max&&(t.max=NaN)},req:["values"],idx:4},argmin:{init:t=>t.argmin=void 0,value:t=>t.argmin||t.cell.data.argmin(t.get),add:(t,e,n)=>{e<t.min&&(t.argmin=n)},rem:(t,e)=>{e<=t.min&&(t.argmin=void 0)},req:["min","values"],idx:3},argmax:{init:t=>t.argmax=void 0,value:t=>t.argmax||t.cell.data.argmax(t.get),add:(t,e,n)=>{e>t.max&&(t.argmax=n)},rem:(t,e)=>{e>=t.max&&(t.argmax=void 0)},req:["max","values"],idx:3}},Dy=Object.keys(Ny).filter(t=>t!=="__count__");function P4e(t,e){return n=>ft({name:t,out:n||t},k4e,e)}[...Dy,"__count__"].forEach(t=>{Ny[t]=P4e(t,Ny[t])});function jY(t,e){return Ny[t](e)}function UY(t,e){return t.idx-e.idx}function M4e(t){const e={};t.forEach(r=>e[r.name]=r);const n=r=>{r.req&&r.req.forEach(i=>{e[i]||n(e[i]=Ny[i]())})};return t.forEach(n),Object.values(e).sort(UY)}function j4e(){this.valid=0,this.missing=0,this._ops.forEach(t=>t.init(this))}function U4e(t,e){if(t==null||t===""){++this.missing;return}t===t&&(++this.valid,this._ops.forEach(n=>n.add(this,t,e)))}function q4e(t,e){if(t==null||t===""){--this.missing;return}t===t&&(--this.valid,this._ops.forEach(n=>n.rem(this,t,e)))}function H4e(t){return this._out.forEach(e=>t[e.out]=e.value(this)),t}function qY(t,e){const n=e||mi,r=M4e(t),i=t.slice().sort(UY);function s(o){this._ops=r,this._out=i,this.cell=o,this.init()}return s.prototype.init=j4e,s.prototype.add=U4e,s.prototype.rem=q4e,s.prototype.set=H4e,s.prototype.get=n,s.fields=t.map(o=>o.out),s}function j5(t){this._key=t?Ds(t):Ze,this.reset()}const Dr=j5.prototype;Dr.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null},Dr.add=function(t){this._add.push(t)},Dr.rem=function(t){this._rem.push(t)},Dr.values=function(){if(this._get=null,this._rem.length===0)return this._add;const t=this._add,e=this._rem,n=this._key,r=t.length,i=e.length,s=Array(r-i),o={};let u,a,l;for(u=0;u<i;++u)o[n(e[u])]=1;for(u=0,a=0;u<r;++u)o[n(l=t[u])]?o[n(l)]=0:s[a++]=l;return this._rem=[],this._add=s},Dr.distinct=function(t){const e=this.values(),n={};let r=e.length,i=0,s;for(;--r>=0;)s=t(e[r])+"",Je(n,s)||(n[s]=1,++i);return i},Dr.extent=function(t){if(this._get!==t||!this._ext){const e=this.values(),n=DDe(e,t);this._ext=[e[n[0]],e[n[1]]],this._get=t}return this._ext},Dr.argmin=function(t){return this.extent(t)[0]||{}},Dr.argmax=function(t){return this.extent(t)[1]||{}},Dr.min=function(t){const e=this.extent(t)[0];return e!=null?t(e):void 0},Dr.max=function(t){const e=this.extent(t)[1];return e!=null?t(e):void 0},Dr.quartile=function(t){return(this._get!==t||!this._q)&&(this._q=SY(this.values(),t),this._get=t),this._q},Dr.q1=function(t){return this.quartile(t)[0]},Dr.q2=function(t){return this.quartile(t)[1]},Dr.q3=function(t){return this.quartile(t)[2]},Dr.ci=function(t){return(this._get!==t||!this._ci)&&(this._ci=p4e(this.values(),1e3,.05,t),this._get=t),this._ci},Dr.ci0=function(t){return this.ci(t)[0]},Dr.ci1=function(t){return this.ci(t)[1]};function rc(t){pe.call(this,null,t),this._adds=[],this._mods=[],this._alen=0,this._mlen=0,this._drop=!0,this._cross=!1,this._dims=[],this._dnames=[],this._measures=[],this._countOnly=!1,this._counts=null,this._prev=null,this._inputs=null,this._outputs=null}rc.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:Dy},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"drop",type:"boolean",default:!0},{name:"cross",type:"boolean",default:!1},{name:"key",type:"field"}]},Fe(rc,pe,{transform(t,e){const n=this,r=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=t.modified();return n.stamp=r.stamp,n.value&&(i||e.modified(n._inputs,!0))?(n._prev=n.value,n.value=i?n.init(t):{},e.visit(e.SOURCE,s=>n.add(s))):(n.value=n.value||n.init(t),e.visit(e.REM,s=>n.rem(s)),e.visit(e.ADD,s=>n.add(s))),r.modifies(n._outputs),n._drop=t.drop!==!1,t.cross&&n._dims.length>1&&(n._drop=!1,n.cross()),e.clean()&&n._drop&&r.clean(!0).runAfter(()=>this.clean()),n.changes(r)},cross(){const t=this,e=t.value,n=t._dnames,r=n.map(()=>({})),i=n.length;function s(u){let a,l,c,f;for(a in u)for(c=u[a].tuple,l=0;l<i;++l)r[l][f=c[n[l]]]=f}s(t._prev),s(e);function o(u,a,l){const c=n[l],f=r[l++];for(const x in f){const h=u?u+"|"+x:x;a[c]=f[x],l<i?o(h,a,l):e[h]||t.cell(h,a)}}o("",{},0)},init(t){const e=this._inputs=[],n=this._outputs=[],r={};function i(g){const y=Pe(gi(g)),E=y.length;let A=0,S;for(;A<E;++A)r[S=y[A]]||(r[S]=1,e.push(S))}this._dims=Pe(t.groupby),this._dnames=this._dims.map(g=>{const y=$n(g);return i(g),n.push(y),y}),this.cellkey=t.key?t.key:P5(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];const s=t.fields||[null],o=t.ops||["count"],u=t.as||[],a=s.length,l={};let c,f,x,h,p,m;for(a!==o.length&&ve("Unmatched number of fields and aggregate ops."),m=0;m<a;++m){if(c=s[m],f=o[m],c==null&&f!=="count"&&ve("Null aggregate field specified."),h=$n(c),p=MY(f,h,u[m]),n.push(p),f==="count"){this._counts.push(p);continue}x=l[h],x||(i(c),x=l[h]=[],x.field=c,this._measures.push(x)),f!=="count"&&(this._countOnly=!1),x.push(jY(f,p))}return this._measures=this._measures.map(g=>qY(g,g.field)),{}},cellkey:P5(),cell(t,e){let n=this.value[t];return n?n.num===0&&this._drop&&n.stamp<this.stamp?(n.stamp=this.stamp,this._adds[this._alen++]=n):n.stamp<this.stamp&&(n.stamp=this.stamp,this._mods[this._mlen++]=n):(n=this.value[t]=this.newcell(t,e),this._adds[this._alen++]=n),n},newcell(t,e){const n={key:t,num:0,agg:null,tuple:this.newtuple(e,this._prev&&this._prev[t]),stamp:this.stamp,store:!1};if(!this._countOnly){const r=this._measures,i=r.length;n.agg=Array(i);for(let s=0;s<i;++s)n.agg[s]=new r[s](n)}return n.store&&(n.data=new j5),n},newtuple(t,e){const n=this._dnames,r=this._dims,i=r.length,s={};for(let o=0;o<i;++o)s[n[o]]=r[o](t);return e?aY(e.tuple,s):Lt(s)},clean(){const t=this.value;for(const e in t)t[e].num===0&&delete t[e]},add(t){const e=this.cellkey(t),n=this.cell(e,t);if(n.num+=1,this._countOnly)return;n.store&&n.data.add(t);const r=n.agg;for(let i=0,s=r.length;i<s;++i)r[i].add(r[i].get(t),t)},rem(t){const e=this.cellkey(t),n=this.cell(e,t);if(n.num-=1,this._countOnly)return;n.store&&n.data.rem(t);const r=n.agg;for(let i=0,s=r.length;i<s;++i)r[i].rem(r[i].get(t),t)},celltuple(t){const e=t.tuple,n=this._counts;t.store&&t.data.values();for(let r=0,i=n.length;r<i;++r)e[n[r]]=t.num;if(!this._countOnly){const r=t.agg;for(let i=0,s=r.length;i<s;++i)r[i].set(e)}return e},changes(t){const e=this._adds,n=this._mods,r=this._prev,i=this._drop,s=t.add,o=t.rem,u=t.mod;let a,l,c,f;if(r)for(l in r)a=r[l],(!i||a.num)&&o.push(a.tuple);for(c=0,f=this._alen;c<f;++c)s.push(this.celltuple(e[c])),e[c]=null;for(c=0,f=this._mlen;c<f;++c)a=n[c],(a.num===0&&i?o:u).push(this.celltuple(a)),n[c]=null;return this._alen=this._mlen=0,this._prev=null,t}});const z4e=1e-14;function U5(t){pe.call(this,null,t)}U5.Definition={type:"Bin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"anchor",type:"number"},{name:"maxbins",type:"number",default:20},{name:"base",type:"number",default:10},{name:"divide",type:"number",array:!0,default:[5,2]},{name:"extent",type:"number",array:!0,length:2,required:!0},{name:"span",type:"number"},{name:"step",type:"number"},{name:"steps",type:"number",array:!0},{name:"minstep",type:"number",default:0},{name:"nice",type:"boolean",default:!0},{name:"name",type:"string"},{name:"as",type:"string",array:!0,length:2,default:["bin0","bin1"]}]},Fe(U5,pe,{transform(t,e){const n=t.interval!==!1,r=this._bins(t),i=r.start,s=r.step,o=t.as||["bin0","bin1"],u=o[0],a=o[1];let l;return t.modified()?(e=e.reflow(!0),l=e.SOURCE):l=e.modified(gi(t.field))?e.ADD_MOD:e.ADD,e.visit(l,n?c=>{const f=r(c);c[u]=f,c[a]=f==null?null:i+s*(1+(f-i)/s)}:c=>c[u]=r(c)),e.modifies(n?o:u)},_bins(t){if(this.value&&!t.modified())return this.value;const e=t.field,n=h4e(t),r=n.step;let i=n.start,s=i+Math.ceil((n.stop-i)/r)*r,o,u;(o=t.anchor)!=null&&(u=o-(i+r*Math.floor((o-i)/r)),i+=u,s+=u);const a=function(l){let c=yi(e(l));return c==null?null:c<i?-1/0:c>s?1/0:(c=Math.max(i,Math.min(c,s-r)),i+r*Math.floor(z4e+(c-i)/r))};return a.start=i,a.stop=n.stop,a.step=r,this.value=Ns(a,gi(e),t.name||"bin_"+$n(e))}});function HY(t,e,n){const r=t;let i=e||[],s=n||[],o={},u=0;return{add:a=>s.push(a),remove:a=>o[r(a)]=++u,size:()=>i.length,data:(a,l)=>(u&&(i=i.filter(c=>!o[r(c)]),o={},u=0),l&&a&&i.sort(a),s.length&&(i=a?PDe(a,i,s.sort(a)):i.concat(s),s=[]),i)}}function q5(t){pe.call(this,[],t)}q5.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]},Fe(q5,pe,{transform(t,e){const n=e.fork(e.ALL),r=HY(Ze,this.value,n.materialize(n.ADD).add),i=t.sort,s=e.changed()||i&&(t.modified("sort")||e.modified(i.fields));return n.visit(n.REM,r.remove),this.modified(s),this.value=n.source=r.data(Nx(i),s),e.source&&e.source.root&&(this.value.root=e.source.root),n}});function zY(t){Yt.call(this,null,Q4e,t)}Fe(zY,Yt);function Q4e(t){return this.value&&!t.modified()?this.value:PW(t.fields,t.orders)}function H5(t){pe.call(this,null,t)}H5.Definition={type:"CountPattern",metadata:{generates:!0,changes:!0},params:[{name:"field",type:"field",required:!0},{name:"case",type:"enum",values:["upper","lower","mixed"],default:"mixed"},{name:"pattern",type:"string",default:'[\\w"]+'},{name:"stopwords",type:"string",default:""},{name:"as",type:"string",array:!0,length:2,default:["text","count"]}]};function G4e(t,e,n){switch(e){case"upper":t=t.toUpperCase();break;case"lower":t=t.toLowerCase();break}return t.match(n)}Fe(H5,pe,{transform(t,e){const n=f=>x=>{for(var h=G4e(u(x),t.case,s)||[],p,m=0,g=h.length;m<g;++m)o.test(p=h[m])||f(p)},r=this._parameterCheck(t,e),i=this._counts,s=this._match,o=this._stop,u=t.field,a=t.as||["text","count"],l=n(f=>i[f]=1+(i[f]||0)),c=n(f=>i[f]-=1);return r?e.visit(e.SOURCE,l):(e.visit(e.ADD,l),e.visit(e.REM,c)),this._finish(e,a)},_parameterCheck(t,e){let n=!1;return(t.modified("stopwords")||!this._stop)&&(this._stop=new RegExp("^"+(t.stopwords||"")+"$","i"),n=!0),(t.modified("pattern")||!this._match)&&(this._match=new RegExp(t.pattern||"[\\w']+","g"),n=!0),(t.modified("field")||e.modified(t.field.fields))&&(n=!0),n&&(this._counts={}),n},_finish(t,e){const n=this._counts,r=this._tuples||(this._tuples={}),i=e[0],s=e[1],o=t.fork(t.NO_SOURCE|t.NO_FIELDS);let u,a,l;for(u in n)a=r[u],l=n[u]||0,!a&&l?(r[u]=a=Lt({}),a[i]=u,a[s]=l,o.add.push(a)):l===0?(a&&o.rem.push(a),n[u]=null,r[u]=null):a[s]!==l&&(a[s]=l,o.mod.push(a));return o.modifies(e)}});function z5(t){pe.call(this,null,t)}z5.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]},Fe(z5,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE),r=t.as||["a","b"],i=r[0],s=r[1],o=!this.value||e.changed(e.ADD_REM)||t.modified("as")||t.modified("filter");let u=this.value;return o?(u&&(n.rem=u),u=e.materialize(e.SOURCE).source,n.add=this.value=W4e(u,i,s,t.filter||Go)):n.mod=u,n.source=this.value,n.modifies(r)}});function W4e(t,e,n,r){for(var i=[],s={},o=t.length,u=0,a,l;u<o;++u)for(s[e]=l=t[u],a=0;a<o;++a)s[n]=t[a],r(s)&&(i.push(Lt(s)),s={},s[e]=l);return i}const QY={kde:TY,mixture:S4e,normal:bY,lognormal:A4e,uniform:v4e},V4e="distributions",GY="function",Y4e="field";function WY(t,e){const n=t[GY];Je(QY,n)||ve("Unknown distribution function: "+n);const r=QY[n]();for(const i in t)i===Y4e?r.data((t.from||e()).map(t[i])):i===V4e?r[i](t[i].map(s=>WY(s,e))):typeof r[i]===GY&&r[i](t[i]);return r}function Q5(t){pe.call(this,null,t)}const VY=[{key:{function:"normal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"lognormal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"uniform"},params:[{name:"min",type:"number",default:0},{name:"max",type:"number",default:1}]},{key:{function:"kde"},params:[{name:"field",type:"field",required:!0},{name:"from",type:"data"},{name:"bandwidth",type:"number",default:0}]}],X4e={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:VY},{name:"weights",type:"number",array:!0}]};Q5.Definition={type:"Density",metadata:{generates:!0},params:[{name:"extent",type:"number",array:!0,length:2},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"method",type:"string",default:"pdf",values:["pdf","cdf"]},{name:"distribution",type:"param",params:VY.concat(X4e)},{name:"as",type:"string",array:!0,default:["value","density"]}]},Fe(Q5,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const r=WY(t.distribution,K4e(e)),i=t.steps||t.minsteps||25,s=t.steps||t.maxsteps||200;let o=t.method||"pdf";o!=="pdf"&&o!=="cdf"&&ve("Invalid density method: "+o),!t.extent&&!r.data&&ve("Missing density extent parameter."),o=r[o];const u=t.as||["value","density"],a=t.extent||pl(r.data()),l=k5(o,a,i,s).map(c=>{const f={};return f[u[0]]=c[0],f[u[1]]=c[1],Lt(f)});this.value&&(n.rem=this.value),this.value=n.add=n.source=l}return n}});function K4e(t){return()=>t.materialize(t.SOURCE).source}function YY(t,e){return t?t.map((n,r)=>e[r]||$n(n)):null}function G5(t,e,n){const r=[],i=f=>f(a);let s,o,u,a,l,c;if(e==null)r.push(t.map(n));else for(s={},o=0,u=t.length;o<u;++o)a=t[o],l=e.map(i),c=s[l],c||(s[l]=c=[],c.dims=l,r.push(c)),c.push(n(a));return r}const XY="bin";function W5(t){pe.call(this,null,t)}W5.Definition={type:"DotBin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"step",type:"number"},{name:"smooth",type:"boolean",default:!1},{name:"as",type:"string",default:XY}]};const J4e=(t,e)=>Rb(pl(t,e))/30;Fe(W5,pe,{transform(t,e){if(this.value&&!(t.modified()||e.changed()))return e;const n=e.materialize(e.SOURCE).source,r=G5(e.source,t.groupby,mi),i=t.smooth||!1,s=t.field,o=t.step||J4e(n,s),u=Nx((p,m)=>s(p)-s(m)),a=t.as||XY,l=r.length;let c=1/0,f=-1/0,x=0,h;for(;x<l;++x){const p=r[x].sort(u);h=-1;for(const m of g4e(p,o,i,s))m<c&&(c=m),m>f&&(f=m),p[++h][a]=m}return this.value={start:c,stop:f,step:o},e.reflow(!0).modifies(a)}});function KY(t){Yt.call(this,null,Z4e,t),this.modified(!0)}Fe(KY,Yt);function Z4e(t){const e=t.expr;return this.value&&!t.modified("expr")?this.value:Ns(n=>e(n,t),gi(e),$n(e))}function V5(t){pe.call(this,[void 0,void 0],t)}V5.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]},Fe(V5,pe,{transform(t,e){const n=this.value,r=t.field,i=e.changed()||e.modified(r.fields)||t.modified("field");let s=n[0],o=n[1];if((i||s==null)&&(s=1/0,o=-1/0),e.visit(i?e.SOURCE:e.ADD,u=>{const a=yi(r(u));a!=null&&(a<s&&(s=a),a>o&&(o=a))}),!Number.isFinite(s)||!Number.isFinite(o)){let u=$n(r);u&&(u=` for field "${u}"`),e.dataflow.warn(`Infinite extent${u}: [${s}, ${o}]`),s=o=void 0}this.value=[s,o]}});function Y5(t,e){Yt.call(this,t),this.parent=e,this.count=0}Fe(Y5,Yt,{connect(t){return this.detachSubflow=t.detachSubflow,this.targets().add(t),t.source=this},add(t){this.count+=1,this.value.add.push(t)},rem(t){this.count-=1,this.value.rem.push(t)},mod(t){this.value.mod.push(t)},init(t){this.value.init(t,t.NO_SOURCE)},evaluate(){return this.value}});function Yb(t){pe.call(this,{},t),this._keys=ny();const e=this._targets=[];e.active=0,e.forEach=n=>{for(let r=0,i=e.active;r<i;++r)n(e[r],r,e)}}Fe(Yb,pe,{activate(t){this._targets[this._targets.active++]=t},subflow(t,e,n,r){const i=this.value;let s=Je(i,t)&&i[t],o,u;return s?s.value.stamp<n.stamp&&(s.init(n),this.activate(s)):(u=r||(u=this._group[t])&&u.tuple,o=n.dataflow,s=new Y5(n.fork(n.NO_SOURCE),this),o.add(s).connect(e(o,t,u)),i[t]=s,this.activate(s)),s},clean(){const t=this.value;let e=0;for(const n in t)if(t[n].count===0){const r=t[n].detachSubflow;r&&r(),delete t[n],++e}if(e){const n=this._targets.filter(r=>r&&r.count>0);this.initTargets(n)}},initTargets(t){const e=this._targets,n=e.length,r=t?t.length:0;let i=0;for(;i<r;++i)e[i]=t[i];for(;i<n&&e[i]!=null;++i)e[i]=null;e.active=r},transform(t,e){const n=e.dataflow,r=t.key,i=t.subflow,s=this._keys,o=t.modified("key"),u=a=>this.subflow(a,i,e);return this._group=t.group||{},this.initTargets(),e.visit(e.REM,a=>{const l=Ze(a),c=s.get(l);c!==void 0&&(s.delete(l),u(c).rem(a))}),e.visit(e.ADD,a=>{const l=r(a);s.set(Ze(a),l),u(l).add(a)}),o||e.modified(r.fields)?e.visit(e.MOD,a=>{const l=Ze(a),c=s.get(l),f=r(a);c===f?u(f).mod(a):(s.set(l,f),u(c).rem(a),u(f).add(a))}):e.changed(e.MOD)&&e.visit(e.MOD,a=>{u(s.get(Ze(a))).mod(a)}),o&&e.visit(e.REFLOW,a=>{const l=Ze(a),c=s.get(l),f=r(a);c!==f&&(s.set(l,f),u(c).rem(a),u(f).add(a))}),e.clean()?n.runAfter(()=>{this.clean(),s.clean()}):s.empty>n.cleanThreshold&&n.runAfter(s.clean),e}});function JY(t){Yt.call(this,null,e5e,t)}Fe(JY,Yt);function e5e(t){return this.value&&!t.modified()?this.value:_e(t.name)?Pe(t.name).map(e=>Ds(e)):Ds(t.name,t.as)}function X5(t){pe.call(this,ny(),t)}X5.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]},Fe(X5,pe,{transform(t,e){const n=e.dataflow,r=this.value,i=e.fork(),s=i.add,o=i.rem,u=i.mod,a=t.expr;let l=!0;e.visit(e.REM,f=>{const x=Ze(f);r.has(x)?r.delete(x):o.push(f)}),e.visit(e.ADD,f=>{a(f,t)?s.push(f):r.set(Ze(f),1)});function c(f){const x=Ze(f),h=a(f,t),p=r.get(x);h&&p?(r.delete(x),s.push(f)):!h&&!p?(r.set(x,1),o.push(f)):l&&h&&!p&&u.push(f)}return e.visit(e.MOD,c),t.modified()&&(l=!1,e.visit(e.REFLOW,c)),r.empty>n.cleanThreshold&&n.runAfter(r.clean),i}});function K5(t){pe.call(this,[],t)}K5.Definition={type:"Flatten",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"index",type:"string"},{name:"as",type:"string",array:!0}]},Fe(K5,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE),r=t.fields,i=YY(r,t.as||[]),s=t.index||null,o=i.length;return n.rem=this.value,e.visit(e.SOURCE,u=>{const a=r.map(p=>p(u)),l=a.reduce((p,m)=>Math.max(p,m.length),0);let c=0,f,x,h;for(;c<l;++c){for(x=N5(u),f=0;f<o;++f)x[i[f]]=(h=a[f][c])==null?null:h;s&&(x[s]=c),n.add.push(x)}}),this.value=n.source=n.add,s&&n.modifies(s),n.modifies(i)}});function J5(t){pe.call(this,[],t)}J5.Definition={type:"Fold",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0,length:2,default:["key","value"]}]},Fe(J5,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE),r=t.fields,i=r.map($n),s=t.as||["key","value"],o=s[0],u=s[1],a=r.length;return n.rem=this.value,e.visit(e.SOURCE,l=>{for(let c=0,f;c<a;++c)f=N5(l),f[o]=i[c],f[u]=r[c](l),n.add.push(f)}),this.value=n.source=n.add,n.modifies(s)}});function Z5(t){pe.call(this,null,t)}Z5.Definition={type:"Formula",metadata:{modifies:!0},params:[{name:"expr",type:"expr",required:!0},{name:"as",type:"string",required:!0},{name:"initonly",type:"boolean"}]},Fe(Z5,pe,{transform(t,e){const n=t.expr,r=t.as,i=t.modified(),s=t.initonly?e.ADD:i?e.SOURCE:e.modified(n.fields)||e.modified(r)?e.ADD_MOD:e.ADD;return i&&(e=e.materialize().reflow(!0)),t.initonly||e.modifies(r),e.visit(s,o=>o[r]=n(o,t))}});function ZY(t){pe.call(this,[],t)}Fe(ZY,pe,{transform(t,e){const n=e.fork(e.ALL),r=t.generator;let i=this.value,s=t.size-i.length,o,u,a;if(s>0){for(o=[];--s>=0;)o.push(a=Lt(r(t))),i.push(a);n.add=n.add.length?n.materialize(n.ADD).add.concat(o):o}else u=i.slice(0,-s),n.rem=n.rem.length?n.materialize(n.REM).rem.concat(u):u,i=i.slice(-s);return n.source=this.value=i,n}});const Xb={value:"value",median:iV,mean:fFe,min:t5,max:Cx},t5e=[];function eI(t){pe.call(this,[],t)}eI.Definition={type:"Impute",metadata:{changes:!0},params:[{name:"field",type:"field",required:!0},{name:"key",type:"field",required:!0},{name:"keyvals",array:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"enum",default:"value",values:["value","mean","median","max","min"]},{name:"value",default:0}]};function n5e(t){var e=t.method||Xb.value,n;if(Xb[e]==null)ve("Unrecognized imputation method: "+e);else return e===Xb.value?(n=t.value!==void 0?t.value:0,()=>n):Xb[e]}function r5e(t){const e=t.field;return n=>n?e(n):NaN}Fe(eI,pe,{transform(t,e){var n=e.fork(e.ALL),r=n5e(t),i=r5e(t),s=$n(t.field),o=$n(t.key),u=(t.groupby||[]).map($n),a=i5e(e.source,t.groupby,t.key,t.keyvals),l=[],c=this.value,f=a.domain.length,x,h,p,m,g,y,E,A,S,v;for(g=0,A=a.length;g<A;++g)for(x=a[g],p=x.values,h=NaN,E=0;E<f;++E)if(x[E]==null){for(m=a.domain[E],v={_impute:!0},y=0,S=p.length;y<S;++y)v[u[y]]=p[y];v[o]=m,v[s]=Number.isNaN(h)?h=r(x,i):h,l.push(Lt(v))}return l.length&&(n.add=n.materialize(n.ADD).add.concat(l)),c.length&&(n.rem=n.materialize(n.REM).rem.concat(c)),this.value=l,n}});function i5e(t,e,n,r){var i=y=>y(g),s=[],o=r?r.slice():[],u={},a={},l,c,f,x,h,p,m,g;for(o.forEach((y,E)=>u[y]=E+1),x=0,m=t.length;x<m;++x)g=t[x],p=n(g),h=u[p]||(u[p]=o.push(p)),c=(l=e?e.map(i):t5e)+"",(f=a[c])||(f=a[c]=[],s.push(f),f.values=l),f[h-1]=g;return s.domain=o,s}function tI(t){rc.call(this,t)}tI.Definition={type:"JoinAggregate",metadata:{modifies:!0},params:[{name:"groupby",type:"field",array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"ops",type:"enum",array:!0,values:Dy},{name:"as",type:"string",null:!0,array:!0},{name:"key",type:"field"}]},Fe(tI,rc,{transform(t,e){const n=this,r=t.modified();let i;return n.value&&(r||e.modified(n._inputs,!0))?(i=n.value=r?n.init(t):{},e.visit(e.SOURCE,s=>n.add(s))):(i=n.value=n.value||this.init(t),e.visit(e.REM,s=>n.rem(s)),e.visit(e.ADD,s=>n.add(s))),n.changes(),e.visit(e.SOURCE,s=>{ft(s,i[n.cellkey(s)].tuple)}),e.reflow(r).modifies(this._outputs)},changes(){const t=this._adds,e=this._mods;let n,r;for(n=0,r=this._alen;n<r;++n)this.celltuple(t[n]),t[n]=null;for(n=0,r=this._mlen;n<r;++n)this.celltuple(e[n]),e[n]=null;this._alen=this._mlen=0}});function nI(t){pe.call(this,null,t)}nI.Definition={type:"KDE",metadata:{generates:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"cumulative",type:"boolean",default:!1},{name:"counts",type:"boolean",default:!1},{name:"bandwidth",type:"number",default:0},{name:"extent",type:"number",array:!0,length:2},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"as",type:"string",array:!0,default:["value","density"]}]},Fe(nI,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const r=e.materialize(e.SOURCE).source,i=G5(r,t.groupby,t.field),s=(t.groupby||[]).map($n),o=t.bandwidth,u=t.cumulative?"cdf":"pdf",a=t.as||["value","density"],l=[];let c=t.extent,f=t.steps||t.minsteps||25,x=t.steps||t.maxsteps||200;u!=="pdf"&&u!=="cdf"&&ve("Invalid density method: "+u),t.resolve==="shared"&&(c||(c=pl(r,t.field)),f=x=t.steps||x),i.forEach(h=>{const p=TY(h,o)[u],m=t.counts?h.length:1,g=c||pl(h);k5(p,g,f,x).forEach(y=>{const E={};for(let A=0;A<s.length;++A)E[s[A]]=h.dims[A];E[a[0]]=y[0],E[a[1]]=y[1]*m,l.push(Lt(E))})}),this.value&&(n.rem=this.value),this.value=n.add=n.source=l}return n}});function eX(t){Yt.call(this,null,s5e,t)}Fe(eX,Yt);function s5e(t){return this.value&&!t.modified()?this.value:jW(t.fields,t.flat)}function tX(t){pe.call(this,[],t),this._pending=null}Fe(tX,pe,{transform(t,e){const n=e.dataflow;return this._pending?rI(this,e,this._pending):o5e(t)?e.StopPropagation:t.values?rI(this,e,n.parse(t.values,t.format)):t.async?{async:n.request(t.url,t.format).then(i=>(this._pending=Pe(i.data),s=>s.touch(this)))}:n.request(t.url,t.format).then(r=>rI(this,e,Pe(r.data)))}});function o5e(t){return t.modified("async")&&!(t.modified("values")||t.modified("url")||t.modified("format"))}function rI(t,e,n){n.forEach(Lt);const r=e.fork(e.NO_FIELDS&e.NO_SOURCE);return r.rem=t.value,t.value=r.source=r.add=n,t._pending=null,r.rem.length&&r.clean(!0),r}function iI(t){pe.call(this,{},t)}iI.Definition={type:"Lookup",metadata:{modifies:!0},params:[{name:"index",type:"index",params:[{name:"from",type:"data",required:!0},{name:"key",type:"field",required:!0}]},{name:"values",type:"field",array:!0},{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0},{name:"default",default:null}]},Fe(iI,pe,{transform(t,e){const n=t.fields,r=t.index,i=t.values,s=t.default==null?null:t.default,o=t.modified(),u=n.length;let a=o?e.SOURCE:e.ADD,l=e,c=t.as,f,x,h;return i?(x=i.length,u>1&&!c&&ve('Multi-field lookup requires explicit "as" parameter.'),c&&c.length!==u*x&&ve('The "as" parameter has too few output field names.'),c=c||i.map($n),f=function(p){for(var m=0,g=0,y,E;m<u;++m)if(E=r.get(n[m](p)),E==null)for(y=0;y<x;++y,++g)p[c[g]]=s;else for(y=0;y<x;++y,++g)p[c[g]]=i[y](E)}):(c||ve("Missing output field names."),f=function(p){for(var m=0,g;m<u;++m)g=r.get(n[m](p)),p[c[m]]=g??s}),o?l=e.reflow(!0):(h=n.some(p=>e.modified(p.fields)),a|=h?e.MOD:0),e.visit(a,f),l.modifies(c)}});function nX(t){Yt.call(this,null,u5e,t)}Fe(nX,Yt);function u5e(t){if(this.value&&!t.modified())return this.value;const e=t.extents,n=e.length;let r=1/0,i=-1/0,s,o;for(s=0;s<n;++s)o=e[s],o[0]<r&&(r=o[0]),o[1]>i&&(i=o[1]);return[r,i]}function rX(t){Yt.call(this,null,a5e,t)}Fe(rX,Yt);function a5e(t){return this.value&&!t.modified()?this.value:t.values.reduce((e,n)=>e.concat(n),[])}function iX(t){pe.call(this,null,t)}Fe(iX,pe,{transform(t,e){return this.modified(t.modified()),this.value=t,e.fork(e.NO_SOURCE|e.NO_FIELDS)}});function sI(t){rc.call(this,t)}sI.Definition={type:"Pivot",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"value",type:"field",required:!0},{name:"op",type:"enum",values:Dy,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]},Fe(sI,rc,{_transform:rc.prototype.transform,transform(t,e){return this._transform(l5e(t,e),e)}});function l5e(t,e){const n=t.field,r=t.value,i=(t.op==="count"?"__count__":t.op)||"sum",s=gi(n).concat(gi(r)),o=f5e(n,t.limit||0,e);return e.changed()&&t.set("__pivot__",null,null,!0),{key:t.key,groupby:t.groupby,ops:o.map(()=>i),fields:o.map(u=>c5e(u,n,r,s)),as:o.map(u=>u+""),modified:t.modified.bind(t)}}function c5e(t,e,n,r){return Ns(i=>e(i)===t?n(i):NaN,r,t+"")}function f5e(t,e,n){const r={},i=[];return n.visit(n.SOURCE,s=>{const o=t(s);r[o]||(r[o]=1,i.push(o))}),i.sort(V4),e?i.slice(0,e):i}function sX(t){Yb.call(this,t)}Fe(sX,Yb,{transform(t,e){const n=t.subflow,r=t.field,i=s=>this.subflow(Ze(s),n,e,s);return(t.modified("field")||r&&e.modified(gi(r)))&&ve("PreFacet does not support field modification."),this.initTargets(),r?(e.visit(e.MOD,s=>{const o=i(s);r(s).forEach(u=>o.mod(u))}),e.visit(e.ADD,s=>{const o=i(s);r(s).forEach(u=>o.add(Lt(u)))}),e.visit(e.REM,s=>{const o=i(s);r(s).forEach(u=>o.rem(u))})):(e.visit(e.MOD,s=>i(s).mod(s)),e.visit(e.ADD,s=>i(s).add(s)),e.visit(e.REM,s=>i(s).rem(s))),e.clean()&&e.runAfter(()=>this.clean()),e}});function oI(t){pe.call(this,null,t)}oI.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]},Fe(oI,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE),r=t.fields,i=YY(t.fields,t.as||[]),s=r?(u,a)=>x5e(u,a,r,i):zb;let o;return this.value?o=this.value:(e=e.addAll(),o=this.value={}),e.visit(e.REM,u=>{const a=Ze(u);n.rem.push(o[a]),o[a]=null}),e.visit(e.ADD,u=>{const a=s(u,Lt({}));o[Ze(u)]=a,n.add.push(a)}),e.visit(e.MOD,u=>{n.mod.push(s(u,o[Ze(u)]))}),n}});function x5e(t,e,n,r){for(let i=0,s=n.length;i<s;++i)e[r[i]]=n[i](t);return e}function oX(t){pe.call(this,null,t)}Fe(oX,pe,{transform(t,e){return this.value=t.value,t.modified("value")?e.fork(e.NO_SOURCE|e.NO_FIELDS):e.StopPropagation}});function uI(t){pe.call(this,null,t)}uI.Definition={type:"Quantile",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"probs",type:"number",array:!0},{name:"step",type:"number",default:.01},{name:"as",type:"string",array:!0,default:["prob","value"]}]};const d5e=1e-14;Fe(uI,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=t.as||["prob","value"];if(this.value&&!t.modified()&&!e.changed())return n.source=this.value,n;const i=e.materialize(e.SOURCE).source,s=G5(i,t.groupby,t.field),o=(t.groupby||[]).map($n),u=[],a=t.step||.01,l=t.probs||Fs(a/2,1-d5e,a),c=l.length;return s.forEach(f=>{const x=AY(f,l);for(let h=0;h<c;++h){const p={};for(let m=0;m<o.length;++m)p[o[m]]=f.dims[m];p[r[0]]=l[h],p[r[1]]=x[h],u.push(Lt(p))}}),this.value&&(n.rem=this.value),this.value=n.add=n.source=u,n}});function uX(t){pe.call(this,null,t)}Fe(uX,pe,{transform(t,e){let n,r;return this.value?r=this.value:(n=e=e.addAll(),r=this.value={}),t.derive&&(n=e.fork(e.NO_SOURCE),e.visit(e.REM,i=>{const s=Ze(i);n.rem.push(r[s]),r[s]=null}),e.visit(e.ADD,i=>{const s=N5(i);r[Ze(i)]=s,n.add.push(s)}),e.visit(e.MOD,i=>{const s=r[Ze(i)];for(const o in i)s[o]=i[o],n.modifies(o);n.mod.push(s)})),n}});function aI(t){pe.call(this,[],t),this.count=0}aI.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]},Fe(aI,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE),r=t.modified("size"),i=t.size,s=this.value.reduce((c,f)=>(c[Ze(f)]=1,c),{});let o=this.value,u=this.count,a=0;function l(c){let f,x;o.length<i?o.push(c):(x=~~((u+1)*Cl()),x<o.length&&x>=a&&(f=o[x],s[Ze(f)]&&n.rem.push(f),o[x]=c)),++u}if(e.rem.length&&(e.visit(e.REM,c=>{const f=Ze(c);s[f]&&(s[f]=-1,n.rem.push(c)),--u}),o=o.filter(c=>s[Ze(c)]!==-1)),(e.rem.length||r)&&o.length<i&&e.source&&(a=u=o.length,e.visit(e.SOURCE,c=>{s[Ze(c)]||l(c)}),a=-1),r&&o.length>i){const c=o.length-i;for(let f=0;f<c;++f)s[Ze(o[f])]=-1,n.rem.push(o[f]);o=o.slice(c)}return e.mod.length&&e.visit(e.MOD,c=>{s[Ze(c)]&&n.mod.push(c)}),e.add.length&&e.visit(e.ADD,l),(e.add.length||a<0)&&(n.add=o.filter(c=>!s[Ze(c)])),this.count=u,this.value=n.source=o,n}});function lI(t){pe.call(this,null,t)}lI.Definition={type:"Sequence",metadata:{generates:!0,changes:!0},params:[{name:"start",type:"number",required:!0},{name:"stop",type:"number",required:!0},{name:"step",type:"number",default:1},{name:"as",type:"string",default:"data"}]},Fe(lI,pe,{transform(t,e){if(this.value&&!t.modified())return;const n=e.materialize().fork(e.MOD),r=t.as||"data";return n.rem=this.value?e.rem.concat(this.value):e.rem,this.value=Fs(t.start,t.stop,t.step||1).map(i=>{const s={};return s[r]=i,Lt(s)}),n.add=e.add.concat(this.value),n}});function aX(t){pe.call(this,null,t),this.modified(!0)}Fe(aX,pe,{transform(t,e){return this.value=e.source,e.changed()?e.fork(e.NO_SOURCE|e.NO_FIELDS):e.StopPropagation}});function cI(t){pe.call(this,null,t)}const lX=["unit0","unit1"];cI.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"enum",values:AV,array:!0},{name:"step",type:"number",default:1},{name:"maxbins",type:"number",default:40},{name:"extent",type:"date",array:!0},{name:"timezone",type:"enum",default:"local",values:["local","utc"]},{name:"as",type:"string",array:!0,length:2,default:lX}]},Fe(cI,pe,{transform(t,e){const n=t.field,r=t.interval!==!1,i=t.timezone==="utc",s=this._floor(t,e),o=(i?cy:ly)(s.unit).offset,u=t.as||lX,a=u[0],l=u[1],c=s.step;let f=s.start||1/0,x=s.stop||-1/0,h=e.ADD;return(t.modified()||e.changed(e.REM)||e.modified(gi(n)))&&(e=e.reflow(!0),h=e.SOURCE,f=1/0,x=-1/0),e.visit(h,p=>{const m=n(p);let g,y;m==null?(p[a]=null,r&&(p[l]=null)):(p[a]=g=y=s(m),r&&(p[l]=y=o(g,c)),g<f&&(f=g),y>x&&(x=y))}),s.start=f,s.stop=x,e.modifies(r?u:a)},_floor(t,e){const n=t.timezone==="utc",{units:r,step:i}=t.units?{units:t.units,step:t.step||1}:nwe({extent:t.extent||pl(e.materialize(e.SOURCE).source,t.field),maxbins:t.maxbins}),s=SV(r),o=this.value||{},u=(n?GFe:HFe)(s,i);return u.unit=vt(s),u.units=s,u.step=i,u.start=o.start,u.stop=o.stop,this.value=u}});function cX(t){pe.call(this,ny(),t)}Fe(cX,pe,{transform(t,e){const n=e.dataflow,r=t.field,i=this.value,s=u=>i.set(r(u),u);let o=!0;return t.modified("field")||e.modified(r.fields)?(i.clear(),e.visit(e.SOURCE,s)):e.changed()?(e.visit(e.REM,u=>i.delete(r(u))),e.visit(e.ADD,s)):o=!1,this.modified(o),i.empty>n.cleanThreshold&&n.runAfter(i.clean),e.fork()}});function fX(t){pe.call(this,null,t)}Fe(fX,pe,{transform(t,e){(!this.value||t.modified("field")||t.modified("sort")||e.changed()||t.sort&&e.modified(t.sort.fields))&&(this.value=(t.sort?e.source.slice().sort(Nx(t.sort)):e.source).map(t.field))}});function h5e(t,e,n,r){const i=Fy[t](e,n);return{init:i.init||Ax,update:function(s,o){o[r]=i.next(s)}}}const Fy={row_number:function(){return{next:t=>t.index+1}},rank:function(){let t;return{init:()=>t=1,next:e=>{const n=e.index,r=e.data;return n&&e.compare(r[n-1],r[n])?t=n+1:t}}},dense_rank:function(){let t;return{init:()=>t=1,next:e=>{const n=e.index,r=e.data;return n&&e.compare(r[n-1],r[n])?++t:t}}},percent_rank:function(){const t=Fy.rank(),e=t.next;return{init:t.init,next:n=>(e(n)-1)/(n.data.length-1)}},cume_dist:function(){let t;return{init:()=>t=0,next:e=>{const n=e.data,r=e.compare;let i=e.index;if(t<i){for(;i+1<n.length&&!r(n[i],n[i+1]);)++i;t=i}return(1+t)/n.length}}},ntile:function(t,e){e=+e,e>0||ve("ntile num must be greater than zero.");const n=Fy.cume_dist(),r=n.next;return{init:n.init,next:i=>Math.ceil(e*r(i))}},lag:function(t,e){return e=+e||1,{next:n=>{const r=n.index-e;return r>=0?t(n.data[r]):null}}},lead:function(t,e){return e=+e||1,{next:n=>{const r=n.index+e,i=n.data;return r<i.length?t(i[r]):null}}},first_value:function(t){return{next:e=>t(e.data[e.i0])}},last_value:function(t){return{next:e=>t(e.data[e.i1-1])}},nth_value:function(t,e){return e=+e,e>0||ve("nth_value nth must be greater than zero."),{next:n=>{const r=n.i0+(e-1);return r<n.i1?t(n.data[r]):null}}},prev_value:function(t){let e;return{init:()=>e=null,next:n=>{const r=t(n.data[n.index]);return r!=null?e=r:e}}},next_value:function(t){let e,n;return{init:()=>(e=null,n=-1),next:r=>{const i=r.data;return r.index<=n?e:(n=p5e(t,i,r.index))<0?(n=i.length,e=null):e=t(i[n])}}}};function p5e(t,e,n){for(let r=e.length;n<r;++n)if(t(e[n])!=null)return n;return-1}const g5e=Object.keys(Fy);function xX(t){const e=Pe(t.ops),n=Pe(t.fields),r=Pe(t.params),i=Pe(t.as),s=this.outputs=[],o=this.windows=[],u={},a={},l=[],c=[];let f=!0;function x(h){Pe(gi(h)).forEach(p=>u[p]=1)}x(t.sort),e.forEach((h,p)=>{const m=n[p],g=$n(m),y=MY(h,g,i[p]);if(x(m),s.push(y),Je(Fy,h))o.push(h5e(h,n[p],r[p],y));else{if(m==null&&h!=="count"&&ve("Null aggregate field specified."),h==="count"){l.push(y);return}f=!1;let E=a[g];E||(E=a[g]=[],E.field=m,c.push(E)),E.push(jY(h,y))}}),(l.length||c.length)&&(this.cell=m5e(c,l,f)),this.inputs=Object.keys(u)}const dX=xX.prototype;dX.init=function(){this.windows.forEach(t=>t.init()),this.cell&&this.cell.init()},dX.update=function(t,e){const n=this.cell,r=this.windows,i=t.data,s=r&&r.length;let o;if(n){for(o=t.p0;o<t.i0;++o)n.rem(i[o]);for(o=t.p1;o<t.i1;++o)n.add(i[o]);n.set(e)}for(o=0;o<s;++o)r[o].update(t,e)};function m5e(t,e,n){t=t.map(a=>qY(a,a.field));const r={num:0,agg:null,store:!1,count:e};if(!n)for(var i=t.length,s=r.agg=Array(i),o=0;o<i;++o)s[o]=new t[o](r);if(r.store)var u=r.data=new j5;return r.add=function(a){if(r.num+=1,!n){u&&u.add(a);for(let l=0;l<i;++l)s[l].add(s[l].get(a),a)}},r.rem=function(a){if(r.num-=1,!n){u&&u.rem(a);for(let l=0;l<i;++l)s[l].rem(s[l].get(a),a)}},r.set=function(a){let l,c;for(u&&u.values(),l=0,c=e.length;l<c;++l)a[e[l]]=r.num;if(!n)for(l=0,c=s.length;l<c;++l)s[l].set(a)},r.init=function(){r.num=0,u&&u.reset();for(let a=0;a<i;++a)s[a].init()},r}function fI(t){pe.call(this,{},t),this._mlen=0,this._mods=[]}fI.Definition={type:"Window",metadata:{modifies:!0},params:[{name:"sort",type:"compare"},{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:g5e.concat(Dy)},{name:"params",type:"number",null:!0,array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"frame",type:"number",null:!0,array:!0,length:2,default:[null,0]},{name:"ignorePeers",type:"boolean",default:!1}]},Fe(fI,pe,{transform(t,e){this.stamp=e.stamp;const n=t.modified(),r=Nx(t.sort),i=P5(t.groupby),s=u=>this.group(i(u));let o=this.state;(!o||n)&&(o=this.state=new xX(t)),n||e.modified(o.inputs)?(this.value={},e.visit(e.SOURCE,u=>s(u).add(u))):(e.visit(e.REM,u=>s(u).remove(u)),e.visit(e.ADD,u=>s(u).add(u)));for(let u=0,a=this._mlen;u<a;++u)y5e(this._mods[u],o,r,t);return this._mlen=0,this._mods=[],e.reflow(n).modifies(o.outputs)},group(t){let e=this.value[t];return e||(e=this.value[t]=HY(Ze),e.stamp=-1),e.stamp<this.stamp&&(e.stamp=this.stamp,this._mods[this._mlen++]=e),e}});function y5e(t,e,n,r){const i=r.sort,s=i&&!r.ignorePeers,o=r.frame||[null,0],u=t.data(n),a=u.length,l=s?sy(i):null,c={i0:0,i1:0,p0:0,p1:0,index:0,data:u,compare:i||Ei(-1)};e.init();for(let f=0;f<a;++f)E5e(c,o,f,a),s&&A5e(c,l),e.update(c,u[f])}function E5e(t,e,n,r){t.p0=t.i0,t.p1=t.i1,t.i0=e[0]==null?0:Math.max(0,n-Math.abs(e[0])),t.i1=e[1]==null?r:Math.min(r,n+Math.abs(e[1])+1),t.index=n}function A5e(t,e){const n=t.i0,r=t.i1-1,i=t.compare,s=t.data,o=s.length-1;n>0&&!i(s[n],s[n-1])&&(t.i0=e.left(s,s[n])),r<o&&!i(s[r],s[r+1])&&(t.i1=e.right(s,s[r]))}const S5e=Object.freeze(Object.defineProperty({__proto__:null,aggregate:rc,bin:U5,collect:q5,compare:zY,countpattern:H5,cross:z5,density:Q5,dotbin:W5,expression:KY,extent:V5,facet:Yb,field:JY,filter:X5,flatten:K5,fold:J5,formula:Z5,generate:ZY,impute:eI,joinaggregate:tI,kde:nI,key:eX,load:tX,lookup:iI,multiextent:nX,multivalues:rX,params:iX,pivot:sI,prefacet:sX,project:oI,proxy:oX,quantile:uI,relay:uX,sample:aI,sequence:lI,sieve:aX,subflow:Y5,timeunit:cI,tupleindex:cX,values:fX,window:fI},Symbol.toStringTag,{value:"Module"}));function It(t){return function(){return t}}const hX=Math.abs,Kr=Math.atan2,Fx=Math.cos,v5e=Math.max,xI=Math.min,ta=Math.sin,wx=Math.sqrt,Jr=1e-12,Dp=Math.PI,Kb=Dp/2,pX=2*Dp;function _5e(t){return t>1?0:t<-1?Dp:Math.acos(t)}function gX(t){return t>=1?Kb:t<=-1?-Kb:Math.asin(t)}const dI=Math.PI,hI=2*dI,Lx=1e-6,C5e=hI-Lx;function mX(t){this._+=t[0];for(let e=1,n=t.length;e<n;++e)this._+=arguments[e]+t[e]}function b5e(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return mX;const n=10**e;return function(r){this._+=r[0];for(let i=1,s=r.length;i<s;++i)this._+=Math.round(arguments[i]*n)/n+r[i]}}let pI=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?mX:b5e(e)}moveTo(e,n){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,n){this._append`L${this._x1=+e},${this._y1=+n}`}quadraticCurveTo(e,n,r,i){this._append`Q${+e},${+n},${this._x1=+r},${this._y1=+i}`}bezierCurveTo(e,n,r,i,s,o){this._append`C${+e},${+n},${+r},${+i},${this._x1=+s},${this._y1=+o}`}arcTo(e,n,r,i,s){if(e=+e,n=+n,r=+r,i=+i,s=+s,s<0)throw new Error(`negative radius: ${s}`);let o=this._x1,u=this._y1,a=r-e,l=i-n,c=o-e,f=u-n,x=c*c+f*f;if(this._x1===null)this._append`M${this._x1=e},${this._y1=n}`;else if(x>Lx)if(!(Math.abs(f*a-l*c)>Lx)||!s)this._append`L${this._x1=e},${this._y1=n}`;else{let h=r-o,p=i-u,m=a*a+l*l,g=h*h+p*p,y=Math.sqrt(m),E=Math.sqrt(x),A=s*Math.tan((dI-Math.acos((m+x-g)/(2*y*E)))/2),S=A/E,v=A/y;Math.abs(S-1)>Lx&&this._append`L${e+S*c},${n+S*f}`,this._append`A${s},${s},0,0,${+(f*h>c*p)},${this._x1=e+v*a},${this._y1=n+v*l}`}}arc(e,n,r,i,s,o){if(e=+e,n=+n,r=+r,o=!!o,r<0)throw new Error(`negative radius: ${r}`);let u=r*Math.cos(i),a=r*Math.sin(i),l=e+u,c=n+a,f=1^o,x=o?i-s:s-i;this._x1===null?this._append`M${l},${c}`:(Math.abs(this._x1-l)>Lx||Math.abs(this._y1-c)>Lx)&&this._append`L${l},${c}`,r&&(x<0&&(x=x%hI+hI),x>C5e?this._append`A${r},${r},0,1,${f},${e-u},${n-a}A${r},${r},0,1,${f},${this._x1=l},${this._y1=c}`:x>Lx&&this._append`A${r},${r},0,${+(x>=dI)},${f},${this._x1=e+r*Math.cos(s)},${this._y1=n+r*Math.sin(s)}`)}rect(e,n,r,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}};function gI(){return new pI}gI.prototype=pI.prototype;function Jb(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(n==null)e=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);e=r}return t},()=>new pI(e)}function T5e(t){return t.innerRadius}function R5e(t){return t.outerRadius}function O5e(t){return t.startAngle}function N5e(t){return t.endAngle}function D5e(t){return t&&t.padAngle}function F5e(t,e,n,r,i,s,o,u){var a=n-t,l=r-e,c=o-i,f=u-s,x=f*a-c*l;if(!(x*x<Jr))return x=(c*(e-s)-f*(t-i))/x,[t+x*a,e+x*l]}function Zb(t,e,n,r,i,s,o){var u=t-n,a=e-r,l=(o?s:-s)/wx(u*u+a*a),c=l*a,f=-l*u,x=t+c,h=e+f,p=n+c,m=r+f,g=(x+p)/2,y=(h+m)/2,E=p-x,A=m-h,S=E*E+A*A,v=i-s,_=x*m-p*h,C=(A<0?-1:1)*wx(v5e(0,v*v*S-_*_)),b=(_*A-E*C)/S,R=(-_*E-A*C)/S,O=(_*A+E*C)/S,L=(-_*E+A*C)/S,M=b-g,q=R-y,W=O-g,B=L-y;return M*M+q*q>W*W+B*B&&(b=O,R=L),{cx:b,cy:R,x01:-c,y01:-f,x11:b*(i/v-1),y11:R*(i/v-1)}}function w5e(){var t=T5e,e=R5e,n=It(0),r=null,i=O5e,s=N5e,o=D5e,u=null,a=Jb(l);function l(){var c,f,x=+t.apply(this,arguments),h=+e.apply(this,arguments),p=i.apply(this,arguments)-Kb,m=s.apply(this,arguments)-Kb,g=hX(m-p),y=m>p;if(u||(u=c=a()),h<x&&(f=h,h=x,x=f),!(h>Jr))u.moveTo(0,0);else if(g>pX-Jr)u.moveTo(h*Fx(p),h*ta(p)),u.arc(0,0,h,p,m,!y),x>Jr&&(u.moveTo(x*Fx(m),x*ta(m)),u.arc(0,0,x,m,p,y));else{var E=p,A=m,S=p,v=m,_=g,C=g,b=o.apply(this,arguments)/2,R=b>Jr&&(r?+r.apply(this,arguments):wx(x*x+h*h)),O=xI(hX(h-x)/2,+n.apply(this,arguments)),L=O,M=O,q,W;if(R>Jr){var B=gX(R/x*ta(b)),G=gX(R/h*ta(b));(_-=B*2)>Jr?(B*=y?1:-1,S+=B,v-=B):(_=0,S=v=(p+m)/2),(C-=G*2)>Jr?(G*=y?1:-1,E+=G,A-=G):(C=0,E=A=(p+m)/2)}var te=h*Fx(E),K=h*ta(E),de=x*Fx(v),be=x*ta(v);if(O>Jr){var ee=h*Fx(A),U=h*ta(A),T=x*Fx(S),w=x*ta(S),k;if(g<Dp)if(k=F5e(te,K,T,w,ee,U,de,be)){var z=te-k[0],Y=K-k[1],V=ee-k[0],D=U-k[1],$=1/ta(_5e((z*V+Y*D)/(wx(z*z+Y*Y)*wx(V*V+D*D)))/2),j=wx(k[0]*k[0]+k[1]*k[1]);L=xI(O,(x-j)/($-1)),M=xI(O,(h-j)/($+1))}else L=M=0}C>Jr?M>Jr?(q=Zb(T,w,te,K,h,M,y),W=Zb(ee,U,de,be,h,M,y),u.moveTo(q.cx+q.x01,q.cy+q.y01),M<O?u.arc(q.cx,q.cy,M,Kr(q.y01,q.x01),Kr(W.y01,W.x01),!y):(u.arc(q.cx,q.cy,M,Kr(q.y01,q.x01),Kr(q.y11,q.x11),!y),u.arc(0,0,h,Kr(q.cy+q.y11,q.cx+q.x11),Kr(W.cy+W.y11,W.cx+W.x11),!y),u.arc(W.cx,W.cy,M,Kr(W.y11,W.x11),Kr(W.y01,W.x01),!y))):(u.moveTo(te,K),u.arc(0,0,h,E,A,!y)):u.moveTo(te,K),!(x>Jr)||!(_>Jr)?u.lineTo(de,be):L>Jr?(q=Zb(de,be,ee,U,x,-L,y),W=Zb(te,K,T,w,x,-L,y),u.lineTo(q.cx+q.x01,q.cy+q.y01),L<O?u.arc(q.cx,q.cy,L,Kr(q.y01,q.x01),Kr(W.y01,W.x01),!y):(u.arc(q.cx,q.cy,L,Kr(q.y01,q.x01),Kr(q.y11,q.x11),!y),u.arc(0,0,x,Kr(q.cy+q.y11,q.cx+q.x11),Kr(W.cy+W.y11,W.cx+W.x11),y),u.arc(W.cx,W.cy,L,Kr(W.y11,W.x11),Kr(W.y01,W.x01),!y))):u.arc(0,0,x,v,S,y)}if(u.closePath(),c)return u=null,c+""||null}return l.centroid=function(){var c=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,f=(+i.apply(this,arguments)+ +s.apply(this,arguments))/2-Dp/2;return[Fx(f)*c,ta(f)*c]},l.innerRadius=function(c){return arguments.length?(t=typeof c=="function"?c:It(+c),l):t},l.outerRadius=function(c){return arguments.length?(e=typeof c=="function"?c:It(+c),l):e},l.cornerRadius=function(c){return arguments.length?(n=typeof c=="function"?c:It(+c),l):n},l.padRadius=function(c){return arguments.length?(r=c==null?null:typeof c=="function"?c:It(+c),l):r},l.startAngle=function(c){return arguments.length?(i=typeof c=="function"?c:It(+c),l):i},l.endAngle=function(c){return arguments.length?(s=typeof c=="function"?c:It(+c),l):s},l.padAngle=function(c){return arguments.length?(o=typeof c=="function"?c:It(+c),l):o},l.context=function(c){return arguments.length?(u=c??null,l):u},l}function yX(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function EX(t){this._context=t}EX.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function mI(t){return new EX(t)}function AX(t){return t[0]}function SX(t){return t[1]}function vX(t,e){var n=It(!0),r=null,i=mI,s=null,o=Jb(u);t=typeof t=="function"?t:t===void 0?AX:It(t),e=typeof e=="function"?e:e===void 0?SX:It(e);function u(a){var l,c=(a=yX(a)).length,f,x=!1,h;for(r==null&&(s=i(h=o())),l=0;l<=c;++l)!(l<c&&n(f=a[l],l,a))===x&&((x=!x)?s.lineStart():s.lineEnd()),x&&s.point(+t(f,l,a),+e(f,l,a));if(h)return s=null,h+""||null}return u.x=function(a){return arguments.length?(t=typeof a=="function"?a:It(+a),u):t},u.y=function(a){return arguments.length?(e=typeof a=="function"?a:It(+a),u):e},u.defined=function(a){return arguments.length?(n=typeof a=="function"?a:It(!!a),u):n},u.curve=function(a){return arguments.length?(i=a,r!=null&&(s=i(r)),u):i},u.context=function(a){return arguments.length?(a==null?r=s=null:s=i(r=a),u):r},u}function _X(t,e,n){var r=null,i=It(!0),s=null,o=mI,u=null,a=Jb(l);t=typeof t=="function"?t:t===void 0?AX:It(+t),e=typeof e=="function"?e:It(e===void 0?0:+e),n=typeof n=="function"?n:n===void 0?SX:It(+n);function l(f){var x,h,p,m=(f=yX(f)).length,g,y=!1,E,A=new Array(m),S=new Array(m);for(s==null&&(u=o(E=a())),x=0;x<=m;++x){if(!(x<m&&i(g=f[x],x,f))===y)if(y=!y)h=x,u.areaStart(),u.lineStart();else{for(u.lineEnd(),u.lineStart(),p=x-1;p>=h;--p)u.point(A[p],S[p]);u.lineEnd(),u.areaEnd()}y&&(A[x]=+t(g,x,f),S[x]=+e(g,x,f),u.point(r?+r(g,x,f):A[x],n?+n(g,x,f):S[x]))}if(E)return u=null,E+""||null}function c(){return vX().defined(i).curve(o).context(s)}return l.x=function(f){return arguments.length?(t=typeof f=="function"?f:It(+f),r=null,l):t},l.x0=function(f){return arguments.length?(t=typeof f=="function"?f:It(+f),l):t},l.x1=function(f){return arguments.length?(r=f==null?null:typeof f=="function"?f:It(+f),l):r},l.y=function(f){return arguments.length?(e=typeof f=="function"?f:It(+f),n=null,l):e},l.y0=function(f){return arguments.length?(e=typeof f=="function"?f:It(+f),l):e},l.y1=function(f){return arguments.length?(n=f==null?null:typeof f=="function"?f:It(+f),l):n},l.lineX0=l.lineY0=function(){return c().x(t).y(e)},l.lineY1=function(){return c().x(t).y(n)},l.lineX1=function(){return c().x(r).y(e)},l.defined=function(f){return arguments.length?(i=typeof f=="function"?f:It(!!f),l):i},l.curve=function(f){return arguments.length?(o=f,s!=null&&(u=o(s)),l):o},l.context=function(f){return arguments.length?(f==null?s=u=null:u=o(s=f),l):s},l}const L5e={draw(t,e){const n=wx(e/Dp);t.moveTo(n,0),t.arc(0,0,n,0,pX)}};function I5e(t,e){let n=null,r=Jb(i);t=typeof t=="function"?t:It(t||L5e),e=typeof e=="function"?e:It(e===void 0?64:+e);function i(){let s;if(n||(n=s=r()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),s)return n=null,s+""||null}return i.type=function(s){return arguments.length?(t=typeof s=="function"?s:It(s),i):t},i.size=function(s){return arguments.length?(e=typeof s=="function"?s:It(+s),i):e},i.context=function(s){return arguments.length?(n=s??null,i):n},i}function ic(){}function eT(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function tT(t){this._context=t}tT.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:eT(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:eT(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function $5e(t){return new tT(t)}function CX(t){this._context=t}CX.prototype={areaStart:ic,areaEnd:ic,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:eT(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function B5e(t){return new CX(t)}function bX(t){this._context=t}bX.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:eT(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function k5e(t){return new bX(t)}function TX(t,e){this._basis=new tT(t),this._beta=e}TX.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var r=t[0],i=e[0],s=t[n]-r,o=e[n]-i,u=-1,a;++u<=n;)a=u/n,this._basis.point(this._beta*t[u]+(1-this._beta)*(r+a*s),this._beta*e[u]+(1-this._beta)*(i+a*o));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};const P5e=function t(e){function n(r){return e===1?new tT(r):new TX(r,e)}return n.beta=function(r){return t(+r)},n}(.85);function nT(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function yI(t,e){this._context=t,this._k=(1-e)/6}yI.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:nT(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:nT(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const M5e=function t(e){function n(r){return new yI(r,e)}return n.tension=function(r){return t(+r)},n}(0);function EI(t,e){this._context=t,this._k=(1-e)/6}EI.prototype={areaStart:ic,areaEnd:ic,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:nT(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const j5e=function t(e){function n(r){return new EI(r,e)}return n.tension=function(r){return t(+r)},n}(0);function AI(t,e){this._context=t,this._k=(1-e)/6}AI.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:nT(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const U5e=function t(e){function n(r){return new AI(r,e)}return n.tension=function(r){return t(+r)},n}(0);function SI(t,e,n){var r=t._x1,i=t._y1,s=t._x2,o=t._y2;if(t._l01_a>Jr){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,a=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/a,i=(i*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/a}if(t._l23_a>Jr){var l=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,c=3*t._l23_a*(t._l23_a+t._l12_a);s=(s*l+t._x1*t._l23_2a-e*t._l12_2a)/c,o=(o*l+t._y1*t._l23_2a-n*t._l12_2a)/c}t._context.bezierCurveTo(r,i,s,o,t._x2,t._y2)}function RX(t,e){this._context=t,this._alpha=e}RX.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:SI(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const q5e=function t(e){function n(r){return e?new RX(r,e):new yI(r,0)}return n.alpha=function(r){return t(+r)},n}(.5);function OX(t,e){this._context=t,this._alpha=e}OX.prototype={areaStart:ic,areaEnd:ic,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:SI(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const H5e=function t(e){function n(r){return e?new OX(r,e):new EI(r,0)}return n.alpha=function(r){return t(+r)},n}(.5);function NX(t,e){this._context=t,this._alpha=e}NX.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:SI(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const z5e=function t(e){function n(r){return e?new NX(r,e):new AI(r,0)}return n.alpha=function(r){return t(+r)},n}(.5);function DX(t){this._context=t}DX.prototype={areaStart:ic,areaEnd:ic,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function Q5e(t){return new DX(t)}function FX(t){return t<0?-1:1}function wX(t,e,n){var r=t._x1-t._x0,i=e-t._x1,s=(t._y1-t._y0)/(r||i<0&&-0),o=(n-t._y1)/(i||r<0&&-0),u=(s*i+o*r)/(r+i);return(FX(s)+FX(o))*Math.min(Math.abs(s),Math.abs(o),.5*Math.abs(u))||0}function LX(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function vI(t,e,n){var r=t._x0,i=t._y0,s=t._x1,o=t._y1,u=(s-r)/3;t._context.bezierCurveTo(r+u,i+u*e,s-u,o-u*n,s,o)}function rT(t){this._context=t}rT.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:vI(this,this._t0,LX(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,vI(this,LX(this,n=wX(this,t,e)),n);break;default:vI(this,this._t0,n=wX(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}};function IX(t){this._context=new $X(t)}(IX.prototype=Object.create(rT.prototype)).point=function(t,e){rT.prototype.point.call(this,e,t)};function $X(t){this._context=t}$X.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,i,s){this._context.bezierCurveTo(e,t,r,n,s,i)}};function G5e(t){return new rT(t)}function W5e(t){return new IX(t)}function BX(t){this._context=t}BX.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),n===2)this._context.lineTo(t[1],e[1]);else for(var r=kX(t),i=kX(e),s=0,o=1;o<n;++s,++o)this._context.bezierCurveTo(r[0][s],i[0][s],r[1][s],i[1][s],t[o],e[o]);(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}};function kX(t){var e,n=t.length-1,r,i=new Array(n),s=new Array(n),o=new Array(n);for(i[0]=0,s[0]=2,o[0]=t[0]+2*t[1],e=1;e<n-1;++e)i[e]=1,s[e]=4,o[e]=4*t[e]+2*t[e+1];for(i[n-1]=2,s[n-1]=7,o[n-1]=8*t[n-1]+t[n],e=1;e<n;++e)r=i[e]/s[e-1],s[e]-=r,o[e]-=r*o[e-1];for(i[n-1]=o[n-1]/s[n-1],e=n-2;e>=0;--e)i[e]=(o[e]-i[e+1])/s[e];for(s[n-1]=(t[n]+i[n-1])/2,e=0;e<n-1;++e)s[e]=2*t[e+1]-i[e+1];return[i,s]}function V5e(t){return new BX(t)}function iT(t,e){this._context=t,this._t=e}iT.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}break}}this._x=t,this._y=e}};function Y5e(t){return new iT(t,.5)}function X5e(t){return new iT(t,0)}function K5e(t){return new iT(t,1)}function sc(t,e){if(typeof document<"u"&&document.createElement){const n=document.createElement("canvas");if(n&&n.getContext)return n.width=t,n.height=e,n}return null}const J5e=()=>typeof Image<"u"?Image:null;function na(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function oc(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}const _I=Symbol("implicit");function CI(){var t=new KW,e=[],n=[],r=_I;function i(s){let o=t.get(s);if(o===void 0){if(r!==_I)return r;t.set(s,o=e.push(s)-1)}return n[o%n.length]}return i.domain=function(s){if(!arguments.length)return e.slice();e=[],t=new KW;for(const o of s)t.has(o)||t.set(o,e.push(o)-1);return i},i.range=function(s){return arguments.length?(n=Array.from(s),i):n.slice()},i.unknown=function(s){return arguments.length?(r=s,i):r},i.copy=function(){return CI(e,n).unknown(r)},na.apply(i,arguments),i}function Fp(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function wy(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function uc(){}var Ix=.7,wp=1/Ix,Lp="\\s*([+-]?\\d+)\\s*",Ly="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ra="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Z5e=/^#([0-9a-f]{3,8})$/,eIe=new RegExp(`^rgb\\(${Lp},${Lp},${Lp}\\)$`),tIe=new RegExp(`^rgb\\(${ra},${ra},${ra}\\)$`),nIe=new RegExp(`^rgba\\(${Lp},${Lp},${Lp},${Ly}\\)$`),rIe=new RegExp(`^rgba\\(${ra},${ra},${ra},${Ly}\\)$`),iIe=new RegExp(`^hsl\\(${Ly},${ra},${ra}\\)$`),sIe=new RegExp(`^hsla\\(${Ly},${ra},${ra},${Ly}\\)$`),PX={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Fp(uc,Iy,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:MX,formatHex:MX,formatHex8:oIe,formatHsl:uIe,formatRgb:jX,toString:jX});function MX(){return this.rgb().formatHex()}function oIe(){return this.rgb().formatHex8()}function uIe(){return QX(this).formatHsl()}function jX(){return this.rgb().formatRgb()}function Iy(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=Z5e.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?UX(e):n===3?new hr(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?sT(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?sT(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=eIe.exec(t))?new hr(e[1],e[2],e[3],1):(e=tIe.exec(t))?new hr(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=nIe.exec(t))?sT(e[1],e[2],e[3],e[4]):(e=rIe.exec(t))?sT(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=iIe.exec(t))?zX(e[1],e[2]/100,e[3]/100,1):(e=sIe.exec(t))?zX(e[1],e[2]/100,e[3]/100,e[4]):PX.hasOwnProperty(t)?UX(PX[t]):t==="transparent"?new hr(NaN,NaN,NaN,0):null}function UX(t){return new hr(t>>16&255,t>>8&255,t&255,1)}function sT(t,e,n,r){return r<=0&&(t=e=n=NaN),new hr(t,e,n,r)}function bI(t){return t instanceof uc||(t=Iy(t)),t?(t=t.rgb(),new hr(t.r,t.g,t.b,t.opacity)):new hr}function ac(t,e,n,r){return arguments.length===1?bI(t):new hr(t,e,n,r??1)}function hr(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}Fp(hr,ac,wy(uc,{brighter(t){return t=t==null?wp:Math.pow(wp,t),new hr(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Ix:Math.pow(Ix,t),new hr(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new hr($x(this.r),$x(this.g),$x(this.b),oT(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:qX,formatHex:qX,formatHex8:aIe,formatRgb:HX,toString:HX}));function qX(){return`#${Bx(this.r)}${Bx(this.g)}${Bx(this.b)}`}function aIe(){return`#${Bx(this.r)}${Bx(this.g)}${Bx(this.b)}${Bx((isNaN(this.opacity)?1:this.opacity)*255)}`}function HX(){const t=oT(this.opacity);return`${t===1?"rgb(":"rgba("}${$x(this.r)}, ${$x(this.g)}, ${$x(this.b)}${t===1?")":`, ${t})`}`}function oT(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function $x(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Bx(t){return t=$x(t),(t<16?"0":"")+t.toString(16)}function zX(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Vo(t,e,n,r)}function QX(t){if(t instanceof Vo)return new Vo(t.h,t.s,t.l,t.opacity);if(t instanceof uc||(t=Iy(t)),!t)return new Vo;if(t instanceof Vo)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),s=Math.max(e,n,r),o=NaN,u=s-i,a=(s+i)/2;return u?(e===s?o=(n-r)/u+(n<r)*6:n===s?o=(r-e)/u+2:o=(e-n)/u+4,u/=a<.5?s+i:2-s-i,o*=60):u=a>0&&a<1?0:o,new Vo(o,u,a,t.opacity)}function uT(t,e,n,r){return arguments.length===1?QX(t):new Vo(t,e,n,r??1)}function Vo(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Fp(Vo,uT,wy(uc,{brighter(t){return t=t==null?wp:Math.pow(wp,t),new Vo(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ix:Math.pow(Ix,t),new Vo(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new hr(TI(t>=240?t-240:t+120,i,r),TI(t,i,r),TI(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new Vo(GX(this.h),aT(this.s),aT(this.l),oT(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=oT(this.opacity);return`${t===1?"hsl(":"hsla("}${GX(this.h)}, ${aT(this.s)*100}%, ${aT(this.l)*100}%${t===1?")":`, ${t})`}`}}));function GX(t){return t=(t||0)%360,t<0?t+360:t}function aT(t){return Math.max(0,Math.min(1,t||0))}function TI(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const WX=Math.PI/180,VX=180/Math.PI,lT=18,YX=.96422,XX=1,KX=.82521,JX=4/29,Ip=6/29,ZX=3*Ip*Ip,lIe=Ip*Ip*Ip;function eK(t){if(t instanceof ia)return new ia(t.l,t.a,t.b,t.opacity);if(t instanceof bl)return tK(t);t instanceof hr||(t=bI(t));var e=DI(t.r),n=DI(t.g),r=DI(t.b),i=RI((.2225045*e+.7168786*n+.0606169*r)/XX),s,o;return e===n&&n===r?s=o=i:(s=RI((.4360747*e+.3850649*n+.1430804*r)/YX),o=RI((.0139322*e+.0971045*n+.7141733*r)/KX)),new ia(116*i-16,500*(s-i),200*(i-o),t.opacity)}function cT(t,e,n,r){return arguments.length===1?eK(t):new ia(t,e,n,r??1)}function ia(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}Fp(ia,cT,wy(uc,{brighter(t){return new ia(this.l+lT*(t??1),this.a,this.b,this.opacity)},darker(t){return new ia(this.l-lT*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=YX*OI(e),t=XX*OI(t),n=KX*OI(n),new hr(NI(3.1338561*e-1.6168667*t-.4906146*n),NI(-.9787684*e+1.9161415*t+.033454*n),NI(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function RI(t){return t>lIe?Math.pow(t,1/3):t/ZX+JX}function OI(t){return t>Ip?t*t*t:ZX*(t-JX)}function NI(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function DI(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function cIe(t){if(t instanceof bl)return new bl(t.h,t.c,t.l,t.opacity);if(t instanceof ia||(t=eK(t)),t.a===0&&t.b===0)return new bl(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*VX;return new bl(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function fT(t,e,n,r){return arguments.length===1?cIe(t):new bl(t,e,n,r??1)}function bl(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}function tK(t){if(isNaN(t.h))return new ia(t.l,0,0,t.opacity);var e=t.h*WX;return new ia(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}Fp(bl,fT,wy(uc,{brighter(t){return new bl(this.h,this.c,this.l+lT*(t??1),this.opacity)},darker(t){return new bl(this.h,this.c,this.l-lT*(t??1),this.opacity)},rgb(){return tK(this).rgb()}}));var nK=-.14861,FI=1.78277,wI=-.29227,xT=-.90649,$y=1.97294,rK=$y*xT,iK=$y*FI,sK=FI*wI-xT*nK;function fIe(t){if(t instanceof kx)return new kx(t.h,t.s,t.l,t.opacity);t instanceof hr||(t=bI(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=(sK*r+rK*e-iK*n)/(sK+rK-iK),s=r-i,o=($y*(n-i)-wI*s)/xT,u=Math.sqrt(o*o+s*s)/($y*i*(1-i)),a=u?Math.atan2(o,s)*VX-120:NaN;return new kx(a<0?a+360:a,u,i,t.opacity)}function LI(t,e,n,r){return arguments.length===1?fIe(t):new kx(t,e,n,r??1)}function kx(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Fp(kx,LI,wy(uc,{brighter(t){return t=t==null?wp:Math.pow(wp,t),new kx(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ix:Math.pow(Ix,t),new kx(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*WX,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new hr(255*(e+n*(nK*r+FI*i)),255*(e+n*(wI*r+xT*i)),255*(e+n*($y*r)),this.opacity)}}));function oK(t,e,n,r,i){var s=t*t,o=s*t;return((1-3*t+3*s-o)*e+(4-6*s+3*o)*n+(1+3*t+3*s-3*o)*r+o*i)/6}function uK(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],s=t[r+1],o=r>0?t[r-1]:2*i-s,u=r<e-1?t[r+2]:2*s-i;return oK((n-r/e)*e,o,i,s,u)}}function aK(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],s=t[r%e],o=t[(r+1)%e],u=t[(r+2)%e];return oK((n-r/e)*e,i,s,o,u)}}const dT=t=>()=>t;function lK(t,e){return function(n){return t+n*e}}function xIe(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function hT(t,e){var n=e-t;return n?lK(t,n>180||n<-180?n-360*Math.round(n/360):n):dT(isNaN(t)?e:t)}function dIe(t){return(t=+t)==1?pr:function(e,n){return n-e?xIe(e,n,t):dT(isNaN(e)?n:e)}}function pr(t,e){var n=e-t;return n?lK(t,n):dT(isNaN(t)?e:t)}const II=function t(e){var n=dIe(e);function r(i,s){var o=n((i=ac(i)).r,(s=ac(s)).r),u=n(i.g,s.g),a=n(i.b,s.b),l=pr(i.opacity,s.opacity);return function(c){return i.r=o(c),i.g=u(c),i.b=a(c),i.opacity=l(c),i+""}}return r.gamma=t,r}(1);function cK(t){return function(e){var n=e.length,r=new Array(n),i=new Array(n),s=new Array(n),o,u;for(o=0;o<n;++o)u=ac(e[o]),r[o]=u.r||0,i[o]=u.g||0,s[o]=u.b||0;return r=t(r),i=t(i),s=t(s),u.opacity=1,function(a){return u.r=r(a),u.g=i(a),u.b=s(a),u+""}}}var hIe=cK(uK),pIe=cK(aK);function $I(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),i;return function(s){for(i=0;i<n;++i)r[i]=t[i]*(1-s)+e[i]*s;return r}}function fK(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function gIe(t,e){return(fK(e)?$I:xK)(t,e)}function xK(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,i=new Array(r),s=new Array(n),o;for(o=0;o<r;++o)i[o]=lc(t[o],e[o]);for(;o<n;++o)s[o]=e[o];return function(u){for(o=0;o<r;++o)s[o]=i[o](u);return s}}function dK(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function Yo(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function hK(t,e){var n={},r={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?n[i]=lc(t[i],e[i]):r[i]=e[i];return function(s){for(i in n)r[i]=n[i](s);return r}}var BI=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,kI=new RegExp(BI.source,"g");function mIe(t){return function(){return t}}function yIe(t){return function(e){return t(e)+""}}function pK(t,e){var n=BI.lastIndex=kI.lastIndex=0,r,i,s,o=-1,u=[],a=[];for(t=t+"",e=e+"";(r=BI.exec(t))&&(i=kI.exec(e));)(s=i.index)>n&&(s=e.slice(n,s),u[o]?u[o]+=s:u[++o]=s),(r=r[0])===(i=i[0])?u[o]?u[o]+=i:u[++o]=i:(u[++o]=null,a.push({i:o,x:Yo(r,i)})),n=kI.lastIndex;return n<e.length&&(s=e.slice(n),u[o]?u[o]+=s:u[++o]=s),u.length<2?a[0]?yIe(a[0].x):mIe(e):(e=a.length,function(l){for(var c=0,f;c<e;++c)u[(f=a[c]).i]=f.x(l);return u.join("")})}function lc(t,e){var n=typeof e,r;return e==null||n==="boolean"?dT(e):(n==="number"?Yo:n==="string"?(r=Iy(e))?(e=r,II):pK:e instanceof Iy?II:e instanceof Date?dK:fK(e)?$I:Array.isArray(e)?xK:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?hK:Yo)(t,e)}function EIe(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}function AIe(t,e){var n=hT(+t,+e);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function By(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var gK=180/Math.PI,PI={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function mK(t,e,n,r,i,s){var o,u,a;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(a=t*n+e*r)&&(n-=t*a,r-=e*a),(u=Math.sqrt(n*n+r*r))&&(n/=u,r/=u,a/=u),t*r<e*n&&(t=-t,e=-e,a=-a,o=-o),{translateX:i,translateY:s,rotate:Math.atan2(e,t)*gK,skewX:Math.atan(a)*gK,scaleX:o,scaleY:u}}var pT;function SIe(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?PI:mK(e.a,e.b,e.c,e.d,e.e,e.f)}function vIe(t){return t==null||(pT||(pT=document.createElementNS("http://www.w3.org/2000/svg","g")),pT.setAttribute("transform",t),!(t=pT.transform.baseVal.consolidate()))?PI:(t=t.matrix,mK(t.a,t.b,t.c,t.d,t.e,t.f))}function yK(t,e,n,r){function i(l){return l.length?l.pop()+" ":""}function s(l,c,f,x,h,p){if(l!==f||c!==x){var m=h.push("translate(",null,e,null,n);p.push({i:m-4,x:Yo(l,f)},{i:m-2,x:Yo(c,x)})}else(f||x)&&h.push("translate("+f+e+x+n)}function o(l,c,f,x){l!==c?(l-c>180?c+=360:c-l>180&&(l+=360),x.push({i:f.push(i(f)+"rotate(",null,r)-2,x:Yo(l,c)})):c&&f.push(i(f)+"rotate("+c+r)}function u(l,c,f,x){l!==c?x.push({i:f.push(i(f)+"skewX(",null,r)-2,x:Yo(l,c)}):c&&f.push(i(f)+"skewX("+c+r)}function a(l,c,f,x,h,p){if(l!==f||c!==x){var m=h.push(i(h)+"scale(",null,",",null,")");p.push({i:m-4,x:Yo(l,f)},{i:m-2,x:Yo(c,x)})}else(f!==1||x!==1)&&h.push(i(h)+"scale("+f+","+x+")")}return function(l,c){var f=[],x=[];return l=t(l),c=t(c),s(l.translateX,l.translateY,c.translateX,c.translateY,f,x),o(l.rotate,c.rotate,f,x),u(l.skewX,c.skewX,f,x),a(l.scaleX,l.scaleY,c.scaleX,c.scaleY,f,x),l=c=null,function(h){for(var p=-1,m=x.length,g;++p<m;)f[(g=x[p]).i]=g.x(h);return f.join("")}}}var _Ie=yK(SIe,"px, ","px)","deg)"),CIe=yK(vIe,", ",")",")"),bIe=1e-12;function EK(t){return((t=Math.exp(t))+1/t)/2}function TIe(t){return((t=Math.exp(t))-1/t)/2}function RIe(t){return((t=Math.exp(2*t))-1)/(t+1)}const OIe=function t(e,n,r){function i(s,o){var u=s[0],a=s[1],l=s[2],c=o[0],f=o[1],x=o[2],h=c-u,p=f-a,m=h*h+p*p,g,y;if(m<bIe)y=Math.log(x/l)/e,g=function(C){return[u+C*h,a+C*p,l*Math.exp(e*C*y)]};else{var E=Math.sqrt(m),A=(x*x-l*l+r*m)/(2*l*n*E),S=(x*x-l*l-r*m)/(2*x*n*E),v=Math.log(Math.sqrt(A*A+1)-A),_=Math.log(Math.sqrt(S*S+1)-S);y=(_-v)/e,g=function(C){var b=C*y,R=EK(v),O=l/(n*E)*(R*RIe(e*b+v)-TIe(v));return[u+O*h,a+O*p,l*R/EK(e*b+v)]}}return g.duration=y*1e3*e/Math.SQRT2,g}return i.rho=function(s){var o=Math.max(.001,+s),u=o*o,a=u*u;return t(o,u,a)},i}(Math.SQRT2,2,4);function AK(t){return function(e,n){var r=t((e=uT(e)).h,(n=uT(n)).h),i=pr(e.s,n.s),s=pr(e.l,n.l),o=pr(e.opacity,n.opacity);return function(u){return e.h=r(u),e.s=i(u),e.l=s(u),e.opacity=o(u),e+""}}}const NIe=AK(hT);var DIe=AK(pr);function FIe(t,e){var n=pr((t=cT(t)).l,(e=cT(e)).l),r=pr(t.a,e.a),i=pr(t.b,e.b),s=pr(t.opacity,e.opacity);return function(o){return t.l=n(o),t.a=r(o),t.b=i(o),t.opacity=s(o),t+""}}function SK(t){return function(e,n){var r=t((e=fT(e)).h,(n=fT(n)).h),i=pr(e.c,n.c),s=pr(e.l,n.l),o=pr(e.opacity,n.opacity);return function(u){return e.h=r(u),e.c=i(u),e.l=s(u),e.opacity=o(u),e+""}}}const wIe=SK(hT);var LIe=SK(pr);function vK(t){return function e(n){n=+n;function r(i,s){var o=t((i=LI(i)).h,(s=LI(s)).h),u=pr(i.s,s.s),a=pr(i.l,s.l),l=pr(i.opacity,s.opacity);return function(c){return i.h=o(c),i.s=u(c),i.l=a(Math.pow(c,n)),i.opacity=l(c),i+""}}return r.gamma=e,r}(1)}const IIe=vK(hT);var $Ie=vK(pr);function MI(t,e){e===void 0&&(e=t,t=lc);for(var n=0,r=e.length-1,i=e[0],s=new Array(r<0?0:r);n<r;)s[n]=t(i,i=e[++n]);return function(o){var u=Math.max(0,Math.min(r-1,Math.floor(o*=r)));return s[u](o-u)}}function BIe(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t(r/(e-1));return n}const kIe=Object.freeze(Object.defineProperty({__proto__:null,interpolate:lc,interpolateArray:gIe,interpolateBasis:uK,interpolateBasisClosed:aK,interpolateCubehelix:IIe,interpolateCubehelixLong:$Ie,interpolateDate:dK,interpolateDiscrete:EIe,interpolateHcl:wIe,interpolateHclLong:LIe,interpolateHsl:NIe,interpolateHslLong:DIe,interpolateHue:AIe,interpolateLab:FIe,interpolateNumber:Yo,interpolateNumberArray:$I,interpolateObject:hK,interpolateRgb:II,interpolateRgbBasis:hIe,interpolateRgbBasisClosed:pIe,interpolateRound:By,interpolateString:pK,interpolateTransformCss:_Ie,interpolateTransformSvg:CIe,interpolateZoom:OIe,piecewise:MI,quantize:BIe},Symbol.toStringTag,{value:"Module"}));function PIe(t){return function(){return t}}function jI(t){return+t}var _K=[0,1];function ns(t){return t}function UI(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:PIe(isNaN(e)?NaN:.5)}function MIe(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function jIe(t,e,n){var r=t[0],i=t[1],s=e[0],o=e[1];return i<r?(r=UI(i,r),s=n(o,s)):(r=UI(r,i),s=n(s,o)),function(u){return s(r(u))}}function UIe(t,e,n){var r=Math.min(t.length,e.length)-1,i=new Array(r),s=new Array(r),o=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++o<r;)i[o]=UI(t[o],t[o+1]),s[o]=n(e[o],e[o+1]);return function(u){var a=J0(t,u,1,r)-1;return s[a](i[a](u))}}function ky(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function gT(){var t=_K,e=_K,n=lc,r,i,s,o=ns,u,a,l;function c(){var x=Math.min(t.length,e.length);return o!==ns&&(o=MIe(t[0],t[x-1])),u=x>2?UIe:jIe,a=l=null,f}function f(x){return x==null||isNaN(x=+x)?s:(a||(a=u(t.map(r),e,n)))(r(o(x)))}return f.invert=function(x){return o(i((l||(l=u(e,t.map(r),Yo)))(x)))},f.domain=function(x){return arguments.length?(t=Array.from(x,jI),c()):t.slice()},f.range=function(x){return arguments.length?(e=Array.from(x),c()):e.slice()},f.rangeRound=function(x){return e=Array.from(x),n=By,c()},f.clamp=function(x){return arguments.length?(o=x?!0:ns,c()):o!==ns},f.interpolate=function(x){return arguments.length?(n=x,c()):n},f.unknown=function(x){return arguments.length?(s=x,f):s},function(x,h){return r=x,i=h,c()}}function CK(){return gT()(ns,ns)}function bK(t,e,n,r){var i=Z0(t,e,n),s;switch(r=bx(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(s=pV(i,o))&&(r.precision=s),i5(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(s=gV(i,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=s-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(s=hV(i))&&(r.precision=s-(r.type==="%")*2);break}}return wb(r)}function Px(t){var e=t.domain;return t.ticks=function(n){var r=e();return Z4(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var i=e();return bK(i[0],i[i.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),i=0,s=r.length-1,o=r[i],u=r[s],a,l,c=10;for(u<o&&(l=o,o=u,u=l,l=i,i=s,s=l);c-- >0;){if(l=e5(o,u,n),l===a)return r[i]=o,r[s]=u,e(r);if(l>0)o=Math.floor(o/l)*l,u=Math.ceil(u/l)*l;else if(l<0)o=Math.ceil(o*l)/l,u=Math.floor(u*l)/l;else break;a=l}return t},t}function TK(){var t=CK();return t.copy=function(){return ky(t,TK())},na.apply(t,arguments),Px(t)}function RK(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,jI),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return RK(t).unknown(e)},t=arguments.length?Array.from(t,jI):[0,1],Px(n)}function OK(t,e){t=t.slice();var n=0,r=t.length-1,i=t[n],s=t[r],o;return s<i&&(o=n,n=r,r=o,o=i,i=s,s=o),t[n]=e.floor(i),t[r]=e.ceil(s),t}function NK(t){return Math.log(t)}function DK(t){return Math.exp(t)}function qIe(t){return-Math.log(-t)}function HIe(t){return-Math.exp(-t)}function zIe(t){return isFinite(t)?+("1e"+t):t<0?0:t}function QIe(t){return t===10?zIe:t===Math.E?Math.exp:e=>Math.pow(t,e)}function GIe(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function FK(t){return(e,n)=>-t(-e,n)}function qI(t){const e=t(NK,DK),n=e.domain;let r=10,i,s;function o(){return i=GIe(r),s=QIe(r),n()[0]<0?(i=FK(i),s=FK(s),t(qIe,HIe)):t(NK,DK),e}return e.base=function(u){return arguments.length?(r=+u,o()):r},e.domain=function(u){return arguments.length?(n(u),o()):n()},e.ticks=u=>{const a=n();let l=a[0],c=a[a.length-1];const f=c<l;f&&([l,c]=[c,l]);let x=i(l),h=i(c),p,m;const g=u==null?10:+u;let y=[];if(!(r%1)&&h-x<g){if(x=Math.floor(x),h=Math.ceil(h),l>0){for(;x<=h;++x)for(p=1;p<r;++p)if(m=x<0?p/s(-x):p*s(x),!(m<l)){if(m>c)break;y.push(m)}}else for(;x<=h;++x)for(p=r-1;p>=1;--p)if(m=x>0?p/s(-x):p*s(x),!(m<l)){if(m>c)break;y.push(m)}y.length*2<g&&(y=Z4(l,c,g))}else y=Z4(x,h,Math.min(h-x,g)).map(s);return f?y.reverse():y},e.tickFormat=(u,a)=>{if(u==null&&(u=10),a==null&&(a=r===10?"s":","),typeof a!="function"&&(!(r%1)&&(a=bx(a)).precision==null&&(a.trim=!0),a=wb(a)),u===1/0)return a;const l=Math.max(1,r*u/e.ticks().length);return c=>{let f=c/s(Math.round(i(c)));return f*r<r-.5&&(f*=r),f<=l?a(c):""}},e.nice=()=>n(OK(n(),{floor:u=>s(Math.floor(i(u))),ceil:u=>s(Math.ceil(i(u)))})),e}function wK(){const t=qI(gT()).domain([1,10]);return t.copy=()=>ky(t,wK()).base(t.base()),na.apply(t,arguments),t}function LK(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function IK(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function HI(t){var e=1,n=t(LK(e),IK(e));return n.constant=function(r){return arguments.length?t(LK(e=+r),IK(e)):e},Px(n)}function $K(){var t=HI(gT());return t.copy=function(){return ky(t,$K()).constant(t.constant())},na.apply(t,arguments)}function BK(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function WIe(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function VIe(t){return t<0?-t*t:t*t}function zI(t){var e=t(ns,ns),n=1;function r(){return n===1?t(ns,ns):n===.5?t(WIe,VIe):t(BK(n),BK(1/n))}return e.exponent=function(i){return arguments.length?(n=+i,r()):n},Px(e)}function QI(){var t=zI(gT());return t.copy=function(){return ky(t,QI()).exponent(t.exponent())},na.apply(t,arguments),t}function YIe(){return QI.apply(null,arguments).exponent(.5)}function kK(){var t=[],e=[],n=[],r;function i(){var o=0,u=Math.max(1,e.length);for(n=new Array(u-1);++o<u;)n[o-1]=rV(t,o/u);return s}function s(o){return o==null||isNaN(o=+o)?r:e[J0(n,o)]}return s.invertExtent=function(o){var u=e.indexOf(o);return u<0?[NaN,NaN]:[u>0?n[u-1]:t[0],u<n.length?n[u]:t[t.length-1]]},s.domain=function(o){if(!arguments.length)return t.slice();t=[];for(let u of o)u!=null&&!isNaN(u=+u)&&t.push(u);return t.sort(gl),i()},s.range=function(o){return arguments.length?(e=Array.from(o),i()):e.slice()},s.unknown=function(o){return arguments.length?(r=o,s):r},s.quantiles=function(){return n.slice()},s.copy=function(){return kK().domain(t).range(e).unknown(r)},na.apply(s,arguments)}function PK(){var t=0,e=1,n=1,r=[.5],i=[0,1],s;function o(a){return a!=null&&a<=a?i[J0(r,a,0,n)]:s}function u(){var a=-1;for(r=new Array(n);++a<n;)r[a]=((a+1)*e-(a-n)*t)/(n+1);return o}return o.domain=function(a){return arguments.length?([t,e]=a,t=+t,e=+e,u()):[t,e]},o.range=function(a){return arguments.length?(n=(i=Array.from(a)).length-1,u()):i.slice()},o.invertExtent=function(a){var l=i.indexOf(a);return l<0?[NaN,NaN]:l<1?[t,r[0]]:l>=n?[r[n-1],e]:[r[l-1],r[l]]},o.unknown=function(a){return arguments.length&&(s=a),o},o.thresholds=function(){return r.slice()},o.copy=function(){return PK().domain([t,e]).range(i).unknown(s)},na.apply(Px(o),arguments)}function MK(){var t=[.5],e=[0,1],n,r=1;function i(s){return s!=null&&s<=s?e[J0(t,s,0,r)]:n}return i.domain=function(s){return arguments.length?(t=Array.from(s),r=Math.min(t.length,e.length-1),i):t.slice()},i.range=function(s){return arguments.length?(e=Array.from(s),r=Math.min(t.length,e.length-1),i):e.slice()},i.invertExtent=function(s){var o=e.indexOf(s);return[t[o-1],t[o]]},i.unknown=function(s){return arguments.length?(n=s,i):n},i.copy=function(){return MK().domain(t).range(e).unknown(n)},na.apply(i,arguments)}function XIe(t){return new Date(t)}function KIe(t){return t instanceof Date?+t:+new Date(+t)}function GI(t,e,n,r,i,s,o,u,a,l){var c=CK(),f=c.invert,x=c.domain,h=l(".%L"),p=l(":%S"),m=l("%I:%M"),g=l("%I %p"),y=l("%a %d"),E=l("%b %d"),A=l("%B"),S=l("%Y");function v(_){return(a(_)<_?h:u(_)<_?p:o(_)<_?m:s(_)<_?g:r(_)<_?i(_)<_?y:E:n(_)<_?A:S)(_)}return c.invert=function(_){return new Date(f(_))},c.domain=function(_){return arguments.length?x(Array.from(_,KIe)):x().map(XIe)},c.ticks=function(_){var C=x();return t(C[0],C[C.length-1],_??10)},c.tickFormat=function(_,C){return C==null?v:l(C)},c.nice=function(_){var C=x();return(!_||typeof _.range!="function")&&(_=e(C[0],C[C.length-1],_??10)),_?x(OK(C,_)):c},c.copy=function(){return ky(c,GI(t,e,n,r,i,s,o,u,a,l))},c}function JIe(){return na.apply(GI(DFe,FFe,Ku,uy,Sp,Sl,$b,Lb,Al,y5).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function ZIe(){return na.apply(GI(OFe,NFe,Ju,ay,_p,ec,Bb,Ib,Al,E5).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function mT(){var t=0,e=1,n,r,i,s,o=ns,u=!1,a;function l(f){return f==null||isNaN(f=+f)?a:o(i===0?.5:(f=(s(f)-n)*i,u?Math.max(0,Math.min(1,f)):f))}l.domain=function(f){return arguments.length?([t,e]=f,n=s(t=+t),r=s(e=+e),i=n===r?0:1/(r-n),l):[t,e]},l.clamp=function(f){return arguments.length?(u=!!f,l):u},l.interpolator=function(f){return arguments.length?(o=f,l):o};function c(f){return function(x){var h,p;return arguments.length?([h,p]=x,o=f(h,p),l):[o(0),o(1)]}}return l.range=c(lc),l.rangeRound=c(By),l.unknown=function(f){return arguments.length?(a=f,l):a},function(f){return s=f,n=f(t),r=f(e),i=n===r?0:1/(r-n),l}}function cc(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function WI(){var t=Px(mT()(ns));return t.copy=function(){return cc(t,WI())},oc.apply(t,arguments)}function jK(){var t=qI(mT()).domain([1,10]);return t.copy=function(){return cc(t,jK()).base(t.base())},oc.apply(t,arguments)}function UK(){var t=HI(mT());return t.copy=function(){return cc(t,UK()).constant(t.constant())},oc.apply(t,arguments)}function VI(){var t=zI(mT());return t.copy=function(){return cc(t,VI()).exponent(t.exponent())},oc.apply(t,arguments)}function e$e(){return VI.apply(null,arguments).exponent(.5)}function yT(){var t=0,e=.5,n=1,r=1,i,s,o,u,a,l=ns,c,f=!1,x;function h(m){return isNaN(m=+m)?x:(m=.5+((m=+c(m))-s)*(r*m<r*s?u:a),l(f?Math.max(0,Math.min(1,m)):m))}h.domain=function(m){return arguments.length?([t,e,n]=m,i=c(t=+t),s=c(e=+e),o=c(n=+n),u=i===s?0:.5/(s-i),a=s===o?0:.5/(o-s),r=s<i?-1:1,h):[t,e,n]},h.clamp=function(m){return arguments.length?(f=!!m,h):f},h.interpolator=function(m){return arguments.length?(l=m,h):l};function p(m){return function(g){var y,E,A;return arguments.length?([y,E,A]=g,l=MI(m,[y,E,A]),h):[l(0),l(.5),l(1)]}}return h.range=p(lc),h.rangeRound=p(By),h.unknown=function(m){return arguments.length?(x=m,h):x},function(m){return c=m,i=m(t),s=m(e),o=m(n),u=i===s?0:.5/(s-i),a=s===o?0:.5/(o-s),r=s<i?-1:1,h}}function qK(){var t=Px(yT()(ns));return t.copy=function(){return cc(t,qK())},oc.apply(t,arguments)}function HK(){var t=qI(yT()).domain([.1,1,10]);return t.copy=function(){return cc(t,HK()).base(t.base())},oc.apply(t,arguments)}function zK(){var t=HI(yT());return t.copy=function(){return cc(t,zK()).constant(t.constant())},oc.apply(t,arguments)}function YI(){var t=zI(yT());return t.copy=function(){return cc(t,YI()).exponent(t.exponent())},oc.apply(t,arguments)}function t$e(){return YI.apply(null,arguments).exponent(.5)}function XI(t,e,n){const r=t-e+n*2;return t?r>0?r:1:0}const n$e="identity",$p="linear",Tl="log",Py="pow",My="sqrt",ET="symlog",Mx="time",jx="utc",sa="sequential",Bp="diverging",kp="quantile",AT="quantize",ST="threshold",KI="ordinal",JI="point",QK="band",ZI="bin-ordinal",Kn="continuous",jy="discrete",Uy="discretizing",co="interpolating",e$="temporal";function r$e(t){return function(e){let n=e[0],r=e[1],i;return r<n&&(i=n,n=r,r=i),[t.invert(n),t.invert(r)]}}function i$e(t){return function(e){const n=t.range();let r=e[0],i=e[1],s=-1,o,u,a,l;for(i<r&&(u=r,r=i,i=u),a=0,l=n.length;a<l;++a)n[a]>=r&&n[a]<=i&&(s<0&&(s=a),o=a);if(!(s<0))return r=t.invertExtent(n[s]),i=t.invertExtent(n[o]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function t$(){const t=CI().unknown(void 0),e=t.domain,n=t.range;let r=[0,1],i,s,o=!1,u=0,a=0,l=.5;delete t.unknown;function c(){const f=e().length,x=r[1]<r[0],h=r[1-x],p=XI(f,u,a);let m=r[x-0];i=(h-m)/(p||1),o&&(i=Math.floor(i)),m+=(h-m-i*(f-u))*l,s=i*(1-u),o&&(m=Math.round(m),s=Math.round(s));const g=Fs(f).map(y=>m+i*y);return n(x?g.reverse():g)}return t.domain=function(f){return arguments.length?(e(f),c()):e()},t.range=function(f){return arguments.length?(r=[+f[0],+f[1]],c()):r.slice()},t.rangeRound=function(f){return r=[+f[0],+f[1]],o=!0,c()},t.bandwidth=function(){return s},t.step=function(){return i},t.round=function(f){return arguments.length?(o=!!f,c()):o},t.padding=function(f){return arguments.length?(a=Math.max(0,Math.min(1,f)),u=a,c()):u},t.paddingInner=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),c()):u},t.paddingOuter=function(f){return arguments.length?(a=Math.max(0,Math.min(1,f)),c()):a},t.align=function(f){return arguments.length?(l=Math.max(0,Math.min(1,f)),c()):l},t.invertRange=function(f){if(f[0]==null||f[1]==null)return;const x=r[1]<r[0],h=x?n().reverse():n(),p=h.length-1;let m=+f[0],g=+f[1],y,E,A;if(!(m!==m||g!==g)&&(g<m&&(A=m,m=g,g=A),!(g<h[0]||m>r[1-x])))return y=Math.max(0,J0(h,m)-1),E=m===g?y:J0(h,g)-1,m-h[y]>s+1e-10&&++y,x&&(A=y,y=p-E,E=p-A),y>E?void 0:e().slice(y,E+1)},t.invert=function(f){const x=t.invertRange([f,f]);return x&&x[0]},t.copy=function(){return t$().domain(e()).range(r).round(o).paddingInner(u).paddingOuter(a).align(l)},c()}function GK(t){const e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return GK(e())},t}function s$e(){return GK(t$().paddingInner(1))}var o$e=Array.prototype.map;function u$e(t){return o$e.call(t,yi)}const a$e=Array.prototype.slice;function WK(){let t=[],e=[];function n(r){return r==null||r!==r?void 0:e[(J0(t,r)-1)%e.length]}return n.domain=function(r){return arguments.length?(t=u$e(r),n):t.slice()},n.range=function(r){return arguments.length?(e=a$e.call(r),n):e.slice()},n.tickFormat=function(r,i){return bK(t[0],vt(t),r??10,i)},n.copy=function(){return WK().domain(n.domain()).range(n.range())},n}const vT=new Map,VK=Symbol("vega_scale");function YK(t){return t[VK]=!0,t}function l$e(t){return t&&t[VK]===!0}function c$e(t,e,n){const r=function(){const s=e();return s.invertRange||(s.invertRange=s.invert?r$e(s):s.invertExtent?i$e(s):void 0),s.type=t,YK(s)};return r.metadata=Xu(Pe(n)),r}function Ot(t,e,n){return arguments.length>1?(vT.set(t,c$e(t,e,n)),this):XK(t)?vT.get(t):void 0}Ot(n$e,RK),Ot($p,TK,Kn),Ot(Tl,wK,[Kn,Tl]),Ot(Py,QI,Kn),Ot(My,YIe,Kn),Ot(ET,$K,Kn),Ot(Mx,JIe,[Kn,e$]),Ot(jx,ZIe,[Kn,e$]),Ot(sa,WI,[Kn,co]),Ot(`${sa}-${$p}`,WI,[Kn,co]),Ot(`${sa}-${Tl}`,jK,[Kn,co,Tl]),Ot(`${sa}-${Py}`,VI,[Kn,co]),Ot(`${sa}-${My}`,e$e,[Kn,co]),Ot(`${sa}-${ET}`,UK,[Kn,co]),Ot(`${Bp}-${$p}`,qK,[Kn,co]),Ot(`${Bp}-${Tl}`,HK,[Kn,co,Tl]),Ot(`${Bp}-${Py}`,YI,[Kn,co]),Ot(`${Bp}-${My}`,t$e,[Kn,co]),Ot(`${Bp}-${ET}`,zK,[Kn,co]),Ot(kp,kK,[Uy,kp]),Ot(AT,PK,Uy),Ot(ST,MK,Uy),Ot(ZI,WK,[jy,Uy]),Ot(KI,CI,jy),Ot(QK,t$,jy),Ot(JI,s$e,jy);function XK(t){return vT.has(t)}function Ux(t,e){const n=vT.get(t);return n&&n.metadata[e]}function n$(t){return Ux(t,Kn)}function Pp(t){return Ux(t,jy)}function r$(t){return Ux(t,Uy)}function KK(t){return Ux(t,Tl)}function f$e(t){return Ux(t,e$)}function JK(t){return Ux(t,co)}function ZK(t){return Ux(t,kp)}const x$e=["clamp","base","constant","exponent"];function d$e(t,e){const n=e[0],r=vt(e)-n;return function(i){return t(n+i*r)}}function i$(t,e,n){return MI(tJ(e||"rgb",n),t)}function h$e(t,e){const n=new Array(e),r=e+1;for(let i=0;i<e;)n[i]=t(++i/r);return n}function eJ(t,e,n){const r=n-e;let i,s,o;return!r||!Number.isFinite(r)?Ei(.5):(i=(s=t.type).indexOf("-"),s=i<0?s:s.slice(i+1),o=Ot(s)().domain([e,n]).range([0,1]),x$e.forEach(u=>t[u]?o[u](t[u]()):0),o)}function tJ(t,e){const n=kIe[p$e(t)];return e!=null&&n&&n.gamma?n.gamma(e):n}function p$e(t){return"interpolate"+t.toLowerCase().split("-").map(e=>e[0].toUpperCase()+e.slice(1)).join("")}const g$e={blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},m$e={category10:"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf",category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5",accent:"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666",dark2:"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666",paired:"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928",pastel1:"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2",pastel2:"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc",set1:"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999",set2:"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3",set3:"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"};function nJ(t){const e=t.length/6|0,n=new Array(e);for(let r=0;r<e;)n[r]="#"+t.slice(r*6,++r*6);return n}function rJ(t,e){for(const n in t)sJ(n,e(t[n]))}const iJ={};rJ(m$e,nJ),rJ(g$e,t=>i$(nJ(t)));function sJ(t,e){return t=t&&t.toLowerCase(),arguments.length>1?(iJ[t]=e,this):iJ[t]}const _T="symbol",y$e="discrete",E$e="gradient",A$e=t=>_e(t)?t.map(e=>String(e)):String(t),S$e=(t,e)=>t[1]-e[1],v$e=(t,e)=>e[1]-t[1];function s$(t,e,n){let r;return tn(e)&&(t.bins&&(e=Math.max(e,t.bins.length)),n!=null&&(e=Math.min(e,Math.floor(Rb(t.domain())/n||1)))),He(e)&&(r=e.step,e=e.interval),je(e)&&(e=t.type===Mx?ly(e):t.type==jx?cy(e):ve("Only time and utc scales accept interval strings."),r&&(e=e.every(r))),e}function oJ(t,e,n){let r=t.range(),i=r[0],s=vt(r),o=S$e;if(i>s&&(r=s,s=i,i=r,o=v$e),i=Math.floor(i),s=Math.ceil(s),e=e.map(u=>[u,t(u)]).filter(u=>i<=u[1]&&u[1]<=s).sort(o).map(u=>u[0]),n>0&&e.length>1){const u=[e[0],vt(e)];for(;e.length>n&&e.length>=3;)e=e.filter((a,l)=>!(l%2));e.length<3&&(e=u)}return e}function o$(t,e){return t.bins?oJ(t,t.bins):t.ticks?t.ticks(e):t.domain()}function uJ(t,e,n,r,i,s){const o=e.type;let u=A$e;if(o===Mx||i===Mx)u=t.timeFormat(r);else if(o===jx||i===jx)u=t.utcFormat(r);else if(KK(o)){const a=t.formatFloat(r);if(s||e.bins)u=a;else{const l=aJ(e,n,!1);u=c=>l(c)?a(c):""}}else if(e.tickFormat){const a=e.domain();u=t.formatSpan(a[0],a[a.length-1],n,r)}else r&&(u=t.format(r));return u}function aJ(t,e,n){const r=o$(t,e),i=t.base(),s=Math.log(i),o=Math.max(1,i*e/r.length),u=a=>{let l=a/Math.pow(i,Math.round(Math.log(a)/s));return l*i<i-.5&&(l*=i),l<=o};return n?r.filter(u):u}const u$={[kp]:"quantiles",[AT]:"thresholds",[ST]:"domain"},lJ={[kp]:"quantiles",[AT]:"domain"};function cJ(t,e){return t.bins?b$e(t.bins):t.type===Tl?aJ(t,e,!0):u$[t.type]?C$e(t[u$[t.type]]()):o$(t,e)}function _$e(t,e,n){const r=e[lJ[e.type]](),i=r.length;let s=i>1?r[1]-r[0]:r[0],o;for(o=1;o<i;++o)s=Math.min(s,r[o]-r[o-1]);return t.formatSpan(0,s,3*10,n)}function C$e(t){const e=[-1/0].concat(t);return e.max=1/0,e}function b$e(t){const e=t.slice(0,-1);return e.max=vt(t),e}const T$e=t=>u$[t.type]||t.bins;function fJ(t,e,n,r,i,s,o){const u=lJ[e.type]&&s!==Mx&&s!==jx?_$e(t,e,i):uJ(t,e,n,i,s,o);return r===_T&&T$e(e)?R$e(u):r===y$e?O$e(u):N$e(u)}const R$e=t=>(e,n,r)=>{const i=xJ(r[n+1],xJ(r.max,1/0)),s=dJ(e,t),o=dJ(i,t);return s&&o?s+" – "+o:o?"< "+o:"≥ "+s},xJ=(t,e)=>t??e,O$e=t=>(e,n)=>n?t(e):null,N$e=t=>e=>t(e),dJ=(t,e)=>Number.isFinite(t)?e(t):null;function D$e(t){const e=t.domain(),n=e.length-1;let r=+e[0],i=+vt(e),s=i-r;if(t.type===ST){const o=n?s/n:.1;r-=o,i+=o,s=i-r}return o=>(o-r)/s}function F$e(t,e,n,r){const i=r||e.type;return je(n)&&f$e(i)&&(n=n.replace(/%a/g,"%A").replace(/%b/g,"%B")),!n&&i===Mx?t.timeFormat("%A, %d %B %Y, %X"):!n&&i===jx?t.utcFormat("%A, %d %B %Y, %X UTC"):fJ(t,e,5,null,n,r,!0)}function hJ(t,e,n){n=n||{};const r=Math.max(3,n.maxlen||7),i=F$e(t,e,n.format,n.formatType);if(r$(e.type)){const s=cJ(e).slice(1).map(i),o=s.length;return`${o} boundar${o===1?"y":"ies"}: ${s.join(", ")}`}else if(Pp(e.type)){const s=e.domain(),o=s.length,u=o>r?s.slice(0,r-2).map(i).join(", ")+", ending with "+s.slice(-1).map(i):s.map(i).join(", ");return`${o} value${o===1?"":"s"}: ${u}`}else{const s=e.domain();return`values from ${i(s[0])} to ${i(vt(s))}`}}let w$e=0;const CT="p_";function a$(t){return t&&t.gradient}function pJ(t,e,n){const r=t.gradient;let i=t.id,s=r==="radial"?CT:"";return i||(i=t.id="gradient_"+w$e++,r==="radial"?(t.x1=oa(t.x1,.5),t.y1=oa(t.y1,.5),t.r1=oa(t.r1,0),t.x2=oa(t.x2,.5),t.y2=oa(t.y2,.5),t.r2=oa(t.r2,.5),s=CT):(t.x1=oa(t.x1,0),t.y1=oa(t.y1,0),t.x2=oa(t.x2,1),t.y2=oa(t.y2,0))),e[i]=t,"url("+(n||"")+"#"+s+i+")"}function oa(t,e){return t??e}function L$e(t,e){var n=[],r;return r={gradient:"linear",x1:t?t[0]:0,y1:t?t[1]:0,x2:e?e[0]:1,y2:e?e[1]:0,stops:n,stop:function(i,s){return n.push({offset:i,color:s}),r}}}const gJ={basis:{curve:$5e},"basis-closed":{curve:B5e},"basis-open":{curve:k5e},bundle:{curve:P5e,tension:"beta",value:.85},cardinal:{curve:M5e,tension:"tension",value:0},"cardinal-open":{curve:U5e,tension:"tension",value:0},"cardinal-closed":{curve:j5e,tension:"tension",value:0},"catmull-rom":{curve:q5e,tension:"alpha",value:.5},"catmull-rom-closed":{curve:H5e,tension:"alpha",value:.5},"catmull-rom-open":{curve:z5e,tension:"alpha",value:.5},linear:{curve:mI},"linear-closed":{curve:Q5e},monotone:{horizontal:W5e,vertical:G5e},natural:{curve:V5e},step:{curve:Y5e},"step-after":{curve:K5e},"step-before":{curve:X5e}};function mJ(t,e,n){var r=Je(gJ,t)&&gJ[t],i=null;return r&&(i=r.curve||r[e||"vertical"],r.tension&&n!=null&&(i=i[r.tension](n))),i}const I$e={m:2,l:2,h:1,v:1,z:0,c:6,s:4,q:4,t:2,a:7},$$e=/[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi,B$e=/^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/,k$e=/^((\s+,?\s*)|(,\s*))/,P$e=/^[01]/;function l$(t){const e=[];return(t.match($$e)||[]).forEach(r=>{let i=r[0];const s=i.toLowerCase(),o=I$e[s],u=M$e(s,o,r.slice(1).trim()),a=u.length;if(a<o||a&&a%o!==0)throw Error("Invalid SVG path, incorrect parameter count");if(e.push([i,...u.slice(0,o)]),a!==o){s==="m"&&(i=i==="M"?"L":"l");for(let l=o;l<a;l+=o)e.push([i,...u.slice(l,l+o)])}}),e}function M$e(t,e,n){const r=[];for(let i=0;e&&i<n.length;)for(let s=0;s<e;++s){const o=t==="a"&&(s===3||s===4)?P$e:B$e,u=n.slice(i).match(o);if(u===null)throw Error("Invalid SVG path, incorrect parameter type");i+=u[0].length,r.push(+u[0]);const a=n.slice(i).match(k$e);a!==null&&(i+=a[0].length)}return r}const fc=Math.PI/180,j$e=1e-14,qx=Math.PI/2,ua=Math.PI*2,Mp=Math.sqrt(3)/2;var c$={},f$={},yJ=[].join;function U$e(t,e,n,r,i,s,o,u,a){const l=yJ.call(arguments);if(c$[l])return c$[l];const c=o*fc,f=Math.sin(c),x=Math.cos(c);n=Math.abs(n),r=Math.abs(r);const h=x*(u-t)*.5+f*(a-e)*.5,p=x*(a-e)*.5-f*(u-t)*.5;let m=h*h/(n*n)+p*p/(r*r);m>1&&(m=Math.sqrt(m),n*=m,r*=m);const g=x/n,y=f/n,E=-f/r,A=x/r,S=g*u+y*a,v=E*u+A*a,_=g*t+y*e,C=E*t+A*e;let R=1/((_-S)*(_-S)+(C-v)*(C-v))-.25;R<0&&(R=0);let O=Math.sqrt(R);s==i&&(O=-O);const L=.5*(S+_)-O*(C-v),M=.5*(v+C)+O*(_-S),q=Math.atan2(v-M,S-L);let B=Math.atan2(C-M,_-L)-q;B<0&&s===1?B+=ua:B>0&&s===0&&(B-=ua);const G=Math.ceil(Math.abs(B/(qx+.001))),te=[];for(let K=0;K<G;++K){const de=q+K*B/G,be=q+(K+1)*B/G;te[K]=[L,M,de,be,n,r,f,x]}return c$[l]=te}function q$e(t){const e=yJ.call(t);if(f$[e])return f$[e];var n=t[0],r=t[1],i=t[2],s=t[3],o=t[4],u=t[5],a=t[6],l=t[7];const c=l*o,f=-a*u,x=a*o,h=l*u,p=Math.cos(i),m=Math.sin(i),g=Math.cos(s),y=Math.sin(s),E=.5*(s-i),A=Math.sin(E*.5),S=8/3*A*A/Math.sin(E),v=n+p-S*m,_=r+m+S*p,C=n+g,b=r+y,R=C+S*y,O=b-S*g;return f$[e]=[c*v+f*_,x*v+h*_,c*R+f*O,x*R+h*O,c*C+f*b,x*C+h*b]}const fo=["l",0,0,0,0,0,0,0];function H$e(t,e,n){const r=fo[0]=t[0];if(r==="a"||r==="A")fo[1]=e*t[1],fo[2]=n*t[2],fo[3]=t[3],fo[4]=t[4],fo[5]=t[5],fo[6]=e*t[6],fo[7]=n*t[7];else if(r==="h"||r==="H")fo[1]=e*t[1];else if(r==="v"||r==="V")fo[1]=n*t[1];else for(var i=1,s=t.length;i<s;++i)fo[i]=(i%2==1?e:n)*t[i];return fo}function bT(t,e,n,r,i,s){var o,u=null,a=0,l=0,c=0,f=0,x,h,p,m,g=0,y=0;n==null&&(n=0),r==null&&(r=0),i==null&&(i=1),s==null&&(s=i),t.beginPath&&t.beginPath();for(var E=0,A=e.length;E<A;++E){switch(o=e[E],(i!==1||s!==1)&&(o=H$e(o,i,s)),o[0]){case"l":a+=o[1],l+=o[2],t.lineTo(a+n,l+r);break;case"L":a=o[1],l=o[2],t.lineTo(a+n,l+r);break;case"h":a+=o[1],t.lineTo(a+n,l+r);break;case"H":a=o[1],t.lineTo(a+n,l+r);break;case"v":l+=o[1],t.lineTo(a+n,l+r);break;case"V":l=o[1],t.lineTo(a+n,l+r);break;case"m":a+=o[1],l+=o[2],g=a,y=l,t.moveTo(a+n,l+r);break;case"M":a=o[1],l=o[2],g=a,y=l,t.moveTo(a+n,l+r);break;case"c":x=a+o[5],h=l+o[6],c=a+o[3],f=l+o[4],t.bezierCurveTo(a+o[1]+n,l+o[2]+r,c+n,f+r,x+n,h+r),a=x,l=h;break;case"C":a=o[5],l=o[6],c=o[3],f=o[4],t.bezierCurveTo(o[1]+n,o[2]+r,c+n,f+r,a+n,l+r);break;case"s":x=a+o[3],h=l+o[4],c=2*a-c,f=2*l-f,t.bezierCurveTo(c+n,f+r,a+o[1]+n,l+o[2]+r,x+n,h+r),c=a+o[1],f=l+o[2],a=x,l=h;break;case"S":x=o[3],h=o[4],c=2*a-c,f=2*l-f,t.bezierCurveTo(c+n,f+r,o[1]+n,o[2]+r,x+n,h+r),a=x,l=h,c=o[1],f=o[2];break;case"q":x=a+o[3],h=l+o[4],c=a+o[1],f=l+o[2],t.quadraticCurveTo(c+n,f+r,x+n,h+r),a=x,l=h;break;case"Q":x=o[3],h=o[4],t.quadraticCurveTo(o[1]+n,o[2]+r,x+n,h+r),a=x,l=h,c=o[1],f=o[2];break;case"t":x=a+o[1],h=l+o[2],u[0].match(/[QqTt]/)===null?(c=a,f=l):u[0]==="t"?(c=2*a-p,f=2*l-m):u[0]==="q"&&(c=2*a-c,f=2*l-f),p=c,m=f,t.quadraticCurveTo(c+n,f+r,x+n,h+r),a=x,l=h,c=a+o[1],f=l+o[2];break;case"T":x=o[1],h=o[2],c=2*a-c,f=2*l-f,t.quadraticCurveTo(c+n,f+r,x+n,h+r),a=x,l=h;break;case"a":EJ(t,a+n,l+r,[o[1],o[2],o[3],o[4],o[5],o[6]+a+n,o[7]+l+r]),a+=o[6],l+=o[7];break;case"A":EJ(t,a+n,l+r,[o[1],o[2],o[3],o[4],o[5],o[6]+n,o[7]+r]),a=o[6],l=o[7];break;case"z":case"Z":a=g,l=y,t.closePath();break}u=o}}function EJ(t,e,n,r){const i=U$e(r[5],r[6],r[0],r[1],r[3],r[4],r[2],e,n);for(let s=0;s<i.length;++s){const o=q$e(i[s]);t.bezierCurveTo(o[0],o[1],o[2],o[3],o[4],o[5])}}const AJ=.5773502691896257,SJ={circle:{draw:function(t,e){const n=Math.sqrt(e)/2;t.moveTo(n,0),t.arc(0,0,n,0,ua)}},cross:{draw:function(t,e){var n=Math.sqrt(e)/2,r=n/2.5;t.moveTo(-n,-r),t.lineTo(-n,r),t.lineTo(-r,r),t.lineTo(-r,n),t.lineTo(r,n),t.lineTo(r,r),t.lineTo(n,r),t.lineTo(n,-r),t.lineTo(r,-r),t.lineTo(r,-n),t.lineTo(-r,-n),t.lineTo(-r,-r),t.closePath()}},diamond:{draw:function(t,e){const n=Math.sqrt(e)/2;t.moveTo(-n,0),t.lineTo(0,-n),t.lineTo(n,0),t.lineTo(0,n),t.closePath()}},square:{draw:function(t,e){var n=Math.sqrt(e),r=-n/2;t.rect(r,r,n,n)}},arrow:{draw:function(t,e){var n=Math.sqrt(e)/2,r=n/7,i=n/2.5,s=n/8;t.moveTo(-r,n),t.lineTo(r,n),t.lineTo(r,-s),t.lineTo(i,-s),t.lineTo(0,-n),t.lineTo(-i,-s),t.lineTo(-r,-s),t.closePath()}},wedge:{draw:function(t,e){var n=Math.sqrt(e)/2,r=Mp*n,i=r-n*AJ,s=n/4;t.moveTo(0,-r-i),t.lineTo(-s,r-i),t.lineTo(s,r-i),t.closePath()}},triangle:{draw:function(t,e){var n=Math.sqrt(e)/2,r=Mp*n,i=r-n*AJ;t.moveTo(0,-r-i),t.lineTo(-n,r-i),t.lineTo(n,r-i),t.closePath()}},"triangle-up":{draw:function(t,e){var n=Math.sqrt(e)/2,r=Mp*n;t.moveTo(0,-r),t.lineTo(-n,r),t.lineTo(n,r),t.closePath()}},"triangle-down":{draw:function(t,e){var n=Math.sqrt(e)/2,r=Mp*n;t.moveTo(0,r),t.lineTo(-n,-r),t.lineTo(n,-r),t.closePath()}},"triangle-right":{draw:function(t,e){var n=Math.sqrt(e)/2,r=Mp*n;t.moveTo(r,0),t.lineTo(-r,-n),t.lineTo(-r,n),t.closePath()}},"triangle-left":{draw:function(t,e){var n=Math.sqrt(e)/2,r=Mp*n;t.moveTo(-r,0),t.lineTo(r,-n),t.lineTo(r,n),t.closePath()}},stroke:{draw:function(t,e){const n=Math.sqrt(e)/2;t.moveTo(-n,0),t.lineTo(n,0)}}};function z$e(t){return Je(SJ,t)?SJ[t]:Q$e(t)}var x$={};function Q$e(t){if(!Je(x$,t)){const e=l$(t);x$[t]={draw:function(n,r){bT(n,e,0,0,Math.sqrt(r)/2)}}}return x$[t]}const xc=.448084975506;function G$e(t){return t.x}function W$e(t){return t.y}function V$e(t){return t.width}function Y$e(t){return t.height}function Rl(t){return typeof t=="function"?t:()=>+t}function TT(t,e,n){return Math.max(e,Math.min(t,n))}function X$e(){var t=G$e,e=W$e,n=V$e,r=Y$e,i=Rl(0),s=i,o=i,u=i,a=null;function l(c,f,x){var h,p=f??+t.call(this,c),m=x??+e.call(this,c),g=+n.call(this,c),y=+r.call(this,c),E=Math.min(g,y)/2,A=TT(+i.call(this,c),0,E),S=TT(+s.call(this,c),0,E),v=TT(+o.call(this,c),0,E),_=TT(+u.call(this,c),0,E);if(a||(a=h=gI()),A<=0&&S<=0&&v<=0&&_<=0)a.rect(p,m,g,y);else{var C=p+g,b=m+y;a.moveTo(p+A,m),a.lineTo(C-S,m),a.bezierCurveTo(C-xc*S,m,C,m+xc*S,C,m+S),a.lineTo(C,b-_),a.bezierCurveTo(C,b-xc*_,C-xc*_,b,C-_,b),a.lineTo(p+v,b),a.bezierCurveTo(p+xc*v,b,p,b-xc*v,p,b-v),a.lineTo(p,m+A),a.bezierCurveTo(p,m+xc*A,p+xc*A,m,p+A,m),a.closePath()}if(h)return a=null,h+""||null}return l.x=function(c){return arguments.length?(t=Rl(c),l):t},l.y=function(c){return arguments.length?(e=Rl(c),l):e},l.width=function(c){return arguments.length?(n=Rl(c),l):n},l.height=function(c){return arguments.length?(r=Rl(c),l):r},l.cornerRadius=function(c,f,x,h){return arguments.length?(i=Rl(c),s=f!=null?Rl(f):i,u=x!=null?Rl(x):i,o=h!=null?Rl(h):s,l):i},l.context=function(c){return arguments.length?(a=c??null,l):a},l}function K$e(){var t,e,n,r,i=null,s,o,u,a;function l(f,x,h){const p=h/2;if(s){var m=u-x,g=f-o;if(m||g){var y=Math.sqrt(m*m+g*g),E=(m/=y)*a,A=(g/=y)*a,S=Math.atan2(g,m);i.moveTo(o-E,u-A),i.lineTo(f-m*p,x-g*p),i.arc(f,x,p,S-Math.PI,S),i.lineTo(o+E,u+A),i.arc(o,u,a,S,S+Math.PI)}else i.arc(f,x,p,0,ua);i.closePath()}else s=1;o=f,u=x,a=p}function c(f){var x,h=f.length,p,m=!1,g;for(i==null&&(i=g=gI()),x=0;x<=h;++x)!(x<h&&r(p=f[x],x,f))===m&&(m=!m)&&(s=0),m&&l(+t(p,x,f),+e(p,x,f),+n(p,x,f));if(g)return i=null,g+""||null}return c.x=function(f){return arguments.length?(t=f,c):t},c.y=function(f){return arguments.length?(e=f,c):e},c.size=function(f){return arguments.length?(n=f,c):n},c.defined=function(f){return arguments.length?(r=f,c):r},c.context=function(f){return arguments.length?(f==null?i=null:i=f,c):i},c}function qy(t,e){return t??e}const Hy=t=>t.x||0,zy=t=>t.y||0,J$e=t=>t.width||0,Z$e=t=>t.height||0,eBe=t=>(t.x||0)+(t.width||0),tBe=t=>(t.y||0)+(t.height||0),nBe=t=>t.startAngle||0,rBe=t=>t.endAngle||0,iBe=t=>t.padAngle||0,sBe=t=>t.innerRadius||0,oBe=t=>t.outerRadius||0,uBe=t=>t.cornerRadius||0,aBe=t=>qy(t.cornerRadiusTopLeft,t.cornerRadius)||0,lBe=t=>qy(t.cornerRadiusTopRight,t.cornerRadius)||0,cBe=t=>qy(t.cornerRadiusBottomRight,t.cornerRadius)||0,fBe=t=>qy(t.cornerRadiusBottomLeft,t.cornerRadius)||0,xBe=t=>qy(t.size,64),dBe=t=>t.size||1,RT=t=>t.defined!==!1,hBe=t=>z$e(t.shape||"circle"),pBe=w5e().startAngle(nBe).endAngle(rBe).padAngle(iBe).innerRadius(sBe).outerRadius(oBe).cornerRadius(uBe),gBe=_X().x(Hy).y1(zy).y0(tBe).defined(RT),mBe=_X().y(zy).x1(Hy).x0(eBe).defined(RT),yBe=vX().x(Hy).y(zy).defined(RT),EBe=X$e().x(Hy).y(zy).width(J$e).height(Z$e).cornerRadius(aBe,lBe,cBe,fBe),ABe=I5e().type(hBe).size(xBe),SBe=K$e().x(Hy).y(zy).defined(RT).size(dBe);function d$(t){return t.cornerRadius||t.cornerRadiusTopLeft||t.cornerRadiusTopRight||t.cornerRadiusBottomRight||t.cornerRadiusBottomLeft}function vBe(t,e){return pBe.context(t)(e)}function _Be(t,e){const n=e[0],r=n.interpolate||"linear";return(n.orient==="horizontal"?mBe:gBe).curve(mJ(r,n.orient,n.tension)).context(t)(e)}function CBe(t,e){const n=e[0],r=n.interpolate||"linear";return yBe.curve(mJ(r,n.orient,n.tension)).context(t)(e)}function jp(t,e,n,r){return EBe.context(t)(e,n,r)}function bBe(t,e){return(e.mark.shape||e.shape).context(t)(e)}function TBe(t,e){return ABe.context(t)(e)}function RBe(t,e){return SBe.context(t)(e)}var OBe=1;function h$(t,e,n){var r=e.clip,i=t._defs,s=e.clip_id||(e.clip_id="clip"+OBe++),o=i.clipping[s]||(i.clipping[s]={id:s});return ct(r)?o.path=r(null):d$(n)?o.path=jp(null,n,0,0):(o.width=n.width||0,o.height=n.height||0),"url(#"+s+")"}function Jn(t){this.clear(),t&&this.union(t)}Jn.prototype={clone(){return new Jn(this)},clear(){return this.x1=+Number.MAX_VALUE,this.y1=+Number.MAX_VALUE,this.x2=-Number.MAX_VALUE,this.y2=-Number.MAX_VALUE,this},empty(){return this.x1===+Number.MAX_VALUE&&this.y1===+Number.MAX_VALUE&&this.x2===-Number.MAX_VALUE&&this.y2===-Number.MAX_VALUE},equals(t){return this.x1===t.x1&&this.y1===t.y1&&this.x2===t.x2&&this.y2===t.y2},set(t,e,n,r){return n<t?(this.x2=t,this.x1=n):(this.x1=t,this.x2=n),r<e?(this.y2=e,this.y1=r):(this.y1=e,this.y2=r),this},add(t,e){return t<this.x1&&(this.x1=t),e<this.y1&&(this.y1=e),t>this.x2&&(this.x2=t),e>this.y2&&(this.y2=e),this},expand(t){return this.x1-=t,this.y1-=t,this.x2+=t,this.y2+=t,this},round(){return this.x1=Math.floor(this.x1),this.y1=Math.floor(this.y1),this.x2=Math.ceil(this.x2),this.y2=Math.ceil(this.y2),this},scale(t){return this.x1*=t,this.y1*=t,this.x2*=t,this.y2*=t,this},translate(t,e){return this.x1+=t,this.x2+=t,this.y1+=e,this.y2+=e,this},rotate(t,e,n){const r=this.rotatedPoints(t,e,n);return this.clear().add(r[0],r[1]).add(r[2],r[3]).add(r[4],r[5]).add(r[6],r[7])},rotatedPoints(t,e,n){var{x1:r,y1:i,x2:s,y2:o}=this,u=Math.cos(t),a=Math.sin(t),l=e-e*u+n*a,c=n-e*a-n*u;return[u*r-a*i+l,a*r+u*i+c,u*r-a*o+l,a*r+u*o+c,u*s-a*i+l,a*s+u*i+c,u*s-a*o+l,a*s+u*o+c]},union(t){return t.x1<this.x1&&(this.x1=t.x1),t.y1<this.y1&&(this.y1=t.y1),t.x2>this.x2&&(this.x2=t.x2),t.y2>this.y2&&(this.y2=t.y2),this},intersect(t){return t.x1>this.x1&&(this.x1=t.x1),t.y1>this.y1&&(this.y1=t.y1),t.x2<this.x2&&(this.x2=t.x2),t.y2<this.y2&&(this.y2=t.y2),this},encloses(t){return t&&this.x1<=t.x1&&this.x2>=t.x2&&this.y1<=t.y1&&this.y2>=t.y2},alignsWith(t){return t&&(this.x1==t.x1||this.x2==t.x2||this.y1==t.y1||this.y2==t.y2)},intersects(t){return t&&!(this.x2<t.x1||this.x1>t.x2||this.y2<t.y1||this.y1>t.y2)},contains(t,e){return!(t<this.x1||t>this.x2||e<this.y1||e>this.y2)},width(){return this.x2-this.x1},height(){return this.y2-this.y1}};function p$(t){this.mark=t,this.bounds=this.bounds||new Jn}function g$(t){p$.call(this,t),this.items=this.items||[]}Fe(g$,p$);function vJ(t){this._pending=0,this._loader=t||R5()}function _J(t){t._pending+=1}function Qy(t){t._pending-=1}vJ.prototype={pending(){return this._pending},sanitizeURL(t){const e=this;return _J(e),e._loader.sanitize(t,{context:"href"}).then(n=>(Qy(e),n)).catch(()=>(Qy(e),null))},loadImage(t){const e=this,n=J5e();return _J(e),e._loader.sanitize(t,{context:"image"}).then(r=>{const i=r.href;if(!i||!n)throw{url:i};const s=new n,o=Je(r,"crossOrigin")?r.crossOrigin:"anonymous";return o!=null&&(s.crossOrigin=o),s.onload=()=>Qy(e),s.onerror=()=>Qy(e),s.src=i,s}).catch(r=>(Qy(e),{complete:!1,width:0,height:0,src:r&&r.url||""}))},ready(){const t=this;return new Promise(e=>{function n(r){t.pending()?setTimeout(()=>{n(!0)},10):e(r)}n(!1)})}};function dc(t,e,n){if(e.stroke&&e.opacity!==0&&e.strokeOpacity!==0){const r=e.strokeWidth!=null?+e.strokeWidth:1;t.expand(r+(n?NBe(e,r):0))}return t}function NBe(t,e){return t.strokeJoin&&t.strokeJoin!=="miter"?0:e}const DBe=ua-1e-8;let OT,NT,DT,Hx,m$,FT,y$,E$;const hc=(t,e)=>OT.add(t,e),wT=(t,e)=>hc(NT=t,DT=e),CJ=t=>hc(t,OT.y1),bJ=t=>hc(OT.x1,t),zx=(t,e)=>m$*t+y$*e,Qx=(t,e)=>FT*t+E$*e,A$=(t,e)=>hc(zx(t,e),Qx(t,e)),S$=(t,e)=>wT(zx(t,e),Qx(t,e));function LT(t,e){return OT=t,e?(Hx=e*fc,m$=E$=Math.cos(Hx),FT=Math.sin(Hx),y$=-FT):(m$=E$=1,Hx=FT=y$=0),FBe}const FBe={beginPath(){},closePath(){},moveTo:S$,lineTo:S$,rect(t,e,n,r){Hx?(A$(t+n,e),A$(t+n,e+r),A$(t,e+r),S$(t,e)):(hc(t+n,e+r),wT(t,e))},quadraticCurveTo(t,e,n,r){const i=zx(t,e),s=Qx(t,e),o=zx(n,r),u=Qx(n,r);TJ(NT,i,o,CJ),TJ(DT,s,u,bJ),wT(o,u)},bezierCurveTo(t,e,n,r,i,s){const o=zx(t,e),u=Qx(t,e),a=zx(n,r),l=Qx(n,r),c=zx(i,s),f=Qx(i,s);RJ(NT,o,a,c,CJ),RJ(DT,u,l,f,bJ),wT(c,f)},arc(t,e,n,r,i,s){if(r+=Hx,i+=Hx,NT=n*Math.cos(i)+t,DT=n*Math.sin(i)+e,Math.abs(i-r)>DBe)hc(t-n,e-n),hc(t+n,e+n);else{const o=l=>hc(n*Math.cos(l)+t,n*Math.sin(l)+e);let u,a;if(o(r),o(i),i!==r)if(r=r%ua,r<0&&(r+=ua),i=i%ua,i<0&&(i+=ua),i<r&&(s=!s,u=r,r=i,i=u),s)for(i-=ua,u=r-r%qx,a=0;a<4&&u>i;++a,u-=qx)o(u);else for(u=r-r%qx+qx,a=0;a<4&&u<i;++a,u=u+qx)o(u)}}};function TJ(t,e,n,r){const i=(t-e)/(t+n-2*e);0<i&&i<1&&r(t+(e-t)*i)}function RJ(t,e,n,r,i){const s=r-t+3*e-3*n,o=t+n-2*e,u=t-e;let a=0,l=0,c;Math.abs(s)>j$e?(c=o*o+u*s,c>=0&&(c=Math.sqrt(c),a=(-o+c)/s,l=(-o-c)/s)):a=.5*u/o,0<a&&a<1&&i(OJ(a,t,e,n,r)),0<l&&l<1&&i(OJ(l,t,e,n,r))}function OJ(t,e,n,r,i){const s=1-t,o=s*s,u=t*t;return o*s*e+3*o*t*n+3*s*u*r+u*t*i}var pc=(pc=sc(1,1))?pc.getContext("2d"):null;const v$=new Jn;function NJ(t){return function(e,n){if(!pc)return!0;t(pc,e),v$.clear().union(e.bounds).intersect(n).round();const{x1:r,y1:i,x2:s,y2:o}=v$;for(let u=i;u<=o;++u)for(let a=r;a<=s;++a)if(pc.isPointInPath(a,u))return!0;return!1}}function DJ(t,e){return e.contains(t.x||0,t.y||0)}function FJ(t,e){const n=t.x||0,r=t.y||0,i=t.width||0,s=t.height||0;return e.intersects(v$.set(n,r,n+i,r+s))}function wBe(t,e){const n=t.x||0,r=t.y||0,i=t.x2!=null?t.x2:n,s=t.y2!=null?t.y2:r;return Gy(e,n,r,i,s)}function Gy(t,e,n,r,i){const{x1:s,y1:o,x2:u,y2:a}=t,l=r-e,c=i-n;let f=0,x=1,h,p,m,g;for(g=0;g<4;++g){if(g===0&&(h=-l,p=-(s-e)),g===1&&(h=l,p=u-e),g===2&&(h=-c,p=-(o-n)),g===3&&(h=c,p=a-n),Math.abs(h)<1e-10&&p<0)return!1;if(m=p/h,h<0){if(m>x)return!1;m>f&&(f=m)}else if(h>0){if(m<f)return!1;m<x&&(x=m)}}return!0}function Up(t,e){t.globalCompositeOperation=e.blend||"source-over"}function Xo(t,e){return t??e}function wJ(t,e){const n=e.length;for(let r=0;r<n;++r)t.addColorStop(e[r].offset,e[r].color);return t}function LBe(t,e,n){const r=n.width(),i=n.height();let s;if(e.gradient==="radial")s=t.createRadialGradient(n.x1+Xo(e.x1,.5)*r,n.y1+Xo(e.y1,.5)*i,Math.max(r,i)*Xo(e.r1,0),n.x1+Xo(e.x2,.5)*r,n.y1+Xo(e.y2,.5)*i,Math.max(r,i)*Xo(e.r2,.5));else{const o=Xo(e.x1,0),u=Xo(e.y1,0),a=Xo(e.x2,1),l=Xo(e.y2,0);if(o===a||u===l||r===i)s=t.createLinearGradient(n.x1+o*r,n.y1+u*i,n.x1+a*r,n.y1+l*i);else{const c=sc(Math.ceil(r),Math.ceil(i)),f=c.getContext("2d");return f.scale(r,i),f.fillStyle=wJ(f.createLinearGradient(o,u,a,l),e.stops),f.fillRect(0,0,r,i),t.createPattern(c,"no-repeat")}}return wJ(s,e.stops)}function LJ(t,e,n){return a$(n)?LBe(t,n,e.bounds):n}function IT(t,e,n){return n*=e.fillOpacity==null?1:e.fillOpacity,n>0?(t.globalAlpha=n,t.fillStyle=LJ(t,e,e.fill),!0):!1}var IBe=[];function qp(t,e,n){var r=(r=e.strokeWidth)!=null?r:1;return r<=0?!1:(n*=e.strokeOpacity==null?1:e.strokeOpacity,n>0?(t.globalAlpha=n,t.strokeStyle=LJ(t,e,e.stroke),t.lineWidth=r,t.lineCap=e.strokeCap||"butt",t.lineJoin=e.strokeJoin||"miter",t.miterLimit=e.strokeMiterLimit||10,t.setLineDash&&(t.setLineDash(e.strokeDash||IBe),t.lineDashOffset=e.strokeDashOffset||0),!0):!1)}function $Be(t,e){return t.zindex-e.zindex||t.index-e.index}function IJ(t){if(!t.zdirty)return t.zitems;var e=t.items,n=[],r,i,s;for(i=0,s=e.length;i<s;++i)r=e[i],r.index=i,r.zindex&&n.push(r);return t.zdirty=!1,t.zitems=n.sort($Be)}function aa(t,e){var n=t.items,r,i;if(!n||!n.length)return;const s=IJ(t);if(s&&s.length){for(r=0,i=n.length;r<i;++r)n[r].zindex||e(n[r]);n=s}for(r=0,i=n.length;r<i;++r)e(n[r])}function _$(t,e){var n=t.items,r,i;if(!n||!n.length)return null;const s=IJ(t);for(s&&s.length&&(n=s),i=n.length;--i>=0;)if(r=e(n[i]))return r;if(n===s){for(n=t.items,i=n.length;--i>=0;)if(!n[i].zindex&&(r=e(n[i])))return r}return null}function C$(t){return function(e,n,r){aa(n,i=>{(!r||r.intersects(i.bounds))&&$J(t,e,i,i)})}}function BBe(t){return function(e,n,r){n.items.length&&(!r||r.intersects(n.bounds))&&$J(t,e,n.items[0],n.items)}}function $J(t,e,n,r){var i=n.opacity==null?1:n.opacity;i!==0&&(t(e,r)||(Up(e,n),n.fill&&IT(e,n,i)&&e.fill(),n.stroke&&qp(e,n,i)&&e.stroke()))}function $T(t){return t=t||Go,function(e,n,r,i,s,o){return r*=e.pixelRatio,i*=e.pixelRatio,_$(n,u=>{const a=u.bounds;if(!(a&&!a.contains(s,o)||!a)&&t(e,u,r,i,s,o))return u})}}function Wy(t,e){return function(n,r,i,s){var o=Array.isArray(r)?r[0]:r,u=e??o.fill,a=o.stroke&&n.isPointInStroke,l,c;return a&&(l=o.strokeWidth,c=o.strokeCap,n.lineWidth=l??1,n.lineCap=c??"butt"),t(n,r)?!1:u&&n.isPointInPath(i,s)||a&&n.isPointInStroke(i,s)}}function b$(t){return $T(Wy(t))}function Gx(t,e){return"translate("+t+","+e+")"}function T$(t){return"rotate("+t+")"}function kBe(t,e){return"scale("+t+","+e+")"}function BJ(t){return Gx(t.x||0,t.y||0)}function PBe(t){return Gx(t.x||0,t.y||0)+(t.angle?" "+T$(t.angle):"")}function MBe(t){return Gx(t.x||0,t.y||0)+(t.angle?" "+T$(t.angle):"")+(t.scaleX||t.scaleY?" "+kBe(t.scaleX||1,t.scaleY||1):"")}function R$(t,e,n){function r(o,u){o("transform",PBe(u)),o("d",e(null,u))}function i(o,u){return e(LT(o,u.angle),u),dc(o,u).translate(u.x||0,u.y||0)}function s(o,u){var a=u.x||0,l=u.y||0,c=u.angle||0;o.translate(a,l),c&&o.rotate(c*=fc),o.beginPath(),e(o,u),c&&o.rotate(-c),o.translate(-a,-l)}return{type:t,tag:"path",nested:!1,attr:r,bound:i,draw:C$(s),pick:b$(s),isect:n||NJ(s)}}var jBe=R$("arc",vBe);function UBe(t,e){for(var n=t[0].orient==="horizontal"?e[1]:e[0],r=t[0].orient==="horizontal"?"y":"x",i=t.length,s=1/0,o,u;--i>=0;)t[i].defined!==!1&&(u=Math.abs(t[i][r]-n),u<s&&(s=u,o=t[i]));return o}function qBe(t,e){for(var n=Math.pow(t[0].strokeWidth||1,2),r=t.length,i,s,o;--r>=0;)if(t[r].defined!==!1&&(i=t[r].x-e[0],s=t[r].y-e[1],o=i*i+s*s,o<n))return t[r];return null}function HBe(t,e){for(var n=t.length,r,i,s;--n>=0;)if(t[n].defined!==!1&&(r=t[n].x-e[0],i=t[n].y-e[1],s=r*r+i*i,r=t[n].size||1,s<r*r))return t[n];return null}function O$(t,e,n){function r(a,l){var c=l.mark.items;c.length&&a("d",e(null,c))}function i(a,l){var c=l.items;return c.length===0?a:(e(LT(a),c),dc(a,c[0]))}function s(a,l){a.beginPath(),e(a,l)}const o=Wy(s);function u(a,l,c,f,x,h){var p=l.items,m=l.bounds;return!p||!p.length||m&&!m.contains(x,h)?null:(c*=a.pixelRatio,f*=a.pixelRatio,o(a,p,c,f)?p[0]:null)}return{type:t,tag:"path",nested:!0,attr:r,bound:i,draw:BBe(s),pick:u,isect:DJ,tip:n}}var zBe=O$("area",_Be,UBe);function QBe(t,e){var n=e.clip;t.save(),ct(n)?(t.beginPath(),n(t),t.clip()):kJ(t,e.group)}function kJ(t,e){t.beginPath(),d$(e)?jp(t,e,0,0):t.rect(0,0,e.width||0,e.height||0),t.clip()}function PJ(t){const e=Xo(t.strokeWidth,1);return t.strokeOffset!=null?t.strokeOffset:t.stroke&&e>.5&&e<1.5?.5-Math.abs(e-1):0}function GBe(t,e){t("transform",BJ(e))}function MJ(t,e){const n=PJ(e);t("d",jp(null,e,n,n))}function WBe(t,e){t("class","background"),t("aria-hidden",!0),MJ(t,e)}function VBe(t,e){t("class","foreground"),t("aria-hidden",!0),e.strokeForeground?MJ(t,e):t("d","")}function YBe(t,e,n){const r=e.clip?h$(n,e,e):null;t("clip-path",r)}function XBe(t,e){if(!e.clip&&e.items){const n=e.items,r=n.length;for(let i=0;i<r;++i)t.union(n[i].bounds)}return(e.clip||e.width||e.height)&&!e.noBound&&t.add(0,0).add(e.width||0,e.height||0),dc(t,e),t.translate(e.x||0,e.y||0)}function Vy(t,e,n,r){const i=PJ(e);t.beginPath(),jp(t,e,(n||0)+i,(r||0)+i)}const KBe=Wy(Vy),JBe=Wy(Vy,!1),ZBe=Wy(Vy,!0);function e6e(t,e,n){aa(e,r=>{const i=r.x||0,s=r.y||0,o=r.strokeForeground,u=r.opacity==null?1:r.opacity;(r.stroke||r.fill)&&u&&(Vy(t,r,i,s),Up(t,r),r.fill&&IT(t,r,u)&&t.fill(),r.stroke&&!o&&qp(t,r,u)&&t.stroke()),t.save(),t.translate(i,s),r.clip&&kJ(t,r),n&&n.translate(-i,-s),aa(r,a=>{this.draw(t,a,n)}),n&&n.translate(i,s),t.restore(),o&&r.stroke&&u&&(Vy(t,r,i,s),Up(t,r),qp(t,r,u)&&t.stroke())})}function t6e(t,e,n,r,i,s){if(e.bounds&&!e.bounds.contains(i,s)||!e.items)return null;const o=n*t.pixelRatio,u=r*t.pixelRatio;return _$(e,a=>{let l,c,f;const x=a.bounds;if(x&&!x.contains(i,s))return;c=a.x||0,f=a.y||0;const h=c+(a.width||0),p=f+(a.height||0),m=a.clip;if(m&&(i<c||i>h||s<f||s>p))return;if(t.save(),t.translate(c,f),c=i-c,f=s-f,m&&d$(a)&&!ZBe(t,a,o,u))return t.restore(),null;const g=a.strokeForeground,y=e.interactive!==!1;return y&&g&&a.stroke&&JBe(t,a,o,u)?(t.restore(),a):(l=_$(a,E=>n6e(E,c,f)?this.pick(E,n,r,c,f):null),!l&&y&&(a.fill||!g&&a.stroke)&&KBe(t,a,o,u)&&(l=a),t.restore(),l||null)})}function n6e(t,e,n){return(t.interactive!==!1||t.marktype==="group")&&t.bounds&&t.bounds.contains(e,n)}var r6e={type:"group",tag:"g",nested:!1,attr:GBe,bound:XBe,draw:e6e,pick:t6e,isect:FJ,content:YBe,background:WBe,foreground:VBe},Yy={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function N$(t,e){var n=t.image;return(!n||t.url&&t.url!==n.url)&&(n={complete:!1,width:0,height:0},e.loadImage(t.url).then(r=>{t.image=r,t.image.url=t.url})),n}function D$(t,e){return t.width!=null?t.width:!e||!e.width?0:t.aspect!==!1&&t.height?t.height*e.width/e.height:e.width}function F$(t,e){return t.height!=null?t.height:!e||!e.height?0:t.aspect!==!1&&t.width?t.width*e.height/e.width:e.height}function BT(t,e){return t==="center"?e/2:t==="right"?e:0}function kT(t,e){return t==="middle"?e/2:t==="bottom"?e:0}function i6e(t,e,n){const r=N$(e,n),i=D$(e,r),s=F$(e,r),o=(e.x||0)-BT(e.align,i),u=(e.y||0)-kT(e.baseline,s),a=!r.src&&r.toDataURL?r.toDataURL():r.src||"";t("href",a,Yy["xmlns:xlink"],"xlink:href"),t("transform",Gx(o,u)),t("width",i),t("height",s),t("preserveAspectRatio",e.aspect===!1?"none":"xMidYMid")}function s6e(t,e){const n=e.image,r=D$(e,n),i=F$(e,n),s=(e.x||0)-BT(e.align,r),o=(e.y||0)-kT(e.baseline,i);return t.set(s,o,s+r,o+i)}function o6e(t,e,n){aa(e,r=>{if(n&&!n.intersects(r.bounds))return;const i=N$(r,this);let s=D$(r,i),o=F$(r,i);if(s===0||o===0)return;let u=(r.x||0)-BT(r.align,s),a=(r.y||0)-kT(r.baseline,o),l,c,f,x;r.aspect!==!1&&(c=i.width/i.height,f=r.width/r.height,c===c&&f===f&&c!==f&&(f<c?(x=s/c,a+=(o-x)/2,o=x):(x=o*c,u+=(s-x)/2,s=x))),(i.complete||i.toDataURL)&&(Up(t,r),t.globalAlpha=(l=r.opacity)!=null?l:1,t.imageSmoothingEnabled=r.smooth!==!1,t.drawImage(i,u,a,s,o))})}var u6e={type:"image",tag:"image",nested:!1,attr:i6e,bound:s6e,draw:o6e,pick:$T(),isect:Go,get:N$,xOffset:BT,yOffset:kT},a6e=O$("line",CBe,qBe);function l6e(t,e){var n=e.scaleX||1,r=e.scaleY||1;(n!==1||r!==1)&&t("vector-effect","non-scaling-stroke"),t("transform",MBe(e)),t("d",e.path)}function PT(t,e){var n=e.path;if(n==null)return!0;var r=e.x||0,i=e.y||0,s=e.scaleX||1,o=e.scaleY||1,u=(e.angle||0)*fc,a=e.pathCache;(!a||a.path!==n)&&((e.pathCache=a=l$(n)).path=n),u&&t.rotate&&t.translate?(t.translate(r,i),t.rotate(u),bT(t,a,0,0,s,o),t.rotate(-u),t.translate(-r,-i)):bT(t,a,r,i,s,o)}function c6e(t,e){return PT(LT(t,e.angle),e)?t.set(0,0,0,0):dc(t,e,!0)}var f6e={type:"path",tag:"path",nested:!1,attr:l6e,bound:c6e,draw:C$(PT),pick:b$(PT),isect:NJ(PT)};function x6e(t,e){t("d",jp(null,e))}function d6e(t,e){var n,r;return dc(t.set(n=e.x||0,r=e.y||0,n+e.width||0,r+e.height||0),e)}function jJ(t,e){t.beginPath(),jp(t,e)}var h6e={type:"rect",tag:"path",nested:!1,attr:x6e,bound:d6e,draw:C$(jJ),pick:b$(jJ),isect:FJ};function p6e(t,e){t("transform",BJ(e)),t("x2",e.x2!=null?e.x2-(e.x||0):0),t("y2",e.y2!=null?e.y2-(e.y||0):0)}function g6e(t,e){var n,r;return dc(t.set(n=e.x||0,r=e.y||0,e.x2!=null?e.x2:n,e.y2!=null?e.y2:r),e)}function UJ(t,e,n){var r,i,s,o;return e.stroke&&qp(t,e,n)?(r=e.x||0,i=e.y||0,s=e.x2!=null?e.x2:r,o=e.y2!=null?e.y2:i,t.beginPath(),t.moveTo(r,i),t.lineTo(s,o),!0):!1}function m6e(t,e,n){aa(e,r=>{if(!(n&&!n.intersects(r.bounds))){var i=r.opacity==null?1:r.opacity;i&&UJ(t,r,i)&&(Up(t,r),t.stroke())}})}function y6e(t,e,n,r){return t.isPointInStroke?UJ(t,e,1)&&t.isPointInStroke(n,r):!1}var E6e={type:"rule",tag:"line",nested:!1,attr:p6e,bound:g6e,draw:m6e,pick:$T(y6e),isect:wBe},A6e=R$("shape",bBe),S6e=R$("symbol",TBe,DJ);const qJ=kDe();var la={height:Ol,measureWidth:L$,estimateWidth:w$,width:w$,canvas:HJ};HJ(!0);function HJ(t){la.width=t&&pc?L$:w$}function w$(t,e){return zJ(gc(t,e),Ol(t))}function zJ(t,e){return~~(.8*t.length*e)}function L$(t,e){return Ol(t)<=0||!(e=gc(t,e))?0:QJ(e,I$(t))}function QJ(t,e){const n=`(${e}) ${t}`;let r=qJ.get(n);return r===void 0&&(pc.font=e,r=pc.measureText(t).width,qJ.set(n,r)),r}function Ol(t){return t.fontSize!=null?+t.fontSize||0:11}function Wx(t){return t.lineHeight!=null?t.lineHeight:Ol(t)+2}function v6e(t){return _e(t)?t.length>1?t:t[0]:t}function Xy(t){return v6e(t.lineBreak&&t.text&&!_e(t.text)?t.text.split(t.lineBreak):t.text)}function GJ(t){const e=Xy(t);return(_e(e)?e.length-1:0)*Wx(t)}function gc(t,e){const n=e==null?"":(e+"").trim();return t.limit>0&&n.length?C6e(t,n):n}function _6e(t){if(la.width===L$){const e=I$(t);return n=>QJ(n,e)}else{const e=Ol(t);return n=>zJ(n,e)}}function C6e(t,e){var n=+t.limit,r=_6e(t);if(r(e)<n)return e;var i=t.ellipsis||"…",s=t.dir==="rtl",o=0,u=e.length,a;if(n-=r(i),s){for(;o<u;)a=o+u>>>1,r(e.slice(a))>n?o=a+1:u=a;return i+e.slice(o)}else{for(;o<u;)a=1+(o+u>>>1),r(e.slice(0,a))<n?o=a:u=a-1;return e.slice(0,o)+i}}function MT(t,e){var n=t.font;return(e&&n?String(n).replace(/"/g,"'"):n)||"sans-serif"}function I$(t,e){return(t.fontStyle?t.fontStyle+" ":"")+(t.fontVariant?t.fontVariant+" ":"")+(t.fontWeight?t.fontWeight+" ":"")+Ol(t)+"px "+MT(t,e)}function $$(t){var e=t.baseline,n=Ol(t);return Math.round(e==="top"?.79*n:e==="middle"?.3*n:e==="bottom"?-.21*n:e==="line-top"?.29*n+.5*Wx(t):e==="line-bottom"?.29*n-.5*Wx(t):0)}const b6e={left:"start",center:"middle",right:"end"},Ky=new Jn;function jT(t){var e=t.x||0,n=t.y||0,r=t.radius||0,i;return r&&(i=(t.theta||0)-qx,e+=r*Math.cos(i),n+=r*Math.sin(i)),Ky.x1=e,Ky.y1=n,Ky}function T6e(t,e){var n=e.dx||0,r=(e.dy||0)+$$(e),i=jT(e),s=i.x1,o=i.y1,u=e.angle||0,a;t("text-anchor",b6e[e.align]||"start"),u?(a=Gx(s,o)+" "+T$(u),(n||r)&&(a+=" "+Gx(n,r))):a=Gx(s+n,o+r),t("transform",a)}function B$(t,e,n){var r=la.height(e),i=e.align,s=jT(e),o=s.x1,u=s.y1,a=e.dx||0,l=(e.dy||0)+$$(e)-Math.round(.8*r),c=Xy(e),f;if(_e(c)?(r+=Wx(e)*(c.length-1),f=c.reduce((x,h)=>Math.max(x,la.width(e,h)),0)):f=la.width(e,c),i==="center"?a-=f/2:i==="right"&&(a-=f),t.set(a+=o,l+=u,a+f,l+r),e.angle&&!n)t.rotate(e.angle*fc,o,u);else if(n===2)return t.rotatedPoints(e.angle*fc,o,u);return t}function R6e(t,e,n){aa(e,r=>{var i=r.opacity==null?1:r.opacity,s,o,u,a,l,c,f;if(!(n&&!n.intersects(r.bounds)||i===0||r.fontSize<=0||r.text==null||r.text.length===0)){if(t.font=I$(r),t.textAlign=r.align||"left",s=jT(r),o=s.x1,u=s.y1,r.angle&&(t.save(),t.translate(o,u),t.rotate(r.angle*fc),o=u=0),o+=r.dx||0,u+=(r.dy||0)+$$(r),c=Xy(r),Up(t,r),_e(c))for(l=Wx(r),a=0;a<c.length;++a)f=gc(r,c[a]),r.fill&&IT(t,r,i)&&t.fillText(f,o,u),r.stroke&&qp(t,r,i)&&t.strokeText(f,o,u),u+=l;else f=gc(r,c),r.fill&&IT(t,r,i)&&t.fillText(f,o,u),r.stroke&&qp(t,r,i)&&t.strokeText(f,o,u);r.angle&&t.restore()}})}function O6e(t,e,n,r,i,s){if(e.fontSize<=0)return!1;if(!e.angle)return!0;var o=jT(e),u=o.x1,a=o.y1,l=B$(Ky,e,1),c=-e.angle*fc,f=Math.cos(c),x=Math.sin(c),h=f*i-x*s+(u-f*u+x*a),p=x*i+f*s+(a-x*u-f*a);return l.contains(h,p)}function N6e(t,e){const n=B$(Ky,t,2);return Gy(e,n[0],n[1],n[2],n[3])||Gy(e,n[0],n[1],n[4],n[5])||Gy(e,n[4],n[5],n[6],n[7])||Gy(e,n[2],n[3],n[6],n[7])}var D6e={type:"text",tag:"text",nested:!1,attr:T6e,bound:B$,draw:R6e,pick:$T(O6e),isect:N6e},F6e=O$("trail",RBe,HBe),xo={arc:jBe,area:zBe,group:r6e,image:u6e,line:a6e,path:f6e,rect:h6e,rule:E6e,shape:A6e,symbol:S6e,text:D6e,trail:F6e};function WJ(t,e,n){var r=xo[t.mark.marktype],i=e||r.bound;return r.nested&&(t=t.mark),i(t.bounds||(t.bounds=new Jn),t,n)}var VJ={mark:null};function w6e(t,e,n){var r=xo[t.marktype],i=r.bound,s=t.items,o=s&&s.length,u,a,l,c;if(r.nested)return o?l=s[0]:(VJ.mark=t,l=VJ),c=WJ(l,i,n),e=e&&e.union(c)||c,e;if(e=e||t.bounds&&t.bounds.clear()||new Jn,o)for(u=0,a=s.length;u<a;++u)e.union(WJ(s[u],i,n));return t.bounds=e}const L6e=["marktype","name","role","interactive","clip","items","zindex","x","y","width","height","align","baseline","fill","fillOpacity","opacity","blend","stroke","strokeOpacity","strokeWidth","strokeCap","strokeDash","strokeDashOffset","strokeForeground","strokeOffset","startAngle","endAngle","innerRadius","outerRadius","cornerRadius","padAngle","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight","interpolate","tension","orient","defined","url","aspect","smooth","path","scaleX","scaleY","x2","y2","size","shape","text","angle","theta","radius","dir","dx","dy","ellipsis","limit","lineBreak","lineHeight","font","fontSize","fontWeight","fontStyle","fontVariant","description","aria","ariaRole","ariaRoleDescription"];function I6e(t,e){return JSON.stringify(t,L6e,e)}function $6e(t){const e=typeof t=="string"?JSON.parse(t):t;return YJ(e)}function YJ(t){var e=t.marktype,n=t.items,r,i,s;if(n)for(i=0,s=n.length;i<s;++i)r=e?"mark":"group",n[i][r]=t,n[i].zindex&&(n[i][r].zdirty=!0),(e||r)==="group"&&YJ(n[i]);return e&&w6e(t),t}function XJ(t){arguments.length?this.root=$6e(t):(this.root=KJ({marktype:"group",name:"root",role:"frame"}),this.root.items=[new g$(this.root)])}XJ.prototype={toJSON(t){return I6e(this.root,t||0)},mark(t,e,n){e=e||this.root.items[0];const r=KJ(t,e);return e.items[n]=r,r.zindex&&(r.group.zdirty=!0),r}};function KJ(t,e){const n={bounds:new Jn,clip:!!t.clip,group:e,interactive:t.interactive!==!1,items:[],marktype:t.marktype,name:t.name||void 0,role:t.role||void 0,zindex:t.zindex||0};return t.aria!=null&&(n.aria=t.aria),t.description&&(n.description=t.description),n}function Vx(t,e,n){return!t&&typeof document<"u"&&document.createElement&&(t=document),t?n?t.createElementNS(n,e):t.createElement(e):null}function JJ(t,e){e=e.toLowerCase();for(var n=t.childNodes,r=0,i=n.length;r<i;++r)if(n[r].tagName.toLowerCase()===e)return n[r]}function Is(t,e,n,r){var i=t.childNodes[e],s;return(!i||i.tagName.toLowerCase()!==n.toLowerCase())&&(s=i||null,i=Vx(t.ownerDocument,n,r),t.insertBefore(i,s)),i}function ca(t,e){for(var n=t.childNodes,r=n.length;r>e;)t.removeChild(n[--r]);return t}function ZJ(t){return"mark-"+t.marktype+(t.role?" role-"+t.role:"")+(t.name?" "+t.name:"")}function k$(t,e){const n=e.getBoundingClientRect();return[t.clientX-n.left-(e.clientLeft||0),t.clientY-n.top-(e.clientTop||0)]}function B6e(t,e,n,r){var i=t&&t.mark,s,o;if(i&&(s=xo[i.marktype]).tip){for(o=k$(e,n),o[0]-=r[0],o[1]-=r[1];t=t.mark.group;)o[0]-=t.x||0,o[1]-=t.y||0;t=s.tip(i.items,o)}return t}function Yx(t,e){this._active=null,this._handlers={},this._loader=t||R5(),this._tooltip=e||k6e}function k6e(t,e,n,r){t.element().setAttribute("title",r||"")}Yx.prototype={initialize(t,e,n){return this._el=t,this._obj=n||null,this.origin(e)},element(){return this._el},canvas(){return this._el&&this._el.firstChild},origin(t){return arguments.length?(this._origin=t||[0,0],this):this._origin.slice()},scene(t){return arguments.length?(this._scene=t,this):this._scene},on(){},off(){},_handlerIndex(t,e,n){for(let r=t?t.length:0;--r>=0;)if(t[r].type===e&&(!n||t[r].handler===n))return r;return-1},handlers(t){const e=this._handlers,n=[];if(t)n.push(...e[this.eventName(t)]);else for(const r in e)n.push(...e[r]);return n},eventName(t){const e=t.indexOf(".");return e<0?t:t.slice(0,e)},handleHref(t,e,n){this._loader.sanitize(n,{context:"href"}).then(r=>{const i=new MouseEvent(t.type,t),s=Vx(null,"a");for(const o in r)s.setAttribute(o,r[o]);s.dispatchEvent(i)}).catch(()=>{})},handleTooltip(t,e,n){if(e&&e.tooltip!=null){e=B6e(e,t,this.canvas(),this._origin);const r=n&&e&&e.tooltip||null;this._tooltip.call(this._obj,this,t,e,r)}},getItemBoundingClientRect(t){const e=this.canvas();if(!e)return;const n=e.getBoundingClientRect(),r=this._origin,i=t.bounds,s=i.width(),o=i.height();let u=i.x1+r[0]+n.left,a=i.y1+r[1]+n.top;for(;t.mark&&(t=t.mark.group);)u+=t.x||0,a+=t.y||0;return{x:u,y:a,width:s,height:o,left:u,top:a,right:u+s,bottom:a+o}}};function Nl(t){this._el=null,this._bgcolor=null,this._loader=new vJ(t)}Nl.prototype={initialize(t,e,n,r,i){return this._el=t,this.resize(e,n,r,i)},element(){return this._el},canvas(){return this._el&&this._el.firstChild},background(t){return arguments.length===0?this._bgcolor:(this._bgcolor=t,this)},resize(t,e,n,r){return this._width=t,this._height=e,this._origin=n||[0,0],this._scale=r||1,this},dirty(){},render(t){const e=this;return e._call=function(){e._render(t)},e._call(),e._call=null,e},_render(){},renderAsync(t){const e=this.render(t);return this._ready?this._ready.then(()=>e):Promise.resolve(e)},_load(t,e){var n=this,r=n._loader[t](e);if(!n._ready){const i=n._call;n._ready=n._loader.ready().then(s=>{s&&i(),n._ready=null})}return r},sanitizeURL(t){return this._load("sanitizeURL",t)},loadImage(t){return this._load("loadImage",t)}};const P6e="keydown",M6e="keypress",j6e="keyup",eZ="dragenter",UT="dragleave",tZ="dragover",P$="mousedown",U6e="mouseup",qT="mousemove",Jy="mouseout",nZ="mouseover",HT="click",q6e="dblclick",H6e="wheel",rZ="mousewheel",zT="touchstart",QT="touchmove",GT="touchend",z6e=[P6e,M6e,j6e,eZ,UT,tZ,P$,U6e,qT,Jy,nZ,HT,q6e,H6e,rZ,zT,QT,GT],M$=qT,Zy=Jy,j$=HT;function WT(t,e){Yx.call(this,t,e),this._down=null,this._touch=null,this._first=!0,this._events={}}const Q6e=t=>t===zT||t===QT||t===GT?[zT,QT,GT]:[t];function iZ(t,e){Q6e(e).forEach(n=>G6e(t,n))}function G6e(t,e){const n=t.canvas();n&&!t._events[e]&&(t._events[e]=1,n.addEventListener(e,t[e]?r=>t[e](r):r=>t.fire(e,r)))}function sZ(t,e,n){return function(r){const i=this._active,s=this.pickEvent(r);s===i?this.fire(t,r):((!i||!i.exit)&&this.fire(n,r),this._active=s,this.fire(e,r),this.fire(t,r))}}function oZ(t){return function(e){this.fire(t,e),this._active=null}}Fe(WT,Yx,{initialize(t,e,n){return this._canvas=t&&JJ(t,"canvas"),[HT,P$,qT,Jy,UT].forEach(r=>iZ(this,r)),Yx.prototype.initialize.call(this,t,e,n)},canvas(){return this._canvas},context(){return this._canvas.getContext("2d")},events:z6e,DOMMouseScroll(t){this.fire(rZ,t)},mousemove:sZ(qT,nZ,Jy),dragover:sZ(tZ,eZ,UT),mouseout:oZ(Jy),dragleave:oZ(UT),mousedown(t){this._down=this._active,this.fire(P$,t)},click(t){this._down===this._active&&(this.fire(HT,t),this._down=null)},touchstart(t){this._touch=this.pickEvent(t.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire(zT,t,!0)},touchmove(t){this.fire(QT,t,!0)},touchend(t){this.fire(GT,t,!0),this._touch=null},fire(t,e,n){const r=n?this._touch:this._active,i=this._handlers[t];if(e.vegaType=t,t===j$&&r&&r.href?this.handleHref(e,r,r.href):(t===M$||t===Zy)&&this.handleTooltip(e,r,t!==Zy),i)for(let s=0,o=i.length;s<o;++s)i[s].handler.call(this._obj,e,r)},on(t,e){const n=this.eventName(t),r=this._handlers;return this._handlerIndex(r[n],t,e)<0&&(iZ(this,t),(r[n]||(r[n]=[])).push({type:t,handler:e})),this},off(t,e){const n=this.eventName(t),r=this._handlers[n],i=this._handlerIndex(r,t,e);return i>=0&&r.splice(i,1),this},pickEvent(t){const e=k$(t,this._canvas),n=this._origin;return this.pick(this._scene,e[0],e[1],e[0]-n[0],e[1]-n[1])},pick(t,e,n,r,i){const s=this.context();return xo[t.marktype].pick.call(this,s,t,e,n,r,i)}});function W6e(){return typeof window<"u"&&window.devicePixelRatio||1}var V6e=W6e();function Y6e(t,e,n,r,i,s){const o=typeof HTMLElement<"u"&&t instanceof HTMLElement&&t.parentNode!=null,u=t.getContext("2d"),a=o?V6e:i;t.width=e*a,t.height=n*a;for(const l in s)u[l]=s[l];return o&&a!==1&&(t.style.width=e+"px",t.style.height=n+"px"),u.pixelRatio=a,u.setTransform(a,0,0,a,a*r[0],a*r[1]),t}function U$(t){Nl.call(this,t),this._options={},this._redraw=!1,this._dirty=new Jn,this._tempb=new Jn}const uZ=Nl.prototype,X6e=(t,e,n)=>new Jn().set(0,0,e,n).translate(-t[0],-t[1]);function K6e(t,e,n){return e.expand(1).round(),t.pixelRatio%1&&e.scale(t.pixelRatio).round().scale(1/t.pixelRatio),e.translate(-(n[0]%1),-(n[1]%1)),t.beginPath(),t.rect(e.x1,e.y1,e.width(),e.height()),t.clip(),e}Fe(U$,Nl,{initialize(t,e,n,r,i,s){return this._options=s||{},this._canvas=this._options.externalContext?null:sc(1,1,this._options.type),t&&this._canvas&&(ca(t,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),uZ.initialize.call(this,t,e,n,r,i)},resize(t,e,n,r){if(uZ.resize.call(this,t,e,n,r),this._canvas)Y6e(this._canvas,this._width,this._height,this._origin,this._scale,this._options.context);else{const i=this._options.externalContext;i||ve("CanvasRenderer is missing a valid canvas or context"),i.scale(this._scale,this._scale),i.translate(this._origin[0],this._origin[1])}return this._redraw=!0,this},canvas(){return this._canvas},context(){return this._options.externalContext||(this._canvas?this._canvas.getContext("2d"):null)},dirty(t){const e=this._tempb.clear().union(t.bounds);let n=t.mark.group;for(;n;)e.translate(n.x||0,n.y||0),n=n.mark.group;this._dirty.union(e)},_render(t){const e=this.context(),n=this._origin,r=this._width,i=this._height,s=this._dirty,o=X6e(n,r,i);e.save();const u=this._redraw||s.empty()?(this._redraw=!1,o.expand(1)):K6e(e,o.intersect(s),n);return this.clear(-n[0],-n[1],r,i),this.draw(e,t,u),e.restore(),s.clear(),this},draw(t,e,n){const r=xo[e.marktype];e.clip&&QBe(t,e),r.draw.call(this,t,e,n),e.clip&&t.restore()},clear(t,e,n,r){const i=this._options,s=this.context();i.type!=="pdf"&&!i.externalContext&&s.clearRect(t,e,n,r),this._bgcolor!=null&&(s.fillStyle=this._bgcolor,s.fillRect(t,e,n,r))}});function aZ(t,e){Yx.call(this,t,e);const n=this;n._hrefHandler=q$(n,(r,i)=>{i&&i.href&&n.handleHref(r,i,i.href)}),n._tooltipHandler=q$(n,(r,i)=>{n.handleTooltip(r,i,r.type!==Zy)})}const q$=(t,e)=>n=>{let r=n.target.__data__;r=Array.isArray(r)?r[0]:r,n.vegaType=n.type,e.call(t._obj,n,r)};Fe(aZ,Yx,{initialize(t,e,n){let r=this._svg;return r&&(r.removeEventListener(j$,this._hrefHandler),r.removeEventListener(M$,this._tooltipHandler),r.removeEventListener(Zy,this._tooltipHandler)),this._svg=r=t&&JJ(t,"svg"),r&&(r.addEventListener(j$,this._hrefHandler),r.addEventListener(M$,this._tooltipHandler),r.addEventListener(Zy,this._tooltipHandler)),Yx.prototype.initialize.call(this,t,e,n)},canvas(){return this._svg},on(t,e){const n=this.eventName(t),r=this._handlers;if(this._handlerIndex(r[n],t,e)<0){const s={type:t,handler:e,listener:q$(this,e)};(r[n]||(r[n]=[])).push(s),this._svg&&this._svg.addEventListener(n,s.listener)}return this},off(t,e){const n=this.eventName(t),r=this._handlers[n],i=this._handlerIndex(r,t,e);return i>=0&&(this._svg&&this._svg.removeEventListener(n,r[i].listener),r.splice(i,1)),this}});const lZ="aria-hidden",H$="aria-label",z$="role",Q$="aria-roledescription",cZ="graphics-object",G$="graphics-symbol",fZ=(t,e,n)=>({[z$]:t,[Q$]:e,[H$]:n||void 0}),J6e=Xu(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]),xZ={axis:{desc:"axis",caption:tke},legend:{desc:"legend",caption:nke},"title-text":{desc:"title",caption:t=>`Title text '${gZ(t)}'`},"title-subtitle":{desc:"subtitle",caption:t=>`Subtitle text '${gZ(t)}'`}},dZ={ariaRole:z$,ariaRoleDescription:Q$,description:H$};function hZ(t,e){const n=e.aria===!1;if(t(lZ,n||void 0),n||e.description==null)for(const r in dZ)t(dZ[r],void 0);else{const r=e.mark.marktype;t(H$,e.description),t(z$,e.ariaRole||(r==="group"?cZ:G$)),t(Q$,e.ariaRoleDescription||`${r} mark`)}}function pZ(t){return t.aria===!1?{[lZ]:!0}:J6e[t.role]?null:xZ[t.role]?eke(t,xZ[t.role]):Z6e(t)}function Z6e(t){const e=t.marktype,n=e==="group"||e==="text"||t.items.some(r=>r.description!=null&&r.aria!==!1);return fZ(n?cZ:G$,`${e} mark container`,t.description)}function eke(t,e){try{const n=t.items[0],r=e.caption||(()=>"");return fZ(e.role||G$,e.desc,n.description||r(n))}catch{return null}}function gZ(t){return Pe(t.text).join(" ")}function tke(t){const e=t.datum,n=t.orient,r=e.title?mZ(t):null,i=t.context,s=i.scales[e.scale].value,o=i.dataflow.locale(),u=s.type;return`${n==="left"||n==="right"?"Y":"X"}-axis`+(r?` titled '${r}'`:"")+` for a ${Pp(u)?"discrete":u} scale with ${hJ(o,s,t)}`}function nke(t){const e=t.datum,n=e.title?mZ(t):null,r=`${e.type||""} legend`.trim(),i=e.scales,s=Object.keys(i),o=t.context,u=o.scales[i[s[0]]].value,a=o.dataflow.locale();return ike(r)+(n?` titled '${n}'`:"")+` for ${rke(s)} with ${hJ(a,u,t)}`}function mZ(t){try{return Pe(vt(t.items).items[0].text).join(" ")}catch{return null}}function rke(t){return t=t.map(e=>e+(e==="fill"||e==="stroke"?" color":"")),t.length<2?t[0]:t.slice(0,-1).join(", ")+" and "+vt(t)}function ike(t){return t.length?t[0].toUpperCase()+t.slice(1):t}const yZ=t=>(t+"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),ske=t=>yZ(t).replace(/"/g,""").replace(/\t/g,"	").replace(/\n/g,"
").replace(/\r/g,"
");function EZ(){let t="",e="",n="";const r=[],i=()=>e=n="",s=a=>{e&&(t+=`${e}>${n}`,i()),r.push(a)},o=(a,l)=>(l!=null&&(e+=` ${a}="${ske(l)}"`),u),u={open(a){s(a),e="<"+a;for(var l=arguments.length,c=new Array(l>1?l-1:0),f=1;f<l;f++)c[f-1]=arguments[f];for(const x of c)for(const h in x)o(h,x[h]);return u},close(){const a=r.pop();return e?t+=e+(n?`>${n}</${a}>`:"/>"):t+=`</${a}>`,i(),u},attr:o,text:a=>(n+=yZ(a),u),toString:()=>t};return u}const oke=t=>AZ(EZ(),t)+"";function AZ(t,e){if(t.open(e.tagName),e.hasAttributes()){const n=e.attributes,r=n.length;for(let i=0;i<r;++i)t.attr(n[i].name,n[i].value)}if(e.hasChildNodes()){const n=e.childNodes;for(const r of n)r.nodeType===3?t.text(r.nodeValue):AZ(t,r)}return t.close()}const VT={fill:"fill",fillOpacity:"fill-opacity",stroke:"stroke",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",strokeCap:"stroke-linecap",strokeJoin:"stroke-linejoin",strokeDash:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeMiterLimit:"stroke-miterlimit",opacity:"opacity"},YT={blend:"mix-blend-mode"},SZ={fill:"none","stroke-miterlimit":10},eE=0,vZ="http://www.w3.org/2000/xmlns/",Zn=Yy.xmlns;function _Z(t){Nl.call(this,t),this._dirtyID=0,this._dirty=[],this._svg=null,this._root=null,this._defs=null}const W$=Nl.prototype;Fe(_Z,Nl,{initialize(t,e,n,r,i){return this._defs={},this._clearDefs(),t&&(this._svg=Is(t,0,"svg",Zn),this._svg.setAttributeNS(vZ,"xmlns",Zn),this._svg.setAttributeNS(vZ,"xmlns:xlink",Yy["xmlns:xlink"]),this._svg.setAttribute("version",Yy.version),this._svg.setAttribute("class","marks"),ca(t,1),this._root=Is(this._svg,eE,"g",Zn),mc(this._root,SZ),ca(this._svg,eE+1)),this.background(this._bgcolor),W$.initialize.call(this,t,e,n,r,i)},background(t){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",t),W$.background.apply(this,arguments)},resize(t,e,n,r){return W$.resize.call(this,t,e,n,r),this._svg&&(mc(this._svg,{width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}),this._root.setAttribute("transform",`translate(${this._origin})`)),this._dirty=[],this},canvas(){return this._svg},svg(){const t=this._svg,e=this._bgcolor;if(!t)return null;let n;e&&(t.removeAttribute("style"),n=Is(t,eE,"rect",Zn),mc(n,{width:this._width,height:this._height,fill:e}));const r=oke(t);return e&&(t.removeChild(n),this._svg.style.setProperty("background-color",e)),r},_render(t){return this._dirtyCheck()&&(this._dirtyAll&&this._clearDefs(),this.mark(this._root,t),ca(this._root,1)),this.defs(),this._dirty=[],++this._dirtyID,this},dirty(t){t.dirty!==this._dirtyID&&(t.dirty=this._dirtyID,this._dirty.push(t))},isDirty(t){return this._dirtyAll||!t._svg||!t._svg.ownerSVGElement||t.dirty===this._dirtyID},_dirtyCheck(){this._dirtyAll=!0;const t=this._dirty;if(!t.length||!this._dirtyID)return!0;const e=++this._dirtyID;let n,r,i,s,o,u,a;for(o=0,u=t.length;o<u;++o)if(n=t[o],r=n.mark,r.marktype!==i&&(i=r.marktype,s=xo[i]),r.zdirty&&r.dirty!==e&&(this._dirtyAll=!1,CZ(n,e),r.items.forEach(l=>{l.dirty=e})),!r.zdirty){if(n.exit){s.nested&&r.items.length?(a=r.items[0],a._svg&&this._update(s,a._svg,a)):n._svg&&(a=n._svg.parentNode,a&&a.removeChild(n._svg)),n._svg=null;continue}n=s.nested?r.items[0]:n,n._update!==e&&(!n._svg||!n._svg.ownerSVGElement?(this._dirtyAll=!1,CZ(n,e)):this._update(s,n._svg,n),n._update=e)}return!this._dirtyAll},mark(t,e,n){if(!this.isDirty(e))return e._svg;const r=this._svg,i=xo[e.marktype],s=e.interactive===!1?"none":null,o=i.tag==="g",u=bZ(e,t,n,"g",r);u.setAttribute("class",ZJ(e));const a=pZ(e);for(const x in a)_i(u,x,a[x]);o||_i(u,"pointer-events",s),_i(u,"clip-path",e.clip?h$(this,e,e.group):null);let l=null,c=0;const f=x=>{const h=this.isDirty(x),p=bZ(x,u,l,i.tag,r);h&&(this._update(i,p,x),o&&lke(this,p,x)),l=p,++c};return i.nested?e.items.length&&f(e.items[0]):aa(e,f),ca(u,c),u},_update(t,e,n){Dl=e,Zr=e.__values__,hZ(tE,n),t.attr(tE,n,this);const r=fke[t.type];r&&r.call(this,t,e,n),Dl&&this.style(Dl,n)},style(t,e){if(e!=null){for(const n in VT){let r=n==="font"?MT(e):e[n];if(r===Zr[n])continue;const i=VT[n];r==null?t.removeAttribute(i):(a$(r)&&(r=pJ(r,this._defs.gradient,TZ())),t.setAttribute(i,r+"")),Zr[n]=r}for(const n in YT)XT(t,YT[n],e[n])}},defs(){const t=this._svg,e=this._defs;let n=e.el,r=0;for(const i in e.gradient)n||(e.el=n=Is(t,eE+1,"defs",Zn)),r=uke(n,e.gradient[i],r);for(const i in e.clipping)n||(e.el=n=Is(t,eE+1,"defs",Zn)),r=ake(n,e.clipping[i],r);n&&(r===0?(t.removeChild(n),e.el=null):ca(n,r))},_clearDefs(){const t=this._defs;t.gradient={},t.clipping={}}});function CZ(t,e){for(;t&&t.dirty!==e;t=t.mark.group)if(t.dirty=e,t.mark&&t.mark.dirty!==e)t.mark.dirty=e;else return}function uke(t,e,n){let r,i,s;if(e.gradient==="radial"){let o=Is(t,n++,"pattern",Zn);mc(o,{id:CT+e.id,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),o=Is(o,0,"rect",Zn),mc(o,{width:1,height:1,fill:`url(${TZ()}#${e.id})`}),t=Is(t,n++,"radialGradient",Zn),mc(t,{id:e.id,fx:e.x1,fy:e.y1,fr:e.r1,cx:e.x2,cy:e.y2,r:e.r2})}else t=Is(t,n++,"linearGradient",Zn),mc(t,{id:e.id,x1:e.x1,x2:e.x2,y1:e.y1,y2:e.y2});for(r=0,i=e.stops.length;r<i;++r)s=Is(t,r,"stop",Zn),s.setAttribute("offset",e.stops[r].offset),s.setAttribute("stop-color",e.stops[r].color);return ca(t,r),n}function ake(t,e,n){let r;return t=Is(t,n,"clipPath",Zn),t.setAttribute("id",e.id),e.path?(r=Is(t,0,"path",Zn),r.setAttribute("d",e.path)):(r=Is(t,0,"rect",Zn),mc(r,{x:0,y:0,width:e.width,height:e.height})),ca(t,1),n+1}function lke(t,e,n){e=e.lastChild.previousSibling;let r,i=0;aa(n,s=>{r=t.mark(e,s,r),++i}),ca(e,1+i)}function bZ(t,e,n,r,i){let s=t._svg,o;if(!s&&(o=e.ownerDocument,s=Vx(o,r,Zn),t._svg=s,t.mark&&(s.__data__=t,s.__values__={fill:"default"},r==="g"))){const u=Vx(o,"path",Zn);s.appendChild(u),u.__data__=t;const a=Vx(o,"g",Zn);s.appendChild(a),a.__data__=t;const l=Vx(o,"path",Zn);s.appendChild(l),l.__data__=t,l.__values__={fill:"default"}}return(s.ownerSVGElement!==i||cke(s,n))&&e.insertBefore(s,n?n.nextSibling:e.firstChild),s}function cke(t,e){return t.parentNode&&t.parentNode.childNodes.length>1&&t.previousSibling!=e}let Dl=null,Zr=null;const fke={group(t,e,n){const r=Dl=e.childNodes[2];Zr=r.__values__,t.foreground(tE,n,this),Zr=e.__values__,Dl=e.childNodes[1],t.content(tE,n,this);const i=Dl=e.childNodes[0];t.background(tE,n,this);const s=n.mark.interactive===!1?"none":null;if(s!==Zr.events&&(_i(r,"pointer-events",s),_i(i,"pointer-events",s),Zr.events=s),n.strokeForeground&&n.stroke){const o=n.fill;_i(r,"display",null),this.style(i,n),_i(i,"stroke",null),o&&(n.fill=null),Zr=r.__values__,this.style(r,n),o&&(n.fill=o),Dl=null}else _i(r,"display","none")},image(t,e,n){n.smooth===!1?(XT(e,"image-rendering","optimizeSpeed"),XT(e,"image-rendering","pixelated")):XT(e,"image-rendering",null)},text(t,e,n){const r=Xy(n);let i,s,o,u;_e(r)?(s=r.map(a=>gc(n,a)),i=s.join(`
|
|
1313
|
-
`),i!==Zr.text&&(ca(e,0),o=e.ownerDocument,u=Wx(n),s.forEach((a,l)=>{const c=Vx(o,"tspan",Zn);c.__data__=n,c.textContent=a,l&&(c.setAttribute("x",0),c.setAttribute("dy",u)),e.appendChild(c)}),Zr.text=i)):(s=gc(n,r),s!==Zr.text&&(e.textContent=s,Zr.text=s)),_i(e,"font-family",MT(n)),_i(e,"font-size",Ol(n)+"px"),_i(e,"font-style",n.fontStyle),_i(e,"font-variant",n.fontVariant),_i(e,"font-weight",n.fontWeight)}};function tE(t,e,n){e!==Zr[t]&&(n?xke(Dl,t,e,n):_i(Dl,t,e),Zr[t]=e)}function XT(t,e,n){n!==Zr[e]&&(n==null?t.style.removeProperty(e):t.style.setProperty(e,n+""),Zr[e]=n)}function mc(t,e){for(const n in e)_i(t,n,e[n])}function _i(t,e,n){n!=null?t.setAttribute(e,n):t.removeAttribute(e)}function xke(t,e,n,r){n!=null?t.setAttributeNS(r,e,n):t.removeAttributeNS(r,e)}function TZ(){let t;return typeof window>"u"?"":(t=window.location).hash?t.href.slice(0,-t.hash.length):t.href}function RZ(t){Nl.call(this,t),this._text=null,this._defs={gradient:{},clipping:{}}}Fe(RZ,Nl,{svg(){return this._text},_render(t){const e=EZ();e.open("svg",ft({},Yy,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}));const n=this._bgcolor;return n&&n!=="transparent"&&n!=="none"&&e.open("rect",{width:this._width,height:this._height,fill:n}).close(),e.open("g",SZ,{transform:"translate("+this._origin+")"}),this.mark(e,t),e.close(),this.defs(e),this._text=e.close()+"",this},mark(t,e){const n=xo[e.marktype],r=n.tag,i=[hZ,n.attr];t.open("g",{class:ZJ(e),"clip-path":e.clip?h$(this,e,e.group):null},pZ(e),{"pointer-events":r!=="g"&&e.interactive===!1?"none":null});const s=o=>{const u=this.href(o);if(u&&t.open("a",u),t.open(r,this.attr(e,o,i,r!=="g"?r:null)),r==="text"){const a=Xy(o);if(_e(a)){const l={x:0,dy:Wx(o)};for(let c=0;c<a.length;++c)t.open("tspan",c?l:null).text(gc(o,a[c])).close()}else t.text(gc(o,a))}else if(r==="g"){const a=o.strokeForeground,l=o.fill,c=o.stroke;a&&c&&(o.stroke=null),t.open("path",this.attr(e,o,n.background,"bgrect")).close(),t.open("g",this.attr(e,o,n.content)),aa(o,f=>this.mark(t,f)),t.close(),a&&c?(l&&(o.fill=null),o.stroke=c,t.open("path",this.attr(e,o,n.foreground,"bgrect")).close(),l&&(o.fill=l)):t.open("path",this.attr(e,o,n.foreground,"bgfore")).close()}t.close(),u&&t.close()};return n.nested?e.items&&e.items.length&&s(e.items[0]):aa(e,s),t.close()},href(t){const e=t.href;let n;if(e){if(n=this._hrefs&&this._hrefs[e])return n;this.sanitizeURL(e).then(r=>{r["xlink:href"]=r.href,r.href=null,(this._hrefs||(this._hrefs={}))[e]=r})}return null},attr(t,e,n,r){const i={},s=(o,u,a,l)=>{i[l||o]=u};return Array.isArray(n)?n.forEach(o=>o(s,e,this)):n(s,e,this),r&&dke(i,e,t,r,this._defs),i},defs(t){const e=this._defs.gradient,n=this._defs.clipping;if(Object.keys(e).length+Object.keys(n).length!==0){t.open("defs");for(const i in e){const s=e[i],o=s.stops;s.gradient==="radial"?(t.open("pattern",{id:CT+i,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),t.open("rect",{width:"1",height:"1",fill:"url(#"+i+")"}).close(),t.close(),t.open("radialGradient",{id:i,fx:s.x1,fy:s.y1,fr:s.r1,cx:s.x2,cy:s.y2,r:s.r2})):t.open("linearGradient",{id:i,x1:s.x1,x2:s.x2,y1:s.y1,y2:s.y2});for(let u=0;u<o.length;++u)t.open("stop",{offset:o[u].offset,"stop-color":o[u].color}).close();t.close()}for(const i in n){const s=n[i];t.open("clipPath",{id:i}),s.path?t.open("path",{d:s.path}).close():t.open("rect",{x:0,y:0,width:s.width,height:s.height}).close(),t.close()}t.close()}}});function dke(t,e,n,r,i){let s;if(e==null||(r==="bgrect"&&n.interactive===!1&&(t["pointer-events"]="none"),r==="bgfore"&&(n.interactive===!1&&(t["pointer-events"]="none"),t.display="none",e.fill!==null)))return t;r==="image"&&e.smooth===!1&&(s=["image-rendering: optimizeSpeed;","image-rendering: pixelated;"]),r==="text"&&(t["font-family"]=MT(e),t["font-size"]=Ol(e)+"px",t["font-style"]=e.fontStyle,t["font-variant"]=e.fontVariant,t["font-weight"]=e.fontWeight);for(const o in VT){let u=e[o];const a=VT[o];u==="transparent"&&(a==="fill"||a==="stroke")||u!=null&&(a$(u)&&(u=pJ(u,i.gradient,"")),t[a]=u)}for(const o in YT){const u=e[o];u!=null&&(s=s||[],s.push(`${YT[o]}: ${u};`))}return s&&(t.style=s.join(" ")),t}const OZ="canvas",NZ="png",DZ="svg",FZ="none",Xx={Canvas:OZ,PNG:NZ,SVG:DZ,None:FZ},Hp={};Hp[OZ]=Hp[NZ]={renderer:U$,headless:U$,handler:WT},Hp[DZ]={renderer:_Z,headless:RZ,handler:aZ},Hp[FZ]={};function V$(t,e){return t=String(t||"").toLowerCase(),arguments.length>1?(Hp[t]=e,this):Hp[t]}function hke(t,e,n){const r=[],i=new Jn().union(e),s=t.marktype;return s?wZ(t,i,n,r):s==="group"?LZ(t,i,n,r):ve("Intersect scene must be mark node or group item.")}function wZ(t,e,n,r){if(pke(t,e,n)){const i=t.items,s=t.marktype,o=i.length;let u=0;if(s==="group")for(;u<o;++u)LZ(i[u],e,n,r);else for(const a=xo[s].isect;u<o;++u){const l=i[u];IZ(l,e,a)&&r.push(l)}}return r}function pke(t,e,n){return t.bounds&&e.intersects(t.bounds)&&(t.marktype==="group"||t.interactive!==!1&&(!n||n(t)))}function LZ(t,e,n,r){n&&n(t.mark)&&IZ(t,e,xo.group.isect)&&r.push(t);const i=t.items,s=i&&i.length;if(s){const o=t.x||0,u=t.y||0;e.translate(-o,-u);for(let a=0;a<s;++a)wZ(i[a],e,n,r);e.translate(o,u)}return r}function IZ(t,e,n){const r=t.bounds;return e.encloses(r)||e.intersects(r)&&n(t,e)}const Y$=new Jn;function gke(t){const e=t.clip;if(ct(e))e(LT(Y$.clear()));else if(e)Y$.set(0,0,t.group.width,t.group.height);else return;t.bounds.intersect(Y$)}const zp="top",Ko="left",Jo="right",yc="bottom",mke="top-left",yke="top-right",Eke="bottom-left",Ake="bottom-right",X$="start",K$="middle",Ci="end",Ske="x",vke="y",KT="group",J$="axis",Z$="title",_ke="frame",Cke="scope",eB="legend",$Z="row-header",BZ="row-footer",kZ="row-title",PZ="column-header",MZ="column-footer",jZ="column-title",bke="padding",Tke="symbol",UZ="fit",qZ="fit-x",HZ="fit-y",Rke="pad",tB="none",JT="all",nB="each",rB="flush",Ec="column",Ac="row";function zZ(t){pe.call(this,null,t)}Fe(zZ,pe,{transform(t,e){const n=e.dataflow,r=t.mark,i=r.marktype,s=xo[i],o=s.bound;let u=r.bounds,a;if(s.nested)r.items.length&&n.dirty(r.items[0]),u=ZT(r,o),r.items.forEach(l=>{l.bounds.clear().union(u)});else if(i===KT||t.modified())switch(e.visit(e.MOD,l=>n.dirty(l)),u.clear(),r.items.forEach(l=>u.union(ZT(l,o))),r.role){case J$:case eB:case Z$:e.reflow()}else a=e.changed(e.REM),e.visit(e.ADD,l=>{u.union(ZT(l,o))}),e.visit(e.MOD,l=>{a=a||u.alignsWith(l.bounds),n.dirty(l),u.union(ZT(l,o))}),a&&(u.clear(),r.items.forEach(l=>u.union(l.bounds)));return gke(r),e.modifies("bounds")}});function ZT(t,e,n){return e(t.bounds.clear(),t,n)}const QZ=":vega_identifier:";function iB(t){pe.call(this,0,t)}iB.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},Fe(iB,pe,{transform(t,e){const n=Oke(e.dataflow),r=t.as;let i=n.value;return e.visit(e.ADD,s=>s[r]=s[r]||++i),n.set(this.value=i),e}});function Oke(t){return t._signals[QZ]||(t._signals[QZ]=t.add(0))}function GZ(t){pe.call(this,null,t)}Fe(GZ,pe,{transform(t,e){let n=this.value;n||(n=e.dataflow.scenegraph().mark(t.markdef,Nke(t),t.index),n.group.context=t.context,t.context.group||(t.context.group=n.group),n.source=this.source,n.clip=t.clip,n.interactive=t.interactive,this.value=n);const r=n.marktype===KT?g$:p$;return e.visit(e.ADD,i=>r.call(i,n)),(t.modified("clip")||t.modified("interactive"))&&(n.clip=t.clip,n.interactive=!!t.interactive,n.zdirty=!0,e.reflow()),n.items=e.source,e}});function Nke(t){const e=t.groups,n=t.parent;return e&&e.size===1?e.get(Object.keys(e.object)[0]):e&&n?e.lookup(n):null}function WZ(t){pe.call(this,null,t)}const VZ={parity:t=>t.filter((e,n)=>n%2?e.opacity=0:1),greedy:(t,e)=>{let n;return t.filter((r,i)=>!i||!YZ(n.bounds,r.bounds,e)?(n=r,1):r.opacity=0)}},YZ=(t,e,n)=>n>Math.max(e.x1-t.x2,t.x1-e.x2,e.y1-t.y2,t.y1-e.y2),XZ=(t,e)=>{for(var n=1,r=t.length,i=t[0].bounds,s;n<r;i=s,++n)if(YZ(i,s=t[n].bounds,e))return!0},Dke=t=>{const e=t.bounds;return e.width()>1&&e.height()>1},Fke=(t,e,n)=>{var r=t.range(),i=new Jn;return e===zp||e===yc?i.set(r[0],-1/0,r[1],1/0):i.set(-1/0,r[0],1/0,r[1]),i.expand(n||1),s=>i.encloses(s.bounds)},KZ=t=>(t.forEach(e=>e.opacity=1),t),JZ=(t,e)=>t.reflow(e.modified()).modifies("opacity");Fe(WZ,pe,{transform(t,e){const n=VZ[t.method]||VZ.parity,r=t.separation||0;let i=e.materialize(e.SOURCE).source,s,o;if(!i||!i.length)return;if(!t.method)return t.modified("method")&&(KZ(i),e=JZ(e,t)),e;if(i=i.filter(Dke),!i.length)return;if(t.sort&&(i=i.slice().sort(t.sort)),s=KZ(i),e=JZ(e,t),s.length>=3&&XZ(s,r)){do s=n(s,r);while(s.length>=3&&XZ(s,r));s.length<3&&!vt(i).opacity&&(s.length>1&&(vt(s).opacity=0),vt(i).opacity=1)}t.boundScale&&t.boundTolerance>=0&&(o=Fke(t.boundScale,t.boundOrient,+t.boundTolerance),i.forEach(a=>{o(a)||(a.opacity=0)}));const u=s[0].mark.bounds.clear();return i.forEach(a=>{a.opacity&&u.union(a.bounds)}),e}});function ZZ(t){pe.call(this,null,t)}Fe(ZZ,pe,{transform(t,e){const n=e.dataflow;if(e.visit(e.ALL,r=>n.dirty(r)),e.fields&&e.fields.zindex){const r=e.source&&e.source[0];r&&(r.mark.zdirty=!0)}}});const ei=new Jn;function Qp(t,e,n){return t[e]===n?0:(t[e]=n,1)}function wke(t){var e=t.items[0].orient;return e===Ko||e===Jo}function Lke(t){let e=+t.grid;return[t.ticks?e++:-1,t.labels?e++:-1,e+ +t.domain]}function Ike(t,e,n,r){var i=e.items[0],s=i.datum,o=i.translate!=null?i.translate:.5,u=i.orient,a=Lke(s),l=i.range,c=i.offset,f=i.position,x=i.minExtent,h=i.maxExtent,p=s.title&&i.items[a[2]].items[0],m=i.titlePadding,g=i.bounds,y=p&&GJ(p),E=0,A=0,S,v;switch(ei.clear().union(g),g.clear(),(S=a[0])>-1&&g.union(i.items[S].bounds),(S=a[1])>-1&&g.union(i.items[S].bounds),u){case zp:E=f||0,A=-c,v=Math.max(x,Math.min(h,-g.y1)),g.add(0,-v).add(l,0),p&&eR(t,p,v,m,y,0,-1,g);break;case Ko:E=-c,A=f||0,v=Math.max(x,Math.min(h,-g.x1)),g.add(-v,0).add(0,l),p&&eR(t,p,v,m,y,1,-1,g);break;case Jo:E=n+c,A=f||0,v=Math.max(x,Math.min(h,g.x2)),g.add(0,0).add(v,l),p&&eR(t,p,v,m,y,1,1,g);break;case yc:E=f||0,A=r+c,v=Math.max(x,Math.min(h,g.y2)),g.add(0,0).add(l,v),p&&eR(t,p,v,m,0,0,1,g);break;default:E=i.x,A=i.y}return dc(g.translate(E,A),i),Qp(i,"x",E+o)|Qp(i,"y",A+o)&&(i.bounds=ei,t.dirty(i),i.bounds=g,t.dirty(i)),i.mark.bounds.clear().union(g)}function eR(t,e,n,r,i,s,o,u){const a=e.bounds;if(e.auto){const l=o*(n+i+r);let c=0,f=0;t.dirty(e),s?c=(e.x||0)-(e.x=l):f=(e.y||0)-(e.y=l),e.mark.bounds.clear().union(a.translate(-c,-f)),t.dirty(e)}u.union(a)}const eee=(t,e)=>Math.floor(Math.min(t,e)),tee=(t,e)=>Math.ceil(Math.max(t,e));function $ke(t){var e=t.items,n=e.length,r=0,i,s;const o={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};for(;r<n;++r)if(i=e[r],s=i.items,i.marktype===KT)switch(i.role){case J$:case eB:case Z$:break;case $Z:o.rowheaders.push(...s);break;case BZ:o.rowfooters.push(...s);break;case PZ:o.colheaders.push(...s);break;case MZ:o.colfooters.push(...s);break;case kZ:o.rowtitle=s[0];break;case jZ:o.coltitle=s[0];break;default:o.marks.push(...s)}return o}function Bke(t){return new Jn().set(0,0,t.width||0,t.height||0)}function kke(t){const e=t.bounds.clone();return e.empty()?e.set(0,0,0,0):e.translate(-(t.x||0),-(t.y||0))}function ln(t,e,n){const r=He(t)?t[e]:t;return r??(n!==void 0?n:0)}function nee(t){return t<0?Math.ceil(-t):0}function ree(t,e,n){var r=!n.nodirty,i=n.bounds===rB?Bke:kke,s=ei.set(0,0,0,0),o=ln(n.align,Ec),u=ln(n.align,Ac),a=ln(n.padding,Ec),l=ln(n.padding,Ac),c=n.columns||e.length,f=c<=0?1:Math.ceil(e.length/c),x=e.length,h=Array(x),p=Array(c),m=0,g=Array(x),y=Array(f),E=0,A=Array(x),S=Array(x),v=Array(x),_,C,b,R,O,L,M,q,W,B,G;for(C=0;C<c;++C)p[C]=0;for(C=0;C<f;++C)y[C]=0;for(C=0;C<x;++C)L=e[C],O=v[C]=i(L),L.x=L.x||0,A[C]=0,L.y=L.y||0,S[C]=0,b=C%c,R=~~(C/c),m=Math.max(m,M=Math.ceil(O.x2)),E=Math.max(E,q=Math.ceil(O.y2)),p[b]=Math.max(p[b],M),y[R]=Math.max(y[R],q),h[C]=a+nee(O.x1),g[C]=l+nee(O.y1),r&&t.dirty(e[C]);for(C=0;C<x;++C)C%c===0&&(h[C]=0),C<c&&(g[C]=0);if(o===nB)for(b=1;b<c;++b){for(G=0,C=b;C<x;C+=c)G<h[C]&&(G=h[C]);for(C=b;C<x;C+=c)h[C]=G+p[b-1]}else if(o===JT){for(G=0,C=0;C<x;++C)C%c&&G<h[C]&&(G=h[C]);for(C=0;C<x;++C)C%c&&(h[C]=G+m)}else for(o=!1,b=1;b<c;++b)for(C=b;C<x;C+=c)h[C]+=p[b-1];if(u===nB)for(R=1;R<f;++R){for(G=0,C=R*c,_=C+c;C<_;++C)G<g[C]&&(G=g[C]);for(C=R*c;C<_;++C)g[C]=G+y[R-1]}else if(u===JT){for(G=0,C=c;C<x;++C)G<g[C]&&(G=g[C]);for(C=c;C<x;++C)g[C]=G+E}else for(u=!1,R=1;R<f;++R)for(C=R*c,_=C+c;C<_;++C)g[C]+=y[R-1];for(W=0,C=0;C<x;++C)W=h[C]+(C%c?W:0),A[C]+=W-e[C].x;for(b=0;b<c;++b)for(B=0,C=b;C<x;C+=c)B+=g[C],S[C]+=B-e[C].y;if(o&&ln(n.center,Ec)&&f>1)for(C=0;C<x;++C)O=o===JT?m:p[C%c],W=O-v[C].x2-e[C].x-A[C],W>0&&(A[C]+=W/2);if(u&&ln(n.center,Ac)&&c!==1)for(C=0;C<x;++C)O=u===JT?E:y[~~(C/c)],B=O-v[C].y2-e[C].y-S[C],B>0&&(S[C]+=B/2);for(C=0;C<x;++C)s.union(v[C].translate(A[C],S[C]));switch(W=ln(n.anchor,Ske),B=ln(n.anchor,vke),ln(n.anchor,Ec)){case Ci:W-=s.width();break;case K$:W-=s.width()/2}switch(ln(n.anchor,Ac)){case Ci:B-=s.height();break;case K$:B-=s.height()/2}for(W=Math.round(W),B=Math.round(B),s.clear(),C=0;C<x;++C)e[C].mark.bounds.clear();for(C=0;C<x;++C)L=e[C],L.x+=A[C]+=W,L.y+=S[C]+=B,s.union(L.mark.bounds.union(L.bounds.translate(A[C],S[C]))),r&&t.dirty(L);return s}function Pke(t,e,n){var r=$ke(e),i=r.marks,s=n.bounds===rB?Mke:jke,o=n.offset,u=n.columns||i.length,a=u<=0?1:Math.ceil(i.length/u),l=a*u,c,f,x,h,p,m,g;const y=ree(t,i,n);y.empty()&&y.set(0,0,0,0),r.rowheaders&&(m=ln(n.headerBand,Ac,null),c=tR(t,r.rowheaders,i,u,a,-ln(o,"rowHeader"),eee,0,s,"x1",0,u,1,m)),r.colheaders&&(m=ln(n.headerBand,Ec,null),f=tR(t,r.colheaders,i,u,u,-ln(o,"columnHeader"),eee,1,s,"y1",0,1,u,m)),r.rowfooters&&(m=ln(n.footerBand,Ac,null),x=tR(t,r.rowfooters,i,u,a,ln(o,"rowFooter"),tee,0,s,"x2",u-1,u,1,m)),r.colfooters&&(m=ln(n.footerBand,Ec,null),h=tR(t,r.colfooters,i,u,u,ln(o,"columnFooter"),tee,1,s,"y2",l-u,1,u,m)),r.rowtitle&&(p=ln(n.titleAnchor,Ac),g=ln(o,"rowTitle"),g=p===Ci?x+g:c-g,m=ln(n.titleBand,Ac,.5),iee(t,r.rowtitle,g,0,y,m)),r.coltitle&&(p=ln(n.titleAnchor,Ec),g=ln(o,"columnTitle"),g=p===Ci?h+g:f-g,m=ln(n.titleBand,Ec,.5),iee(t,r.coltitle,g,1,y,m))}function Mke(t,e){return e==="x1"?t.x||0:e==="y1"?t.y||0:e==="x2"?(t.x||0)+(t.width||0):e==="y2"?(t.y||0)+(t.height||0):void 0}function jke(t,e){return t.bounds[e]}function tR(t,e,n,r,i,s,o,u,a,l,c,f,x,h){var p=n.length,m=0,g=0,y,E,A,S,v,_,C,b,R;if(!p)return m;for(y=c;y<p;y+=f)n[y]&&(m=o(m,a(n[y],l)));if(!e.length)return m;for(e.length>i&&(t.warn("Grid headers exceed limit: "+i),e=e.slice(0,i)),m+=s,E=0,S=e.length;E<S;++E)t.dirty(e[E]),e[E].mark.bounds.clear();for(y=c,E=0,S=e.length;E<S;++E,y+=f){for(_=e[E],v=_.mark.bounds,A=y;A>=0&&(C=n[A])==null;A-=x);u?(b=h==null?C.x:Math.round(C.bounds.x1+h*C.bounds.width()),R=m):(b=m,R=h==null?C.y:Math.round(C.bounds.y1+h*C.bounds.height())),v.union(_.bounds.translate(b-(_.x||0),R-(_.y||0))),_.x=b,_.y=R,t.dirty(_),g=o(g,v[l])}return g}function iee(t,e,n,r,i,s){if(e){t.dirty(e);var o=n,u=n;r?o=Math.round(i.x1+s*i.width()):u=Math.round(i.y1+s*i.height()),e.bounds.translate(o-(e.x||0),u-(e.y||0)),e.mark.bounds.clear().union(e.bounds),e.x=o,e.y=u,t.dirty(e)}}function Uke(t,e){const n=t[e]||{};return(r,i)=>n[r]!=null?n[r]:t[r]!=null?t[r]:i}function qke(t,e){let n=-1/0;return t.forEach(r=>{r.offset!=null&&(n=Math.max(n,r.offset))}),n>-1/0?n:e}function Hke(t,e,n,r,i,s,o){const u=Uke(n,e),a=qke(t,u("offset",0)),l=u("anchor",X$),c=l===Ci?1:l===K$?.5:0,f={align:nB,bounds:u("bounds",rB),columns:u("direction")==="vertical"?1:t.length,padding:u("margin",8),center:u("center"),nodirty:!0};switch(e){case Ko:f.anchor={x:Math.floor(r.x1)-a,column:Ci,y:c*(o||r.height()+2*r.y1),row:l};break;case Jo:f.anchor={x:Math.ceil(r.x2)+a,y:c*(o||r.height()+2*r.y1),row:l};break;case zp:f.anchor={y:Math.floor(i.y1)-a,row:Ci,x:c*(s||i.width()+2*i.x1),column:l};break;case yc:f.anchor={y:Math.ceil(i.y2)+a,x:c*(s||i.width()+2*i.x1),column:l};break;case mke:f.anchor={x:a,y:a};break;case yke:f.anchor={x:s-a,y:a,column:Ci};break;case Eke:f.anchor={x:a,y:o-a,row:Ci};break;case Ake:f.anchor={x:s-a,y:o-a,column:Ci,row:Ci};break}return f}function zke(t,e){var n=e.items[0],r=n.datum,i=n.orient,s=n.bounds,o=n.x,u=n.y,a,l;return n._bounds?n._bounds.clear().union(s):n._bounds=s.clone(),s.clear(),Gke(t,n,n.items[0].items[0]),s=Qke(n,s),a=2*n.padding,l=2*n.padding,s.empty()||(a=Math.ceil(s.width()+a),l=Math.ceil(s.height()+l)),r.type===Tke&&Wke(n.items[0].items[0].items[0].items),i!==tB&&(n.x=o=0,n.y=u=0),n.width=a,n.height=l,dc(s.set(o,u,o+a,u+l),n),n.mark.bounds.clear().union(s),n}function Qke(t,e){return t.items.forEach(n=>e.union(n.bounds)),e.x1=t.padding,e.y1=t.padding,e}function Gke(t,e,n){var r=e.padding,i=r-n.x,s=r-n.y;if(!e.datum.title)(i||s)&&nE(t,n,i,s);else{var o=e.items[1].items[0],u=o.anchor,a=e.titlePadding||0,l=r-o.x,c=r-o.y;switch(o.orient){case Ko:i+=Math.ceil(o.bounds.width())+a;break;case Jo:case yc:break;default:s+=o.bounds.height()+a}switch((i||s)&&nE(t,n,i,s),o.orient){case Ko:c+=Gp(e,n,o,u,1,1);break;case Jo:l+=Gp(e,n,o,Ci,0,0)+a,c+=Gp(e,n,o,u,1,1);break;case yc:l+=Gp(e,n,o,u,0,0),c+=Gp(e,n,o,Ci,-1,0,1)+a;break;default:l+=Gp(e,n,o,u,0,0)}(l||c)&&nE(t,o,l,c),(l=Math.round(o.bounds.x1-r))<0&&(nE(t,n,-l,0),nE(t,o,-l,0))}}function Gp(t,e,n,r,i,s,o){const u=t.datum.type!=="symbol",a=n.datum.vgrad,l=u&&(s||!a)&&!o?e.items[0]:e,c=l.bounds[i?"y2":"x2"]-t.padding,f=a&&s?c:0,x=a&&s?0:c,h=i<=0?0:GJ(n);return Math.round(r===X$?f:r===Ci?x-h:.5*(c-h))}function nE(t,e,n,r){e.x+=n,e.y+=r,e.bounds.translate(n,r),e.mark.bounds.translate(n,r),t.dirty(e)}function Wke(t){const e=t.reduce((n,r)=>(n[r.column]=Math.max(r.bounds.x2-r.x,n[r.column]||0),n),{});t.forEach(n=>{n.width=e[n.column],n.height=n.bounds.y2-n.y})}function Vke(t,e,n,r,i){var s=e.items[0],o=s.frame,u=s.orient,a=s.anchor,l=s.offset,c=s.padding,f=s.items[0].items[0],x=s.items[1]&&s.items[1].items[0],h=u===Ko||u===Jo?r:n,p=0,m=0,g=0,y=0,E=0,A;if(o!==KT?u===Ko?(p=i.y2,h=i.y1):u===Jo?(p=i.y1,h=i.y2):(p=i.x1,h=i.x2):u===Ko&&(p=r,h=0),A=a===X$?p:a===Ci?h:(p+h)/2,x&&x.text){switch(u){case zp:case yc:E=f.bounds.height()+c;break;case Ko:y=f.bounds.width()+c;break;case Jo:y=-f.bounds.width()-c;break}ei.clear().union(x.bounds),ei.translate(y-(x.x||0),E-(x.y||0)),Qp(x,"x",y)|Qp(x,"y",E)&&(t.dirty(x),x.bounds.clear().union(ei),x.mark.bounds.clear().union(ei),t.dirty(x)),ei.clear().union(x.bounds)}else ei.clear();switch(ei.union(f.bounds),u){case zp:m=A,g=i.y1-ei.height()-l;break;case Ko:m=i.x1-ei.width()-l,g=A;break;case Jo:m=i.x2+ei.width()+l,g=A;break;case yc:m=A,g=i.y2+l;break;default:m=s.x,g=s.y}return Qp(s,"x",m)|Qp(s,"y",g)&&(ei.translate(m,g),t.dirty(s),s.bounds.clear().union(ei),e.bounds.clear().union(ei),t.dirty(s)),s.bounds}function see(t){pe.call(this,null,t)}Fe(see,pe,{transform(t,e){const n=e.dataflow;return t.mark.items.forEach(r=>{t.layout&&Pke(n,r,t.layout),Xke(n,r,t)}),Yke(t.mark.group)?e.reflow():e}});function Yke(t){return t&&t.mark.role!=="legend-entry"}function Xke(t,e,n){var r=e.items,i=Math.max(0,e.width||0),s=Math.max(0,e.height||0),o=new Jn().set(0,0,i,s),u=o.clone(),a=o.clone(),l=[],c,f,x,h,p,m;for(p=0,m=r.length;p<m;++p)switch(f=r[p],f.role){case J$:h=wke(f)?u:a,h.union(Ike(t,f,i,s));break;case Z$:c=f;break;case eB:l.push(zke(t,f));break;case _ke:case Cke:case $Z:case BZ:case kZ:case PZ:case MZ:case jZ:u.union(f.bounds),a.union(f.bounds);break;default:o.union(f.bounds)}if(l.length){const g={};l.forEach(y=>{x=y.orient||Jo,x!==tB&&(g[x]||(g[x]=[])).push(y)});for(const y in g){const E=g[y];ree(t,E,Hke(E,y,n.legends,u,a,i,s))}l.forEach(y=>{const E=y.bounds;if(E.equals(y._bounds)||(y.bounds=y._bounds,t.dirty(y),y.bounds=E,t.dirty(y)),n.autosize&&(n.autosize.type===UZ||n.autosize.type===qZ||n.autosize.type===HZ))switch(y.orient){case Ko:case Jo:o.add(E.x1,0).add(E.x2,0);break;case zp:case yc:o.add(0,E.y1).add(0,E.y2)}else o.union(E)})}o.union(u).union(a),c&&o.union(Vke(t,c,i,s,o)),e.clip&&o.set(0,0,e.width||0,e.height||0),Kke(t,e,o,n)}function Kke(t,e,n,r){const i=r.autosize||{},s=i.type;if(t._autosize<1||!s)return;let o=t._width,u=t._height,a=Math.max(0,e.width||0),l=Math.max(0,Math.ceil(-n.x1)),c=Math.max(0,e.height||0),f=Math.max(0,Math.ceil(-n.y1));const x=Math.max(0,Math.ceil(n.x2-a)),h=Math.max(0,Math.ceil(n.y2-c));if(i.contains===bke){const p=t.padding();o-=p.left+p.right,u-=p.top+p.bottom}s===tB?(l=0,f=0,a=o,c=u):s===UZ?(a=Math.max(0,o-l-x),c=Math.max(0,u-f-h)):s===qZ?(a=Math.max(0,o-l-x),u=c+f+h):s===HZ?(o=a+l+x,c=Math.max(0,u-f-h)):s===Rke&&(o=a+l+x,u=c+f+h),t._resizeView(o,u,a,c,[l,f],i.resize)}const Jke=Object.freeze(Object.defineProperty({__proto__:null,bound:zZ,identifier:iB,mark:GZ,overlap:WZ,render:ZZ,viewlayout:see},Symbol.toStringTag,{value:"Module"}));function oee(t){pe.call(this,null,t)}Fe(oee,pe,{transform(t,e){if(this.value&&!t.modified())return e.StopPropagation;var n=e.dataflow.locale(),r=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=this.value,s=t.scale,o=t.count==null?t.values?t.values.length:10:t.count,u=s$(s,o,t.minstep),a=t.format||uJ(n,s,u,t.formatSpecifier,t.formatType,!!t.values),l=t.values?oJ(s,t.values,u):o$(s,u);return i&&(r.rem=i),i=l.map((c,f)=>Lt({index:f/(l.length-1||1),value:c,label:a(c)})),t.extra&&i.length&&i.push(Lt({index:-1,extra:{value:i[0].value},label:""})),r.source=i,r.add=i,this.value=i,r}});function uee(t){pe.call(this,null,t)}function Zke(){return Lt({})}function e8e(t){const e=ny().test(n=>n.exit);return e.lookup=n=>e.get(t(n)),e}Fe(uee,pe,{transform(t,e){var n=e.dataflow,r=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=t.item||Zke,s=t.key||Ze,o=this.value;return _e(r.encode)&&(r.encode=null),o&&(t.modified("key")||e.modified(s))&&ve("DataJoin does not support modified key function or fields."),o||(e=e.addAll(),this.value=o=e8e(s)),e.visit(e.ADD,u=>{const a=s(u);let l=o.get(a);l?l.exit?(o.empty--,r.add.push(l)):r.mod.push(l):(l=i(u),o.set(a,l),r.add.push(l)),l.datum=u,l.exit=!1}),e.visit(e.MOD,u=>{const a=s(u),l=o.get(a);l&&(l.datum=u,r.mod.push(l))}),e.visit(e.REM,u=>{const a=s(u),l=o.get(a);u===l.datum&&!l.exit&&(r.rem.push(l),l.exit=!0,++o.empty)}),e.changed(e.ADD_MOD)&&r.modifies("datum"),(e.clean()||t.clean&&o.empty>n.cleanThreshold)&&n.runAfter(o.clean),r}});function aee(t){pe.call(this,null,t)}Fe(aee,pe,{transform(t,e){var n=e.fork(e.ADD_REM),r=t.mod||!1,i=t.encoders,s=e.encode;if(_e(s))if(n.changed()||s.every(f=>i[f]))s=s[0],n.encode=null;else return e.StopPropagation;var o=s==="enter",u=i.update||Sx,a=i.enter||Sx,l=i.exit||Sx,c=(s&&!o?i[s]:u)||Sx;if(e.changed(e.ADD)&&(e.visit(e.ADD,f=>{a(f,t),u(f,t)}),n.modifies(a.output),n.modifies(u.output),c!==Sx&&c!==u&&(e.visit(e.ADD,f=>{c(f,t)}),n.modifies(c.output))),e.changed(e.REM)&&l!==Sx&&(e.visit(e.REM,f=>{l(f,t)}),n.modifies(l.output)),o||c!==Sx){const f=e.MOD|(t.modified()?e.REFLOW:0);o?(e.visit(f,x=>{const h=a(x,t)||r;(c(x,t)||h)&&n.mod.push(x)}),n.mod.length&&n.modifies(a.output)):e.visit(f,x=>{(c(x,t)||r)&&n.mod.push(x)}),n.mod.length&&n.modifies(c.output)}return n.changed()?n:e.StopPropagation}});function lee(t){pe.call(this,[],t)}Fe(lee,pe,{transform(t,e){if(this.value!=null&&!t.modified())return e.StopPropagation;var n=e.dataflow.locale(),r=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=this.value,s=t.type||_T,o=t.scale,u=+t.limit,a=s$(o,t.count==null?5:t.count,t.minstep),l=!!t.values||s===_T,c=t.format||fJ(n,o,a,s,t.formatSpecifier,t.formatType,l),f=t.values||cJ(o,a),x,h,p,m,g;return i&&(r.rem=i),s===_T?(u&&f.length>u?(e.dataflow.warn("Symbol legend count exceeds limit, filtering items."),i=f.slice(0,u-1),g=!0):i=f,ct(p=t.size)?(!t.values&&o(i[0])===0&&(i=i.slice(1)),m=i.reduce((y,E)=>Math.max(y,p(E,t)),0)):p=Ei(m=p||8),i=i.map((y,E)=>Lt({index:E,label:c(y,E,i),value:y,offset:m,size:p(y,t)})),g&&(g=f[i.length],i.push(Lt({index:i.length,label:`…${f.length-i.length} entries`,value:g,offset:m,size:p(g,t)})))):s===E$e?(x=o.domain(),h=eJ(o,x[0],vt(x)),f.length<3&&!t.values&&x[0]!==vt(x)&&(f=[x[0],vt(x)]),i=f.map((y,E)=>Lt({index:E,label:c(y,E,f),value:y,perc:h(y)}))):(p=f.length-1,h=D$e(o),i=f.map((y,E)=>Lt({index:E,label:c(y,E,f),value:y,perc:E?h(y):0,perc2:E===p?1:h(f[E+1])}))),r.source=i,r.add=i,this.value=i,r}});const t8e=t=>t.source.x,n8e=t=>t.source.y,r8e=t=>t.target.x,i8e=t=>t.target.y;function sB(t){pe.call(this,{},t)}sB.Definition={type:"LinkPath",metadata:{modifies:!0},params:[{name:"sourceX",type:"field",default:"source.x"},{name:"sourceY",type:"field",default:"source.y"},{name:"targetX",type:"field",default:"target.x"},{name:"targetY",type:"field",default:"target.y"},{name:"orient",type:"enum",default:"vertical",values:["horizontal","vertical","radial"]},{name:"shape",type:"enum",default:"line",values:["line","arc","curve","diagonal","orthogonal"]},{name:"require",type:"signal"},{name:"as",type:"string",default:"path"}]},Fe(sB,pe,{transform(t,e){var n=t.sourceX||t8e,r=t.sourceY||n8e,i=t.targetX||r8e,s=t.targetY||i8e,o=t.as||"path",u=t.orient||"vertical",a=t.shape||"line",l=dee.get(a+"-"+u)||dee.get(a);return l||ve("LinkPath unsupported type: "+t.shape+(t.orient?"-"+t.orient:"")),e.visit(e.SOURCE,c=>{c[o]=l(n(c),r(c),i(c),s(c))}),e.reflow(t.modified()).modifies(o)}});const cee=(t,e,n,r)=>"M"+t+","+e+"L"+n+","+r,s8e=(t,e,n,r)=>cee(e*Math.cos(t),e*Math.sin(t),r*Math.cos(n),r*Math.sin(n)),fee=(t,e,n,r)=>{var i=n-t,s=r-e,o=Math.sqrt(i*i+s*s)/2,u=180*Math.atan2(s,i)/Math.PI;return"M"+t+","+e+"A"+o+","+o+" "+u+" 0 1 "+n+","+r},o8e=(t,e,n,r)=>fee(e*Math.cos(t),e*Math.sin(t),r*Math.cos(n),r*Math.sin(n)),xee=(t,e,n,r)=>{const i=n-t,s=r-e,o=.2*(i+s),u=.2*(s-i);return"M"+t+","+e+"C"+(t+o)+","+(e+u)+" "+(n+u)+","+(r-o)+" "+n+","+r},dee=ny({line:cee,"line-radial":s8e,arc:fee,"arc-radial":o8e,curve:xee,"curve-radial":(t,e,n,r)=>xee(e*Math.cos(t),e*Math.sin(t),r*Math.cos(n),r*Math.sin(n)),"orthogonal-horizontal":(t,e,n,r)=>"M"+t+","+e+"V"+r+"H"+n,"orthogonal-vertical":(t,e,n,r)=>"M"+t+","+e+"H"+n+"V"+r,"orthogonal-radial":(t,e,n,r)=>{const i=Math.cos(t),s=Math.sin(t),o=Math.cos(n),u=Math.sin(n),a=Math.abs(n-t)>Math.PI?n<=t:n>t;return"M"+e*i+","+e*s+"A"+e+","+e+" 0 0,"+(a?1:0)+" "+e*o+","+e*u+"L"+r*o+","+r*u},"diagonal-horizontal":(t,e,n,r)=>{const i=(t+n)/2;return"M"+t+","+e+"C"+i+","+e+" "+i+","+r+" "+n+","+r},"diagonal-vertical":(t,e,n,r)=>{const i=(e+r)/2;return"M"+t+","+e+"C"+t+","+i+" "+n+","+i+" "+n+","+r},"diagonal-radial":(t,e,n,r)=>{const i=Math.cos(t),s=Math.sin(t),o=Math.cos(n),u=Math.sin(n),a=(e+r)/2;return"M"+e*i+","+e*s+"C"+a*i+","+a*s+" "+a*o+","+a*u+" "+r*o+","+r*u}});function oB(t){pe.call(this,null,t)}oB.Definition={type:"Pie",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"startAngle",type:"number",default:0},{name:"endAngle",type:"number",default:6.283185307179586},{name:"sort",type:"boolean",default:!1},{name:"as",type:"string",array:!0,length:2,default:["startAngle","endAngle"]}]},Fe(oB,pe,{transform(t,e){var n=t.as||["startAngle","endAngle"],r=n[0],i=n[1],s=t.field||ty,o=t.startAngle||0,u=t.endAngle!=null?t.endAngle:2*Math.PI,a=e.source,l=a.map(s),c=l.length,f=o,x=(u-o)/oV(l),h=Fs(c),p,m,g;for(t.sort&&h.sort((y,E)=>l[y]-l[E]),p=0;p<c;++p)g=l[h[p]],m=a[h[p]],m[r]=f,m[i]=f+=g*x;return this.value=l,e.reflow(t.modified()).modifies(n)}});const u8e=5;function a8e(t){const e=t.type;return!t.bins&&(e===$p||e===Py||e===My)}function hee(t){return n$(t)&&t!==sa}const l8e=Xu(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function pee(t){pe.call(this,null,t),this.modified(!0)}Fe(pee,pe,{transform(t,e){var n=e.dataflow,r=this.value,i=c8e(t);(!r||i!==r.type)&&(this.value=r=Ot(i)());for(i in t)if(!l8e[i]){if(i==="padding"&&hee(r.type))continue;ct(r[i])?r[i](t[i]):n.warn("Unsupported scale property: "+i)}return g8e(r,t,p8e(r,t,x8e(r,t,n))),e.fork(e.NO_SOURCE|e.NO_FIELDS)}});function c8e(t){var e=t.type,n="",r;return e===sa?sa+"-"+$p:(f8e(t)&&(r=t.rawDomain?t.rawDomain.length:t.domain?t.domain.length+ +(t.domainMid!=null):0,n=r===2?sa+"-":r===3?Bp+"-":""),(n+e||$p).toLowerCase())}function f8e(t){const e=t.type;return n$(e)&&e!==Mx&&e!==jx&&(t.scheme||t.range&&t.range.length&&t.range.every(je))}function x8e(t,e,n){const r=d8e(t,e.domainRaw,n);if(r>-1)return r;var i=e.domain,s=t.type,o=e.zero||e.zero===void 0&&a8e(t),u,a;if(!i)return 0;if(hee(s)&&e.padding&&i[0]!==vt(i)&&(i=h8e(s,i,e.range,e.padding,e.exponent,e.constant)),(o||e.domainMin!=null||e.domainMax!=null||e.domainMid!=null)&&(u=(i=i.slice()).length-1||1,o&&(i[0]>0&&(i[0]=0),i[u]<0&&(i[u]=0)),e.domainMin!=null&&(i[0]=e.domainMin),e.domainMax!=null&&(i[u]=e.domainMax),e.domainMid!=null)){a=e.domainMid;const l=a>i[u]?u+1:a<i[0]?0:u;l!==u&&n.warn("Scale domainMid exceeds domain min or max.",a),i.splice(l,0,a)}return t.domain(gee(s,i,n)),s===KI&&t.unknown(e.domainImplicit?_I:void 0),e.nice&&t.nice&&t.nice(e.nice!==!0&&s$(t,e.nice)||null),i.length}function d8e(t,e,n){return e?(t.domain(gee(t.type,e,n)),e.length):-1}function h8e(t,e,n,r,i,s){var o=Math.abs(vt(n)-n[0]),u=o/(o-2*r),a=t===Tl?BW(e,null,u):t===My?W4(e,null,u,.5):t===Py?W4(e,null,u,i||1):t===ET?kW(e,null,u,s||1):$W(e,null,u);return e=e.slice(),e[0]=a[0],e[e.length-1]=a[1],e}function gee(t,e,n){if(KK(t)){var r=Math.abs(e.reduce((i,s)=>i+(s<0?-1:s>0?1:0),0));r!==e.length&&n.warn("Log scale domain includes zero: "+we(e))}return e}function p8e(t,e,n){let r=e.bins;if(r&&!_e(r)){const i=t.domain(),s=i[0],o=vt(i),u=r.step;let a=r.start==null?s:r.start,l=r.stop==null?o:r.stop;u||ve("Scale bins parameter missing step property."),a<s&&(a=u*Math.ceil(s/u)),l>o&&(l=u*Math.floor(o/u)),r=Fs(a,l+u/2,u)}return r?t.bins=r:t.bins&&delete t.bins,t.type===ZI&&(r?!e.domain&&!e.domainRaw&&(t.domain(r),n=r.length):t.bins=t.domain()),n}function g8e(t,e,n){var r=t.type,i=e.round||!1,s=e.range;if(e.rangeStep!=null)s=m8e(r,e,n);else if(e.scheme&&(s=y8e(r,e,n),ct(s))){if(t.interpolator)return t.interpolator(s);ve(`Scale type ${r} does not support interpolating color schemes.`)}if(s&&JK(r))return t.interpolator(i$(uB(s,e.reverse),e.interpolate,e.interpolateGamma));s&&e.interpolate&&t.interpolate?t.interpolate(tJ(e.interpolate,e.interpolateGamma)):ct(t.round)?t.round(i):ct(t.rangeRound)&&t.interpolate(i?By:lc),s&&t.range(uB(s,e.reverse))}function m8e(t,e,n){t!==QK&&t!==JI&&ve("Only band and point scales support rangeStep.");var r=(e.paddingOuter!=null?e.paddingOuter:e.padding)||0,i=t===JI?1:(e.paddingInner!=null?e.paddingInner:e.padding)||0;return[0,e.rangeStep*XI(n,i,r)]}function y8e(t,e,n){var r=e.schemeExtent,i,s;return _e(e.scheme)?s=i$(e.scheme,e.interpolate,e.interpolateGamma):(i=e.scheme.toLowerCase(),s=sJ(i),s||ve(`Unrecognized scheme name: ${e.scheme}`)),n=t===ST?n+1:t===ZI?n-1:t===kp||t===AT?+e.schemeCount||u8e:n,JK(t)?mee(s,r,e.reverse):ct(s)?h$e(mee(s,r),n):t===KI?s:s.slice(0,n)}function mee(t,e,n){return ct(t)&&(e||n)?d$e(t,uB(e||[0,1],n)):t}function uB(t,e){return e?t.slice().reverse():t}function yee(t){pe.call(this,null,t)}Fe(yee,pe,{transform(t,e){const n=t.modified("sort")||e.changed(e.ADD)||e.modified(t.sort.fields)||e.modified("datum");return n&&e.source.sort(Nx(t.sort)),this.modified(n),e}});const Eee="zero",Aee="center",See="normalize",vee=["y0","y1"];function aB(t){pe.call(this,null,t)}aB.Definition={type:"Stack",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"groupby",type:"field",array:!0},{name:"sort",type:"compare"},{name:"offset",type:"enum",default:Eee,values:[Eee,Aee,See]},{name:"as",type:"string",array:!0,length:2,default:vee}]},Fe(aB,pe,{transform(t,e){var n=t.as||vee,r=n[0],i=n[1],s=Nx(t.sort),o=t.field||ty,u=t.offset===Aee?E8e:t.offset===See?A8e:S8e,a,l,c,f;for(a=v8e(e.source,t.groupby,s,o),l=0,c=a.length,f=a.max;l<c;++l)u(a[l],f,o,r,i);return e.reflow(t.modified()).modifies(n)}});function E8e(t,e,n,r,i){for(var s=(e-t.sum)/2,o=t.length,u=0,a;u<o;++u)a=t[u],a[r]=s,a[i]=s+=Math.abs(n(a))}function A8e(t,e,n,r,i){for(var s=1/t.sum,o=0,u=t.length,a=0,l=0,c;a<u;++a)c=t[a],c[r]=o,c[i]=o=s*(l+=Math.abs(n(c)))}function S8e(t,e,n,r,i){for(var s=0,o=0,u=t.length,a=0,l,c;a<u;++a)c=t[a],l=+n(c),l<0?(c[r]=o,c[i]=o+=l):(c[r]=s,c[i]=s+=l)}function v8e(t,e,n,r){var i=[],s=m=>m(c),o,u,a,l,c,f,x,h,p;if(e==null)i.push(t.slice());else for(o={},u=0,a=t.length;u<a;++u)c=t[u],f=e.map(s),x=o[f],x||(o[f]=x=[],i.push(x)),x.push(c);for(f=0,p=0,l=i.length;f<l;++f){for(x=i[f],u=0,h=0,a=x.length;u<a;++u)h+=Math.abs(r(x[u]));x.sum=h,h>p&&(p=h),n&&x.sort(n)}return i.max=p,i}const _8e=Object.freeze(Object.defineProperty({__proto__:null,axisticks:oee,datajoin:uee,encode:aee,legendentries:lee,linkpath:sB,pie:oB,scale:pee,sortitems:yee,stack:aB},Symbol.toStringTag,{value:"Module"}));var tt=1e-6,nR=1e-12,ht=Math.PI,Nn=ht/2,rR=ht/4,bi=ht*2,Bn=180/ht,dt=ht/180,yt=Math.abs,Wp=Math.atan,ho=Math.atan2,nt=Math.cos,iR=Math.ceil,_ee=Math.exp,lB=Math.hypot,sR=Math.log,cB=Math.pow,Xe=Math.sin,po=Math.sign||function(t){return t>0?1:t<0?-1:0},Ti=Math.sqrt,fB=Math.tan;function Cee(t){return t>1?0:t<-1?ht:Math.acos(t)}function rs(t){return t>1?Nn:t<-1?-Nn:Math.asin(t)}function Fr(){}function oR(t,e){t&&Tee.hasOwnProperty(t.type)&&Tee[t.type](t,e)}var bee={Feature:function(t,e){oR(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r<i;)oR(n[r].geometry,e)}},Tee={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)t=n[r],e.point(t[0],t[1],t[2])},LineString:function(t,e){xB(t.coordinates,e,0)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)xB(n[r],e,0)},Polygon:function(t,e){Ree(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)Ree(n[r],e)},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,i=n.length;++r<i;)oR(n[r],e)}};function xB(t,e,n){var r=-1,i=t.length-n,s;for(e.lineStart();++r<i;)s=t[r],e.point(s[0],s[1],s[2]);e.lineEnd()}function Ree(t,e){var n=-1,r=t.length;for(e.polygonStart();++n<r;)xB(t[n],e,1);e.polygonEnd()}function Fl(t,e){t&&bee.hasOwnProperty(t.type)?bee[t.type](t,e):oR(t,e)}var uR=new Ai,aR=new Ai,Oee,Nee,dB,hB,pB,fa={point:Fr,lineStart:Fr,lineEnd:Fr,polygonStart:function(){uR=new Ai,fa.lineStart=C8e,fa.lineEnd=b8e},polygonEnd:function(){var t=+uR;aR.add(t<0?bi+t:t),this.lineStart=this.lineEnd=this.point=Fr},sphere:function(){aR.add(bi)}};function C8e(){fa.point=T8e}function b8e(){Dee(Oee,Nee)}function T8e(t,e){fa.point=Dee,Oee=t,Nee=e,t*=dt,e*=dt,dB=t,hB=nt(e=e/2+rR),pB=Xe(e)}function Dee(t,e){t*=dt,e*=dt,e=e/2+rR;var n=t-dB,r=n>=0?1:-1,i=r*n,s=nt(e),o=Xe(e),u=pB*o,a=hB*s+u*nt(i),l=u*r*Xe(i);uR.add(ho(l,a)),dB=t,hB=s,pB=o}function R8e(t){return aR=new Ai,Fl(t,fa),aR*2}function lR(t){return[ho(t[1],t[0]),rs(t[2])]}function Kx(t){var e=t[0],n=t[1],r=nt(n);return[r*nt(e),r*Xe(e),Xe(n)]}function cR(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Vp(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function gB(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function fR(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function xR(t){var e=Ti(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var pn,is,Dn,$s,Jx,Fee,wee,Yp,rE,Sc,wl,Ll={point:mB,lineStart:Iee,lineEnd:$ee,polygonStart:function(){Ll.point=Bee,Ll.lineStart=O8e,Ll.lineEnd=N8e,rE=new Ai,fa.polygonStart()},polygonEnd:function(){fa.polygonEnd(),Ll.point=mB,Ll.lineStart=Iee,Ll.lineEnd=$ee,uR<0?(pn=-(Dn=180),is=-($s=90)):rE>tt?$s=90:rE<-tt&&(is=-90),wl[0]=pn,wl[1]=Dn},sphere:function(){pn=-(Dn=180),is=-($s=90)}};function mB(t,e){Sc.push(wl=[pn=t,Dn=t]),e<is&&(is=e),e>$s&&($s=e)}function Lee(t,e){var n=Kx([t*dt,e*dt]);if(Yp){var r=Vp(Yp,n),i=[r[1],-r[0],0],s=Vp(i,r);xR(s),s=lR(s);var o=t-Jx,u=o>0?1:-1,a=s[0]*Bn*u,l,c=yt(o)>180;c^(u*Jx<a&&a<u*t)?(l=s[1]*Bn,l>$s&&($s=l)):(a=(a+360)%360-180,c^(u*Jx<a&&a<u*t)?(l=-s[1]*Bn,l<is&&(is=l)):(e<is&&(is=e),e>$s&&($s=e))),c?t<Jx?Bs(pn,t)>Bs(pn,Dn)&&(Dn=t):Bs(t,Dn)>Bs(pn,Dn)&&(pn=t):Dn>=pn?(t<pn&&(pn=t),t>Dn&&(Dn=t)):t>Jx?Bs(pn,t)>Bs(pn,Dn)&&(Dn=t):Bs(t,Dn)>Bs(pn,Dn)&&(pn=t)}else Sc.push(wl=[pn=t,Dn=t]);e<is&&(is=e),e>$s&&($s=e),Yp=n,Jx=t}function Iee(){Ll.point=Lee}function $ee(){wl[0]=pn,wl[1]=Dn,Ll.point=mB,Yp=null}function Bee(t,e){if(Yp){var n=t-Jx;rE.add(yt(n)>180?n+(n>0?360:-360):n)}else Fee=t,wee=e;fa.point(t,e),Lee(t,e)}function O8e(){fa.lineStart()}function N8e(){Bee(Fee,wee),fa.lineEnd(),yt(rE)>tt&&(pn=-(Dn=180)),wl[0]=pn,wl[1]=Dn,Yp=null}function Bs(t,e){return(e-=t)<0?e+360:e}function D8e(t,e){return t[0]-e[0]}function kee(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:e<t[0]||t[1]<e}function F8e(t){var e,n,r,i,s,o,u;if($s=Dn=-(pn=is=1/0),Sc=[],Fl(t,Ll),n=Sc.length){for(Sc.sort(D8e),e=1,r=Sc[0],s=[r];e<n;++e)i=Sc[e],kee(r,i[0])||kee(r,i[1])?(Bs(r[0],i[1])>Bs(r[0],r[1])&&(r[1]=i[1]),Bs(i[0],r[1])>Bs(r[0],r[1])&&(r[0]=i[0])):s.push(r=i);for(o=-1/0,n=s.length-1,e=0,r=s[n];e<=n;r=i,++e)i=s[e],(u=Bs(r[1],i[0]))>o&&(o=u,pn=i[0],Dn=r[1])}return Sc=wl=null,pn===1/0||is===1/0?[[NaN,NaN],[NaN,NaN]]:[[pn,is],[Dn,$s]]}var iE,dR,hR,pR,gR,mR,yR,ER,yB,EB,AB,Pee,Mee,Ri,Oi,Ni,Zo={sphere:Fr,point:SB,lineStart:jee,lineEnd:Uee,polygonStart:function(){Zo.lineStart=I8e,Zo.lineEnd=$8e},polygonEnd:function(){Zo.lineStart=jee,Zo.lineEnd=Uee}};function SB(t,e){t*=dt,e*=dt;var n=nt(e);sE(n*nt(t),n*Xe(t),Xe(e))}function sE(t,e,n){++iE,hR+=(t-hR)/iE,pR+=(e-pR)/iE,gR+=(n-gR)/iE}function jee(){Zo.point=w8e}function w8e(t,e){t*=dt,e*=dt;var n=nt(e);Ri=n*nt(t),Oi=n*Xe(t),Ni=Xe(e),Zo.point=L8e,sE(Ri,Oi,Ni)}function L8e(t,e){t*=dt,e*=dt;var n=nt(e),r=n*nt(t),i=n*Xe(t),s=Xe(e),o=ho(Ti((o=Oi*s-Ni*i)*o+(o=Ni*r-Ri*s)*o+(o=Ri*i-Oi*r)*o),Ri*r+Oi*i+Ni*s);dR+=o,mR+=o*(Ri+(Ri=r)),yR+=o*(Oi+(Oi=i)),ER+=o*(Ni+(Ni=s)),sE(Ri,Oi,Ni)}function Uee(){Zo.point=SB}function I8e(){Zo.point=B8e}function $8e(){qee(Pee,Mee),Zo.point=SB}function B8e(t,e){Pee=t,Mee=e,t*=dt,e*=dt,Zo.point=qee;var n=nt(e);Ri=n*nt(t),Oi=n*Xe(t),Ni=Xe(e),sE(Ri,Oi,Ni)}function qee(t,e){t*=dt,e*=dt;var n=nt(e),r=n*nt(t),i=n*Xe(t),s=Xe(e),o=Oi*s-Ni*i,u=Ni*r-Ri*s,a=Ri*i-Oi*r,l=lB(o,u,a),c=rs(l),f=l&&-c/l;yB.add(f*o),EB.add(f*u),AB.add(f*a),dR+=c,mR+=c*(Ri+(Ri=r)),yR+=c*(Oi+(Oi=i)),ER+=c*(Ni+(Ni=s)),sE(Ri,Oi,Ni)}function k8e(t){iE=dR=hR=pR=gR=mR=yR=ER=0,yB=new Ai,EB=new Ai,AB=new Ai,Fl(t,Zo);var e=+yB,n=+EB,r=+AB,i=lB(e,n,r);return i<nR&&(e=mR,n=yR,r=ER,dR<tt&&(e=hR,n=pR,r=gR),i=lB(e,n,r),i<nR)?[NaN,NaN]:[ho(n,e)*Bn,rs(r/i)*Bn]}function vB(t,e){function n(r,i){return r=t(r,i),e(r[0],r[1])}return t.invert&&e.invert&&(n.invert=function(r,i){return r=e.invert(r,i),r&&t.invert(r[0],r[1])}),n}function _B(t,e){return yt(t)>ht&&(t-=Math.round(t/bi)*bi),[t,e]}_B.invert=_B;function Hee(t,e,n){return(t%=bi)?e||n?vB(Qee(t),Gee(e,n)):Qee(t):e||n?Gee(e,n):_B}function zee(t){return function(e,n){return e+=t,yt(e)>ht&&(e-=Math.round(e/bi)*bi),[e,n]}}function Qee(t){var e=zee(t);return e.invert=zee(-t),e}function Gee(t,e){var n=nt(t),r=Xe(t),i=nt(e),s=Xe(e);function o(u,a){var l=nt(a),c=nt(u)*l,f=Xe(u)*l,x=Xe(a),h=x*n+c*r;return[ho(f*i-h*s,c*n-x*r),rs(h*i+f*s)]}return o.invert=function(u,a){var l=nt(a),c=nt(u)*l,f=Xe(u)*l,x=Xe(a),h=x*i-f*s;return[ho(f*i+x*s,c*n+h*r),rs(h*n-c*r)]},o}function P8e(t){t=Hee(t[0]*dt,t[1]*dt,t.length>2?t[2]*dt:0);function e(n){return n=t(n[0]*dt,n[1]*dt),n[0]*=Bn,n[1]*=Bn,n}return e.invert=function(n){return n=t.invert(n[0]*dt,n[1]*dt),n[0]*=Bn,n[1]*=Bn,n},e}function M8e(t,e,n,r,i,s){if(n){var o=nt(e),u=Xe(e),a=r*n;i==null?(i=e+r*bi,s=e-a/2):(i=Wee(o,i),s=Wee(o,s),(r>0?i<s:i>s)&&(i+=r*bi));for(var l,c=i;r>0?c>s:c<s;c-=a)l=lR([o,-u*nt(c),-u*Xe(c)]),t.point(l[0],l[1])}}function Wee(t,e){e=Kx(e),e[0]-=t,xR(e);var n=Cee(-e[1]);return((-e[2]<0?-n:n)+bi-tt)%bi}function Vee(){var t=[],e;return{point:function(n,r,i){e.push([n,r,i])},lineStart:function(){t.push(e=[])},lineEnd:Fr,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function AR(t,e){return yt(t[0]-e[0])<tt&&yt(t[1]-e[1])<tt}function SR(t,e,n,r){this.x=t,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function Yee(t,e,n,r,i){var s=[],o=[],u,a;if(t.forEach(function(p){if(!((m=p.length-1)<=0)){var m,g=p[0],y=p[m],E;if(AR(g,y)){if(!g[2]&&!y[2]){for(i.lineStart(),u=0;u<m;++u)i.point((g=p[u])[0],g[1]);i.lineEnd();return}y[0]+=2*tt}s.push(E=new SR(g,p,null,!0)),o.push(E.o=new SR(g,null,E,!1)),s.push(E=new SR(y,p,null,!1)),o.push(E.o=new SR(y,null,E,!0))}}),!!s.length){for(o.sort(e),Xee(s),Xee(o),u=0,a=o.length;u<a;++u)o[u].e=n=!n;for(var l=s[0],c,f;;){for(var x=l,h=!0;x.v;)if((x=x.n)===l)return;c=x.z,i.lineStart();do{if(x.v=x.o.v=!0,x.e){if(h)for(u=0,a=c.length;u<a;++u)i.point((f=c[u])[0],f[1]);else r(x.x,x.n.x,1,i);x=x.n}else{if(h)for(c=x.p.z,u=c.length-1;u>=0;--u)i.point((f=c[u])[0],f[1]);else r(x.x,x.p.x,-1,i);x=x.p}x=x.o,c=x.z,h=!h}while(!x.v);i.lineEnd()}}}function Xee(t){if(e=t.length){for(var e,n=0,r=t[0],i;++n<e;)r.n=i=t[n],i.p=r,r=i;r.n=i=t[0],i.p=r}}function CB(t){return yt(t[0])<=ht?t[0]:po(t[0])*((yt(t[0])+ht)%bi-ht)}function j8e(t,e){var n=CB(e),r=e[1],i=Xe(r),s=[Xe(n),-nt(n),0],o=0,u=0,a=new Ai;i===1?r=Nn+tt:i===-1&&(r=-Nn-tt);for(var l=0,c=t.length;l<c;++l)if(x=(f=t[l]).length)for(var f,x,h=f[x-1],p=CB(h),m=h[1]/2+rR,g=Xe(m),y=nt(m),E=0;E<x;++E,p=S,g=_,y=C,h=A){var A=f[E],S=CB(A),v=A[1]/2+rR,_=Xe(v),C=nt(v),b=S-p,R=b>=0?1:-1,O=R*b,L=O>ht,M=g*_;if(a.add(ho(M*R*Xe(O),y*C+M*nt(O))),o+=L?b+R*bi:b,L^p>=n^S>=n){var q=Vp(Kx(h),Kx(A));xR(q);var W=Vp(s,q);xR(W);var B=(L^b>=0?-1:1)*rs(W[2]);(r>B||r===B&&(q[0]||q[1]))&&(u+=L^b>=0?1:-1)}}return(o<-tt||o<tt&&a<-nR)^u&1}function Kee(t,e,n,r){return function(i){var s=e(i),o=Vee(),u=e(o),a=!1,l,c,f,x={point:h,lineStart:m,lineEnd:g,polygonStart:function(){x.point=y,x.lineStart=E,x.lineEnd=A,c=[],l=[]},polygonEnd:function(){x.point=h,x.lineStart=m,x.lineEnd=g,c=sV(c);var S=j8e(l,r);c.length?(a||(i.polygonStart(),a=!0),Yee(c,q8e,S,n,i)):S&&(a||(i.polygonStart(),a=!0),i.lineStart(),n(null,null,1,i),i.lineEnd()),a&&(i.polygonEnd(),a=!1),c=l=null},sphere:function(){i.polygonStart(),i.lineStart(),n(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function h(S,v){t(S,v)&&i.point(S,v)}function p(S,v){s.point(S,v)}function m(){x.point=p,s.lineStart()}function g(){x.point=h,s.lineEnd()}function y(S,v){f.push([S,v]),u.point(S,v)}function E(){u.lineStart(),f=[]}function A(){y(f[0][0],f[0][1]),u.lineEnd();var S=u.clean(),v=o.result(),_,C=v.length,b,R,O;if(f.pop(),l.push(f),f=null,!!C){if(S&1){if(R=v[0],(b=R.length-1)>0){for(a||(i.polygonStart(),a=!0),i.lineStart(),_=0;_<b;++_)i.point((O=R[_])[0],O[1]);i.lineEnd()}return}C>1&&S&2&&v.push(v.pop().concat(v.shift())),c.push(v.filter(U8e))}}return x}}function U8e(t){return t.length>1}function q8e(t,e){return((t=t.x)[0]<0?t[1]-Nn-tt:Nn-t[1])-((e=e.x)[0]<0?e[1]-Nn-tt:Nn-e[1])}const Jee=Kee(function(){return!0},H8e,Q8e,[-ht,-Nn]);function H8e(t){var e=NaN,n=NaN,r=NaN,i;return{lineStart:function(){t.lineStart(),i=1},point:function(s,o){var u=s>0?ht:-ht,a=yt(s-e);yt(a-ht)<tt?(t.point(e,n=(n+o)/2>0?Nn:-Nn),t.point(r,n),t.lineEnd(),t.lineStart(),t.point(u,n),t.point(s,n),i=0):r!==u&&a>=ht&&(yt(e-r)<tt&&(e-=r*tt),yt(s-u)<tt&&(s-=u*tt),n=z8e(e,n,s,o),t.point(r,n),t.lineEnd(),t.lineStart(),t.point(u,n),i=0),t.point(e=s,n=o),r=u},lineEnd:function(){t.lineEnd(),e=n=NaN},clean:function(){return 2-i}}}function z8e(t,e,n,r){var i,s,o=Xe(t-n);return yt(o)>tt?Wp((Xe(e)*(s=nt(r))*Xe(n)-Xe(r)*(i=nt(e))*Xe(t))/(i*s*o)):(e+r)/2}function Q8e(t,e,n,r){var i;if(t==null)i=n*Nn,r.point(-ht,i),r.point(0,i),r.point(ht,i),r.point(ht,0),r.point(ht,-i),r.point(0,-i),r.point(-ht,-i),r.point(-ht,0),r.point(-ht,i);else if(yt(t[0]-e[0])>tt){var s=t[0]<e[0]?ht:-ht;i=n*s/2,r.point(-s,i),r.point(0,i),r.point(s,i)}else r.point(e[0],e[1])}function G8e(t){var e=nt(t),n=6*dt,r=e>0,i=yt(e)>tt;function s(c,f,x,h){M8e(h,t,n,x,c,f)}function o(c,f){return nt(c)*nt(f)>e}function u(c){var f,x,h,p,m;return{lineStart:function(){p=h=!1,m=1},point:function(g,y){var E=[g,y],A,S=o(g,y),v=r?S?0:l(g,y):S?l(g+(g<0?ht:-ht),y):0;if(!f&&(p=h=S)&&c.lineStart(),S!==h&&(A=a(f,E),(!A||AR(f,A)||AR(E,A))&&(E[2]=1)),S!==h)m=0,S?(c.lineStart(),A=a(E,f),c.point(A[0],A[1])):(A=a(f,E),c.point(A[0],A[1],2),c.lineEnd()),f=A;else if(i&&f&&r^S){var _;!(v&x)&&(_=a(E,f,!0))&&(m=0,r?(c.lineStart(),c.point(_[0][0],_[0][1]),c.point(_[1][0],_[1][1]),c.lineEnd()):(c.point(_[1][0],_[1][1]),c.lineEnd(),c.lineStart(),c.point(_[0][0],_[0][1],3)))}S&&(!f||!AR(f,E))&&c.point(E[0],E[1]),f=E,h=S,x=v},lineEnd:function(){h&&c.lineEnd(),f=null},clean:function(){return m|(p&&h)<<1}}}function a(c,f,x){var h=Kx(c),p=Kx(f),m=[1,0,0],g=Vp(h,p),y=cR(g,g),E=g[0],A=y-E*E;if(!A)return!x&&c;var S=e*y/A,v=-e*E/A,_=Vp(m,g),C=fR(m,S),b=fR(g,v);gB(C,b);var R=_,O=cR(C,R),L=cR(R,R),M=O*O-L*(cR(C,C)-1);if(!(M<0)){var q=Ti(M),W=fR(R,(-O-q)/L);if(gB(W,C),W=lR(W),!x)return W;var B=c[0],G=f[0],te=c[1],K=f[1],de;G<B&&(de=B,B=G,G=de);var be=G-B,ee=yt(be-ht)<tt,U=ee||be<tt;if(!ee&&K<te&&(de=te,te=K,K=de),U?ee?te+K>0^W[1]<(yt(W[0]-B)<tt?te:K):te<=W[1]&&W[1]<=K:be>ht^(B<=W[0]&&W[0]<=G)){var T=fR(R,(-O+q)/L);return gB(T,C),[W,lR(T)]}}}function l(c,f){var x=r?t:ht-t,h=0;return c<-x?h|=1:c>x&&(h|=2),f<-x?h|=4:f>x&&(h|=8),h}return Kee(o,u,s,r?[0,-t]:[-ht,t-ht])}function W8e(t,e,n,r,i,s){var o=t[0],u=t[1],a=e[0],l=e[1],c=0,f=1,x=a-o,h=l-u,p;if(p=n-o,!(!x&&p>0)){if(p/=x,x<0){if(p<c)return;p<f&&(f=p)}else if(x>0){if(p>f)return;p>c&&(c=p)}if(p=i-o,!(!x&&p<0)){if(p/=x,x<0){if(p>f)return;p>c&&(c=p)}else if(x>0){if(p<c)return;p<f&&(f=p)}if(p=r-u,!(!h&&p>0)){if(p/=h,h<0){if(p<c)return;p<f&&(f=p)}else if(h>0){if(p>f)return;p>c&&(c=p)}if(p=s-u,!(!h&&p<0)){if(p/=h,h<0){if(p>f)return;p>c&&(c=p)}else if(h>0){if(p<c)return;p<f&&(f=p)}return c>0&&(t[0]=o+c*x,t[1]=u+c*h),f<1&&(e[0]=o+f*x,e[1]=u+f*h),!0}}}}}var oE=1e9,vR=-oE;function Zee(t,e,n,r){function i(l,c){return t<=l&&l<=n&&e<=c&&c<=r}function s(l,c,f,x){var h=0,p=0;if(l==null||(h=o(l,f))!==(p=o(c,f))||a(l,c)<0^f>0)do x.point(h===0||h===3?t:n,h>1?r:e);while((h=(h+f+4)%4)!==p);else x.point(c[0],c[1])}function o(l,c){return yt(l[0]-t)<tt?c>0?0:3:yt(l[0]-n)<tt?c>0?2:1:yt(l[1]-e)<tt?c>0?1:0:c>0?3:2}function u(l,c){return a(l.x,c.x)}function a(l,c){var f=o(l,1),x=o(c,1);return f!==x?f-x:f===0?c[1]-l[1]:f===1?l[0]-c[0]:f===2?l[1]-c[1]:c[0]-l[0]}return function(l){var c=l,f=Vee(),x,h,p,m,g,y,E,A,S,v,_,C={point:b,lineStart:M,lineEnd:q,polygonStart:O,polygonEnd:L};function b(B,G){i(B,G)&&c.point(B,G)}function R(){for(var B=0,G=0,te=h.length;G<te;++G)for(var K=h[G],de=1,be=K.length,ee=K[0],U,T,w=ee[0],k=ee[1];de<be;++de)U=w,T=k,ee=K[de],w=ee[0],k=ee[1],T<=r?k>r&&(w-U)*(r-T)>(k-T)*(t-U)&&++B:k<=r&&(w-U)*(r-T)<(k-T)*(t-U)&&--B;return B}function O(){c=f,x=[],h=[],_=!0}function L(){var B=R(),G=_&&B,te=(x=sV(x)).length;(G||te)&&(l.polygonStart(),G&&(l.lineStart(),s(null,null,1,l),l.lineEnd()),te&&Yee(x,u,B,s,l),l.polygonEnd()),c=l,x=h=p=null}function M(){C.point=W,h&&h.push(p=[]),v=!0,S=!1,E=A=NaN}function q(){x&&(W(m,g),y&&S&&f.rejoin(),x.push(f.result())),C.point=b,S&&c.lineEnd()}function W(B,G){var te=i(B,G);if(h&&p.push([B,G]),v)m=B,g=G,y=te,v=!1,te&&(c.lineStart(),c.point(B,G));else if(te&&S)c.point(B,G);else{var K=[E=Math.max(vR,Math.min(oE,E)),A=Math.max(vR,Math.min(oE,A))],de=[B=Math.max(vR,Math.min(oE,B)),G=Math.max(vR,Math.min(oE,G))];W8e(K,de,t,e,n,r)?(S||(c.lineStart(),c.point(K[0],K[1])),c.point(de[0],de[1]),te||c.lineEnd(),_=!1):te&&(c.lineStart(),c.point(B,G),_=!1)}E=B,A=G,S=te}return C}}function ete(t,e,n){var r=Fs(t,e-tt,n).concat(e);return function(i){return r.map(function(s){return[i,s]})}}function tte(t,e,n){var r=Fs(t,e-tt,n).concat(e);return function(i){return r.map(function(s){return[s,i]})}}function V8e(){var t,e,n,r,i,s,o,u,a=10,l=a,c=90,f=360,x,h,p,m,g=2.5;function y(){return{type:"MultiLineString",coordinates:E()}}function E(){return Fs(iR(r/c)*c,n,c).map(p).concat(Fs(iR(u/f)*f,o,f).map(m)).concat(Fs(iR(e/a)*a,t,a).filter(function(A){return yt(A%c)>tt}).map(x)).concat(Fs(iR(s/l)*l,i,l).filter(function(A){return yt(A%f)>tt}).map(h))}return y.lines=function(){return E().map(function(A){return{type:"LineString",coordinates:A}})},y.outline=function(){return{type:"Polygon",coordinates:[p(r).concat(m(o).slice(1),p(n).reverse().slice(1),m(u).reverse().slice(1))]}},y.extent=function(A){return arguments.length?y.extentMajor(A).extentMinor(A):y.extentMinor()},y.extentMajor=function(A){return arguments.length?(r=+A[0][0],n=+A[1][0],u=+A[0][1],o=+A[1][1],r>n&&(A=r,r=n,n=A),u>o&&(A=u,u=o,o=A),y.precision(g)):[[r,u],[n,o]]},y.extentMinor=function(A){return arguments.length?(e=+A[0][0],t=+A[1][0],s=+A[0][1],i=+A[1][1],e>t&&(A=e,e=t,t=A),s>i&&(A=s,s=i,i=A),y.precision(g)):[[e,s],[t,i]]},y.step=function(A){return arguments.length?y.stepMajor(A).stepMinor(A):y.stepMinor()},y.stepMajor=function(A){return arguments.length?(c=+A[0],f=+A[1],y):[c,f]},y.stepMinor=function(A){return arguments.length?(a=+A[0],l=+A[1],y):[a,l]},y.precision=function(A){return arguments.length?(g=+A,x=ete(s,i,90),h=tte(e,t,g),p=ete(u,o,90),m=tte(r,n,g),y):g},y.extentMajor([[-180,-90+tt],[180,90-tt]]).extentMinor([[-180,-80-tt],[180,80+tt]])}const uE=t=>t;var bB=new Ai,TB=new Ai,nte,rte,RB,OB,Il={point:Fr,lineStart:Fr,lineEnd:Fr,polygonStart:function(){Il.lineStart=Y8e,Il.lineEnd=K8e},polygonEnd:function(){Il.lineStart=Il.lineEnd=Il.point=Fr,bB.add(yt(TB)),TB=new Ai},result:function(){var t=bB/2;return bB=new Ai,t}};function Y8e(){Il.point=X8e}function X8e(t,e){Il.point=ite,nte=RB=t,rte=OB=e}function ite(t,e){TB.add(OB*t-RB*e),RB=t,OB=e}function K8e(){ite(nte,rte)}var Xp=1/0,_R=Xp,aE=-Xp,CR=aE,bR={point:J8e,lineStart:Fr,lineEnd:Fr,polygonStart:Fr,polygonEnd:Fr,result:function(){var t=[[Xp,_R],[aE,CR]];return aE=CR=-(_R=Xp=1/0),t}};function J8e(t,e){t<Xp&&(Xp=t),t>aE&&(aE=t),e<_R&&(_R=e),e>CR&&(CR=e)}var NB=0,DB=0,lE=0,TR=0,RR=0,Kp=0,FB=0,wB=0,cE=0,ste,ote,xa,da,go={point:Zx,lineStart:ute,lineEnd:ate,polygonStart:function(){go.lineStart=t7e,go.lineEnd=n7e},polygonEnd:function(){go.point=Zx,go.lineStart=ute,go.lineEnd=ate},result:function(){var t=cE?[FB/cE,wB/cE]:Kp?[TR/Kp,RR/Kp]:lE?[NB/lE,DB/lE]:[NaN,NaN];return NB=DB=lE=TR=RR=Kp=FB=wB=cE=0,t}};function Zx(t,e){NB+=t,DB+=e,++lE}function ute(){go.point=Z8e}function Z8e(t,e){go.point=e7e,Zx(xa=t,da=e)}function e7e(t,e){var n=t-xa,r=e-da,i=Ti(n*n+r*r);TR+=i*(xa+t)/2,RR+=i*(da+e)/2,Kp+=i,Zx(xa=t,da=e)}function ate(){go.point=Zx}function t7e(){go.point=r7e}function n7e(){lte(ste,ote)}function r7e(t,e){go.point=lte,Zx(ste=xa=t,ote=da=e)}function lte(t,e){var n=t-xa,r=e-da,i=Ti(n*n+r*r);TR+=i*(xa+t)/2,RR+=i*(da+e)/2,Kp+=i,i=da*t-xa*e,FB+=i*(xa+t),wB+=i*(da+e),cE+=i*3,Zx(xa=t,da=e)}function cte(t){this._context=t}cte.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:{this._context.moveTo(t,e),this._point=1;break}case 1:{this._context.lineTo(t,e);break}default:{this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,bi);break}}},result:Fr};var LB=new Ai,IB,fte,xte,fE,xE,dE={point:Fr,lineStart:function(){dE.point=i7e},lineEnd:function(){IB&&dte(fte,xte),dE.point=Fr},polygonStart:function(){IB=!0},polygonEnd:function(){IB=null},result:function(){var t=+LB;return LB=new Ai,t}};function i7e(t,e){dE.point=dte,fte=fE=t,xte=xE=e}function dte(t,e){fE-=t,xE-=e,LB.add(Ti(fE*fE+xE*xE)),fE=t,xE=e}let hte,OR,pte,gte;class mte{constructor(e){this._append=e==null?yte:s7e(e),this._radius=4.5,this._=""}pointRadius(e){return this._radius=+e,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){this._line===0&&(this._+="Z"),this._point=NaN}point(e,n){switch(this._point){case 0:{this._append`M${e},${n}`,this._point=1;break}case 1:{this._append`L${e},${n}`;break}default:{if(this._append`M${e},${n}`,this._radius!==pte||this._append!==OR){const r=this._radius,i=this._;this._="",this._append`m0,${r}a${r},${r} 0 1,1 0,${-2*r}a${r},${r} 0 1,1 0,${2*r}z`,pte=r,OR=this._append,gte=this._,this._=i}this._+=gte;break}}}result(){const e=this._;return this._="",e.length?e:null}}function yte(t){let e=1;this._+=t[0];for(const n=t.length;e<n;++e)this._+=arguments[e]+t[e]}function s7e(t){const e=Math.floor(t);if(!(e>=0))throw new RangeError(`invalid digits: ${t}`);if(e>15)return yte;if(e!==hte){const n=10**e;hte=e,OR=function(i){let s=1;this._+=i[0];for(const o=i.length;s<o;++s)this._+=Math.round(arguments[s]*n)/n+i[s]}}return OR}function Ete(t,e){let n=3,r=4.5,i,s;function o(u){return u&&(typeof r=="function"&&s.pointRadius(+r.apply(this,arguments)),Fl(u,i(s))),s.result()}return o.area=function(u){return Fl(u,i(Il)),Il.result()},o.measure=function(u){return Fl(u,i(dE)),dE.result()},o.bounds=function(u){return Fl(u,i(bR)),bR.result()},o.centroid=function(u){return Fl(u,i(go)),go.result()},o.projection=function(u){return arguments.length?(i=u==null?(t=null,uE):(t=u).stream,o):t},o.context=function(u){return arguments.length?(s=u==null?(e=null,new mte(n)):new cte(e=u),typeof r!="function"&&s.pointRadius(r),o):e},o.pointRadius=function(u){return arguments.length?(r=typeof u=="function"?u:(s.pointRadius(+u),+u),o):r},o.digits=function(u){if(!arguments.length)return n;if(u==null)n=null;else{const a=Math.floor(u);if(!(a>=0))throw new RangeError(`invalid digits: ${u}`);n=a}return e===null&&(s=new mte(n)),o},o.projection(t).digits(n).context(e)}function NR(t){return function(e){var n=new $B;for(var r in t)n[r]=t[r];return n.stream=e,n}}function $B(){}$B.prototype={constructor:$B,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function BB(t,e,n){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),r!=null&&t.clipExtent(null),Fl(n,t.stream(bR)),e(bR.result()),r!=null&&t.clipExtent(r),t}function DR(t,e,n){return BB(t,function(r){var i=e[1][0]-e[0][0],s=e[1][1]-e[0][1],o=Math.min(i/(r[1][0]-r[0][0]),s/(r[1][1]-r[0][1])),u=+e[0][0]+(i-o*(r[1][0]+r[0][0]))/2,a=+e[0][1]+(s-o*(r[1][1]+r[0][1]))/2;t.scale(150*o).translate([u,a])},n)}function kB(t,e,n){return DR(t,[[0,0],e],n)}function PB(t,e,n){return BB(t,function(r){var i=+e,s=i/(r[1][0]-r[0][0]),o=(i-s*(r[1][0]+r[0][0]))/2,u=-s*r[0][1];t.scale(150*s).translate([o,u])},n)}function MB(t,e,n){return BB(t,function(r){var i=+e,s=i/(r[1][1]-r[0][1]),o=-s*r[0][0],u=(i-s*(r[1][1]+r[0][1]))/2;t.scale(150*s).translate([o,u])},n)}var Ate=16,o7e=nt(30*dt);function Ste(t,e){return+e?a7e(t,e):u7e(t)}function u7e(t){return NR({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}function a7e(t,e){function n(r,i,s,o,u,a,l,c,f,x,h,p,m,g){var y=l-r,E=c-i,A=y*y+E*E;if(A>4*e&&m--){var S=o+x,v=u+h,_=a+p,C=Ti(S*S+v*v+_*_),b=rs(_/=C),R=yt(yt(_)-1)<tt||yt(s-f)<tt?(s+f)/2:ho(v,S),O=t(R,b),L=O[0],M=O[1],q=L-r,W=M-i,B=E*q-y*W;(B*B/A>e||yt((y*q+E*W)/A-.5)>.3||o*x+u*h+a*p<o7e)&&(n(r,i,s,o,u,a,L,M,R,S/=C,v/=C,_,m,g),g.point(L,M),n(L,M,R,S,v,_,l,c,f,x,h,p,m,g))}}return function(r){var i,s,o,u,a,l,c,f,x,h,p,m,g={point:y,lineStart:E,lineEnd:S,polygonStart:function(){r.polygonStart(),g.lineStart=v},polygonEnd:function(){r.polygonEnd(),g.lineStart=E}};function y(b,R){b=t(b,R),r.point(b[0],b[1])}function E(){f=NaN,g.point=A,r.lineStart()}function A(b,R){var O=Kx([b,R]),L=t(b,R);n(f,x,c,h,p,m,f=L[0],x=L[1],c=b,h=O[0],p=O[1],m=O[2],Ate,r),r.point(f,x)}function S(){g.point=y,r.lineEnd()}function v(){E(),g.point=_,g.lineEnd=C}function _(b,R){A(i=b,R),s=f,o=x,u=h,a=p,l=m,g.point=A}function C(){n(f,x,c,h,p,m,s,o,i,u,a,l,Ate,r),g.lineEnd=S,S()}return g}}var l7e=NR({point:function(t,e){this.stream.point(t*dt,e*dt)}});function c7e(t){return NR({point:function(e,n){var r=t(e,n);return this.stream.point(r[0],r[1])}})}function f7e(t,e,n,r,i){function s(o,u){return o*=r,u*=i,[e+t*o,n-t*u]}return s.invert=function(o,u){return[(o-e)/t*r,(n-u)/t*i]},s}function vte(t,e,n,r,i,s){if(!s)return f7e(t,e,n,r,i);var o=nt(s),u=Xe(s),a=o*t,l=u*t,c=o/t,f=u/t,x=(u*n-o*e)/t,h=(u*e+o*n)/t;function p(m,g){return m*=r,g*=i,[a*m-l*g+e,n-l*m-a*g]}return p.invert=function(m,g){return[r*(c*m-f*g+x),i*(h-f*m-c*g)]},p}function ha(t){return _te(function(){return t})()}function _te(t){var e,n=150,r=480,i=250,s=0,o=0,u=0,a=0,l=0,c,f=0,x=1,h=1,p=null,m=Jee,g=null,y,E,A,S=uE,v=.5,_,C,b,R,O;function L(B){return b(B[0]*dt,B[1]*dt)}function M(B){return B=b.invert(B[0],B[1]),B&&[B[0]*Bn,B[1]*Bn]}L.stream=function(B){return R&&O===B?R:R=l7e(c7e(c)(m(_(S(O=B)))))},L.preclip=function(B){return arguments.length?(m=B,p=void 0,W()):m},L.postclip=function(B){return arguments.length?(S=B,g=y=E=A=null,W()):S},L.clipAngle=function(B){return arguments.length?(m=+B?G8e(p=B*dt):(p=null,Jee),W()):p*Bn},L.clipExtent=function(B){return arguments.length?(S=B==null?(g=y=E=A=null,uE):Zee(g=+B[0][0],y=+B[0][1],E=+B[1][0],A=+B[1][1]),W()):g==null?null:[[g,y],[E,A]]},L.scale=function(B){return arguments.length?(n=+B,q()):n},L.translate=function(B){return arguments.length?(r=+B[0],i=+B[1],q()):[r,i]},L.center=function(B){return arguments.length?(s=B[0]%360*dt,o=B[1]%360*dt,q()):[s*Bn,o*Bn]},L.rotate=function(B){return arguments.length?(u=B[0]%360*dt,a=B[1]%360*dt,l=B.length>2?B[2]%360*dt:0,q()):[u*Bn,a*Bn,l*Bn]},L.angle=function(B){return arguments.length?(f=B%360*dt,q()):f*Bn},L.reflectX=function(B){return arguments.length?(x=B?-1:1,q()):x<0},L.reflectY=function(B){return arguments.length?(h=B?-1:1,q()):h<0},L.precision=function(B){return arguments.length?(_=Ste(C,v=B*B),W()):Ti(v)},L.fitExtent=function(B,G){return DR(L,B,G)},L.fitSize=function(B,G){return kB(L,B,G)},L.fitWidth=function(B,G){return PB(L,B,G)},L.fitHeight=function(B,G){return MB(L,B,G)};function q(){var B=vte(n,0,0,x,h,f).apply(null,e(s,o)),G=vte(n,r-B[0],i-B[1],x,h,f);return c=Hee(u,a,l),C=vB(e,G),b=vB(c,C),_=Ste(C,v),W()}function W(){return R=O=null,L}return function(){return e=t.apply(this,arguments),L.invert=e.invert&&M,q()}}function jB(t){var e=0,n=ht/3,r=_te(t),i=r(e,n);return i.parallels=function(s){return arguments.length?r(e=s[0]*dt,n=s[1]*dt):[e*Bn,n*Bn]},i}function x7e(t){var e=nt(t);function n(r,i){return[r*e,Xe(i)/e]}return n.invert=function(r,i){return[r/e,rs(i*e)]},n}function d7e(t,e){var n=Xe(t),r=(n+Xe(e))/2;if(yt(r)<tt)return x7e(t);var i=1+n*(2*r-n),s=Ti(i)/r;function o(u,a){var l=Ti(i-2*r*Xe(a))/r;return[l*Xe(u*=r),s-l*nt(u)]}return o.invert=function(u,a){var l=s-a,c=ho(u,yt(l))*po(l);return l*r<0&&(c-=ht*po(u)*po(l)),[c/r,rs((i-(u*u+l*l)*r*r)/(2*r))]},o}function FR(){return jB(d7e).scale(155.424).center([0,33.6442])}function Cte(){return FR().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function h7e(t){var e=t.length;return{point:function(n,r){for(var i=-1;++i<e;)t[i].point(n,r)},sphere:function(){for(var n=-1;++n<e;)t[n].sphere()},lineStart:function(){for(var n=-1;++n<e;)t[n].lineStart()},lineEnd:function(){for(var n=-1;++n<e;)t[n].lineEnd()},polygonStart:function(){for(var n=-1;++n<e;)t[n].polygonStart()},polygonEnd:function(){for(var n=-1;++n<e;)t[n].polygonEnd()}}}function p7e(){var t,e,n=Cte(),r,i=FR().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s,o=FR().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u,a,l={point:function(x,h){a=[x,h]}};function c(x){var h=x[0],p=x[1];return a=null,r.point(h,p),a||(s.point(h,p),a)||(u.point(h,p),a)}c.invert=function(x){var h=n.scale(),p=n.translate(),m=(x[0]-p[0])/h,g=(x[1]-p[1])/h;return(g>=.12&&g<.234&&m>=-.425&&m<-.214?i:g>=.166&&g<.234&&m>=-.214&&m<-.115?o:n).invert(x)},c.stream=function(x){return t&&e===x?t:t=h7e([n.stream(e=x),i.stream(x),o.stream(x)])},c.precision=function(x){return arguments.length?(n.precision(x),i.precision(x),o.precision(x),f()):n.precision()},c.scale=function(x){return arguments.length?(n.scale(x),i.scale(x*.35),o.scale(x),c.translate(n.translate())):n.scale()},c.translate=function(x){if(!arguments.length)return n.translate();var h=n.scale(),p=+x[0],m=+x[1];return r=n.translate(x).clipExtent([[p-.455*h,m-.238*h],[p+.455*h,m+.238*h]]).stream(l),s=i.translate([p-.307*h,m+.201*h]).clipExtent([[p-.425*h+tt,m+.12*h+tt],[p-.214*h-tt,m+.234*h-tt]]).stream(l),u=o.translate([p-.205*h,m+.212*h]).clipExtent([[p-.214*h+tt,m+.166*h+tt],[p-.115*h-tt,m+.234*h-tt]]).stream(l),f()},c.fitExtent=function(x,h){return DR(c,x,h)},c.fitSize=function(x,h){return kB(c,x,h)},c.fitWidth=function(x,h){return PB(c,x,h)},c.fitHeight=function(x,h){return MB(c,x,h)};function f(){return t=e=null,c}return c.scale(1070)}function bte(t){return function(e,n){var r=nt(e),i=nt(n),s=t(r*i);return s===1/0?[2,0]:[s*i*Xe(e),s*Xe(n)]}}function hE(t){return function(e,n){var r=Ti(e*e+n*n),i=t(r),s=Xe(i),o=nt(i);return[ho(e*s,r*o),rs(r&&n*s/r)]}}var Tte=bte(function(t){return Ti(2/(1+t))});Tte.invert=hE(function(t){return 2*rs(t/2)});function g7e(){return ha(Tte).scale(124.75).clipAngle(180-.001)}var Rte=bte(function(t){return(t=Cee(t))&&t/Xe(t)});Rte.invert=hE(function(t){return t});function m7e(){return ha(Rte).scale(79.4188).clipAngle(180-.001)}function wR(t,e){return[t,sR(fB((Nn+e)/2))]}wR.invert=function(t,e){return[t,2*Wp(_ee(e))-Nn]};function y7e(){return Ote(wR).scale(961/bi)}function Ote(t){var e=ha(t),n=e.center,r=e.scale,i=e.translate,s=e.clipExtent,o=null,u,a,l;e.scale=function(f){return arguments.length?(r(f),c()):r()},e.translate=function(f){return arguments.length?(i(f),c()):i()},e.center=function(f){return arguments.length?(n(f),c()):n()},e.clipExtent=function(f){return arguments.length?(f==null?o=u=a=l=null:(o=+f[0][0],u=+f[0][1],a=+f[1][0],l=+f[1][1]),c()):o==null?null:[[o,u],[a,l]]};function c(){var f=ht*r(),x=e(P8e(e.rotate()).invert([0,0]));return s(o==null?[[x[0]-f,x[1]-f],[x[0]+f,x[1]+f]]:t===wR?[[Math.max(x[0]-f,o),u],[Math.min(x[0]+f,a),l]]:[[o,Math.max(x[1]-f,u)],[a,Math.min(x[1]+f,l)]])}return c()}function LR(t){return fB((Nn+t)/2)}function E7e(t,e){var n=nt(t),r=t===e?Xe(t):sR(n/nt(e))/sR(LR(e)/LR(t)),i=n*cB(LR(t),r)/r;if(!r)return wR;function s(o,u){i>0?u<-Nn+tt&&(u=-Nn+tt):u>Nn-tt&&(u=Nn-tt);var a=i/cB(LR(u),r);return[a*Xe(r*o),i-a*nt(r*o)]}return s.invert=function(o,u){var a=i-u,l=po(r)*Ti(o*o+a*a),c=ho(o,yt(a))*po(a);return a*r<0&&(c-=ht*po(o)*po(a)),[c/r,2*Wp(cB(i/l,1/r))-Nn]},s}function A7e(){return jB(E7e).scale(109.5).parallels([30,30])}function IR(t,e){return[t,e]}IR.invert=IR;function S7e(){return ha(IR).scale(152.63)}function v7e(t,e){var n=nt(t),r=t===e?Xe(t):(n-nt(e))/(e-t),i=n/r+t;if(yt(r)<tt)return IR;function s(o,u){var a=i-u,l=r*o;return[a*Xe(l),i-a*nt(l)]}return s.invert=function(o,u){var a=i-u,l=ho(o,yt(a))*po(a);return a*r<0&&(l-=ht*po(o)*po(a)),[l/r,i-po(r)*Ti(o*o+a*a)]},s}function _7e(){return jB(v7e).scale(131.154).center([0,13.9389])}var pE=1.340264,gE=-.081106,mE=893e-6,yE=.003796,$R=Ti(3)/2,C7e=12;function Nte(t,e){var n=rs($R*Xe(e)),r=n*n,i=r*r*r;return[t*nt(n)/($R*(pE+3*gE*r+i*(7*mE+9*yE*r))),n*(pE+gE*r+i*(mE+yE*r))]}Nte.invert=function(t,e){for(var n=e,r=n*n,i=r*r*r,s=0,o,u,a;s<C7e&&(u=n*(pE+gE*r+i*(mE+yE*r))-e,a=pE+3*gE*r+i*(7*mE+9*yE*r),n-=o=u/a,r=n*n,i=r*r*r,!(yt(o)<nR));++s);return[$R*t*(pE+3*gE*r+i*(7*mE+9*yE*r))/nt(n),rs(Xe(n)/$R)]};function b7e(){return ha(Nte).scale(177.158)}function Dte(t,e){var n=nt(e),r=nt(t)*n;return[n*Xe(t)/r,Xe(e)/r]}Dte.invert=hE(Wp);function T7e(){return ha(Dte).scale(144.049).clipAngle(60)}function R7e(){var t=1,e=0,n=0,r=1,i=1,s=0,o,u,a=null,l,c,f,x=1,h=1,p=NR({point:function(S,v){var _=A([S,v]);this.stream.point(_[0],_[1])}}),m=uE,g,y;function E(){return x=t*r,h=t*i,g=y=null,A}function A(S){var v=S[0]*x,_=S[1]*h;if(s){var C=_*o-v*u;v=v*o+_*u,_=C}return[v+e,_+n]}return A.invert=function(S){var v=S[0]-e,_=S[1]-n;if(s){var C=_*o+v*u;v=v*o-_*u,_=C}return[v/x,_/h]},A.stream=function(S){return g&&y===S?g:g=p(m(y=S))},A.postclip=function(S){return arguments.length?(m=S,a=l=c=f=null,E()):m},A.clipExtent=function(S){return arguments.length?(m=S==null?(a=l=c=f=null,uE):Zee(a=+S[0][0],l=+S[0][1],c=+S[1][0],f=+S[1][1]),E()):a==null?null:[[a,l],[c,f]]},A.scale=function(S){return arguments.length?(t=+S,E()):t},A.translate=function(S){return arguments.length?(e=+S[0],n=+S[1],E()):[e,n]},A.angle=function(S){return arguments.length?(s=S%360*dt,u=Xe(s),o=nt(s),E()):s*Bn},A.reflectX=function(S){return arguments.length?(r=S?-1:1,E()):r<0},A.reflectY=function(S){return arguments.length?(i=S?-1:1,E()):i<0},A.fitExtent=function(S,v){return DR(A,S,v)},A.fitSize=function(S,v){return kB(A,S,v)},A.fitWidth=function(S,v){return PB(A,S,v)},A.fitHeight=function(S,v){return MB(A,S,v)},A}function Fte(t,e){var n=e*e,r=n*n;return[t*(.8707-.131979*n+r*(-.013791+r*(.003971*n-.001529*r))),e*(1.007226+n*(.015085+r*(-.044475+.028874*n-.005916*r)))]}Fte.invert=function(t,e){var n=e,r=25,i;do{var s=n*n,o=s*s;n-=i=(n*(1.007226+s*(.015085+o*(-.044475+.028874*s-.005916*o)))-e)/(1.007226+s*(.015085*3+o*(-.044475*7+.028874*9*s-.005916*11*o)))}while(yt(i)>tt&&--r>0);return[t/(.8707+(s=n*n)*(-.131979+s*(-.013791+s*s*s*(.003971-.001529*s)))),n]};function O7e(){return ha(Fte).scale(175.295)}function wte(t,e){return[nt(e)*Xe(t),Xe(e)]}wte.invert=hE(rs);function N7e(){return ha(wte).scale(249.5).clipAngle(90+tt)}function Lte(t,e){var n=nt(e),r=1+nt(t)*n;return[n*Xe(t)/r,Xe(e)/r]}Lte.invert=hE(function(t){return 2*Wp(t)});function D7e(){return ha(Lte).scale(250).clipAngle(142)}function Ite(t,e){return[sR(fB((Nn+e)/2)),-t]}Ite.invert=function(t,e){return[-e,2*Wp(_ee(t))-Nn]};function F7e(){var t=Ote(Ite),e=t.center,n=t.rotate;return t.center=function(r){return arguments.length?e([-r[1],r[0]]):(r=e(),[r[1],-r[0]])},t.rotate=function(r){return arguments.length?n([r[0],r[1],r.length>2?r[2]+90:90]):(r=n(),[r[0],r[1],r[2]-90])},n([0,0,90]).scale(159.155)}var w7e=Math.abs,UB=Math.cos,BR=Math.sin,L7e=1e-6,$te=Math.PI,qB=$te/2,Bte=I7e(2);function kte(t){return t>1?qB:t<-1?-qB:Math.asin(t)}function I7e(t){return t>0?Math.sqrt(t):0}function $7e(t,e){var n=t*BR(e),r=30,i;do e-=i=(e+BR(e)-n)/(1+UB(e));while(w7e(i)>L7e&&--r>0);return e/2}function B7e(t,e,n){function r(i,s){return[t*i*UB(s=$7e(n,s)),e*BR(s)]}return r.invert=function(i,s){return s=kte(s/e),[i/(t*UB(s)),kte((2*s+BR(2*s))/n)]},r}var k7e=B7e(Bte/qB,Bte,$te);function P7e(){return ha(k7e).scale(169.529)}const M7e=Ete(),HB=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function j7e(t,e){return function n(){const r=e();return r.type=t,r.path=Ete().projection(r),r.copy=r.copy||function(){const i=n();return HB.forEach(s=>{r[s]&&i[s](r[s]())}),i.path.pointRadius(r.path.pointRadius()),i},YK(r)}}function Pte(t,e){if(!t||typeof t!="string")throw new Error("Projection type must be a name string.");return t=t.toLowerCase(),arguments.length>1?(kR[t]=j7e(t,e),this):kR[t]||null}function Mte(t){return t&&t.path||M7e}const kR={albers:Cte,albersusa:p7e,azimuthalequalarea:g7e,azimuthalequidistant:m7e,conicconformal:A7e,conicequalarea:FR,conicequidistant:_7e,equalEarth:b7e,equirectangular:S7e,gnomonic:T7e,identity:R7e,mercator:y7e,mollweide:P7e,naturalEarth1:O7e,orthographic:N7e,stereographic:D7e,transversemercator:F7e};for(const t in kR)Pte(t,kR[t]);function U7e(){}const $l=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function jte(){var t=1,e=1,n=u;function r(a,l){return l.map(c=>i(a,c))}function i(a,l){var c=[],f=[];return s(a,l,x=>{n(x,a,l),q7e(x)>0?c.push([x]):f.push(x)}),f.forEach(x=>{for(var h=0,p=c.length,m;h<p;++h)if(H7e((m=c[h])[0],x)!==-1){m.push(x);return}}),{type:"MultiPolygon",value:l,coordinates:c}}function s(a,l,c){var f=new Array,x=new Array,h,p,m,g,y,E;for(h=p=-1,g=a[0]>=l,$l[g<<1].forEach(A);++h<t-1;)m=g,g=a[h+1]>=l,$l[m|g<<1].forEach(A);for($l[g<<0].forEach(A);++p<e-1;){for(h=-1,g=a[p*t+t]>=l,y=a[p*t]>=l,$l[g<<1|y<<2].forEach(A);++h<t-1;)m=g,g=a[p*t+t+h+1]>=l,E=y,y=a[p*t+h+1]>=l,$l[m|g<<1|y<<2|E<<3].forEach(A);$l[g|y<<3].forEach(A)}for(h=-1,y=a[p*t]>=l,$l[y<<2].forEach(A);++h<t-1;)E=y,y=a[p*t+h+1]>=l,$l[y<<2|E<<3].forEach(A);$l[y<<3].forEach(A);function A(S){var v=[S[0][0]+h,S[0][1]+p],_=[S[1][0]+h,S[1][1]+p],C=o(v),b=o(_),R,O;(R=x[C])?(O=f[b])?(delete x[R.end],delete f[O.start],R===O?(R.ring.push(_),c(R.ring)):f[R.start]=x[O.end]={start:R.start,end:O.end,ring:R.ring.concat(O.ring)}):(delete x[R.end],R.ring.push(_),x[R.end=b]=R):(R=f[b])?(O=x[C])?(delete f[R.start],delete x[O.end],R===O?(R.ring.push(_),c(R.ring)):f[O.start]=x[R.end]={start:O.start,end:R.end,ring:O.ring.concat(R.ring)}):(delete f[R.start],R.ring.unshift(v),f[R.start=C]=R):f[C]=x[b]={start:C,end:b,ring:[v,_]}}}function o(a){return a[0]*2+a[1]*(t+1)*4}function u(a,l,c){a.forEach(f=>{var x=f[0],h=f[1],p=x|0,m=h|0,g,y=l[m*t+p];x>0&&x<t&&p===x&&(g=l[m*t+p-1],f[0]=x+(c-g)/(y-g)-.5),h>0&&h<e&&m===h&&(g=l[(m-1)*t+p],f[1]=h+(c-g)/(y-g)-.5)})}return r.contour=i,r.size=function(a){if(!arguments.length)return[t,e];var l=Math.floor(a[0]),c=Math.floor(a[1]);return l>=0&&c>=0||ve("invalid size"),t=l,e=c,r},r.smooth=function(a){return arguments.length?(n=a?u:U7e,r):n===u},r}function q7e(t){for(var e=0,n=t.length,r=t[n-1][1]*t[0][0]-t[n-1][0]*t[0][1];++e<n;)r+=t[e-1][1]*t[e][0]-t[e-1][0]*t[e][1];return r}function H7e(t,e){for(var n=-1,r=e.length,i;++n<r;)if(i=z7e(t,e[n]))return i;return 0}function z7e(t,e){for(var n=e[0],r=e[1],i=-1,s=0,o=t.length,u=o-1;s<o;u=s++){var a=t[s],l=a[0],c=a[1],f=t[u],x=f[0],h=f[1];if(Q7e(a,f,e))return 0;c>r!=h>r&&n<(x-l)*(r-c)/(h-c)+l&&(i=-i)}return i}function Q7e(t,e,n){var r;return G7e(t,e,n)&&W7e(t[r=+(t[0]===e[0])],n[r],e[r])}function G7e(t,e,n){return(e[0]-t[0])*(n[1]-t[1])===(n[0]-t[0])*(e[1]-t[1])}function W7e(t,e,n){return t<=e&&e<=n||n<=e&&e<=t}function Ute(t,e,n){return function(r){var i=pl(r),s=n?Math.min(i[0],0):i[0],o=i[1],u=o-s,a=e?Z0(s,o,t):u/(t+1);return Fs(s+a,o,a)}}function zB(t){pe.call(this,null,t)}zB.Definition={type:"Isocontour",metadata:{generates:!0},params:[{name:"field",type:"field"},{name:"thresholds",type:"number",array:!0},{name:"levels",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"zero",type:"boolean",default:!0},{name:"smooth",type:"boolean",default:!0},{name:"scale",type:"number",expr:!0},{name:"translate",type:"number",array:!0,expr:!0},{name:"as",type:"string",null:!0,default:"contour"}]},Fe(zB,pe,{transform(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var n=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=e.materialize(e.SOURCE).source,i=t.field||mi,s=jte().smooth(t.smooth!==!1),o=t.thresholds||V7e(r,i,t),u=t.as===null?null:t.as||"contour",a=[];return r.forEach(l=>{const c=i(l),f=s.size([c.width,c.height])(c.values,_e(o)?o:o(c.values));Y7e(f,c,l,t),f.forEach(x=>{a.push(zb(l,Lt(u!=null?{[u]:x}:x)))})}),this.value&&(n.rem=this.value),this.value=n.source=n.add=a,n}});function V7e(t,e,n){const r=Ute(n.levels||10,n.nice,n.zero!==!1);return n.resolve!=="shared"?r:r(t.map(i=>Cx(e(i).values)))}function Y7e(t,e,n,r){let i=r.scale||e.scale,s=r.translate||e.translate;if(ct(i)&&(i=i(n,r)),ct(s)&&(s=s(n,r)),(i===1||i==null)&&!s)return;const o=(tn(i)?i:i[0])||1,u=(tn(i)?i:i[1])||1,a=s&&s[0]||0,l=s&&s[1]||0;t.forEach(qte(e,o,u,a,l))}function qte(t,e,n,r,i){const s=t.x1||0,o=t.y1||0,u=e*n<0;function a(f){f.forEach(l)}function l(f){u&&f.reverse(),f.forEach(c)}function c(f){f[0]=(f[0]-s)*e+r,f[1]=(f[1]-o)*n+i}return function(f){return f.coordinates.forEach(a),f}}function Hte(t,e,n){const r=t>=0?t:vY(e,n);return Math.round((Math.sqrt(4*r*r+1)-1)/2)}function QB(t){return ct(t)?t:Ei(+t)}function zte(){var t=a=>a[0],e=a=>a[1],n=ty,r=[-1,-1],i=960,s=500,o=2;function u(a,l){const c=Hte(r[0],a,t)>>o,f=Hte(r[1],a,e)>>o,x=c?c+2:0,h=f?f+2:0,p=2*x+(i>>o),m=2*h+(s>>o),g=new Float32Array(p*m),y=new Float32Array(p*m);let E=g;a.forEach(S=>{const v=x+(+t(S)>>o),_=h+(+e(S)>>o);v>=0&&v<p&&_>=0&&_<m&&(g[v+_*p]+=+n(S))}),c>0&&f>0?(Jp(p,m,g,y,c),Zp(p,m,y,g,f),Jp(p,m,g,y,c),Zp(p,m,y,g,f),Jp(p,m,g,y,c),Zp(p,m,y,g,f)):c>0?(Jp(p,m,g,y,c),Jp(p,m,y,g,c),Jp(p,m,g,y,c),E=y):f>0&&(Zp(p,m,g,y,f),Zp(p,m,y,g,f),Zp(p,m,g,y,f),E=y);const A=l?Math.pow(2,-2*o):1/oV(E);for(let S=0,v=p*m;S<v;++S)E[S]*=A;return{values:E,scale:1<<o,width:p,height:m,x1:x,y1:h,x2:x+(i>>o),y2:h+(s>>o)}}return u.x=function(a){return arguments.length?(t=QB(a),u):t},u.y=function(a){return arguments.length?(e=QB(a),u):e},u.weight=function(a){return arguments.length?(n=QB(a),u):n},u.size=function(a){if(!arguments.length)return[i,s];var l=+a[0],c=+a[1];return l>=0&&c>=0||ve("invalid size"),i=l,s=c,u},u.cellSize=function(a){return arguments.length?((a=+a)>=1||ve("invalid cell size"),o=Math.floor(Math.log(a)/Math.LN2),u):1<<o},u.bandwidth=function(a){return arguments.length?(a=Pe(a),a.length===1&&(a=[+a[0],+a[0]]),a.length!==2&&ve("invalid bandwidth"),r=a,u):r},u}function Jp(t,e,n,r,i){const s=(i<<1)+1;for(let o=0;o<e;++o)for(let u=0,a=0;u<t+i;++u)u<t&&(a+=n[u+o*t]),u>=i&&(u>=s&&(a-=n[u-s+o*t]),r[u-i+o*t]=a/Math.min(u+1,t-1+s-u,s))}function Zp(t,e,n,r,i){const s=(i<<1)+1;for(let o=0;o<t;++o)for(let u=0,a=0;u<e+i;++u)u<e&&(a+=n[o+u*t]),u>=i&&(u>=s&&(a-=n[o+(u-s)*t]),r[o+(u-i)*t]=a/Math.min(u+1,e-1+s-u,s))}function GB(t){pe.call(this,null,t)}GB.Definition={type:"KDE2D",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"weight",type:"field"},{name:"groupby",type:"field",array:!0},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number",array:!0,length:2},{name:"counts",type:"boolean",default:!1},{name:"as",type:"string",default:"grid"}]};const X7e=["x","y","weight","size","cellSize","bandwidth"];function Qte(t,e){return X7e.forEach(n=>e[n]!=null?t[n](e[n]):0),t}Fe(GB,pe,{transform(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var n=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=e.materialize(e.SOURCE).source,i=K7e(r,t.groupby),s=(t.groupby||[]).map($n),o=Qte(zte(),t),u=t.as||"grid",a=[];function l(c,f){for(let x=0;x<s.length;++x)c[s[x]]=f[x];return c}return a=i.map(c=>Lt(l({[u]:o(c,t.counts)},c.dims))),this.value&&(n.rem=this.value),this.value=n.source=n.add=a,n}});function K7e(t,e){var n=[],r=c=>c(u),i,s,o,u,a,l;if(e==null)n.push(t);else for(i={},s=0,o=t.length;s<o;++s)u=t[s],a=e.map(r),l=i[a],l||(i[a]=l=[],l.dims=a,n.push(l)),l.push(u);return n}function WB(t){pe.call(this,null,t)}WB.Definition={type:"Contour",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"values",type:"number",array:!0},{name:"x",type:"field"},{name:"y",type:"field"},{name:"weight",type:"field"},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number"},{name:"count",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"thresholds",type:"number",array:!0},{name:"smooth",type:"boolean",default:!0}]},Fe(WB,pe,{transform(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var n=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=jte().smooth(t.smooth!==!1),i=t.values,s=t.thresholds||Ute(t.count||10,t.nice,!!i),o=t.size,u,a;return i||(i=e.materialize(e.SOURCE).source,u=Qte(zte(),t)(i,!0),a=qte(u,u.scale||1,u.scale||1,0,0),o=[u.width,u.height],i=u.values),s=_e(s)?s:s(i),i=r.size(o)(i,s),a&&i.forEach(a),this.value&&(n.rem=this.value),this.value=n.source=n.add=(i||[]).map(Lt),n}});const VB="Feature",YB="FeatureCollection",J7e="MultiPoint";function XB(t){pe.call(this,null,t)}XB.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},Fe(XB,pe,{transform(t,e){var n=this._features,r=this._points,i=t.fields,s=i&&i[0],o=i&&i[1],u=t.geojson||!i&&mi,a=e.ADD,l;l=t.modified()||e.changed(e.REM)||e.modified(gi(u))||s&&e.modified(gi(s))||o&&e.modified(gi(o)),(!this.value||l)&&(a=e.SOURCE,this._features=n=[],this._points=r=[]),u&&e.visit(a,c=>n.push(u(c))),s&&o&&(e.visit(a,c=>{var f=s(c),x=o(c);f!=null&&x!=null&&(f=+f)===f&&(x=+x)===x&&r.push([f,x])}),n=n.concat({type:VB,geometry:{type:J7e,coordinates:r}})),this.value={type:YB,features:n}}});function KB(t){pe.call(this,null,t)}KB.Definition={type:"GeoPath",metadata:{modifies:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"path"}]},Fe(KB,pe,{transform(t,e){var n=e.fork(e.ALL),r=this.value,i=t.field||mi,s=t.as||"path",o=n.SOURCE;!r||t.modified()?(this.value=r=Mte(t.projection),n.materialize().reflow()):o=i===mi||e.modified(i.fields)?n.ADD_MOD:n.ADD;const u=Z7e(r,t.pointRadius);return n.visit(o,a=>a[s]=r(i(a))),r.pointRadius(u),n.modifies(s)}});function Z7e(t,e){const n=t.pointRadius();return t.context(null),e!=null&&t.pointRadius(e),n}function JB(t){pe.call(this,null,t)}JB.Definition={type:"GeoPoint",metadata:{modifies:!0},params:[{name:"projection",type:"projection",required:!0},{name:"fields",type:"field",array:!0,required:!0,length:2},{name:"as",type:"string",array:!0,length:2,default:["x","y"]}]},Fe(JB,pe,{transform(t,e){var n=t.projection,r=t.fields[0],i=t.fields[1],s=t.as||["x","y"],o=s[0],u=s[1],a;function l(c){const f=n([r(c),i(c)]);f?(c[o]=f[0],c[u]=f[1]):(c[o]=void 0,c[u]=void 0)}return t.modified()?e=e.materialize().reflow(!0).visit(e.SOURCE,l):(a=e.modified(r.fields)||e.modified(i.fields),e.visit(a?e.ADD_MOD:e.ADD,l)),e.modifies(s)}});function ZB(t){pe.call(this,null,t)}ZB.Definition={type:"GeoShape",metadata:{modifies:!0,nomod:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field",default:"datum"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"shape"}]},Fe(ZB,pe,{transform(t,e){var n=e.fork(e.ALL),r=this.value,i=t.as||"shape",s=n.ADD;return(!r||t.modified())&&(this.value=r=ePe(Mte(t.projection),t.field||Ds("datum"),t.pointRadius),n.materialize().reflow(),s=n.SOURCE),n.visit(s,o=>o[i]=r),n.modifies(i)}});function ePe(t,e,n){const r=n==null?i=>t(e(i)):i=>{var s=t.pointRadius(),o=t.pointRadius(n)(e(i));return t.pointRadius(s),o};return r.context=i=>(t.context(i),r),r}function e6(t){pe.call(this,[],t),this.generator=V8e()}e6.Definition={type:"Graticule",metadata:{changes:!0,generates:!0},params:[{name:"extent",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMajor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMinor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"step",type:"number",array:!0,length:2},{name:"stepMajor",type:"number",array:!0,length:2,default:[90,360]},{name:"stepMinor",type:"number",array:!0,length:2,default:[10,10]},{name:"precision",type:"number",default:2.5}]},Fe(e6,pe,{transform(t,e){var n=this.value,r=this.generator,i;if(!n.length||t.modified())for(const s in t)ct(r[s])&&r[s](t[s]);return i=r(),n.length?e.mod.push(aY(n[0],i)):e.add.push(Lt(i)),n[0]=i,e}});function t6(t){pe.call(this,null,t)}t6.Definition={type:"heatmap",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"color",type:"string",expr:!0},{name:"opacity",type:"number",expr:!0},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"as",type:"string",default:"image"}]},Fe(t6,pe,{transform(t,e){if(!e.changed()&&!t.modified())return e.StopPropagation;var n=e.materialize(e.SOURCE).source,r=t.resolve==="shared",i=t.field||mi,s=nPe(t.opacity,t),o=tPe(t.color,t),u=t.as||"image",a={$x:0,$y:0,$value:0,$max:r?Cx(n.map(l=>Cx(i(l).values))):0};return n.forEach(l=>{const c=i(l),f=ft({},l,a);r||(f.$max=Cx(c.values||[])),l[u]=rPe(c,f,o.dep?o:Ei(o(f)),s.dep?s:Ei(s(f)))}),e.reflow(!0).modifies(u)}});function tPe(t,e){let n;return ct(t)?(n=r=>ac(t(r,e)),n.dep=Gte(t)):n=Ei(ac(t||"#888")),n}function nPe(t,e){let n;return ct(t)?(n=r=>t(r,e),n.dep=Gte(t)):t?n=Ei(t):(n=r=>r.$value/r.$max||0,n.dep=!0),n}function Gte(t){if(!ct(t))return!1;const e=Xu(gi(t));return e.$x||e.$y||e.$value||e.$max}function rPe(t,e,n,r){const i=t.width,s=t.height,o=t.x1||0,u=t.y1||0,a=t.x2||i,l=t.y2||s,c=t.values,f=c?g=>c[g]:Ax,x=sc(a-o,l-u),h=x.getContext("2d"),p=h.getImageData(0,0,a-o,l-u),m=p.data;for(let g=u,y=0;g<l;++g){e.$y=g-u;for(let E=o,A=g*i;E<a;++E,y+=4){e.$x=E-o,e.$value=f(E+A);const S=n(e);m[y+0]=S.r,m[y+1]=S.g,m[y+2]=S.b,m[y+3]=~~(255*r(e))}}return h.putImageData(p,0,0),x}function Wte(t){pe.call(this,null,t),this.modified(!0)}Fe(Wte,pe,{transform(t,e){let n=this.value;return!n||t.modified("type")?(this.value=n=sPe(t.type),HB.forEach(r=>{t[r]!=null&&Vte(n,r,t[r])})):HB.forEach(r=>{t.modified(r)&&Vte(n,r,t[r])}),t.pointRadius!=null&&n.path.pointRadius(t.pointRadius),t.fit&&iPe(n,t),e.fork(e.NO_SOURCE|e.NO_FIELDS)}});function iPe(t,e){const n=oPe(e.fit);e.extent?t.fitExtent(e.extent,n):e.size&&t.fitSize(e.size,n)}function sPe(t){const e=Pte((t||"mercator").toLowerCase());return e||ve("Unrecognized projection type: "+t),e()}function Vte(t,e,n){ct(t[e])&&t[e](n)}function oPe(t){return t=Pe(t),t.length===1?t[0]:{type:YB,features:t.reduce((e,n)=>e.concat(uPe(n)),[])}}function uPe(t){return t.type===YB?t.features:Pe(t).filter(e=>e!=null).map(e=>e.type===VB?e:{type:VB,geometry:e})}const aPe=Object.freeze(Object.defineProperty({__proto__:null,contour:WB,geojson:XB,geopath:KB,geopoint:JB,geoshape:ZB,graticule:e6,heatmap:t6,isocontour:zB,kde2d:GB,projection:Wte},Symbol.toStringTag,{value:"Module"}));function lPe(t,e){var n,r=1;t==null&&(t=0),e==null&&(e=0);function i(){var s,o=n.length,u,a=0,l=0;for(s=0;s<o;++s)u=n[s],a+=u.x,l+=u.y;for(a=(a/o-t)*r,l=(l/o-e)*r,s=0;s<o;++s)u=n[s],u.x-=a,u.y-=l}return i.initialize=function(s){n=s},i.x=function(s){return arguments.length?(t=+s,i):t},i.y=function(s){return arguments.length?(e=+s,i):e},i.strength=function(s){return arguments.length?(r=+s,i):r},i}function cPe(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return Yte(this.cover(e,n),e,n,t)}function Yte(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,s=t._root,o={data:r},u=t._x0,a=t._y0,l=t._x1,c=t._y1,f,x,h,p,m,g,y,E;if(!s)return t._root=o,t;for(;s.length;)if((m=e>=(f=(u+l)/2))?u=f:l=f,(g=n>=(x=(a+c)/2))?a=x:c=x,i=s,!(s=s[y=g<<1|m]))return i[y]=o,t;if(h=+t._x.call(null,s.data),p=+t._y.call(null,s.data),e===h&&n===p)return o.next=s,i?i[y]=o:t._root=o,t;do i=i?i[y]=new Array(4):t._root=new Array(4),(m=e>=(f=(u+l)/2))?u=f:l=f,(g=n>=(x=(a+c)/2))?a=x:c=x;while((y=g<<1|m)===(E=(p>=x)<<1|h>=f));return i[E]=s,i[y]=o,t}function fPe(t){var e,n,r=t.length,i,s,o=new Array(r),u=new Array(r),a=1/0,l=1/0,c=-1/0,f=-1/0;for(n=0;n<r;++n)isNaN(i=+this._x.call(null,e=t[n]))||isNaN(s=+this._y.call(null,e))||(o[n]=i,u[n]=s,i<a&&(a=i),i>c&&(c=i),s<l&&(l=s),s>f&&(f=s));if(a>c||l>f)return this;for(this.cover(a,l).cover(c,f),n=0;n<r;++n)Yte(this,o[n],u[n],t[n]);return this}function xPe(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,i=this._x1,s=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,s=(r=Math.floor(e))+1;else{for(var o=i-n||1,u=this._root,a,l;n>t||t>=i||r>e||e>=s;)switch(l=(e<r)<<1|t<n,a=new Array(4),a[l]=u,u=a,o*=2,l){case 0:i=n+o,s=r+o;break;case 1:n=i-o,s=r+o;break;case 2:i=n+o,r=s-o;break;case 3:n=i-o,r=s-o;break}this._root&&this._root.length&&(this._root=u)}return this._x0=n,this._y0=r,this._x1=i,this._y1=s,this}function dPe(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function hPe(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function Di(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i}function pPe(t,e,n){var r,i=this._x0,s=this._y0,o,u,a,l,c=this._x1,f=this._y1,x=[],h=this._root,p,m;for(h&&x.push(new Di(h,i,s,c,f)),n==null?n=1/0:(i=t-n,s=e-n,c=t+n,f=e+n,n*=n);p=x.pop();)if(!(!(h=p.node)||(o=p.x0)>c||(u=p.y0)>f||(a=p.x1)<i||(l=p.y1)<s))if(h.length){var g=(o+a)/2,y=(u+l)/2;x.push(new Di(h[3],g,y,a,l),new Di(h[2],o,y,g,l),new Di(h[1],g,u,a,y),new Di(h[0],o,u,g,y)),(m=(e>=y)<<1|t>=g)&&(p=x[x.length-1],x[x.length-1]=x[x.length-1-m],x[x.length-1-m]=p)}else{var E=t-+this._x.call(null,h.data),A=e-+this._y.call(null,h.data),S=E*E+A*A;if(S<n){var v=Math.sqrt(n=S);i=t-v,s=e-v,c=t+v,f=e+v,r=h.data}}return r}function gPe(t){if(isNaN(c=+this._x.call(null,t))||isNaN(f=+this._y.call(null,t)))return this;var e,n=this._root,r,i,s,o=this._x0,u=this._y0,a=this._x1,l=this._y1,c,f,x,h,p,m,g,y;if(!n)return this;if(n.length)for(;;){if((p=c>=(x=(o+a)/2))?o=x:a=x,(m=f>=(h=(u+l)/2))?u=h:l=h,e=n,!(n=n[g=m<<1|p]))return this;if(!n.length)break;(e[g+1&3]||e[g+2&3]||e[g+3&3])&&(r=e,y=g)}for(;n.data!==t;)if(i=n,!(n=n.next))return this;return(s=n.next)&&delete n.next,i?(s?i.next=s:delete i.next,this):e?(s?e[g]=s:delete e[g],(n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length&&(r?r[y]=n:this._root=n),this):(this._root=s,this)}function mPe(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function yPe(){return this._root}function EPe(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function APe(t){var e=[],n,r=this._root,i,s,o,u,a;for(r&&e.push(new Di(r,this._x0,this._y0,this._x1,this._y1));n=e.pop();)if(!t(r=n.node,s=n.x0,o=n.y0,u=n.x1,a=n.y1)&&r.length){var l=(s+u)/2,c=(o+a)/2;(i=r[3])&&e.push(new Di(i,l,c,u,a)),(i=r[2])&&e.push(new Di(i,s,c,l,a)),(i=r[1])&&e.push(new Di(i,l,o,u,c)),(i=r[0])&&e.push(new Di(i,s,o,l,c))}return this}function SPe(t){var e=[],n=[],r;for(this._root&&e.push(new Di(this._root,this._x0,this._y0,this._x1,this._y1));r=e.pop();){var i=r.node;if(i.length){var s,o=r.x0,u=r.y0,a=r.x1,l=r.y1,c=(o+a)/2,f=(u+l)/2;(s=i[0])&&e.push(new Di(s,o,u,c,f)),(s=i[1])&&e.push(new Di(s,c,u,a,f)),(s=i[2])&&e.push(new Di(s,o,f,c,l)),(s=i[3])&&e.push(new Di(s,c,f,a,l))}n.push(r)}for(;r=n.pop();)t(r.node,r.x0,r.y0,r.x1,r.y1);return this}function vPe(t){return t[0]}function _Pe(t){return arguments.length?(this._x=t,this):this._x}function CPe(t){return t[1]}function bPe(t){return arguments.length?(this._y=t,this):this._y}function n6(t,e,n){var r=new r6(e??vPe,n??CPe,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function r6(t,e,n,r,i,s){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=s,this._root=void 0}function Xte(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var Fi=n6.prototype=r6.prototype;Fi.copy=function(){var t=new r6(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,r;if(!e)return t;if(!e.length)return t._root=Xte(e),t;for(n=[{source:e,target:t._root=new Array(4)}];e=n.pop();)for(var i=0;i<4;++i)(r=e.source[i])&&(r.length?n.push({source:r,target:e.target[i]=new Array(4)}):e.target[i]=Xte(r));return t},Fi.add=cPe,Fi.addAll=fPe,Fi.cover=xPe,Fi.data=dPe,Fi.extent=hPe,Fi.find=pPe,Fi.remove=gPe,Fi.removeAll=mPe,Fi.root=yPe,Fi.size=EPe,Fi.visit=APe,Fi.visitAfter=SPe,Fi.x=_Pe,Fi.y=bPe;function wi(t){return function(){return t}}function vc(t){return(t()-.5)*1e-6}function TPe(t){return t.x+t.vx}function RPe(t){return t.y+t.vy}function OPe(t){var e,n,r,i=1,s=1;typeof t!="function"&&(t=wi(t==null?1:+t));function o(){for(var l,c=e.length,f,x,h,p,m,g,y=0;y<s;++y)for(f=n6(e,TPe,RPe).visitAfter(u),l=0;l<c;++l)x=e[l],m=n[x.index],g=m*m,h=x.x+x.vx,p=x.y+x.vy,f.visit(E);function E(A,S,v,_,C){var b=A.data,R=A.r,O=m+R;if(b){if(b.index>x.index){var L=h-b.x-b.vx,M=p-b.y-b.vy,q=L*L+M*M;q<O*O&&(L===0&&(L=vc(r),q+=L*L),M===0&&(M=vc(r),q+=M*M),q=(O-(q=Math.sqrt(q)))/q*i,x.vx+=(L*=q)*(O=(R*=R)/(g+R)),x.vy+=(M*=q)*O,b.vx-=L*(O=1-O),b.vy-=M*O)}return}return S>h+O||_<h-O||v>p+O||C<p-O}}function u(l){if(l.data)return l.r=n[l.data.index];for(var c=l.r=0;c<4;++c)l[c]&&l[c].r>l.r&&(l.r=l[c].r)}function a(){if(e){var l,c=e.length,f;for(n=new Array(c),l=0;l<c;++l)f=e[l],n[f.index]=+t(f,l,e)}}return o.initialize=function(l,c){e=l,r=c,a()},o.iterations=function(l){return arguments.length?(s=+l,o):s},o.strength=function(l){return arguments.length?(i=+l,o):i},o.radius=function(l){return arguments.length?(t=typeof l=="function"?l:wi(+l),a(),o):t},o}function NPe(t){return t.index}function Kte(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function DPe(t){var e=NPe,n=f,r,i=wi(30),s,o,u,a,l,c=1;t==null&&(t=[]);function f(g){return 1/Math.min(u[g.source.index],u[g.target.index])}function x(g){for(var y=0,E=t.length;y<c;++y)for(var A=0,S,v,_,C,b,R,O;A<E;++A)S=t[A],v=S.source,_=S.target,C=_.x+_.vx-v.x-v.vx||vc(l),b=_.y+_.vy-v.y-v.vy||vc(l),R=Math.sqrt(C*C+b*b),R=(R-s[A])/R*g*r[A],C*=R,b*=R,_.vx-=C*(O=a[A]),_.vy-=b*O,v.vx+=C*(O=1-O),v.vy+=b*O}function h(){if(o){var g,y=o.length,E=t.length,A=new Map(o.map((v,_)=>[e(v,_,o),v])),S;for(g=0,u=new Array(y);g<E;++g)S=t[g],S.index=g,typeof S.source!="object"&&(S.source=Kte(A,S.source)),typeof S.target!="object"&&(S.target=Kte(A,S.target)),u[S.source.index]=(u[S.source.index]||0)+1,u[S.target.index]=(u[S.target.index]||0)+1;for(g=0,a=new Array(E);g<E;++g)S=t[g],a[g]=u[S.source.index]/(u[S.source.index]+u[S.target.index]);r=new Array(E),p(),s=new Array(E),m()}}function p(){if(o)for(var g=0,y=t.length;g<y;++g)r[g]=+n(t[g],g,t)}function m(){if(o)for(var g=0,y=t.length;g<y;++g)s[g]=+i(t[g],g,t)}return x.initialize=function(g,y){o=g,l=y,h()},x.links=function(g){return arguments.length?(t=g,h(),x):t},x.id=function(g){return arguments.length?(e=g,x):e},x.iterations=function(g){return arguments.length?(c=+g,x):c},x.strength=function(g){return arguments.length?(n=typeof g=="function"?g:wi(+g),p(),x):n},x.distance=function(g){return arguments.length?(i=typeof g=="function"?g:wi(+g),m(),x):i},x}var FPe={value:()=>{}};function Jte(){for(var t=0,e=arguments.length,n={},r;t<e;++t){if(!(r=arguments[t]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new PR(n)}function PR(t){this._=t}function wPe(t,e){return t.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");if(i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}PR.prototype=Jte.prototype={constructor:PR,on:function(t,e){var n=this._,r=wPe(t+"",n),i,s=-1,o=r.length;if(arguments.length<2){for(;++s<o;)if((i=(t=r[s]).type)&&(i=LPe(n[i],t.name)))return i;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++s<o;)if(i=(t=r[s]).type)n[i]=Zte(n[i],t.name,e);else if(e==null)for(i in n)n[i]=Zte(n[i],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new PR(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,s;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(s=this._[t],r=0,i=s.length;r<i;++r)s[r].value.apply(e,n)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,s=r.length;i<s;++i)r[i].value.apply(e,n)}};function LPe(t,e){for(var n=0,r=t.length,i;n<r;++n)if((i=t[n]).name===e)return i.value}function Zte(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=FPe,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}var e2=0,EE=0,AE=0,ene=1e3,MR,SE,jR=0,ed=0,UR=0,vE=typeof performance=="object"&&performance.now?performance:Date,tne=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function i6(){return ed||(tne(IPe),ed=vE.now()+UR)}function IPe(){ed=0}function qR(){this._call=this._time=this._next=null}qR.prototype=nne.prototype={constructor:qR,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?i6():+n)+(e==null?0:+e),!this._next&&SE!==this&&(SE?SE._next=this:MR=this,SE=this),this._call=t,this._time=n,s6()},stop:function(){this._call&&(this._call=null,this._time=1/0,s6())}};function nne(t,e,n){var r=new qR;return r.restart(t,e,n),r}function $Pe(){i6(),++e2;for(var t=MR,e;t;)(e=ed-t._time)>=0&&t._call.call(void 0,e),t=t._next;--e2}function rne(){ed=(jR=vE.now())+UR,e2=EE=0;try{$Pe()}finally{e2=0,kPe(),ed=0}}function BPe(){var t=vE.now(),e=t-jR;e>ene&&(UR-=e,jR=t)}function kPe(){for(var t,e=MR,n,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:MR=n);SE=t,s6(r)}function s6(t){if(!e2){EE&&(EE=clearTimeout(EE));var e=t-ed;e>24?(t<1/0&&(EE=setTimeout(rne,t-vE.now()-UR)),AE&&(AE=clearInterval(AE))):(AE||(jR=vE.now(),AE=setInterval(BPe,ene)),e2=1,tne(rne))}}function PPe(t,e,n){var r=new qR,i=e;return e==null?(r.restart(t,e,n),r):(r._restart=r.restart,r.restart=function(s,o,u){o=+o,u=u==null?i6():+u,r._restart(function a(l){l+=i,r._restart(a,i+=o,u),s(l)},o,u)},r.restart(t,e,n),r)}const MPe=1664525,jPe=1013904223,ine=4294967296;function UPe(){let t=1;return()=>(t=(MPe*t+jPe)%ine)/ine}function qPe(t){return t.x}function HPe(t){return t.y}var zPe=10,QPe=Math.PI*(3-Math.sqrt(5));function GPe(t){var e,n=1,r=.001,i=1-Math.pow(r,1/300),s=0,o=.6,u=new Map,a=nne(f),l=Jte("tick","end"),c=UPe();t==null&&(t=[]);function f(){x(),l.call("tick",e),n<r&&(a.stop(),l.call("end",e))}function x(m){var g,y=t.length,E;m===void 0&&(m=1);for(var A=0;A<m;++A)for(n+=(s-n)*i,u.forEach(function(S){S(n)}),g=0;g<y;++g)E=t[g],E.fx==null?E.x+=E.vx*=o:(E.x=E.fx,E.vx=0),E.fy==null?E.y+=E.vy*=o:(E.y=E.fy,E.vy=0);return e}function h(){for(var m=0,g=t.length,y;m<g;++m){if(y=t[m],y.index=m,y.fx!=null&&(y.x=y.fx),y.fy!=null&&(y.y=y.fy),isNaN(y.x)||isNaN(y.y)){var E=zPe*Math.sqrt(.5+m),A=m*QPe;y.x=E*Math.cos(A),y.y=E*Math.sin(A)}(isNaN(y.vx)||isNaN(y.vy))&&(y.vx=y.vy=0)}}function p(m){return m.initialize&&m.initialize(t,c),m}return h(),e={tick:x,restart:function(){return a.restart(f),e},stop:function(){return a.stop(),e},nodes:function(m){return arguments.length?(t=m,h(),u.forEach(p),e):t},alpha:function(m){return arguments.length?(n=+m,e):n},alphaMin:function(m){return arguments.length?(r=+m,e):r},alphaDecay:function(m){return arguments.length?(i=+m,e):+i},alphaTarget:function(m){return arguments.length?(s=+m,e):s},velocityDecay:function(m){return arguments.length?(o=1-m,e):1-o},randomSource:function(m){return arguments.length?(c=m,u.forEach(p),e):c},force:function(m,g){return arguments.length>1?(g==null?u.delete(m):u.set(m,p(g)),e):u.get(m)},find:function(m,g,y){var E=0,A=t.length,S,v,_,C,b;for(y==null?y=1/0:y*=y,E=0;E<A;++E)C=t[E],S=m-C.x,v=g-C.y,_=S*S+v*v,_<y&&(b=C,y=_);return b},on:function(m,g){return arguments.length>1?(l.on(m,g),e):l.on(m)}}}function WPe(){var t,e,n,r,i=wi(-30),s,o=1,u=1/0,a=.81;function l(h){var p,m=t.length,g=n6(t,qPe,HPe).visitAfter(f);for(r=h,p=0;p<m;++p)e=t[p],g.visit(x)}function c(){if(t){var h,p=t.length,m;for(s=new Array(p),h=0;h<p;++h)m=t[h],s[m.index]=+i(m,h,t)}}function f(h){var p=0,m,g,y=0,E,A,S;if(h.length){for(E=A=S=0;S<4;++S)(m=h[S])&&(g=Math.abs(m.value))&&(p+=m.value,y+=g,E+=g*m.x,A+=g*m.y);h.x=E/y,h.y=A/y}else{m=h,m.x=m.data.x,m.y=m.data.y;do p+=s[m.data.index];while(m=m.next)}h.value=p}function x(h,p,m,g){if(!h.value)return!0;var y=h.x-e.x,E=h.y-e.y,A=g-p,S=y*y+E*E;if(A*A/a<S)return S<u&&(y===0&&(y=vc(n),S+=y*y),E===0&&(E=vc(n),S+=E*E),S<o&&(S=Math.sqrt(o*S)),e.vx+=y*h.value*r/S,e.vy+=E*h.value*r/S),!0;if(h.length||S>=u)return;(h.data!==e||h.next)&&(y===0&&(y=vc(n),S+=y*y),E===0&&(E=vc(n),S+=E*E),S<o&&(S=Math.sqrt(o*S)));do h.data!==e&&(A=s[h.data.index]*r/S,e.vx+=y*A,e.vy+=E*A);while(h=h.next)}return l.initialize=function(h,p){t=h,n=p,c()},l.strength=function(h){return arguments.length?(i=typeof h=="function"?h:wi(+h),c(),l):i},l.distanceMin=function(h){return arguments.length?(o=h*h,l):Math.sqrt(o)},l.distanceMax=function(h){return arguments.length?(u=h*h,l):Math.sqrt(u)},l.theta=function(h){return arguments.length?(a=h*h,l):Math.sqrt(a)},l}function VPe(t){var e=wi(.1),n,r,i;typeof t!="function"&&(t=wi(t==null?0:+t));function s(u){for(var a=0,l=n.length,c;a<l;++a)c=n[a],c.vx+=(i[a]-c.x)*r[a]*u}function o(){if(n){var u,a=n.length;for(r=new Array(a),i=new Array(a),u=0;u<a;++u)r[u]=isNaN(i[u]=+t(n[u],u,n))?0:+e(n[u],u,n)}}return s.initialize=function(u){n=u,o()},s.strength=function(u){return arguments.length?(e=typeof u=="function"?u:wi(+u),o(),s):e},s.x=function(u){return arguments.length?(t=typeof u=="function"?u:wi(+u),o(),s):t},s}function YPe(t){var e=wi(.1),n,r,i;typeof t!="function"&&(t=wi(t==null?0:+t));function s(u){for(var a=0,l=n.length,c;a<l;++a)c=n[a],c.vy+=(i[a]-c.y)*r[a]*u}function o(){if(n){var u,a=n.length;for(r=new Array(a),i=new Array(a),u=0;u<a;++u)r[u]=isNaN(i[u]=+t(n[u],u,n))?0:+e(n[u],u,n)}}return s.initialize=function(u){n=u,o()},s.strength=function(u){return arguments.length?(e=typeof u=="function"?u:wi(+u),o(),s):e},s.y=function(u){return arguments.length?(t=typeof u=="function"?u:wi(+u),o(),s):t},s}const sne={center:lPe,collide:OPe,nbody:WPe,link:DPe,x:VPe,y:YPe},_E="forces",o6=["alpha","alphaMin","alphaTarget","velocityDecay","forces"],XPe=["static","iterations"],one=["x","y","vx","vy"];function u6(t){pe.call(this,null,t)}u6.Definition={type:"Force",metadata:{modifies:!0},params:[{name:"static",type:"boolean",default:!1},{name:"restart",type:"boolean",default:!1},{name:"iterations",type:"number",default:300},{name:"alpha",type:"number",default:1},{name:"alphaMin",type:"number",default:.001},{name:"alphaTarget",type:"number",default:0},{name:"velocityDecay",type:"number",default:.4},{name:"forces",type:"param",array:!0,params:[{key:{force:"center"},params:[{name:"x",type:"number",default:0},{name:"y",type:"number",default:0}]},{key:{force:"collide"},params:[{name:"radius",type:"number",expr:!0},{name:"strength",type:"number",default:.7},{name:"iterations",type:"number",default:1}]},{key:{force:"nbody"},params:[{name:"strength",type:"number",default:-30},{name:"theta",type:"number",default:.9},{name:"distanceMin",type:"number",default:1},{name:"distanceMax",type:"number"}]},{key:{force:"link"},params:[{name:"links",type:"data"},{name:"id",type:"field"},{name:"distance",type:"number",default:30,expr:!0},{name:"strength",type:"number",expr:!0},{name:"iterations",type:"number",default:1}]},{key:{force:"x"},params:[{name:"strength",type:"number",default:.1},{name:"x",type:"field"}]},{key:{force:"y"},params:[{name:"strength",type:"number",default:.1},{name:"y",type:"field"}]}]},{name:"as",type:"string",array:!0,modify:!1,default:one}]},Fe(u6,pe,{transform(t,e){var n=this.value,r=e.changed(e.ADD_REM),i=t.modified(o6),s=t.iterations||300;if(n?(r&&(e.modifies("index"),n.nodes(e.source)),(i||e.changed(e.MOD))&&une(n,t,0,e)):(this.value=n=JPe(e.source,t),n.on("tick",KPe(e.dataflow,this)),t.static||(r=!0,n.tick()),e.modifies("index")),i||r||t.modified(XPe)||e.changed()&&t.restart){if(n.alpha(Math.max(n.alpha(),t.alpha||1)).alphaDecay(1-Math.pow(n.alphaMin(),1/s)),t.static)for(n.stop();--s>=0;)n.tick();else if(n.stopped()&&n.restart(),!r)return e.StopPropagation}return this.finish(t,e)},finish(t,e){const n=e.dataflow;for(let u=this._argops,a=0,l=u.length,c;a<l;++a)if(c=u[a],!(c.name!==_E||c.op._argval.force!=="link")){for(var r=c.op._argops,i=0,s=r.length,o;i<s;++i)if(r[i].name==="links"&&(o=r[i].op.source)){n.pulse(o,n.changeset().reflow());break}}return e.reflow(t.modified()).modifies(one)}});function KPe(t,e){return()=>t.touch(e).run()}function JPe(t,e){const n=GPe(t),r=n.stop,i=n.restart;let s=!1;return n.stopped=()=>s,n.restart=()=>(s=!1,i()),n.stop=()=>(s=!0,r()),une(n,e,!0).on("end",()=>s=!0)}function une(t,e,n,r){var i=Pe(e.forces),s,o,u,a;for(s=0,o=o6.length;s<o;++s)u=o6[s],u!==_E&&e.modified(u)&&t[u](e[u]);for(s=0,o=i.length;s<o;++s)a=_E+s,u=n||e.modified(_E,s)?eMe(i[s]):r&&ZPe(i[s],r)?t.force(a):null,u&&t.force(a,u);for(o=t.numForces||0;s<o;++s)t.force(_E+s,null);return t.numForces=i.length,t}function ZPe(t,e){var n,r;for(n in t)if(ct(r=t[n])&&e.modified(gi(r)))return 1;return 0}function eMe(t){var e,n;Je(sne,t.force)||ve("Unrecognized force: "+t.force),e=sne[t.force]();for(n in t)ct(e[n])&&tMe(e[n],t[n],t);return e}function tMe(t,e,n){t(ct(e)?r=>e(r,n):e)}const nMe=Object.freeze(Object.defineProperty({__proto__:null,force:u6},Symbol.toStringTag,{value:"Module"}));function rMe(t,e){return t.parent===e.parent?1:2}function iMe(t){return t.reduce(sMe,0)/t.length}function sMe(t,e){return t+e.x}function oMe(t){return 1+t.reduce(uMe,0)}function uMe(t,e){return Math.max(t,e.y)}function aMe(t){for(var e;e=t.children;)t=e[0];return t}function lMe(t){for(var e;e=t.children;)t=e[e.length-1];return t}function cMe(){var t=rMe,e=1,n=1,r=!1;function i(s){var o,u=0;s.eachAfter(function(x){var h=x.children;h?(x.x=iMe(h),x.y=oMe(h)):(x.x=o?u+=t(x,o):0,x.y=0,o=x)});var a=aMe(s),l=lMe(s),c=a.x-t(a,l)/2,f=l.x+t(l,a)/2;return s.eachAfter(r?function(x){x.x=(x.x-s.x)*e,x.y=(s.y-x.y)*n}:function(x){x.x=(x.x-c)/(f-c)*e,x.y=(1-(s.y?x.y/s.y:1))*n})}return i.separation=function(s){return arguments.length?(t=s,i):t},i.size=function(s){return arguments.length?(r=!1,e=+s[0],n=+s[1],i):r?null:[e,n]},i.nodeSize=function(s){return arguments.length?(r=!0,e=+s[0],n=+s[1],i):r?[e,n]:null},i}function fMe(t){var e=0,n=t.children,r=n&&n.length;if(!r)e=1;else for(;--r>=0;)e+=n[r].value;t.value=e}function xMe(){return this.eachAfter(fMe)}function dMe(t,e){let n=-1;for(const r of this)t.call(e,r,++n,this);return this}function hMe(t,e){for(var n=this,r=[n],i,s,o=-1;n=r.pop();)if(t.call(e,n,++o,this),i=n.children)for(s=i.length-1;s>=0;--s)r.push(i[s]);return this}function pMe(t,e){for(var n=this,r=[n],i=[],s,o,u,a=-1;n=r.pop();)if(i.push(n),s=n.children)for(o=0,u=s.length;o<u;++o)r.push(s[o]);for(;n=i.pop();)t.call(e,n,++a,this);return this}function gMe(t,e){let n=-1;for(const r of this)if(t.call(e,r,++n,this))return r}function mMe(t){return this.eachAfter(function(e){for(var n=+t(e.data)||0,r=e.children,i=r&&r.length;--i>=0;)n+=r[i].value;e.value=n})}function yMe(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})}function EMe(t){for(var e=this,n=AMe(e,t),r=[e];e!==n;)e=e.parent,r.push(e);for(var i=r.length;t!==n;)r.splice(i,0,t),t=t.parent;return r}function AMe(t,e){if(t===e)return t;var n=t.ancestors(),r=e.ancestors(),i=null;for(t=n.pop(),e=r.pop();t===e;)i=t,t=n.pop(),e=r.pop();return i}function SMe(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e}function vMe(){return Array.from(this)}function _Me(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t}function CMe(){var t=this,e=[];return t.each(function(n){n!==t&&e.push({source:n.parent,target:n})}),e}function*bMe(){var t=this,e,n=[t],r,i,s;do for(e=n.reverse(),n=[];t=e.pop();)if(yield t,r=t.children)for(i=0,s=r.length;i<s;++i)n.push(r[i]);while(n.length)}function a6(t,e){t instanceof Map?(t=[void 0,t],e===void 0&&(e=OMe)):e===void 0&&(e=RMe);for(var n=new t2(t),r,i=[n],s,o,u,a;r=i.pop();)if((o=e(r.data))&&(a=(o=Array.from(o)).length))for(r.children=o,u=a-1;u>=0;--u)i.push(s=o[u]=new t2(o[u])),s.parent=r,s.depth=r.depth+1;return n.eachBefore(ane)}function TMe(){return a6(this).eachBefore(NMe)}function RMe(t){return t.children}function OMe(t){return Array.isArray(t)?t[1]:null}function NMe(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function ane(t){var e=0;do t.height=e;while((t=t.parent)&&t.height<++e)}function t2(t){this.data=t,this.depth=this.height=0,this.parent=null}t2.prototype=a6.prototype={constructor:t2,count:xMe,each:dMe,eachAfter:pMe,eachBefore:hMe,find:gMe,sum:mMe,sort:yMe,path:EMe,ancestors:SMe,descendants:vMe,leaves:_Me,links:CMe,copy:TMe,[Symbol.iterator]:bMe};function HR(t){return t==null?null:lne(t)}function lne(t){if(typeof t!="function")throw new Error;return t}function td(){return 0}function n2(t){return function(){return t}}const DMe=1664525,FMe=1013904223,cne=4294967296;function wMe(){let t=1;return()=>(t=(DMe*t+FMe)%cne)/cne}function LMe(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function IMe(t,e){let n=t.length,r,i;for(;n;)i=e()*n--|0,r=t[n],t[n]=t[i],t[i]=r;return t}function $Me(t,e){for(var n=0,r=(t=IMe(Array.from(t),e)).length,i=[],s,o;n<r;)s=t[n],o&&fne(o,s)?++n:(o=kMe(i=BMe(i,s)),n=0);return o}function BMe(t,e){var n,r;if(l6(e,t))return[e];for(n=0;n<t.length;++n)if(zR(e,t[n])&&l6(CE(t[n],e),t))return[t[n],e];for(n=0;n<t.length-1;++n)for(r=n+1;r<t.length;++r)if(zR(CE(t[n],t[r]),e)&&zR(CE(t[n],e),t[r])&&zR(CE(t[r],e),t[n])&&l6(xne(t[n],t[r],e),t))return[t[n],t[r],e];throw new Error}function zR(t,e){var n=t.r-e.r,r=e.x-t.x,i=e.y-t.y;return n<0||n*n<r*r+i*i}function fne(t,e){var n=t.r-e.r+Math.max(t.r,e.r,1)*1e-9,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function l6(t,e){for(var n=0;n<e.length;++n)if(!fne(t,e[n]))return!1;return!0}function kMe(t){switch(t.length){case 1:return PMe(t[0]);case 2:return CE(t[0],t[1]);case 3:return xne(t[0],t[1],t[2])}}function PMe(t){return{x:t.x,y:t.y,r:t.r}}function CE(t,e){var n=t.x,r=t.y,i=t.r,s=e.x,o=e.y,u=e.r,a=s-n,l=o-r,c=u-i,f=Math.sqrt(a*a+l*l);return{x:(n+s+a/f*c)/2,y:(r+o+l/f*c)/2,r:(f+i+u)/2}}function xne(t,e,n){var r=t.x,i=t.y,s=t.r,o=e.x,u=e.y,a=e.r,l=n.x,c=n.y,f=n.r,x=r-o,h=r-l,p=i-u,m=i-c,g=a-s,y=f-s,E=r*r+i*i-s*s,A=E-o*o-u*u+a*a,S=E-l*l-c*c+f*f,v=h*p-x*m,_=(p*S-m*A)/(v*2)-r,C=(m*g-p*y)/v,b=(h*A-x*S)/(v*2)-i,R=(x*y-h*g)/v,O=C*C+R*R-1,L=2*(s+_*C+b*R),M=_*_+b*b-s*s,q=-(Math.abs(O)>1e-6?(L+Math.sqrt(L*L-4*O*M))/(2*O):M/L);return{x:r+_+C*q,y:i+b+R*q,r:q}}function dne(t,e,n){var r=t.x-e.x,i,s,o=t.y-e.y,u,a,l=r*r+o*o;l?(s=e.r+n.r,s*=s,a=t.r+n.r,a*=a,s>a?(i=(l+a-s)/(2*l),u=Math.sqrt(Math.max(0,a/l-i*i)),n.x=t.x-i*r-u*o,n.y=t.y-i*o+u*r):(i=(l+s-a)/(2*l),u=Math.sqrt(Math.max(0,s/l-i*i)),n.x=e.x+i*r-u*o,n.y=e.y+i*o+u*r)):(n.x=e.x+n.r,n.y=e.y)}function hne(t,e){var n=t.r+e.r-1e-6,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function pne(t){var e=t._,n=t.next._,r=e.r+n.r,i=(e.x*n.r+n.x*e.r)/r,s=(e.y*n.r+n.y*e.r)/r;return i*i+s*s}function QR(t){this._=t,this.next=null,this.previous=null}function MMe(t,e){if(!(s=(t=LMe(t)).length))return 0;var n,r,i,s,o,u,a,l,c,f,x;if(n=t[0],n.x=0,n.y=0,!(s>1))return n.r;if(r=t[1],n.x=-r.r,r.x=n.r,r.y=0,!(s>2))return n.r+r.r;dne(r,n,i=t[2]),n=new QR(n),r=new QR(r),i=new QR(i),n.next=i.previous=r,r.next=n.previous=i,i.next=r.previous=n;e:for(a=3;a<s;++a){dne(n._,r._,i=t[a]),i=new QR(i),l=r.next,c=n.previous,f=r._.r,x=n._.r;do if(f<=x){if(hne(l._,i._)){r=l,n.next=r,r.previous=n,--a;continue e}f+=l._.r,l=l.next}else{if(hne(c._,i._)){n=c,n.next=r,r.previous=n,--a;continue e}x+=c._.r,c=c.previous}while(l!==c.next);for(i.previous=n,i.next=r,n.next=r.previous=r=i,o=pne(n);(i=i.next)!==r;)(u=pne(i))<o&&(n=i,o=u);r=n.next}for(n=[r._],i=r;(i=i.next)!==r;)n.push(i._);for(i=$Me(n,e),a=0;a<s;++a)n=t[a],n.x-=i.x,n.y-=i.y;return i.r}function jMe(t){return Math.sqrt(t.value)}function UMe(){var t=null,e=1,n=1,r=td;function i(s){const o=wMe();return s.x=e/2,s.y=n/2,t?s.eachBefore(gne(t)).eachAfter(c6(r,.5,o)).eachBefore(mne(1)):s.eachBefore(gne(jMe)).eachAfter(c6(td,1,o)).eachAfter(c6(r,s.r/Math.min(e,n),o)).eachBefore(mne(Math.min(e,n)/(2*s.r))),s}return i.radius=function(s){return arguments.length?(t=HR(s),i):t},i.size=function(s){return arguments.length?(e=+s[0],n=+s[1],i):[e,n]},i.padding=function(s){return arguments.length?(r=typeof s=="function"?s:n2(+s),i):r},i}function gne(t){return function(e){e.children||(e.r=Math.max(0,+t(e)||0))}}function c6(t,e,n){return function(r){if(i=r.children){var i,s,o=i.length,u=t(r)*e||0,a;if(u)for(s=0;s<o;++s)i[s].r+=u;if(a=MMe(i,n),u)for(s=0;s<o;++s)i[s].r-=u;r.r=a+u}}}function mne(t){return function(e){var n=e.parent;e.r*=t,n&&(e.x=n.x+t*e.x,e.y=n.y+t*e.y)}}function yne(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function bE(t,e,n,r,i){for(var s=t.children,o,u=-1,a=s.length,l=t.value&&(r-e)/t.value;++u<a;)o=s[u],o.y0=n,o.y1=i,o.x0=e,o.x1=e+=o.value*l}function qMe(){var t=1,e=1,n=0,r=!1;function i(o){var u=o.height+1;return o.x0=o.y0=n,o.x1=t,o.y1=e/u,o.eachBefore(s(e,u)),r&&o.eachBefore(yne),o}function s(o,u){return function(a){a.children&&bE(a,a.x0,o*(a.depth+1)/u,a.x1,o*(a.depth+2)/u);var l=a.x0,c=a.y0,f=a.x1-n,x=a.y1-n;f<l&&(l=f=(l+f)/2),x<c&&(c=x=(c+x)/2),a.x0=l,a.y0=c,a.x1=f,a.y1=x}}return i.round=function(o){return arguments.length?(r=!!o,i):r},i.size=function(o){return arguments.length?(t=+o[0],e=+o[1],i):[t,e]},i.padding=function(o){return arguments.length?(n=+o,i):n},i}var HMe={depth:-1},Ene={},f6={};function zMe(t){return t.id}function QMe(t){return t.parentId}function Ane(){var t=zMe,e=QMe,n;function r(i){var s=Array.from(i),o=t,u=e,a,l,c,f,x,h,p,m,g=new Map;if(n!=null){const y=s.map((S,v)=>GMe(n(S,v,i))),E=y.map(Sne),A=new Set(y).add("");for(const S of E)A.has(S)||(A.add(S),y.push(S),E.push(Sne(S)),s.push(f6));o=(S,v)=>y[v],u=(S,v)=>E[v]}for(c=0,a=s.length;c<a;++c)l=s[c],h=s[c]=new t2(l),(p=o(l,c,i))!=null&&(p+="")&&(m=h.id=p,g.set(m,g.has(m)?Ene:h)),(p=u(l,c,i))!=null&&(p+="")&&(h.parent=p);for(c=0;c<a;++c)if(h=s[c],p=h.parent){if(x=g.get(p),!x)throw new Error("missing: "+p);if(x===Ene)throw new Error("ambiguous: "+p);x.children?x.children.push(h):x.children=[h],h.parent=x}else{if(f)throw new Error("multiple roots");f=h}if(!f)throw new Error("no root");if(n!=null){for(;f.data===f6&&f.children.length===1;)f=f.children[0],--a;for(let y=s.length-1;y>=0&&(h=s[y],h.data===f6);--y)h.data=null}if(f.parent=HMe,f.eachBefore(function(y){y.depth=y.parent.depth+1,--a}).eachBefore(ane),f.parent=null,a>0)throw new Error("cycle");return f}return r.id=function(i){return arguments.length?(t=HR(i),r):t},r.parentId=function(i){return arguments.length?(e=HR(i),r):e},r.path=function(i){return arguments.length?(n=HR(i),r):n},r}function GMe(t){t=`${t}`;let e=t.length;return x6(t,e-1)&&!x6(t,e-2)&&(t=t.slice(0,-1)),t[0]==="/"?t:`/${t}`}function Sne(t){let e=t.length;if(e<2)return"";for(;--e>1&&!x6(t,e););return t.slice(0,e)}function x6(t,e){if(t[e]==="/"){let n=0;for(;e>0&&t[--e]==="\\";)++n;if(!(n&1))return!0}return!1}function WMe(t,e){return t.parent===e.parent?1:2}function d6(t){var e=t.children;return e?e[0]:t.t}function h6(t){var e=t.children;return e?e[e.length-1]:t.t}function VMe(t,e,n){var r=n/(e.i-t.i);e.c-=r,e.s+=n,t.c+=r,e.z+=n,e.m+=n}function YMe(t){for(var e=0,n=0,r=t.children,i=r.length,s;--i>=0;)s=r[i],s.z+=e,s.m+=e,e+=s.s+(n+=s.c)}function XMe(t,e,n){return t.a.parent===e.parent?t.a:n}function GR(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}GR.prototype=Object.create(t2.prototype);function KMe(t){for(var e=new GR(t,0),n,r=[e],i,s,o,u;n=r.pop();)if(s=n._.children)for(n.children=new Array(u=s.length),o=u-1;o>=0;--o)r.push(i=n.children[o]=new GR(s[o],o)),i.parent=n;return(e.parent=new GR(null,0)).children=[e],e}function JMe(){var t=WMe,e=1,n=1,r=null;function i(l){var c=KMe(l);if(c.eachAfter(s),c.parent.m=-c.z,c.eachBefore(o),r)l.eachBefore(a);else{var f=l,x=l,h=l;l.eachBefore(function(E){E.x<f.x&&(f=E),E.x>x.x&&(x=E),E.depth>h.depth&&(h=E)});var p=f===x?1:t(f,x)/2,m=p-f.x,g=e/(x.x+p+m),y=n/(h.depth||1);l.eachBefore(function(E){E.x=(E.x+m)*g,E.y=E.depth*y})}return l}function s(l){var c=l.children,f=l.parent.children,x=l.i?f[l.i-1]:null;if(c){YMe(l);var h=(c[0].z+c[c.length-1].z)/2;x?(l.z=x.z+t(l._,x._),l.m=l.z-h):l.z=h}else x&&(l.z=x.z+t(l._,x._));l.parent.A=u(l,x,l.parent.A||f[0])}function o(l){l._.x=l.z+l.parent.m,l.m+=l.parent.m}function u(l,c,f){if(c){for(var x=l,h=l,p=c,m=x.parent.children[0],g=x.m,y=h.m,E=p.m,A=m.m,S;p=h6(p),x=d6(x),p&&x;)m=d6(m),h=h6(h),h.a=l,S=p.z+E-x.z-g+t(p._,x._),S>0&&(VMe(XMe(p,l,f),l,S),g+=S,y+=S),E+=p.m,g+=x.m,A+=m.m,y+=h.m;p&&!h6(h)&&(h.t=p,h.m+=E-y),x&&!d6(m)&&(m.t=x,m.m+=g-A,f=l)}return f}function a(l){l.x*=e,l.y=l.depth*n}return i.separation=function(l){return arguments.length?(t=l,i):t},i.size=function(l){return arguments.length?(r=!1,e=+l[0],n=+l[1],i):r?null:[e,n]},i.nodeSize=function(l){return arguments.length?(r=!0,e=+l[0],n=+l[1],i):r?[e,n]:null},i}function WR(t,e,n,r,i){for(var s=t.children,o,u=-1,a=s.length,l=t.value&&(i-n)/t.value;++u<a;)o=s[u],o.x0=e,o.x1=r,o.y0=n,o.y1=n+=o.value*l}var vne=(1+Math.sqrt(5))/2;function _ne(t,e,n,r,i,s){for(var o=[],u=e.children,a,l,c=0,f=0,x=u.length,h,p,m=e.value,g,y,E,A,S,v,_;c<x;){h=i-n,p=s-r;do g=u[f++].value;while(!g&&f<x);for(y=E=g,v=Math.max(p/h,h/p)/(m*t),_=g*g*v,S=Math.max(E/_,_/y);f<x;++f){if(g+=l=u[f].value,l<y&&(y=l),l>E&&(E=l),_=g*g*v,A=Math.max(E/_,_/y),A>S){g-=l;break}S=A}o.push(a={value:g,dice:h<p,children:u.slice(c,f)}),a.dice?bE(a,n,r,i,m?r+=p*g/m:s):WR(a,n,r,m?n+=h*g/m:i,s),m-=g,c=f}return o}const Cne=function t(e){function n(r,i,s,o,u){_ne(e,r,i,s,o,u)}return n.ratio=function(r){return t((r=+r)>1?r:1)},n}(vne);function ZMe(){var t=Cne,e=!1,n=1,r=1,i=[0],s=td,o=td,u=td,a=td,l=td;function c(x){return x.x0=x.y0=0,x.x1=n,x.y1=r,x.eachBefore(f),i=[0],e&&x.eachBefore(yne),x}function f(x){var h=i[x.depth],p=x.x0+h,m=x.y0+h,g=x.x1-h,y=x.y1-h;g<p&&(p=g=(p+g)/2),y<m&&(m=y=(m+y)/2),x.x0=p,x.y0=m,x.x1=g,x.y1=y,x.children&&(h=i[x.depth+1]=s(x)/2,p+=l(x)-h,m+=o(x)-h,g-=u(x)-h,y-=a(x)-h,g<p&&(p=g=(p+g)/2),y<m&&(m=y=(m+y)/2),t(x,p,m,g,y))}return c.round=function(x){return arguments.length?(e=!!x,c):e},c.size=function(x){return arguments.length?(n=+x[0],r=+x[1],c):[n,r]},c.tile=function(x){return arguments.length?(t=lne(x),c):t},c.padding=function(x){return arguments.length?c.paddingInner(x).paddingOuter(x):c.paddingInner()},c.paddingInner=function(x){return arguments.length?(s=typeof x=="function"?x:n2(+x),c):s},c.paddingOuter=function(x){return arguments.length?c.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x):c.paddingTop()},c.paddingTop=function(x){return arguments.length?(o=typeof x=="function"?x:n2(+x),c):o},c.paddingRight=function(x){return arguments.length?(u=typeof x=="function"?x:n2(+x),c):u},c.paddingBottom=function(x){return arguments.length?(a=typeof x=="function"?x:n2(+x),c):a},c.paddingLeft=function(x){return arguments.length?(l=typeof x=="function"?x:n2(+x),c):l},c}function e9e(t,e,n,r,i){var s=t.children,o,u=s.length,a,l=new Array(u+1);for(l[0]=a=o=0;o<u;++o)l[o+1]=a+=s[o].value;c(0,u,t.value,e,n,r,i);function c(f,x,h,p,m,g,y){if(f>=x-1){var E=s[f];E.x0=p,E.y0=m,E.x1=g,E.y1=y;return}for(var A=l[f],S=h/2+A,v=f+1,_=x-1;v<_;){var C=v+_>>>1;l[C]<S?v=C+1:_=C}S-l[v-1]<l[v]-S&&f+1<v&&--v;var b=l[v]-A,R=h-b;if(g-p>y-m){var O=h?(p*R+g*b)/h:g;c(f,v,b,p,m,O,y),c(v,x,R,O,m,g,y)}else{var L=h?(m*R+y*b)/h:y;c(f,v,b,p,m,g,L),c(v,x,R,p,L,g,y)}}}function t9e(t,e,n,r,i){(t.depth&1?WR:bE)(t,e,n,r,i)}const n9e=function t(e){function n(r,i,s,o,u){if((a=r._squarify)&&a.ratio===e)for(var a,l,c,f,x=-1,h,p=a.length,m=r.value;++x<p;){for(l=a[x],c=l.children,f=l.value=0,h=c.length;f<h;++f)l.value+=c[f].value;l.dice?bE(l,i,s,o,m?s+=(u-s)*l.value/m:u):WR(l,i,s,m?i+=(o-i)*l.value/m:o,u),m-=l.value}else r._squarify=a=_ne(e,r,i,s,o,u),a.ratio=e}return n.ratio=function(r){return t((r=+r)>1?r:1)},n}(vne);function p6(t,e,n){const r={};return t.each(i=>{const s=i.data;n(s)&&(r[e(s)]=i)}),t.lookup=r,t}function g6(t){pe.call(this,null,t)}g6.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const r9e=t=>t.values;Fe(g6,pe,{transform(t,e){e.source||ve("Nest transform requires an upstream data source.");var n=t.generate,r=t.modified(),i=e.clone(),s=this.value;return(!s||r||e.changed())&&(s&&s.each(o=>{o.children&&O5(o.data)&&i.rem.push(o.data)}),this.value=s=a6({values:Pe(t.keys).reduce((o,u)=>(o.key(u),o),i9e()).entries(i.source)},r9e),n&&s.each(o=>{o.children&&(o=Lt(o.data),i.add.push(o),i.source.push(o))}),p6(s,Ze,Ze)),i.source.root=s,i}});function i9e(){const t=[],e={entries:i=>r(n(i,0),0),key:i=>(t.push(i),e)};function n(i,s){if(s>=t.length)return i;const o=i.length,u=t[s++],a={},l={};let c=-1,f,x,h;for(;++c<o;)f=u(x=i[c])+"",(h=a[f])?h.push(x):a[f]=[x];for(f in a)l[f]=n(a[f],s);return l}function r(i,s){if(++s>t.length)return i;const o=[];for(const u in i)o.push({key:u,values:r(i[u],s)});return o}return e}function Bl(t){pe.call(this,null,t)}const s9e=(t,e)=>t.parent===e.parent?1:2;Fe(Bl,pe,{transform(t,e){(!e.source||!e.source.root)&&ve(this.constructor.name+" transform requires a backing tree data source.");const n=this.layout(t.method),r=this.fields,i=e.source.root,s=t.as||r;t.field?i.sum(t.field):i.count(),t.sort&&i.sort(Nx(t.sort,o=>o.data)),o9e(n,this.params,t),n.separation&&n.separation(t.separation!==!1?s9e:ty);try{this.value=n(i)}catch(o){ve(o)}return i.each(o=>u9e(o,r,s)),e.reflow(t.modified()).modifies(s).modifies("leaf")}});function o9e(t,e,n){for(let r,i=0,s=e.length;i<s;++i)r=e[i],r in n&&t[r](n[r])}function u9e(t,e,n){const r=t.data,i=e.length-1;for(let s=0;s<i;++s)r[n[s]]=t[e[s]];r[n[i]]=t.children?t.children.length:0}const m6=["x","y","r","depth","children"];function y6(t){Bl.call(this,t)}y6.Definition={type:"Pack",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"radius",type:"field",default:null},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:m6.length,default:m6}]},Fe(y6,Bl,{layout:UMe,params:["radius","size","padding"],fields:m6});const E6=["x0","y0","x1","y1","depth","children"];function A6(t){Bl.call(this,t)}A6.Definition={type:"Partition",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:E6.length,default:E6}]},Fe(A6,Bl,{layout:qMe,params:["size","round","padding"],fields:E6});function S6(t){pe.call(this,null,t)}S6.Definition={type:"Stratify",metadata:{treesource:!0},params:[{name:"key",type:"field",required:!0},{name:"parentKey",type:"field",required:!0}]},Fe(S6,pe,{transform(t,e){e.source||ve("Stratify transform requires an upstream data source.");let n=this.value;const r=t.modified(),i=e.fork(e.ALL).materialize(e.SOURCE),s=!n||r||e.changed(e.ADD_REM)||e.modified(t.key.fields)||e.modified(t.parentKey.fields);return i.source=i.source.slice(),s&&(n=i.source.length?p6(Ane().id(t.key).parentId(t.parentKey)(i.source),t.key,Go):p6(Ane()([{}]),t.key,t.key)),i.source.root=this.value=n,i}});const bne={tidy:JMe,cluster:cMe},v6=["x","y","depth","children"];function _6(t){Bl.call(this,t)}_6.Definition={type:"Tree",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"tidy",values:["tidy","cluster"]},{name:"size",type:"number",array:!0,length:2},{name:"nodeSize",type:"number",array:!0,length:2},{name:"separation",type:"boolean",default:!0},{name:"as",type:"string",array:!0,length:v6.length,default:v6}]},Fe(_6,Bl,{layout(t){const e=t||"tidy";if(Je(bne,e))return bne[e]();ve("Unrecognized Tree layout method: "+e)},params:["size","nodeSize"],fields:v6});function C6(t){pe.call(this,[],t)}C6.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},Fe(C6,pe,{transform(t,e){const n=this.value,r=e.source&&e.source.root,i=e.fork(e.NO_SOURCE),s={};return r||ve("TreeLinks transform requires a tree data source."),e.changed(e.ADD_REM)?(i.rem=n,e.visit(e.SOURCE,o=>s[Ze(o)]=1),r.each(o=>{const u=o.data,a=o.parent&&o.parent.data;a&&s[Ze(u)]&&s[Ze(a)]&&i.add.push(Lt({source:a,target:u}))}),this.value=i.add):e.changed(e.MOD)&&(e.visit(e.MOD,o=>s[Ze(o)]=1),n.forEach(o=>{(s[Ze(o.source)]||s[Ze(o.target)])&&i.mod.push(o)})),i}});const Tne={binary:e9e,dice:bE,slice:WR,slicedice:t9e,squarify:Cne,resquarify:n9e},b6=["x0","y0","x1","y1","depth","children"];function T6(t){Bl.call(this,t)}T6.Definition={type:"Treemap",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"squarify",values:["squarify","resquarify","binary","dice","slice","slicedice"]},{name:"padding",type:"number",default:0},{name:"paddingInner",type:"number",default:0},{name:"paddingOuter",type:"number",default:0},{name:"paddingTop",type:"number",default:0},{name:"paddingRight",type:"number",default:0},{name:"paddingBottom",type:"number",default:0},{name:"paddingLeft",type:"number",default:0},{name:"ratio",type:"number",default:1.618033988749895},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:b6.length,default:b6}]},Fe(T6,Bl,{layout(){const t=ZMe();return t.ratio=e=>{const n=t.tile();n.ratio&&t.tile(n.ratio(e))},t.method=e=>{Je(Tne,e)?t.tile(Tne[e]):ve("Unrecognized Treemap layout method: "+e)},t},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:b6});const a9e=Object.freeze(Object.defineProperty({__proto__:null,nest:g6,pack:y6,partition:A6,stratify:S6,tree:_6,treelinks:C6,treemap:T6},Symbol.toStringTag,{value:"Module"})),R6=4278190080;function l9e(t,e){const n=t.bitmap();return(e||[]).forEach(r=>n.set(t(r.boundary[0]),t(r.boundary[3]))),[n,void 0]}function c9e(t,e,n,r,i){const s=t.width,o=t.height,u=r||i,a=sc(s,o).getContext("2d"),l=sc(s,o).getContext("2d"),c=u&&sc(s,o).getContext("2d");n.forEach(b=>VR(a,b,!1)),VR(l,e,!1),u&&VR(c,e,!0);const f=O6(a,s,o),x=O6(l,s,o),h=u&&O6(c,s,o),p=t.bitmap(),m=u&&t.bitmap();let g,y,E,A,S,v,_,C;for(y=0;y<o;++y)for(g=0;g<s;++g)S=y*s+g,v=f[S]&R6,C=x[S]&R6,_=u&&h[S]&R6,(v||_||C)&&(E=t(g),A=t(y),!i&&(v||C)&&p.set(E,A),u&&(v||_)&&m.set(E,A));return[p,m]}function O6(t,e,n){return new Uint32Array(t.getImageData(0,0,e,n).data.buffer)}function VR(t,e,n){if(!e.length)return;const r=e[0].mark.marktype;r==="group"?e.forEach(i=>{i.items.forEach(s=>VR(t,s.items,n))}):xo[r].draw(t,{items:n?e.map(f9e):e})}function f9e(t){const e=zb(t,{});return e.stroke&&e.strokeOpacity!==0||e.fill&&e.fillOpacity!==0?{...e,strokeOpacity:1,stroke:"#000",fillOpacity:0}:e}const kl=5,Li=31,TE=32,_c=new Uint32Array(TE+1),eu=new Uint32Array(TE+1);eu[0]=0,_c[0]=~eu[0];for(let t=1;t<=TE;++t)eu[t]=eu[t-1]<<1|1,_c[t]=~eu[t];function x9e(t,e){const n=new Uint32Array(~~((t*e+TE)/TE));function r(s,o){n[s]|=o}function i(s,o){n[s]&=o}return{array:n,get:(s,o)=>{const u=o*t+s;return n[u>>>kl]&1<<(u&Li)},set:(s,o)=>{const u=o*t+s;r(u>>>kl,1<<(u&Li))},clear:(s,o)=>{const u=o*t+s;i(u>>>kl,~(1<<(u&Li)))},getRange:(s,o,u,a)=>{let l=a,c,f,x,h;for(;l>=o;--l)if(c=l*t+s,f=l*t+u,x=c>>>kl,h=f>>>kl,x===h){if(n[x]&_c[c&Li]&eu[(f&Li)+1])return!0}else{if(n[x]&_c[c&Li]||n[h]&eu[(f&Li)+1])return!0;for(let p=x+1;p<h;++p)if(n[p])return!0}return!1},setRange:(s,o,u,a)=>{let l,c,f,x,h;for(;o<=a;++o)if(l=o*t+s,c=o*t+u,f=l>>>kl,x=c>>>kl,f===x)r(f,_c[l&Li]&eu[(c&Li)+1]);else for(r(f,_c[l&Li]),r(x,eu[(c&Li)+1]),h=f+1;h<x;++h)r(h,4294967295)},clearRange:(s,o,u,a)=>{let l,c,f,x,h;for(;o<=a;++o)if(l=o*t+s,c=o*t+u,f=l>>>kl,x=c>>>kl,f===x)i(f,eu[l&Li]|_c[(c&Li)+1]);else for(i(f,eu[l&Li]),i(x,_c[(c&Li)+1]),h=f+1;h<x;++h)i(h,0)},outOfBounds:(s,o,u,a)=>s<0||o<0||a>=e||u>=t}}function d9e(t,e,n){const r=Math.max(1,Math.sqrt(t*e/1e6)),i=~~((t+2*n+r)/r),s=~~((e+2*n+r)/r),o=u=>~~((u+n)/r);return o.invert=u=>u*r-n,o.bitmap=()=>x9e(i,s),o.ratio=r,o.padding=n,o.width=t,o.height=e,o}function h9e(t,e,n,r){const i=t.width,s=t.height;return function(o){const u=o.datum.datum.items[r].items,a=u.length,l=o.datum.fontSize,c=la.width(o.datum,o.datum.text);let f=0,x,h,p,m,g,y,E;for(let A=0;A<a;++A)x=u[A].x,p=u[A].y,h=u[A].x2===void 0?x:u[A].x2,m=u[A].y2===void 0?p:u[A].y2,g=(x+h)/2,y=(p+m)/2,E=Math.abs(h-x+m-p),E>=f&&(f=E,o.x=g,o.y=y);return g=c/2,y=l/2,x=o.x-g,h=o.x+g,p=o.y-y,m=o.y+y,o.align="center",x<0&&h<=i?o.align="left":0<=x&&i<h&&(o.align="right"),o.baseline="middle",p<0&&m<=s?o.baseline="top":0<=p&&s<m&&(o.baseline="bottom"),!0}}function YR(t,e,n,r,i,s){let o=n/2;return t-o<0||t+o>i||e-(o=r/2)<0||e+o>s}function Cc(t,e,n,r,i,s,o,u){const a=i*s/(r*2),l=t(e-a),c=t(e+a),f=t(n-(s=s/2)),x=t(n+s);return o.outOfBounds(l,f,c,x)||o.getRange(l,f,c,x)||u&&u.getRange(l,f,c,x)}function p9e(t,e,n,r){const i=t.width,s=t.height,o=e[0],u=e[1];function a(l,c,f,x,h){const p=t.invert(l),m=t.invert(c);let g=f,y=s,E;if(!YR(p,m,x,h,i,s)&&!Cc(t,p,m,h,x,g,o,u)&&!Cc(t,p,m,h,x,h,o,null)){for(;y-g>=1;)E=(g+y)/2,Cc(t,p,m,h,x,E,o,u)?y=E:g=E;if(g>f)return[p,m,g,!0]}}return function(l){const c=l.datum.datum.items[r].items,f=c.length,x=l.datum.fontSize,h=la.width(l.datum,l.datum.text);let p=n?x:0,m=!1,g=!1,y=0,E,A,S,v,_,C,b,R,O,L,M,q,W,B,G,te,K;for(let de=0;de<f;++de){for(E=c[de].x,S=c[de].y,A=c[de].x2===void 0?E:c[de].x2,v=c[de].y2===void 0?S:c[de].y2,E>A&&(K=E,E=A,A=K),S>v&&(K=S,S=v,v=K),O=t(E),M=t(A),L=~~((O+M)/2),q=t(S),B=t(v),W=~~((q+B)/2),b=L;b>=O;--b)for(R=W;R>=q;--R)te=a(b,R,p,h,x),te&&([l.x,l.y,p,m]=te);for(b=L;b<=M;++b)for(R=W;R<=B;++R)te=a(b,R,p,h,x),te&&([l.x,l.y,p,m]=te);!m&&!n&&(G=Math.abs(A-E+v-S),_=(E+A)/2,C=(S+v)/2,G>=y&&!YR(_,C,h,x,i,s)&&!Cc(t,_,C,x,h,x,o,null)&&(y=G,l.x=_,l.y=C,g=!0))}return m||g?(_=h/2,C=x/2,o.setRange(t(l.x-_),t(l.y-C),t(l.x+_),t(l.y+C)),l.align="center",l.baseline="middle",!0):!1}}const g9e=[-1,-1,1,1],m9e=[-1,1,-1,1];function y9e(t,e,n,r){const i=t.width,s=t.height,o=e[0],u=e[1],a=t.bitmap();return function(l){const c=l.datum.datum.items[r].items,f=c.length,x=l.datum.fontSize,h=la.width(l.datum,l.datum.text),p=[];let m=n?x:0,g=!1,y=!1,E=0,A,S,v,_,C,b,R,O,L,M,q,W;for(let B=0;B<f;++B){for(A=c[B].x,v=c[B].y,S=c[B].x2===void 0?A:c[B].x2,_=c[B].y2===void 0?v:c[B].y2,p.push([t((A+S)/2),t((v+_)/2)]);p.length;)if([R,O]=p.pop(),!(o.get(R,O)||u.get(R,O)||a.get(R,O))){a.set(R,O);for(let G=0;G<4;++G)C=R+g9e[G],b=O+m9e[G],a.outOfBounds(C,b,C,b)||p.push([C,b]);if(C=t.invert(R),b=t.invert(O),L=m,M=s,!YR(C,b,h,x,i,s)&&!Cc(t,C,b,x,h,L,o,u)&&!Cc(t,C,b,x,h,x,o,null)){for(;M-L>=1;)q=(L+M)/2,Cc(t,C,b,x,h,q,o,u)?M=q:L=q;L>m&&(l.x=C,l.y=b,m=L,g=!0)}}!g&&!n&&(W=Math.abs(S-A+_-v),C=(A+S)/2,b=(v+_)/2,W>=E&&!YR(C,b,h,x,i,s)&&!Cc(t,C,b,x,h,x,o,null)&&(E=W,l.x=C,l.y=b,y=!0))}return g||y?(C=h/2,b=x/2,o.setRange(t(l.x-C),t(l.y-b),t(l.x+C),t(l.y+b)),l.align="center",l.baseline="middle",!0):!1}}const E9e=["right","center","left"],A9e=["bottom","middle","top"];function S9e(t,e,n,r){const i=t.width,s=t.height,o=e[0],u=e[1],a=r.length;return function(l){const c=l.boundary,f=l.datum.fontSize;if(c[2]<0||c[5]<0||c[0]>i||c[3]>s)return!1;let x=l.textWidth??0,h,p,m,g,y,E,A,S,v,_,C,b,R,O,L;for(let M=0;M<a;++M){if(h=(n[M]&3)-1,p=(n[M]>>>2&3)-1,m=h===0&&p===0||r[M]<0,g=h&&p?Math.SQRT1_2:1,y=r[M]<0?-1:1,E=c[1+h]+r[M]*h*g,C=c[4+p]+y*f*p/2+r[M]*p*g,S=C-f/2,v=C+f/2,b=t(E),O=t(S),L=t(v),!x)if(Rne(b,b,O,L,o,u,E,E,S,v,c,m))x=la.width(l.datum,l.datum.text);else continue;if(_=E+y*x*h/2,E=_-x/2,A=_+x/2,b=t(E),R=t(A),Rne(b,R,O,L,o,u,E,A,S,v,c,m))return l.x=h?h*y<0?A:E:_,l.y=p?p*y<0?v:S:C,l.align=E9e[h*y+1],l.baseline=A9e[p*y+1],o.setRange(b,O,R,L),!0}return!1}}function Rne(t,e,n,r,i,s,o,u,a,l,c,f){return!(i.outOfBounds(t,n,e,r)||(f&&s||i).getRange(t,n,e,r))}const N6=0,D6=4,F6=8,w6=0,L6=1,I6=2,v9e={"top-left":N6+w6,top:N6+L6,"top-right":N6+I6,left:D6+w6,middle:D6+L6,right:D6+I6,"bottom-left":F6+w6,bottom:F6+L6,"bottom-right":F6+I6},_9e={naive:h9e,"reduced-search":p9e,floodfill:y9e};function C9e(t,e,n,r,i,s,o,u,a,l,c){if(!t.length)return t;const f=Math.max(r.length,i.length),x=b9e(r,f),h=T9e(i,f),p=R9e(t[0].datum),m=p==="group"&&t[0].datum.items[a].marktype,g=m==="area",y=O9e(p,m,u,a),E=l===null||l===1/0,A=g&&c==="naive";let S=-1,v=-1;const _=t.map(O=>{const L=E?la.width(O,O.text):void 0;return S=Math.max(S,L),v=Math.max(v,O.fontSize),{datum:O,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:y(O),textWidth:L}});l=l===null||l===1/0?Math.max(S,v)+Math.max(...r):l;const C=d9e(e[0],e[1],l);let b;if(!A){n&&_.sort((M,q)=>n(M.datum,q.datum));let O=!1;for(let M=0;M<h.length&&!O;++M)O=h[M]===5||x[M]<0;const L=(p&&o||g)&&t.map(M=>M.datum);b=s.length||L?c9e(C,L||[],s,O,g):l9e(C,o&&_)}const R=g?_9e[c](C,b,o,a):S9e(C,b,h,x);return _.forEach(O=>O.opacity=+R(O)),_}function b9e(t,e){const n=new Float64Array(e),r=t.length;for(let i=0;i<r;++i)n[i]=t[i]||0;for(let i=r;i<e;++i)n[i]=n[r-1];return n}function T9e(t,e){const n=new Int8Array(e),r=t.length;for(let i=0;i<r;++i)n[i]|=v9e[t[i]];for(let i=r;i<e;++i)n[i]=n[r-1];return n}function R9e(t){return t&&t.mark&&t.mark.marktype}function O9e(t,e,n,r){const i=s=>[s.x,s.x,s.x,s.y,s.y,s.y];return t?t==="line"||t==="area"?s=>i(s.datum):e==="line"?s=>{const o=s.datum.items[r].items;return i(o.length?o[n==="start"?0:o.length-1]:{x:NaN,y:NaN})}:s=>{const o=s.datum.bounds;return[o.x1,(o.x1+o.x2)/2,o.x2,o.y1,(o.y1+o.y2)/2,o.y2]}:i}const $6=["x","y","opacity","align","baseline"],One=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function B6(t){pe.call(this,null,t)}B6.Definition={type:"Label",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"sort",type:"compare"},{name:"anchor",type:"string",array:!0,default:One},{name:"offset",type:"number",array:!0,default:[1]},{name:"padding",type:"number",default:0,null:!0},{name:"lineAnchor",type:"string",values:["start","end"],default:"end"},{name:"markIndex",type:"number",default:0},{name:"avoidBaseMark",type:"boolean",default:!0},{name:"avoidMarks",type:"data",array:!0},{name:"method",type:"string",default:"naive"},{name:"as",type:"string",array:!0,length:$6.length,default:$6}]},Fe(B6,pe,{transform(t,e){function n(s){const o=t[s];return ct(o)&&e.modified(o.fields)}const r=t.modified();if(!(r||e.changed(e.ADD_REM)||n("sort")))return;(!t.size||t.size.length!==2)&&ve("Size parameter should be specified as a [width, height] array.");const i=t.as||$6;return C9e(e.materialize(e.SOURCE).source||[],t.size,t.sort,Pe(t.offset==null?1:t.offset),Pe(t.anchor||One),t.avoidMarks||[],t.avoidBaseMark!==!1,t.lineAnchor||"end",t.markIndex||0,t.padding===void 0?0:t.padding,t.method||"naive").forEach(s=>{const o=s.datum;o[i[0]]=s.x,o[i[1]]=s.y,o[i[2]]=s.opacity,o[i[3]]=s.align,o[i[4]]=s.baseline}),e.reflow(r).modifies(i)}});const N9e=Object.freeze(Object.defineProperty({__proto__:null,label:B6},Symbol.toStringTag,{value:"Module"}));function Nne(t,e){var n=[],r=function(c){return c(u)},i,s,o,u,a,l;if(e==null)n.push(t);else for(i={},s=0,o=t.length;s<o;++s)u=t[s],a=e.map(r),l=i[a],l||(i[a]=l=[],l.dims=a,n.push(l)),l.push(u);return n}function k6(t){pe.call(this,null,t)}k6.Definition={type:"Loess",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"bandwidth",type:"number",default:.3},{name:"as",type:"string",array:!0}]},Fe(k6,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const r=e.materialize(e.SOURCE).source,i=Nne(r,t.groupby),s=(t.groupby||[]).map($n),o=s.length,u=t.as||[$n(t.x),$n(t.y)],a=[];i.forEach(l=>{N4e(l,t.x,t.y,t.bandwidth||.3).forEach(c=>{const f={};for(let x=0;x<o;++x)f[s[x]]=l.dims[x];f[u[0]]=c[0],f[u[1]]=c[1],a.push(Lt(f))})}),this.value&&(n.rem=this.value),this.value=n.add=n.source=a}return n}});const P6={linear:$Y,log:_4e,exp:C4e,pow:b4e,quad:BY,poly:T4e},D9e=(t,e)=>t==="poly"?e:t==="quad"?2:1;function M6(t){pe.call(this,null,t)}M6.Definition={type:"Regression",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"string",default:"linear",values:Object.keys(P6)},{name:"order",type:"number",default:3},{name:"extent",type:"number",array:!0,length:2},{name:"params",type:"boolean",default:!1},{name:"as",type:"string",array:!0}]},Fe(M6,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const r=e.materialize(e.SOURCE).source,i=Nne(r,t.groupby),s=(t.groupby||[]).map($n),o=t.method||"linear",u=t.order||3,a=D9e(o,u),l=t.as||[$n(t.x),$n(t.y)],c=P6[o],f=[];let x=t.extent;Je(P6,o)||ve("Invalid regression method: "+o),x!=null&&o==="log"&&x[0]<=0&&(e.dataflow.warn("Ignoring extent with values <= 0 for log regression."),x=null),i.forEach(h=>{if(h.length<=a){e.dataflow.warn("Skipping regression with more parameters than data points.");return}const m=c(h,t.x,t.y,u);if(t.params){f.push(Lt({keys:h.dims,coef:m.coef,rSquared:m.rSquared}));return}const g=x||pl(h,t.x),y=E=>{const A={};for(let S=0;S<s.length;++S)A[s[S]]=h.dims[S];A[l[0]]=E[0],A[l[1]]=E[1],f.push(Lt(A))};o==="linear"?g.forEach(E=>y([E,m.predict(E)])):k5(m.predict,g,25,200).forEach(y)}),this.value&&(n.rem=this.value),this.value=n.add=n.source=f}return n}});const F9e=Object.freeze(Object.defineProperty({__proto__:null,loess:k6,regression:M6},Symbol.toStringTag,{value:"Module"})),Pl=11102230246251565e-32,ti=134217729,w9e=(3+8*Pl)*Pl;function j6(t,e,n,r,i){let s,o,u,a,l=e[0],c=r[0],f=0,x=0;c>l==c>-l?(s=l,l=e[++f]):(s=c,c=r[++x]);let h=0;if(f<t&&x<n)for(c>l==c>-l?(o=l+s,u=s-(o-l),l=e[++f]):(o=c+s,u=s-(o-c),c=r[++x]),s=o,u!==0&&(i[h++]=u);f<t&&x<n;)c>l==c>-l?(o=s+l,a=o-s,u=s-(o-a)+(l-a),l=e[++f]):(o=s+c,a=o-s,u=s-(o-a)+(c-a),c=r[++x]),s=o,u!==0&&(i[h++]=u);for(;f<t;)o=s+l,a=o-s,u=s-(o-a)+(l-a),l=e[++f],s=o,u!==0&&(i[h++]=u);for(;x<n;)o=s+c,a=o-s,u=s-(o-a)+(c-a),c=r[++x],s=o,u!==0&&(i[h++]=u);return(s!==0||h===0)&&(i[h++]=s),h}function L9e(t,e){let n=e[0];for(let r=1;r<t;r++)n+=e[r];return n}function RE(t){return new Float64Array(t)}const I9e=(3+16*Pl)*Pl,$9e=(2+12*Pl)*Pl,B9e=(9+64*Pl)*Pl*Pl,r2=RE(4),Dne=RE(8),Fne=RE(12),wne=RE(16),Ii=RE(4);function k9e(t,e,n,r,i,s,o){let u,a,l,c,f,x,h,p,m,g,y,E,A,S,v,_,C,b;const R=t-i,O=n-i,L=e-s,M=r-s;S=R*M,x=ti*R,h=x-(x-R),p=R-h,x=ti*M,m=x-(x-M),g=M-m,v=p*g-(S-h*m-p*m-h*g),_=L*O,x=ti*L,h=x-(x-L),p=L-h,x=ti*O,m=x-(x-O),g=O-m,C=p*g-(_-h*m-p*m-h*g),y=v-C,f=v-y,r2[0]=v-(y+f)+(f-C),E=S+y,f=E-S,A=S-(E-f)+(y-f),y=A-_,f=A-y,r2[1]=A-(y+f)+(f-_),b=E+y,f=b-E,r2[2]=E-(b-f)+(y-f),r2[3]=b;let q=L9e(4,r2),W=$9e*o;if(q>=W||-q>=W||(f=t-R,u=t-(R+f)+(f-i),f=n-O,l=n-(O+f)+(f-i),f=e-L,a=e-(L+f)+(f-s),f=r-M,c=r-(M+f)+(f-s),u===0&&a===0&&l===0&&c===0)||(W=B9e*o+w9e*Math.abs(q),q+=R*c+M*u-(L*l+O*a),q>=W||-q>=W))return q;S=u*M,x=ti*u,h=x-(x-u),p=u-h,x=ti*M,m=x-(x-M),g=M-m,v=p*g-(S-h*m-p*m-h*g),_=a*O,x=ti*a,h=x-(x-a),p=a-h,x=ti*O,m=x-(x-O),g=O-m,C=p*g-(_-h*m-p*m-h*g),y=v-C,f=v-y,Ii[0]=v-(y+f)+(f-C),E=S+y,f=E-S,A=S-(E-f)+(y-f),y=A-_,f=A-y,Ii[1]=A-(y+f)+(f-_),b=E+y,f=b-E,Ii[2]=E-(b-f)+(y-f),Ii[3]=b;const B=j6(4,r2,4,Ii,Dne);S=R*c,x=ti*R,h=x-(x-R),p=R-h,x=ti*c,m=x-(x-c),g=c-m,v=p*g-(S-h*m-p*m-h*g),_=L*l,x=ti*L,h=x-(x-L),p=L-h,x=ti*l,m=x-(x-l),g=l-m,C=p*g-(_-h*m-p*m-h*g),y=v-C,f=v-y,Ii[0]=v-(y+f)+(f-C),E=S+y,f=E-S,A=S-(E-f)+(y-f),y=A-_,f=A-y,Ii[1]=A-(y+f)+(f-_),b=E+y,f=b-E,Ii[2]=E-(b-f)+(y-f),Ii[3]=b;const G=j6(B,Dne,4,Ii,Fne);S=u*c,x=ti*u,h=x-(x-u),p=u-h,x=ti*c,m=x-(x-c),g=c-m,v=p*g-(S-h*m-p*m-h*g),_=a*l,x=ti*a,h=x-(x-a),p=a-h,x=ti*l,m=x-(x-l),g=l-m,C=p*g-(_-h*m-p*m-h*g),y=v-C,f=v-y,Ii[0]=v-(y+f)+(f-C),E=S+y,f=E-S,A=S-(E-f)+(y-f),y=A-_,f=A-y,Ii[1]=A-(y+f)+(f-_),b=E+y,f=b-E,Ii[2]=E-(b-f)+(y-f),Ii[3]=b;const te=j6(G,Fne,4,Ii,wne);return wne[te-1]}function XR(t,e,n,r,i,s){const o=(e-s)*(n-i),u=(t-i)*(r-s),a=o-u;if(o===0||u===0||o>0!=u>0)return a;const l=Math.abs(o+u);return Math.abs(a)>=I9e*l?a:-k9e(t,e,n,r,i,s,l)}const Lne=Math.pow(2,-52),KR=new Uint32Array(512);class JR{static from(e,n=q9e,r=H9e){const i=e.length,s=new Float64Array(i*2);for(let o=0;o<i;o++){const u=e[o];s[2*o]=n(u),s[2*o+1]=r(u)}return new JR(s)}constructor(e){const n=e.length>>1;if(n>0&&typeof e[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=e;const r=Math.max(2*n-5,0);this._triangles=new Uint32Array(r*3),this._halfedges=new Int32Array(r*3),this._hashSize=Math.ceil(Math.sqrt(n)),this._hullPrev=new Uint32Array(n),this._hullNext=new Uint32Array(n),this._hullTri=new Uint32Array(n),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.update()}update(){const{coords:e,_hullPrev:n,_hullNext:r,_hullTri:i,_hullHash:s}=this,o=e.length>>1;let u=1/0,a=1/0,l=-1/0,c=-1/0;for(let O=0;O<o;O++){const L=e[2*O],M=e[2*O+1];L<u&&(u=L),M<a&&(a=M),L>l&&(l=L),M>c&&(c=M),this._ids[O]=O}const f=(u+l)/2,x=(a+c)/2;let h=1/0,p,m,g;for(let O=0;O<o;O++){const L=U6(f,x,e[2*O],e[2*O+1]);L<h&&(p=O,h=L)}const y=e[2*p],E=e[2*p+1];h=1/0;for(let O=0;O<o;O++){if(O===p)continue;const L=U6(y,E,e[2*O],e[2*O+1]);L<h&&L>0&&(m=O,h=L)}let A=e[2*m],S=e[2*m+1],v=1/0;for(let O=0;O<o;O++){if(O===p||O===m)continue;const L=j9e(y,E,A,S,e[2*O],e[2*O+1]);L<v&&(g=O,v=L)}let _=e[2*g],C=e[2*g+1];if(v===1/0){for(let M=0;M<o;M++)this._dists[M]=e[2*M]-e[0]||e[2*M+1]-e[1];i2(this._ids,this._dists,0,o-1);const O=new Uint32Array(o);let L=0;for(let M=0,q=-1/0;M<o;M++){const W=this._ids[M];this._dists[W]>q&&(O[L++]=W,q=this._dists[W])}this.hull=O.subarray(0,L),this.triangles=new Uint32Array(0),this.halfedges=new Uint32Array(0);return}if(XR(y,E,A,S,_,C)<0){const O=m,L=A,M=S;m=g,A=_,S=C,g=O,_=L,C=M}const b=U9e(y,E,A,S,_,C);this._cx=b.x,this._cy=b.y;for(let O=0;O<o;O++)this._dists[O]=U6(e[2*O],e[2*O+1],b.x,b.y);i2(this._ids,this._dists,0,o-1),this._hullStart=p;let R=3;r[p]=n[g]=m,r[m]=n[p]=g,r[g]=n[m]=p,i[p]=0,i[m]=1,i[g]=2,s.fill(-1),s[this._hashKey(y,E)]=p,s[this._hashKey(A,S)]=m,s[this._hashKey(_,C)]=g,this.trianglesLen=0,this._addTriangle(p,m,g,-1,-1,-1);for(let O=0,L,M;O<this._ids.length;O++){const q=this._ids[O],W=e[2*q],B=e[2*q+1];if(O>0&&Math.abs(W-L)<=Lne&&Math.abs(B-M)<=Lne||(L=W,M=B,q===p||q===m||q===g))continue;let G=0;for(let ee=0,U=this._hashKey(W,B);ee<this._hashSize&&(G=s[(U+ee)%this._hashSize],!(G!==-1&&G!==r[G]));ee++);G=n[G];let te=G,K;for(;K=r[te],XR(W,B,e[2*te],e[2*te+1],e[2*K],e[2*K+1])>=0;)if(te=K,te===G){te=-1;break}if(te===-1)continue;let de=this._addTriangle(te,q,r[te],-1,-1,i[te]);i[q]=this._legalize(de+2),i[te]=de,R++;let be=r[te];for(;K=r[be],XR(W,B,e[2*be],e[2*be+1],e[2*K],e[2*K+1])<0;)de=this._addTriangle(be,q,K,i[q],-1,i[be]),i[q]=this._legalize(de+2),r[be]=be,R--,be=K;if(te===G)for(;K=n[te],XR(W,B,e[2*K],e[2*K+1],e[2*te],e[2*te+1])<0;)de=this._addTriangle(K,q,te,-1,i[te],i[K]),this._legalize(de+2),i[K]=de,r[te]=te,R--,te=K;this._hullStart=n[q]=te,r[te]=n[be]=q,r[q]=be,s[this._hashKey(W,B)]=q,s[this._hashKey(e[2*te],e[2*te+1])]=te}this.hull=new Uint32Array(R);for(let O=0,L=this._hullStart;O<R;O++)this.hull[O]=L,L=r[L];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,n){return Math.floor(P9e(e-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(e){const{_triangles:n,_halfedges:r,coords:i}=this;let s=0,o=0;for(;;){const u=r[e],a=e-e%3;if(o=a+(e+2)%3,u===-1){if(s===0)break;e=KR[--s];continue}const l=u-u%3,c=a+(e+1)%3,f=l+(u+2)%3,x=n[o],h=n[e],p=n[c],m=n[f];if(M9e(i[2*x],i[2*x+1],i[2*h],i[2*h+1],i[2*p],i[2*p+1],i[2*m],i[2*m+1])){n[e]=m,n[u]=x;const y=r[f];if(y===-1){let A=this._hullStart;do{if(this._hullTri[A]===f){this._hullTri[A]=e;break}A=this._hullPrev[A]}while(A!==this._hullStart)}this._link(e,y),this._link(u,r[o]),this._link(o,f);const E=l+(u+1)%3;s<KR.length&&(KR[s++]=E)}else{if(s===0)break;e=KR[--s]}}return o}_link(e,n){this._halfedges[e]=n,n!==-1&&(this._halfedges[n]=e)}_addTriangle(e,n,r,i,s,o){const u=this.trianglesLen;return this._triangles[u]=e,this._triangles[u+1]=n,this._triangles[u+2]=r,this._link(u,i),this._link(u+1,s),this._link(u+2,o),this.trianglesLen+=3,u}}function P9e(t,e){const n=t/(Math.abs(t)+Math.abs(e));return(e>0?3-n:1+n)/4}function U6(t,e,n,r){const i=t-n,s=e-r;return i*i+s*s}function M9e(t,e,n,r,i,s,o,u){const a=t-o,l=e-u,c=n-o,f=r-u,x=i-o,h=s-u,p=a*a+l*l,m=c*c+f*f,g=x*x+h*h;return a*(f*g-m*h)-l*(c*g-m*x)+p*(c*h-f*x)<0}function j9e(t,e,n,r,i,s){const o=n-t,u=r-e,a=i-t,l=s-e,c=o*o+u*u,f=a*a+l*l,x=.5/(o*l-u*a),h=(l*c-u*f)*x,p=(o*f-a*c)*x;return h*h+p*p}function U9e(t,e,n,r,i,s){const o=n-t,u=r-e,a=i-t,l=s-e,c=o*o+u*u,f=a*a+l*l,x=.5/(o*l-u*a),h=t+(l*c-u*f)*x,p=e+(o*f-a*c)*x;return{x:h,y:p}}function i2(t,e,n,r){if(r-n<=20)for(let i=n+1;i<=r;i++){const s=t[i],o=e[s];let u=i-1;for(;u>=n&&e[t[u]]>o;)t[u+1]=t[u--];t[u+1]=s}else{const i=n+r>>1;let s=n+1,o=r;OE(t,i,s),e[t[n]]>e[t[r]]&&OE(t,n,r),e[t[s]]>e[t[r]]&&OE(t,s,r),e[t[n]]>e[t[s]]&&OE(t,n,s);const u=t[s],a=e[u];for(;;){do s++;while(e[t[s]]<a);do o--;while(e[t[o]]>a);if(o<s)break;OE(t,s,o)}t[n+1]=t[o],t[o]=u,r-s+1>=o-n?(i2(t,e,s,r),i2(t,e,n,o-1)):(i2(t,e,n,o-1),i2(t,e,s,r))}}function OE(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function q9e(t){return t[0]}function H9e(t){return t[1]}const Ine=1e-6;class nd{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,n){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,n){this._+=`L${this._x1=+e},${this._y1=+n}`}arc(e,n,r){e=+e,n=+n,r=+r;const i=e+r,s=n;if(r<0)throw new Error("negative radius");this._x1===null?this._+=`M${i},${s}`:(Math.abs(this._x1-i)>Ine||Math.abs(this._y1-s)>Ine)&&(this._+="L"+i+","+s),r&&(this._+=`A${r},${r},0,1,1,${e-r},${n}A${r},${r},0,1,1,${this._x1=i},${this._y1=s}`)}rect(e,n,r,i){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${+r}v${+i}h${-r}Z`}value(){return this._||null}}class q6{constructor(){this._=[]}moveTo(e,n){this._.push([e,n])}closePath(){this._.push(this._[0].slice())}lineTo(e,n){this._.push([e,n])}value(){return this._.length?this._:null}}let z9e=class{constructor(e,[n,r,i,s]=[0,0,960,500]){if(!((i=+i)>=(n=+n))||!((s=+s)>=(r=+r)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(e.points.length*2),this.vectors=new Float64Array(e.points.length*2),this.xmax=i,this.xmin=n,this.ymax=s,this.ymin=r,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:e,hull:n,triangles:r},vectors:i}=this;let s,o;const u=this.circumcenters=this._circumcenters.subarray(0,r.length/3*2);for(let m=0,g=0,y=r.length,E,A;m<y;m+=3,g+=2){const S=r[m]*2,v=r[m+1]*2,_=r[m+2]*2,C=e[S],b=e[S+1],R=e[v],O=e[v+1],L=e[_],M=e[_+1],q=R-C,W=O-b,B=L-C,G=M-b,te=(q*G-W*B)*2;if(Math.abs(te)<1e-9){if(s===void 0){s=o=0;for(const de of n)s+=e[de*2],o+=e[de*2+1];s/=n.length,o/=n.length}const K=1e9*Math.sign((s-C)*G-(o-b)*B);E=(C+L)/2-K*G,A=(b+M)/2+K*B}else{const K=1/te,de=q*q+W*W,be=B*B+G*G;E=C+(G*de-W*be)*K,A=b+(q*be-B*de)*K}u[g]=E,u[g+1]=A}let a=n[n.length-1],l,c=a*4,f,x=e[2*a],h,p=e[2*a+1];i.fill(0);for(let m=0;m<n.length;++m)a=n[m],l=c,f=x,h=p,c=a*4,x=e[2*a],p=e[2*a+1],i[l+2]=i[c]=h-p,i[l+3]=i[c+1]=x-f}render(e){const n=e==null?e=new nd:void 0,{delaunay:{halfedges:r,inedges:i,hull:s},circumcenters:o,vectors:u}=this;if(s.length<=1)return null;for(let c=0,f=r.length;c<f;++c){const x=r[c];if(x<c)continue;const h=Math.floor(c/3)*2,p=Math.floor(x/3)*2,m=o[h],g=o[h+1],y=o[p],E=o[p+1];this._renderSegment(m,g,y,E,e)}let a,l=s[s.length-1];for(let c=0;c<s.length;++c){a=l,l=s[c];const f=Math.floor(i[l]/3)*2,x=o[f],h=o[f+1],p=a*4,m=this._project(x,h,u[p+2],u[p+3]);m&&this._renderSegment(x,h,m[0],m[1],e)}return n&&n.value()}renderBounds(e){const n=e==null?e=new nd:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),n&&n.value()}renderCell(e,n){const r=n==null?n=new nd:void 0,i=this._clip(e);if(i===null||!i.length)return;n.moveTo(i[0],i[1]);let s=i.length;for(;i[0]===i[s-2]&&i[1]===i[s-1]&&s>1;)s-=2;for(let o=2;o<s;o+=2)(i[o]!==i[o-2]||i[o+1]!==i[o-1])&&n.lineTo(i[o],i[o+1]);return n.closePath(),r&&r.value()}*cellPolygons(){const{delaunay:{points:e}}=this;for(let n=0,r=e.length/2;n<r;++n){const i=this.cellPolygon(n);i&&(i.index=n,yield i)}}cellPolygon(e){const n=new q6;return this.renderCell(e,n),n.value()}_renderSegment(e,n,r,i,s){let o;const u=this._regioncode(e,n),a=this._regioncode(r,i);u===0&&a===0?(s.moveTo(e,n),s.lineTo(r,i)):(o=this._clipSegment(e,n,r,i,u,a))&&(s.moveTo(o[0],o[1]),s.lineTo(o[2],o[3]))}contains(e,n,r){return n=+n,n!==n||(r=+r,r!==r)?!1:this.delaunay._step(e,n,r)===e}*neighbors(e){const n=this._clip(e);if(n)for(const r of this.delaunay.neighbors(e)){const i=this._clip(r);if(i){e:for(let s=0,o=n.length;s<o;s+=2)for(let u=0,a=i.length;u<a;u+=2)if(n[s]===i[u]&&n[s+1]===i[u+1]&&n[(s+2)%o]===i[(u+a-2)%a]&&n[(s+3)%o]===i[(u+a-1)%a]){yield r;break e}}}}_cell(e){const{circumcenters:n,delaunay:{inedges:r,halfedges:i,triangles:s}}=this,o=r[e];if(o===-1)return null;const u=[];let a=o;do{const l=Math.floor(a/3);if(u.push(n[l*2],n[l*2+1]),a=a%3===2?a-2:a+1,s[a]!==e)break;a=i[a]}while(a!==o&&a!==-1);return u}_clip(e){if(e===0&&this.delaunay.hull.length===1)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const n=this._cell(e);if(n===null)return null;const{vectors:r}=this,i=e*4;return this._simplify(r[i]||r[i+1]?this._clipInfinite(e,n,r[i],r[i+1],r[i+2],r[i+3]):this._clipFinite(e,n))}_clipFinite(e,n){const r=n.length;let i=null,s,o,u=n[r-2],a=n[r-1],l,c=this._regioncode(u,a),f,x=0;for(let h=0;h<r;h+=2)if(s=u,o=a,u=n[h],a=n[h+1],l=c,c=this._regioncode(u,a),l===0&&c===0)f=x,x=0,i?i.push(u,a):i=[u,a];else{let p,m,g,y,E;if(l===0){if((p=this._clipSegment(s,o,u,a,l,c))===null)continue;[m,g,y,E]=p}else{if((p=this._clipSegment(u,a,s,o,c,l))===null)continue;[y,E,m,g]=p,f=x,x=this._edgecode(m,g),f&&x&&this._edge(e,f,x,i,i.length),i?i.push(m,g):i=[m,g]}f=x,x=this._edgecode(y,E),f&&x&&this._edge(e,f,x,i,i.length),i?i.push(y,E):i=[y,E]}if(i)f=x,x=this._edgecode(i[0],i[1]),f&&x&&this._edge(e,f,x,i,i.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return i}_clipSegment(e,n,r,i,s,o){const u=s<o;for(u&&([e,n,r,i,s,o]=[r,i,e,n,o,s]);;){if(s===0&&o===0)return u?[r,i,e,n]:[e,n,r,i];if(s&o)return null;let a,l,c=s||o;c&8?(a=e+(r-e)*(this.ymax-n)/(i-n),l=this.ymax):c&4?(a=e+(r-e)*(this.ymin-n)/(i-n),l=this.ymin):c&2?(l=n+(i-n)*(this.xmax-e)/(r-e),a=this.xmax):(l=n+(i-n)*(this.xmin-e)/(r-e),a=this.xmin),s?(e=a,n=l,s=this._regioncode(e,n)):(r=a,i=l,o=this._regioncode(r,i))}}_clipInfinite(e,n,r,i,s,o){let u=Array.from(n),a;if((a=this._project(u[0],u[1],r,i))&&u.unshift(a[0],a[1]),(a=this._project(u[u.length-2],u[u.length-1],s,o))&&u.push(a[0],a[1]),u=this._clipFinite(e,u))for(let l=0,c=u.length,f,x=this._edgecode(u[c-2],u[c-1]);l<c;l+=2)f=x,x=this._edgecode(u[l],u[l+1]),f&&x&&(l=this._edge(e,f,x,u,l),c=u.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(u=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return u}_edge(e,n,r,i,s){for(;n!==r;){let o,u;switch(n){case 5:n=4;continue;case 4:n=6,o=this.xmax,u=this.ymin;break;case 6:n=2;continue;case 2:n=10,o=this.xmax,u=this.ymax;break;case 10:n=8;continue;case 8:n=9,o=this.xmin,u=this.ymax;break;case 9:n=1;continue;case 1:n=5,o=this.xmin,u=this.ymin;break}(i[s]!==o||i[s+1]!==u)&&this.contains(e,o,u)&&(i.splice(s,0,o,u),s+=2)}return s}_project(e,n,r,i){let s=1/0,o,u,a;if(i<0){if(n<=this.ymin)return null;(o=(this.ymin-n)/i)<s&&(a=this.ymin,u=e+(s=o)*r)}else if(i>0){if(n>=this.ymax)return null;(o=(this.ymax-n)/i)<s&&(a=this.ymax,u=e+(s=o)*r)}if(r>0){if(e>=this.xmax)return null;(o=(this.xmax-e)/r)<s&&(u=this.xmax,a=n+(s=o)*i)}else if(r<0){if(e<=this.xmin)return null;(o=(this.xmin-e)/r)<s&&(u=this.xmin,a=n+(s=o)*i)}return[u,a]}_edgecode(e,n){return(e===this.xmin?1:e===this.xmax?2:0)|(n===this.ymin?4:n===this.ymax?8:0)}_regioncode(e,n){return(e<this.xmin?1:e>this.xmax?2:0)|(n<this.ymin?4:n>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let n=0;n<e.length;n+=2){const r=(n+2)%e.length,i=(n+4)%e.length;(e[n]===e[r]&&e[r]===e[i]||e[n+1]===e[r+1]&&e[r+1]===e[i+1])&&(e.splice(r,2),n-=2)}e.length||(e=null)}return e}};const Q9e=2*Math.PI,s2=Math.pow;function G9e(t){return t[0]}function W9e(t){return t[1]}function V9e(t){const{triangles:e,coords:n}=t;for(let r=0;r<e.length;r+=3){const i=2*e[r],s=2*e[r+1],o=2*e[r+2];if((n[o]-n[i])*(n[s+1]-n[i+1])-(n[s]-n[i])*(n[o+1]-n[i+1])>1e-10)return!1}return!0}function Y9e(t,e,n){return[t+Math.sin(t+e)*n,e+Math.cos(t-e)*n]}class H6{static from(e,n=G9e,r=W9e,i){return new H6("length"in e?X9e(e,n,r,i):Float64Array.from(K9e(e,n,r,i)))}constructor(e){this._delaunator=new JR(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const e=this._delaunator,n=this.points;if(e.hull&&e.hull.length>2&&V9e(e)){this.collinear=Int32Array.from({length:n.length/2},(x,h)=>h).sort((x,h)=>n[2*x]-n[2*h]||n[2*x+1]-n[2*h+1]);const a=this.collinear[0],l=this.collinear[this.collinear.length-1],c=[n[2*a],n[2*a+1],n[2*l],n[2*l+1]],f=1e-8*Math.hypot(c[3]-c[1],c[2]-c[0]);for(let x=0,h=n.length/2;x<h;++x){const p=Y9e(n[2*x],n[2*x+1],f);n[2*x]=p[0],n[2*x+1]=p[1]}this._delaunator=new JR(n)}else delete this.collinear;const r=this.halfedges=this._delaunator.halfedges,i=this.hull=this._delaunator.hull,s=this.triangles=this._delaunator.triangles,o=this.inedges.fill(-1),u=this._hullIndex.fill(-1);for(let a=0,l=r.length;a<l;++a){const c=s[a%3===2?a-2:a+1];(r[a]===-1||o[c]===-1)&&(o[c]=a)}for(let a=0,l=i.length;a<l;++a)u[i[a]]=a;i.length<=2&&i.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=i[0],o[i[0]]=1,i.length===2&&(o[i[1]]=0,this.triangles[1]=i[1],this.triangles[2]=i[1]))}voronoi(e){return new z9e(this,e)}*neighbors(e){const{inedges:n,hull:r,_hullIndex:i,halfedges:s,triangles:o,collinear:u}=this;if(u){const f=u.indexOf(e);f>0&&(yield u[f-1]),f<u.length-1&&(yield u[f+1]);return}const a=n[e];if(a===-1)return;let l=a,c=-1;do{if(yield c=o[l],l=l%3===2?l-2:l+1,o[l]!==e)return;if(l=s[l],l===-1){const f=r[(i[e]+1)%r.length];f!==c&&(yield f);return}}while(l!==a)}find(e,n,r=0){if(e=+e,e!==e||(n=+n,n!==n))return-1;const i=r;let s;for(;(s=this._step(r,e,n))>=0&&s!==r&&s!==i;)r=s;return s}_step(e,n,r){const{inedges:i,hull:s,_hullIndex:o,halfedges:u,triangles:a,points:l}=this;if(i[e]===-1||!l.length)return(e+1)%(l.length>>1);let c=e,f=s2(n-l[e*2],2)+s2(r-l[e*2+1],2);const x=i[e];let h=x;do{let p=a[h];const m=s2(n-l[p*2],2)+s2(r-l[p*2+1],2);if(m<f&&(f=m,c=p),h=h%3===2?h-2:h+1,a[h]!==e)break;if(h=u[h],h===-1){if(h=s[(o[e]+1)%s.length],h!==p&&s2(n-l[h*2],2)+s2(r-l[h*2+1],2)<f)return h;break}}while(h!==x);return c}render(e){const n=e==null?e=new nd:void 0,{points:r,halfedges:i,triangles:s}=this;for(let o=0,u=i.length;o<u;++o){const a=i[o];if(a<o)continue;const l=s[o]*2,c=s[a]*2;e.moveTo(r[l],r[l+1]),e.lineTo(r[c],r[c+1])}return this.renderHull(e),n&&n.value()}renderPoints(e,n){n===void 0&&(!e||typeof e.moveTo!="function")&&(n=e,e=null),n=n==null?2:+n;const r=e==null?e=new nd:void 0,{points:i}=this;for(let s=0,o=i.length;s<o;s+=2){const u=i[s],a=i[s+1];e.moveTo(u+n,a),e.arc(u,a,n,0,Q9e)}return r&&r.value()}renderHull(e){const n=e==null?e=new nd:void 0,{hull:r,points:i}=this,s=r[0]*2,o=r.length;e.moveTo(i[s],i[s+1]);for(let u=1;u<o;++u){const a=2*r[u];e.lineTo(i[a],i[a+1])}return e.closePath(),n&&n.value()}hullPolygon(){const e=new q6;return this.renderHull(e),e.value()}renderTriangle(e,n){const r=n==null?n=new nd:void 0,{points:i,triangles:s}=this,o=s[e*=3]*2,u=s[e+1]*2,a=s[e+2]*2;return n.moveTo(i[o],i[o+1]),n.lineTo(i[u],i[u+1]),n.lineTo(i[a],i[a+1]),n.closePath(),r&&r.value()}*trianglePolygons(){const{triangles:e}=this;for(let n=0,r=e.length/3;n<r;++n)yield this.trianglePolygon(n)}trianglePolygon(e){const n=new q6;return this.renderTriangle(e,n),n.value()}}function X9e(t,e,n,r){const i=t.length,s=new Float64Array(i*2);for(let o=0;o<i;++o){const u=t[o];s[o*2]=e.call(r,u,o,t),s[o*2+1]=n.call(r,u,o,t)}return s}function*K9e(t,e,n,r){let i=0;for(const s of t)yield e.call(r,s,i,t),yield n.call(r,s,i,t),++i}function z6(t){pe.call(this,null,t)}z6.Definition={type:"Voronoi",metadata:{modifies:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"size",type:"number",array:!0,length:2},{name:"extent",type:"array",array:!0,length:2,default:[[-1e5,-1e5],[1e5,1e5]],content:{type:"number",array:!0,length:2}},{name:"as",type:"string",default:"path"}]};const J9e=[-1e5,-1e5,1e5,1e5];Fe(z6,pe,{transform(t,e){const n=t.as||"path",r=e.source;if(!r||!r.length)return e;let i=t.size;i=i?[0,0,i[0],i[1]]:(i=t.extent)?[i[0][0],i[0][1],i[1][0],i[1][1]]:J9e;const s=this.value=H6.from(r,t.x,t.y).voronoi(i);for(let o=0,u=r.length;o<u;++o){const a=s.cellPolygon(o);r[o][n]=a?Z9e(a):null}return e.reflow(t.modified()).modifies(n)}});function Z9e(t){const e=t[0][0],n=t[0][1];let r=t.length-1;for(;t[r][0]===e&&t[r][1]===n;--r);return"M"+t.slice(0,r+1).join("L")+"Z"}const eje=Object.freeze(Object.defineProperty({__proto__:null,voronoi:z6},Symbol.toStringTag,{value:"Module"}));var Q6=Math.PI/180,NE=64,ZR=2048;function tje(){var t=[256,256],e,n,r,i,s,o,u,a=$ne,l=[],c=Math.random,f={};f.layout=function(){for(var p=x(sc()),m=uje((t[0]>>5)*t[1]),g=null,y=l.length,E=-1,A=[],S=l.map(_=>({text:e(_),font:n(_),style:i(_),weight:s(_),rotate:o(_),size:~~(r(_)+1e-14),padding:u(_),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:_})).sort((_,C)=>C.size-_.size);++E<y;){var v=S[E];v.x=t[0]*(c()+.5)>>1,v.y=t[1]*(c()+.5)>>1,nje(p,v,S,E),v.hasText&&h(m,v,g)&&(A.push(v),g?ije(g,v):g=[{x:v.x+v.x0,y:v.y+v.y0},{x:v.x+v.x1,y:v.y+v.y1}],v.x-=t[0]>>1,v.y-=t[1]>>1)}return A};function x(p){p.width=p.height=1;var m=Math.sqrt(p.getContext("2d").getImageData(0,0,1,1).data.length>>2);p.width=(NE<<5)/m,p.height=ZR/m;var g=p.getContext("2d");return g.fillStyle=g.strokeStyle="red",g.textAlign="center",{context:g,ratio:m}}function h(p,m,g){for(var y=m.x,E=m.y,A=Math.sqrt(t[0]*t[0]+t[1]*t[1]),S=a(t),v=c()<.5?1:-1,_=-v,C,b,R;(C=S(_+=v))&&(b=~~C[0],R=~~C[1],!(Math.min(Math.abs(b),Math.abs(R))>=A));)if(m.x=y+b,m.y=E+R,!(m.x+m.x0<0||m.y+m.y0<0||m.x+m.x1>t[0]||m.y+m.y1>t[1])&&(!g||!rje(m,p,t[0]))&&(!g||sje(m,g))){for(var O=m.sprite,L=m.width>>5,M=t[0]>>5,q=m.x-(L<<4),W=q&127,B=32-W,G=m.y1-m.y0,te=(m.y+m.y0)*M+(q>>5),K,de=0;de<G;de++){K=0;for(var be=0;be<=L;be++)p[te+be]|=K<<B|(be<L?(K=O[de*L+be])>>>W:0);te+=M}return m.sprite=null,!0}return!1}return f.words=function(p){return arguments.length?(l=p,f):l},f.size=function(p){return arguments.length?(t=[+p[0],+p[1]],f):t},f.font=function(p){return arguments.length?(n=rd(p),f):n},f.fontStyle=function(p){return arguments.length?(i=rd(p),f):i},f.fontWeight=function(p){return arguments.length?(s=rd(p),f):s},f.rotate=function(p){return arguments.length?(o=rd(p),f):o},f.text=function(p){return arguments.length?(e=rd(p),f):e},f.spiral=function(p){return arguments.length?(a=aje[p]||p,f):a},f.fontSize=function(p){return arguments.length?(r=rd(p),f):r},f.padding=function(p){return arguments.length?(u=rd(p),f):u},f.random=function(p){return arguments.length?(c=p,f):c},f}function nje(t,e,n,r){if(!e.sprite){var i=t.context,s=t.ratio;i.clearRect(0,0,(NE<<5)/s,ZR/s);var o=0,u=0,a=0,l=n.length,c,f,x,h,p;for(--r;++r<l;){if(e=n[r],i.save(),i.font=e.style+" "+e.weight+" "+~~((e.size+1)/s)+"px "+e.font,c=i.measureText(e.text+"m").width*s,x=e.size<<1,e.rotate){var m=Math.sin(e.rotate*Q6),g=Math.cos(e.rotate*Q6),y=c*g,E=c*m,A=x*g,S=x*m;c=Math.max(Math.abs(y+S),Math.abs(y-S))+31>>5<<5,x=~~Math.max(Math.abs(E+A),Math.abs(E-A))}else c=c+31>>5<<5;if(x>a&&(a=x),o+c>=NE<<5&&(o=0,u+=a,a=0),u+x>=ZR)break;i.translate((o+(c>>1))/s,(u+(x>>1))/s),e.rotate&&i.rotate(e.rotate*Q6),i.fillText(e.text,0,0),e.padding&&(i.lineWidth=2*e.padding,i.strokeText(e.text,0,0)),i.restore(),e.width=c,e.height=x,e.xoff=o,e.yoff=u,e.x1=c>>1,e.y1=x>>1,e.x0=-e.x1,e.y0=-e.y1,e.hasText=!0,o+=c}for(var v=i.getImageData(0,0,(NE<<5)/s,ZR/s).data,_=[];--r>=0;)if(e=n[r],!!e.hasText){for(c=e.width,f=c>>5,x=e.y1-e.y0,h=0;h<x*f;h++)_[h]=0;if(o=e.xoff,o==null)return;u=e.yoff;var C=0,b=-1;for(p=0;p<x;p++){for(h=0;h<c;h++){var R=f*p+(h>>5),O=v[(u+p)*(NE<<5)+(o+h)<<2]?1<<31-h%32:0;_[R]|=O,C|=O}C?b=p:(e.y0++,x--,p--,u++)}e.y1=e.y0+b,e.sprite=_.slice(0,(e.y1-e.y0)*f)}}}function rje(t,e,n){n>>=5;for(var r=t.sprite,i=t.width>>5,s=t.x-(i<<4),o=s&127,u=32-o,a=t.y1-t.y0,l=(t.y+t.y0)*n+(s>>5),c,f=0;f<a;f++){c=0;for(var x=0;x<=i;x++)if((c<<u|(x<i?(c=r[f*i+x])>>>o:0))&e[l+x])return!0;l+=n}return!1}function ije(t,e){var n=t[0],r=t[1];e.x+e.x0<n.x&&(n.x=e.x+e.x0),e.y+e.y0<n.y&&(n.y=e.y+e.y0),e.x+e.x1>r.x&&(r.x=e.x+e.x1),e.y+e.y1>r.y&&(r.y=e.y+e.y1)}function sje(t,e){return t.x+t.x1>e[0].x&&t.x+t.x0<e[1].x&&t.y+t.y1>e[0].y&&t.y+t.y0<e[1].y}function $ne(t){var e=t[0]/t[1];return function(n){return[e*(n*=.1)*Math.cos(n),n*Math.sin(n)]}}function oje(t){var e=4,n=e*t[0]/t[1],r=0,i=0;return function(s){var o=s<0?-1:1;switch(Math.sqrt(1+4*o*s)-o&3){case 0:r+=n;break;case 1:i+=e;break;case 2:r-=n;break;default:i-=e;break}return[r,i]}}function uje(t){for(var e=[],n=-1;++n<t;)e[n]=0;return e}function rd(t){return typeof t=="function"?t:function(){return t}}var aje={archimedean:$ne,rectangular:oje};const Bne=["x","y","font","fontSize","fontStyle","fontWeight","angle"],lje=["text","font","rotate","fontSize","fontStyle","fontWeight"];function G6(t){pe.call(this,tje(),t)}G6.Definition={type:"Wordcloud",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2},{name:"font",type:"string",expr:!0,default:"sans-serif"},{name:"fontStyle",type:"string",expr:!0,default:"normal"},{name:"fontWeight",type:"string",expr:!0,default:"normal"},{name:"fontSize",type:"number",expr:!0,default:14},{name:"fontSizeRange",type:"number",array:"nullable",default:[10,50]},{name:"rotate",type:"number",expr:!0,default:0},{name:"text",type:"field"},{name:"spiral",type:"string",values:["archimedean","rectangular"]},{name:"padding",type:"number",expr:!0},{name:"as",type:"string",array:!0,length:7,default:Bne}]},Fe(G6,pe,{transform(t,e){t.size&&!(t.size[0]&&t.size[1])&&ve("Wordcloud size dimensions must be non-zero.");function n(p){const m=t[p];return ct(m)&&e.modified(m.fields)}const r=t.modified();if(!(r||e.changed(e.ADD_REM)||lje.some(n)))return;const i=e.materialize(e.SOURCE).source,s=this.value,o=t.as||Bne;let u=t.fontSize||14,a;if(ct(u)?a=t.fontSizeRange:u=Ei(u),a){const p=u,m=Ot("sqrt")().domain(pl(i,p)).range(a);u=g=>m(p(g))}i.forEach(p=>{p[o[0]]=NaN,p[o[1]]=NaN,p[o[3]]=0});const l=s.words(i).text(t.text).size(t.size||[500,500]).padding(t.padding||1).spiral(t.spiral||"archimedean").rotate(t.rotate||0).font(t.font||"sans-serif").fontStyle(t.fontStyle||"normal").fontWeight(t.fontWeight||"normal").fontSize(u).random(Cl).layout(),c=s.size(),f=c[0]>>1,x=c[1]>>1,h=l.length;for(let p=0,m,g;p<h;++p)m=l[p],g=m.datum,g[o[0]]=m.x+f,g[o[1]]=m.y+x,g[o[2]]=m.font,g[o[3]]=m.size,g[o[4]]=m.style,g[o[5]]=m.weight,g[o[6]]=m.rotate;return e.reflow(r).modifies(o)}});const cje=Object.freeze(Object.defineProperty({__proto__:null,wordcloud:G6},Symbol.toStringTag,{value:"Module"})),fje=t=>new Uint8Array(t),xje=t=>new Uint16Array(t),DE=t=>new Uint32Array(t);function dje(){let t=8,e=[],n=DE(0),r=eO(0,t),i=eO(0,t);return{data:()=>e,seen:()=>n=hje(n,e.length),add(s){for(let o=0,u=e.length,a=s.length,l;o<a;++o)l=s[o],l._index=u++,e.push(l)},remove(s,o){const u=e.length,a=Array(u-s),l=e;let c,f,x;for(f=0;!o[f]&&f<u;++f)a[f]=e[f],l[f]=f;for(x=f;f<u;++f)c=e[f],o[f]?l[f]=-1:(l[f]=x,r[x]=r[f],i[x]=i[f],a[x]=c,c._index=x++),r[f]=0;return e=a,l},size:()=>e.length,curr:()=>r,prev:()=>i,reset:s=>i[s]=r[s],all:()=>t<257?255:t<65537?65535:4294967295,set(s,o){r[s]|=o},clear(s,o){r[s]&=~o},resize(s,o){const u=r.length;(s>u||o>t)&&(t=Math.max(o,t),r=eO(s,t,r),i=eO(s,t))}}}function hje(t,e,n){return t.length>=e?t:(n=n||new t.constructor(e),n.set(t),n)}function eO(t,e,n){const r=(e<257?fje:e<65537?xje:DE)(t);return n&&r.set(n),r}function kne(t,e,n){const r=1<<e;return{one:r,zero:~r,range:n.slice(),bisect:t.bisect,index:t.index,size:t.size,onAdd(i,s){const o=this,u=o.bisect(o.range,i.value),a=i.index,l=u[0],c=u[1],f=a.length;let x;for(x=0;x<l;++x)s[a[x]]|=r;for(x=c;x<f;++x)s[a[x]]|=r;return o}}}function Pne(){let t=DE(0),e=[],n=0;function r(u,a,l){if(!a.length)return[];const c=n,f=a.length,x=DE(f);let h=Array(f),p,m,g;for(g=0;g<f;++g)h[g]=u(a[g]),x[g]=g;if(h=pje(h,x),c)p=e,m=t,e=Array(c+f),t=DE(c+f),gje(l,p,m,c,h,x,f,e,t);else{if(l>0)for(g=0;g<f;++g)x[g]+=l;e=h,t=x}return n=c+f,{index:x,value:h}}function i(u,a){const l=n;let c,f,x;for(f=0;!a[t[f]]&&f<l;++f);for(x=f;f<l;++f)a[c=t[f]]||(t[x]=c,e[x]=e[f],++x);n=l-u}function s(u){for(let a=0,l=n;a<l;++a)t[a]=u[t[a]]}function o(u,a){let l;return a?l=a.length:(a=e,l=n),[rFe(a,u[0],0,l),J0(a,u[1],0,l)]}return{insert:r,remove:i,bisect:o,reindex:s,index:()=>t,size:()=>n}}function pje(t,e){return t.sort.call(e,(n,r)=>{const i=t[n],s=t[r];return i<s?-1:i>s?1:0}),oFe(t,e)}function gje(t,e,n,r,i,s,o,u,a){let l=0,c=0,f;for(f=0;l<r&&c<o;++f)e[l]<i[c]?(u[f]=e[l],a[f]=n[l++]):(u[f]=i[c],a[f]=s[c++]+t);for(;l<r;++l,++f)u[f]=e[l],a[f]=n[l];for(;c<o;++c,++f)u[f]=i[c],a[f]=s[c]+t}function W6(t){pe.call(this,dje(),t),this._indices=null,this._dims=null}W6.Definition={type:"CrossFilter",metadata:{},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"query",type:"array",array:!0,required:!0,content:{type:"number",array:!0,length:2}}]},Fe(W6,pe,{transform(t,e){if(this._dims){var n=t.modified("fields")||t.fields.some(r=>e.modified(r.fields));return n?this.reinit(t,e):this.eval(t,e)}else return this.init(t,e)},init(t,e){const n=t.fields,r=t.query,i=this._indices={},s=this._dims=[],o=r.length;let u=0,a,l;for(;u<o;++u)a=n[u].fname,l=i[a]||(i[a]=Pne()),s.push(kne(l,u,r[u]));return this.eval(t,e)},reinit(t,e){const n=e.materialize().fork(),r=t.fields,i=t.query,s=this._indices,o=this._dims,u=this.value,a=u.curr(),l=u.prev(),c=u.all(),f=n.rem=n.add,x=n.mod,h=i.length,p={};let m,g,y,E,A,S,v,_,C;if(l.set(a),e.rem.length&&(A=this.remove(t,e,n)),e.add.length&&u.add(e.add),e.mod.length)for(S={},E=e.mod,v=0,_=E.length;v<_;++v)S[E[v]._index]=1;for(v=0;v<h;++v)C=r[v],(!o[v]||t.modified("fields",v)||e.modified(C.fields))&&(y=C.fname,(m=p[y])||(s[y]=g=Pne(),p[y]=m=g.insert(C,e.source,0)),o[v]=kne(g,v,i[v]).onAdd(m,a));for(v=0,_=u.data().length;v<_;++v)A[v]||(l[v]!==a[v]?f.push(v):S[v]&&a[v]!==c&&x.push(v));return u.mask=(1<<h)-1,n},eval(t,e){const n=e.materialize().fork(),r=this._dims.length;let i=0;return e.rem.length&&(this.remove(t,e,n),i|=(1<<r)-1),t.modified("query")&&!t.modified("fields")&&(i|=this.update(t,e,n)),e.add.length&&(this.insert(t,e,n),i|=(1<<r)-1),e.mod.length&&(this.modify(e,n),i|=(1<<r)-1),this.value.mask=i,n},insert(t,e,n){const r=e.add,i=this.value,s=this._dims,o=this._indices,u=t.fields,a={},l=n.add,c=i.size()+r.length,f=s.length;let x=i.size(),h,p,m;i.resize(c,f),i.add(r);const g=i.curr(),y=i.prev(),E=i.all();for(h=0;h<f;++h)p=u[h].fname,m=a[p]||(a[p]=o[p].insert(u[h],r,x)),s[h].onAdd(m,g);for(;x<c;++x)y[x]=E,g[x]!==E&&l.push(x)},modify(t,e){const n=e.mod,r=this.value,i=r.curr(),s=r.all(),o=t.mod;let u,a,l;for(u=0,a=o.length;u<a;++u)l=o[u]._index,i[l]!==s&&n.push(l)},remove(t,e,n){const r=this._indices,i=this.value,s=i.curr(),o=i.prev(),u=i.all(),a={},l=n.rem,c=e.rem;let f,x,h,p;for(f=0,x=c.length;f<x;++f)h=c[f]._index,a[h]=1,o[h]=p=s[h],s[h]=u,p!==u&&l.push(h);for(h in r)r[h].remove(x,a);return this.reindex(e,x,a),a},reindex(t,e,n){const r=this._indices,i=this.value;t.runAfter(()=>{const s=i.remove(e,n);for(const o in r)r[o].reindex(s)})},update(t,e,n){const r=this._dims,i=t.query,s=e.stamp,o=r.length;let u=0,a,l;for(n.filters=0,l=0;l<o;++l)t.modified("query",l)&&(a=l,++u);if(u===1)u=r[a].one,this.incrementOne(r[a],i[a],n.add,n.rem);else for(l=0,u=0;l<o;++l)t.modified("query",l)&&(u|=r[l].one,this.incrementAll(r[l],i[l],s,n.add),n.rem=n.add);return u},incrementAll(t,e,n,r){const i=this.value,s=i.seen(),o=i.curr(),u=i.prev(),a=t.index(),l=t.bisect(t.range),c=t.bisect(e),f=c[0],x=c[1],h=l[0],p=l[1],m=t.one;let g,y,E;if(f<h)for(g=f,y=Math.min(h,x);g<y;++g)E=a[g],s[E]!==n&&(u[E]=o[E],s[E]=n,r.push(E)),o[E]^=m;else if(f>h)for(g=h,y=Math.min(f,p);g<y;++g)E=a[g],s[E]!==n&&(u[E]=o[E],s[E]=n,r.push(E)),o[E]^=m;if(x>p)for(g=Math.max(f,p),y=x;g<y;++g)E=a[g],s[E]!==n&&(u[E]=o[E],s[E]=n,r.push(E)),o[E]^=m;else if(x<p)for(g=Math.max(h,x),y=p;g<y;++g)E=a[g],s[E]!==n&&(u[E]=o[E],s[E]=n,r.push(E)),o[E]^=m;t.range=e.slice()},incrementOne(t,e,n,r){const i=this.value,s=i.curr(),o=t.index(),u=t.bisect(t.range),a=t.bisect(e),l=a[0],c=a[1],f=u[0],x=u[1],h=t.one;let p,m,g;if(l<f)for(p=l,m=Math.min(f,c);p<m;++p)g=o[p],s[g]^=h,n.push(g);else if(l>f)for(p=f,m=Math.min(l,x);p<m;++p)g=o[p],s[g]^=h,r.push(g);if(c>x)for(p=Math.max(l,x),m=c;p<m;++p)g=o[p],s[g]^=h,n.push(g);else if(c<x)for(p=Math.max(f,c),m=x;p<m;++p)g=o[p],s[g]^=h,r.push(g);t.range=e.slice()}});function V6(t){pe.call(this,null,t)}V6.Definition={type:"ResolveFilter",metadata:{},params:[{name:"ignore",type:"number",required:!0,description:"A bit mask indicating which filters to ignore."},{name:"filter",type:"object",required:!0,description:"Per-tuple filter bitmaps from a CrossFilter transform."}]},Fe(V6,pe,{transform(t,e){const n=~(t.ignore||0),r=t.filter,i=r.mask;if(!(i&n))return e.StopPropagation;const s=e.fork(e.ALL),o=r.data(),u=r.curr(),a=r.prev(),l=c=>u[c]&n?null:o[c];return s.filter(s.MOD,l),i&i-1?(s.filter(s.ADD,c=>{const f=u[c]&n;return!f&&f^a[c]&n?o[c]:null}),s.filter(s.REM,c=>{const f=u[c]&n;return f&&!(f^(f^a[c]&n))?o[c]:null})):(s.filter(s.ADD,l),s.filter(s.REM,c=>(u[c]&n)===i?o[c]:null)),s.filter(s.SOURCE,c=>l(c._index))}});const mje=Object.freeze(Object.defineProperty({__proto__:null,crossfilter:W6,resolvefilter:V6},Symbol.toStringTag,{value:"Module"})),yje="RawCode",id="Literal",Eje="Property",Aje="Identifier",Sje="ArrayExpression",vje="BinaryExpression",Mne="CallExpression",_je="ConditionalExpression",Cje="LogicalExpression",bje="MemberExpression",Tje="ObjectExpression",Rje="UnaryExpression";function tu(t){this.type=t}tu.prototype.visit=function(t){let e,n,r;if(t(this))return 1;for(e=Oje(this),n=0,r=e.length;n<r;++n)if(e[n].visit(t))return 1};function Oje(t){switch(t.type){case Sje:return t.elements;case vje:case Cje:return[t.left,t.right];case Mne:return[t.callee].concat(t.arguments);case _je:return[t.test,t.consequent,t.alternate];case bje:return[t.object,t.property];case Tje:return t.properties;case Eje:return[t.key,t.value];case Rje:return[t.argument];case Aje:case id:case yje:default:return[]}}var pa,Ge,Ae,ni,Pt,tO=1,FE=2,sd=3,bc=4,nO=5,od=6,ss=7,wE=8,Nje=9;pa={},pa[tO]="Boolean",pa[FE]="<end>",pa[sd]="Identifier",pa[bc]="Keyword",pa[nO]="Null",pa[od]="Numeric",pa[ss]="Punctuator",pa[wE]="String",pa[Nje]="RegularExpression";var Dje="ArrayExpression",Fje="BinaryExpression",wje="CallExpression",Lje="ConditionalExpression",jne="Identifier",Ije="Literal",$je="LogicalExpression",Bje="MemberExpression",kje="ObjectExpression",Pje="Property",Mje="UnaryExpression",gr="Unexpected token %0",jje="Unexpected number",Uje="Unexpected string",qje="Unexpected identifier",Hje="Unexpected reserved word",zje="Unexpected end of input",Y6="Invalid regular expression",X6="Invalid regular expression: missing /",Une="Octal literals are not allowed in strict mode.",Qje="Duplicate data property in object literal not allowed in strict mode",wr="ILLEGAL",LE="Disabled.",Gje=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),Wje=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function rO(t,e){if(!t)throw new Error("ASSERT: "+e)}function Ml(t){return t>=48&&t<=57}function K6(t){return"0123456789abcdefABCDEF".indexOf(t)>=0}function IE(t){return"01234567".indexOf(t)>=0}function Vje(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0}function $E(t){return t===10||t===13||t===8232||t===8233}function BE(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&Gje.test(String.fromCharCode(t))}function iO(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&Wje.test(String.fromCharCode(t))}const Yje={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function qne(){for(;Ae<ni;){const t=Ge.charCodeAt(Ae);if(Vje(t)||$E(t))++Ae;else break}}function J6(t){var e,n,r,i=0;for(n=t==="u"?4:2,e=0;e<n;++e)Ae<ni&&K6(Ge[Ae])?(r=Ge[Ae++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):Nt({},gr,wr);return String.fromCharCode(i)}function Xje(){var t,e,n,r;for(t=Ge[Ae],e=0,t==="}"&&Nt({},gr,wr);Ae<ni&&(t=Ge[Ae++],!!K6(t));)e=e*16+"0123456789abcdef".indexOf(t.toLowerCase());return(e>1114111||t!=="}")&&Nt({},gr,wr),e<=65535?String.fromCharCode(e):(n=(e-65536>>10)+55296,r=(e-65536&1023)+56320,String.fromCharCode(n,r))}function Hne(){var t,e;for(t=Ge.charCodeAt(Ae++),e=String.fromCharCode(t),t===92&&(Ge.charCodeAt(Ae)!==117&&Nt({},gr,wr),++Ae,t=J6("u"),(!t||t==="\\"||!BE(t.charCodeAt(0)))&&Nt({},gr,wr),e=t);Ae<ni&&(t=Ge.charCodeAt(Ae),!!iO(t));)++Ae,e+=String.fromCharCode(t),t===92&&(e=e.substr(0,e.length-1),Ge.charCodeAt(Ae)!==117&&Nt({},gr,wr),++Ae,t=J6("u"),(!t||t==="\\"||!iO(t.charCodeAt(0)))&&Nt({},gr,wr),e+=t);return e}function Kje(){var t,e;for(t=Ae++;Ae<ni;){if(e=Ge.charCodeAt(Ae),e===92)return Ae=t,Hne();if(iO(e))++Ae;else break}return Ge.slice(t,Ae)}function Jje(){var t,e,n;return t=Ae,e=Ge.charCodeAt(Ae)===92?Hne():Kje(),e.length===1?n=sd:Yje.hasOwnProperty(e)?n=bc:e==="null"?n=nO:e==="true"||e==="false"?n=tO:n=sd,{type:n,value:e,start:t,end:Ae}}function Z6(){var t=Ae,e=Ge.charCodeAt(Ae),n,r=Ge[Ae],i,s,o;switch(e){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++Ae,{type:ss,value:String.fromCharCode(e),start:t,end:Ae};default:if(n=Ge.charCodeAt(Ae+1),n===61)switch(e){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return Ae+=2,{type:ss,value:String.fromCharCode(e)+String.fromCharCode(n),start:t,end:Ae};case 33:case 61:return Ae+=2,Ge.charCodeAt(Ae)===61&&++Ae,{type:ss,value:Ge.slice(t,Ae),start:t,end:Ae}}}if(o=Ge.substr(Ae,4),o===">>>=")return Ae+=4,{type:ss,value:o,start:t,end:Ae};if(s=o.substr(0,3),s===">>>"||s==="<<="||s===">>=")return Ae+=3,{type:ss,value:s,start:t,end:Ae};if(i=s.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return Ae+=2,{type:ss,value:i,start:t,end:Ae};if(i==="//"&&Nt({},gr,wr),"<>=!+-*%&|^/".indexOf(r)>=0)return++Ae,{type:ss,value:r,start:t,end:Ae};Nt({},gr,wr)}function Zje(t){let e="";for(;Ae<ni&&K6(Ge[Ae]);)e+=Ge[Ae++];return e.length===0&&Nt({},gr,wr),BE(Ge.charCodeAt(Ae))&&Nt({},gr,wr),{type:od,value:parseInt("0x"+e,16),start:t,end:Ae}}function eUe(t){let e="0"+Ge[Ae++];for(;Ae<ni&&IE(Ge[Ae]);)e+=Ge[Ae++];return(BE(Ge.charCodeAt(Ae))||Ml(Ge.charCodeAt(Ae)))&&Nt({},gr,wr),{type:od,value:parseInt(e,8),octal:!0,start:t,end:Ae}}function zne(){var t,e,n;if(n=Ge[Ae],rO(Ml(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),e=Ae,t="",n!=="."){if(t=Ge[Ae++],n=Ge[Ae],t==="0"){if(n==="x"||n==="X")return++Ae,Zje(e);if(IE(n))return eUe(e);n&&Ml(n.charCodeAt(0))&&Nt({},gr,wr)}for(;Ml(Ge.charCodeAt(Ae));)t+=Ge[Ae++];n=Ge[Ae]}if(n==="."){for(t+=Ge[Ae++];Ml(Ge.charCodeAt(Ae));)t+=Ge[Ae++];n=Ge[Ae]}if(n==="e"||n==="E")if(t+=Ge[Ae++],n=Ge[Ae],(n==="+"||n==="-")&&(t+=Ge[Ae++]),Ml(Ge.charCodeAt(Ae)))for(;Ml(Ge.charCodeAt(Ae));)t+=Ge[Ae++];else Nt({},gr,wr);return BE(Ge.charCodeAt(Ae))&&Nt({},gr,wr),{type:od,value:parseFloat(t),start:e,end:Ae}}function tUe(){var t="",e,n,r,i,s=!1;for(e=Ge[Ae],rO(e==="'"||e==='"',"String literal must starts with a quote"),n=Ae,++Ae;Ae<ni;)if(r=Ge[Ae++],r===e){e="";break}else if(r==="\\")if(r=Ge[Ae++],!r||!$E(r.charCodeAt(0)))switch(r){case"u":case"x":Ge[Ae]==="{"?(++Ae,t+=Xje()):t+=J6(r);break;case"n":t+=`
|
|
1313
|
+
`),i!==Zr.text&&(ca(e,0),o=e.ownerDocument,u=Wx(n),s.forEach((a,l)=>{const c=Vx(o,"tspan",Zn);c.__data__=n,c.textContent=a,l&&(c.setAttribute("x",0),c.setAttribute("dy",u)),e.appendChild(c)}),Zr.text=i)):(s=gc(n,r),s!==Zr.text&&(e.textContent=s,Zr.text=s)),_i(e,"font-family",MT(n)),_i(e,"font-size",Ol(n)+"px"),_i(e,"font-style",n.fontStyle),_i(e,"font-variant",n.fontVariant),_i(e,"font-weight",n.fontWeight)}};function tE(t,e,n){e!==Zr[t]&&(n?xke(Dl,t,e,n):_i(Dl,t,e),Zr[t]=e)}function XT(t,e,n){n!==Zr[e]&&(n==null?t.style.removeProperty(e):t.style.setProperty(e,n+""),Zr[e]=n)}function mc(t,e){for(const n in e)_i(t,n,e[n])}function _i(t,e,n){n!=null?t.setAttribute(e,n):t.removeAttribute(e)}function xke(t,e,n,r){n!=null?t.setAttributeNS(r,e,n):t.removeAttributeNS(r,e)}function TZ(){let t;return typeof window>"u"?"":(t=window.location).hash?t.href.slice(0,-t.hash.length):t.href}function RZ(t){Nl.call(this,t),this._text=null,this._defs={gradient:{},clipping:{}}}Fe(RZ,Nl,{svg(){return this._text},_render(t){const e=EZ();e.open("svg",ft({},Yy,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}));const n=this._bgcolor;return n&&n!=="transparent"&&n!=="none"&&e.open("rect",{width:this._width,height:this._height,fill:n}).close(),e.open("g",SZ,{transform:"translate("+this._origin+")"}),this.mark(e,t),e.close(),this.defs(e),this._text=e.close()+"",this},mark(t,e){const n=xo[e.marktype],r=n.tag,i=[hZ,n.attr];t.open("g",{class:ZJ(e),"clip-path":e.clip?h$(this,e,e.group):null},pZ(e),{"pointer-events":r!=="g"&&e.interactive===!1?"none":null});const s=o=>{const u=this.href(o);if(u&&t.open("a",u),t.open(r,this.attr(e,o,i,r!=="g"?r:null)),r==="text"){const a=Xy(o);if(_e(a)){const l={x:0,dy:Wx(o)};for(let c=0;c<a.length;++c)t.open("tspan",c?l:null).text(gc(o,a[c])).close()}else t.text(gc(o,a))}else if(r==="g"){const a=o.strokeForeground,l=o.fill,c=o.stroke;a&&c&&(o.stroke=null),t.open("path",this.attr(e,o,n.background,"bgrect")).close(),t.open("g",this.attr(e,o,n.content)),aa(o,f=>this.mark(t,f)),t.close(),a&&c?(l&&(o.fill=null),o.stroke=c,t.open("path",this.attr(e,o,n.foreground,"bgrect")).close(),l&&(o.fill=l)):t.open("path",this.attr(e,o,n.foreground,"bgfore")).close()}t.close(),u&&t.close()};return n.nested?e.items&&e.items.length&&s(e.items[0]):aa(e,s),t.close()},href(t){const e=t.href;let n;if(e){if(n=this._hrefs&&this._hrefs[e])return n;this.sanitizeURL(e).then(r=>{r["xlink:href"]=r.href,r.href=null,(this._hrefs||(this._hrefs={}))[e]=r})}return null},attr(t,e,n,r){const i={},s=(o,u,a,l)=>{i[l||o]=u};return Array.isArray(n)?n.forEach(o=>o(s,e,this)):n(s,e,this),r&&dke(i,e,t,r,this._defs),i},defs(t){const e=this._defs.gradient,n=this._defs.clipping;if(Object.keys(e).length+Object.keys(n).length!==0){t.open("defs");for(const i in e){const s=e[i],o=s.stops;s.gradient==="radial"?(t.open("pattern",{id:CT+i,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),t.open("rect",{width:"1",height:"1",fill:"url(#"+i+")"}).close(),t.close(),t.open("radialGradient",{id:i,fx:s.x1,fy:s.y1,fr:s.r1,cx:s.x2,cy:s.y2,r:s.r2})):t.open("linearGradient",{id:i,x1:s.x1,x2:s.x2,y1:s.y1,y2:s.y2});for(let u=0;u<o.length;++u)t.open("stop",{offset:o[u].offset,"stop-color":o[u].color}).close();t.close()}for(const i in n){const s=n[i];t.open("clipPath",{id:i}),s.path?t.open("path",{d:s.path}).close():t.open("rect",{x:0,y:0,width:s.width,height:s.height}).close(),t.close()}t.close()}}});function dke(t,e,n,r,i){let s;if(e==null||(r==="bgrect"&&n.interactive===!1&&(t["pointer-events"]="none"),r==="bgfore"&&(n.interactive===!1&&(t["pointer-events"]="none"),t.display="none",e.fill!==null)))return t;r==="image"&&e.smooth===!1&&(s=["image-rendering: optimizeSpeed;","image-rendering: pixelated;"]),r==="text"&&(t["font-family"]=MT(e),t["font-size"]=Ol(e)+"px",t["font-style"]=e.fontStyle,t["font-variant"]=e.fontVariant,t["font-weight"]=e.fontWeight);for(const o in VT){let u=e[o];const a=VT[o];u==="transparent"&&(a==="fill"||a==="stroke")||u!=null&&(a$(u)&&(u=pJ(u,i.gradient,"")),t[a]=u)}for(const o in YT){const u=e[o];u!=null&&(s=s||[],s.push(`${YT[o]}: ${u};`))}return s&&(t.style=s.join(" ")),t}const OZ="canvas",NZ="png",DZ="svg",FZ="none",Xx={Canvas:OZ,PNG:NZ,SVG:DZ,None:FZ},Hp={};Hp[OZ]=Hp[NZ]={renderer:U$,headless:U$,handler:WT},Hp[DZ]={renderer:_Z,headless:RZ,handler:aZ},Hp[FZ]={};function V$(t,e){return t=String(t||"").toLowerCase(),arguments.length>1?(Hp[t]=e,this):Hp[t]}function hke(t,e,n){const r=[],i=new Jn().union(e),s=t.marktype;return s?wZ(t,i,n,r):s==="group"?LZ(t,i,n,r):ve("Intersect scene must be mark node or group item.")}function wZ(t,e,n,r){if(pke(t,e,n)){const i=t.items,s=t.marktype,o=i.length;let u=0;if(s==="group")for(;u<o;++u)LZ(i[u],e,n,r);else for(const a=xo[s].isect;u<o;++u){const l=i[u];IZ(l,e,a)&&r.push(l)}}return r}function pke(t,e,n){return t.bounds&&e.intersects(t.bounds)&&(t.marktype==="group"||t.interactive!==!1&&(!n||n(t)))}function LZ(t,e,n,r){n&&n(t.mark)&&IZ(t,e,xo.group.isect)&&r.push(t);const i=t.items,s=i&&i.length;if(s){const o=t.x||0,u=t.y||0;e.translate(-o,-u);for(let a=0;a<s;++a)wZ(i[a],e,n,r);e.translate(o,u)}return r}function IZ(t,e,n){const r=t.bounds;return e.encloses(r)||e.intersects(r)&&n(t,e)}const Y$=new Jn;function gke(t){const e=t.clip;if(ct(e))e(LT(Y$.clear()));else if(e)Y$.set(0,0,t.group.width,t.group.height);else return;t.bounds.intersect(Y$)}const zp="top",Ko="left",Jo="right",yc="bottom",mke="top-left",yke="top-right",Eke="bottom-left",Ake="bottom-right",X$="start",K$="middle",Ci="end",Ske="x",vke="y",KT="group",J$="axis",Z$="title",_ke="frame",Cke="scope",eB="legend",$Z="row-header",BZ="row-footer",kZ="row-title",PZ="column-header",MZ="column-footer",jZ="column-title",bke="padding",Tke="symbol",UZ="fit",qZ="fit-x",HZ="fit-y",Rke="pad",tB="none",JT="all",nB="each",rB="flush",Ec="column",Ac="row";function zZ(t){pe.call(this,null,t)}Fe(zZ,pe,{transform(t,e){const n=e.dataflow,r=t.mark,i=r.marktype,s=xo[i],o=s.bound;let u=r.bounds,a;if(s.nested)r.items.length&&n.dirty(r.items[0]),u=ZT(r,o),r.items.forEach(l=>{l.bounds.clear().union(u)});else if(i===KT||t.modified())switch(e.visit(e.MOD,l=>n.dirty(l)),u.clear(),r.items.forEach(l=>u.union(ZT(l,o))),r.role){case J$:case eB:case Z$:e.reflow()}else a=e.changed(e.REM),e.visit(e.ADD,l=>{u.union(ZT(l,o))}),e.visit(e.MOD,l=>{a=a||u.alignsWith(l.bounds),n.dirty(l),u.union(ZT(l,o))}),a&&(u.clear(),r.items.forEach(l=>u.union(l.bounds)));return gke(r),e.modifies("bounds")}});function ZT(t,e,n){return e(t.bounds.clear(),t,n)}const QZ=":vega_identifier:";function iB(t){pe.call(this,0,t)}iB.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},Fe(iB,pe,{transform(t,e){const n=Oke(e.dataflow),r=t.as;let i=n.value;return e.visit(e.ADD,s=>s[r]=s[r]||++i),n.set(this.value=i),e}});function Oke(t){return t._signals[QZ]||(t._signals[QZ]=t.add(0))}function GZ(t){pe.call(this,null,t)}Fe(GZ,pe,{transform(t,e){let n=this.value;n||(n=e.dataflow.scenegraph().mark(t.markdef,Nke(t),t.index),n.group.context=t.context,t.context.group||(t.context.group=n.group),n.source=this.source,n.clip=t.clip,n.interactive=t.interactive,this.value=n);const r=n.marktype===KT?g$:p$;return e.visit(e.ADD,i=>r.call(i,n)),(t.modified("clip")||t.modified("interactive"))&&(n.clip=t.clip,n.interactive=!!t.interactive,n.zdirty=!0,e.reflow()),n.items=e.source,e}});function Nke(t){const e=t.groups,n=t.parent;return e&&e.size===1?e.get(Object.keys(e.object)[0]):e&&n?e.lookup(n):null}function WZ(t){pe.call(this,null,t)}const VZ={parity:t=>t.filter((e,n)=>n%2?e.opacity=0:1),greedy:(t,e)=>{let n;return t.filter((r,i)=>!i||!YZ(n.bounds,r.bounds,e)?(n=r,1):r.opacity=0)}},YZ=(t,e,n)=>n>Math.max(e.x1-t.x2,t.x1-e.x2,e.y1-t.y2,t.y1-e.y2),XZ=(t,e)=>{for(var n=1,r=t.length,i=t[0].bounds,s;n<r;i=s,++n)if(YZ(i,s=t[n].bounds,e))return!0},Dke=t=>{const e=t.bounds;return e.width()>1&&e.height()>1},Fke=(t,e,n)=>{var r=t.range(),i=new Jn;return e===zp||e===yc?i.set(r[0],-1/0,r[1],1/0):i.set(-1/0,r[0],1/0,r[1]),i.expand(n||1),s=>i.encloses(s.bounds)},KZ=t=>(t.forEach(e=>e.opacity=1),t),JZ=(t,e)=>t.reflow(e.modified()).modifies("opacity");Fe(WZ,pe,{transform(t,e){const n=VZ[t.method]||VZ.parity,r=t.separation||0;let i=e.materialize(e.SOURCE).source,s,o;if(!i||!i.length)return;if(!t.method)return t.modified("method")&&(KZ(i),e=JZ(e,t)),e;if(i=i.filter(Dke),!i.length)return;if(t.sort&&(i=i.slice().sort(t.sort)),s=KZ(i),e=JZ(e,t),s.length>=3&&XZ(s,r)){do s=n(s,r);while(s.length>=3&&XZ(s,r));s.length<3&&!vt(i).opacity&&(s.length>1&&(vt(s).opacity=0),vt(i).opacity=1)}t.boundScale&&t.boundTolerance>=0&&(o=Fke(t.boundScale,t.boundOrient,+t.boundTolerance),i.forEach(a=>{o(a)||(a.opacity=0)}));const u=s[0].mark.bounds.clear();return i.forEach(a=>{a.opacity&&u.union(a.bounds)}),e}});function ZZ(t){pe.call(this,null,t)}Fe(ZZ,pe,{transform(t,e){const n=e.dataflow;if(e.visit(e.ALL,r=>n.dirty(r)),e.fields&&e.fields.zindex){const r=e.source&&e.source[0];r&&(r.mark.zdirty=!0)}}});const ei=new Jn;function Qp(t,e,n){return t[e]===n?0:(t[e]=n,1)}function wke(t){var e=t.items[0].orient;return e===Ko||e===Jo}function Lke(t){let e=+t.grid;return[t.ticks?e++:-1,t.labels?e++:-1,e+ +t.domain]}function Ike(t,e,n,r){var i=e.items[0],s=i.datum,o=i.translate!=null?i.translate:.5,u=i.orient,a=Lke(s),l=i.range,c=i.offset,f=i.position,x=i.minExtent,h=i.maxExtent,p=s.title&&i.items[a[2]].items[0],m=i.titlePadding,g=i.bounds,y=p&&GJ(p),E=0,A=0,S,v;switch(ei.clear().union(g),g.clear(),(S=a[0])>-1&&g.union(i.items[S].bounds),(S=a[1])>-1&&g.union(i.items[S].bounds),u){case zp:E=f||0,A=-c,v=Math.max(x,Math.min(h,-g.y1)),g.add(0,-v).add(l,0),p&&eR(t,p,v,m,y,0,-1,g);break;case Ko:E=-c,A=f||0,v=Math.max(x,Math.min(h,-g.x1)),g.add(-v,0).add(0,l),p&&eR(t,p,v,m,y,1,-1,g);break;case Jo:E=n+c,A=f||0,v=Math.max(x,Math.min(h,g.x2)),g.add(0,0).add(v,l),p&&eR(t,p,v,m,y,1,1,g);break;case yc:E=f||0,A=r+c,v=Math.max(x,Math.min(h,g.y2)),g.add(0,0).add(l,v),p&&eR(t,p,v,m,0,0,1,g);break;default:E=i.x,A=i.y}return dc(g.translate(E,A),i),Qp(i,"x",E+o)|Qp(i,"y",A+o)&&(i.bounds=ei,t.dirty(i),i.bounds=g,t.dirty(i)),i.mark.bounds.clear().union(g)}function eR(t,e,n,r,i,s,o,u){const a=e.bounds;if(e.auto){const l=o*(n+i+r);let c=0,f=0;t.dirty(e),s?c=(e.x||0)-(e.x=l):f=(e.y||0)-(e.y=l),e.mark.bounds.clear().union(a.translate(-c,-f)),t.dirty(e)}u.union(a)}const eee=(t,e)=>Math.floor(Math.min(t,e)),tee=(t,e)=>Math.ceil(Math.max(t,e));function $ke(t){var e=t.items,n=e.length,r=0,i,s;const o={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};for(;r<n;++r)if(i=e[r],s=i.items,i.marktype===KT)switch(i.role){case J$:case eB:case Z$:break;case $Z:o.rowheaders.push(...s);break;case BZ:o.rowfooters.push(...s);break;case PZ:o.colheaders.push(...s);break;case MZ:o.colfooters.push(...s);break;case kZ:o.rowtitle=s[0];break;case jZ:o.coltitle=s[0];break;default:o.marks.push(...s)}return o}function Bke(t){return new Jn().set(0,0,t.width||0,t.height||0)}function kke(t){const e=t.bounds.clone();return e.empty()?e.set(0,0,0,0):e.translate(-(t.x||0),-(t.y||0))}function ln(t,e,n){const r=He(t)?t[e]:t;return r??(n!==void 0?n:0)}function nee(t){return t<0?Math.ceil(-t):0}function ree(t,e,n){var r=!n.nodirty,i=n.bounds===rB?Bke:kke,s=ei.set(0,0,0,0),o=ln(n.align,Ec),u=ln(n.align,Ac),a=ln(n.padding,Ec),l=ln(n.padding,Ac),c=n.columns||e.length,f=c<=0?1:Math.ceil(e.length/c),x=e.length,h=Array(x),p=Array(c),m=0,g=Array(x),y=Array(f),E=0,A=Array(x),S=Array(x),v=Array(x),_,C,b,R,O,L,M,q,W,B,G;for(C=0;C<c;++C)p[C]=0;for(C=0;C<f;++C)y[C]=0;for(C=0;C<x;++C)L=e[C],O=v[C]=i(L),L.x=L.x||0,A[C]=0,L.y=L.y||0,S[C]=0,b=C%c,R=~~(C/c),m=Math.max(m,M=Math.ceil(O.x2)),E=Math.max(E,q=Math.ceil(O.y2)),p[b]=Math.max(p[b],M),y[R]=Math.max(y[R],q),h[C]=a+nee(O.x1),g[C]=l+nee(O.y1),r&&t.dirty(e[C]);for(C=0;C<x;++C)C%c===0&&(h[C]=0),C<c&&(g[C]=0);if(o===nB)for(b=1;b<c;++b){for(G=0,C=b;C<x;C+=c)G<h[C]&&(G=h[C]);for(C=b;C<x;C+=c)h[C]=G+p[b-1]}else if(o===JT){for(G=0,C=0;C<x;++C)C%c&&G<h[C]&&(G=h[C]);for(C=0;C<x;++C)C%c&&(h[C]=G+m)}else for(o=!1,b=1;b<c;++b)for(C=b;C<x;C+=c)h[C]+=p[b-1];if(u===nB)for(R=1;R<f;++R){for(G=0,C=R*c,_=C+c;C<_;++C)G<g[C]&&(G=g[C]);for(C=R*c;C<_;++C)g[C]=G+y[R-1]}else if(u===JT){for(G=0,C=c;C<x;++C)G<g[C]&&(G=g[C]);for(C=c;C<x;++C)g[C]=G+E}else for(u=!1,R=1;R<f;++R)for(C=R*c,_=C+c;C<_;++C)g[C]+=y[R-1];for(W=0,C=0;C<x;++C)W=h[C]+(C%c?W:0),A[C]+=W-e[C].x;for(b=0;b<c;++b)for(B=0,C=b;C<x;C+=c)B+=g[C],S[C]+=B-e[C].y;if(o&&ln(n.center,Ec)&&f>1)for(C=0;C<x;++C)O=o===JT?m:p[C%c],W=O-v[C].x2-e[C].x-A[C],W>0&&(A[C]+=W/2);if(u&&ln(n.center,Ac)&&c!==1)for(C=0;C<x;++C)O=u===JT?E:y[~~(C/c)],B=O-v[C].y2-e[C].y-S[C],B>0&&(S[C]+=B/2);for(C=0;C<x;++C)s.union(v[C].translate(A[C],S[C]));switch(W=ln(n.anchor,Ske),B=ln(n.anchor,vke),ln(n.anchor,Ec)){case Ci:W-=s.width();break;case K$:W-=s.width()/2}switch(ln(n.anchor,Ac)){case Ci:B-=s.height();break;case K$:B-=s.height()/2}for(W=Math.round(W),B=Math.round(B),s.clear(),C=0;C<x;++C)e[C].mark.bounds.clear();for(C=0;C<x;++C)L=e[C],L.x+=A[C]+=W,L.y+=S[C]+=B,s.union(L.mark.bounds.union(L.bounds.translate(A[C],S[C]))),r&&t.dirty(L);return s}function Pke(t,e,n){var r=$ke(e),i=r.marks,s=n.bounds===rB?Mke:jke,o=n.offset,u=n.columns||i.length,a=u<=0?1:Math.ceil(i.length/u),l=a*u,c,f,x,h,p,m,g;const y=ree(t,i,n);y.empty()&&y.set(0,0,0,0),r.rowheaders&&(m=ln(n.headerBand,Ac,null),c=tR(t,r.rowheaders,i,u,a,-ln(o,"rowHeader"),eee,0,s,"x1",0,u,1,m)),r.colheaders&&(m=ln(n.headerBand,Ec,null),f=tR(t,r.colheaders,i,u,u,-ln(o,"columnHeader"),eee,1,s,"y1",0,1,u,m)),r.rowfooters&&(m=ln(n.footerBand,Ac,null),x=tR(t,r.rowfooters,i,u,a,ln(o,"rowFooter"),tee,0,s,"x2",u-1,u,1,m)),r.colfooters&&(m=ln(n.footerBand,Ec,null),h=tR(t,r.colfooters,i,u,u,ln(o,"columnFooter"),tee,1,s,"y2",l-u,1,u,m)),r.rowtitle&&(p=ln(n.titleAnchor,Ac),g=ln(o,"rowTitle"),g=p===Ci?x+g:c-g,m=ln(n.titleBand,Ac,.5),iee(t,r.rowtitle,g,0,y,m)),r.coltitle&&(p=ln(n.titleAnchor,Ec),g=ln(o,"columnTitle"),g=p===Ci?h+g:f-g,m=ln(n.titleBand,Ec,.5),iee(t,r.coltitle,g,1,y,m))}function Mke(t,e){return e==="x1"?t.x||0:e==="y1"?t.y||0:e==="x2"?(t.x||0)+(t.width||0):e==="y2"?(t.y||0)+(t.height||0):void 0}function jke(t,e){return t.bounds[e]}function tR(t,e,n,r,i,s,o,u,a,l,c,f,x,h){var p=n.length,m=0,g=0,y,E,A,S,v,_,C,b,R;if(!p)return m;for(y=c;y<p;y+=f)n[y]&&(m=o(m,a(n[y],l)));if(!e.length)return m;for(e.length>i&&(t.warn("Grid headers exceed limit: "+i),e=e.slice(0,i)),m+=s,E=0,S=e.length;E<S;++E)t.dirty(e[E]),e[E].mark.bounds.clear();for(y=c,E=0,S=e.length;E<S;++E,y+=f){for(_=e[E],v=_.mark.bounds,A=y;A>=0&&(C=n[A])==null;A-=x);u?(b=h==null?C.x:Math.round(C.bounds.x1+h*C.bounds.width()),R=m):(b=m,R=h==null?C.y:Math.round(C.bounds.y1+h*C.bounds.height())),v.union(_.bounds.translate(b-(_.x||0),R-(_.y||0))),_.x=b,_.y=R,t.dirty(_),g=o(g,v[l])}return g}function iee(t,e,n,r,i,s){if(e){t.dirty(e);var o=n,u=n;r?o=Math.round(i.x1+s*i.width()):u=Math.round(i.y1+s*i.height()),e.bounds.translate(o-(e.x||0),u-(e.y||0)),e.mark.bounds.clear().union(e.bounds),e.x=o,e.y=u,t.dirty(e)}}function Uke(t,e){const n=t[e]||{};return(r,i)=>n[r]!=null?n[r]:t[r]!=null?t[r]:i}function qke(t,e){let n=-1/0;return t.forEach(r=>{r.offset!=null&&(n=Math.max(n,r.offset))}),n>-1/0?n:e}function Hke(t,e,n,r,i,s,o){const u=Uke(n,e),a=qke(t,u("offset",0)),l=u("anchor",X$),c=l===Ci?1:l===K$?.5:0,f={align:nB,bounds:u("bounds",rB),columns:u("direction")==="vertical"?1:t.length,padding:u("margin",8),center:u("center"),nodirty:!0};switch(e){case Ko:f.anchor={x:Math.floor(r.x1)-a,column:Ci,y:c*(o||r.height()+2*r.y1),row:l};break;case Jo:f.anchor={x:Math.ceil(r.x2)+a,y:c*(o||r.height()+2*r.y1),row:l};break;case zp:f.anchor={y:Math.floor(i.y1)-a,row:Ci,x:c*(s||i.width()+2*i.x1),column:l};break;case yc:f.anchor={y:Math.ceil(i.y2)+a,x:c*(s||i.width()+2*i.x1),column:l};break;case mke:f.anchor={x:a,y:a};break;case yke:f.anchor={x:s-a,y:a,column:Ci};break;case Eke:f.anchor={x:a,y:o-a,row:Ci};break;case Ake:f.anchor={x:s-a,y:o-a,column:Ci,row:Ci};break}return f}function zke(t,e){var n=e.items[0],r=n.datum,i=n.orient,s=n.bounds,o=n.x,u=n.y,a,l;return n._bounds?n._bounds.clear().union(s):n._bounds=s.clone(),s.clear(),Gke(t,n,n.items[0].items[0]),s=Qke(n,s),a=2*n.padding,l=2*n.padding,s.empty()||(a=Math.ceil(s.width()+a),l=Math.ceil(s.height()+l)),r.type===Tke&&Wke(n.items[0].items[0].items[0].items),i!==tB&&(n.x=o=0,n.y=u=0),n.width=a,n.height=l,dc(s.set(o,u,o+a,u+l),n),n.mark.bounds.clear().union(s),n}function Qke(t,e){return t.items.forEach(n=>e.union(n.bounds)),e.x1=t.padding,e.y1=t.padding,e}function Gke(t,e,n){var r=e.padding,i=r-n.x,s=r-n.y;if(!e.datum.title)(i||s)&&nE(t,n,i,s);else{var o=e.items[1].items[0],u=o.anchor,a=e.titlePadding||0,l=r-o.x,c=r-o.y;switch(o.orient){case Ko:i+=Math.ceil(o.bounds.width())+a;break;case Jo:case yc:break;default:s+=o.bounds.height()+a}switch((i||s)&&nE(t,n,i,s),o.orient){case Ko:c+=Gp(e,n,o,u,1,1);break;case Jo:l+=Gp(e,n,o,Ci,0,0)+a,c+=Gp(e,n,o,u,1,1);break;case yc:l+=Gp(e,n,o,u,0,0),c+=Gp(e,n,o,Ci,-1,0,1)+a;break;default:l+=Gp(e,n,o,u,0,0)}(l||c)&&nE(t,o,l,c),(l=Math.round(o.bounds.x1-r))<0&&(nE(t,n,-l,0),nE(t,o,-l,0))}}function Gp(t,e,n,r,i,s,o){const u=t.datum.type!=="symbol",a=n.datum.vgrad,l=u&&(s||!a)&&!o?e.items[0]:e,c=l.bounds[i?"y2":"x2"]-t.padding,f=a&&s?c:0,x=a&&s?0:c,h=i<=0?0:GJ(n);return Math.round(r===X$?f:r===Ci?x-h:.5*(c-h))}function nE(t,e,n,r){e.x+=n,e.y+=r,e.bounds.translate(n,r),e.mark.bounds.translate(n,r),t.dirty(e)}function Wke(t){const e=t.reduce((n,r)=>(n[r.column]=Math.max(r.bounds.x2-r.x,n[r.column]||0),n),{});t.forEach(n=>{n.width=e[n.column],n.height=n.bounds.y2-n.y})}function Vke(t,e,n,r,i){var s=e.items[0],o=s.frame,u=s.orient,a=s.anchor,l=s.offset,c=s.padding,f=s.items[0].items[0],x=s.items[1]&&s.items[1].items[0],h=u===Ko||u===Jo?r:n,p=0,m=0,g=0,y=0,E=0,A;if(o!==KT?u===Ko?(p=i.y2,h=i.y1):u===Jo?(p=i.y1,h=i.y2):(p=i.x1,h=i.x2):u===Ko&&(p=r,h=0),A=a===X$?p:a===Ci?h:(p+h)/2,x&&x.text){switch(u){case zp:case yc:E=f.bounds.height()+c;break;case Ko:y=f.bounds.width()+c;break;case Jo:y=-f.bounds.width()-c;break}ei.clear().union(x.bounds),ei.translate(y-(x.x||0),E-(x.y||0)),Qp(x,"x",y)|Qp(x,"y",E)&&(t.dirty(x),x.bounds.clear().union(ei),x.mark.bounds.clear().union(ei),t.dirty(x)),ei.clear().union(x.bounds)}else ei.clear();switch(ei.union(f.bounds),u){case zp:m=A,g=i.y1-ei.height()-l;break;case Ko:m=i.x1-ei.width()-l,g=A;break;case Jo:m=i.x2+ei.width()+l,g=A;break;case yc:m=A,g=i.y2+l;break;default:m=s.x,g=s.y}return Qp(s,"x",m)|Qp(s,"y",g)&&(ei.translate(m,g),t.dirty(s),s.bounds.clear().union(ei),e.bounds.clear().union(ei),t.dirty(s)),s.bounds}function see(t){pe.call(this,null,t)}Fe(see,pe,{transform(t,e){const n=e.dataflow;return t.mark.items.forEach(r=>{t.layout&&Pke(n,r,t.layout),Xke(n,r,t)}),Yke(t.mark.group)?e.reflow():e}});function Yke(t){return t&&t.mark.role!=="legend-entry"}function Xke(t,e,n){var r=e.items,i=Math.max(0,e.width||0),s=Math.max(0,e.height||0),o=new Jn().set(0,0,i,s),u=o.clone(),a=o.clone(),l=[],c,f,x,h,p,m;for(p=0,m=r.length;p<m;++p)switch(f=r[p],f.role){case J$:h=wke(f)?u:a,h.union(Ike(t,f,i,s));break;case Z$:c=f;break;case eB:l.push(zke(t,f));break;case _ke:case Cke:case $Z:case BZ:case kZ:case PZ:case MZ:case jZ:u.union(f.bounds),a.union(f.bounds);break;default:o.union(f.bounds)}if(l.length){const g={};l.forEach(y=>{x=y.orient||Jo,x!==tB&&(g[x]||(g[x]=[])).push(y)});for(const y in g){const E=g[y];ree(t,E,Hke(E,y,n.legends,u,a,i,s))}l.forEach(y=>{const E=y.bounds;if(E.equals(y._bounds)||(y.bounds=y._bounds,t.dirty(y),y.bounds=E,t.dirty(y)),n.autosize&&(n.autosize.type===UZ||n.autosize.type===qZ||n.autosize.type===HZ))switch(y.orient){case Ko:case Jo:o.add(E.x1,0).add(E.x2,0);break;case zp:case yc:o.add(0,E.y1).add(0,E.y2)}else o.union(E)})}o.union(u).union(a),c&&o.union(Vke(t,c,i,s,o)),e.clip&&o.set(0,0,e.width||0,e.height||0),Kke(t,e,o,n)}function Kke(t,e,n,r){const i=r.autosize||{},s=i.type;if(t._autosize<1||!s)return;let o=t._width,u=t._height,a=Math.max(0,e.width||0),l=Math.max(0,Math.ceil(-n.x1)),c=Math.max(0,e.height||0),f=Math.max(0,Math.ceil(-n.y1));const x=Math.max(0,Math.ceil(n.x2-a)),h=Math.max(0,Math.ceil(n.y2-c));if(i.contains===bke){const p=t.padding();o-=p.left+p.right,u-=p.top+p.bottom}s===tB?(l=0,f=0,a=o,c=u):s===UZ?(a=Math.max(0,o-l-x),c=Math.max(0,u-f-h)):s===qZ?(a=Math.max(0,o-l-x),u=c+f+h):s===HZ?(o=a+l+x,c=Math.max(0,u-f-h)):s===Rke&&(o=a+l+x,u=c+f+h),t._resizeView(o,u,a,c,[l,f],i.resize)}const Jke=Object.freeze(Object.defineProperty({__proto__:null,bound:zZ,identifier:iB,mark:GZ,overlap:WZ,render:ZZ,viewlayout:see},Symbol.toStringTag,{value:"Module"}));function oee(t){pe.call(this,null,t)}Fe(oee,pe,{transform(t,e){if(this.value&&!t.modified())return e.StopPropagation;var n=e.dataflow.locale(),r=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=this.value,s=t.scale,o=t.count==null?t.values?t.values.length:10:t.count,u=s$(s,o,t.minstep),a=t.format||uJ(n,s,u,t.formatSpecifier,t.formatType,!!t.values),l=t.values?oJ(s,t.values,u):o$(s,u);return i&&(r.rem=i),i=l.map((c,f)=>Lt({index:f/(l.length-1||1),value:c,label:a(c)})),t.extra&&i.length&&i.push(Lt({index:-1,extra:{value:i[0].value},label:""})),r.source=i,r.add=i,this.value=i,r}});function uee(t){pe.call(this,null,t)}function Zke(){return Lt({})}function e8e(t){const e=ny().test(n=>n.exit);return e.lookup=n=>e.get(t(n)),e}Fe(uee,pe,{transform(t,e){var n=e.dataflow,r=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=t.item||Zke,s=t.key||Ze,o=this.value;return _e(r.encode)&&(r.encode=null),o&&(t.modified("key")||e.modified(s))&&ve("DataJoin does not support modified key function or fields."),o||(e=e.addAll(),this.value=o=e8e(s)),e.visit(e.ADD,u=>{const a=s(u);let l=o.get(a);l?l.exit?(o.empty--,r.add.push(l)):r.mod.push(l):(l=i(u),o.set(a,l),r.add.push(l)),l.datum=u,l.exit=!1}),e.visit(e.MOD,u=>{const a=s(u),l=o.get(a);l&&(l.datum=u,r.mod.push(l))}),e.visit(e.REM,u=>{const a=s(u),l=o.get(a);u===l.datum&&!l.exit&&(r.rem.push(l),l.exit=!0,++o.empty)}),e.changed(e.ADD_MOD)&&r.modifies("datum"),(e.clean()||t.clean&&o.empty>n.cleanThreshold)&&n.runAfter(o.clean),r}});function aee(t){pe.call(this,null,t)}Fe(aee,pe,{transform(t,e){var n=e.fork(e.ADD_REM),r=t.mod||!1,i=t.encoders,s=e.encode;if(_e(s))if(n.changed()||s.every(f=>i[f]))s=s[0],n.encode=null;else return e.StopPropagation;var o=s==="enter",u=i.update||Sx,a=i.enter||Sx,l=i.exit||Sx,c=(s&&!o?i[s]:u)||Sx;if(e.changed(e.ADD)&&(e.visit(e.ADD,f=>{a(f,t),u(f,t)}),n.modifies(a.output),n.modifies(u.output),c!==Sx&&c!==u&&(e.visit(e.ADD,f=>{c(f,t)}),n.modifies(c.output))),e.changed(e.REM)&&l!==Sx&&(e.visit(e.REM,f=>{l(f,t)}),n.modifies(l.output)),o||c!==Sx){const f=e.MOD|(t.modified()?e.REFLOW:0);o?(e.visit(f,x=>{const h=a(x,t)||r;(c(x,t)||h)&&n.mod.push(x)}),n.mod.length&&n.modifies(a.output)):e.visit(f,x=>{(c(x,t)||r)&&n.mod.push(x)}),n.mod.length&&n.modifies(c.output)}return n.changed()?n:e.StopPropagation}});function lee(t){pe.call(this,[],t)}Fe(lee,pe,{transform(t,e){if(this.value!=null&&!t.modified())return e.StopPropagation;var n=e.dataflow.locale(),r=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=this.value,s=t.type||_T,o=t.scale,u=+t.limit,a=s$(o,t.count==null?5:t.count,t.minstep),l=!!t.values||s===_T,c=t.format||fJ(n,o,a,s,t.formatSpecifier,t.formatType,l),f=t.values||cJ(o,a),x,h,p,m,g;return i&&(r.rem=i),s===_T?(u&&f.length>u?(e.dataflow.warn("Symbol legend count exceeds limit, filtering items."),i=f.slice(0,u-1),g=!0):i=f,ct(p=t.size)?(!t.values&&o(i[0])===0&&(i=i.slice(1)),m=i.reduce((y,E)=>Math.max(y,p(E,t)),0)):p=Ei(m=p||8),i=i.map((y,E)=>Lt({index:E,label:c(y,E,i),value:y,offset:m,size:p(y,t)})),g&&(g=f[i.length],i.push(Lt({index:i.length,label:`…${f.length-i.length} entries`,value:g,offset:m,size:p(g,t)})))):s===E$e?(x=o.domain(),h=eJ(o,x[0],vt(x)),f.length<3&&!t.values&&x[0]!==vt(x)&&(f=[x[0],vt(x)]),i=f.map((y,E)=>Lt({index:E,label:c(y,E,f),value:y,perc:h(y)}))):(p=f.length-1,h=D$e(o),i=f.map((y,E)=>Lt({index:E,label:c(y,E,f),value:y,perc:E?h(y):0,perc2:E===p?1:h(f[E+1])}))),r.source=i,r.add=i,this.value=i,r}});const t8e=t=>t.source.x,n8e=t=>t.source.y,r8e=t=>t.target.x,i8e=t=>t.target.y;function sB(t){pe.call(this,{},t)}sB.Definition={type:"LinkPath",metadata:{modifies:!0},params:[{name:"sourceX",type:"field",default:"source.x"},{name:"sourceY",type:"field",default:"source.y"},{name:"targetX",type:"field",default:"target.x"},{name:"targetY",type:"field",default:"target.y"},{name:"orient",type:"enum",default:"vertical",values:["horizontal","vertical","radial"]},{name:"shape",type:"enum",default:"line",values:["line","arc","curve","diagonal","orthogonal"]},{name:"require",type:"signal"},{name:"as",type:"string",default:"path"}]},Fe(sB,pe,{transform(t,e){var n=t.sourceX||t8e,r=t.sourceY||n8e,i=t.targetX||r8e,s=t.targetY||i8e,o=t.as||"path",u=t.orient||"vertical",a=t.shape||"line",l=dee.get(a+"-"+u)||dee.get(a);return l||ve("LinkPath unsupported type: "+t.shape+(t.orient?"-"+t.orient:"")),e.visit(e.SOURCE,c=>{c[o]=l(n(c),r(c),i(c),s(c))}),e.reflow(t.modified()).modifies(o)}});const cee=(t,e,n,r)=>"M"+t+","+e+"L"+n+","+r,s8e=(t,e,n,r)=>cee(e*Math.cos(t),e*Math.sin(t),r*Math.cos(n),r*Math.sin(n)),fee=(t,e,n,r)=>{var i=n-t,s=r-e,o=Math.sqrt(i*i+s*s)/2,u=180*Math.atan2(s,i)/Math.PI;return"M"+t+","+e+"A"+o+","+o+" "+u+" 0 1 "+n+","+r},o8e=(t,e,n,r)=>fee(e*Math.cos(t),e*Math.sin(t),r*Math.cos(n),r*Math.sin(n)),xee=(t,e,n,r)=>{const i=n-t,s=r-e,o=.2*(i+s),u=.2*(s-i);return"M"+t+","+e+"C"+(t+o)+","+(e+u)+" "+(n+u)+","+(r-o)+" "+n+","+r},dee=ny({line:cee,"line-radial":s8e,arc:fee,"arc-radial":o8e,curve:xee,"curve-radial":(t,e,n,r)=>xee(e*Math.cos(t),e*Math.sin(t),r*Math.cos(n),r*Math.sin(n)),"orthogonal-horizontal":(t,e,n,r)=>"M"+t+","+e+"V"+r+"H"+n,"orthogonal-vertical":(t,e,n,r)=>"M"+t+","+e+"H"+n+"V"+r,"orthogonal-radial":(t,e,n,r)=>{const i=Math.cos(t),s=Math.sin(t),o=Math.cos(n),u=Math.sin(n),a=Math.abs(n-t)>Math.PI?n<=t:n>t;return"M"+e*i+","+e*s+"A"+e+","+e+" 0 0,"+(a?1:0)+" "+e*o+","+e*u+"L"+r*o+","+r*u},"diagonal-horizontal":(t,e,n,r)=>{const i=(t+n)/2;return"M"+t+","+e+"C"+i+","+e+" "+i+","+r+" "+n+","+r},"diagonal-vertical":(t,e,n,r)=>{const i=(e+r)/2;return"M"+t+","+e+"C"+t+","+i+" "+n+","+i+" "+n+","+r},"diagonal-radial":(t,e,n,r)=>{const i=Math.cos(t),s=Math.sin(t),o=Math.cos(n),u=Math.sin(n),a=(e+r)/2;return"M"+e*i+","+e*s+"C"+a*i+","+a*s+" "+a*o+","+a*u+" "+r*o+","+r*u}});function oB(t){pe.call(this,null,t)}oB.Definition={type:"Pie",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"startAngle",type:"number",default:0},{name:"endAngle",type:"number",default:6.283185307179586},{name:"sort",type:"boolean",default:!1},{name:"as",type:"string",array:!0,length:2,default:["startAngle","endAngle"]}]},Fe(oB,pe,{transform(t,e){var n=t.as||["startAngle","endAngle"],r=n[0],i=n[1],s=t.field||ty,o=t.startAngle||0,u=t.endAngle!=null?t.endAngle:2*Math.PI,a=e.source,l=a.map(s),c=l.length,f=o,x=(u-o)/oV(l),h=Fs(c),p,m,g;for(t.sort&&h.sort((y,E)=>l[y]-l[E]),p=0;p<c;++p)g=l[h[p]],m=a[h[p]],m[r]=f,m[i]=f+=g*x;return this.value=l,e.reflow(t.modified()).modifies(n)}});const u8e=5;function a8e(t){const e=t.type;return!t.bins&&(e===$p||e===Py||e===My)}function hee(t){return n$(t)&&t!==sa}const l8e=Xu(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function pee(t){pe.call(this,null,t),this.modified(!0)}Fe(pee,pe,{transform(t,e){var n=e.dataflow,r=this.value,i=c8e(t);(!r||i!==r.type)&&(this.value=r=Ot(i)());for(i in t)if(!l8e[i]){if(i==="padding"&&hee(r.type))continue;ct(r[i])?r[i](t[i]):n.warn("Unsupported scale property: "+i)}return g8e(r,t,p8e(r,t,x8e(r,t,n))),e.fork(e.NO_SOURCE|e.NO_FIELDS)}});function c8e(t){var e=t.type,n="",r;return e===sa?sa+"-"+$p:(f8e(t)&&(r=t.rawDomain?t.rawDomain.length:t.domain?t.domain.length+ +(t.domainMid!=null):0,n=r===2?sa+"-":r===3?Bp+"-":""),(n+e||$p).toLowerCase())}function f8e(t){const e=t.type;return n$(e)&&e!==Mx&&e!==jx&&(t.scheme||t.range&&t.range.length&&t.range.every(je))}function x8e(t,e,n){const r=d8e(t,e.domainRaw,n);if(r>-1)return r;var i=e.domain,s=t.type,o=e.zero||e.zero===void 0&&a8e(t),u,a;if(!i)return 0;if(hee(s)&&e.padding&&i[0]!==vt(i)&&(i=h8e(s,i,e.range,e.padding,e.exponent,e.constant)),(o||e.domainMin!=null||e.domainMax!=null||e.domainMid!=null)&&(u=(i=i.slice()).length-1||1,o&&(i[0]>0&&(i[0]=0),i[u]<0&&(i[u]=0)),e.domainMin!=null&&(i[0]=e.domainMin),e.domainMax!=null&&(i[u]=e.domainMax),e.domainMid!=null)){a=e.domainMid;const l=a>i[u]?u+1:a<i[0]?0:u;l!==u&&n.warn("Scale domainMid exceeds domain min or max.",a),i.splice(l,0,a)}return t.domain(gee(s,i,n)),s===KI&&t.unknown(e.domainImplicit?_I:void 0),e.nice&&t.nice&&t.nice(e.nice!==!0&&s$(t,e.nice)||null),i.length}function d8e(t,e,n){return e?(t.domain(gee(t.type,e,n)),e.length):-1}function h8e(t,e,n,r,i,s){var o=Math.abs(vt(n)-n[0]),u=o/(o-2*r),a=t===Tl?BW(e,null,u):t===My?W4(e,null,u,.5):t===Py?W4(e,null,u,i||1):t===ET?kW(e,null,u,s||1):$W(e,null,u);return e=e.slice(),e[0]=a[0],e[e.length-1]=a[1],e}function gee(t,e,n){if(KK(t)){var r=Math.abs(e.reduce((i,s)=>i+(s<0?-1:s>0?1:0),0));r!==e.length&&n.warn("Log scale domain includes zero: "+we(e))}return e}function p8e(t,e,n){let r=e.bins;if(r&&!_e(r)){const i=t.domain(),s=i[0],o=vt(i),u=r.step;let a=r.start==null?s:r.start,l=r.stop==null?o:r.stop;u||ve("Scale bins parameter missing step property."),a<s&&(a=u*Math.ceil(s/u)),l>o&&(l=u*Math.floor(o/u)),r=Fs(a,l+u/2,u)}return r?t.bins=r:t.bins&&delete t.bins,t.type===ZI&&(r?!e.domain&&!e.domainRaw&&(t.domain(r),n=r.length):t.bins=t.domain()),n}function g8e(t,e,n){var r=t.type,i=e.round||!1,s=e.range;if(e.rangeStep!=null)s=m8e(r,e,n);else if(e.scheme&&(s=y8e(r,e,n),ct(s))){if(t.interpolator)return t.interpolator(s);ve(`Scale type ${r} does not support interpolating color schemes.`)}if(s&&JK(r))return t.interpolator(i$(uB(s,e.reverse),e.interpolate,e.interpolateGamma));s&&e.interpolate&&t.interpolate?t.interpolate(tJ(e.interpolate,e.interpolateGamma)):ct(t.round)?t.round(i):ct(t.rangeRound)&&t.interpolate(i?By:lc),s&&t.range(uB(s,e.reverse))}function m8e(t,e,n){t!==QK&&t!==JI&&ve("Only band and point scales support rangeStep.");var r=(e.paddingOuter!=null?e.paddingOuter:e.padding)||0,i=t===JI?1:(e.paddingInner!=null?e.paddingInner:e.padding)||0;return[0,e.rangeStep*XI(n,i,r)]}function y8e(t,e,n){var r=e.schemeExtent,i,s;return _e(e.scheme)?s=i$(e.scheme,e.interpolate,e.interpolateGamma):(i=e.scheme.toLowerCase(),s=sJ(i),s||ve(`Unrecognized scheme name: ${e.scheme}`)),n=t===ST?n+1:t===ZI?n-1:t===kp||t===AT?+e.schemeCount||u8e:n,JK(t)?mee(s,r,e.reverse):ct(s)?h$e(mee(s,r),n):t===KI?s:s.slice(0,n)}function mee(t,e,n){return ct(t)&&(e||n)?d$e(t,uB(e||[0,1],n)):t}function uB(t,e){return e?t.slice().reverse():t}function yee(t){pe.call(this,null,t)}Fe(yee,pe,{transform(t,e){const n=t.modified("sort")||e.changed(e.ADD)||e.modified(t.sort.fields)||e.modified("datum");return n&&e.source.sort(Nx(t.sort)),this.modified(n),e}});const Eee="zero",Aee="center",See="normalize",vee=["y0","y1"];function aB(t){pe.call(this,null,t)}aB.Definition={type:"Stack",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"groupby",type:"field",array:!0},{name:"sort",type:"compare"},{name:"offset",type:"enum",default:Eee,values:[Eee,Aee,See]},{name:"as",type:"string",array:!0,length:2,default:vee}]},Fe(aB,pe,{transform(t,e){var n=t.as||vee,r=n[0],i=n[1],s=Nx(t.sort),o=t.field||ty,u=t.offset===Aee?E8e:t.offset===See?A8e:S8e,a,l,c,f;for(a=v8e(e.source,t.groupby,s,o),l=0,c=a.length,f=a.max;l<c;++l)u(a[l],f,o,r,i);return e.reflow(t.modified()).modifies(n)}});function E8e(t,e,n,r,i){for(var s=(e-t.sum)/2,o=t.length,u=0,a;u<o;++u)a=t[u],a[r]=s,a[i]=s+=Math.abs(n(a))}function A8e(t,e,n,r,i){for(var s=1/t.sum,o=0,u=t.length,a=0,l=0,c;a<u;++a)c=t[a],c[r]=o,c[i]=o=s*(l+=Math.abs(n(c)))}function S8e(t,e,n,r,i){for(var s=0,o=0,u=t.length,a=0,l,c;a<u;++a)c=t[a],l=+n(c),l<0?(c[r]=o,c[i]=o+=l):(c[r]=s,c[i]=s+=l)}function v8e(t,e,n,r){var i=[],s=m=>m(c),o,u,a,l,c,f,x,h,p;if(e==null)i.push(t.slice());else for(o={},u=0,a=t.length;u<a;++u)c=t[u],f=e.map(s),x=o[f],x||(o[f]=x=[],i.push(x)),x.push(c);for(f=0,p=0,l=i.length;f<l;++f){for(x=i[f],u=0,h=0,a=x.length;u<a;++u)h+=Math.abs(r(x[u]));x.sum=h,h>p&&(p=h),n&&x.sort(n)}return i.max=p,i}const _8e=Object.freeze(Object.defineProperty({__proto__:null,axisticks:oee,datajoin:uee,encode:aee,legendentries:lee,linkpath:sB,pie:oB,scale:pee,sortitems:yee,stack:aB},Symbol.toStringTag,{value:"Module"}));var tt=1e-6,nR=1e-12,ht=Math.PI,Nn=ht/2,rR=ht/4,bi=ht*2,Bn=180/ht,dt=ht/180,yt=Math.abs,Wp=Math.atan,ho=Math.atan2,nt=Math.cos,iR=Math.ceil,_ee=Math.exp,lB=Math.hypot,sR=Math.log,cB=Math.pow,Xe=Math.sin,po=Math.sign||function(t){return t>0?1:t<0?-1:0},Ti=Math.sqrt,fB=Math.tan;function Cee(t){return t>1?0:t<-1?ht:Math.acos(t)}function rs(t){return t>1?Nn:t<-1?-Nn:Math.asin(t)}function Fr(){}function oR(t,e){t&&Tee.hasOwnProperty(t.type)&&Tee[t.type](t,e)}var bee={Feature:function(t,e){oR(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r<i;)oR(n[r].geometry,e)}},Tee={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)t=n[r],e.point(t[0],t[1],t[2])},LineString:function(t,e){xB(t.coordinates,e,0)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)xB(n[r],e,0)},Polygon:function(t,e){Ree(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)Ree(n[r],e)},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,i=n.length;++r<i;)oR(n[r],e)}};function xB(t,e,n){var r=-1,i=t.length-n,s;for(e.lineStart();++r<i;)s=t[r],e.point(s[0],s[1],s[2]);e.lineEnd()}function Ree(t,e){var n=-1,r=t.length;for(e.polygonStart();++n<r;)xB(t[n],e,1);e.polygonEnd()}function Fl(t,e){t&&bee.hasOwnProperty(t.type)?bee[t.type](t,e):oR(t,e)}var uR=new Ai,aR=new Ai,Oee,Nee,dB,hB,pB,fa={point:Fr,lineStart:Fr,lineEnd:Fr,polygonStart:function(){uR=new Ai,fa.lineStart=C8e,fa.lineEnd=b8e},polygonEnd:function(){var t=+uR;aR.add(t<0?bi+t:t),this.lineStart=this.lineEnd=this.point=Fr},sphere:function(){aR.add(bi)}};function C8e(){fa.point=T8e}function b8e(){Dee(Oee,Nee)}function T8e(t,e){fa.point=Dee,Oee=t,Nee=e,t*=dt,e*=dt,dB=t,hB=nt(e=e/2+rR),pB=Xe(e)}function Dee(t,e){t*=dt,e*=dt,e=e/2+rR;var n=t-dB,r=n>=0?1:-1,i=r*n,s=nt(e),o=Xe(e),u=pB*o,a=hB*s+u*nt(i),l=u*r*Xe(i);uR.add(ho(l,a)),dB=t,hB=s,pB=o}function R8e(t){return aR=new Ai,Fl(t,fa),aR*2}function lR(t){return[ho(t[1],t[0]),rs(t[2])]}function Kx(t){var e=t[0],n=t[1],r=nt(n);return[r*nt(e),r*Xe(e),Xe(n)]}function cR(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Vp(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function gB(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function fR(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function xR(t){var e=Ti(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var pn,is,Dn,$s,Jx,Fee,wee,Yp,rE,Sc,wl,Ll={point:mB,lineStart:Iee,lineEnd:$ee,polygonStart:function(){Ll.point=Bee,Ll.lineStart=O8e,Ll.lineEnd=N8e,rE=new Ai,fa.polygonStart()},polygonEnd:function(){fa.polygonEnd(),Ll.point=mB,Ll.lineStart=Iee,Ll.lineEnd=$ee,uR<0?(pn=-(Dn=180),is=-($s=90)):rE>tt?$s=90:rE<-tt&&(is=-90),wl[0]=pn,wl[1]=Dn},sphere:function(){pn=-(Dn=180),is=-($s=90)}};function mB(t,e){Sc.push(wl=[pn=t,Dn=t]),e<is&&(is=e),e>$s&&($s=e)}function Lee(t,e){var n=Kx([t*dt,e*dt]);if(Yp){var r=Vp(Yp,n),i=[r[1],-r[0],0],s=Vp(i,r);xR(s),s=lR(s);var o=t-Jx,u=o>0?1:-1,a=s[0]*Bn*u,l,c=yt(o)>180;c^(u*Jx<a&&a<u*t)?(l=s[1]*Bn,l>$s&&($s=l)):(a=(a+360)%360-180,c^(u*Jx<a&&a<u*t)?(l=-s[1]*Bn,l<is&&(is=l)):(e<is&&(is=e),e>$s&&($s=e))),c?t<Jx?Bs(pn,t)>Bs(pn,Dn)&&(Dn=t):Bs(t,Dn)>Bs(pn,Dn)&&(pn=t):Dn>=pn?(t<pn&&(pn=t),t>Dn&&(Dn=t)):t>Jx?Bs(pn,t)>Bs(pn,Dn)&&(Dn=t):Bs(t,Dn)>Bs(pn,Dn)&&(pn=t)}else Sc.push(wl=[pn=t,Dn=t]);e<is&&(is=e),e>$s&&($s=e),Yp=n,Jx=t}function Iee(){Ll.point=Lee}function $ee(){wl[0]=pn,wl[1]=Dn,Ll.point=mB,Yp=null}function Bee(t,e){if(Yp){var n=t-Jx;rE.add(yt(n)>180?n+(n>0?360:-360):n)}else Fee=t,wee=e;fa.point(t,e),Lee(t,e)}function O8e(){fa.lineStart()}function N8e(){Bee(Fee,wee),fa.lineEnd(),yt(rE)>tt&&(pn=-(Dn=180)),wl[0]=pn,wl[1]=Dn,Yp=null}function Bs(t,e){return(e-=t)<0?e+360:e}function D8e(t,e){return t[0]-e[0]}function kee(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:e<t[0]||t[1]<e}function F8e(t){var e,n,r,i,s,o,u;if($s=Dn=-(pn=is=1/0),Sc=[],Fl(t,Ll),n=Sc.length){for(Sc.sort(D8e),e=1,r=Sc[0],s=[r];e<n;++e)i=Sc[e],kee(r,i[0])||kee(r,i[1])?(Bs(r[0],i[1])>Bs(r[0],r[1])&&(r[1]=i[1]),Bs(i[0],r[1])>Bs(r[0],r[1])&&(r[0]=i[0])):s.push(r=i);for(o=-1/0,n=s.length-1,e=0,r=s[n];e<=n;r=i,++e)i=s[e],(u=Bs(r[1],i[0]))>o&&(o=u,pn=i[0],Dn=r[1])}return Sc=wl=null,pn===1/0||is===1/0?[[NaN,NaN],[NaN,NaN]]:[[pn,is],[Dn,$s]]}var iE,dR,hR,pR,gR,mR,yR,ER,yB,EB,AB,Pee,Mee,Ri,Oi,Ni,Zo={sphere:Fr,point:SB,lineStart:jee,lineEnd:Uee,polygonStart:function(){Zo.lineStart=I8e,Zo.lineEnd=$8e},polygonEnd:function(){Zo.lineStart=jee,Zo.lineEnd=Uee}};function SB(t,e){t*=dt,e*=dt;var n=nt(e);sE(n*nt(t),n*Xe(t),Xe(e))}function sE(t,e,n){++iE,hR+=(t-hR)/iE,pR+=(e-pR)/iE,gR+=(n-gR)/iE}function jee(){Zo.point=w8e}function w8e(t,e){t*=dt,e*=dt;var n=nt(e);Ri=n*nt(t),Oi=n*Xe(t),Ni=Xe(e),Zo.point=L8e,sE(Ri,Oi,Ni)}function L8e(t,e){t*=dt,e*=dt;var n=nt(e),r=n*nt(t),i=n*Xe(t),s=Xe(e),o=ho(Ti((o=Oi*s-Ni*i)*o+(o=Ni*r-Ri*s)*o+(o=Ri*i-Oi*r)*o),Ri*r+Oi*i+Ni*s);dR+=o,mR+=o*(Ri+(Ri=r)),yR+=o*(Oi+(Oi=i)),ER+=o*(Ni+(Ni=s)),sE(Ri,Oi,Ni)}function Uee(){Zo.point=SB}function I8e(){Zo.point=B8e}function $8e(){qee(Pee,Mee),Zo.point=SB}function B8e(t,e){Pee=t,Mee=e,t*=dt,e*=dt,Zo.point=qee;var n=nt(e);Ri=n*nt(t),Oi=n*Xe(t),Ni=Xe(e),sE(Ri,Oi,Ni)}function qee(t,e){t*=dt,e*=dt;var n=nt(e),r=n*nt(t),i=n*Xe(t),s=Xe(e),o=Oi*s-Ni*i,u=Ni*r-Ri*s,a=Ri*i-Oi*r,l=lB(o,u,a),c=rs(l),f=l&&-c/l;yB.add(f*o),EB.add(f*u),AB.add(f*a),dR+=c,mR+=c*(Ri+(Ri=r)),yR+=c*(Oi+(Oi=i)),ER+=c*(Ni+(Ni=s)),sE(Ri,Oi,Ni)}function k8e(t){iE=dR=hR=pR=gR=mR=yR=ER=0,yB=new Ai,EB=new Ai,AB=new Ai,Fl(t,Zo);var e=+yB,n=+EB,r=+AB,i=lB(e,n,r);return i<nR&&(e=mR,n=yR,r=ER,dR<tt&&(e=hR,n=pR,r=gR),i=lB(e,n,r),i<nR)?[NaN,NaN]:[ho(n,e)*Bn,rs(r/i)*Bn]}function vB(t,e){function n(r,i){return r=t(r,i),e(r[0],r[1])}return t.invert&&e.invert&&(n.invert=function(r,i){return r=e.invert(r,i),r&&t.invert(r[0],r[1])}),n}function _B(t,e){return yt(t)>ht&&(t-=Math.round(t/bi)*bi),[t,e]}_B.invert=_B;function Hee(t,e,n){return(t%=bi)?e||n?vB(Qee(t),Gee(e,n)):Qee(t):e||n?Gee(e,n):_B}function zee(t){return function(e,n){return e+=t,yt(e)>ht&&(e-=Math.round(e/bi)*bi),[e,n]}}function Qee(t){var e=zee(t);return e.invert=zee(-t),e}function Gee(t,e){var n=nt(t),r=Xe(t),i=nt(e),s=Xe(e);function o(u,a){var l=nt(a),c=nt(u)*l,f=Xe(u)*l,x=Xe(a),h=x*n+c*r;return[ho(f*i-h*s,c*n-x*r),rs(h*i+f*s)]}return o.invert=function(u,a){var l=nt(a),c=nt(u)*l,f=Xe(u)*l,x=Xe(a),h=x*i-f*s;return[ho(f*i+x*s,c*n+h*r),rs(h*n-c*r)]},o}function P8e(t){t=Hee(t[0]*dt,t[1]*dt,t.length>2?t[2]*dt:0);function e(n){return n=t(n[0]*dt,n[1]*dt),n[0]*=Bn,n[1]*=Bn,n}return e.invert=function(n){return n=t.invert(n[0]*dt,n[1]*dt),n[0]*=Bn,n[1]*=Bn,n},e}function M8e(t,e,n,r,i,s){if(n){var o=nt(e),u=Xe(e),a=r*n;i==null?(i=e+r*bi,s=e-a/2):(i=Wee(o,i),s=Wee(o,s),(r>0?i<s:i>s)&&(i+=r*bi));for(var l,c=i;r>0?c>s:c<s;c-=a)l=lR([o,-u*nt(c),-u*Xe(c)]),t.point(l[0],l[1])}}function Wee(t,e){e=Kx(e),e[0]-=t,xR(e);var n=Cee(-e[1]);return((-e[2]<0?-n:n)+bi-tt)%bi}function Vee(){var t=[],e;return{point:function(n,r,i){e.push([n,r,i])},lineStart:function(){t.push(e=[])},lineEnd:Fr,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function AR(t,e){return yt(t[0]-e[0])<tt&&yt(t[1]-e[1])<tt}function SR(t,e,n,r){this.x=t,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function Yee(t,e,n,r,i){var s=[],o=[],u,a;if(t.forEach(function(p){if(!((m=p.length-1)<=0)){var m,g=p[0],y=p[m],E;if(AR(g,y)){if(!g[2]&&!y[2]){for(i.lineStart(),u=0;u<m;++u)i.point((g=p[u])[0],g[1]);i.lineEnd();return}y[0]+=2*tt}s.push(E=new SR(g,p,null,!0)),o.push(E.o=new SR(g,null,E,!1)),s.push(E=new SR(y,p,null,!1)),o.push(E.o=new SR(y,null,E,!0))}}),!!s.length){for(o.sort(e),Xee(s),Xee(o),u=0,a=o.length;u<a;++u)o[u].e=n=!n;for(var l=s[0],c,f;;){for(var x=l,h=!0;x.v;)if((x=x.n)===l)return;c=x.z,i.lineStart();do{if(x.v=x.o.v=!0,x.e){if(h)for(u=0,a=c.length;u<a;++u)i.point((f=c[u])[0],f[1]);else r(x.x,x.n.x,1,i);x=x.n}else{if(h)for(c=x.p.z,u=c.length-1;u>=0;--u)i.point((f=c[u])[0],f[1]);else r(x.x,x.p.x,-1,i);x=x.p}x=x.o,c=x.z,h=!h}while(!x.v);i.lineEnd()}}}function Xee(t){if(e=t.length){for(var e,n=0,r=t[0],i;++n<e;)r.n=i=t[n],i.p=r,r=i;r.n=i=t[0],i.p=r}}function CB(t){return yt(t[0])<=ht?t[0]:po(t[0])*((yt(t[0])+ht)%bi-ht)}function j8e(t,e){var n=CB(e),r=e[1],i=Xe(r),s=[Xe(n),-nt(n),0],o=0,u=0,a=new Ai;i===1?r=Nn+tt:i===-1&&(r=-Nn-tt);for(var l=0,c=t.length;l<c;++l)if(x=(f=t[l]).length)for(var f,x,h=f[x-1],p=CB(h),m=h[1]/2+rR,g=Xe(m),y=nt(m),E=0;E<x;++E,p=S,g=_,y=C,h=A){var A=f[E],S=CB(A),v=A[1]/2+rR,_=Xe(v),C=nt(v),b=S-p,R=b>=0?1:-1,O=R*b,L=O>ht,M=g*_;if(a.add(ho(M*R*Xe(O),y*C+M*nt(O))),o+=L?b+R*bi:b,L^p>=n^S>=n){var q=Vp(Kx(h),Kx(A));xR(q);var W=Vp(s,q);xR(W);var B=(L^b>=0?-1:1)*rs(W[2]);(r>B||r===B&&(q[0]||q[1]))&&(u+=L^b>=0?1:-1)}}return(o<-tt||o<tt&&a<-nR)^u&1}function Kee(t,e,n,r){return function(i){var s=e(i),o=Vee(),u=e(o),a=!1,l,c,f,x={point:h,lineStart:m,lineEnd:g,polygonStart:function(){x.point=y,x.lineStart=E,x.lineEnd=A,c=[],l=[]},polygonEnd:function(){x.point=h,x.lineStart=m,x.lineEnd=g,c=sV(c);var S=j8e(l,r);c.length?(a||(i.polygonStart(),a=!0),Yee(c,q8e,S,n,i)):S&&(a||(i.polygonStart(),a=!0),i.lineStart(),n(null,null,1,i),i.lineEnd()),a&&(i.polygonEnd(),a=!1),c=l=null},sphere:function(){i.polygonStart(),i.lineStart(),n(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function h(S,v){t(S,v)&&i.point(S,v)}function p(S,v){s.point(S,v)}function m(){x.point=p,s.lineStart()}function g(){x.point=h,s.lineEnd()}function y(S,v){f.push([S,v]),u.point(S,v)}function E(){u.lineStart(),f=[]}function A(){y(f[0][0],f[0][1]),u.lineEnd();var S=u.clean(),v=o.result(),_,C=v.length,b,R,O;if(f.pop(),l.push(f),f=null,!!C){if(S&1){if(R=v[0],(b=R.length-1)>0){for(a||(i.polygonStart(),a=!0),i.lineStart(),_=0;_<b;++_)i.point((O=R[_])[0],O[1]);i.lineEnd()}return}C>1&&S&2&&v.push(v.pop().concat(v.shift())),c.push(v.filter(U8e))}}return x}}function U8e(t){return t.length>1}function q8e(t,e){return((t=t.x)[0]<0?t[1]-Nn-tt:Nn-t[1])-((e=e.x)[0]<0?e[1]-Nn-tt:Nn-e[1])}const Jee=Kee(function(){return!0},H8e,Q8e,[-ht,-Nn]);function H8e(t){var e=NaN,n=NaN,r=NaN,i;return{lineStart:function(){t.lineStart(),i=1},point:function(s,o){var u=s>0?ht:-ht,a=yt(s-e);yt(a-ht)<tt?(t.point(e,n=(n+o)/2>0?Nn:-Nn),t.point(r,n),t.lineEnd(),t.lineStart(),t.point(u,n),t.point(s,n),i=0):r!==u&&a>=ht&&(yt(e-r)<tt&&(e-=r*tt),yt(s-u)<tt&&(s-=u*tt),n=z8e(e,n,s,o),t.point(r,n),t.lineEnd(),t.lineStart(),t.point(u,n),i=0),t.point(e=s,n=o),r=u},lineEnd:function(){t.lineEnd(),e=n=NaN},clean:function(){return 2-i}}}function z8e(t,e,n,r){var i,s,o=Xe(t-n);return yt(o)>tt?Wp((Xe(e)*(s=nt(r))*Xe(n)-Xe(r)*(i=nt(e))*Xe(t))/(i*s*o)):(e+r)/2}function Q8e(t,e,n,r){var i;if(t==null)i=n*Nn,r.point(-ht,i),r.point(0,i),r.point(ht,i),r.point(ht,0),r.point(ht,-i),r.point(0,-i),r.point(-ht,-i),r.point(-ht,0),r.point(-ht,i);else if(yt(t[0]-e[0])>tt){var s=t[0]<e[0]?ht:-ht;i=n*s/2,r.point(-s,i),r.point(0,i),r.point(s,i)}else r.point(e[0],e[1])}function G8e(t){var e=nt(t),n=6*dt,r=e>0,i=yt(e)>tt;function s(c,f,x,h){M8e(h,t,n,x,c,f)}function o(c,f){return nt(c)*nt(f)>e}function u(c){var f,x,h,p,m;return{lineStart:function(){p=h=!1,m=1},point:function(g,y){var E=[g,y],A,S=o(g,y),v=r?S?0:l(g,y):S?l(g+(g<0?ht:-ht),y):0;if(!f&&(p=h=S)&&c.lineStart(),S!==h&&(A=a(f,E),(!A||AR(f,A)||AR(E,A))&&(E[2]=1)),S!==h)m=0,S?(c.lineStart(),A=a(E,f),c.point(A[0],A[1])):(A=a(f,E),c.point(A[0],A[1],2),c.lineEnd()),f=A;else if(i&&f&&r^S){var _;!(v&x)&&(_=a(E,f,!0))&&(m=0,r?(c.lineStart(),c.point(_[0][0],_[0][1]),c.point(_[1][0],_[1][1]),c.lineEnd()):(c.point(_[1][0],_[1][1]),c.lineEnd(),c.lineStart(),c.point(_[0][0],_[0][1],3)))}S&&(!f||!AR(f,E))&&c.point(E[0],E[1]),f=E,h=S,x=v},lineEnd:function(){h&&c.lineEnd(),f=null},clean:function(){return m|(p&&h)<<1}}}function a(c,f,x){var h=Kx(c),p=Kx(f),m=[1,0,0],g=Vp(h,p),y=cR(g,g),E=g[0],A=y-E*E;if(!A)return!x&&c;var S=e*y/A,v=-e*E/A,_=Vp(m,g),C=fR(m,S),b=fR(g,v);gB(C,b);var R=_,O=cR(C,R),L=cR(R,R),M=O*O-L*(cR(C,C)-1);if(!(M<0)){var q=Ti(M),W=fR(R,(-O-q)/L);if(gB(W,C),W=lR(W),!x)return W;var B=c[0],G=f[0],te=c[1],K=f[1],de;G<B&&(de=B,B=G,G=de);var be=G-B,ee=yt(be-ht)<tt,U=ee||be<tt;if(!ee&&K<te&&(de=te,te=K,K=de),U?ee?te+K>0^W[1]<(yt(W[0]-B)<tt?te:K):te<=W[1]&&W[1]<=K:be>ht^(B<=W[0]&&W[0]<=G)){var T=fR(R,(-O+q)/L);return gB(T,C),[W,lR(T)]}}}function l(c,f){var x=r?t:ht-t,h=0;return c<-x?h|=1:c>x&&(h|=2),f<-x?h|=4:f>x&&(h|=8),h}return Kee(o,u,s,r?[0,-t]:[-ht,t-ht])}function W8e(t,e,n,r,i,s){var o=t[0],u=t[1],a=e[0],l=e[1],c=0,f=1,x=a-o,h=l-u,p;if(p=n-o,!(!x&&p>0)){if(p/=x,x<0){if(p<c)return;p<f&&(f=p)}else if(x>0){if(p>f)return;p>c&&(c=p)}if(p=i-o,!(!x&&p<0)){if(p/=x,x<0){if(p>f)return;p>c&&(c=p)}else if(x>0){if(p<c)return;p<f&&(f=p)}if(p=r-u,!(!h&&p>0)){if(p/=h,h<0){if(p<c)return;p<f&&(f=p)}else if(h>0){if(p>f)return;p>c&&(c=p)}if(p=s-u,!(!h&&p<0)){if(p/=h,h<0){if(p>f)return;p>c&&(c=p)}else if(h>0){if(p<c)return;p<f&&(f=p)}return c>0&&(t[0]=o+c*x,t[1]=u+c*h),f<1&&(e[0]=o+f*x,e[1]=u+f*h),!0}}}}}var oE=1e9,vR=-oE;function Zee(t,e,n,r){function i(l,c){return t<=l&&l<=n&&e<=c&&c<=r}function s(l,c,f,x){var h=0,p=0;if(l==null||(h=o(l,f))!==(p=o(c,f))||a(l,c)<0^f>0)do x.point(h===0||h===3?t:n,h>1?r:e);while((h=(h+f+4)%4)!==p);else x.point(c[0],c[1])}function o(l,c){return yt(l[0]-t)<tt?c>0?0:3:yt(l[0]-n)<tt?c>0?2:1:yt(l[1]-e)<tt?c>0?1:0:c>0?3:2}function u(l,c){return a(l.x,c.x)}function a(l,c){var f=o(l,1),x=o(c,1);return f!==x?f-x:f===0?c[1]-l[1]:f===1?l[0]-c[0]:f===2?l[1]-c[1]:c[0]-l[0]}return function(l){var c=l,f=Vee(),x,h,p,m,g,y,E,A,S,v,_,C={point:b,lineStart:M,lineEnd:q,polygonStart:O,polygonEnd:L};function b(B,G){i(B,G)&&c.point(B,G)}function R(){for(var B=0,G=0,te=h.length;G<te;++G)for(var K=h[G],de=1,be=K.length,ee=K[0],U,T,w=ee[0],k=ee[1];de<be;++de)U=w,T=k,ee=K[de],w=ee[0],k=ee[1],T<=r?k>r&&(w-U)*(r-T)>(k-T)*(t-U)&&++B:k<=r&&(w-U)*(r-T)<(k-T)*(t-U)&&--B;return B}function O(){c=f,x=[],h=[],_=!0}function L(){var B=R(),G=_&&B,te=(x=sV(x)).length;(G||te)&&(l.polygonStart(),G&&(l.lineStart(),s(null,null,1,l),l.lineEnd()),te&&Yee(x,u,B,s,l),l.polygonEnd()),c=l,x=h=p=null}function M(){C.point=W,h&&h.push(p=[]),v=!0,S=!1,E=A=NaN}function q(){x&&(W(m,g),y&&S&&f.rejoin(),x.push(f.result())),C.point=b,S&&c.lineEnd()}function W(B,G){var te=i(B,G);if(h&&p.push([B,G]),v)m=B,g=G,y=te,v=!1,te&&(c.lineStart(),c.point(B,G));else if(te&&S)c.point(B,G);else{var K=[E=Math.max(vR,Math.min(oE,E)),A=Math.max(vR,Math.min(oE,A))],de=[B=Math.max(vR,Math.min(oE,B)),G=Math.max(vR,Math.min(oE,G))];W8e(K,de,t,e,n,r)?(S||(c.lineStart(),c.point(K[0],K[1])),c.point(de[0],de[1]),te||c.lineEnd(),_=!1):te&&(c.lineStart(),c.point(B,G),_=!1)}E=B,A=G,S=te}return C}}function ete(t,e,n){var r=Fs(t,e-tt,n).concat(e);return function(i){return r.map(function(s){return[i,s]})}}function tte(t,e,n){var r=Fs(t,e-tt,n).concat(e);return function(i){return r.map(function(s){return[s,i]})}}function V8e(){var t,e,n,r,i,s,o,u,a=10,l=a,c=90,f=360,x,h,p,m,g=2.5;function y(){return{type:"MultiLineString",coordinates:E()}}function E(){return Fs(iR(r/c)*c,n,c).map(p).concat(Fs(iR(u/f)*f,o,f).map(m)).concat(Fs(iR(e/a)*a,t,a).filter(function(A){return yt(A%c)>tt}).map(x)).concat(Fs(iR(s/l)*l,i,l).filter(function(A){return yt(A%f)>tt}).map(h))}return y.lines=function(){return E().map(function(A){return{type:"LineString",coordinates:A}})},y.outline=function(){return{type:"Polygon",coordinates:[p(r).concat(m(o).slice(1),p(n).reverse().slice(1),m(u).reverse().slice(1))]}},y.extent=function(A){return arguments.length?y.extentMajor(A).extentMinor(A):y.extentMinor()},y.extentMajor=function(A){return arguments.length?(r=+A[0][0],n=+A[1][0],u=+A[0][1],o=+A[1][1],r>n&&(A=r,r=n,n=A),u>o&&(A=u,u=o,o=A),y.precision(g)):[[r,u],[n,o]]},y.extentMinor=function(A){return arguments.length?(e=+A[0][0],t=+A[1][0],s=+A[0][1],i=+A[1][1],e>t&&(A=e,e=t,t=A),s>i&&(A=s,s=i,i=A),y.precision(g)):[[e,s],[t,i]]},y.step=function(A){return arguments.length?y.stepMajor(A).stepMinor(A):y.stepMinor()},y.stepMajor=function(A){return arguments.length?(c=+A[0],f=+A[1],y):[c,f]},y.stepMinor=function(A){return arguments.length?(a=+A[0],l=+A[1],y):[a,l]},y.precision=function(A){return arguments.length?(g=+A,x=ete(s,i,90),h=tte(e,t,g),p=ete(u,o,90),m=tte(r,n,g),y):g},y.extentMajor([[-180,-90+tt],[180,90-tt]]).extentMinor([[-180,-80-tt],[180,80+tt]])}const uE=t=>t;var bB=new Ai,TB=new Ai,nte,rte,RB,OB,Il={point:Fr,lineStart:Fr,lineEnd:Fr,polygonStart:function(){Il.lineStart=Y8e,Il.lineEnd=K8e},polygonEnd:function(){Il.lineStart=Il.lineEnd=Il.point=Fr,bB.add(yt(TB)),TB=new Ai},result:function(){var t=bB/2;return bB=new Ai,t}};function Y8e(){Il.point=X8e}function X8e(t,e){Il.point=ite,nte=RB=t,rte=OB=e}function ite(t,e){TB.add(OB*t-RB*e),RB=t,OB=e}function K8e(){ite(nte,rte)}var Xp=1/0,_R=Xp,aE=-Xp,CR=aE,bR={point:J8e,lineStart:Fr,lineEnd:Fr,polygonStart:Fr,polygonEnd:Fr,result:function(){var t=[[Xp,_R],[aE,CR]];return aE=CR=-(_R=Xp=1/0),t}};function J8e(t,e){t<Xp&&(Xp=t),t>aE&&(aE=t),e<_R&&(_R=e),e>CR&&(CR=e)}var NB=0,DB=0,lE=0,TR=0,RR=0,Kp=0,FB=0,wB=0,cE=0,ste,ote,xa,da,go={point:Zx,lineStart:ute,lineEnd:ate,polygonStart:function(){go.lineStart=t7e,go.lineEnd=n7e},polygonEnd:function(){go.point=Zx,go.lineStart=ute,go.lineEnd=ate},result:function(){var t=cE?[FB/cE,wB/cE]:Kp?[TR/Kp,RR/Kp]:lE?[NB/lE,DB/lE]:[NaN,NaN];return NB=DB=lE=TR=RR=Kp=FB=wB=cE=0,t}};function Zx(t,e){NB+=t,DB+=e,++lE}function ute(){go.point=Z8e}function Z8e(t,e){go.point=e7e,Zx(xa=t,da=e)}function e7e(t,e){var n=t-xa,r=e-da,i=Ti(n*n+r*r);TR+=i*(xa+t)/2,RR+=i*(da+e)/2,Kp+=i,Zx(xa=t,da=e)}function ate(){go.point=Zx}function t7e(){go.point=r7e}function n7e(){lte(ste,ote)}function r7e(t,e){go.point=lte,Zx(ste=xa=t,ote=da=e)}function lte(t,e){var n=t-xa,r=e-da,i=Ti(n*n+r*r);TR+=i*(xa+t)/2,RR+=i*(da+e)/2,Kp+=i,i=da*t-xa*e,FB+=i*(xa+t),wB+=i*(da+e),cE+=i*3,Zx(xa=t,da=e)}function cte(t){this._context=t}cte.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:{this._context.moveTo(t,e),this._point=1;break}case 1:{this._context.lineTo(t,e);break}default:{this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,bi);break}}},result:Fr};var LB=new Ai,IB,fte,xte,fE,xE,dE={point:Fr,lineStart:function(){dE.point=i7e},lineEnd:function(){IB&&dte(fte,xte),dE.point=Fr},polygonStart:function(){IB=!0},polygonEnd:function(){IB=null},result:function(){var t=+LB;return LB=new Ai,t}};function i7e(t,e){dE.point=dte,fte=fE=t,xte=xE=e}function dte(t,e){fE-=t,xE-=e,LB.add(Ti(fE*fE+xE*xE)),fE=t,xE=e}let hte,OR,pte,gte;class mte{constructor(e){this._append=e==null?yte:s7e(e),this._radius=4.5,this._=""}pointRadius(e){return this._radius=+e,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){this._line===0&&(this._+="Z"),this._point=NaN}point(e,n){switch(this._point){case 0:{this._append`M${e},${n}`,this._point=1;break}case 1:{this._append`L${e},${n}`;break}default:{if(this._append`M${e},${n}`,this._radius!==pte||this._append!==OR){const r=this._radius,i=this._;this._="",this._append`m0,${r}a${r},${r} 0 1,1 0,${-2*r}a${r},${r} 0 1,1 0,${2*r}z`,pte=r,OR=this._append,gte=this._,this._=i}this._+=gte;break}}}result(){const e=this._;return this._="",e.length?e:null}}function yte(t){let e=1;this._+=t[0];for(const n=t.length;e<n;++e)this._+=arguments[e]+t[e]}function s7e(t){const e=Math.floor(t);if(!(e>=0))throw new RangeError(`invalid digits: ${t}`);if(e>15)return yte;if(e!==hte){const n=10**e;hte=e,OR=function(i){let s=1;this._+=i[0];for(const o=i.length;s<o;++s)this._+=Math.round(arguments[s]*n)/n+i[s]}}return OR}function Ete(t,e){let n=3,r=4.5,i,s;function o(u){return u&&(typeof r=="function"&&s.pointRadius(+r.apply(this,arguments)),Fl(u,i(s))),s.result()}return o.area=function(u){return Fl(u,i(Il)),Il.result()},o.measure=function(u){return Fl(u,i(dE)),dE.result()},o.bounds=function(u){return Fl(u,i(bR)),bR.result()},o.centroid=function(u){return Fl(u,i(go)),go.result()},o.projection=function(u){return arguments.length?(i=u==null?(t=null,uE):(t=u).stream,o):t},o.context=function(u){return arguments.length?(s=u==null?(e=null,new mte(n)):new cte(e=u),typeof r!="function"&&s.pointRadius(r),o):e},o.pointRadius=function(u){return arguments.length?(r=typeof u=="function"?u:(s.pointRadius(+u),+u),o):r},o.digits=function(u){if(!arguments.length)return n;if(u==null)n=null;else{const a=Math.floor(u);if(!(a>=0))throw new RangeError(`invalid digits: ${u}`);n=a}return e===null&&(s=new mte(n)),o},o.projection(t).digits(n).context(e)}function NR(t){return function(e){var n=new $B;for(var r in t)n[r]=t[r];return n.stream=e,n}}function $B(){}$B.prototype={constructor:$B,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function BB(t,e,n){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),r!=null&&t.clipExtent(null),Fl(n,t.stream(bR)),e(bR.result()),r!=null&&t.clipExtent(r),t}function DR(t,e,n){return BB(t,function(r){var i=e[1][0]-e[0][0],s=e[1][1]-e[0][1],o=Math.min(i/(r[1][0]-r[0][0]),s/(r[1][1]-r[0][1])),u=+e[0][0]+(i-o*(r[1][0]+r[0][0]))/2,a=+e[0][1]+(s-o*(r[1][1]+r[0][1]))/2;t.scale(150*o).translate([u,a])},n)}function kB(t,e,n){return DR(t,[[0,0],e],n)}function PB(t,e,n){return BB(t,function(r){var i=+e,s=i/(r[1][0]-r[0][0]),o=(i-s*(r[1][0]+r[0][0]))/2,u=-s*r[0][1];t.scale(150*s).translate([o,u])},n)}function MB(t,e,n){return BB(t,function(r){var i=+e,s=i/(r[1][1]-r[0][1]),o=-s*r[0][0],u=(i-s*(r[1][1]+r[0][1]))/2;t.scale(150*s).translate([o,u])},n)}var Ate=16,o7e=nt(30*dt);function Ste(t,e){return+e?a7e(t,e):u7e(t)}function u7e(t){return NR({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}function a7e(t,e){function n(r,i,s,o,u,a,l,c,f,x,h,p,m,g){var y=l-r,E=c-i,A=y*y+E*E;if(A>4*e&&m--){var S=o+x,v=u+h,_=a+p,C=Ti(S*S+v*v+_*_),b=rs(_/=C),R=yt(yt(_)-1)<tt||yt(s-f)<tt?(s+f)/2:ho(v,S),O=t(R,b),L=O[0],M=O[1],q=L-r,W=M-i,B=E*q-y*W;(B*B/A>e||yt((y*q+E*W)/A-.5)>.3||o*x+u*h+a*p<o7e)&&(n(r,i,s,o,u,a,L,M,R,S/=C,v/=C,_,m,g),g.point(L,M),n(L,M,R,S,v,_,l,c,f,x,h,p,m,g))}}return function(r){var i,s,o,u,a,l,c,f,x,h,p,m,g={point:y,lineStart:E,lineEnd:S,polygonStart:function(){r.polygonStart(),g.lineStart=v},polygonEnd:function(){r.polygonEnd(),g.lineStart=E}};function y(b,R){b=t(b,R),r.point(b[0],b[1])}function E(){f=NaN,g.point=A,r.lineStart()}function A(b,R){var O=Kx([b,R]),L=t(b,R);n(f,x,c,h,p,m,f=L[0],x=L[1],c=b,h=O[0],p=O[1],m=O[2],Ate,r),r.point(f,x)}function S(){g.point=y,r.lineEnd()}function v(){E(),g.point=_,g.lineEnd=C}function _(b,R){A(i=b,R),s=f,o=x,u=h,a=p,l=m,g.point=A}function C(){n(f,x,c,h,p,m,s,o,i,u,a,l,Ate,r),g.lineEnd=S,S()}return g}}var l7e=NR({point:function(t,e){this.stream.point(t*dt,e*dt)}});function c7e(t){return NR({point:function(e,n){var r=t(e,n);return this.stream.point(r[0],r[1])}})}function f7e(t,e,n,r,i){function s(o,u){return o*=r,u*=i,[e+t*o,n-t*u]}return s.invert=function(o,u){return[(o-e)/t*r,(n-u)/t*i]},s}function vte(t,e,n,r,i,s){if(!s)return f7e(t,e,n,r,i);var o=nt(s),u=Xe(s),a=o*t,l=u*t,c=o/t,f=u/t,x=(u*n-o*e)/t,h=(u*e+o*n)/t;function p(m,g){return m*=r,g*=i,[a*m-l*g+e,n-l*m-a*g]}return p.invert=function(m,g){return[r*(c*m-f*g+x),i*(h-f*m-c*g)]},p}function ha(t){return _te(function(){return t})()}function _te(t){var e,n=150,r=480,i=250,s=0,o=0,u=0,a=0,l=0,c,f=0,x=1,h=1,p=null,m=Jee,g=null,y,E,A,S=uE,v=.5,_,C,b,R,O;function L(B){return b(B[0]*dt,B[1]*dt)}function M(B){return B=b.invert(B[0],B[1]),B&&[B[0]*Bn,B[1]*Bn]}L.stream=function(B){return R&&O===B?R:R=l7e(c7e(c)(m(_(S(O=B)))))},L.preclip=function(B){return arguments.length?(m=B,p=void 0,W()):m},L.postclip=function(B){return arguments.length?(S=B,g=y=E=A=null,W()):S},L.clipAngle=function(B){return arguments.length?(m=+B?G8e(p=B*dt):(p=null,Jee),W()):p*Bn},L.clipExtent=function(B){return arguments.length?(S=B==null?(g=y=E=A=null,uE):Zee(g=+B[0][0],y=+B[0][1],E=+B[1][0],A=+B[1][1]),W()):g==null?null:[[g,y],[E,A]]},L.scale=function(B){return arguments.length?(n=+B,q()):n},L.translate=function(B){return arguments.length?(r=+B[0],i=+B[1],q()):[r,i]},L.center=function(B){return arguments.length?(s=B[0]%360*dt,o=B[1]%360*dt,q()):[s*Bn,o*Bn]},L.rotate=function(B){return arguments.length?(u=B[0]%360*dt,a=B[1]%360*dt,l=B.length>2?B[2]%360*dt:0,q()):[u*Bn,a*Bn,l*Bn]},L.angle=function(B){return arguments.length?(f=B%360*dt,q()):f*Bn},L.reflectX=function(B){return arguments.length?(x=B?-1:1,q()):x<0},L.reflectY=function(B){return arguments.length?(h=B?-1:1,q()):h<0},L.precision=function(B){return arguments.length?(_=Ste(C,v=B*B),W()):Ti(v)},L.fitExtent=function(B,G){return DR(L,B,G)},L.fitSize=function(B,G){return kB(L,B,G)},L.fitWidth=function(B,G){return PB(L,B,G)},L.fitHeight=function(B,G){return MB(L,B,G)};function q(){var B=vte(n,0,0,x,h,f).apply(null,e(s,o)),G=vte(n,r-B[0],i-B[1],x,h,f);return c=Hee(u,a,l),C=vB(e,G),b=vB(c,C),_=Ste(C,v),W()}function W(){return R=O=null,L}return function(){return e=t.apply(this,arguments),L.invert=e.invert&&M,q()}}function jB(t){var e=0,n=ht/3,r=_te(t),i=r(e,n);return i.parallels=function(s){return arguments.length?r(e=s[0]*dt,n=s[1]*dt):[e*Bn,n*Bn]},i}function x7e(t){var e=nt(t);function n(r,i){return[r*e,Xe(i)/e]}return n.invert=function(r,i){return[r/e,rs(i*e)]},n}function d7e(t,e){var n=Xe(t),r=(n+Xe(e))/2;if(yt(r)<tt)return x7e(t);var i=1+n*(2*r-n),s=Ti(i)/r;function o(u,a){var l=Ti(i-2*r*Xe(a))/r;return[l*Xe(u*=r),s-l*nt(u)]}return o.invert=function(u,a){var l=s-a,c=ho(u,yt(l))*po(l);return l*r<0&&(c-=ht*po(u)*po(l)),[c/r,rs((i-(u*u+l*l)*r*r)/(2*r))]},o}function FR(){return jB(d7e).scale(155.424).center([0,33.6442])}function Cte(){return FR().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function h7e(t){var e=t.length;return{point:function(n,r){for(var i=-1;++i<e;)t[i].point(n,r)},sphere:function(){for(var n=-1;++n<e;)t[n].sphere()},lineStart:function(){for(var n=-1;++n<e;)t[n].lineStart()},lineEnd:function(){for(var n=-1;++n<e;)t[n].lineEnd()},polygonStart:function(){for(var n=-1;++n<e;)t[n].polygonStart()},polygonEnd:function(){for(var n=-1;++n<e;)t[n].polygonEnd()}}}function p7e(){var t,e,n=Cte(),r,i=FR().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s,o=FR().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u,a,l={point:function(x,h){a=[x,h]}};function c(x){var h=x[0],p=x[1];return a=null,r.point(h,p),a||(s.point(h,p),a)||(u.point(h,p),a)}c.invert=function(x){var h=n.scale(),p=n.translate(),m=(x[0]-p[0])/h,g=(x[1]-p[1])/h;return(g>=.12&&g<.234&&m>=-.425&&m<-.214?i:g>=.166&&g<.234&&m>=-.214&&m<-.115?o:n).invert(x)},c.stream=function(x){return t&&e===x?t:t=h7e([n.stream(e=x),i.stream(x),o.stream(x)])},c.precision=function(x){return arguments.length?(n.precision(x),i.precision(x),o.precision(x),f()):n.precision()},c.scale=function(x){return arguments.length?(n.scale(x),i.scale(x*.35),o.scale(x),c.translate(n.translate())):n.scale()},c.translate=function(x){if(!arguments.length)return n.translate();var h=n.scale(),p=+x[0],m=+x[1];return r=n.translate(x).clipExtent([[p-.455*h,m-.238*h],[p+.455*h,m+.238*h]]).stream(l),s=i.translate([p-.307*h,m+.201*h]).clipExtent([[p-.425*h+tt,m+.12*h+tt],[p-.214*h-tt,m+.234*h-tt]]).stream(l),u=o.translate([p-.205*h,m+.212*h]).clipExtent([[p-.214*h+tt,m+.166*h+tt],[p-.115*h-tt,m+.234*h-tt]]).stream(l),f()},c.fitExtent=function(x,h){return DR(c,x,h)},c.fitSize=function(x,h){return kB(c,x,h)},c.fitWidth=function(x,h){return PB(c,x,h)},c.fitHeight=function(x,h){return MB(c,x,h)};function f(){return t=e=null,c}return c.scale(1070)}function bte(t){return function(e,n){var r=nt(e),i=nt(n),s=t(r*i);return s===1/0?[2,0]:[s*i*Xe(e),s*Xe(n)]}}function hE(t){return function(e,n){var r=Ti(e*e+n*n),i=t(r),s=Xe(i),o=nt(i);return[ho(e*s,r*o),rs(r&&n*s/r)]}}var Tte=bte(function(t){return Ti(2/(1+t))});Tte.invert=hE(function(t){return 2*rs(t/2)});function g7e(){return ha(Tte).scale(124.75).clipAngle(180-.001)}var Rte=bte(function(t){return(t=Cee(t))&&t/Xe(t)});Rte.invert=hE(function(t){return t});function m7e(){return ha(Rte).scale(79.4188).clipAngle(180-.001)}function wR(t,e){return[t,sR(fB((Nn+e)/2))]}wR.invert=function(t,e){return[t,2*Wp(_ee(e))-Nn]};function y7e(){return Ote(wR).scale(961/bi)}function Ote(t){var e=ha(t),n=e.center,r=e.scale,i=e.translate,s=e.clipExtent,o=null,u,a,l;e.scale=function(f){return arguments.length?(r(f),c()):r()},e.translate=function(f){return arguments.length?(i(f),c()):i()},e.center=function(f){return arguments.length?(n(f),c()):n()},e.clipExtent=function(f){return arguments.length?(f==null?o=u=a=l=null:(o=+f[0][0],u=+f[0][1],a=+f[1][0],l=+f[1][1]),c()):o==null?null:[[o,u],[a,l]]};function c(){var f=ht*r(),x=e(P8e(e.rotate()).invert([0,0]));return s(o==null?[[x[0]-f,x[1]-f],[x[0]+f,x[1]+f]]:t===wR?[[Math.max(x[0]-f,o),u],[Math.min(x[0]+f,a),l]]:[[o,Math.max(x[1]-f,u)],[a,Math.min(x[1]+f,l)]])}return c()}function LR(t){return fB((Nn+t)/2)}function E7e(t,e){var n=nt(t),r=t===e?Xe(t):sR(n/nt(e))/sR(LR(e)/LR(t)),i=n*cB(LR(t),r)/r;if(!r)return wR;function s(o,u){i>0?u<-Nn+tt&&(u=-Nn+tt):u>Nn-tt&&(u=Nn-tt);var a=i/cB(LR(u),r);return[a*Xe(r*o),i-a*nt(r*o)]}return s.invert=function(o,u){var a=i-u,l=po(r)*Ti(o*o+a*a),c=ho(o,yt(a))*po(a);return a*r<0&&(c-=ht*po(o)*po(a)),[c/r,2*Wp(cB(i/l,1/r))-Nn]},s}function A7e(){return jB(E7e).scale(109.5).parallels([30,30])}function IR(t,e){return[t,e]}IR.invert=IR;function S7e(){return ha(IR).scale(152.63)}function v7e(t,e){var n=nt(t),r=t===e?Xe(t):(n-nt(e))/(e-t),i=n/r+t;if(yt(r)<tt)return IR;function s(o,u){var a=i-u,l=r*o;return[a*Xe(l),i-a*nt(l)]}return s.invert=function(o,u){var a=i-u,l=ho(o,yt(a))*po(a);return a*r<0&&(l-=ht*po(o)*po(a)),[l/r,i-po(r)*Ti(o*o+a*a)]},s}function _7e(){return jB(v7e).scale(131.154).center([0,13.9389])}var pE=1.340264,gE=-.081106,mE=893e-6,yE=.003796,$R=Ti(3)/2,C7e=12;function Nte(t,e){var n=rs($R*Xe(e)),r=n*n,i=r*r*r;return[t*nt(n)/($R*(pE+3*gE*r+i*(7*mE+9*yE*r))),n*(pE+gE*r+i*(mE+yE*r))]}Nte.invert=function(t,e){for(var n=e,r=n*n,i=r*r*r,s=0,o,u,a;s<C7e&&(u=n*(pE+gE*r+i*(mE+yE*r))-e,a=pE+3*gE*r+i*(7*mE+9*yE*r),n-=o=u/a,r=n*n,i=r*r*r,!(yt(o)<nR));++s);return[$R*t*(pE+3*gE*r+i*(7*mE+9*yE*r))/nt(n),rs(Xe(n)/$R)]};function b7e(){return ha(Nte).scale(177.158)}function Dte(t,e){var n=nt(e),r=nt(t)*n;return[n*Xe(t)/r,Xe(e)/r]}Dte.invert=hE(Wp);function T7e(){return ha(Dte).scale(144.049).clipAngle(60)}function R7e(){var t=1,e=0,n=0,r=1,i=1,s=0,o,u,a=null,l,c,f,x=1,h=1,p=NR({point:function(S,v){var _=A([S,v]);this.stream.point(_[0],_[1])}}),m=uE,g,y;function E(){return x=t*r,h=t*i,g=y=null,A}function A(S){var v=S[0]*x,_=S[1]*h;if(s){var C=_*o-v*u;v=v*o+_*u,_=C}return[v+e,_+n]}return A.invert=function(S){var v=S[0]-e,_=S[1]-n;if(s){var C=_*o+v*u;v=v*o-_*u,_=C}return[v/x,_/h]},A.stream=function(S){return g&&y===S?g:g=p(m(y=S))},A.postclip=function(S){return arguments.length?(m=S,a=l=c=f=null,E()):m},A.clipExtent=function(S){return arguments.length?(m=S==null?(a=l=c=f=null,uE):Zee(a=+S[0][0],l=+S[0][1],c=+S[1][0],f=+S[1][1]),E()):a==null?null:[[a,l],[c,f]]},A.scale=function(S){return arguments.length?(t=+S,E()):t},A.translate=function(S){return arguments.length?(e=+S[0],n=+S[1],E()):[e,n]},A.angle=function(S){return arguments.length?(s=S%360*dt,u=Xe(s),o=nt(s),E()):s*Bn},A.reflectX=function(S){return arguments.length?(r=S?-1:1,E()):r<0},A.reflectY=function(S){return arguments.length?(i=S?-1:1,E()):i<0},A.fitExtent=function(S,v){return DR(A,S,v)},A.fitSize=function(S,v){return kB(A,S,v)},A.fitWidth=function(S,v){return PB(A,S,v)},A.fitHeight=function(S,v){return MB(A,S,v)},A}function Fte(t,e){var n=e*e,r=n*n;return[t*(.8707-.131979*n+r*(-.013791+r*(.003971*n-.001529*r))),e*(1.007226+n*(.015085+r*(-.044475+.028874*n-.005916*r)))]}Fte.invert=function(t,e){var n=e,r=25,i;do{var s=n*n,o=s*s;n-=i=(n*(1.007226+s*(.015085+o*(-.044475+.028874*s-.005916*o)))-e)/(1.007226+s*(.015085*3+o*(-.044475*7+.028874*9*s-.005916*11*o)))}while(yt(i)>tt&&--r>0);return[t/(.8707+(s=n*n)*(-.131979+s*(-.013791+s*s*s*(.003971-.001529*s)))),n]};function O7e(){return ha(Fte).scale(175.295)}function wte(t,e){return[nt(e)*Xe(t),Xe(e)]}wte.invert=hE(rs);function N7e(){return ha(wte).scale(249.5).clipAngle(90+tt)}function Lte(t,e){var n=nt(e),r=1+nt(t)*n;return[n*Xe(t)/r,Xe(e)/r]}Lte.invert=hE(function(t){return 2*Wp(t)});function D7e(){return ha(Lte).scale(250).clipAngle(142)}function Ite(t,e){return[sR(fB((Nn+e)/2)),-t]}Ite.invert=function(t,e){return[-e,2*Wp(_ee(t))-Nn]};function F7e(){var t=Ote(Ite),e=t.center,n=t.rotate;return t.center=function(r){return arguments.length?e([-r[1],r[0]]):(r=e(),[r[1],-r[0]])},t.rotate=function(r){return arguments.length?n([r[0],r[1],r.length>2?r[2]+90:90]):(r=n(),[r[0],r[1],r[2]-90])},n([0,0,90]).scale(159.155)}var w7e=Math.abs,UB=Math.cos,BR=Math.sin,L7e=1e-6,$te=Math.PI,qB=$te/2,Bte=I7e(2);function kte(t){return t>1?qB:t<-1?-qB:Math.asin(t)}function I7e(t){return t>0?Math.sqrt(t):0}function $7e(t,e){var n=t*BR(e),r=30,i;do e-=i=(e+BR(e)-n)/(1+UB(e));while(w7e(i)>L7e&&--r>0);return e/2}function B7e(t,e,n){function r(i,s){return[t*i*UB(s=$7e(n,s)),e*BR(s)]}return r.invert=function(i,s){return s=kte(s/e),[i/(t*UB(s)),kte((2*s+BR(2*s))/n)]},r}var k7e=B7e(Bte/qB,Bte,$te);function P7e(){return ha(k7e).scale(169.529)}const M7e=Ete(),HB=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function j7e(t,e){return function n(){const r=e();return r.type=t,r.path=Ete().projection(r),r.copy=r.copy||function(){const i=n();return HB.forEach(s=>{r[s]&&i[s](r[s]())}),i.path.pointRadius(r.path.pointRadius()),i},YK(r)}}function Pte(t,e){if(!t||typeof t!="string")throw new Error("Projection type must be a name string.");return t=t.toLowerCase(),arguments.length>1?(kR[t]=j7e(t,e),this):kR[t]||null}function Mte(t){return t&&t.path||M7e}const kR={albers:Cte,albersusa:p7e,azimuthalequalarea:g7e,azimuthalequidistant:m7e,conicconformal:A7e,conicequalarea:FR,conicequidistant:_7e,equalEarth:b7e,equirectangular:S7e,gnomonic:T7e,identity:R7e,mercator:y7e,mollweide:P7e,naturalEarth1:O7e,orthographic:N7e,stereographic:D7e,transversemercator:F7e};for(const t in kR)Pte(t,kR[t]);function U7e(){}const $l=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function jte(){var t=1,e=1,n=u;function r(a,l){return l.map(c=>i(a,c))}function i(a,l){var c=[],f=[];return s(a,l,x=>{n(x,a,l),q7e(x)>0?c.push([x]):f.push(x)}),f.forEach(x=>{for(var h=0,p=c.length,m;h<p;++h)if(H7e((m=c[h])[0],x)!==-1){m.push(x);return}}),{type:"MultiPolygon",value:l,coordinates:c}}function s(a,l,c){var f=new Array,x=new Array,h,p,m,g,y,E;for(h=p=-1,g=a[0]>=l,$l[g<<1].forEach(A);++h<t-1;)m=g,g=a[h+1]>=l,$l[m|g<<1].forEach(A);for($l[g<<0].forEach(A);++p<e-1;){for(h=-1,g=a[p*t+t]>=l,y=a[p*t]>=l,$l[g<<1|y<<2].forEach(A);++h<t-1;)m=g,g=a[p*t+t+h+1]>=l,E=y,y=a[p*t+h+1]>=l,$l[m|g<<1|y<<2|E<<3].forEach(A);$l[g|y<<3].forEach(A)}for(h=-1,y=a[p*t]>=l,$l[y<<2].forEach(A);++h<t-1;)E=y,y=a[p*t+h+1]>=l,$l[y<<2|E<<3].forEach(A);$l[y<<3].forEach(A);function A(S){var v=[S[0][0]+h,S[0][1]+p],_=[S[1][0]+h,S[1][1]+p],C=o(v),b=o(_),R,O;(R=x[C])?(O=f[b])?(delete x[R.end],delete f[O.start],R===O?(R.ring.push(_),c(R.ring)):f[R.start]=x[O.end]={start:R.start,end:O.end,ring:R.ring.concat(O.ring)}):(delete x[R.end],R.ring.push(_),x[R.end=b]=R):(R=f[b])?(O=x[C])?(delete f[R.start],delete x[O.end],R===O?(R.ring.push(_),c(R.ring)):f[O.start]=x[R.end]={start:O.start,end:R.end,ring:O.ring.concat(R.ring)}):(delete f[R.start],R.ring.unshift(v),f[R.start=C]=R):f[C]=x[b]={start:C,end:b,ring:[v,_]}}}function o(a){return a[0]*2+a[1]*(t+1)*4}function u(a,l,c){a.forEach(f=>{var x=f[0],h=f[1],p=x|0,m=h|0,g,y=l[m*t+p];x>0&&x<t&&p===x&&(g=l[m*t+p-1],f[0]=x+(c-g)/(y-g)-.5),h>0&&h<e&&m===h&&(g=l[(m-1)*t+p],f[1]=h+(c-g)/(y-g)-.5)})}return r.contour=i,r.size=function(a){if(!arguments.length)return[t,e];var l=Math.floor(a[0]),c=Math.floor(a[1]);return l>=0&&c>=0||ve("invalid size"),t=l,e=c,r},r.smooth=function(a){return arguments.length?(n=a?u:U7e,r):n===u},r}function q7e(t){for(var e=0,n=t.length,r=t[n-1][1]*t[0][0]-t[n-1][0]*t[0][1];++e<n;)r+=t[e-1][1]*t[e][0]-t[e-1][0]*t[e][1];return r}function H7e(t,e){for(var n=-1,r=e.length,i;++n<r;)if(i=z7e(t,e[n]))return i;return 0}function z7e(t,e){for(var n=e[0],r=e[1],i=-1,s=0,o=t.length,u=o-1;s<o;u=s++){var a=t[s],l=a[0],c=a[1],f=t[u],x=f[0],h=f[1];if(Q7e(a,f,e))return 0;c>r!=h>r&&n<(x-l)*(r-c)/(h-c)+l&&(i=-i)}return i}function Q7e(t,e,n){var r;return G7e(t,e,n)&&W7e(t[r=+(t[0]===e[0])],n[r],e[r])}function G7e(t,e,n){return(e[0]-t[0])*(n[1]-t[1])===(n[0]-t[0])*(e[1]-t[1])}function W7e(t,e,n){return t<=e&&e<=n||n<=e&&e<=t}function Ute(t,e,n){return function(r){var i=pl(r),s=n?Math.min(i[0],0):i[0],o=i[1],u=o-s,a=e?Z0(s,o,t):u/(t+1);return Fs(s+a,o,a)}}function zB(t){pe.call(this,null,t)}zB.Definition={type:"Isocontour",metadata:{generates:!0},params:[{name:"field",type:"field"},{name:"thresholds",type:"number",array:!0},{name:"levels",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"zero",type:"boolean",default:!0},{name:"smooth",type:"boolean",default:!0},{name:"scale",type:"number",expr:!0},{name:"translate",type:"number",array:!0,expr:!0},{name:"as",type:"string",null:!0,default:"contour"}]},Fe(zB,pe,{transform(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var n=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=e.materialize(e.SOURCE).source,i=t.field||mi,s=jte().smooth(t.smooth!==!1),o=t.thresholds||V7e(r,i,t),u=t.as===null?null:t.as||"contour",a=[];return r.forEach(l=>{const c=i(l),f=s.size([c.width,c.height])(c.values,_e(o)?o:o(c.values));Y7e(f,c,l,t),f.forEach(x=>{a.push(zb(l,Lt(u!=null?{[u]:x}:x)))})}),this.value&&(n.rem=this.value),this.value=n.source=n.add=a,n}});function V7e(t,e,n){const r=Ute(n.levels||10,n.nice,n.zero!==!1);return n.resolve!=="shared"?r:r(t.map(i=>Cx(e(i).values)))}function Y7e(t,e,n,r){let i=r.scale||e.scale,s=r.translate||e.translate;if(ct(i)&&(i=i(n,r)),ct(s)&&(s=s(n,r)),(i===1||i==null)&&!s)return;const o=(tn(i)?i:i[0])||1,u=(tn(i)?i:i[1])||1,a=s&&s[0]||0,l=s&&s[1]||0;t.forEach(qte(e,o,u,a,l))}function qte(t,e,n,r,i){const s=t.x1||0,o=t.y1||0,u=e*n<0;function a(f){f.forEach(l)}function l(f){u&&f.reverse(),f.forEach(c)}function c(f){f[0]=(f[0]-s)*e+r,f[1]=(f[1]-o)*n+i}return function(f){return f.coordinates.forEach(a),f}}function Hte(t,e,n){const r=t>=0?t:vY(e,n);return Math.round((Math.sqrt(4*r*r+1)-1)/2)}function QB(t){return ct(t)?t:Ei(+t)}function zte(){var t=a=>a[0],e=a=>a[1],n=ty,r=[-1,-1],i=960,s=500,o=2;function u(a,l){const c=Hte(r[0],a,t)>>o,f=Hte(r[1],a,e)>>o,x=c?c+2:0,h=f?f+2:0,p=2*x+(i>>o),m=2*h+(s>>o),g=new Float32Array(p*m),y=new Float32Array(p*m);let E=g;a.forEach(S=>{const v=x+(+t(S)>>o),_=h+(+e(S)>>o);v>=0&&v<p&&_>=0&&_<m&&(g[v+_*p]+=+n(S))}),c>0&&f>0?(Jp(p,m,g,y,c),Zp(p,m,y,g,f),Jp(p,m,g,y,c),Zp(p,m,y,g,f),Jp(p,m,g,y,c),Zp(p,m,y,g,f)):c>0?(Jp(p,m,g,y,c),Jp(p,m,y,g,c),Jp(p,m,g,y,c),E=y):f>0&&(Zp(p,m,g,y,f),Zp(p,m,y,g,f),Zp(p,m,g,y,f),E=y);const A=l?Math.pow(2,-2*o):1/oV(E);for(let S=0,v=p*m;S<v;++S)E[S]*=A;return{values:E,scale:1<<o,width:p,height:m,x1:x,y1:h,x2:x+(i>>o),y2:h+(s>>o)}}return u.x=function(a){return arguments.length?(t=QB(a),u):t},u.y=function(a){return arguments.length?(e=QB(a),u):e},u.weight=function(a){return arguments.length?(n=QB(a),u):n},u.size=function(a){if(!arguments.length)return[i,s];var l=+a[0],c=+a[1];return l>=0&&c>=0||ve("invalid size"),i=l,s=c,u},u.cellSize=function(a){return arguments.length?((a=+a)>=1||ve("invalid cell size"),o=Math.floor(Math.log(a)/Math.LN2),u):1<<o},u.bandwidth=function(a){return arguments.length?(a=Pe(a),a.length===1&&(a=[+a[0],+a[0]]),a.length!==2&&ve("invalid bandwidth"),r=a,u):r},u}function Jp(t,e,n,r,i){const s=(i<<1)+1;for(let o=0;o<e;++o)for(let u=0,a=0;u<t+i;++u)u<t&&(a+=n[u+o*t]),u>=i&&(u>=s&&(a-=n[u-s+o*t]),r[u-i+o*t]=a/Math.min(u+1,t-1+s-u,s))}function Zp(t,e,n,r,i){const s=(i<<1)+1;for(let o=0;o<t;++o)for(let u=0,a=0;u<e+i;++u)u<e&&(a+=n[o+u*t]),u>=i&&(u>=s&&(a-=n[o+(u-s)*t]),r[o+(u-i)*t]=a/Math.min(u+1,e-1+s-u,s))}function GB(t){pe.call(this,null,t)}GB.Definition={type:"KDE2D",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"weight",type:"field"},{name:"groupby",type:"field",array:!0},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number",array:!0,length:2},{name:"counts",type:"boolean",default:!1},{name:"as",type:"string",default:"grid"}]};const X7e=["x","y","weight","size","cellSize","bandwidth"];function Qte(t,e){return X7e.forEach(n=>e[n]!=null?t[n](e[n]):0),t}Fe(GB,pe,{transform(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var n=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=e.materialize(e.SOURCE).source,i=K7e(r,t.groupby),s=(t.groupby||[]).map($n),o=Qte(zte(),t),u=t.as||"grid",a=[];function l(c,f){for(let x=0;x<s.length;++x)c[s[x]]=f[x];return c}return a=i.map(c=>Lt(l({[u]:o(c,t.counts)},c.dims))),this.value&&(n.rem=this.value),this.value=n.source=n.add=a,n}});function K7e(t,e){var n=[],r=c=>c(u),i,s,o,u,a,l;if(e==null)n.push(t);else for(i={},s=0,o=t.length;s<o;++s)u=t[s],a=e.map(r),l=i[a],l||(i[a]=l=[],l.dims=a,n.push(l)),l.push(u);return n}function WB(t){pe.call(this,null,t)}WB.Definition={type:"Contour",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"values",type:"number",array:!0},{name:"x",type:"field"},{name:"y",type:"field"},{name:"weight",type:"field"},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number"},{name:"count",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"thresholds",type:"number",array:!0},{name:"smooth",type:"boolean",default:!0}]},Fe(WB,pe,{transform(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var n=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=jte().smooth(t.smooth!==!1),i=t.values,s=t.thresholds||Ute(t.count||10,t.nice,!!i),o=t.size,u,a;return i||(i=e.materialize(e.SOURCE).source,u=Qte(zte(),t)(i,!0),a=qte(u,u.scale||1,u.scale||1,0,0),o=[u.width,u.height],i=u.values),s=_e(s)?s:s(i),i=r.size(o)(i,s),a&&i.forEach(a),this.value&&(n.rem=this.value),this.value=n.source=n.add=(i||[]).map(Lt),n}});const VB="Feature",YB="FeatureCollection",J7e="MultiPoint";function XB(t){pe.call(this,null,t)}XB.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},Fe(XB,pe,{transform(t,e){var n=this._features,r=this._points,i=t.fields,s=i&&i[0],o=i&&i[1],u=t.geojson||!i&&mi,a=e.ADD,l;l=t.modified()||e.changed(e.REM)||e.modified(gi(u))||s&&e.modified(gi(s))||o&&e.modified(gi(o)),(!this.value||l)&&(a=e.SOURCE,this._features=n=[],this._points=r=[]),u&&e.visit(a,c=>n.push(u(c))),s&&o&&(e.visit(a,c=>{var f=s(c),x=o(c);f!=null&&x!=null&&(f=+f)===f&&(x=+x)===x&&r.push([f,x])}),n=n.concat({type:VB,geometry:{type:J7e,coordinates:r}})),this.value={type:YB,features:n}}});function KB(t){pe.call(this,null,t)}KB.Definition={type:"GeoPath",metadata:{modifies:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"path"}]},Fe(KB,pe,{transform(t,e){var n=e.fork(e.ALL),r=this.value,i=t.field||mi,s=t.as||"path",o=n.SOURCE;!r||t.modified()?(this.value=r=Mte(t.projection),n.materialize().reflow()):o=i===mi||e.modified(i.fields)?n.ADD_MOD:n.ADD;const u=Z7e(r,t.pointRadius);return n.visit(o,a=>a[s]=r(i(a))),r.pointRadius(u),n.modifies(s)}});function Z7e(t,e){const n=t.pointRadius();return t.context(null),e!=null&&t.pointRadius(e),n}function JB(t){pe.call(this,null,t)}JB.Definition={type:"GeoPoint",metadata:{modifies:!0},params:[{name:"projection",type:"projection",required:!0},{name:"fields",type:"field",array:!0,required:!0,length:2},{name:"as",type:"string",array:!0,length:2,default:["x","y"]}]},Fe(JB,pe,{transform(t,e){var n=t.projection,r=t.fields[0],i=t.fields[1],s=t.as||["x","y"],o=s[0],u=s[1],a;function l(c){const f=n([r(c),i(c)]);f?(c[o]=f[0],c[u]=f[1]):(c[o]=void 0,c[u]=void 0)}return t.modified()?e=e.materialize().reflow(!0).visit(e.SOURCE,l):(a=e.modified(r.fields)||e.modified(i.fields),e.visit(a?e.ADD_MOD:e.ADD,l)),e.modifies(s)}});function ZB(t){pe.call(this,null,t)}ZB.Definition={type:"GeoShape",metadata:{modifies:!0,nomod:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field",default:"datum"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"shape"}]},Fe(ZB,pe,{transform(t,e){var n=e.fork(e.ALL),r=this.value,i=t.as||"shape",s=n.ADD;return(!r||t.modified())&&(this.value=r=ePe(Mte(t.projection),t.field||Ds("datum"),t.pointRadius),n.materialize().reflow(),s=n.SOURCE),n.visit(s,o=>o[i]=r),n.modifies(i)}});function ePe(t,e,n){const r=n==null?i=>t(e(i)):i=>{var s=t.pointRadius(),o=t.pointRadius(n)(e(i));return t.pointRadius(s),o};return r.context=i=>(t.context(i),r),r}function e6(t){pe.call(this,[],t),this.generator=V8e()}e6.Definition={type:"Graticule",metadata:{changes:!0,generates:!0},params:[{name:"extent",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMajor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMinor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"step",type:"number",array:!0,length:2},{name:"stepMajor",type:"number",array:!0,length:2,default:[90,360]},{name:"stepMinor",type:"number",array:!0,length:2,default:[10,10]},{name:"precision",type:"number",default:2.5}]},Fe(e6,pe,{transform(t,e){var n=this.value,r=this.generator,i;if(!n.length||t.modified())for(const s in t)ct(r[s])&&r[s](t[s]);return i=r(),n.length?e.mod.push(aY(n[0],i)):e.add.push(Lt(i)),n[0]=i,e}});function t6(t){pe.call(this,null,t)}t6.Definition={type:"heatmap",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"color",type:"string",expr:!0},{name:"opacity",type:"number",expr:!0},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"as",type:"string",default:"image"}]},Fe(t6,pe,{transform(t,e){if(!e.changed()&&!t.modified())return e.StopPropagation;var n=e.materialize(e.SOURCE).source,r=t.resolve==="shared",i=t.field||mi,s=nPe(t.opacity,t),o=tPe(t.color,t),u=t.as||"image",a={$x:0,$y:0,$value:0,$max:r?Cx(n.map(l=>Cx(i(l).values))):0};return n.forEach(l=>{const c=i(l),f=ft({},l,a);r||(f.$max=Cx(c.values||[])),l[u]=rPe(c,f,o.dep?o:Ei(o(f)),s.dep?s:Ei(s(f)))}),e.reflow(!0).modifies(u)}});function tPe(t,e){let n;return ct(t)?(n=r=>ac(t(r,e)),n.dep=Gte(t)):n=Ei(ac(t||"#888")),n}function nPe(t,e){let n;return ct(t)?(n=r=>t(r,e),n.dep=Gte(t)):t?n=Ei(t):(n=r=>r.$value/r.$max||0,n.dep=!0),n}function Gte(t){if(!ct(t))return!1;const e=Xu(gi(t));return e.$x||e.$y||e.$value||e.$max}function rPe(t,e,n,r){const i=t.width,s=t.height,o=t.x1||0,u=t.y1||0,a=t.x2||i,l=t.y2||s,c=t.values,f=c?g=>c[g]:Ax,x=sc(a-o,l-u),h=x.getContext("2d"),p=h.getImageData(0,0,a-o,l-u),m=p.data;for(let g=u,y=0;g<l;++g){e.$y=g-u;for(let E=o,A=g*i;E<a;++E,y+=4){e.$x=E-o,e.$value=f(E+A);const S=n(e);m[y+0]=S.r,m[y+1]=S.g,m[y+2]=S.b,m[y+3]=~~(255*r(e))}}return h.putImageData(p,0,0),x}function Wte(t){pe.call(this,null,t),this.modified(!0)}Fe(Wte,pe,{transform(t,e){let n=this.value;return!n||t.modified("type")?(this.value=n=sPe(t.type),HB.forEach(r=>{t[r]!=null&&Vte(n,r,t[r])})):HB.forEach(r=>{t.modified(r)&&Vte(n,r,t[r])}),t.pointRadius!=null&&n.path.pointRadius(t.pointRadius),t.fit&&iPe(n,t),e.fork(e.NO_SOURCE|e.NO_FIELDS)}});function iPe(t,e){const n=oPe(e.fit);e.extent?t.fitExtent(e.extent,n):e.size&&t.fitSize(e.size,n)}function sPe(t){const e=Pte((t||"mercator").toLowerCase());return e||ve("Unrecognized projection type: "+t),e()}function Vte(t,e,n){ct(t[e])&&t[e](n)}function oPe(t){return t=Pe(t),t.length===1?t[0]:{type:YB,features:t.reduce((e,n)=>e.concat(uPe(n)),[])}}function uPe(t){return t.type===YB?t.features:Pe(t).filter(e=>e!=null).map(e=>e.type===VB?e:{type:VB,geometry:e})}const aPe=Object.freeze(Object.defineProperty({__proto__:null,contour:WB,geojson:XB,geopath:KB,geopoint:JB,geoshape:ZB,graticule:e6,heatmap:t6,isocontour:zB,kde2d:GB,projection:Wte},Symbol.toStringTag,{value:"Module"}));function lPe(t,e){var n,r=1;t==null&&(t=0),e==null&&(e=0);function i(){var s,o=n.length,u,a=0,l=0;for(s=0;s<o;++s)u=n[s],a+=u.x,l+=u.y;for(a=(a/o-t)*r,l=(l/o-e)*r,s=0;s<o;++s)u=n[s],u.x-=a,u.y-=l}return i.initialize=function(s){n=s},i.x=function(s){return arguments.length?(t=+s,i):t},i.y=function(s){return arguments.length?(e=+s,i):e},i.strength=function(s){return arguments.length?(r=+s,i):r},i}function cPe(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return Yte(this.cover(e,n),e,n,t)}function Yte(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,s=t._root,o={data:r},u=t._x0,a=t._y0,l=t._x1,c=t._y1,f,x,h,p,m,g,y,E;if(!s)return t._root=o,t;for(;s.length;)if((m=e>=(f=(u+l)/2))?u=f:l=f,(g=n>=(x=(a+c)/2))?a=x:c=x,i=s,!(s=s[y=g<<1|m]))return i[y]=o,t;if(h=+t._x.call(null,s.data),p=+t._y.call(null,s.data),e===h&&n===p)return o.next=s,i?i[y]=o:t._root=o,t;do i=i?i[y]=new Array(4):t._root=new Array(4),(m=e>=(f=(u+l)/2))?u=f:l=f,(g=n>=(x=(a+c)/2))?a=x:c=x;while((y=g<<1|m)===(E=(p>=x)<<1|h>=f));return i[E]=s,i[y]=o,t}function fPe(t){var e,n,r=t.length,i,s,o=new Array(r),u=new Array(r),a=1/0,l=1/0,c=-1/0,f=-1/0;for(n=0;n<r;++n)isNaN(i=+this._x.call(null,e=t[n]))||isNaN(s=+this._y.call(null,e))||(o[n]=i,u[n]=s,i<a&&(a=i),i>c&&(c=i),s<l&&(l=s),s>f&&(f=s));if(a>c||l>f)return this;for(this.cover(a,l).cover(c,f),n=0;n<r;++n)Yte(this,o[n],u[n],t[n]);return this}function xPe(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,i=this._x1,s=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,s=(r=Math.floor(e))+1;else{for(var o=i-n||1,u=this._root,a,l;n>t||t>=i||r>e||e>=s;)switch(l=(e<r)<<1|t<n,a=new Array(4),a[l]=u,u=a,o*=2,l){case 0:i=n+o,s=r+o;break;case 1:n=i-o,s=r+o;break;case 2:i=n+o,r=s-o;break;case 3:n=i-o,r=s-o;break}this._root&&this._root.length&&(this._root=u)}return this._x0=n,this._y0=r,this._x1=i,this._y1=s,this}function dPe(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function hPe(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function Di(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i}function pPe(t,e,n){var r,i=this._x0,s=this._y0,o,u,a,l,c=this._x1,f=this._y1,x=[],h=this._root,p,m;for(h&&x.push(new Di(h,i,s,c,f)),n==null?n=1/0:(i=t-n,s=e-n,c=t+n,f=e+n,n*=n);p=x.pop();)if(!(!(h=p.node)||(o=p.x0)>c||(u=p.y0)>f||(a=p.x1)<i||(l=p.y1)<s))if(h.length){var g=(o+a)/2,y=(u+l)/2;x.push(new Di(h[3],g,y,a,l),new Di(h[2],o,y,g,l),new Di(h[1],g,u,a,y),new Di(h[0],o,u,g,y)),(m=(e>=y)<<1|t>=g)&&(p=x[x.length-1],x[x.length-1]=x[x.length-1-m],x[x.length-1-m]=p)}else{var E=t-+this._x.call(null,h.data),A=e-+this._y.call(null,h.data),S=E*E+A*A;if(S<n){var v=Math.sqrt(n=S);i=t-v,s=e-v,c=t+v,f=e+v,r=h.data}}return r}function gPe(t){if(isNaN(c=+this._x.call(null,t))||isNaN(f=+this._y.call(null,t)))return this;var e,n=this._root,r,i,s,o=this._x0,u=this._y0,a=this._x1,l=this._y1,c,f,x,h,p,m,g,y;if(!n)return this;if(n.length)for(;;){if((p=c>=(x=(o+a)/2))?o=x:a=x,(m=f>=(h=(u+l)/2))?u=h:l=h,e=n,!(n=n[g=m<<1|p]))return this;if(!n.length)break;(e[g+1&3]||e[g+2&3]||e[g+3&3])&&(r=e,y=g)}for(;n.data!==t;)if(i=n,!(n=n.next))return this;return(s=n.next)&&delete n.next,i?(s?i.next=s:delete i.next,this):e?(s?e[g]=s:delete e[g],(n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length&&(r?r[y]=n:this._root=n),this):(this._root=s,this)}function mPe(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function yPe(){return this._root}function EPe(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function APe(t){var e=[],n,r=this._root,i,s,o,u,a;for(r&&e.push(new Di(r,this._x0,this._y0,this._x1,this._y1));n=e.pop();)if(!t(r=n.node,s=n.x0,o=n.y0,u=n.x1,a=n.y1)&&r.length){var l=(s+u)/2,c=(o+a)/2;(i=r[3])&&e.push(new Di(i,l,c,u,a)),(i=r[2])&&e.push(new Di(i,s,c,l,a)),(i=r[1])&&e.push(new Di(i,l,o,u,c)),(i=r[0])&&e.push(new Di(i,s,o,l,c))}return this}function SPe(t){var e=[],n=[],r;for(this._root&&e.push(new Di(this._root,this._x0,this._y0,this._x1,this._y1));r=e.pop();){var i=r.node;if(i.length){var s,o=r.x0,u=r.y0,a=r.x1,l=r.y1,c=(o+a)/2,f=(u+l)/2;(s=i[0])&&e.push(new Di(s,o,u,c,f)),(s=i[1])&&e.push(new Di(s,c,u,a,f)),(s=i[2])&&e.push(new Di(s,o,f,c,l)),(s=i[3])&&e.push(new Di(s,c,f,a,l))}n.push(r)}for(;r=n.pop();)t(r.node,r.x0,r.y0,r.x1,r.y1);return this}function vPe(t){return t[0]}function _Pe(t){return arguments.length?(this._x=t,this):this._x}function CPe(t){return t[1]}function bPe(t){return arguments.length?(this._y=t,this):this._y}function n6(t,e,n){var r=new r6(e??vPe,n??CPe,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function r6(t,e,n,r,i,s){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=s,this._root=void 0}function Xte(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var Fi=n6.prototype=r6.prototype;Fi.copy=function(){var t=new r6(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,r;if(!e)return t;if(!e.length)return t._root=Xte(e),t;for(n=[{source:e,target:t._root=new Array(4)}];e=n.pop();)for(var i=0;i<4;++i)(r=e.source[i])&&(r.length?n.push({source:r,target:e.target[i]=new Array(4)}):e.target[i]=Xte(r));return t},Fi.add=cPe,Fi.addAll=fPe,Fi.cover=xPe,Fi.data=dPe,Fi.extent=hPe,Fi.find=pPe,Fi.remove=gPe,Fi.removeAll=mPe,Fi.root=yPe,Fi.size=EPe,Fi.visit=APe,Fi.visitAfter=SPe,Fi.x=_Pe,Fi.y=bPe;function wi(t){return function(){return t}}function vc(t){return(t()-.5)*1e-6}function TPe(t){return t.x+t.vx}function RPe(t){return t.y+t.vy}function OPe(t){var e,n,r,i=1,s=1;typeof t!="function"&&(t=wi(t==null?1:+t));function o(){for(var l,c=e.length,f,x,h,p,m,g,y=0;y<s;++y)for(f=n6(e,TPe,RPe).visitAfter(u),l=0;l<c;++l)x=e[l],m=n[x.index],g=m*m,h=x.x+x.vx,p=x.y+x.vy,f.visit(E);function E(A,S,v,_,C){var b=A.data,R=A.r,O=m+R;if(b){if(b.index>x.index){var L=h-b.x-b.vx,M=p-b.y-b.vy,q=L*L+M*M;q<O*O&&(L===0&&(L=vc(r),q+=L*L),M===0&&(M=vc(r),q+=M*M),q=(O-(q=Math.sqrt(q)))/q*i,x.vx+=(L*=q)*(O=(R*=R)/(g+R)),x.vy+=(M*=q)*O,b.vx-=L*(O=1-O),b.vy-=M*O)}return}return S>h+O||_<h-O||v>p+O||C<p-O}}function u(l){if(l.data)return l.r=n[l.data.index];for(var c=l.r=0;c<4;++c)l[c]&&l[c].r>l.r&&(l.r=l[c].r)}function a(){if(e){var l,c=e.length,f;for(n=new Array(c),l=0;l<c;++l)f=e[l],n[f.index]=+t(f,l,e)}}return o.initialize=function(l,c){e=l,r=c,a()},o.iterations=function(l){return arguments.length?(s=+l,o):s},o.strength=function(l){return arguments.length?(i=+l,o):i},o.radius=function(l){return arguments.length?(t=typeof l=="function"?l:wi(+l),a(),o):t},o}function NPe(t){return t.index}function Kte(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function DPe(t){var e=NPe,n=f,r,i=wi(30),s,o,u,a,l,c=1;t==null&&(t=[]);function f(g){return 1/Math.min(u[g.source.index],u[g.target.index])}function x(g){for(var y=0,E=t.length;y<c;++y)for(var A=0,S,v,_,C,b,R,O;A<E;++A)S=t[A],v=S.source,_=S.target,C=_.x+_.vx-v.x-v.vx||vc(l),b=_.y+_.vy-v.y-v.vy||vc(l),R=Math.sqrt(C*C+b*b),R=(R-s[A])/R*g*r[A],C*=R,b*=R,_.vx-=C*(O=a[A]),_.vy-=b*O,v.vx+=C*(O=1-O),v.vy+=b*O}function h(){if(o){var g,y=o.length,E=t.length,A=new Map(o.map((v,_)=>[e(v,_,o),v])),S;for(g=0,u=new Array(y);g<E;++g)S=t[g],S.index=g,typeof S.source!="object"&&(S.source=Kte(A,S.source)),typeof S.target!="object"&&(S.target=Kte(A,S.target)),u[S.source.index]=(u[S.source.index]||0)+1,u[S.target.index]=(u[S.target.index]||0)+1;for(g=0,a=new Array(E);g<E;++g)S=t[g],a[g]=u[S.source.index]/(u[S.source.index]+u[S.target.index]);r=new Array(E),p(),s=new Array(E),m()}}function p(){if(o)for(var g=0,y=t.length;g<y;++g)r[g]=+n(t[g],g,t)}function m(){if(o)for(var g=0,y=t.length;g<y;++g)s[g]=+i(t[g],g,t)}return x.initialize=function(g,y){o=g,l=y,h()},x.links=function(g){return arguments.length?(t=g,h(),x):t},x.id=function(g){return arguments.length?(e=g,x):e},x.iterations=function(g){return arguments.length?(c=+g,x):c},x.strength=function(g){return arguments.length?(n=typeof g=="function"?g:wi(+g),p(),x):n},x.distance=function(g){return arguments.length?(i=typeof g=="function"?g:wi(+g),m(),x):i},x}var FPe={value:()=>{}};function Jte(){for(var t=0,e=arguments.length,n={},r;t<e;++t){if(!(r=arguments[t]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new PR(n)}function PR(t){this._=t}function wPe(t,e){return t.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");if(i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}PR.prototype=Jte.prototype={constructor:PR,on:function(t,e){var n=this._,r=wPe(t+"",n),i,s=-1,o=r.length;if(arguments.length<2){for(;++s<o;)if((i=(t=r[s]).type)&&(i=LPe(n[i],t.name)))return i;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++s<o;)if(i=(t=r[s]).type)n[i]=Zte(n[i],t.name,e);else if(e==null)for(i in n)n[i]=Zte(n[i],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new PR(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,s;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(s=this._[t],r=0,i=s.length;r<i;++r)s[r].value.apply(e,n)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,s=r.length;i<s;++i)r[i].value.apply(e,n)}};function LPe(t,e){for(var n=0,r=t.length,i;n<r;++n)if((i=t[n]).name===e)return i.value}function Zte(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=FPe,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}var e2=0,EE=0,AE=0,ene=1e3,MR,SE,jR=0,ed=0,UR=0,vE=typeof performance=="object"&&performance.now?performance:Date,tne=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function i6(){return ed||(tne(IPe),ed=vE.now()+UR)}function IPe(){ed=0}function qR(){this._call=this._time=this._next=null}qR.prototype=nne.prototype={constructor:qR,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?i6():+n)+(e==null?0:+e),!this._next&&SE!==this&&(SE?SE._next=this:MR=this,SE=this),this._call=t,this._time=n,s6()},stop:function(){this._call&&(this._call=null,this._time=1/0,s6())}};function nne(t,e,n){var r=new qR;return r.restart(t,e,n),r}function $Pe(){i6(),++e2;for(var t=MR,e;t;)(e=ed-t._time)>=0&&t._call.call(void 0,e),t=t._next;--e2}function rne(){ed=(jR=vE.now())+UR,e2=EE=0;try{$Pe()}finally{e2=0,kPe(),ed=0}}function BPe(){var t=vE.now(),e=t-jR;e>ene&&(UR-=e,jR=t)}function kPe(){for(var t,e=MR,n,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:MR=n);SE=t,s6(r)}function s6(t){if(!e2){EE&&(EE=clearTimeout(EE));var e=t-ed;e>24?(t<1/0&&(EE=setTimeout(rne,t-vE.now()-UR)),AE&&(AE=clearInterval(AE))):(AE||(jR=vE.now(),AE=setInterval(BPe,ene)),e2=1,tne(rne))}}function PPe(t,e,n){var r=new qR,i=e;return e==null?(r.restart(t,e,n),r):(r._restart=r.restart,r.restart=function(s,o,u){o=+o,u=u==null?i6():+u,r._restart(function a(l){l+=i,r._restart(a,i+=o,u),s(l)},o,u)},r.restart(t,e,n),r)}const MPe=1664525,jPe=1013904223,ine=4294967296;function UPe(){let t=1;return()=>(t=(MPe*t+jPe)%ine)/ine}function qPe(t){return t.x}function HPe(t){return t.y}var zPe=10,QPe=Math.PI*(3-Math.sqrt(5));function GPe(t){var e,n=1,r=.001,i=1-Math.pow(r,1/300),s=0,o=.6,u=new Map,a=nne(f),l=Jte("tick","end"),c=UPe();t==null&&(t=[]);function f(){x(),l.call("tick",e),n<r&&(a.stop(),l.call("end",e))}function x(m){var g,y=t.length,E;m===void 0&&(m=1);for(var A=0;A<m;++A)for(n+=(s-n)*i,u.forEach(function(S){S(n)}),g=0;g<y;++g)E=t[g],E.fx==null?E.x+=E.vx*=o:(E.x=E.fx,E.vx=0),E.fy==null?E.y+=E.vy*=o:(E.y=E.fy,E.vy=0);return e}function h(){for(var m=0,g=t.length,y;m<g;++m){if(y=t[m],y.index=m,y.fx!=null&&(y.x=y.fx),y.fy!=null&&(y.y=y.fy),isNaN(y.x)||isNaN(y.y)){var E=zPe*Math.sqrt(.5+m),A=m*QPe;y.x=E*Math.cos(A),y.y=E*Math.sin(A)}(isNaN(y.vx)||isNaN(y.vy))&&(y.vx=y.vy=0)}}function p(m){return m.initialize&&m.initialize(t,c),m}return h(),e={tick:x,restart:function(){return a.restart(f),e},stop:function(){return a.stop(),e},nodes:function(m){return arguments.length?(t=m,h(),u.forEach(p),e):t},alpha:function(m){return arguments.length?(n=+m,e):n},alphaMin:function(m){return arguments.length?(r=+m,e):r},alphaDecay:function(m){return arguments.length?(i=+m,e):+i},alphaTarget:function(m){return arguments.length?(s=+m,e):s},velocityDecay:function(m){return arguments.length?(o=1-m,e):1-o},randomSource:function(m){return arguments.length?(c=m,u.forEach(p),e):c},force:function(m,g){return arguments.length>1?(g==null?u.delete(m):u.set(m,p(g)),e):u.get(m)},find:function(m,g,y){var E=0,A=t.length,S,v,_,C,b;for(y==null?y=1/0:y*=y,E=0;E<A;++E)C=t[E],S=m-C.x,v=g-C.y,_=S*S+v*v,_<y&&(b=C,y=_);return b},on:function(m,g){return arguments.length>1?(l.on(m,g),e):l.on(m)}}}function WPe(){var t,e,n,r,i=wi(-30),s,o=1,u=1/0,a=.81;function l(h){var p,m=t.length,g=n6(t,qPe,HPe).visitAfter(f);for(r=h,p=0;p<m;++p)e=t[p],g.visit(x)}function c(){if(t){var h,p=t.length,m;for(s=new Array(p),h=0;h<p;++h)m=t[h],s[m.index]=+i(m,h,t)}}function f(h){var p=0,m,g,y=0,E,A,S;if(h.length){for(E=A=S=0;S<4;++S)(m=h[S])&&(g=Math.abs(m.value))&&(p+=m.value,y+=g,E+=g*m.x,A+=g*m.y);h.x=E/y,h.y=A/y}else{m=h,m.x=m.data.x,m.y=m.data.y;do p+=s[m.data.index];while(m=m.next)}h.value=p}function x(h,p,m,g){if(!h.value)return!0;var y=h.x-e.x,E=h.y-e.y,A=g-p,S=y*y+E*E;if(A*A/a<S)return S<u&&(y===0&&(y=vc(n),S+=y*y),E===0&&(E=vc(n),S+=E*E),S<o&&(S=Math.sqrt(o*S)),e.vx+=y*h.value*r/S,e.vy+=E*h.value*r/S),!0;if(h.length||S>=u)return;(h.data!==e||h.next)&&(y===0&&(y=vc(n),S+=y*y),E===0&&(E=vc(n),S+=E*E),S<o&&(S=Math.sqrt(o*S)));do h.data!==e&&(A=s[h.data.index]*r/S,e.vx+=y*A,e.vy+=E*A);while(h=h.next)}return l.initialize=function(h,p){t=h,n=p,c()},l.strength=function(h){return arguments.length?(i=typeof h=="function"?h:wi(+h),c(),l):i},l.distanceMin=function(h){return arguments.length?(o=h*h,l):Math.sqrt(o)},l.distanceMax=function(h){return arguments.length?(u=h*h,l):Math.sqrt(u)},l.theta=function(h){return arguments.length?(a=h*h,l):Math.sqrt(a)},l}function VPe(t){var e=wi(.1),n,r,i;typeof t!="function"&&(t=wi(t==null?0:+t));function s(u){for(var a=0,l=n.length,c;a<l;++a)c=n[a],c.vx+=(i[a]-c.x)*r[a]*u}function o(){if(n){var u,a=n.length;for(r=new Array(a),i=new Array(a),u=0;u<a;++u)r[u]=isNaN(i[u]=+t(n[u],u,n))?0:+e(n[u],u,n)}}return s.initialize=function(u){n=u,o()},s.strength=function(u){return arguments.length?(e=typeof u=="function"?u:wi(+u),o(),s):e},s.x=function(u){return arguments.length?(t=typeof u=="function"?u:wi(+u),o(),s):t},s}function YPe(t){var e=wi(.1),n,r,i;typeof t!="function"&&(t=wi(t==null?0:+t));function s(u){for(var a=0,l=n.length,c;a<l;++a)c=n[a],c.vy+=(i[a]-c.y)*r[a]*u}function o(){if(n){var u,a=n.length;for(r=new Array(a),i=new Array(a),u=0;u<a;++u)r[u]=isNaN(i[u]=+t(n[u],u,n))?0:+e(n[u],u,n)}}return s.initialize=function(u){n=u,o()},s.strength=function(u){return arguments.length?(e=typeof u=="function"?u:wi(+u),o(),s):e},s.y=function(u){return arguments.length?(t=typeof u=="function"?u:wi(+u),o(),s):t},s}const sne={center:lPe,collide:OPe,nbody:WPe,link:DPe,x:VPe,y:YPe},_E="forces",o6=["alpha","alphaMin","alphaTarget","velocityDecay","forces"],XPe=["static","iterations"],one=["x","y","vx","vy"];function u6(t){pe.call(this,null,t)}u6.Definition={type:"Force",metadata:{modifies:!0},params:[{name:"static",type:"boolean",default:!1},{name:"restart",type:"boolean",default:!1},{name:"iterations",type:"number",default:300},{name:"alpha",type:"number",default:1},{name:"alphaMin",type:"number",default:.001},{name:"alphaTarget",type:"number",default:0},{name:"velocityDecay",type:"number",default:.4},{name:"forces",type:"param",array:!0,params:[{key:{force:"center"},params:[{name:"x",type:"number",default:0},{name:"y",type:"number",default:0}]},{key:{force:"collide"},params:[{name:"radius",type:"number",expr:!0},{name:"strength",type:"number",default:.7},{name:"iterations",type:"number",default:1}]},{key:{force:"nbody"},params:[{name:"strength",type:"number",default:-30},{name:"theta",type:"number",default:.9},{name:"distanceMin",type:"number",default:1},{name:"distanceMax",type:"number"}]},{key:{force:"link"},params:[{name:"links",type:"data"},{name:"id",type:"field"},{name:"distance",type:"number",default:30,expr:!0},{name:"strength",type:"number",expr:!0},{name:"iterations",type:"number",default:1}]},{key:{force:"x"},params:[{name:"strength",type:"number",default:.1},{name:"x",type:"field"}]},{key:{force:"y"},params:[{name:"strength",type:"number",default:.1},{name:"y",type:"field"}]}]},{name:"as",type:"string",array:!0,modify:!1,default:one}]},Fe(u6,pe,{transform(t,e){var n=this.value,r=e.changed(e.ADD_REM),i=t.modified(o6),s=t.iterations||300;if(n?(r&&(e.modifies("index"),n.nodes(e.source)),(i||e.changed(e.MOD))&&une(n,t,0,e)):(this.value=n=JPe(e.source,t),n.on("tick",KPe(e.dataflow,this)),t.static||(r=!0,n.tick()),e.modifies("index")),i||r||t.modified(XPe)||e.changed()&&t.restart){if(n.alpha(Math.max(n.alpha(),t.alpha||1)).alphaDecay(1-Math.pow(n.alphaMin(),1/s)),t.static)for(n.stop();--s>=0;)n.tick();else if(n.stopped()&&n.restart(),!r)return e.StopPropagation}return this.finish(t,e)},finish(t,e){const n=e.dataflow;for(let u=this._argops,a=0,l=u.length,c;a<l;++a)if(c=u[a],!(c.name!==_E||c.op._argval.force!=="link")){for(var r=c.op._argops,i=0,s=r.length,o;i<s;++i)if(r[i].name==="links"&&(o=r[i].op.source)){n.pulse(o,n.changeset().reflow());break}}return e.reflow(t.modified()).modifies(one)}});function KPe(t,e){return()=>t.touch(e).run()}function JPe(t,e){const n=GPe(t),r=n.stop,i=n.restart;let s=!1;return n.stopped=()=>s,n.restart=()=>(s=!1,i()),n.stop=()=>(s=!0,r()),une(n,e,!0).on("end",()=>s=!0)}function une(t,e,n,r){var i=Pe(e.forces),s,o,u,a;for(s=0,o=o6.length;s<o;++s)u=o6[s],u!==_E&&e.modified(u)&&t[u](e[u]);for(s=0,o=i.length;s<o;++s)a=_E+s,u=n||e.modified(_E,s)?eMe(i[s]):r&&ZPe(i[s],r)?t.force(a):null,u&&t.force(a,u);for(o=t.numForces||0;s<o;++s)t.force(_E+s,null);return t.numForces=i.length,t}function ZPe(t,e){var n,r;for(n in t)if(ct(r=t[n])&&e.modified(gi(r)))return 1;return 0}function eMe(t){var e,n;Je(sne,t.force)||ve("Unrecognized force: "+t.force),e=sne[t.force]();for(n in t)ct(e[n])&&tMe(e[n],t[n],t);return e}function tMe(t,e,n){t(ct(e)?r=>e(r,n):e)}const nMe=Object.freeze(Object.defineProperty({__proto__:null,force:u6},Symbol.toStringTag,{value:"Module"}));function rMe(t,e){return t.parent===e.parent?1:2}function iMe(t){return t.reduce(sMe,0)/t.length}function sMe(t,e){return t+e.x}function oMe(t){return 1+t.reduce(uMe,0)}function uMe(t,e){return Math.max(t,e.y)}function aMe(t){for(var e;e=t.children;)t=e[0];return t}function lMe(t){for(var e;e=t.children;)t=e[e.length-1];return t}function cMe(){var t=rMe,e=1,n=1,r=!1;function i(s){var o,u=0;s.eachAfter(function(x){var h=x.children;h?(x.x=iMe(h),x.y=oMe(h)):(x.x=o?u+=t(x,o):0,x.y=0,o=x)});var a=aMe(s),l=lMe(s),c=a.x-t(a,l)/2,f=l.x+t(l,a)/2;return s.eachAfter(r?function(x){x.x=(x.x-s.x)*e,x.y=(s.y-x.y)*n}:function(x){x.x=(x.x-c)/(f-c)*e,x.y=(1-(s.y?x.y/s.y:1))*n})}return i.separation=function(s){return arguments.length?(t=s,i):t},i.size=function(s){return arguments.length?(r=!1,e=+s[0],n=+s[1],i):r?null:[e,n]},i.nodeSize=function(s){return arguments.length?(r=!0,e=+s[0],n=+s[1],i):r?[e,n]:null},i}function fMe(t){var e=0,n=t.children,r=n&&n.length;if(!r)e=1;else for(;--r>=0;)e+=n[r].value;t.value=e}function xMe(){return this.eachAfter(fMe)}function dMe(t,e){let n=-1;for(const r of this)t.call(e,r,++n,this);return this}function hMe(t,e){for(var n=this,r=[n],i,s,o=-1;n=r.pop();)if(t.call(e,n,++o,this),i=n.children)for(s=i.length-1;s>=0;--s)r.push(i[s]);return this}function pMe(t,e){for(var n=this,r=[n],i=[],s,o,u,a=-1;n=r.pop();)if(i.push(n),s=n.children)for(o=0,u=s.length;o<u;++o)r.push(s[o]);for(;n=i.pop();)t.call(e,n,++a,this);return this}function gMe(t,e){let n=-1;for(const r of this)if(t.call(e,r,++n,this))return r}function mMe(t){return this.eachAfter(function(e){for(var n=+t(e.data)||0,r=e.children,i=r&&r.length;--i>=0;)n+=r[i].value;e.value=n})}function yMe(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})}function EMe(t){for(var e=this,n=AMe(e,t),r=[e];e!==n;)e=e.parent,r.push(e);for(var i=r.length;t!==n;)r.splice(i,0,t),t=t.parent;return r}function AMe(t,e){if(t===e)return t;var n=t.ancestors(),r=e.ancestors(),i=null;for(t=n.pop(),e=r.pop();t===e;)i=t,t=n.pop(),e=r.pop();return i}function SMe(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e}function vMe(){return Array.from(this)}function _Me(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t}function CMe(){var t=this,e=[];return t.each(function(n){n!==t&&e.push({source:n.parent,target:n})}),e}function*bMe(){var t=this,e,n=[t],r,i,s;do for(e=n.reverse(),n=[];t=e.pop();)if(yield t,r=t.children)for(i=0,s=r.length;i<s;++i)n.push(r[i]);while(n.length)}function a6(t,e){t instanceof Map?(t=[void 0,t],e===void 0&&(e=OMe)):e===void 0&&(e=RMe);for(var n=new t2(t),r,i=[n],s,o,u,a;r=i.pop();)if((o=e(r.data))&&(a=(o=Array.from(o)).length))for(r.children=o,u=a-1;u>=0;--u)i.push(s=o[u]=new t2(o[u])),s.parent=r,s.depth=r.depth+1;return n.eachBefore(ane)}function TMe(){return a6(this).eachBefore(NMe)}function RMe(t){return t.children}function OMe(t){return Array.isArray(t)?t[1]:null}function NMe(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function ane(t){var e=0;do t.height=e;while((t=t.parent)&&t.height<++e)}function t2(t){this.data=t,this.depth=this.height=0,this.parent=null}t2.prototype=a6.prototype={constructor:t2,count:xMe,each:dMe,eachAfter:pMe,eachBefore:hMe,find:gMe,sum:mMe,sort:yMe,path:EMe,ancestors:SMe,descendants:vMe,leaves:_Me,links:CMe,copy:TMe,[Symbol.iterator]:bMe};function HR(t){return t==null?null:lne(t)}function lne(t){if(typeof t!="function")throw new Error;return t}function td(){return 0}function n2(t){return function(){return t}}const DMe=1664525,FMe=1013904223,cne=4294967296;function wMe(){let t=1;return()=>(t=(DMe*t+FMe)%cne)/cne}function LMe(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function IMe(t,e){let n=t.length,r,i;for(;n;)i=e()*n--|0,r=t[n],t[n]=t[i],t[i]=r;return t}function $Me(t,e){for(var n=0,r=(t=IMe(Array.from(t),e)).length,i=[],s,o;n<r;)s=t[n],o&&fne(o,s)?++n:(o=kMe(i=BMe(i,s)),n=0);return o}function BMe(t,e){var n,r;if(l6(e,t))return[e];for(n=0;n<t.length;++n)if(zR(e,t[n])&&l6(CE(t[n],e),t))return[t[n],e];for(n=0;n<t.length-1;++n)for(r=n+1;r<t.length;++r)if(zR(CE(t[n],t[r]),e)&&zR(CE(t[n],e),t[r])&&zR(CE(t[r],e),t[n])&&l6(xne(t[n],t[r],e),t))return[t[n],t[r],e];throw new Error}function zR(t,e){var n=t.r-e.r,r=e.x-t.x,i=e.y-t.y;return n<0||n*n<r*r+i*i}function fne(t,e){var n=t.r-e.r+Math.max(t.r,e.r,1)*1e-9,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function l6(t,e){for(var n=0;n<e.length;++n)if(!fne(t,e[n]))return!1;return!0}function kMe(t){switch(t.length){case 1:return PMe(t[0]);case 2:return CE(t[0],t[1]);case 3:return xne(t[0],t[1],t[2])}}function PMe(t){return{x:t.x,y:t.y,r:t.r}}function CE(t,e){var n=t.x,r=t.y,i=t.r,s=e.x,o=e.y,u=e.r,a=s-n,l=o-r,c=u-i,f=Math.sqrt(a*a+l*l);return{x:(n+s+a/f*c)/2,y:(r+o+l/f*c)/2,r:(f+i+u)/2}}function xne(t,e,n){var r=t.x,i=t.y,s=t.r,o=e.x,u=e.y,a=e.r,l=n.x,c=n.y,f=n.r,x=r-o,h=r-l,p=i-u,m=i-c,g=a-s,y=f-s,E=r*r+i*i-s*s,A=E-o*o-u*u+a*a,S=E-l*l-c*c+f*f,v=h*p-x*m,_=(p*S-m*A)/(v*2)-r,C=(m*g-p*y)/v,b=(h*A-x*S)/(v*2)-i,R=(x*y-h*g)/v,O=C*C+R*R-1,L=2*(s+_*C+b*R),M=_*_+b*b-s*s,q=-(Math.abs(O)>1e-6?(L+Math.sqrt(L*L-4*O*M))/(2*O):M/L);return{x:r+_+C*q,y:i+b+R*q,r:q}}function dne(t,e,n){var r=t.x-e.x,i,s,o=t.y-e.y,u,a,l=r*r+o*o;l?(s=e.r+n.r,s*=s,a=t.r+n.r,a*=a,s>a?(i=(l+a-s)/(2*l),u=Math.sqrt(Math.max(0,a/l-i*i)),n.x=t.x-i*r-u*o,n.y=t.y-i*o+u*r):(i=(l+s-a)/(2*l),u=Math.sqrt(Math.max(0,s/l-i*i)),n.x=e.x+i*r-u*o,n.y=e.y+i*o+u*r)):(n.x=e.x+n.r,n.y=e.y)}function hne(t,e){var n=t.r+e.r-1e-6,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function pne(t){var e=t._,n=t.next._,r=e.r+n.r,i=(e.x*n.r+n.x*e.r)/r,s=(e.y*n.r+n.y*e.r)/r;return i*i+s*s}function QR(t){this._=t,this.next=null,this.previous=null}function MMe(t,e){if(!(s=(t=LMe(t)).length))return 0;var n,r,i,s,o,u,a,l,c,f,x;if(n=t[0],n.x=0,n.y=0,!(s>1))return n.r;if(r=t[1],n.x=-r.r,r.x=n.r,r.y=0,!(s>2))return n.r+r.r;dne(r,n,i=t[2]),n=new QR(n),r=new QR(r),i=new QR(i),n.next=i.previous=r,r.next=n.previous=i,i.next=r.previous=n;e:for(a=3;a<s;++a){dne(n._,r._,i=t[a]),i=new QR(i),l=r.next,c=n.previous,f=r._.r,x=n._.r;do if(f<=x){if(hne(l._,i._)){r=l,n.next=r,r.previous=n,--a;continue e}f+=l._.r,l=l.next}else{if(hne(c._,i._)){n=c,n.next=r,r.previous=n,--a;continue e}x+=c._.r,c=c.previous}while(l!==c.next);for(i.previous=n,i.next=r,n.next=r.previous=r=i,o=pne(n);(i=i.next)!==r;)(u=pne(i))<o&&(n=i,o=u);r=n.next}for(n=[r._],i=r;(i=i.next)!==r;)n.push(i._);for(i=$Me(n,e),a=0;a<s;++a)n=t[a],n.x-=i.x,n.y-=i.y;return i.r}function jMe(t){return Math.sqrt(t.value)}function UMe(){var t=null,e=1,n=1,r=td;function i(s){const o=wMe();return s.x=e/2,s.y=n/2,t?s.eachBefore(gne(t)).eachAfter(c6(r,.5,o)).eachBefore(mne(1)):s.eachBefore(gne(jMe)).eachAfter(c6(td,1,o)).eachAfter(c6(r,s.r/Math.min(e,n),o)).eachBefore(mne(Math.min(e,n)/(2*s.r))),s}return i.radius=function(s){return arguments.length?(t=HR(s),i):t},i.size=function(s){return arguments.length?(e=+s[0],n=+s[1],i):[e,n]},i.padding=function(s){return arguments.length?(r=typeof s=="function"?s:n2(+s),i):r},i}function gne(t){return function(e){e.children||(e.r=Math.max(0,+t(e)||0))}}function c6(t,e,n){return function(r){if(i=r.children){var i,s,o=i.length,u=t(r)*e||0,a;if(u)for(s=0;s<o;++s)i[s].r+=u;if(a=MMe(i,n),u)for(s=0;s<o;++s)i[s].r-=u;r.r=a+u}}}function mne(t){return function(e){var n=e.parent;e.r*=t,n&&(e.x=n.x+t*e.x,e.y=n.y+t*e.y)}}function yne(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function bE(t,e,n,r,i){for(var s=t.children,o,u=-1,a=s.length,l=t.value&&(r-e)/t.value;++u<a;)o=s[u],o.y0=n,o.y1=i,o.x0=e,o.x1=e+=o.value*l}function qMe(){var t=1,e=1,n=0,r=!1;function i(o){var u=o.height+1;return o.x0=o.y0=n,o.x1=t,o.y1=e/u,o.eachBefore(s(e,u)),r&&o.eachBefore(yne),o}function s(o,u){return function(a){a.children&&bE(a,a.x0,o*(a.depth+1)/u,a.x1,o*(a.depth+2)/u);var l=a.x0,c=a.y0,f=a.x1-n,x=a.y1-n;f<l&&(l=f=(l+f)/2),x<c&&(c=x=(c+x)/2),a.x0=l,a.y0=c,a.x1=f,a.y1=x}}return i.round=function(o){return arguments.length?(r=!!o,i):r},i.size=function(o){return arguments.length?(t=+o[0],e=+o[1],i):[t,e]},i.padding=function(o){return arguments.length?(n=+o,i):n},i}var HMe={depth:-1},Ene={},f6={};function zMe(t){return t.id}function QMe(t){return t.parentId}function Ane(){var t=zMe,e=QMe,n;function r(i){var s=Array.from(i),o=t,u=e,a,l,c,f,x,h,p,m,g=new Map;if(n!=null){const y=s.map((S,v)=>GMe(n(S,v,i))),E=y.map(Sne),A=new Set(y).add("");for(const S of E)A.has(S)||(A.add(S),y.push(S),E.push(Sne(S)),s.push(f6));o=(S,v)=>y[v],u=(S,v)=>E[v]}for(c=0,a=s.length;c<a;++c)l=s[c],h=s[c]=new t2(l),(p=o(l,c,i))!=null&&(p+="")&&(m=h.id=p,g.set(m,g.has(m)?Ene:h)),(p=u(l,c,i))!=null&&(p+="")&&(h.parent=p);for(c=0;c<a;++c)if(h=s[c],p=h.parent){if(x=g.get(p),!x)throw new Error("missing: "+p);if(x===Ene)throw new Error("ambiguous: "+p);x.children?x.children.push(h):x.children=[h],h.parent=x}else{if(f)throw new Error("multiple roots");f=h}if(!f)throw new Error("no root");if(n!=null){for(;f.data===f6&&f.children.length===1;)f=f.children[0],--a;for(let y=s.length-1;y>=0&&(h=s[y],h.data===f6);--y)h.data=null}if(f.parent=HMe,f.eachBefore(function(y){y.depth=y.parent.depth+1,--a}).eachBefore(ane),f.parent=null,a>0)throw new Error("cycle");return f}return r.id=function(i){return arguments.length?(t=HR(i),r):t},r.parentId=function(i){return arguments.length?(e=HR(i),r):e},r.path=function(i){return arguments.length?(n=HR(i),r):n},r}function GMe(t){t=`${t}`;let e=t.length;return x6(t,e-1)&&!x6(t,e-2)&&(t=t.slice(0,-1)),t[0]==="/"?t:`/${t}`}function Sne(t){let e=t.length;if(e<2)return"";for(;--e>1&&!x6(t,e););return t.slice(0,e)}function x6(t,e){if(t[e]==="/"){let n=0;for(;e>0&&t[--e]==="\\";)++n;if(!(n&1))return!0}return!1}function WMe(t,e){return t.parent===e.parent?1:2}function d6(t){var e=t.children;return e?e[0]:t.t}function h6(t){var e=t.children;return e?e[e.length-1]:t.t}function VMe(t,e,n){var r=n/(e.i-t.i);e.c-=r,e.s+=n,t.c+=r,e.z+=n,e.m+=n}function YMe(t){for(var e=0,n=0,r=t.children,i=r.length,s;--i>=0;)s=r[i],s.z+=e,s.m+=e,e+=s.s+(n+=s.c)}function XMe(t,e,n){return t.a.parent===e.parent?t.a:n}function GR(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}GR.prototype=Object.create(t2.prototype);function KMe(t){for(var e=new GR(t,0),n,r=[e],i,s,o,u;n=r.pop();)if(s=n._.children)for(n.children=new Array(u=s.length),o=u-1;o>=0;--o)r.push(i=n.children[o]=new GR(s[o],o)),i.parent=n;return(e.parent=new GR(null,0)).children=[e],e}function JMe(){var t=WMe,e=1,n=1,r=null;function i(l){var c=KMe(l);if(c.eachAfter(s),c.parent.m=-c.z,c.eachBefore(o),r)l.eachBefore(a);else{var f=l,x=l,h=l;l.eachBefore(function(E){E.x<f.x&&(f=E),E.x>x.x&&(x=E),E.depth>h.depth&&(h=E)});var p=f===x?1:t(f,x)/2,m=p-f.x,g=e/(x.x+p+m),y=n/(h.depth||1);l.eachBefore(function(E){E.x=(E.x+m)*g,E.y=E.depth*y})}return l}function s(l){var c=l.children,f=l.parent.children,x=l.i?f[l.i-1]:null;if(c){YMe(l);var h=(c[0].z+c[c.length-1].z)/2;x?(l.z=x.z+t(l._,x._),l.m=l.z-h):l.z=h}else x&&(l.z=x.z+t(l._,x._));l.parent.A=u(l,x,l.parent.A||f[0])}function o(l){l._.x=l.z+l.parent.m,l.m+=l.parent.m}function u(l,c,f){if(c){for(var x=l,h=l,p=c,m=x.parent.children[0],g=x.m,y=h.m,E=p.m,A=m.m,S;p=h6(p),x=d6(x),p&&x;)m=d6(m),h=h6(h),h.a=l,S=p.z+E-x.z-g+t(p._,x._),S>0&&(VMe(XMe(p,l,f),l,S),g+=S,y+=S),E+=p.m,g+=x.m,A+=m.m,y+=h.m;p&&!h6(h)&&(h.t=p,h.m+=E-y),x&&!d6(m)&&(m.t=x,m.m+=g-A,f=l)}return f}function a(l){l.x*=e,l.y=l.depth*n}return i.separation=function(l){return arguments.length?(t=l,i):t},i.size=function(l){return arguments.length?(r=!1,e=+l[0],n=+l[1],i):r?null:[e,n]},i.nodeSize=function(l){return arguments.length?(r=!0,e=+l[0],n=+l[1],i):r?[e,n]:null},i}function WR(t,e,n,r,i){for(var s=t.children,o,u=-1,a=s.length,l=t.value&&(i-n)/t.value;++u<a;)o=s[u],o.x0=e,o.x1=r,o.y0=n,o.y1=n+=o.value*l}var vne=(1+Math.sqrt(5))/2;function _ne(t,e,n,r,i,s){for(var o=[],u=e.children,a,l,c=0,f=0,x=u.length,h,p,m=e.value,g,y,E,A,S,v,_;c<x;){h=i-n,p=s-r;do g=u[f++].value;while(!g&&f<x);for(y=E=g,v=Math.max(p/h,h/p)/(m*t),_=g*g*v,S=Math.max(E/_,_/y);f<x;++f){if(g+=l=u[f].value,l<y&&(y=l),l>E&&(E=l),_=g*g*v,A=Math.max(E/_,_/y),A>S){g-=l;break}S=A}o.push(a={value:g,dice:h<p,children:u.slice(c,f)}),a.dice?bE(a,n,r,i,m?r+=p*g/m:s):WR(a,n,r,m?n+=h*g/m:i,s),m-=g,c=f}return o}const Cne=function t(e){function n(r,i,s,o,u){_ne(e,r,i,s,o,u)}return n.ratio=function(r){return t((r=+r)>1?r:1)},n}(vne);function ZMe(){var t=Cne,e=!1,n=1,r=1,i=[0],s=td,o=td,u=td,a=td,l=td;function c(x){return x.x0=x.y0=0,x.x1=n,x.y1=r,x.eachBefore(f),i=[0],e&&x.eachBefore(yne),x}function f(x){var h=i[x.depth],p=x.x0+h,m=x.y0+h,g=x.x1-h,y=x.y1-h;g<p&&(p=g=(p+g)/2),y<m&&(m=y=(m+y)/2),x.x0=p,x.y0=m,x.x1=g,x.y1=y,x.children&&(h=i[x.depth+1]=s(x)/2,p+=l(x)-h,m+=o(x)-h,g-=u(x)-h,y-=a(x)-h,g<p&&(p=g=(p+g)/2),y<m&&(m=y=(m+y)/2),t(x,p,m,g,y))}return c.round=function(x){return arguments.length?(e=!!x,c):e},c.size=function(x){return arguments.length?(n=+x[0],r=+x[1],c):[n,r]},c.tile=function(x){return arguments.length?(t=lne(x),c):t},c.padding=function(x){return arguments.length?c.paddingInner(x).paddingOuter(x):c.paddingInner()},c.paddingInner=function(x){return arguments.length?(s=typeof x=="function"?x:n2(+x),c):s},c.paddingOuter=function(x){return arguments.length?c.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x):c.paddingTop()},c.paddingTop=function(x){return arguments.length?(o=typeof x=="function"?x:n2(+x),c):o},c.paddingRight=function(x){return arguments.length?(u=typeof x=="function"?x:n2(+x),c):u},c.paddingBottom=function(x){return arguments.length?(a=typeof x=="function"?x:n2(+x),c):a},c.paddingLeft=function(x){return arguments.length?(l=typeof x=="function"?x:n2(+x),c):l},c}function e9e(t,e,n,r,i){var s=t.children,o,u=s.length,a,l=new Array(u+1);for(l[0]=a=o=0;o<u;++o)l[o+1]=a+=s[o].value;c(0,u,t.value,e,n,r,i);function c(f,x,h,p,m,g,y){if(f>=x-1){var E=s[f];E.x0=p,E.y0=m,E.x1=g,E.y1=y;return}for(var A=l[f],S=h/2+A,v=f+1,_=x-1;v<_;){var C=v+_>>>1;l[C]<S?v=C+1:_=C}S-l[v-1]<l[v]-S&&f+1<v&&--v;var b=l[v]-A,R=h-b;if(g-p>y-m){var O=h?(p*R+g*b)/h:g;c(f,v,b,p,m,O,y),c(v,x,R,O,m,g,y)}else{var L=h?(m*R+y*b)/h:y;c(f,v,b,p,m,g,L),c(v,x,R,p,L,g,y)}}}function t9e(t,e,n,r,i){(t.depth&1?WR:bE)(t,e,n,r,i)}const n9e=function t(e){function n(r,i,s,o,u){if((a=r._squarify)&&a.ratio===e)for(var a,l,c,f,x=-1,h,p=a.length,m=r.value;++x<p;){for(l=a[x],c=l.children,f=l.value=0,h=c.length;f<h;++f)l.value+=c[f].value;l.dice?bE(l,i,s,o,m?s+=(u-s)*l.value/m:u):WR(l,i,s,m?i+=(o-i)*l.value/m:o,u),m-=l.value}else r._squarify=a=_ne(e,r,i,s,o,u),a.ratio=e}return n.ratio=function(r){return t((r=+r)>1?r:1)},n}(vne);function p6(t,e,n){const r={};return t.each(i=>{const s=i.data;n(s)&&(r[e(s)]=i)}),t.lookup=r,t}function g6(t){pe.call(this,null,t)}g6.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const r9e=t=>t.values;Fe(g6,pe,{transform(t,e){e.source||ve("Nest transform requires an upstream data source.");var n=t.generate,r=t.modified(),i=e.clone(),s=this.value;return(!s||r||e.changed())&&(s&&s.each(o=>{o.children&&O5(o.data)&&i.rem.push(o.data)}),this.value=s=a6({values:Pe(t.keys).reduce((o,u)=>(o.key(u),o),i9e()).entries(i.source)},r9e),n&&s.each(o=>{o.children&&(o=Lt(o.data),i.add.push(o),i.source.push(o))}),p6(s,Ze,Ze)),i.source.root=s,i}});function i9e(){const t=[],e={entries:i=>r(n(i,0),0),key:i=>(t.push(i),e)};function n(i,s){if(s>=t.length)return i;const o=i.length,u=t[s++],a={},l={};let c=-1,f,x,h;for(;++c<o;)f=u(x=i[c])+"",(h=a[f])?h.push(x):a[f]=[x];for(f in a)l[f]=n(a[f],s);return l}function r(i,s){if(++s>t.length)return i;const o=[];for(const u in i)o.push({key:u,values:r(i[u],s)});return o}return e}function Bl(t){pe.call(this,null,t)}const s9e=(t,e)=>t.parent===e.parent?1:2;Fe(Bl,pe,{transform(t,e){(!e.source||!e.source.root)&&ve(this.constructor.name+" transform requires a backing tree data source.");const n=this.layout(t.method),r=this.fields,i=e.source.root,s=t.as||r;t.field?i.sum(t.field):i.count(),t.sort&&i.sort(Nx(t.sort,o=>o.data)),o9e(n,this.params,t),n.separation&&n.separation(t.separation!==!1?s9e:ty);try{this.value=n(i)}catch(o){ve(o)}return i.each(o=>u9e(o,r,s)),e.reflow(t.modified()).modifies(s).modifies("leaf")}});function o9e(t,e,n){for(let r,i=0,s=e.length;i<s;++i)r=e[i],r in n&&t[r](n[r])}function u9e(t,e,n){const r=t.data,i=e.length-1;for(let s=0;s<i;++s)r[n[s]]=t[e[s]];r[n[i]]=t.children?t.children.length:0}const m6=["x","y","r","depth","children"];function y6(t){Bl.call(this,t)}y6.Definition={type:"Pack",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"radius",type:"field",default:null},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:m6.length,default:m6}]},Fe(y6,Bl,{layout:UMe,params:["radius","size","padding"],fields:m6});const E6=["x0","y0","x1","y1","depth","children"];function A6(t){Bl.call(this,t)}A6.Definition={type:"Partition",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:E6.length,default:E6}]},Fe(A6,Bl,{layout:qMe,params:["size","round","padding"],fields:E6});function S6(t){pe.call(this,null,t)}S6.Definition={type:"Stratify",metadata:{treesource:!0},params:[{name:"key",type:"field",required:!0},{name:"parentKey",type:"field",required:!0}]},Fe(S6,pe,{transform(t,e){e.source||ve("Stratify transform requires an upstream data source.");let n=this.value;const r=t.modified(),i=e.fork(e.ALL).materialize(e.SOURCE),s=!n||r||e.changed(e.ADD_REM)||e.modified(t.key.fields)||e.modified(t.parentKey.fields);return i.source=i.source.slice(),s&&(n=i.source.length?p6(Ane().id(t.key).parentId(t.parentKey)(i.source),t.key,Go):p6(Ane()([{}]),t.key,t.key)),i.source.root=this.value=n,i}});const bne={tidy:JMe,cluster:cMe},v6=["x","y","depth","children"];function _6(t){Bl.call(this,t)}_6.Definition={type:"Tree",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"tidy",values:["tidy","cluster"]},{name:"size",type:"number",array:!0,length:2},{name:"nodeSize",type:"number",array:!0,length:2},{name:"separation",type:"boolean",default:!0},{name:"as",type:"string",array:!0,length:v6.length,default:v6}]},Fe(_6,Bl,{layout(t){const e=t||"tidy";if(Je(bne,e))return bne[e]();ve("Unrecognized Tree layout method: "+e)},params:["size","nodeSize"],fields:v6});function C6(t){pe.call(this,[],t)}C6.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},Fe(C6,pe,{transform(t,e){const n=this.value,r=e.source&&e.source.root,i=e.fork(e.NO_SOURCE),s={};return r||ve("TreeLinks transform requires a tree data source."),e.changed(e.ADD_REM)?(i.rem=n,e.visit(e.SOURCE,o=>s[Ze(o)]=1),r.each(o=>{const u=o.data,a=o.parent&&o.parent.data;a&&s[Ze(u)]&&s[Ze(a)]&&i.add.push(Lt({source:a,target:u}))}),this.value=i.add):e.changed(e.MOD)&&(e.visit(e.MOD,o=>s[Ze(o)]=1),n.forEach(o=>{(s[Ze(o.source)]||s[Ze(o.target)])&&i.mod.push(o)})),i}});const Tne={binary:e9e,dice:bE,slice:WR,slicedice:t9e,squarify:Cne,resquarify:n9e},b6=["x0","y0","x1","y1","depth","children"];function T6(t){Bl.call(this,t)}T6.Definition={type:"Treemap",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"squarify",values:["squarify","resquarify","binary","dice","slice","slicedice"]},{name:"padding",type:"number",default:0},{name:"paddingInner",type:"number",default:0},{name:"paddingOuter",type:"number",default:0},{name:"paddingTop",type:"number",default:0},{name:"paddingRight",type:"number",default:0},{name:"paddingBottom",type:"number",default:0},{name:"paddingLeft",type:"number",default:0},{name:"ratio",type:"number",default:1.618033988749895},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:b6.length,default:b6}]},Fe(T6,Bl,{layout(){const t=ZMe();return t.ratio=e=>{const n=t.tile();n.ratio&&t.tile(n.ratio(e))},t.method=e=>{Je(Tne,e)?t.tile(Tne[e]):ve("Unrecognized Treemap layout method: "+e)},t},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:b6});const a9e=Object.freeze(Object.defineProperty({__proto__:null,nest:g6,pack:y6,partition:A6,stratify:S6,tree:_6,treelinks:C6,treemap:T6},Symbol.toStringTag,{value:"Module"})),R6=4278190080;function l9e(t,e){const n=t.bitmap();return(e||[]).forEach(r=>n.set(t(r.boundary[0]),t(r.boundary[3]))),[n,void 0]}function c9e(t,e,n,r,i){const s=t.width,o=t.height,u=r||i,a=sc(s,o).getContext("2d"),l=sc(s,o).getContext("2d"),c=u&&sc(s,o).getContext("2d");n.forEach(b=>VR(a,b,!1)),VR(l,e,!1),u&&VR(c,e,!0);const f=O6(a,s,o),x=O6(l,s,o),h=u&&O6(c,s,o),p=t.bitmap(),m=u&&t.bitmap();let g,y,E,A,S,v,_,C;for(y=0;y<o;++y)for(g=0;g<s;++g)S=y*s+g,v=f[S]&R6,C=x[S]&R6,_=u&&h[S]&R6,(v||_||C)&&(E=t(g),A=t(y),!i&&(v||C)&&p.set(E,A),u&&(v||_)&&m.set(E,A));return[p,m]}function O6(t,e,n){return new Uint32Array(t.getImageData(0,0,e,n).data.buffer)}function VR(t,e,n){if(!e.length)return;const r=e[0].mark.marktype;r==="group"?e.forEach(i=>{i.items.forEach(s=>VR(t,s.items,n))}):xo[r].draw(t,{items:n?e.map(f9e):e})}function f9e(t){const e=zb(t,{});return e.stroke&&e.strokeOpacity!==0||e.fill&&e.fillOpacity!==0?{...e,strokeOpacity:1,stroke:"#000",fillOpacity:0}:e}const kl=5,Li=31,TE=32,_c=new Uint32Array(TE+1),eu=new Uint32Array(TE+1);eu[0]=0,_c[0]=~eu[0];for(let t=1;t<=TE;++t)eu[t]=eu[t-1]<<1|1,_c[t]=~eu[t];function x9e(t,e){const n=new Uint32Array(~~((t*e+TE)/TE));function r(s,o){n[s]|=o}function i(s,o){n[s]&=o}return{array:n,get:(s,o)=>{const u=o*t+s;return n[u>>>kl]&1<<(u&Li)},set:(s,o)=>{const u=o*t+s;r(u>>>kl,1<<(u&Li))},clear:(s,o)=>{const u=o*t+s;i(u>>>kl,~(1<<(u&Li)))},getRange:(s,o,u,a)=>{let l=a,c,f,x,h;for(;l>=o;--l)if(c=l*t+s,f=l*t+u,x=c>>>kl,h=f>>>kl,x===h){if(n[x]&_c[c&Li]&eu[(f&Li)+1])return!0}else{if(n[x]&_c[c&Li]||n[h]&eu[(f&Li)+1])return!0;for(let p=x+1;p<h;++p)if(n[p])return!0}return!1},setRange:(s,o,u,a)=>{let l,c,f,x,h;for(;o<=a;++o)if(l=o*t+s,c=o*t+u,f=l>>>kl,x=c>>>kl,f===x)r(f,_c[l&Li]&eu[(c&Li)+1]);else for(r(f,_c[l&Li]),r(x,eu[(c&Li)+1]),h=f+1;h<x;++h)r(h,4294967295)},clearRange:(s,o,u,a)=>{let l,c,f,x,h;for(;o<=a;++o)if(l=o*t+s,c=o*t+u,f=l>>>kl,x=c>>>kl,f===x)i(f,eu[l&Li]|_c[(c&Li)+1]);else for(i(f,eu[l&Li]),i(x,_c[(c&Li)+1]),h=f+1;h<x;++h)i(h,0)},outOfBounds:(s,o,u,a)=>s<0||o<0||a>=e||u>=t}}function d9e(t,e,n){const r=Math.max(1,Math.sqrt(t*e/1e6)),i=~~((t+2*n+r)/r),s=~~((e+2*n+r)/r),o=u=>~~((u+n)/r);return o.invert=u=>u*r-n,o.bitmap=()=>x9e(i,s),o.ratio=r,o.padding=n,o.width=t,o.height=e,o}function h9e(t,e,n,r){const i=t.width,s=t.height;return function(o){const u=o.datum.datum.items[r].items,a=u.length,l=o.datum.fontSize,c=la.width(o.datum,o.datum.text);let f=0,x,h,p,m,g,y,E;for(let A=0;A<a;++A)x=u[A].x,p=u[A].y,h=u[A].x2===void 0?x:u[A].x2,m=u[A].y2===void 0?p:u[A].y2,g=(x+h)/2,y=(p+m)/2,E=Math.abs(h-x+m-p),E>=f&&(f=E,o.x=g,o.y=y);return g=c/2,y=l/2,x=o.x-g,h=o.x+g,p=o.y-y,m=o.y+y,o.align="center",x<0&&h<=i?o.align="left":0<=x&&i<h&&(o.align="right"),o.baseline="middle",p<0&&m<=s?o.baseline="top":0<=p&&s<m&&(o.baseline="bottom"),!0}}function YR(t,e,n,r,i,s){let o=n/2;return t-o<0||t+o>i||e-(o=r/2)<0||e+o>s}function Cc(t,e,n,r,i,s,o,u){const a=i*s/(r*2),l=t(e-a),c=t(e+a),f=t(n-(s=s/2)),x=t(n+s);return o.outOfBounds(l,f,c,x)||o.getRange(l,f,c,x)||u&&u.getRange(l,f,c,x)}function p9e(t,e,n,r){const i=t.width,s=t.height,o=e[0],u=e[1];function a(l,c,f,x,h){const p=t.invert(l),m=t.invert(c);let g=f,y=s,E;if(!YR(p,m,x,h,i,s)&&!Cc(t,p,m,h,x,g,o,u)&&!Cc(t,p,m,h,x,h,o,null)){for(;y-g>=1;)E=(g+y)/2,Cc(t,p,m,h,x,E,o,u)?y=E:g=E;if(g>f)return[p,m,g,!0]}}return function(l){const c=l.datum.datum.items[r].items,f=c.length,x=l.datum.fontSize,h=la.width(l.datum,l.datum.text);let p=n?x:0,m=!1,g=!1,y=0,E,A,S,v,_,C,b,R,O,L,M,q,W,B,G,te,K;for(let de=0;de<f;++de){for(E=c[de].x,S=c[de].y,A=c[de].x2===void 0?E:c[de].x2,v=c[de].y2===void 0?S:c[de].y2,E>A&&(K=E,E=A,A=K),S>v&&(K=S,S=v,v=K),O=t(E),M=t(A),L=~~((O+M)/2),q=t(S),B=t(v),W=~~((q+B)/2),b=L;b>=O;--b)for(R=W;R>=q;--R)te=a(b,R,p,h,x),te&&([l.x,l.y,p,m]=te);for(b=L;b<=M;++b)for(R=W;R<=B;++R)te=a(b,R,p,h,x),te&&([l.x,l.y,p,m]=te);!m&&!n&&(G=Math.abs(A-E+v-S),_=(E+A)/2,C=(S+v)/2,G>=y&&!YR(_,C,h,x,i,s)&&!Cc(t,_,C,x,h,x,o,null)&&(y=G,l.x=_,l.y=C,g=!0))}return m||g?(_=h/2,C=x/2,o.setRange(t(l.x-_),t(l.y-C),t(l.x+_),t(l.y+C)),l.align="center",l.baseline="middle",!0):!1}}const g9e=[-1,-1,1,1],m9e=[-1,1,-1,1];function y9e(t,e,n,r){const i=t.width,s=t.height,o=e[0],u=e[1],a=t.bitmap();return function(l){const c=l.datum.datum.items[r].items,f=c.length,x=l.datum.fontSize,h=la.width(l.datum,l.datum.text),p=[];let m=n?x:0,g=!1,y=!1,E=0,A,S,v,_,C,b,R,O,L,M,q,W;for(let B=0;B<f;++B){for(A=c[B].x,v=c[B].y,S=c[B].x2===void 0?A:c[B].x2,_=c[B].y2===void 0?v:c[B].y2,p.push([t((A+S)/2),t((v+_)/2)]);p.length;)if([R,O]=p.pop(),!(o.get(R,O)||u.get(R,O)||a.get(R,O))){a.set(R,O);for(let G=0;G<4;++G)C=R+g9e[G],b=O+m9e[G],a.outOfBounds(C,b,C,b)||p.push([C,b]);if(C=t.invert(R),b=t.invert(O),L=m,M=s,!YR(C,b,h,x,i,s)&&!Cc(t,C,b,x,h,L,o,u)&&!Cc(t,C,b,x,h,x,o,null)){for(;M-L>=1;)q=(L+M)/2,Cc(t,C,b,x,h,q,o,u)?M=q:L=q;L>m&&(l.x=C,l.y=b,m=L,g=!0)}}!g&&!n&&(W=Math.abs(S-A+_-v),C=(A+S)/2,b=(v+_)/2,W>=E&&!YR(C,b,h,x,i,s)&&!Cc(t,C,b,x,h,x,o,null)&&(E=W,l.x=C,l.y=b,y=!0))}return g||y?(C=h/2,b=x/2,o.setRange(t(l.x-C),t(l.y-b),t(l.x+C),t(l.y+b)),l.align="center",l.baseline="middle",!0):!1}}const E9e=["right","center","left"],A9e=["bottom","middle","top"];function S9e(t,e,n,r){const i=t.width,s=t.height,o=e[0],u=e[1],a=r.length;return function(l){const c=l.boundary,f=l.datum.fontSize;if(c[2]<0||c[5]<0||c[0]>i||c[3]>s)return!1;let x=l.textWidth??0,h,p,m,g,y,E,A,S,v,_,C,b,R,O,L;for(let M=0;M<a;++M){if(h=(n[M]&3)-1,p=(n[M]>>>2&3)-1,m=h===0&&p===0||r[M]<0,g=h&&p?Math.SQRT1_2:1,y=r[M]<0?-1:1,E=c[1+h]+r[M]*h*g,C=c[4+p]+y*f*p/2+r[M]*p*g,S=C-f/2,v=C+f/2,b=t(E),O=t(S),L=t(v),!x)if(Rne(b,b,O,L,o,u,E,E,S,v,c,m))x=la.width(l.datum,l.datum.text);else continue;if(_=E+y*x*h/2,E=_-x/2,A=_+x/2,b=t(E),R=t(A),Rne(b,R,O,L,o,u,E,A,S,v,c,m))return l.x=h?h*y<0?A:E:_,l.y=p?p*y<0?v:S:C,l.align=E9e[h*y+1],l.baseline=A9e[p*y+1],o.setRange(b,O,R,L),!0}return!1}}function Rne(t,e,n,r,i,s,o,u,a,l,c,f){return!(i.outOfBounds(t,n,e,r)||(f&&s||i).getRange(t,n,e,r))}const N6=0,D6=4,F6=8,w6=0,L6=1,I6=2,v9e={"top-left":N6+w6,top:N6+L6,"top-right":N6+I6,left:D6+w6,middle:D6+L6,right:D6+I6,"bottom-left":F6+w6,bottom:F6+L6,"bottom-right":F6+I6},_9e={naive:h9e,"reduced-search":p9e,floodfill:y9e};function C9e(t,e,n,r,i,s,o,u,a,l,c){if(!t.length)return t;const f=Math.max(r.length,i.length),x=b9e(r,f),h=T9e(i,f),p=R9e(t[0].datum),m=p==="group"&&t[0].datum.items[a].marktype,g=m==="area",y=O9e(p,m,u,a),E=l===null||l===1/0,A=g&&c==="naive";let S=-1,v=-1;const _=t.map(O=>{const L=E?la.width(O,O.text):void 0;return S=Math.max(S,L),v=Math.max(v,O.fontSize),{datum:O,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:y(O),textWidth:L}});l=l===null||l===1/0?Math.max(S,v)+Math.max(...r):l;const C=d9e(e[0],e[1],l);let b;if(!A){n&&_.sort((M,q)=>n(M.datum,q.datum));let O=!1;for(let M=0;M<h.length&&!O;++M)O=h[M]===5||x[M]<0;const L=(p&&o||g)&&t.map(M=>M.datum);b=s.length||L?c9e(C,L||[],s,O,g):l9e(C,o&&_)}const R=g?_9e[c](C,b,o,a):S9e(C,b,h,x);return _.forEach(O=>O.opacity=+R(O)),_}function b9e(t,e){const n=new Float64Array(e),r=t.length;for(let i=0;i<r;++i)n[i]=t[i]||0;for(let i=r;i<e;++i)n[i]=n[r-1];return n}function T9e(t,e){const n=new Int8Array(e),r=t.length;for(let i=0;i<r;++i)n[i]|=v9e[t[i]];for(let i=r;i<e;++i)n[i]=n[r-1];return n}function R9e(t){return t&&t.mark&&t.mark.marktype}function O9e(t,e,n,r){const i=s=>[s.x,s.x,s.x,s.y,s.y,s.y];return t?t==="line"||t==="area"?s=>i(s.datum):e==="line"?s=>{const o=s.datum.items[r].items;return i(o.length?o[n==="start"?0:o.length-1]:{x:NaN,y:NaN})}:s=>{const o=s.datum.bounds;return[o.x1,(o.x1+o.x2)/2,o.x2,o.y1,(o.y1+o.y2)/2,o.y2]}:i}const $6=["x","y","opacity","align","baseline"],One=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function B6(t){pe.call(this,null,t)}B6.Definition={type:"Label",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"sort",type:"compare"},{name:"anchor",type:"string",array:!0,default:One},{name:"offset",type:"number",array:!0,default:[1]},{name:"padding",type:"number",default:0,null:!0},{name:"lineAnchor",type:"string",values:["start","end"],default:"end"},{name:"markIndex",type:"number",default:0},{name:"avoidBaseMark",type:"boolean",default:!0},{name:"avoidMarks",type:"data",array:!0},{name:"method",type:"string",default:"naive"},{name:"as",type:"string",array:!0,length:$6.length,default:$6}]},Fe(B6,pe,{transform(t,e){function n(s){const o=t[s];return ct(o)&&e.modified(o.fields)}const r=t.modified();if(!(r||e.changed(e.ADD_REM)||n("sort")))return;(!t.size||t.size.length!==2)&&ve("Size parameter should be specified as a [width, height] array.");const i=t.as||$6;return C9e(e.materialize(e.SOURCE).source||[],t.size,t.sort,Pe(t.offset==null?1:t.offset),Pe(t.anchor||One),t.avoidMarks||[],t.avoidBaseMark!==!1,t.lineAnchor||"end",t.markIndex||0,t.padding===void 0?0:t.padding,t.method||"naive").forEach(s=>{const o=s.datum;o[i[0]]=s.x,o[i[1]]=s.y,o[i[2]]=s.opacity,o[i[3]]=s.align,o[i[4]]=s.baseline}),e.reflow(r).modifies(i)}});const N9e=Object.freeze(Object.defineProperty({__proto__:null,label:B6},Symbol.toStringTag,{value:"Module"}));function Nne(t,e){var n=[],r=function(c){return c(u)},i,s,o,u,a,l;if(e==null)n.push(t);else for(i={},s=0,o=t.length;s<o;++s)u=t[s],a=e.map(r),l=i[a],l||(i[a]=l=[],l.dims=a,n.push(l)),l.push(u);return n}function k6(t){pe.call(this,null,t)}k6.Definition={type:"Loess",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"bandwidth",type:"number",default:.3},{name:"as",type:"string",array:!0}]},Fe(k6,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const r=e.materialize(e.SOURCE).source,i=Nne(r,t.groupby),s=(t.groupby||[]).map($n),o=s.length,u=t.as||[$n(t.x),$n(t.y)],a=[];i.forEach(l=>{N4e(l,t.x,t.y,t.bandwidth||.3).forEach(c=>{const f={};for(let x=0;x<o;++x)f[s[x]]=l.dims[x];f[u[0]]=c[0],f[u[1]]=c[1],a.push(Lt(f))})}),this.value&&(n.rem=this.value),this.value=n.add=n.source=a}return n}});const P6={linear:$Y,log:_4e,exp:C4e,pow:b4e,quad:BY,poly:T4e},D9e=(t,e)=>t==="poly"?e:t==="quad"?2:1;function M6(t){pe.call(this,null,t)}M6.Definition={type:"Regression",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"string",default:"linear",values:Object.keys(P6)},{name:"order",type:"number",default:3},{name:"extent",type:"number",array:!0,length:2},{name:"params",type:"boolean",default:!1},{name:"as",type:"string",array:!0}]},Fe(M6,pe,{transform(t,e){const n=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const r=e.materialize(e.SOURCE).source,i=Nne(r,t.groupby),s=(t.groupby||[]).map($n),o=t.method||"linear",u=t.order||3,a=D9e(o,u),l=t.as||[$n(t.x),$n(t.y)],c=P6[o],f=[];let x=t.extent;Je(P6,o)||ve("Invalid regression method: "+o),x!=null&&o==="log"&&x[0]<=0&&(e.dataflow.warn("Ignoring extent with values <= 0 for log regression."),x=null),i.forEach(h=>{if(h.length<=a){e.dataflow.warn("Skipping regression with more parameters than data points.");return}const m=c(h,t.x,t.y,u);if(t.params){f.push(Lt({keys:h.dims,coef:m.coef,rSquared:m.rSquared}));return}const g=x||pl(h,t.x),y=E=>{const A={};for(let S=0;S<s.length;++S)A[s[S]]=h.dims[S];A[l[0]]=E[0],A[l[1]]=E[1],f.push(Lt(A))};o==="linear"?g.forEach(E=>y([E,m.predict(E)])):k5(m.predict,g,25,200).forEach(y)}),this.value&&(n.rem=this.value),this.value=n.add=n.source=f}return n}});const F9e=Object.freeze(Object.defineProperty({__proto__:null,loess:k6,regression:M6},Symbol.toStringTag,{value:"Module"})),Pl=11102230246251565e-32,ti=134217729,w9e=(3+8*Pl)*Pl;function j6(t,e,n,r,i){let s,o,u,a,l=e[0],c=r[0],f=0,x=0;c>l==c>-l?(s=l,l=e[++f]):(s=c,c=r[++x]);let h=0;if(f<t&&x<n)for(c>l==c>-l?(o=l+s,u=s-(o-l),l=e[++f]):(o=c+s,u=s-(o-c),c=r[++x]),s=o,u!==0&&(i[h++]=u);f<t&&x<n;)c>l==c>-l?(o=s+l,a=o-s,u=s-(o-a)+(l-a),l=e[++f]):(o=s+c,a=o-s,u=s-(o-a)+(c-a),c=r[++x]),s=o,u!==0&&(i[h++]=u);for(;f<t;)o=s+l,a=o-s,u=s-(o-a)+(l-a),l=e[++f],s=o,u!==0&&(i[h++]=u);for(;x<n;)o=s+c,a=o-s,u=s-(o-a)+(c-a),c=r[++x],s=o,u!==0&&(i[h++]=u);return(s!==0||h===0)&&(i[h++]=s),h}function L9e(t,e){let n=e[0];for(let r=1;r<t;r++)n+=e[r];return n}function RE(t){return new Float64Array(t)}const I9e=(3+16*Pl)*Pl,$9e=(2+12*Pl)*Pl,B9e=(9+64*Pl)*Pl*Pl,r2=RE(4),Dne=RE(8),Fne=RE(12),wne=RE(16),Ii=RE(4);function k9e(t,e,n,r,i,s,o){let u,a,l,c,f,x,h,p,m,g,y,E,A,S,v,_,C,b;const R=t-i,O=n-i,L=e-s,M=r-s;S=R*M,x=ti*R,h=x-(x-R),p=R-h,x=ti*M,m=x-(x-M),g=M-m,v=p*g-(S-h*m-p*m-h*g),_=L*O,x=ti*L,h=x-(x-L),p=L-h,x=ti*O,m=x-(x-O),g=O-m,C=p*g-(_-h*m-p*m-h*g),y=v-C,f=v-y,r2[0]=v-(y+f)+(f-C),E=S+y,f=E-S,A=S-(E-f)+(y-f),y=A-_,f=A-y,r2[1]=A-(y+f)+(f-_),b=E+y,f=b-E,r2[2]=E-(b-f)+(y-f),r2[3]=b;let q=L9e(4,r2),W=$9e*o;if(q>=W||-q>=W||(f=t-R,u=t-(R+f)+(f-i),f=n-O,l=n-(O+f)+(f-i),f=e-L,a=e-(L+f)+(f-s),f=r-M,c=r-(M+f)+(f-s),u===0&&a===0&&l===0&&c===0)||(W=B9e*o+w9e*Math.abs(q),q+=R*c+M*u-(L*l+O*a),q>=W||-q>=W))return q;S=u*M,x=ti*u,h=x-(x-u),p=u-h,x=ti*M,m=x-(x-M),g=M-m,v=p*g-(S-h*m-p*m-h*g),_=a*O,x=ti*a,h=x-(x-a),p=a-h,x=ti*O,m=x-(x-O),g=O-m,C=p*g-(_-h*m-p*m-h*g),y=v-C,f=v-y,Ii[0]=v-(y+f)+(f-C),E=S+y,f=E-S,A=S-(E-f)+(y-f),y=A-_,f=A-y,Ii[1]=A-(y+f)+(f-_),b=E+y,f=b-E,Ii[2]=E-(b-f)+(y-f),Ii[3]=b;const B=j6(4,r2,4,Ii,Dne);S=R*c,x=ti*R,h=x-(x-R),p=R-h,x=ti*c,m=x-(x-c),g=c-m,v=p*g-(S-h*m-p*m-h*g),_=L*l,x=ti*L,h=x-(x-L),p=L-h,x=ti*l,m=x-(x-l),g=l-m,C=p*g-(_-h*m-p*m-h*g),y=v-C,f=v-y,Ii[0]=v-(y+f)+(f-C),E=S+y,f=E-S,A=S-(E-f)+(y-f),y=A-_,f=A-y,Ii[1]=A-(y+f)+(f-_),b=E+y,f=b-E,Ii[2]=E-(b-f)+(y-f),Ii[3]=b;const G=j6(B,Dne,4,Ii,Fne);S=u*c,x=ti*u,h=x-(x-u),p=u-h,x=ti*c,m=x-(x-c),g=c-m,v=p*g-(S-h*m-p*m-h*g),_=a*l,x=ti*a,h=x-(x-a),p=a-h,x=ti*l,m=x-(x-l),g=l-m,C=p*g-(_-h*m-p*m-h*g),y=v-C,f=v-y,Ii[0]=v-(y+f)+(f-C),E=S+y,f=E-S,A=S-(E-f)+(y-f),y=A-_,f=A-y,Ii[1]=A-(y+f)+(f-_),b=E+y,f=b-E,Ii[2]=E-(b-f)+(y-f),Ii[3]=b;const te=j6(G,Fne,4,Ii,wne);return wne[te-1]}function XR(t,e,n,r,i,s){const o=(e-s)*(n-i),u=(t-i)*(r-s),a=o-u;if(o===0||u===0||o>0!=u>0)return a;const l=Math.abs(o+u);return Math.abs(a)>=I9e*l?a:-k9e(t,e,n,r,i,s,l)}const Lne=Math.pow(2,-52),KR=new Uint32Array(512);class JR{static from(e,n=q9e,r=H9e){const i=e.length,s=new Float64Array(i*2);for(let o=0;o<i;o++){const u=e[o];s[2*o]=n(u),s[2*o+1]=r(u)}return new JR(s)}constructor(e){const n=e.length>>1;if(n>0&&typeof e[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=e;const r=Math.max(2*n-5,0);this._triangles=new Uint32Array(r*3),this._halfedges=new Int32Array(r*3),this._hashSize=Math.ceil(Math.sqrt(n)),this._hullPrev=new Uint32Array(n),this._hullNext=new Uint32Array(n),this._hullTri=new Uint32Array(n),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.update()}update(){const{coords:e,_hullPrev:n,_hullNext:r,_hullTri:i,_hullHash:s}=this,o=e.length>>1;let u=1/0,a=1/0,l=-1/0,c=-1/0;for(let O=0;O<o;O++){const L=e[2*O],M=e[2*O+1];L<u&&(u=L),M<a&&(a=M),L>l&&(l=L),M>c&&(c=M),this._ids[O]=O}const f=(u+l)/2,x=(a+c)/2;let h=1/0,p,m,g;for(let O=0;O<o;O++){const L=U6(f,x,e[2*O],e[2*O+1]);L<h&&(p=O,h=L)}const y=e[2*p],E=e[2*p+1];h=1/0;for(let O=0;O<o;O++){if(O===p)continue;const L=U6(y,E,e[2*O],e[2*O+1]);L<h&&L>0&&(m=O,h=L)}let A=e[2*m],S=e[2*m+1],v=1/0;for(let O=0;O<o;O++){if(O===p||O===m)continue;const L=j9e(y,E,A,S,e[2*O],e[2*O+1]);L<v&&(g=O,v=L)}let _=e[2*g],C=e[2*g+1];if(v===1/0){for(let M=0;M<o;M++)this._dists[M]=e[2*M]-e[0]||e[2*M+1]-e[1];i2(this._ids,this._dists,0,o-1);const O=new Uint32Array(o);let L=0;for(let M=0,q=-1/0;M<o;M++){const W=this._ids[M];this._dists[W]>q&&(O[L++]=W,q=this._dists[W])}this.hull=O.subarray(0,L),this.triangles=new Uint32Array(0),this.halfedges=new Uint32Array(0);return}if(XR(y,E,A,S,_,C)<0){const O=m,L=A,M=S;m=g,A=_,S=C,g=O,_=L,C=M}const b=U9e(y,E,A,S,_,C);this._cx=b.x,this._cy=b.y;for(let O=0;O<o;O++)this._dists[O]=U6(e[2*O],e[2*O+1],b.x,b.y);i2(this._ids,this._dists,0,o-1),this._hullStart=p;let R=3;r[p]=n[g]=m,r[m]=n[p]=g,r[g]=n[m]=p,i[p]=0,i[m]=1,i[g]=2,s.fill(-1),s[this._hashKey(y,E)]=p,s[this._hashKey(A,S)]=m,s[this._hashKey(_,C)]=g,this.trianglesLen=0,this._addTriangle(p,m,g,-1,-1,-1);for(let O=0,L,M;O<this._ids.length;O++){const q=this._ids[O],W=e[2*q],B=e[2*q+1];if(O>0&&Math.abs(W-L)<=Lne&&Math.abs(B-M)<=Lne||(L=W,M=B,q===p||q===m||q===g))continue;let G=0;for(let ee=0,U=this._hashKey(W,B);ee<this._hashSize&&(G=s[(U+ee)%this._hashSize],!(G!==-1&&G!==r[G]));ee++);G=n[G];let te=G,K;for(;K=r[te],XR(W,B,e[2*te],e[2*te+1],e[2*K],e[2*K+1])>=0;)if(te=K,te===G){te=-1;break}if(te===-1)continue;let de=this._addTriangle(te,q,r[te],-1,-1,i[te]);i[q]=this._legalize(de+2),i[te]=de,R++;let be=r[te];for(;K=r[be],XR(W,B,e[2*be],e[2*be+1],e[2*K],e[2*K+1])<0;)de=this._addTriangle(be,q,K,i[q],-1,i[be]),i[q]=this._legalize(de+2),r[be]=be,R--,be=K;if(te===G)for(;K=n[te],XR(W,B,e[2*K],e[2*K+1],e[2*te],e[2*te+1])<0;)de=this._addTriangle(K,q,te,-1,i[te],i[K]),this._legalize(de+2),i[K]=de,r[te]=te,R--,te=K;this._hullStart=n[q]=te,r[te]=n[be]=q,r[q]=be,s[this._hashKey(W,B)]=q,s[this._hashKey(e[2*te],e[2*te+1])]=te}this.hull=new Uint32Array(R);for(let O=0,L=this._hullStart;O<R;O++)this.hull[O]=L,L=r[L];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,n){return Math.floor(P9e(e-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(e){const{_triangles:n,_halfedges:r,coords:i}=this;let s=0,o=0;for(;;){const u=r[e],a=e-e%3;if(o=a+(e+2)%3,u===-1){if(s===0)break;e=KR[--s];continue}const l=u-u%3,c=a+(e+1)%3,f=l+(u+2)%3,x=n[o],h=n[e],p=n[c],m=n[f];if(M9e(i[2*x],i[2*x+1],i[2*h],i[2*h+1],i[2*p],i[2*p+1],i[2*m],i[2*m+1])){n[e]=m,n[u]=x;const y=r[f];if(y===-1){let A=this._hullStart;do{if(this._hullTri[A]===f){this._hullTri[A]=e;break}A=this._hullPrev[A]}while(A!==this._hullStart)}this._link(e,y),this._link(u,r[o]),this._link(o,f);const E=l+(u+1)%3;s<KR.length&&(KR[s++]=E)}else{if(s===0)break;e=KR[--s]}}return o}_link(e,n){this._halfedges[e]=n,n!==-1&&(this._halfedges[n]=e)}_addTriangle(e,n,r,i,s,o){const u=this.trianglesLen;return this._triangles[u]=e,this._triangles[u+1]=n,this._triangles[u+2]=r,this._link(u,i),this._link(u+1,s),this._link(u+2,o),this.trianglesLen+=3,u}}function P9e(t,e){const n=t/(Math.abs(t)+Math.abs(e));return(e>0?3-n:1+n)/4}function U6(t,e,n,r){const i=t-n,s=e-r;return i*i+s*s}function M9e(t,e,n,r,i,s,o,u){const a=t-o,l=e-u,c=n-o,f=r-u,x=i-o,h=s-u,p=a*a+l*l,m=c*c+f*f,g=x*x+h*h;return a*(f*g-m*h)-l*(c*g-m*x)+p*(c*h-f*x)<0}function j9e(t,e,n,r,i,s){const o=n-t,u=r-e,a=i-t,l=s-e,c=o*o+u*u,f=a*a+l*l,x=.5/(o*l-u*a),h=(l*c-u*f)*x,p=(o*f-a*c)*x;return h*h+p*p}function U9e(t,e,n,r,i,s){const o=n-t,u=r-e,a=i-t,l=s-e,c=o*o+u*u,f=a*a+l*l,x=.5/(o*l-u*a),h=t+(l*c-u*f)*x,p=e+(o*f-a*c)*x;return{x:h,y:p}}function i2(t,e,n,r){if(r-n<=20)for(let i=n+1;i<=r;i++){const s=t[i],o=e[s];let u=i-1;for(;u>=n&&e[t[u]]>o;)t[u+1]=t[u--];t[u+1]=s}else{const i=n+r>>1;let s=n+1,o=r;OE(t,i,s),e[t[n]]>e[t[r]]&&OE(t,n,r),e[t[s]]>e[t[r]]&&OE(t,s,r),e[t[n]]>e[t[s]]&&OE(t,n,s);const u=t[s],a=e[u];for(;;){do s++;while(e[t[s]]<a);do o--;while(e[t[o]]>a);if(o<s)break;OE(t,s,o)}t[n+1]=t[o],t[o]=u,r-s+1>=o-n?(i2(t,e,s,r),i2(t,e,n,o-1)):(i2(t,e,n,o-1),i2(t,e,s,r))}}function OE(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function q9e(t){return t[0]}function H9e(t){return t[1]}const Ine=1e-6;class nd{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,n){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,n){this._+=`L${this._x1=+e},${this._y1=+n}`}arc(e,n,r){e=+e,n=+n,r=+r;const i=e+r,s=n;if(r<0)throw new Error("negative radius");this._x1===null?this._+=`M${i},${s}`:(Math.abs(this._x1-i)>Ine||Math.abs(this._y1-s)>Ine)&&(this._+="L"+i+","+s),r&&(this._+=`A${r},${r},0,1,1,${e-r},${n}A${r},${r},0,1,1,${this._x1=i},${this._y1=s}`)}rect(e,n,r,i){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${+r}v${+i}h${-r}Z`}value(){return this._||null}}class q6{constructor(){this._=[]}moveTo(e,n){this._.push([e,n])}closePath(){this._.push(this._[0].slice())}lineTo(e,n){this._.push([e,n])}value(){return this._.length?this._:null}}let z9e=class{constructor(e,[n,r,i,s]=[0,0,960,500]){if(!((i=+i)>=(n=+n))||!((s=+s)>=(r=+r)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(e.points.length*2),this.vectors=new Float64Array(e.points.length*2),this.xmax=i,this.xmin=n,this.ymax=s,this.ymin=r,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:e,hull:n,triangles:r},vectors:i}=this;let s,o;const u=this.circumcenters=this._circumcenters.subarray(0,r.length/3*2);for(let m=0,g=0,y=r.length,E,A;m<y;m+=3,g+=2){const S=r[m]*2,v=r[m+1]*2,_=r[m+2]*2,C=e[S],b=e[S+1],R=e[v],O=e[v+1],L=e[_],M=e[_+1],q=R-C,W=O-b,B=L-C,G=M-b,te=(q*G-W*B)*2;if(Math.abs(te)<1e-9){if(s===void 0){s=o=0;for(const de of n)s+=e[de*2],o+=e[de*2+1];s/=n.length,o/=n.length}const K=1e9*Math.sign((s-C)*G-(o-b)*B);E=(C+L)/2-K*G,A=(b+M)/2+K*B}else{const K=1/te,de=q*q+W*W,be=B*B+G*G;E=C+(G*de-W*be)*K,A=b+(q*be-B*de)*K}u[g]=E,u[g+1]=A}let a=n[n.length-1],l,c=a*4,f,x=e[2*a],h,p=e[2*a+1];i.fill(0);for(let m=0;m<n.length;++m)a=n[m],l=c,f=x,h=p,c=a*4,x=e[2*a],p=e[2*a+1],i[l+2]=i[c]=h-p,i[l+3]=i[c+1]=x-f}render(e){const n=e==null?e=new nd:void 0,{delaunay:{halfedges:r,inedges:i,hull:s},circumcenters:o,vectors:u}=this;if(s.length<=1)return null;for(let c=0,f=r.length;c<f;++c){const x=r[c];if(x<c)continue;const h=Math.floor(c/3)*2,p=Math.floor(x/3)*2,m=o[h],g=o[h+1],y=o[p],E=o[p+1];this._renderSegment(m,g,y,E,e)}let a,l=s[s.length-1];for(let c=0;c<s.length;++c){a=l,l=s[c];const f=Math.floor(i[l]/3)*2,x=o[f],h=o[f+1],p=a*4,m=this._project(x,h,u[p+2],u[p+3]);m&&this._renderSegment(x,h,m[0],m[1],e)}return n&&n.value()}renderBounds(e){const n=e==null?e=new nd:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),n&&n.value()}renderCell(e,n){const r=n==null?n=new nd:void 0,i=this._clip(e);if(i===null||!i.length)return;n.moveTo(i[0],i[1]);let s=i.length;for(;i[0]===i[s-2]&&i[1]===i[s-1]&&s>1;)s-=2;for(let o=2;o<s;o+=2)(i[o]!==i[o-2]||i[o+1]!==i[o-1])&&n.lineTo(i[o],i[o+1]);return n.closePath(),r&&r.value()}*cellPolygons(){const{delaunay:{points:e}}=this;for(let n=0,r=e.length/2;n<r;++n){const i=this.cellPolygon(n);i&&(i.index=n,yield i)}}cellPolygon(e){const n=new q6;return this.renderCell(e,n),n.value()}_renderSegment(e,n,r,i,s){let o;const u=this._regioncode(e,n),a=this._regioncode(r,i);u===0&&a===0?(s.moveTo(e,n),s.lineTo(r,i)):(o=this._clipSegment(e,n,r,i,u,a))&&(s.moveTo(o[0],o[1]),s.lineTo(o[2],o[3]))}contains(e,n,r){return n=+n,n!==n||(r=+r,r!==r)?!1:this.delaunay._step(e,n,r)===e}*neighbors(e){const n=this._clip(e);if(n)for(const r of this.delaunay.neighbors(e)){const i=this._clip(r);if(i){e:for(let s=0,o=n.length;s<o;s+=2)for(let u=0,a=i.length;u<a;u+=2)if(n[s]===i[u]&&n[s+1]===i[u+1]&&n[(s+2)%o]===i[(u+a-2)%a]&&n[(s+3)%o]===i[(u+a-1)%a]){yield r;break e}}}}_cell(e){const{circumcenters:n,delaunay:{inedges:r,halfedges:i,triangles:s}}=this,o=r[e];if(o===-1)return null;const u=[];let a=o;do{const l=Math.floor(a/3);if(u.push(n[l*2],n[l*2+1]),a=a%3===2?a-2:a+1,s[a]!==e)break;a=i[a]}while(a!==o&&a!==-1);return u}_clip(e){if(e===0&&this.delaunay.hull.length===1)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const n=this._cell(e);if(n===null)return null;const{vectors:r}=this,i=e*4;return this._simplify(r[i]||r[i+1]?this._clipInfinite(e,n,r[i],r[i+1],r[i+2],r[i+3]):this._clipFinite(e,n))}_clipFinite(e,n){const r=n.length;let i=null,s,o,u=n[r-2],a=n[r-1],l,c=this._regioncode(u,a),f,x=0;for(let h=0;h<r;h+=2)if(s=u,o=a,u=n[h],a=n[h+1],l=c,c=this._regioncode(u,a),l===0&&c===0)f=x,x=0,i?i.push(u,a):i=[u,a];else{let p,m,g,y,E;if(l===0){if((p=this._clipSegment(s,o,u,a,l,c))===null)continue;[m,g,y,E]=p}else{if((p=this._clipSegment(u,a,s,o,c,l))===null)continue;[y,E,m,g]=p,f=x,x=this._edgecode(m,g),f&&x&&this._edge(e,f,x,i,i.length),i?i.push(m,g):i=[m,g]}f=x,x=this._edgecode(y,E),f&&x&&this._edge(e,f,x,i,i.length),i?i.push(y,E):i=[y,E]}if(i)f=x,x=this._edgecode(i[0],i[1]),f&&x&&this._edge(e,f,x,i,i.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return i}_clipSegment(e,n,r,i,s,o){const u=s<o;for(u&&([e,n,r,i,s,o]=[r,i,e,n,o,s]);;){if(s===0&&o===0)return u?[r,i,e,n]:[e,n,r,i];if(s&o)return null;let a,l,c=s||o;c&8?(a=e+(r-e)*(this.ymax-n)/(i-n),l=this.ymax):c&4?(a=e+(r-e)*(this.ymin-n)/(i-n),l=this.ymin):c&2?(l=n+(i-n)*(this.xmax-e)/(r-e),a=this.xmax):(l=n+(i-n)*(this.xmin-e)/(r-e),a=this.xmin),s?(e=a,n=l,s=this._regioncode(e,n)):(r=a,i=l,o=this._regioncode(r,i))}}_clipInfinite(e,n,r,i,s,o){let u=Array.from(n),a;if((a=this._project(u[0],u[1],r,i))&&u.unshift(a[0],a[1]),(a=this._project(u[u.length-2],u[u.length-1],s,o))&&u.push(a[0],a[1]),u=this._clipFinite(e,u))for(let l=0,c=u.length,f,x=this._edgecode(u[c-2],u[c-1]);l<c;l+=2)f=x,x=this._edgecode(u[l],u[l+1]),f&&x&&(l=this._edge(e,f,x,u,l),c=u.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(u=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return u}_edge(e,n,r,i,s){for(;n!==r;){let o,u;switch(n){case 5:n=4;continue;case 4:n=6,o=this.xmax,u=this.ymin;break;case 6:n=2;continue;case 2:n=10,o=this.xmax,u=this.ymax;break;case 10:n=8;continue;case 8:n=9,o=this.xmin,u=this.ymax;break;case 9:n=1;continue;case 1:n=5,o=this.xmin,u=this.ymin;break}(i[s]!==o||i[s+1]!==u)&&this.contains(e,o,u)&&(i.splice(s,0,o,u),s+=2)}return s}_project(e,n,r,i){let s=1/0,o,u,a;if(i<0){if(n<=this.ymin)return null;(o=(this.ymin-n)/i)<s&&(a=this.ymin,u=e+(s=o)*r)}else if(i>0){if(n>=this.ymax)return null;(o=(this.ymax-n)/i)<s&&(a=this.ymax,u=e+(s=o)*r)}if(r>0){if(e>=this.xmax)return null;(o=(this.xmax-e)/r)<s&&(u=this.xmax,a=n+(s=o)*i)}else if(r<0){if(e<=this.xmin)return null;(o=(this.xmin-e)/r)<s&&(u=this.xmin,a=n+(s=o)*i)}return[u,a]}_edgecode(e,n){return(e===this.xmin?1:e===this.xmax?2:0)|(n===this.ymin?4:n===this.ymax?8:0)}_regioncode(e,n){return(e<this.xmin?1:e>this.xmax?2:0)|(n<this.ymin?4:n>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let n=0;n<e.length;n+=2){const r=(n+2)%e.length,i=(n+4)%e.length;(e[n]===e[r]&&e[r]===e[i]||e[n+1]===e[r+1]&&e[r+1]===e[i+1])&&(e.splice(r,2),n-=2)}e.length||(e=null)}return e}};const Q9e=2*Math.PI,s2=Math.pow;function G9e(t){return t[0]}function W9e(t){return t[1]}function V9e(t){const{triangles:e,coords:n}=t;for(let r=0;r<e.length;r+=3){const i=2*e[r],s=2*e[r+1],o=2*e[r+2];if((n[o]-n[i])*(n[s+1]-n[i+1])-(n[s]-n[i])*(n[o+1]-n[i+1])>1e-10)return!1}return!0}function Y9e(t,e,n){return[t+Math.sin(t+e)*n,e+Math.cos(t-e)*n]}class H6{static from(e,n=G9e,r=W9e,i){return new H6("length"in e?X9e(e,n,r,i):Float64Array.from(K9e(e,n,r,i)))}constructor(e){this._delaunator=new JR(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const e=this._delaunator,n=this.points;if(e.hull&&e.hull.length>2&&V9e(e)){this.collinear=Int32Array.from({length:n.length/2},(x,h)=>h).sort((x,h)=>n[2*x]-n[2*h]||n[2*x+1]-n[2*h+1]);const a=this.collinear[0],l=this.collinear[this.collinear.length-1],c=[n[2*a],n[2*a+1],n[2*l],n[2*l+1]],f=1e-8*Math.hypot(c[3]-c[1],c[2]-c[0]);for(let x=0,h=n.length/2;x<h;++x){const p=Y9e(n[2*x],n[2*x+1],f);n[2*x]=p[0],n[2*x+1]=p[1]}this._delaunator=new JR(n)}else delete this.collinear;const r=this.halfedges=this._delaunator.halfedges,i=this.hull=this._delaunator.hull,s=this.triangles=this._delaunator.triangles,o=this.inedges.fill(-1),u=this._hullIndex.fill(-1);for(let a=0,l=r.length;a<l;++a){const c=s[a%3===2?a-2:a+1];(r[a]===-1||o[c]===-1)&&(o[c]=a)}for(let a=0,l=i.length;a<l;++a)u[i[a]]=a;i.length<=2&&i.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=i[0],o[i[0]]=1,i.length===2&&(o[i[1]]=0,this.triangles[1]=i[1],this.triangles[2]=i[1]))}voronoi(e){return new z9e(this,e)}*neighbors(e){const{inedges:n,hull:r,_hullIndex:i,halfedges:s,triangles:o,collinear:u}=this;if(u){const f=u.indexOf(e);f>0&&(yield u[f-1]),f<u.length-1&&(yield u[f+1]);return}const a=n[e];if(a===-1)return;let l=a,c=-1;do{if(yield c=o[l],l=l%3===2?l-2:l+1,o[l]!==e)return;if(l=s[l],l===-1){const f=r[(i[e]+1)%r.length];f!==c&&(yield f);return}}while(l!==a)}find(e,n,r=0){if(e=+e,e!==e||(n=+n,n!==n))return-1;const i=r;let s;for(;(s=this._step(r,e,n))>=0&&s!==r&&s!==i;)r=s;return s}_step(e,n,r){const{inedges:i,hull:s,_hullIndex:o,halfedges:u,triangles:a,points:l}=this;if(i[e]===-1||!l.length)return(e+1)%(l.length>>1);let c=e,f=s2(n-l[e*2],2)+s2(r-l[e*2+1],2);const x=i[e];let h=x;do{let p=a[h];const m=s2(n-l[p*2],2)+s2(r-l[p*2+1],2);if(m<f&&(f=m,c=p),h=h%3===2?h-2:h+1,a[h]!==e)break;if(h=u[h],h===-1){if(h=s[(o[e]+1)%s.length],h!==p&&s2(n-l[h*2],2)+s2(r-l[h*2+1],2)<f)return h;break}}while(h!==x);return c}render(e){const n=e==null?e=new nd:void 0,{points:r,halfedges:i,triangles:s}=this;for(let o=0,u=i.length;o<u;++o){const a=i[o];if(a<o)continue;const l=s[o]*2,c=s[a]*2;e.moveTo(r[l],r[l+1]),e.lineTo(r[c],r[c+1])}return this.renderHull(e),n&&n.value()}renderPoints(e,n){n===void 0&&(!e||typeof e.moveTo!="function")&&(n=e,e=null),n=n==null?2:+n;const r=e==null?e=new nd:void 0,{points:i}=this;for(let s=0,o=i.length;s<o;s+=2){const u=i[s],a=i[s+1];e.moveTo(u+n,a),e.arc(u,a,n,0,Q9e)}return r&&r.value()}renderHull(e){const n=e==null?e=new nd:void 0,{hull:r,points:i}=this,s=r[0]*2,o=r.length;e.moveTo(i[s],i[s+1]);for(let u=1;u<o;++u){const a=2*r[u];e.lineTo(i[a],i[a+1])}return e.closePath(),n&&n.value()}hullPolygon(){const e=new q6;return this.renderHull(e),e.value()}renderTriangle(e,n){const r=n==null?n=new nd:void 0,{points:i,triangles:s}=this,o=s[e*=3]*2,u=s[e+1]*2,a=s[e+2]*2;return n.moveTo(i[o],i[o+1]),n.lineTo(i[u],i[u+1]),n.lineTo(i[a],i[a+1]),n.closePath(),r&&r.value()}*trianglePolygons(){const{triangles:e}=this;for(let n=0,r=e.length/3;n<r;++n)yield this.trianglePolygon(n)}trianglePolygon(e){const n=new q6;return this.renderTriangle(e,n),n.value()}}function X9e(t,e,n,r){const i=t.length,s=new Float64Array(i*2);for(let o=0;o<i;++o){const u=t[o];s[o*2]=e.call(r,u,o,t),s[o*2+1]=n.call(r,u,o,t)}return s}function*K9e(t,e,n,r){let i=0;for(const s of t)yield e.call(r,s,i,t),yield n.call(r,s,i,t),++i}function z6(t){pe.call(this,null,t)}z6.Definition={type:"Voronoi",metadata:{modifies:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"size",type:"number",array:!0,length:2},{name:"extent",type:"array",array:!0,length:2,default:[[-1e5,-1e5],[1e5,1e5]],content:{type:"number",array:!0,length:2}},{name:"as",type:"string",default:"path"}]};const J9e=[-1e5,-1e5,1e5,1e5];Fe(z6,pe,{transform(t,e){const n=t.as||"path",r=e.source;if(!r||!r.length)return e;let i=t.size;i=i?[0,0,i[0],i[1]]:(i=t.extent)?[i[0][0],i[0][1],i[1][0],i[1][1]]:J9e;const s=this.value=H6.from(r,t.x,t.y).voronoi(i);for(let o=0,u=r.length;o<u;++o){const a=s.cellPolygon(o);r[o][n]=a?Z9e(a):null}return e.reflow(t.modified()).modifies(n)}});function Z9e(t){const e=t[0][0],n=t[0][1];let r=t.length-1;for(;t[r][0]===e&&t[r][1]===n;--r);return"M"+t.slice(0,r+1).join("L")+"Z"}const eje=Object.freeze(Object.defineProperty({__proto__:null,voronoi:z6},Symbol.toStringTag,{value:"Module"}));var Q6=Math.PI/180,NE=64,ZR=2048;function tje(){var t=[256,256],e,n,r,i,s,o,u,a=$ne,l=[],c=Math.random,f={};f.layout=function(){for(var p=x(sc()),m=uje((t[0]>>5)*t[1]),g=null,y=l.length,E=-1,A=[],S=l.map(_=>({text:e(_),font:n(_),style:i(_),weight:s(_),rotate:o(_),size:~~(r(_)+1e-14),padding:u(_),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:_})).sort((_,C)=>C.size-_.size);++E<y;){var v=S[E];v.x=t[0]*(c()+.5)>>1,v.y=t[1]*(c()+.5)>>1,nje(p,v,S,E),v.hasText&&h(m,v,g)&&(A.push(v),g?ije(g,v):g=[{x:v.x+v.x0,y:v.y+v.y0},{x:v.x+v.x1,y:v.y+v.y1}],v.x-=t[0]>>1,v.y-=t[1]>>1)}return A};function x(p){p.width=p.height=1;var m=Math.sqrt(p.getContext("2d").getImageData(0,0,1,1).data.length>>2);p.width=(NE<<5)/m,p.height=ZR/m;var g=p.getContext("2d");return g.fillStyle=g.strokeStyle="red",g.textAlign="center",{context:g,ratio:m}}function h(p,m,g){for(var y=m.x,E=m.y,A=Math.sqrt(t[0]*t[0]+t[1]*t[1]),S=a(t),v=c()<.5?1:-1,_=-v,C,b,R;(C=S(_+=v))&&(b=~~C[0],R=~~C[1],!(Math.min(Math.abs(b),Math.abs(R))>=A));)if(m.x=y+b,m.y=E+R,!(m.x+m.x0<0||m.y+m.y0<0||m.x+m.x1>t[0]||m.y+m.y1>t[1])&&(!g||!rje(m,p,t[0]))&&(!g||sje(m,g))){for(var O=m.sprite,L=m.width>>5,M=t[0]>>5,q=m.x-(L<<4),W=q&127,B=32-W,G=m.y1-m.y0,te=(m.y+m.y0)*M+(q>>5),K,de=0;de<G;de++){K=0;for(var be=0;be<=L;be++)p[te+be]|=K<<B|(be<L?(K=O[de*L+be])>>>W:0);te+=M}return m.sprite=null,!0}return!1}return f.words=function(p){return arguments.length?(l=p,f):l},f.size=function(p){return arguments.length?(t=[+p[0],+p[1]],f):t},f.font=function(p){return arguments.length?(n=rd(p),f):n},f.fontStyle=function(p){return arguments.length?(i=rd(p),f):i},f.fontWeight=function(p){return arguments.length?(s=rd(p),f):s},f.rotate=function(p){return arguments.length?(o=rd(p),f):o},f.text=function(p){return arguments.length?(e=rd(p),f):e},f.spiral=function(p){return arguments.length?(a=aje[p]||p,f):a},f.fontSize=function(p){return arguments.length?(r=rd(p),f):r},f.padding=function(p){return arguments.length?(u=rd(p),f):u},f.random=function(p){return arguments.length?(c=p,f):c},f}function nje(t,e,n,r){if(!e.sprite){var i=t.context,s=t.ratio;i.clearRect(0,0,(NE<<5)/s,ZR/s);var o=0,u=0,a=0,l=n.length,c,f,x,h,p;for(--r;++r<l;){if(e=n[r],i.save(),i.font=e.style+" "+e.weight+" "+~~((e.size+1)/s)+"px "+e.font,c=i.measureText(e.text+"m").width*s,x=e.size<<1,e.rotate){var m=Math.sin(e.rotate*Q6),g=Math.cos(e.rotate*Q6),y=c*g,E=c*m,A=x*g,S=x*m;c=Math.max(Math.abs(y+S),Math.abs(y-S))+31>>5<<5,x=~~Math.max(Math.abs(E+A),Math.abs(E-A))}else c=c+31>>5<<5;if(x>a&&(a=x),o+c>=NE<<5&&(o=0,u+=a,a=0),u+x>=ZR)break;i.translate((o+(c>>1))/s,(u+(x>>1))/s),e.rotate&&i.rotate(e.rotate*Q6),i.fillText(e.text,0,0),e.padding&&(i.lineWidth=2*e.padding,i.strokeText(e.text,0,0)),i.restore(),e.width=c,e.height=x,e.xoff=o,e.yoff=u,e.x1=c>>1,e.y1=x>>1,e.x0=-e.x1,e.y0=-e.y1,e.hasText=!0,o+=c}for(var v=i.getImageData(0,0,(NE<<5)/s,ZR/s).data,_=[];--r>=0;)if(e=n[r],!!e.hasText){for(c=e.width,f=c>>5,x=e.y1-e.y0,h=0;h<x*f;h++)_[h]=0;if(o=e.xoff,o==null)return;u=e.yoff;var C=0,b=-1;for(p=0;p<x;p++){for(h=0;h<c;h++){var R=f*p+(h>>5),O=v[(u+p)*(NE<<5)+(o+h)<<2]?1<<31-h%32:0;_[R]|=O,C|=O}C?b=p:(e.y0++,x--,p--,u++)}e.y1=e.y0+b,e.sprite=_.slice(0,(e.y1-e.y0)*f)}}}function rje(t,e,n){n>>=5;for(var r=t.sprite,i=t.width>>5,s=t.x-(i<<4),o=s&127,u=32-o,a=t.y1-t.y0,l=(t.y+t.y0)*n+(s>>5),c,f=0;f<a;f++){c=0;for(var x=0;x<=i;x++)if((c<<u|(x<i?(c=r[f*i+x])>>>o:0))&e[l+x])return!0;l+=n}return!1}function ije(t,e){var n=t[0],r=t[1];e.x+e.x0<n.x&&(n.x=e.x+e.x0),e.y+e.y0<n.y&&(n.y=e.y+e.y0),e.x+e.x1>r.x&&(r.x=e.x+e.x1),e.y+e.y1>r.y&&(r.y=e.y+e.y1)}function sje(t,e){return t.x+t.x1>e[0].x&&t.x+t.x0<e[1].x&&t.y+t.y1>e[0].y&&t.y+t.y0<e[1].y}function $ne(t){var e=t[0]/t[1];return function(n){return[e*(n*=.1)*Math.cos(n),n*Math.sin(n)]}}function oje(t){var e=4,n=e*t[0]/t[1],r=0,i=0;return function(s){var o=s<0?-1:1;switch(Math.sqrt(1+4*o*s)-o&3){case 0:r+=n;break;case 1:i+=e;break;case 2:r-=n;break;default:i-=e;break}return[r,i]}}function uje(t){for(var e=[],n=-1;++n<t;)e[n]=0;return e}function rd(t){return typeof t=="function"?t:function(){return t}}var aje={archimedean:$ne,rectangular:oje};const Bne=["x","y","font","fontSize","fontStyle","fontWeight","angle"],lje=["text","font","rotate","fontSize","fontStyle","fontWeight"];function G6(t){pe.call(this,tje(),t)}G6.Definition={type:"Wordcloud",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2},{name:"font",type:"string",expr:!0,default:"sans-serif"},{name:"fontStyle",type:"string",expr:!0,default:"normal"},{name:"fontWeight",type:"string",expr:!0,default:"normal"},{name:"fontSize",type:"number",expr:!0,default:14},{name:"fontSizeRange",type:"number",array:"nullable",default:[10,50]},{name:"rotate",type:"number",expr:!0,default:0},{name:"text",type:"field"},{name:"spiral",type:"string",values:["archimedean","rectangular"]},{name:"padding",type:"number",expr:!0},{name:"as",type:"string",array:!0,length:7,default:Bne}]},Fe(G6,pe,{transform(t,e){t.size&&!(t.size[0]&&t.size[1])&&ve("Wordcloud size dimensions must be non-zero.");function n(p){const m=t[p];return ct(m)&&e.modified(m.fields)}const r=t.modified();if(!(r||e.changed(e.ADD_REM)||lje.some(n)))return;const i=e.materialize(e.SOURCE).source,s=this.value,o=t.as||Bne;let u=t.fontSize||14,a;if(ct(u)?a=t.fontSizeRange:u=Ei(u),a){const p=u,m=Ot("sqrt")().domain(pl(i,p)).range(a);u=g=>m(p(g))}i.forEach(p=>{p[o[0]]=NaN,p[o[1]]=NaN,p[o[3]]=0});const l=s.words(i).text(t.text).size(t.size||[500,500]).padding(t.padding||1).spiral(t.spiral||"archimedean").rotate(t.rotate||0).font(t.font||"sans-serif").fontStyle(t.fontStyle||"normal").fontWeight(t.fontWeight||"normal").fontSize(u).random(Cl).layout(),c=s.size(),f=c[0]>>1,x=c[1]>>1,h=l.length;for(let p=0,m,g;p<h;++p)m=l[p],g=m.datum,g[o[0]]=m.x+f,g[o[1]]=m.y+x,g[o[2]]=m.font,g[o[3]]=m.size,g[o[4]]=m.style,g[o[5]]=m.weight,g[o[6]]=m.rotate;return e.reflow(r).modifies(o)}});const cje=Object.freeze(Object.defineProperty({__proto__:null,wordcloud:G6},Symbol.toStringTag,{value:"Module"})),fje=t=>new Uint8Array(t),xje=t=>new Uint16Array(t),DE=t=>new Uint32Array(t);function dje(){let t=8,e=[],n=DE(0),r=eO(0,t),i=eO(0,t);return{data:()=>e,seen:()=>n=hje(n,e.length),add(s){for(let o=0,u=e.length,a=s.length,l;o<a;++o)l=s[o],l._index=u++,e.push(l)},remove(s,o){const u=e.length,a=Array(u-s),l=e;let c,f,x;for(f=0;!o[f]&&f<u;++f)a[f]=e[f],l[f]=f;for(x=f;f<u;++f)c=e[f],o[f]?l[f]=-1:(l[f]=x,r[x]=r[f],i[x]=i[f],a[x]=c,c._index=x++),r[f]=0;return e=a,l},size:()=>e.length,curr:()=>r,prev:()=>i,reset:s=>i[s]=r[s],all:()=>t<257?255:t<65537?65535:4294967295,set(s,o){r[s]|=o},clear(s,o){r[s]&=~o},resize(s,o){const u=r.length;(s>u||o>t)&&(t=Math.max(o,t),r=eO(s,t,r),i=eO(s,t))}}}function hje(t,e,n){return t.length>=e?t:(n=n||new t.constructor(e),n.set(t),n)}function eO(t,e,n){const r=(e<257?fje:e<65537?xje:DE)(t);return n&&r.set(n),r}function kne(t,e,n){const r=1<<e;return{one:r,zero:~r,range:n.slice(),bisect:t.bisect,index:t.index,size:t.size,onAdd(i,s){const o=this,u=o.bisect(o.range,i.value),a=i.index,l=u[0],c=u[1],f=a.length;let x;for(x=0;x<l;++x)s[a[x]]|=r;for(x=c;x<f;++x)s[a[x]]|=r;return o}}}function Pne(){let t=DE(0),e=[],n=0;function r(u,a,l){if(!a.length)return[];const c=n,f=a.length,x=DE(f);let h=Array(f),p,m,g;for(g=0;g<f;++g)h[g]=u(a[g]),x[g]=g;if(h=pje(h,x),c)p=e,m=t,e=Array(c+f),t=DE(c+f),gje(l,p,m,c,h,x,f,e,t);else{if(l>0)for(g=0;g<f;++g)x[g]+=l;e=h,t=x}return n=c+f,{index:x,value:h}}function i(u,a){const l=n;let c,f,x;for(f=0;!a[t[f]]&&f<l;++f);for(x=f;f<l;++f)a[c=t[f]]||(t[x]=c,e[x]=e[f],++x);n=l-u}function s(u){for(let a=0,l=n;a<l;++a)t[a]=u[t[a]]}function o(u,a){let l;return a?l=a.length:(a=e,l=n),[rFe(a,u[0],0,l),J0(a,u[1],0,l)]}return{insert:r,remove:i,bisect:o,reindex:s,index:()=>t,size:()=>n}}function pje(t,e){return t.sort.call(e,(n,r)=>{const i=t[n],s=t[r];return i<s?-1:i>s?1:0}),oFe(t,e)}function gje(t,e,n,r,i,s,o,u,a){let l=0,c=0,f;for(f=0;l<r&&c<o;++f)e[l]<i[c]?(u[f]=e[l],a[f]=n[l++]):(u[f]=i[c],a[f]=s[c++]+t);for(;l<r;++l,++f)u[f]=e[l],a[f]=n[l];for(;c<o;++c,++f)u[f]=i[c],a[f]=s[c]+t}function W6(t){pe.call(this,dje(),t),this._indices=null,this._dims=null}W6.Definition={type:"CrossFilter",metadata:{},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"query",type:"array",array:!0,required:!0,content:{type:"number",array:!0,length:2}}]},Fe(W6,pe,{transform(t,e){if(this._dims){var n=t.modified("fields")||t.fields.some(r=>e.modified(r.fields));return n?this.reinit(t,e):this.eval(t,e)}else return this.init(t,e)},init(t,e){const n=t.fields,r=t.query,i=this._indices={},s=this._dims=[],o=r.length;let u=0,a,l;for(;u<o;++u)a=n[u].fname,l=i[a]||(i[a]=Pne()),s.push(kne(l,u,r[u]));return this.eval(t,e)},reinit(t,e){const n=e.materialize().fork(),r=t.fields,i=t.query,s=this._indices,o=this._dims,u=this.value,a=u.curr(),l=u.prev(),c=u.all(),f=n.rem=n.add,x=n.mod,h=i.length,p={};let m,g,y,E,A,S,v,_,C;if(l.set(a),e.rem.length&&(A=this.remove(t,e,n)),e.add.length&&u.add(e.add),e.mod.length)for(S={},E=e.mod,v=0,_=E.length;v<_;++v)S[E[v]._index]=1;for(v=0;v<h;++v)C=r[v],(!o[v]||t.modified("fields",v)||e.modified(C.fields))&&(y=C.fname,(m=p[y])||(s[y]=g=Pne(),p[y]=m=g.insert(C,e.source,0)),o[v]=kne(g,v,i[v]).onAdd(m,a));for(v=0,_=u.data().length;v<_;++v)A[v]||(l[v]!==a[v]?f.push(v):S[v]&&a[v]!==c&&x.push(v));return u.mask=(1<<h)-1,n},eval(t,e){const n=e.materialize().fork(),r=this._dims.length;let i=0;return e.rem.length&&(this.remove(t,e,n),i|=(1<<r)-1),t.modified("query")&&!t.modified("fields")&&(i|=this.update(t,e,n)),e.add.length&&(this.insert(t,e,n),i|=(1<<r)-1),e.mod.length&&(this.modify(e,n),i|=(1<<r)-1),this.value.mask=i,n},insert(t,e,n){const r=e.add,i=this.value,s=this._dims,o=this._indices,u=t.fields,a={},l=n.add,c=i.size()+r.length,f=s.length;let x=i.size(),h,p,m;i.resize(c,f),i.add(r);const g=i.curr(),y=i.prev(),E=i.all();for(h=0;h<f;++h)p=u[h].fname,m=a[p]||(a[p]=o[p].insert(u[h],r,x)),s[h].onAdd(m,g);for(;x<c;++x)y[x]=E,g[x]!==E&&l.push(x)},modify(t,e){const n=e.mod,r=this.value,i=r.curr(),s=r.all(),o=t.mod;let u,a,l;for(u=0,a=o.length;u<a;++u)l=o[u]._index,i[l]!==s&&n.push(l)},remove(t,e,n){const r=this._indices,i=this.value,s=i.curr(),o=i.prev(),u=i.all(),a={},l=n.rem,c=e.rem;let f,x,h,p;for(f=0,x=c.length;f<x;++f)h=c[f]._index,a[h]=1,o[h]=p=s[h],s[h]=u,p!==u&&l.push(h);for(h in r)r[h].remove(x,a);return this.reindex(e,x,a),a},reindex(t,e,n){const r=this._indices,i=this.value;t.runAfter(()=>{const s=i.remove(e,n);for(const o in r)r[o].reindex(s)})},update(t,e,n){const r=this._dims,i=t.query,s=e.stamp,o=r.length;let u=0,a,l;for(n.filters=0,l=0;l<o;++l)t.modified("query",l)&&(a=l,++u);if(u===1)u=r[a].one,this.incrementOne(r[a],i[a],n.add,n.rem);else for(l=0,u=0;l<o;++l)t.modified("query",l)&&(u|=r[l].one,this.incrementAll(r[l],i[l],s,n.add),n.rem=n.add);return u},incrementAll(t,e,n,r){const i=this.value,s=i.seen(),o=i.curr(),u=i.prev(),a=t.index(),l=t.bisect(t.range),c=t.bisect(e),f=c[0],x=c[1],h=l[0],p=l[1],m=t.one;let g,y,E;if(f<h)for(g=f,y=Math.min(h,x);g<y;++g)E=a[g],s[E]!==n&&(u[E]=o[E],s[E]=n,r.push(E)),o[E]^=m;else if(f>h)for(g=h,y=Math.min(f,p);g<y;++g)E=a[g],s[E]!==n&&(u[E]=o[E],s[E]=n,r.push(E)),o[E]^=m;if(x>p)for(g=Math.max(f,p),y=x;g<y;++g)E=a[g],s[E]!==n&&(u[E]=o[E],s[E]=n,r.push(E)),o[E]^=m;else if(x<p)for(g=Math.max(h,x),y=p;g<y;++g)E=a[g],s[E]!==n&&(u[E]=o[E],s[E]=n,r.push(E)),o[E]^=m;t.range=e.slice()},incrementOne(t,e,n,r){const i=this.value,s=i.curr(),o=t.index(),u=t.bisect(t.range),a=t.bisect(e),l=a[0],c=a[1],f=u[0],x=u[1],h=t.one;let p,m,g;if(l<f)for(p=l,m=Math.min(f,c);p<m;++p)g=o[p],s[g]^=h,n.push(g);else if(l>f)for(p=f,m=Math.min(l,x);p<m;++p)g=o[p],s[g]^=h,r.push(g);if(c>x)for(p=Math.max(l,x),m=c;p<m;++p)g=o[p],s[g]^=h,n.push(g);else if(c<x)for(p=Math.max(f,c),m=x;p<m;++p)g=o[p],s[g]^=h,r.push(g);t.range=e.slice()}});function V6(t){pe.call(this,null,t)}V6.Definition={type:"ResolveFilter",metadata:{},params:[{name:"ignore",type:"number",required:!0,description:"A bit mask indicating which filters to ignore."},{name:"filter",type:"object",required:!0,description:"Per-tuple filter bitmaps from a CrossFilter transform."}]},Fe(V6,pe,{transform(t,e){const n=~(t.ignore||0),r=t.filter,i=r.mask;if(!(i&n))return e.StopPropagation;const s=e.fork(e.ALL),o=r.data(),u=r.curr(),a=r.prev(),l=c=>u[c]&n?null:o[c];return s.filter(s.MOD,l),i&i-1?(s.filter(s.ADD,c=>{const f=u[c]&n;return!f&&f^a[c]&n?o[c]:null}),s.filter(s.REM,c=>{const f=u[c]&n;return f&&!(f^(f^a[c]&n))?o[c]:null})):(s.filter(s.ADD,l),s.filter(s.REM,c=>(u[c]&n)===i?o[c]:null)),s.filter(s.SOURCE,c=>l(c._index))}});const mje=Object.freeze(Object.defineProperty({__proto__:null,crossfilter:W6,resolvefilter:V6},Symbol.toStringTag,{value:"Module"})),yje="RawCode",id="Literal",Eje="Property",Aje="Identifier",Sje="ArrayExpression",vje="BinaryExpression",Mne="CallExpression",_je="ConditionalExpression",Cje="LogicalExpression",bje="MemberExpression",Tje="ObjectExpression",Rje="UnaryExpression";function tu(t){this.type=t}tu.prototype.visit=function(t){let e,n,r;if(t(this))return 1;for(e=Oje(this),n=0,r=e.length;n<r;++n)if(e[n].visit(t))return 1};function Oje(t){switch(t.type){case Sje:return t.elements;case vje:case Cje:return[t.left,t.right];case Mne:return[t.callee].concat(t.arguments);case _je:return[t.test,t.consequent,t.alternate];case bje:return[t.object,t.property];case Tje:return t.properties;case Eje:return[t.key,t.value];case Rje:return[t.argument];case Aje:case id:case yje:default:return[]}}var pa,Ge,Ae,ni,kt,tO=1,FE=2,sd=3,bc=4,nO=5,od=6,ss=7,wE=8,Nje=9;pa={},pa[tO]="Boolean",pa[FE]="<end>",pa[sd]="Identifier",pa[bc]="Keyword",pa[nO]="Null",pa[od]="Numeric",pa[ss]="Punctuator",pa[wE]="String",pa[Nje]="RegularExpression";var Dje="ArrayExpression",Fje="BinaryExpression",wje="CallExpression",Lje="ConditionalExpression",jne="Identifier",Ije="Literal",$je="LogicalExpression",Bje="MemberExpression",kje="ObjectExpression",Pje="Property",Mje="UnaryExpression",gr="Unexpected token %0",jje="Unexpected number",Uje="Unexpected string",qje="Unexpected identifier",Hje="Unexpected reserved word",zje="Unexpected end of input",Y6="Invalid regular expression",X6="Invalid regular expression: missing /",Une="Octal literals are not allowed in strict mode.",Qje="Duplicate data property in object literal not allowed in strict mode",wr="ILLEGAL",LE="Disabled.",Gje=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),Wje=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function rO(t,e){if(!t)throw new Error("ASSERT: "+e)}function Ml(t){return t>=48&&t<=57}function K6(t){return"0123456789abcdefABCDEF".indexOf(t)>=0}function IE(t){return"01234567".indexOf(t)>=0}function Vje(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0}function $E(t){return t===10||t===13||t===8232||t===8233}function BE(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&Gje.test(String.fromCharCode(t))}function iO(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&Wje.test(String.fromCharCode(t))}const Yje={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function qne(){for(;Ae<ni;){const t=Ge.charCodeAt(Ae);if(Vje(t)||$E(t))++Ae;else break}}function J6(t){var e,n,r,i=0;for(n=t==="u"?4:2,e=0;e<n;++e)Ae<ni&&K6(Ge[Ae])?(r=Ge[Ae++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):Nt({},gr,wr);return String.fromCharCode(i)}function Xje(){var t,e,n,r;for(t=Ge[Ae],e=0,t==="}"&&Nt({},gr,wr);Ae<ni&&(t=Ge[Ae++],!!K6(t));)e=e*16+"0123456789abcdef".indexOf(t.toLowerCase());return(e>1114111||t!=="}")&&Nt({},gr,wr),e<=65535?String.fromCharCode(e):(n=(e-65536>>10)+55296,r=(e-65536&1023)+56320,String.fromCharCode(n,r))}function Hne(){var t,e;for(t=Ge.charCodeAt(Ae++),e=String.fromCharCode(t),t===92&&(Ge.charCodeAt(Ae)!==117&&Nt({},gr,wr),++Ae,t=J6("u"),(!t||t==="\\"||!BE(t.charCodeAt(0)))&&Nt({},gr,wr),e=t);Ae<ni&&(t=Ge.charCodeAt(Ae),!!iO(t));)++Ae,e+=String.fromCharCode(t),t===92&&(e=e.substr(0,e.length-1),Ge.charCodeAt(Ae)!==117&&Nt({},gr,wr),++Ae,t=J6("u"),(!t||t==="\\"||!iO(t.charCodeAt(0)))&&Nt({},gr,wr),e+=t);return e}function Kje(){var t,e;for(t=Ae++;Ae<ni;){if(e=Ge.charCodeAt(Ae),e===92)return Ae=t,Hne();if(iO(e))++Ae;else break}return Ge.slice(t,Ae)}function Jje(){var t,e,n;return t=Ae,e=Ge.charCodeAt(Ae)===92?Hne():Kje(),e.length===1?n=sd:Yje.hasOwnProperty(e)?n=bc:e==="null"?n=nO:e==="true"||e==="false"?n=tO:n=sd,{type:n,value:e,start:t,end:Ae}}function Z6(){var t=Ae,e=Ge.charCodeAt(Ae),n,r=Ge[Ae],i,s,o;switch(e){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++Ae,{type:ss,value:String.fromCharCode(e),start:t,end:Ae};default:if(n=Ge.charCodeAt(Ae+1),n===61)switch(e){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return Ae+=2,{type:ss,value:String.fromCharCode(e)+String.fromCharCode(n),start:t,end:Ae};case 33:case 61:return Ae+=2,Ge.charCodeAt(Ae)===61&&++Ae,{type:ss,value:Ge.slice(t,Ae),start:t,end:Ae}}}if(o=Ge.substr(Ae,4),o===">>>=")return Ae+=4,{type:ss,value:o,start:t,end:Ae};if(s=o.substr(0,3),s===">>>"||s==="<<="||s===">>=")return Ae+=3,{type:ss,value:s,start:t,end:Ae};if(i=s.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return Ae+=2,{type:ss,value:i,start:t,end:Ae};if(i==="//"&&Nt({},gr,wr),"<>=!+-*%&|^/".indexOf(r)>=0)return++Ae,{type:ss,value:r,start:t,end:Ae};Nt({},gr,wr)}function Zje(t){let e="";for(;Ae<ni&&K6(Ge[Ae]);)e+=Ge[Ae++];return e.length===0&&Nt({},gr,wr),BE(Ge.charCodeAt(Ae))&&Nt({},gr,wr),{type:od,value:parseInt("0x"+e,16),start:t,end:Ae}}function eUe(t){let e="0"+Ge[Ae++];for(;Ae<ni&&IE(Ge[Ae]);)e+=Ge[Ae++];return(BE(Ge.charCodeAt(Ae))||Ml(Ge.charCodeAt(Ae)))&&Nt({},gr,wr),{type:od,value:parseInt(e,8),octal:!0,start:t,end:Ae}}function zne(){var t,e,n;if(n=Ge[Ae],rO(Ml(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),e=Ae,t="",n!=="."){if(t=Ge[Ae++],n=Ge[Ae],t==="0"){if(n==="x"||n==="X")return++Ae,Zje(e);if(IE(n))return eUe(e);n&&Ml(n.charCodeAt(0))&&Nt({},gr,wr)}for(;Ml(Ge.charCodeAt(Ae));)t+=Ge[Ae++];n=Ge[Ae]}if(n==="."){for(t+=Ge[Ae++];Ml(Ge.charCodeAt(Ae));)t+=Ge[Ae++];n=Ge[Ae]}if(n==="e"||n==="E")if(t+=Ge[Ae++],n=Ge[Ae],(n==="+"||n==="-")&&(t+=Ge[Ae++]),Ml(Ge.charCodeAt(Ae)))for(;Ml(Ge.charCodeAt(Ae));)t+=Ge[Ae++];else Nt({},gr,wr);return BE(Ge.charCodeAt(Ae))&&Nt({},gr,wr),{type:od,value:parseFloat(t),start:e,end:Ae}}function tUe(){var t="",e,n,r,i,s=!1;for(e=Ge[Ae],rO(e==="'"||e==='"',"String literal must starts with a quote"),n=Ae,++Ae;Ae<ni;)if(r=Ge[Ae++],r===e){e="";break}else if(r==="\\")if(r=Ge[Ae++],!r||!$E(r.charCodeAt(0)))switch(r){case"u":case"x":Ge[Ae]==="{"?(++Ae,t+=Xje()):t+=J6(r);break;case"n":t+=`
|
|
1314
1314
|
`;break;case"r":t+="\r";break;case"t":t+=" ";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:IE(r)?(i="01234567".indexOf(r),i!==0&&(s=!0),Ae<ni&&IE(Ge[Ae])&&(s=!0,i=i*8+"01234567".indexOf(Ge[Ae++]),"0123".indexOf(r)>=0&&Ae<ni&&IE(Ge[Ae])&&(i=i*8+"01234567".indexOf(Ge[Ae++]))),t+=String.fromCharCode(i)):t+=r;break}else r==="\r"&&Ge[Ae]===`
|
|
1315
|
-
`&&++Ae;else{if($E(r.charCodeAt(0)))break;t+=r}return e!==""&&Nt({},gr,wr),{type:wE,value:t,octal:s,start:n,end:Ae}}function nUe(t,e){let n=t;e.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";Nt({},Y6)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{Nt({},Y6)}try{return new RegExp(t,e)}catch{return null}}function rUe(){var t,e,n,r,i;for(t=Ge[Ae],rO(t==="/","Regular expression literal must start with a slash"),e=Ge[Ae++],n=!1,r=!1;Ae<ni;)if(t=Ge[Ae++],e+=t,t==="\\")t=Ge[Ae++],$E(t.charCodeAt(0))&&Nt({},X6),e+=t;else if($E(t.charCodeAt(0)))Nt({},X6);else if(n)t==="]"&&(n=!1);else if(t==="/"){r=!0;break}else t==="["&&(n=!0);return r||Nt({},X6),i=e.substr(1,e.length-2),{value:i,literal:e}}function iUe(){var t,e,n;for(e="",n="";Ae<ni&&(t=Ge[Ae],!!iO(t.charCodeAt(0)));)++Ae,t==="\\"&&Ae<ni?Nt({},gr,wr):(n+=t,e+=t);return n.search(/[^gimuy]/g)>=0&&Nt({},Y6,n),{value:n,literal:e}}function sUe(){var t,e,n,r;return Pt=null,qne(),t=Ae,e=rUe(),n=iUe(),r=nUe(e.value,n.value),{literal:e.literal+n.literal,value:r,regex:{pattern:e.value,flags:n.value},start:t,end:Ae}}function oUe(t){return t.type===sd||t.type===bc||t.type===tO||t.type===nO}function Qne(){if(qne(),Ae>=ni)return{type:FE,start:Ae,end:Ae};const t=Ge.charCodeAt(Ae);return BE(t)?Jje():t===40||t===41||t===59?Z6():t===39||t===34?tUe():t===46?Ml(Ge.charCodeAt(Ae+1))?zne():Z6():Ml(t)?zne():Z6()}function os(){const t=Pt;return Ae=t.end,Pt=Qne(),Ae=t.end,t}function Gne(){const t=Ae;Pt=Qne(),Ae=t}function uUe(t){const e=new tu(Dje);return e.elements=t,e}function Wne(t,e,n){const r=new tu(t==="||"||t==="&&"?$je:Fje);return r.operator=t,r.left=e,r.right=n,r}function aUe(t,e){const n=new tu(wje);return n.callee=t,n.arguments=e,n}function lUe(t,e,n){const r=new tu(Lje);return r.test=t,r.consequent=e,r.alternate=n,r}function ek(t){const e=new tu(jne);return e.name=t,e}function kE(t){const e=new tu(Ije);return e.value=t.value,e.raw=Ge.slice(t.start,t.end),t.regex&&(e.raw==="//"&&(e.raw="/(?:)/"),e.regex=t.regex),e}function Vne(t,e,n){const r=new tu(Bje);return r.computed=t==="[",r.object=e,r.property=n,r.computed||(n.member=!0),r}function cUe(t){const e=new tu(kje);return e.properties=t,e}function Yne(t,e,n){const r=new tu(Pje);return r.key=e,r.value=n,r.kind=t,r}function fUe(t,e){const n=new tu(Mje);return n.operator=t,n.argument=e,n.prefix=!0,n}function Nt(t,e){var n,r=Array.prototype.slice.call(arguments,2),i=e.replace(/%(\d)/g,(s,o)=>(rO(o<r.length,"Message reference must be in range"),r[o]));throw n=new Error(i),n.index=Ae,n.description=i,n}function sO(t){t.type===FE&&Nt(t,zje),t.type===od&&Nt(t,jje),t.type===wE&&Nt(t,Uje),t.type===sd&&Nt(t,qje),t.type===bc&&Nt(t,Hje),Nt(t,gr,t.value)}function ri(t){const e=os();(e.type!==ss||e.value!==t)&&sO(e)}function nn(t){return Pt.type===ss&&Pt.value===t}function tk(t){return Pt.type===bc&&Pt.value===t}function xUe(){const t=[];for(Ae=Pt.start,ri("[");!nn("]");)nn(",")?(os(),t.push(null)):(t.push(ud()),nn("]")||ri(","));return os(),uUe(t)}function Xne(){Ae=Pt.start;const t=os();return t.type===wE||t.type===od?(t.octal&&Nt(t,Une),kE(t)):ek(t.value)}function dUe(){var t,e,n,r;if(Ae=Pt.start,t=Pt,t.type===sd)return n=Xne(),ri(":"),r=ud(),Yne("init",n,r);if(t.type===FE||t.type===ss)sO(t);else return e=Xne(),ri(":"),r=ud(),Yne("init",e,r)}function hUe(){var t=[],e,n,r,i={},s=String;for(Ae=Pt.start,ri("{");!nn("}");)e=dUe(),e.key.type===jne?n=e.key.name:n=s(e.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?Nt({},Qje):i[r]=!0,t.push(e),nn("}")||ri(",");return ri("}"),cUe(t)}function pUe(){ri("(");const t=nk();return ri(")"),t}const gUe={if:1};function mUe(){var t,e,n;if(nn("("))return pUe();if(nn("["))return xUe();if(nn("{"))return hUe();if(t=Pt.type,Ae=Pt.start,t===sd||gUe[Pt.value])n=ek(os().value);else if(t===wE||t===od)Pt.octal&&Nt(Pt,Une),n=kE(os());else{if(t===bc)throw new Error(LE);t===tO?(e=os(),e.value=e.value==="true",n=kE(e)):t===nO?(e=os(),e.value=null,n=kE(e)):nn("/")||nn("/=")?(n=kE(sUe()),Gne()):sO(os())}return n}function yUe(){const t=[];if(ri("("),!nn(")"))for(;Ae<ni&&(t.push(ud()),!nn(")"));)ri(",");return ri(")"),t}function EUe(){Ae=Pt.start;const t=os();return oUe(t)||sO(t),ek(t.value)}function AUe(){return ri("."),EUe()}function SUe(){ri("[");const t=nk();return ri("]"),t}function vUe(){var t,e,n;for(t=mUe();;)if(nn("."))n=AUe(),t=Vne(".",t,n);else if(nn("("))e=yUe(),t=aUe(t,e);else if(nn("["))n=SUe(),t=Vne("[",t,n);else break;return t}function Kne(){const t=vUe();if(Pt.type===ss&&(nn("++")||nn("--")))throw new Error(LE);return t}function oO(){var t,e;if(Pt.type!==ss&&Pt.type!==bc)e=Kne();else{if(nn("++")||nn("--"))throw new Error(LE);if(nn("+")||nn("-")||nn("~")||nn("!"))t=os(),e=oO(),e=fUe(t.value,e);else{if(tk("delete")||tk("void")||tk("typeof"))throw new Error(LE);e=Kne()}}return e}function Jne(t){let e=0;if(t.type!==ss&&t.type!==bc)return 0;switch(t.value){case"||":e=1;break;case"&&":e=2;break;case"|":e=3;break;case"^":e=4;break;case"&":e=5;break;case"==":case"!=":case"===":case"!==":e=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":e=7;break;case"<<":case">>":case">>>":e=8;break;case"+":case"-":e=9;break;case"*":case"/":case"%":e=11;break}return e}function _Ue(){var t,e,n,r,i,s,o,u,a,l;if(t=Pt,a=oO(),r=Pt,i=Jne(r),i===0)return a;for(r.prec=i,os(),e=[t,Pt],o=oO(),s=[a,r,o];(i=Jne(Pt))>0;){for(;s.length>2&&i<=s[s.length-2].prec;)o=s.pop(),u=s.pop().value,a=s.pop(),e.pop(),n=Wne(u,a,o),s.push(n);r=os(),r.prec=i,s.push(r),e.push(Pt),n=oO(),s.push(n)}for(l=s.length-1,n=s[l],e.pop();l>1;)e.pop(),n=Wne(s[l-1].value,s[l-2],n),l-=2;return n}function ud(){var t,e,n;return t=_Ue(),nn("?")&&(os(),e=ud(),ri(":"),n=ud(),t=lUe(t,e,n)),t}function nk(){const t=ud();if(nn(","))throw new Error(LE);return t}function Zne(t){Ge=t,Ae=0,ni=Ge.length,Pt=null,Gne();const e=nk();if(Pt.type!==FE)throw new Error("Unexpect token after expression.");return e}var ere={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function tre(t){function e(o,u,a,l){let c=t(u[0]);return a&&(c=a+"("+c+")",a.lastIndexOf("new ",0)===0&&(c="("+c+")")),c+"."+o+(l<0?"":l===0?"()":"("+u.slice(1).map(t).join(",")+")")}function n(o,u,a){return l=>e(o,l,u,a)}const r="new Date",i="String",s="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(o){o.length<3&&ve("Missing arguments to clamp function."),o.length>3&&ve("Too many arguments to clamp function.");const u=o.map(t);return"Math.max("+u[1]+", Math.min("+u[2]+","+u[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:s,test:n("test",s),if:function(o){o.length<3&&ve("Missing arguments to if function."),o.length>3&&ve("Too many arguments to if function.");const u=o.map(t);return"("+u[0]+"?"+u[1]+":"+u[2]+")"}}}function CUe(t){const e=t&&t.length-1;return e&&(t[0]==='"'&&t[e]==='"'||t[0]==="'"&&t[e]==="'")?t.slice(1,-1):t}function bUe(t){t=t||{};const e=t.allowed?Xu(t.allowed):{},n=t.forbidden?Xu(t.forbidden):{},r=t.constants||ere,i=(t.functions||tre)(f),s=t.globalvar,o=t.fieldvar,u=ct(s)?s:p=>`${s}["${p}"]`;let a={},l={},c=0;function f(p){if(je(p))return p;const m=x[p.type];return m==null&&ve("Unsupported type: "+p.type),m(p)}const x={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return c>0?m:Je(n,m)?ve("Illegal identifier: "+m):Je(r,m)?r[m]:Je(e,m)?m:(a[m]=1,u(m))},MemberExpression:p=>{const m=!p.computed,g=f(p.object);m&&(c+=1);const y=f(p.property);return g===o&&(l[CUe(y)]=1),m&&(c-=1),g+(m?"."+y:"["+y+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&ve("Illegal callee type: "+p.callee.type);const m=p.callee.name,g=p.arguments,y=Je(i,m)&&i[m];return y||ve("Unrecognized function: "+m),ct(y)?y(g):y+"("+g.map(f).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(f).join(",")+"]",BinaryExpression:p=>"("+f(p.left)+" "+p.operator+" "+f(p.right)+")",UnaryExpression:p=>"("+p.operator+f(p.argument)+")",ConditionalExpression:p=>"("+f(p.test)+"?"+f(p.consequent)+":"+f(p.alternate)+")",LogicalExpression:p=>"("+f(p.left)+p.operator+f(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(f).join(",")+"}",Property:p=>{c+=1;const m=f(p.key);return c-=1,m+":"+f(p.value)}};function h(p){const m={code:f(p),globals:Object.keys(a),fields:Object.keys(l)};return a={},l={},m}return h.functions=i,h.constants=r,h}function rk(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function TUe(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function RUe(t){let e,n,r;t.length!==2?(e=rk,n=(u,a)=>rk(t(u),a),r=(u,a)=>t(u)-a):(e=t===rk||t===TUe?t:OUe,n=t,r=t);function i(u,a,l=0,c=u.length){if(l<c){if(e(a,a)!==0)return c;do{const f=l+c>>>1;n(u[f],a)<0?l=f+1:c=f}while(l<c)}return l}function s(u,a,l=0,c=u.length){if(l<c){if(e(a,a)!==0)return c;do{const f=l+c>>>1;n(u[f],a)<=0?l=f+1:c=f}while(l<c)}return l}function o(u,a,l=0,c=u.length){const f=i(u,a,l,c-1);return f>l&&r(u[f-1],a)>-r(u[f],a)?f-1:f}return{left:i,center:o,right:s}}function OUe(){return 0}function NUe(t,...e){t=new Ob(t),e=e.map(DUe);e:for(const n of t)for(const r of e)if(!r.has(n)){t.delete(n);continue e}return t}function DUe(t){return t instanceof Ob?t:new Ob(t)}function FUe(...t){const e=new Ob;for(const n of t)for(const r of n)e.add(r);return e}const ik="intersect",nre="union",wUe="vlMulti",LUe="vlPoint",rre="or",IUe="and",ga="_vgsid_",PE=Ds(ga),$Ue="E",BUe="R",kUe="R-E",PUe="R-LE",MUe="R-RE",uO="index:unit";function ire(t,e){for(var n=e.fields,r=e.values,i=n.length,s=0,o,u;s<i;++s)if(u=n[s],u.getter=Ds.getter||Ds(u.field),o=u.getter(t),vx(o)&&(o=yi(o)),vx(r[s])&&(r[s]=yi(r[s])),vx(r[s][0])&&(r[s]=r[s].map(yi)),u.type===$Ue){if(_e(r[s])?r[s].indexOf(o)<0:o!==r[s])return!1}else if(u.type===BUe){if(!ry(o,r[s]))return!1}else if(u.type===MUe){if(!ry(o,r[s],!0,!1))return!1}else if(u.type===kUe){if(!ry(o,r[s],!1,!1))return!1}else if(u.type===PUe&&!ry(o,r[s],!1,!0))return!1;return!0}function jUe(t,e,n){for(var r=this.context.data[t],i=r?r.values.value:[],s=r?r[uO]&&r[uO].value:void 0,o=n===ik,u=i.length,a=0,l,c,f,x,h;a<u;++a)if(l=i[a],s&&o){if(c=c||{},f=c[x=l.unit]||0,f===-1)continue;if(h=ire(e,l),c[x]=h?-1:++f,h&&s.size===1)return!0;if(!h&&f===s.get(x).count)return!1}else if(h=ire(e,l),o^h)return h;return u&&o}const sre=RUe(PE),UUe=sre.left,qUe=sre.right;function HUe(t,e,n){const r=this.context.data[t],i=r?r.values.value:[],s=r?r[uO]&&r[uO].value:void 0,o=n===ik,u=PE(e),a=UUe(i,u);if(a===i.length||PE(i[a])!==u)return!1;if(s&&o){if(s.size===1)return!0;if(qUe(i,u)-a<s.size)return!1}return!0}function zUe(t,e){return t.map(n=>ft(e.fields?{values:e.fields.map(r=>(r.getter||(r.getter=Ds(r.field)))(n.datum))}:{[ga]:PE(n.datum)},e))}function QUe(t,e,n,r){for(var i=this.context.data[t],s=i?i.values.value:[],o={},u={},a={},l,c,f,x,h,p,m,g,y,E,A=s.length,S=0,v,_;S<A;++S)if(l=s[S],x=l.unit,c=l.fields,f=l.values,c&&f){for(v=0,_=c.length;v<_;++v)h=c[v],m=o[h.field]||(o[h.field]={}),g=m[x]||(m[x]=[]),a[h.field]=y=h.type.charAt(0),E=sk[`${y}_union`],m[x]=E(g,Pe(f[v]));n&&(g=u[x]||(u[x]=[]),g.push(Pe(f).reduce((C,b,R)=>(C[c[R].field]=b,C),{})))}else h=ga,p=PE(l),m=o[h]||(o[h]={}),g=m[x]||(m[x]=[]),g.push(p),n&&(g=u[x]||(u[x]=[]),g.push({[ga]:p}));if(e=e||nre,o[ga]?o[ga]=sk[`${ga}_${e}`](...Object.values(o[ga])):Object.keys(o).forEach(C=>{o[C]=Object.keys(o[C]).map(b=>o[C][b]).reduce((b,R)=>b===void 0?R:sk[`${a[C]}_${e}`](b,R))}),s=Object.keys(u),n&&s.length){const C=r?LUe:wUe;o[C]=e===nre?{[rre]:s.reduce((b,R)=>(b.push(...u[R]),b),[])}:{[IUe]:s.map(b=>({[rre]:u[b]}))}}return o}var sk={[`${ga}_union`]:FUe,[`${ga}_intersect`]:NUe,E_union:function(t,e){if(!t.length)return e;for(var n=0,r=e.length;n<r;++n)t.indexOf(e[n])<0&&t.push(e[n]);return t},E_intersect:function(t,e){return t.length?t.filter(n=>e.indexOf(n)>=0):e},R_union:function(t,e){var n=yi(e[0]),r=yi(e[1]);return n>r&&(n=e[1],r=e[0]),t.length?(t[0]>n&&(t[0]=n),t[1]<r&&(t[1]=r),t):[n,r]},R_intersect:function(t,e){var n=yi(e[0]),r=yi(e[1]);return n>r&&(n=e[1],r=e[0]),t.length?r<t[0]||t[1]<n?[]:(t[0]<n&&(t[0]=n),t[1]>r&&(t[1]=r),t):[n,r]}};const GUe=":",WUe="@";function ok(t,e,n,r){e[0].type!==id&&ve("First argument to selection functions must be a string literal.");const i=e[0].value,s=e.length>=2&&vt(e).value,o="unit",u=WUe+o,a=GUe+i;s===ik&&!Je(r,u)&&(r[u]=n.getData(i).indataRef(n,o)),Je(r,a)||(r[a]=n.getData(i).tuplesRef())}function ore(t){const e=this.context.data[t];return e?e.values.value:[]}function VUe(t,e,n){const r=this.context.data[t]["index:"+e],i=r?r.value.get(n):void 0;return i&&i.count}function YUe(t,e){const n=this.context.dataflow,r=this.context.data[t],i=r.input;return n.pulse(i,n.changeset().remove(Go).insert(e)),1}function XUe(t,e,n){if(t){const r=this.context.dataflow,i=t.mark.source;r.pulse(i,r.changeset().encode(t,e))}return n!==void 0?n:t}const ME=t=>function(e,n){return this.context.dataflow.locale()[t](n)(e)},KUe=ME("format"),ure=ME("timeFormat"),JUe=ME("utcFormat"),ZUe=ME("timeParse"),eqe=ME("utcParse"),aO=new Date(2e3,0,1);function lO(t,e,n){return!Number.isInteger(t)||!Number.isInteger(e)?"":(aO.setYear(2e3),aO.setMonth(t),aO.setDate(e),ure.call(this,aO,n))}function tqe(t){return lO.call(this,t,1,"%B")}function nqe(t){return lO.call(this,t,1,"%b")}function rqe(t){return lO.call(this,0,2+t,"%A")}function iqe(t){return lO.call(this,0,2+t,"%a")}const sqe=":",oqe="@",uk="%",are="$";function ak(t,e,n,r){e[0].type!==id&&ve("First argument to data functions must be a string literal.");const i=e[0].value,s=sqe+i;if(!Je(s,r))try{r[s]=n.getData(i).tuplesRef()}catch{}}function uqe(t,e,n,r){e[0].type!==id&&ve("First argument to indata must be a string literal."),e[1].type!==id&&ve("Second argument to indata must be a string literal.");const i=e[0].value,s=e[1].value,o=oqe+s;Je(o,r)||(r[o]=n.getData(i).indataRef(n,s))}function us(t,e,n,r){if(e[0].type===id)lre(n,r,e[0].value);else for(t in n.scales)lre(n,r,t)}function lre(t,e,n){const r=uk+n;if(!Je(e,r))try{e[r]=t.scaleRef(n)}catch{}}function jl(t,e){if(ct(t))return t;if(je(t)){const n=e.scales[t];return n&&l$e(n.value)?n.value:void 0}}function aqe(t,e,n){e.__bandwidth=i=>i&&i.bandwidth?i.bandwidth():0,n._bandwidth=us,n._range=us,n._scale=us;const r=i=>"_["+(i.type===id?we(uk+i.value):we(uk)+"+"+t(i))+"]";return{_bandwidth:i=>`this.__bandwidth(${r(i[0])})`,_range:i=>`${r(i[0])}.range()`,_scale:i=>`${r(i[0])}(${t(i[1])})`}}function lk(t,e){return function(n,r,i){if(n){const s=jl(n,(i||this).context);return s&&s.path[t](r)}else return e(r)}}const lqe=lk("area",R8e),cqe=lk("bounds",F8e),fqe=lk("centroid",k8e);function xqe(t){const e=this.context.group;let n=!1;if(e)for(;t;){if(t===e){n=!0;break}t=t.mark.group}return n}function ck(t,e,n){try{t[e].apply(t,["EXPRESSION"].concat([].slice.call(n)))}catch(r){t.warn(r)}return n[n.length-1]}function dqe(){return ck(this.context.dataflow,"warn",arguments)}function hqe(){return ck(this.context.dataflow,"info",arguments)}function pqe(){return ck(this.context.dataflow,"debug",arguments)}function fk(t){const e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}function xk(t){const e=ac(t),n=fk(e.r),r=fk(e.g),i=fk(e.b);return .2126*n+.7152*r+.0722*i}function gqe(t,e){const n=xk(t),r=xk(e),i=Math.max(n,r),s=Math.min(n,r);return(i+.05)/(s+.05)}function mqe(){const t=[].slice.call(arguments);return t.unshift({}),ft(...t)}function cre(t,e){return t===e||t!==t&&e!==e?!0:_e(t)?_e(e)&&t.length===e.length?yqe(t,e):!1:He(t)&&He(e)?fre(t,e):!1}function yqe(t,e){for(let n=0,r=t.length;n<r;++n)if(!cre(t[n],e[n]))return!1;return!0}function fre(t,e){for(const n in t)if(!cre(t[n],e[n]))return!1;return!0}function xre(t){return e=>fre(t,e)}function Eqe(t,e,n,r,i,s){const o=this.context.dataflow,u=this.context.data[t],a=u.input,l=o.stamp();let c=u.changes,f,x;if(o._trigger===!1||!(a.value.length||e||r))return 0;if((!c||c.stamp<l)&&(u.changes=c=o.changeset(),c.stamp=l,o.runAfter(()=>{u.modified=!0,o.pulse(a,c).run()},!0,1)),n&&(f=n===!0?Go:_e(n)||O5(n)?n:xre(n),c.remove(f)),e&&c.insert(e),r&&(f=xre(r),a.value.some(f)?c.remove(f):c.insert(r)),i)for(x in s)c.modify(i,x,s[x]);return 1}function Aqe(t){const e=t.touches,n=e[0].clientX-e[1].clientX,r=e[0].clientY-e[1].clientY;return Math.sqrt(n*n+r*r)}function Sqe(t){const e=t.touches;return Math.atan2(e[0].clientY-e[1].clientY,e[0].clientX-e[1].clientX)}const dre={};function vqe(t,e){const n=dre[e]||(dre[e]=Ds(e));return _e(t)?t.map(n):n(t)}function dk(t){return _e(t)||ArrayBuffer.isView(t)?t:null}function hk(t){return dk(t)||(je(t)?t:null)}function _qe(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return dk(t).join(...n)}function Cqe(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return hk(t).indexOf(...n)}function bqe(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return hk(t).lastIndexOf(...n)}function Tqe(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return hk(t).slice(...n)}function Rqe(t,e,n){return ct(n)&&ve("Function argument passed to replace."),String(t).replace(e,n)}function Oqe(t){return dk(t).slice().reverse()}function Nqe(t,e,n){return XI(t||0,e||0,n||0)}function Dqe(t,e){const n=jl(t,(e||this).context);return n&&n.bandwidth?n.bandwidth():0}function Fqe(t,e){const n=jl(t,(e||this).context);return n?n.copy():void 0}function wqe(t,e){const n=jl(t,(e||this).context);return n?n.domain():[]}function Lqe(t,e,n){const r=jl(t,(n||this).context);return r?_e(e)?(r.invertRange||r.invert)(e):(r.invert||r.invertExtent)(e):void 0}function Iqe(t,e){const n=jl(t,(e||this).context);return n&&n.range?n.range():[]}function $qe(t,e,n){const r=jl(t,(n||this).context);return r?r(e):void 0}function Bqe(t,e,n,r,i){t=jl(t,(i||this).context);const s=L$e(e,n);let o=t.domain(),u=o[0],a=vt(o),l=mi;return a-u?l=eJ(t,u,a):t=(t.interpolator?Ot("sequential")().interpolator(t.interpolator()):Ot("linear")().interpolate(t.interpolate()).range(t.range())).domain([u=0,a=1]),t.ticks&&(o=t.ticks(+r||15),u!==o[0]&&o.unshift(u),a!==vt(o)&&o.push(a)),o.forEach(c=>s.stop(l(c),t(c))),s}function kqe(t,e,n){const r=jl(t,(n||this).context);return function(i){return r?r.path.context(i)(e):""}}function Pqe(t){let e=null;return function(n){return n?bT(n,e=e||l$(t)):t}}const hre=t=>t.data;function pre(t,e){const n=ore.call(e,t);return n.root&&n.root.lookup||{}}function Mqe(t,e,n){const r=pre(t,this),i=r[e],s=r[n];return i&&s?i.path(s).map(hre):void 0}function jqe(t,e){const n=pre(t,this)[e];return n?n.ancestors().map(hre):void 0}const gre=()=>typeof window<"u"&&window||null;function Uqe(){const t=gre();return t?t.screen:{}}function qqe(){const t=gre();return t?[t.innerWidth,t.innerHeight]:[void 0,void 0]}function Hqe(){const t=this.context.dataflow,e=t.container&&t.container();return e?[e.clientWidth,e.clientHeight]:[void 0,void 0]}function mre(t,e,n){if(!t)return[];const[r,i]=t,s=new Jn().set(r[0],r[1],i[0],i[1]),o=n||this.context.dataflow.scenegraph().root;return hke(o,s,zqe(e))}function zqe(t){let e=null;if(t){const n=Pe(t.marktype),r=Pe(t.markname);e=i=>(!n.length||n.some(s=>i.marktype===s))&&(!r.length||r.some(s=>i.name===s))}return e}function Qqe(t,e,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5;t=Pe(t);const i=t[t.length-1];return i===void 0||Math.sqrt((i[0]-e)**2+(i[1]-n)**2)>r?[...t,[e,n]]:t}function Gqe(t){return Pe(t).reduce((e,n,r)=>{let[i,s]=n;return e+=r==0?`M ${i},${s} `:r===t.length-1?" Z":`L ${i},${s} `},"")}function Wqe(t,e,n){const{x:r,y:i,mark:s}=n,o=new Jn().set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[a,l]of e)a<o.x1&&(o.x1=a),a>o.x2&&(o.x2=a),l<o.y1&&(o.y1=l),l>o.y2&&(o.y2=l);return o.translate(r,i),mre([[o.x1,o.y1],[o.x2,o.y2]],t,s).filter(a=>Vqe(a.x,a.y,e))}function Vqe(t,e,n){let r=0;for(let i=0,s=n.length-1;i<n.length;s=i++){const[o,u]=n[s],[a,l]=n[i];l>e!=u>e&&t<(o-a)*(e-l)/(u-l)+a&&r++}return r&1}const jE={random(){return Cl()},cumulativeNormal:$5,cumulativeLogNormal:NY,cumulativeUniform:LY,densityNormal:CY,densityLogNormal:OY,densityUniform:wY,quantileNormal:B5,quantileLogNormal:DY,quantileUniform:IY,sampleNormal:I5,sampleLogNormal:RY,sampleUniform:FY,isArray:_e,isBoolean:yp,isDate:vx,isDefined(t){return t!==void 0},isNumber:tn,isObject:He,isRegExp:IDe,isString:je,isTuple:O5,isValid(t){return t!=null&&t===t},toBoolean:UW,toDate(t){return qW(t)},toNumber:yi,toString:HW,indexof:Cqe,join:_qe,lastindexof:bqe,replace:Rqe,reverse:Oqe,slice:Tqe,flush:wDe,lerp:$De,merge:mqe,pad:MDe,peek:vt,pluck:vqe,span:Rb,inrange:ry,truncate:UDe,rgb:ac,lab:cT,hcl:fT,hsl:uT,luminance:xk,contrast:gqe,sequence:Fs,format:KUe,utcFormat:JUe,utcParse:eqe,utcOffset:XFe,utcSequence:JFe,timeFormat:ure,timeParse:ZUe,timeOffset:YFe,timeSequence:KFe,timeUnitSpecifier:LFe,monthFormat:tqe,monthAbbrevFormat:nqe,dayFormat:rqe,dayAbbrevFormat:iqe,quarter:_De,utcquarter:CDe,week:$Fe,utcweek:PFe,dayofyear:IFe,utcdayofyear:kFe,warn:dqe,info:hqe,debug:pqe,extent(t){return pl(t)},inScope:xqe,intersect:mre,clampRange:bDe,pinchDistance:Aqe,pinchAngle:Sqe,screen:Uqe,containerSize:Hqe,windowSize:qqe,bandspace:Nqe,setdata:YUe,pathShape:Pqe,panLinear:EDe,panLog:ADe,panPow:SDe,panSymlog:vDe,zoomLinear:$W,zoomLog:BW,zoomPow:W4,zoomSymlog:kW,encode:XUe,modify:Eqe,lassoAppend:Qqe,lassoPath:Gqe,intersectLasso:Wqe},Yqe=["view","item","group","xy","x","y"],Xqe="event.vega.",yre="this.",pk={},Ere={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:t=>`_[${we(are+t)}]`,functions:Kqe,constants:ere,visitors:pk},gk=bUe(Ere);function Kqe(t){const e=tre(t);Yqe.forEach(n=>e[n]=Xqe+n);for(const n in jE)e[n]=yre+n;return ft(e,aqe(t,jE,pk)),e}function er(t,e,n){return arguments.length===1?jE[t]:(jE[t]=e,n&&(pk[t]=n),gk&&(gk.functions[t]=yre+t),this)}er("bandwidth",Dqe,us),er("copy",Fqe,us),er("domain",wqe,us),er("range",Iqe,us),er("invert",Lqe,us),er("scale",$qe,us),er("gradient",Bqe,us),er("geoArea",lqe,us),er("geoBounds",cqe,us),er("geoCentroid",fqe,us),er("geoShape",kqe,us),er("indata",VUe,uqe),er("data",ore,ak),er("treePath",Mqe,ak),er("treeAncestors",jqe,ak),er("vlSelectionTest",jUe,ok),er("vlSelectionIdTest",HUe,ok),er("vlSelectionResolve",QUe,ok),er("vlSelectionTuples",zUe);function ma(t,e){const n={};let r;try{t=je(t)?t:we(t)+"",r=Zne(t)}catch{ve("Expression parse error: "+t)}r.visit(s=>{if(s.type!==Mne)return;const o=s.callee.name,u=Ere.visitors[o];u&&u(o,s.arguments,e,n)});const i=gk(r);return i.globals.forEach(s=>{const o=are+s;!Je(n,o)&&e.getSignal(s)&&(n[o]=e.signalRef(s))}),{$expr:ft({code:i.code},e.options.ast?{ast:r}:null),$fields:i.fields,$params:n}}function Jqe(t){const e=this,n=t.operators||[];return t.background&&(e.background=t.background),t.eventConfig&&(e.eventConfig=t.eventConfig),t.locale&&(e.locale=t.locale),n.forEach(r=>e.parseOperator(r)),n.forEach(r=>e.parseOperatorParameters(r)),(t.streams||[]).forEach(r=>e.parseStream(r)),(t.updates||[]).forEach(r=>e.parseUpdate(r)),e.resolve()}const Zqe=Xu(["rule"]),Are=Xu(["group","image","rect"]);function eHe(t,e){let n="";return Zqe[e]||(t.x2&&(t.x?(Are[e]&&(n+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),n+="o.width=o.x2-o.x;"):n+="o.x=o.x2-(o.width||0);"),t.xc&&(n+="o.x=o.xc-(o.width||0)/2;"),t.y2&&(t.y?(Are[e]&&(n+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),n+="o.height=o.y2-o.y;"):n+="o.y=o.y2-(o.height||0);"),t.yc&&(n+="o.y=o.yc-(o.height||0)/2;")),n}function mk(t){return(t+"").toLowerCase()}function tHe(t){return mk(t)==="operator"}function nHe(t){return mk(t)==="collect"}function UE(t,e,n){n.endsWith(";")||(n="return("+n+");");const r=Function(...e.concat(n));return t&&t.functions?r.bind(t.functions):r}function rHe(t,e,n,r){return`((u = ${t}) < (v = ${e}) || u == null) && v != null ? ${n}
|
|
1315
|
+
`&&++Ae;else{if($E(r.charCodeAt(0)))break;t+=r}return e!==""&&Nt({},gr,wr),{type:wE,value:t,octal:s,start:n,end:Ae}}function nUe(t,e){let n=t;e.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";Nt({},Y6)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{Nt({},Y6)}try{return new RegExp(t,e)}catch{return null}}function rUe(){var t,e,n,r,i;for(t=Ge[Ae],rO(t==="/","Regular expression literal must start with a slash"),e=Ge[Ae++],n=!1,r=!1;Ae<ni;)if(t=Ge[Ae++],e+=t,t==="\\")t=Ge[Ae++],$E(t.charCodeAt(0))&&Nt({},X6),e+=t;else if($E(t.charCodeAt(0)))Nt({},X6);else if(n)t==="]"&&(n=!1);else if(t==="/"){r=!0;break}else t==="["&&(n=!0);return r||Nt({},X6),i=e.substr(1,e.length-2),{value:i,literal:e}}function iUe(){var t,e,n;for(e="",n="";Ae<ni&&(t=Ge[Ae],!!iO(t.charCodeAt(0)));)++Ae,t==="\\"&&Ae<ni?Nt({},gr,wr):(n+=t,e+=t);return n.search(/[^gimuy]/g)>=0&&Nt({},Y6,n),{value:n,literal:e}}function sUe(){var t,e,n,r;return kt=null,qne(),t=Ae,e=rUe(),n=iUe(),r=nUe(e.value,n.value),{literal:e.literal+n.literal,value:r,regex:{pattern:e.value,flags:n.value},start:t,end:Ae}}function oUe(t){return t.type===sd||t.type===bc||t.type===tO||t.type===nO}function Qne(){if(qne(),Ae>=ni)return{type:FE,start:Ae,end:Ae};const t=Ge.charCodeAt(Ae);return BE(t)?Jje():t===40||t===41||t===59?Z6():t===39||t===34?tUe():t===46?Ml(Ge.charCodeAt(Ae+1))?zne():Z6():Ml(t)?zne():Z6()}function os(){const t=kt;return Ae=t.end,kt=Qne(),Ae=t.end,t}function Gne(){const t=Ae;kt=Qne(),Ae=t}function uUe(t){const e=new tu(Dje);return e.elements=t,e}function Wne(t,e,n){const r=new tu(t==="||"||t==="&&"?$je:Fje);return r.operator=t,r.left=e,r.right=n,r}function aUe(t,e){const n=new tu(wje);return n.callee=t,n.arguments=e,n}function lUe(t,e,n){const r=new tu(Lje);return r.test=t,r.consequent=e,r.alternate=n,r}function ek(t){const e=new tu(jne);return e.name=t,e}function kE(t){const e=new tu(Ije);return e.value=t.value,e.raw=Ge.slice(t.start,t.end),t.regex&&(e.raw==="//"&&(e.raw="/(?:)/"),e.regex=t.regex),e}function Vne(t,e,n){const r=new tu(Bje);return r.computed=t==="[",r.object=e,r.property=n,r.computed||(n.member=!0),r}function cUe(t){const e=new tu(kje);return e.properties=t,e}function Yne(t,e,n){const r=new tu(Pje);return r.key=e,r.value=n,r.kind=t,r}function fUe(t,e){const n=new tu(Mje);return n.operator=t,n.argument=e,n.prefix=!0,n}function Nt(t,e){var n,r=Array.prototype.slice.call(arguments,2),i=e.replace(/%(\d)/g,(s,o)=>(rO(o<r.length,"Message reference must be in range"),r[o]));throw n=new Error(i),n.index=Ae,n.description=i,n}function sO(t){t.type===FE&&Nt(t,zje),t.type===od&&Nt(t,jje),t.type===wE&&Nt(t,Uje),t.type===sd&&Nt(t,qje),t.type===bc&&Nt(t,Hje),Nt(t,gr,t.value)}function ri(t){const e=os();(e.type!==ss||e.value!==t)&&sO(e)}function nn(t){return kt.type===ss&&kt.value===t}function tk(t){return kt.type===bc&&kt.value===t}function xUe(){const t=[];for(Ae=kt.start,ri("[");!nn("]");)nn(",")?(os(),t.push(null)):(t.push(ud()),nn("]")||ri(","));return os(),uUe(t)}function Xne(){Ae=kt.start;const t=os();return t.type===wE||t.type===od?(t.octal&&Nt(t,Une),kE(t)):ek(t.value)}function dUe(){var t,e,n,r;if(Ae=kt.start,t=kt,t.type===sd)return n=Xne(),ri(":"),r=ud(),Yne("init",n,r);if(t.type===FE||t.type===ss)sO(t);else return e=Xne(),ri(":"),r=ud(),Yne("init",e,r)}function hUe(){var t=[],e,n,r,i={},s=String;for(Ae=kt.start,ri("{");!nn("}");)e=dUe(),e.key.type===jne?n=e.key.name:n=s(e.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?Nt({},Qje):i[r]=!0,t.push(e),nn("}")||ri(",");return ri("}"),cUe(t)}function pUe(){ri("(");const t=nk();return ri(")"),t}const gUe={if:1};function mUe(){var t,e,n;if(nn("("))return pUe();if(nn("["))return xUe();if(nn("{"))return hUe();if(t=kt.type,Ae=kt.start,t===sd||gUe[kt.value])n=ek(os().value);else if(t===wE||t===od)kt.octal&&Nt(kt,Une),n=kE(os());else{if(t===bc)throw new Error(LE);t===tO?(e=os(),e.value=e.value==="true",n=kE(e)):t===nO?(e=os(),e.value=null,n=kE(e)):nn("/")||nn("/=")?(n=kE(sUe()),Gne()):sO(os())}return n}function yUe(){const t=[];if(ri("("),!nn(")"))for(;Ae<ni&&(t.push(ud()),!nn(")"));)ri(",");return ri(")"),t}function EUe(){Ae=kt.start;const t=os();return oUe(t)||sO(t),ek(t.value)}function AUe(){return ri("."),EUe()}function SUe(){ri("[");const t=nk();return ri("]"),t}function vUe(){var t,e,n;for(t=mUe();;)if(nn("."))n=AUe(),t=Vne(".",t,n);else if(nn("("))e=yUe(),t=aUe(t,e);else if(nn("["))n=SUe(),t=Vne("[",t,n);else break;return t}function Kne(){const t=vUe();if(kt.type===ss&&(nn("++")||nn("--")))throw new Error(LE);return t}function oO(){var t,e;if(kt.type!==ss&&kt.type!==bc)e=Kne();else{if(nn("++")||nn("--"))throw new Error(LE);if(nn("+")||nn("-")||nn("~")||nn("!"))t=os(),e=oO(),e=fUe(t.value,e);else{if(tk("delete")||tk("void")||tk("typeof"))throw new Error(LE);e=Kne()}}return e}function Jne(t){let e=0;if(t.type!==ss&&t.type!==bc)return 0;switch(t.value){case"||":e=1;break;case"&&":e=2;break;case"|":e=3;break;case"^":e=4;break;case"&":e=5;break;case"==":case"!=":case"===":case"!==":e=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":e=7;break;case"<<":case">>":case">>>":e=8;break;case"+":case"-":e=9;break;case"*":case"/":case"%":e=11;break}return e}function _Ue(){var t,e,n,r,i,s,o,u,a,l;if(t=kt,a=oO(),r=kt,i=Jne(r),i===0)return a;for(r.prec=i,os(),e=[t,kt],o=oO(),s=[a,r,o];(i=Jne(kt))>0;){for(;s.length>2&&i<=s[s.length-2].prec;)o=s.pop(),u=s.pop().value,a=s.pop(),e.pop(),n=Wne(u,a,o),s.push(n);r=os(),r.prec=i,s.push(r),e.push(kt),n=oO(),s.push(n)}for(l=s.length-1,n=s[l],e.pop();l>1;)e.pop(),n=Wne(s[l-1].value,s[l-2],n),l-=2;return n}function ud(){var t,e,n;return t=_Ue(),nn("?")&&(os(),e=ud(),ri(":"),n=ud(),t=lUe(t,e,n)),t}function nk(){const t=ud();if(nn(","))throw new Error(LE);return t}function Zne(t){Ge=t,Ae=0,ni=Ge.length,kt=null,Gne();const e=nk();if(kt.type!==FE)throw new Error("Unexpect token after expression.");return e}var ere={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function tre(t){function e(o,u,a,l){let c=t(u[0]);return a&&(c=a+"("+c+")",a.lastIndexOf("new ",0)===0&&(c="("+c+")")),c+"."+o+(l<0?"":l===0?"()":"("+u.slice(1).map(t).join(",")+")")}function n(o,u,a){return l=>e(o,l,u,a)}const r="new Date",i="String",s="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(o){o.length<3&&ve("Missing arguments to clamp function."),o.length>3&&ve("Too many arguments to clamp function.");const u=o.map(t);return"Math.max("+u[1]+", Math.min("+u[2]+","+u[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:s,test:n("test",s),if:function(o){o.length<3&&ve("Missing arguments to if function."),o.length>3&&ve("Too many arguments to if function.");const u=o.map(t);return"("+u[0]+"?"+u[1]+":"+u[2]+")"}}}function CUe(t){const e=t&&t.length-1;return e&&(t[0]==='"'&&t[e]==='"'||t[0]==="'"&&t[e]==="'")?t.slice(1,-1):t}function bUe(t){t=t||{};const e=t.allowed?Xu(t.allowed):{},n=t.forbidden?Xu(t.forbidden):{},r=t.constants||ere,i=(t.functions||tre)(f),s=t.globalvar,o=t.fieldvar,u=ct(s)?s:p=>`${s}["${p}"]`;let a={},l={},c=0;function f(p){if(je(p))return p;const m=x[p.type];return m==null&&ve("Unsupported type: "+p.type),m(p)}const x={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return c>0?m:Je(n,m)?ve("Illegal identifier: "+m):Je(r,m)?r[m]:Je(e,m)?m:(a[m]=1,u(m))},MemberExpression:p=>{const m=!p.computed,g=f(p.object);m&&(c+=1);const y=f(p.property);return g===o&&(l[CUe(y)]=1),m&&(c-=1),g+(m?"."+y:"["+y+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&ve("Illegal callee type: "+p.callee.type);const m=p.callee.name,g=p.arguments,y=Je(i,m)&&i[m];return y||ve("Unrecognized function: "+m),ct(y)?y(g):y+"("+g.map(f).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(f).join(",")+"]",BinaryExpression:p=>"("+f(p.left)+" "+p.operator+" "+f(p.right)+")",UnaryExpression:p=>"("+p.operator+f(p.argument)+")",ConditionalExpression:p=>"("+f(p.test)+"?"+f(p.consequent)+":"+f(p.alternate)+")",LogicalExpression:p=>"("+f(p.left)+p.operator+f(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(f).join(",")+"}",Property:p=>{c+=1;const m=f(p.key);return c-=1,m+":"+f(p.value)}};function h(p){const m={code:f(p),globals:Object.keys(a),fields:Object.keys(l)};return a={},l={},m}return h.functions=i,h.constants=r,h}function rk(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function TUe(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function RUe(t){let e,n,r;t.length!==2?(e=rk,n=(u,a)=>rk(t(u),a),r=(u,a)=>t(u)-a):(e=t===rk||t===TUe?t:OUe,n=t,r=t);function i(u,a,l=0,c=u.length){if(l<c){if(e(a,a)!==0)return c;do{const f=l+c>>>1;n(u[f],a)<0?l=f+1:c=f}while(l<c)}return l}function s(u,a,l=0,c=u.length){if(l<c){if(e(a,a)!==0)return c;do{const f=l+c>>>1;n(u[f],a)<=0?l=f+1:c=f}while(l<c)}return l}function o(u,a,l=0,c=u.length){const f=i(u,a,l,c-1);return f>l&&r(u[f-1],a)>-r(u[f],a)?f-1:f}return{left:i,center:o,right:s}}function OUe(){return 0}function NUe(t,...e){t=new Ob(t),e=e.map(DUe);e:for(const n of t)for(const r of e)if(!r.has(n)){t.delete(n);continue e}return t}function DUe(t){return t instanceof Ob?t:new Ob(t)}function FUe(...t){const e=new Ob;for(const n of t)for(const r of n)e.add(r);return e}const ik="intersect",nre="union",wUe="vlMulti",LUe="vlPoint",rre="or",IUe="and",ga="_vgsid_",PE=Ds(ga),$Ue="E",BUe="R",kUe="R-E",PUe="R-LE",MUe="R-RE",uO="index:unit";function ire(t,e){for(var n=e.fields,r=e.values,i=n.length,s=0,o,u;s<i;++s)if(u=n[s],u.getter=Ds.getter||Ds(u.field),o=u.getter(t),vx(o)&&(o=yi(o)),vx(r[s])&&(r[s]=yi(r[s])),vx(r[s][0])&&(r[s]=r[s].map(yi)),u.type===$Ue){if(_e(r[s])?r[s].indexOf(o)<0:o!==r[s])return!1}else if(u.type===BUe){if(!ry(o,r[s]))return!1}else if(u.type===MUe){if(!ry(o,r[s],!0,!1))return!1}else if(u.type===kUe){if(!ry(o,r[s],!1,!1))return!1}else if(u.type===PUe&&!ry(o,r[s],!1,!0))return!1;return!0}function jUe(t,e,n){for(var r=this.context.data[t],i=r?r.values.value:[],s=r?r[uO]&&r[uO].value:void 0,o=n===ik,u=i.length,a=0,l,c,f,x,h;a<u;++a)if(l=i[a],s&&o){if(c=c||{},f=c[x=l.unit]||0,f===-1)continue;if(h=ire(e,l),c[x]=h?-1:++f,h&&s.size===1)return!0;if(!h&&f===s.get(x).count)return!1}else if(h=ire(e,l),o^h)return h;return u&&o}const sre=RUe(PE),UUe=sre.left,qUe=sre.right;function HUe(t,e,n){const r=this.context.data[t],i=r?r.values.value:[],s=r?r[uO]&&r[uO].value:void 0,o=n===ik,u=PE(e),a=UUe(i,u);if(a===i.length||PE(i[a])!==u)return!1;if(s&&o){if(s.size===1)return!0;if(qUe(i,u)-a<s.size)return!1}return!0}function zUe(t,e){return t.map(n=>ft(e.fields?{values:e.fields.map(r=>(r.getter||(r.getter=Ds(r.field)))(n.datum))}:{[ga]:PE(n.datum)},e))}function QUe(t,e,n,r){for(var i=this.context.data[t],s=i?i.values.value:[],o={},u={},a={},l,c,f,x,h,p,m,g,y,E,A=s.length,S=0,v,_;S<A;++S)if(l=s[S],x=l.unit,c=l.fields,f=l.values,c&&f){for(v=0,_=c.length;v<_;++v)h=c[v],m=o[h.field]||(o[h.field]={}),g=m[x]||(m[x]=[]),a[h.field]=y=h.type.charAt(0),E=sk[`${y}_union`],m[x]=E(g,Pe(f[v]));n&&(g=u[x]||(u[x]=[]),g.push(Pe(f).reduce((C,b,R)=>(C[c[R].field]=b,C),{})))}else h=ga,p=PE(l),m=o[h]||(o[h]={}),g=m[x]||(m[x]=[]),g.push(p),n&&(g=u[x]||(u[x]=[]),g.push({[ga]:p}));if(e=e||nre,o[ga]?o[ga]=sk[`${ga}_${e}`](...Object.values(o[ga])):Object.keys(o).forEach(C=>{o[C]=Object.keys(o[C]).map(b=>o[C][b]).reduce((b,R)=>b===void 0?R:sk[`${a[C]}_${e}`](b,R))}),s=Object.keys(u),n&&s.length){const C=r?LUe:wUe;o[C]=e===nre?{[rre]:s.reduce((b,R)=>(b.push(...u[R]),b),[])}:{[IUe]:s.map(b=>({[rre]:u[b]}))}}return o}var sk={[`${ga}_union`]:FUe,[`${ga}_intersect`]:NUe,E_union:function(t,e){if(!t.length)return e;for(var n=0,r=e.length;n<r;++n)t.indexOf(e[n])<0&&t.push(e[n]);return t},E_intersect:function(t,e){return t.length?t.filter(n=>e.indexOf(n)>=0):e},R_union:function(t,e){var n=yi(e[0]),r=yi(e[1]);return n>r&&(n=e[1],r=e[0]),t.length?(t[0]>n&&(t[0]=n),t[1]<r&&(t[1]=r),t):[n,r]},R_intersect:function(t,e){var n=yi(e[0]),r=yi(e[1]);return n>r&&(n=e[1],r=e[0]),t.length?r<t[0]||t[1]<n?[]:(t[0]<n&&(t[0]=n),t[1]>r&&(t[1]=r),t):[n,r]}};const GUe=":",WUe="@";function ok(t,e,n,r){e[0].type!==id&&ve("First argument to selection functions must be a string literal.");const i=e[0].value,s=e.length>=2&&vt(e).value,o="unit",u=WUe+o,a=GUe+i;s===ik&&!Je(r,u)&&(r[u]=n.getData(i).indataRef(n,o)),Je(r,a)||(r[a]=n.getData(i).tuplesRef())}function ore(t){const e=this.context.data[t];return e?e.values.value:[]}function VUe(t,e,n){const r=this.context.data[t]["index:"+e],i=r?r.value.get(n):void 0;return i&&i.count}function YUe(t,e){const n=this.context.dataflow,r=this.context.data[t],i=r.input;return n.pulse(i,n.changeset().remove(Go).insert(e)),1}function XUe(t,e,n){if(t){const r=this.context.dataflow,i=t.mark.source;r.pulse(i,r.changeset().encode(t,e))}return n!==void 0?n:t}const ME=t=>function(e,n){return this.context.dataflow.locale()[t](n)(e)},KUe=ME("format"),ure=ME("timeFormat"),JUe=ME("utcFormat"),ZUe=ME("timeParse"),eqe=ME("utcParse"),aO=new Date(2e3,0,1);function lO(t,e,n){return!Number.isInteger(t)||!Number.isInteger(e)?"":(aO.setYear(2e3),aO.setMonth(t),aO.setDate(e),ure.call(this,aO,n))}function tqe(t){return lO.call(this,t,1,"%B")}function nqe(t){return lO.call(this,t,1,"%b")}function rqe(t){return lO.call(this,0,2+t,"%A")}function iqe(t){return lO.call(this,0,2+t,"%a")}const sqe=":",oqe="@",uk="%",are="$";function ak(t,e,n,r){e[0].type!==id&&ve("First argument to data functions must be a string literal.");const i=e[0].value,s=sqe+i;if(!Je(s,r))try{r[s]=n.getData(i).tuplesRef()}catch{}}function uqe(t,e,n,r){e[0].type!==id&&ve("First argument to indata must be a string literal."),e[1].type!==id&&ve("Second argument to indata must be a string literal.");const i=e[0].value,s=e[1].value,o=oqe+s;Je(o,r)||(r[o]=n.getData(i).indataRef(n,s))}function us(t,e,n,r){if(e[0].type===id)lre(n,r,e[0].value);else for(t in n.scales)lre(n,r,t)}function lre(t,e,n){const r=uk+n;if(!Je(e,r))try{e[r]=t.scaleRef(n)}catch{}}function jl(t,e){if(ct(t))return t;if(je(t)){const n=e.scales[t];return n&&l$e(n.value)?n.value:void 0}}function aqe(t,e,n){e.__bandwidth=i=>i&&i.bandwidth?i.bandwidth():0,n._bandwidth=us,n._range=us,n._scale=us;const r=i=>"_["+(i.type===id?we(uk+i.value):we(uk)+"+"+t(i))+"]";return{_bandwidth:i=>`this.__bandwidth(${r(i[0])})`,_range:i=>`${r(i[0])}.range()`,_scale:i=>`${r(i[0])}(${t(i[1])})`}}function lk(t,e){return function(n,r,i){if(n){const s=jl(n,(i||this).context);return s&&s.path[t](r)}else return e(r)}}const lqe=lk("area",R8e),cqe=lk("bounds",F8e),fqe=lk("centroid",k8e);function xqe(t){const e=this.context.group;let n=!1;if(e)for(;t;){if(t===e){n=!0;break}t=t.mark.group}return n}function ck(t,e,n){try{t[e].apply(t,["EXPRESSION"].concat([].slice.call(n)))}catch(r){t.warn(r)}return n[n.length-1]}function dqe(){return ck(this.context.dataflow,"warn",arguments)}function hqe(){return ck(this.context.dataflow,"info",arguments)}function pqe(){return ck(this.context.dataflow,"debug",arguments)}function fk(t){const e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}function xk(t){const e=ac(t),n=fk(e.r),r=fk(e.g),i=fk(e.b);return .2126*n+.7152*r+.0722*i}function gqe(t,e){const n=xk(t),r=xk(e),i=Math.max(n,r),s=Math.min(n,r);return(i+.05)/(s+.05)}function mqe(){const t=[].slice.call(arguments);return t.unshift({}),ft(...t)}function cre(t,e){return t===e||t!==t&&e!==e?!0:_e(t)?_e(e)&&t.length===e.length?yqe(t,e):!1:He(t)&&He(e)?fre(t,e):!1}function yqe(t,e){for(let n=0,r=t.length;n<r;++n)if(!cre(t[n],e[n]))return!1;return!0}function fre(t,e){for(const n in t)if(!cre(t[n],e[n]))return!1;return!0}function xre(t){return e=>fre(t,e)}function Eqe(t,e,n,r,i,s){const o=this.context.dataflow,u=this.context.data[t],a=u.input,l=o.stamp();let c=u.changes,f,x;if(o._trigger===!1||!(a.value.length||e||r))return 0;if((!c||c.stamp<l)&&(u.changes=c=o.changeset(),c.stamp=l,o.runAfter(()=>{u.modified=!0,o.pulse(a,c).run()},!0,1)),n&&(f=n===!0?Go:_e(n)||O5(n)?n:xre(n),c.remove(f)),e&&c.insert(e),r&&(f=xre(r),a.value.some(f)?c.remove(f):c.insert(r)),i)for(x in s)c.modify(i,x,s[x]);return 1}function Aqe(t){const e=t.touches,n=e[0].clientX-e[1].clientX,r=e[0].clientY-e[1].clientY;return Math.sqrt(n*n+r*r)}function Sqe(t){const e=t.touches;return Math.atan2(e[0].clientY-e[1].clientY,e[0].clientX-e[1].clientX)}const dre={};function vqe(t,e){const n=dre[e]||(dre[e]=Ds(e));return _e(t)?t.map(n):n(t)}function dk(t){return _e(t)||ArrayBuffer.isView(t)?t:null}function hk(t){return dk(t)||(je(t)?t:null)}function _qe(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return dk(t).join(...n)}function Cqe(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return hk(t).indexOf(...n)}function bqe(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return hk(t).lastIndexOf(...n)}function Tqe(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return hk(t).slice(...n)}function Rqe(t,e,n){return ct(n)&&ve("Function argument passed to replace."),String(t).replace(e,n)}function Oqe(t){return dk(t).slice().reverse()}function Nqe(t,e,n){return XI(t||0,e||0,n||0)}function Dqe(t,e){const n=jl(t,(e||this).context);return n&&n.bandwidth?n.bandwidth():0}function Fqe(t,e){const n=jl(t,(e||this).context);return n?n.copy():void 0}function wqe(t,e){const n=jl(t,(e||this).context);return n?n.domain():[]}function Lqe(t,e,n){const r=jl(t,(n||this).context);return r?_e(e)?(r.invertRange||r.invert)(e):(r.invert||r.invertExtent)(e):void 0}function Iqe(t,e){const n=jl(t,(e||this).context);return n&&n.range?n.range():[]}function $qe(t,e,n){const r=jl(t,(n||this).context);return r?r(e):void 0}function Bqe(t,e,n,r,i){t=jl(t,(i||this).context);const s=L$e(e,n);let o=t.domain(),u=o[0],a=vt(o),l=mi;return a-u?l=eJ(t,u,a):t=(t.interpolator?Ot("sequential")().interpolator(t.interpolator()):Ot("linear")().interpolate(t.interpolate()).range(t.range())).domain([u=0,a=1]),t.ticks&&(o=t.ticks(+r||15),u!==o[0]&&o.unshift(u),a!==vt(o)&&o.push(a)),o.forEach(c=>s.stop(l(c),t(c))),s}function kqe(t,e,n){const r=jl(t,(n||this).context);return function(i){return r?r.path.context(i)(e):""}}function Pqe(t){let e=null;return function(n){return n?bT(n,e=e||l$(t)):t}}const hre=t=>t.data;function pre(t,e){const n=ore.call(e,t);return n.root&&n.root.lookup||{}}function Mqe(t,e,n){const r=pre(t,this),i=r[e],s=r[n];return i&&s?i.path(s).map(hre):void 0}function jqe(t,e){const n=pre(t,this)[e];return n?n.ancestors().map(hre):void 0}const gre=()=>typeof window<"u"&&window||null;function Uqe(){const t=gre();return t?t.screen:{}}function qqe(){const t=gre();return t?[t.innerWidth,t.innerHeight]:[void 0,void 0]}function Hqe(){const t=this.context.dataflow,e=t.container&&t.container();return e?[e.clientWidth,e.clientHeight]:[void 0,void 0]}function mre(t,e,n){if(!t)return[];const[r,i]=t,s=new Jn().set(r[0],r[1],i[0],i[1]),o=n||this.context.dataflow.scenegraph().root;return hke(o,s,zqe(e))}function zqe(t){let e=null;if(t){const n=Pe(t.marktype),r=Pe(t.markname);e=i=>(!n.length||n.some(s=>i.marktype===s))&&(!r.length||r.some(s=>i.name===s))}return e}function Qqe(t,e,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5;t=Pe(t);const i=t[t.length-1];return i===void 0||Math.sqrt((i[0]-e)**2+(i[1]-n)**2)>r?[...t,[e,n]]:t}function Gqe(t){return Pe(t).reduce((e,n,r)=>{let[i,s]=n;return e+=r==0?`M ${i},${s} `:r===t.length-1?" Z":`L ${i},${s} `},"")}function Wqe(t,e,n){const{x:r,y:i,mark:s}=n,o=new Jn().set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[a,l]of e)a<o.x1&&(o.x1=a),a>o.x2&&(o.x2=a),l<o.y1&&(o.y1=l),l>o.y2&&(o.y2=l);return o.translate(r,i),mre([[o.x1,o.y1],[o.x2,o.y2]],t,s).filter(a=>Vqe(a.x,a.y,e))}function Vqe(t,e,n){let r=0;for(let i=0,s=n.length-1;i<n.length;s=i++){const[o,u]=n[s],[a,l]=n[i];l>e!=u>e&&t<(o-a)*(e-l)/(u-l)+a&&r++}return r&1}const jE={random(){return Cl()},cumulativeNormal:$5,cumulativeLogNormal:NY,cumulativeUniform:LY,densityNormal:CY,densityLogNormal:OY,densityUniform:wY,quantileNormal:B5,quantileLogNormal:DY,quantileUniform:IY,sampleNormal:I5,sampleLogNormal:RY,sampleUniform:FY,isArray:_e,isBoolean:yp,isDate:vx,isDefined(t){return t!==void 0},isNumber:tn,isObject:He,isRegExp:IDe,isString:je,isTuple:O5,isValid(t){return t!=null&&t===t},toBoolean:UW,toDate(t){return qW(t)},toNumber:yi,toString:HW,indexof:Cqe,join:_qe,lastindexof:bqe,replace:Rqe,reverse:Oqe,slice:Tqe,flush:wDe,lerp:$De,merge:mqe,pad:MDe,peek:vt,pluck:vqe,span:Rb,inrange:ry,truncate:UDe,rgb:ac,lab:cT,hcl:fT,hsl:uT,luminance:xk,contrast:gqe,sequence:Fs,format:KUe,utcFormat:JUe,utcParse:eqe,utcOffset:XFe,utcSequence:JFe,timeFormat:ure,timeParse:ZUe,timeOffset:YFe,timeSequence:KFe,timeUnitSpecifier:LFe,monthFormat:tqe,monthAbbrevFormat:nqe,dayFormat:rqe,dayAbbrevFormat:iqe,quarter:_De,utcquarter:CDe,week:$Fe,utcweek:PFe,dayofyear:IFe,utcdayofyear:kFe,warn:dqe,info:hqe,debug:pqe,extent(t){return pl(t)},inScope:xqe,intersect:mre,clampRange:bDe,pinchDistance:Aqe,pinchAngle:Sqe,screen:Uqe,containerSize:Hqe,windowSize:qqe,bandspace:Nqe,setdata:YUe,pathShape:Pqe,panLinear:EDe,panLog:ADe,panPow:SDe,panSymlog:vDe,zoomLinear:$W,zoomLog:BW,zoomPow:W4,zoomSymlog:kW,encode:XUe,modify:Eqe,lassoAppend:Qqe,lassoPath:Gqe,intersectLasso:Wqe},Yqe=["view","item","group","xy","x","y"],Xqe="event.vega.",yre="this.",pk={},Ere={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:t=>`_[${we(are+t)}]`,functions:Kqe,constants:ere,visitors:pk},gk=bUe(Ere);function Kqe(t){const e=tre(t);Yqe.forEach(n=>e[n]=Xqe+n);for(const n in jE)e[n]=yre+n;return ft(e,aqe(t,jE,pk)),e}function er(t,e,n){return arguments.length===1?jE[t]:(jE[t]=e,n&&(pk[t]=n),gk&&(gk.functions[t]=yre+t),this)}er("bandwidth",Dqe,us),er("copy",Fqe,us),er("domain",wqe,us),er("range",Iqe,us),er("invert",Lqe,us),er("scale",$qe,us),er("gradient",Bqe,us),er("geoArea",lqe,us),er("geoBounds",cqe,us),er("geoCentroid",fqe,us),er("geoShape",kqe,us),er("indata",VUe,uqe),er("data",ore,ak),er("treePath",Mqe,ak),er("treeAncestors",jqe,ak),er("vlSelectionTest",jUe,ok),er("vlSelectionIdTest",HUe,ok),er("vlSelectionResolve",QUe,ok),er("vlSelectionTuples",zUe);function ma(t,e){const n={};let r;try{t=je(t)?t:we(t)+"",r=Zne(t)}catch{ve("Expression parse error: "+t)}r.visit(s=>{if(s.type!==Mne)return;const o=s.callee.name,u=Ere.visitors[o];u&&u(o,s.arguments,e,n)});const i=gk(r);return i.globals.forEach(s=>{const o=are+s;!Je(n,o)&&e.getSignal(s)&&(n[o]=e.signalRef(s))}),{$expr:ft({code:i.code},e.options.ast?{ast:r}:null),$fields:i.fields,$params:n}}function Jqe(t){const e=this,n=t.operators||[];return t.background&&(e.background=t.background),t.eventConfig&&(e.eventConfig=t.eventConfig),t.locale&&(e.locale=t.locale),n.forEach(r=>e.parseOperator(r)),n.forEach(r=>e.parseOperatorParameters(r)),(t.streams||[]).forEach(r=>e.parseStream(r)),(t.updates||[]).forEach(r=>e.parseUpdate(r)),e.resolve()}const Zqe=Xu(["rule"]),Are=Xu(["group","image","rect"]);function eHe(t,e){let n="";return Zqe[e]||(t.x2&&(t.x?(Are[e]&&(n+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),n+="o.width=o.x2-o.x;"):n+="o.x=o.x2-(o.width||0);"),t.xc&&(n+="o.x=o.xc-(o.width||0)/2;"),t.y2&&(t.y?(Are[e]&&(n+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),n+="o.height=o.y2-o.y;"):n+="o.y=o.y2-(o.height||0);"),t.yc&&(n+="o.y=o.yc-(o.height||0)/2;")),n}function mk(t){return(t+"").toLowerCase()}function tHe(t){return mk(t)==="operator"}function nHe(t){return mk(t)==="collect"}function UE(t,e,n){n.endsWith(";")||(n="return("+n+");");const r=Function(...e.concat(n));return t&&t.functions?r.bind(t.functions):r}function rHe(t,e,n,r){return`((u = ${t}) < (v = ${e}) || u == null) && v != null ? ${n}
|
|
1316
1316
|
: (u > v || v == null) && u != null ? ${r}
|
|
1317
1317
|
: ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${n}
|
|
1318
1318
|
: v !== v && u === u ? ${r} : `}var iHe={operator:(t,e)=>UE(t,["_"],e.code),parameter:(t,e)=>UE(t,["datum","_"],e.code),event:(t,e)=>UE(t,["event"],e.code),handler:(t,e)=>{const n=`var datum=event.item&&event.item.datum;return ${e.code};`;return UE(t,["_","event"],n)},encode:(t,e)=>{const{marktype:n,channels:r}=e;let i="var o=item,datum=o.datum,m=0,$;";for(const s in r){const o="o["+we(s)+"]";i+=`$=${r[s].code};if(${o}!==$)${o}=$,m=1;`}return i+=eHe(r,n),i+="return m;",UE(t,["item","_"],i)},codegen:{get(t){const e=`[${t.map(we).join("][")}]`,n=Function("_",`return _${e};`);return n.path=e,n},comparator(t,e){let n;const r=(s,o)=>{const u=e[o];let a,l;return s.path?(a=`a${s.path}`,l=`b${s.path}`):((n=n||{})["f"+o]=s,a=`this.f${o}(a)`,l=`this.f${o}(b)`),rHe(a,l,-u,u)},i=Function("a","b","var u, v; return "+t.map(r).join("")+"0;");return n?i.bind(n):i}}};function sHe(t){const e=this;tHe(t.type)||!t.type?e.operator(t,t.update?e.operatorExpression(t.update):null):e.transform(t,t.type)}function oHe(t){const e=this;if(t.params){const n=e.get(t.id);n||ve("Invalid operator id: "+t.id),e.dataflow.connect(n,n.parameters(e.parseParameters(t.params),t.react,t.initonly))}}function uHe(t,e){e=e||{};const n=this;for(const r in t){const i=t[r];e[r]=_e(i)?i.map(s=>Sre(s,n,e)):Sre(i,n,e)}return e}function Sre(t,e,n){if(!t||!He(t))return t;for(let r=0,i=vre.length,s;r<i;++r)if(s=vre[r],Je(t,s.key))return s.parse(t,e,n);return t}var vre=[{key:"$ref",parse:aHe},{key:"$key",parse:cHe},{key:"$expr",parse:lHe},{key:"$field",parse:fHe},{key:"$encode",parse:dHe},{key:"$compare",parse:xHe},{key:"$context",parse:hHe},{key:"$subflow",parse:pHe},{key:"$tupleid",parse:gHe}];function aHe(t,e){return e.get(t.$ref)||ve("Operator not defined: "+t.$ref)}function lHe(t,e,n){t.$params&&e.parseParameters(t.$params,n);const r="e:"+t.$expr.code;return e.fn[r]||(e.fn[r]=Ns(e.parameterExpression(t.$expr),t.$fields))}function cHe(t,e){const n="k:"+t.$key+"_"+!!t.$flat;return e.fn[n]||(e.fn[n]=jW(t.$key,t.$flat,e.expr.codegen))}function fHe(t,e){if(!t.$field)return null;const n="f:"+t.$field+"_"+t.$name;return e.fn[n]||(e.fn[n]=Ds(t.$field,t.$name,e.expr.codegen))}function xHe(t,e){const n="c:"+t.$compare+"_"+t.$order,r=Pe(t.$compare).map(i=>i&&i.$tupleid?Ze:i);return e.fn[n]||(e.fn[n]=PW(r,t.$order,e.expr.codegen))}function dHe(t,e){const n=t.$encode,r={};for(const i in n){const s=n[i];r[i]=Ns(e.encodeExpression(s.$expr),s.$fields),r[i].output=s.$output}return r}function hHe(t,e){return e}function pHe(t,e){const n=t.$subflow;return function(r,i,s){const o=e.fork().parse(n),u=o.get(n.operators[0].id),a=o.signals.parent;return a&&a.set(s),u.detachSubflow=()=>e.detach(o),u}}function gHe(){return Ze}function mHe(t){var e=this,n=t.filter!=null?e.eventExpression(t.filter):void 0,r=t.stream!=null?e.get(t.stream):void 0,i;t.source?r=e.events(t.source,t.type,n):t.merge&&(i=t.merge.map(s=>e.get(s)),r=i[0].merge.apply(i[0],i.slice(1))),t.between&&(i=t.between.map(s=>e.get(s)),r=r.between(i[0],i[1])),t.filter&&(r=r.filter(n)),t.throttle!=null&&(r=r.throttle(+t.throttle)),t.debounce!=null&&(r=r.debounce(+t.debounce)),r==null&&ve("Invalid stream definition: "+JSON.stringify(t)),t.consume&&r.consume(!0),e.stream(t,r)}function yHe(t){var e=this,n=He(n=t.source)?n.$ref:n,r=e.get(n),i=null,s=t.update,o=void 0;r||ve("Source not defined: "+t.source),i=t.target&&t.target.$expr?e.eventExpression(t.target.$expr):e.get(t.target),s&&s.$expr&&(s.$params&&(o=e.parseParameters(s.$params)),s=e.handlerExpression(s.$expr)),e.update(t,r,i,s,o)}const EHe={skip:!0};function AHe(t){var e=this,n={};if(t.signals){var r=n.signals={};Object.keys(e.signals).forEach(s=>{const o=e.signals[s];t.signals(s,o)&&(r[s]=o.value)})}if(t.data){var i=n.data={};Object.keys(e.data).forEach(s=>{const o=e.data[s];t.data(s,o)&&(i[s]=o.input.value)})}return e.subcontext&&t.recurse!==!1&&(n.subcontext=e.subcontext.map(s=>s.getState(t))),n}function SHe(t){var e=this,n=e.dataflow,r=t.data,i=t.signals;Object.keys(i||{}).forEach(s=>{n.update(e.signals[s],i[s],EHe)}),Object.keys(r||{}).forEach(s=>{n.pulse(e.data[s].input,n.changeset().remove(Go).insert(r[s]))}),(t.subcontext||[]).forEach((s,o)=>{const u=e.subcontext[o];u&&u.setState(s)})}function vHe(t,e,n,r){return new _re(t,e,n,r)}function _re(t,e,n,r){this.dataflow=t,this.transforms=e,this.events=t.events.bind(t),this.expr=r||iHe,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function Cre(t){this.dataflow=t.dataflow,this.transforms=t.transforms,this.events=t.events,this.expr=t.expr,this.signals=Object.create(t.signals),this.scales=Object.create(t.scales),this.nodes=Object.create(t.nodes),this.data=Object.create(t.data),this.fn=Object.create(t.fn),t.functions&&(this.functions=Object.create(t.functions),this.functions.context=this)}_re.prototype=Cre.prototype={fork(){const t=new Cre(this);return(this.subcontext||(this.subcontext=[])).push(t),t},detach(t){this.subcontext=this.subcontext.filter(n=>n!==t);const e=Object.keys(t.nodes);for(const n of e)t.nodes[n]._targets=null;for(const n of e)t.nodes[n].detach();t.nodes=null},get(t){return this.nodes[t]},set(t,e){return this.nodes[t]=e},add(t,e){const n=this,r=n.dataflow,i=t.value;if(n.set(t.id,e),nHe(t.type)&&i&&(i.$ingest?r.ingest(e,i.$ingest,i.$format):i.$request?r.preload(e,i.$request,i.$format):r.pulse(e,r.changeset().insert(i))),t.root&&(n.root=e),t.parent){let s=n.get(t.parent.$ref);s?(r.connect(s,[e]),e.targets().add(s)):(n.unresolved=n.unresolved||[]).push(()=>{s=n.get(t.parent.$ref),r.connect(s,[e]),e.targets().add(s)})}if(t.signal&&(n.signals[t.signal]=e),t.scale&&(n.scales[t.scale]=e),t.data)for(const s in t.data){const o=n.data[s]||(n.data[s]={});t.data[s].forEach(u=>o[u]=e)}},resolve(){return(this.unresolved||[]).forEach(t=>t()),delete this.unresolved,this},operator(t,e){this.add(t,this.dataflow.add(t.value,e))},transform(t,e){this.add(t,this.dataflow.add(this.transforms[mk(e)]))},stream(t,e){this.set(t.id,e)},update(t,e,n,r,i){this.dataflow.on(e,n,r,i,t.options)},operatorExpression(t){return this.expr.operator(this,t)},parameterExpression(t){return this.expr.parameter(this,t)},eventExpression(t){return this.expr.event(this,t)},handlerExpression(t){return this.expr.handler(this,t)},encodeExpression(t){return this.expr.encode(this,t)},parse:Jqe,parseOperator:sHe,parseOperatorParameters:oHe,parseParameters:uHe,parseStream:mHe,parseUpdate:yHe,getState:AHe,setState:SHe};function _He(t){const e=t.container();e&&(e.setAttribute("role","graphics-document"),e.setAttribute("aria-roleDescription","visualization"),bre(e,t.description()))}function bre(t,e){t&&(e==null?t.removeAttribute("aria-label"):t.setAttribute("aria-label",e))}function CHe(t){t.add(null,e=>(t._background=e.bg,t._resize=1,e.bg),{bg:t._signals.background})}const yk="default";function bHe(t){const e=t._signals.cursor||(t._signals.cursor=t.add({user:yk,item:null}));t.on(t.events("view","mousemove"),e,(n,r)=>{const i=e.value,s=i?je(i)?i:i.user:yk,o=r.item&&r.item.cursor||null;return i&&s===i.user&&o==i.item?i:{user:s,item:o}}),t.add(null,function(n){let r=n.cursor,i=this.value;return je(r)||(i=r.item,r=r.user),Ek(t,r&&r!==yk?r:i||r),i},{cursor:e})}function Ek(t,e){const n=t.globalCursor()?typeof document<"u"&&document.body:t.container();if(n)return e==null?n.style.removeProperty("cursor"):n.style.cursor=e}function cO(t,e){var n=t._runtime.data;return Je(n,e)||ve("Unrecognized data set: "+e),n[e]}function THe(t,e){return arguments.length<2?cO(this,t).values.value:fO.call(this,t,Rp().remove(Go).insert(e))}function fO(t,e){lY(e)||ve("Second argument to changes must be a changeset.");const n=cO(this,t);return n.modified=!0,this.pulse(n.input,e)}function RHe(t,e){return fO.call(this,t,Rp().insert(e))}function OHe(t,e){return fO.call(this,t,Rp().remove(e))}function Tre(t){var e=t.padding();return Math.max(0,t._viewWidth+e.left+e.right)}function Rre(t){var e=t.padding();return Math.max(0,t._viewHeight+e.top+e.bottom)}function xO(t){var e=t.padding(),n=t._origin;return[e.left+n[0],e.top+n[1]]}function NHe(t){var e=xO(t),n=Tre(t),r=Rre(t);t._renderer.background(t.background()),t._renderer.resize(n,r,e),t._handler.origin(e),t._resizeListeners.forEach(i=>{try{i(n,r)}catch(s){t.error(s)}})}function DHe(t,e,n){var r=t._renderer,i=r&&r.canvas(),s,o,u;return i&&(u=xO(t),o=e.changedTouches?e.changedTouches[0]:e,s=k$(o,i),s[0]-=u[0],s[1]-=u[1]),e.dataflow=t,e.item=n,e.vega=FHe(t,n,s),e}function FHe(t,e,n){const r=e?e.mark.marktype==="group"?e:e.mark.group:null;function i(o){var u=r,a;if(o){for(a=e;a;a=a.mark.group)if(a.mark.name===o){u=a;break}}return u&&u.mark&&u.mark.interactive?u:{}}function s(o){if(!o)return n;je(o)&&(o=i(o));const u=n.slice();for(;o;)u[0]-=o.x||0,u[1]-=o.y||0,o=o.mark&&o.mark.group;return u}return{view:Ei(t),item:Ei(e||{}),group:i,xy:s,x:o=>s(o)[0],y:o=>s(o)[1]}}const Ore="view",wHe="timer",LHe="window",IHe={trap:!1};function $He(t){const e=ft({defaults:{}},t),n=(r,i)=>{i.forEach(s=>{_e(r[s])&&(r[s]=Xu(r[s]))})};return n(e.defaults,["prevent","allow"]),n(e,["view","window","selector"]),e}function Nre(t,e,n,r){t._eventListeners.push({type:n,sources:Pe(e),handler:r})}function BHe(t,e){var n=t._eventConfig.defaults,r=n.prevent,i=n.allow;return r===!1||i===!0?!1:r===!0||i===!1?!0:r?r[e]:i?!i[e]:t.preventDefault()}function dO(t,e,n){const r=t._eventConfig&&t._eventConfig[e];return r===!1||He(r)&&!r[n]?(t.warn(`Blocked ${e} ${n} event listener.`),!1):!0}function kHe(t,e,n){var r=this,i=new F5(n),s=function(l,c){r.runAsync(null,()=>{t===Ore&&BHe(r,e)&&l.preventDefault(),i.receive(DHe(r,l,c))})},o;if(t===wHe)dO(r,"timer",e)&&r.timer(s,e);else if(t===Ore)dO(r,"view",e)&&r.addEventListener(e,s,IHe);else if(t===LHe?dO(r,"window",e)&&typeof window<"u"&&(o=[window]):typeof document<"u"&&dO(r,"selector",e)&&(o=Array.from(document.querySelectorAll(t))),!o)r.warn("Can not resolve event source: "+t);else{for(var u=0,a=o.length;u<a;++u)o[u].addEventListener(e,s);Nre(r,o,e,s)}return i}function Dre(t){return t.item}function Fre(t){return t.item.mark.source}function wre(t){return function(e,n){return n.vega.view().changeset().encode(n.item,t)}}function PHe(t,e){return t=[t||"hover"],e=[e||"update",t[0]],this.on(this.events("view","mouseover",Dre),Fre,wre(t)),this.on(this.events("view","mouseout",Dre),Fre,wre(e)),this}function MHe(){var t=this._tooltip,e=this._timers,n=this._eventListeners,r,i,s;for(r=e.length;--r>=0;)e[r].stop();for(r=n.length;--r>=0;)for(s=n[r],i=s.sources.length;--i>=0;)s.sources[i].removeEventListener(s.type,s.handler);return t&&t.call(this,this._handler,null,null,null),this}function ks(t,e,n){const r=document.createElement(t);for(const i in e)r.setAttribute(i,e[i]);return n!=null&&(r.textContent=n),r}const jHe="vega-bind",UHe="vega-bind-name",qHe="vega-bind-radio";function HHe(t,e,n){if(!e)return;const r=n.param;let i=n.state;return i||(i=n.state={elements:null,active:!1,set:null,update:o=>{o!=t.signal(r.signal)&&t.runAsync(null,()=>{i.source=!0,t.signal(r.signal,o)})}},r.debounce&&(i.update=MW(r.debounce,i.update))),(r.input==null&&r.element?zHe:GHe)(i,e,r,t),i.active||(t.on(t._signals[r.signal],null,()=>{i.source?i.source=!1:i.set(t.signal(r.signal))}),i.active=!0),i}function zHe(t,e,n,r){const i=n.event||"input",s=()=>t.update(e.value);r.signal(n.signal,e.value),e.addEventListener(i,s),Nre(r,e,i,s),t.set=o=>{e.value=o,e.dispatchEvent(QHe(i))}}function QHe(t){return typeof Event<"u"?new Event(t):{type:t}}function GHe(t,e,n,r){const i=r.signal(n.signal),s=ks("div",{class:jHe}),o=n.input==="radio"?s:s.appendChild(ks("label"));o.appendChild(ks("span",{class:UHe},n.name||n.signal)),e.appendChild(s);let u=WHe;switch(n.input){case"checkbox":u=VHe;break;case"select":u=YHe;break;case"radio":u=XHe;break;case"range":u=KHe;break}u(t,o,n,i)}function WHe(t,e,n,r){const i=ks("input");for(const s in n)s!=="signal"&&s!=="element"&&i.setAttribute(s==="input"?"type":s,n[s]);i.setAttribute("name",n.signal),i.value=r,e.appendChild(i),i.addEventListener("input",()=>t.update(i.value)),t.elements=[i],t.set=s=>i.value=s}function VHe(t,e,n,r){const i={type:"checkbox",name:n.signal};r&&(i.checked=!0);const s=ks("input",i);e.appendChild(s),s.addEventListener("change",()=>t.update(s.checked)),t.elements=[s],t.set=o=>s.checked=!!o||null}function YHe(t,e,n,r){const i=ks("select",{name:n.signal}),s=n.labels||[];n.options.forEach((o,u)=>{const a={value:o};hO(o,r)&&(a.selected=!0),i.appendChild(ks("option",a,(s[u]||o)+""))}),e.appendChild(i),i.addEventListener("change",()=>{t.update(n.options[i.selectedIndex])}),t.elements=[i],t.set=o=>{for(let u=0,a=n.options.length;u<a;++u)if(hO(n.options[u],o)){i.selectedIndex=u;return}}}function XHe(t,e,n,r){const i=ks("span",{class:qHe}),s=n.labels||[];e.appendChild(i),t.elements=n.options.map((o,u)=>{const a={type:"radio",name:n.signal,value:o};hO(o,r)&&(a.checked=!0);const l=ks("input",a);l.addEventListener("change",()=>t.update(o));const c=ks("label",{},(s[u]||o)+"");return c.prepend(l),i.appendChild(c),l}),t.set=o=>{const u=t.elements,a=u.length;for(let l=0;l<a;++l)hO(u[l].value,o)&&(u[l].checked=!0)}}function KHe(t,e,n,r){r=r!==void 0?r:(+n.max+ +n.min)/2;const i=n.max!=null?n.max:Math.max(100,+r)||100,s=n.min||Math.min(0,i,+r)||0,o=n.step||Z0(s,i,100),u=ks("input",{type:"range",name:n.signal,min:s,max:i,step:o});u.value=r;const a=ks("span",{},+r);e.appendChild(u),e.appendChild(a);const l=()=>{a.textContent=u.value,t.update(+u.value)};u.addEventListener("input",l),u.addEventListener("change",l),t.elements=[u],t.set=c=>{u.value=c,a.textContent=c}}function hO(t,e){return t===e||t+""==e+""}function Lre(t,e,n,r,i,s){return e=e||new r(t.loader()),e.initialize(n,Tre(t),Rre(t),xO(t),i,s).background(t.background())}function Ak(t,e){return e?function(){try{e.apply(this,arguments)}catch(n){t.error(n)}}:null}function JHe(t,e,n,r){const i=new r(t.loader(),Ak(t,t.tooltip())).scene(t.scenegraph().root).initialize(n,xO(t),t);return e&&e.handlers().forEach(s=>{i.on(s.type,s.handler)}),i}function ZHe(t,e){const n=this,r=n._renderType,i=n._eventConfig.bind,s=V$(r);t=n._el=t?Sk(n,t,!0):null,_He(n),s||n.error("Unrecognized renderer type: "+r);const o=s.handler||WT,u=t?s.renderer:s.headless;return n._renderer=u?Lre(n,n._renderer,t,u):null,n._handler=JHe(n,n._handler,t,o),n._redraw=!0,t&&i!=="none"&&(e=e?n._elBind=Sk(n,e,!0):t.appendChild(ks("form",{class:"vega-bindings"})),n._bind.forEach(a=>{a.param.element&&i!=="container"&&(a.element=Sk(n,a.param.element,!!a.param.input))}),n._bind.forEach(a=>{HHe(n,a.element||e,a)})),n}function Sk(t,e,n){if(typeof e=="string")if(typeof document<"u"){if(e=document.querySelector(e),!e)return t.error("Signal bind element not found: "+e),null}else return t.error("DOM document instance not found."),null;if(e&&n)try{e.textContent=""}catch(r){e=null,t.error(r)}return e}const qE=t=>+t||0,eze=t=>({top:t,bottom:t,left:t,right:t});function Ire(t){return He(t)?{top:qE(t.top),bottom:qE(t.bottom),left:qE(t.left),right:qE(t.right)}:eze(qE(t))}async function vk(t,e,n,r){const i=V$(e),s=i&&i.headless;return s||ve("Unrecognized renderer type: "+e),await t.runAsync(),Lre(t,null,null,s,n,r).renderAsync(t._scenegraph.root)}async function tze(t,e){t!==Xx.Canvas&&t!==Xx.SVG&&t!==Xx.PNG&&ve("Unrecognized image type: "+t);const n=await vk(this,t,e);return t===Xx.SVG?nze(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")}function nze(t,e){const n=new Blob([t],{type:e});return window.URL.createObjectURL(n)}async function rze(t,e){return(await vk(this,Xx.Canvas,t,e)).canvas()}async function ize(t){return(await vk(this,Xx.SVG,t)).svg()}function sze(t,e,n){return vHe(t,by,jE,n).parse(e)}function oze(t){var e=this._runtime.scales;return Je(e,t)||ve("Unrecognized scale or projection: "+t),e[t].value}var $re="width",Bre="height",_k="padding",kre={skip:!0};function Pre(t,e){var n=t.autosize(),r=t.padding();return e-(n&&n.contains===_k?r.left+r.right:0)}function Mre(t,e){var n=t.autosize(),r=t.padding();return e-(n&&n.contains===_k?r.top+r.bottom:0)}function uze(t){var e=t._signals,n=e[$re],r=e[Bre],i=e[_k];function s(){t._autosize=t._resize=1}t._resizeWidth=t.add(null,u=>{t._width=u.size,t._viewWidth=Pre(t,u.size),s()},{size:n}),t._resizeHeight=t.add(null,u=>{t._height=u.size,t._viewHeight=Mre(t,u.size),s()},{size:r});const o=t.add(null,s,{pad:i});t._resizeWidth.rank=n.rank+1,t._resizeHeight.rank=r.rank+1,o.rank=i.rank+1}function aze(t,e,n,r,i,s){this.runAfter(o=>{let u=0;o._autosize=0,o.width()!==n&&(u=1,o.signal($re,n,kre),o._resizeWidth.skip(!0)),o.height()!==r&&(u=1,o.signal(Bre,r,kre),o._resizeHeight.skip(!0)),o._viewWidth!==t&&(o._resize=1,o._viewWidth=t),o._viewHeight!==e&&(o._resize=1,o._viewHeight=e),(o._origin[0]!==i[0]||o._origin[1]!==i[1])&&(o._resize=1,o._origin=i),u&&o.run("enter"),s&&o.runAfter(a=>a.resize())},!1,1)}function lze(t){return this._runtime.getState(t||{data:cze,signals:fze,recurse:!0})}function cze(t,e){return e.modified&&_e(e.input.value)&&t.indexOf("_:vega:_")}function fze(t,e){return!(t==="parent"||e instanceof by.proxy)}function xze(t){return this.runAsync(null,e=>{e._trigger=!1,e._runtime.setState(t)},e=>{e._trigger=!0}),this}function dze(t,e){function n(r){t({timestamp:Date.now(),elapsed:r})}this._timers.push(PPe(n,e))}function hze(t,e,n,r){const i=t.element();i&&i.setAttribute("title",pze(r))}function pze(t){return t==null?"":_e(t)?jre(t):He(t)&&!vx(t)?gze(t):t+""}function gze(t){return Object.keys(t).map(e=>{const n=t[e];return e+": "+(_e(n)?jre(n):Ure(n))}).join(`
|
|
1319
|
-
`)}function jre(t){return"["+t.map(Ure).join(", ")+"]"}function Ure(t){return _e(t)?"[…]":He(t)&&!vx(t)?"{…}":t}function qre(t,e){const n=this;if(e=e||{},_y.call(n),e.loader&&n.loader(e.loader),e.logger&&n.logger(e.logger),e.logLevel!=null&&n.logLevel(e.logLevel),e.locale||t.locale){const s=ft({},t.locale,e.locale);n.locale(ZV(s.number,s.time))}n._el=null,n._elBind=null,n._renderType=e.renderer||Xx.Canvas,n._scenegraph=new XJ;const r=n._scenegraph.root;n._renderer=null,n._tooltip=e.tooltip||hze,n._redraw=!0,n._handler=new WT().scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=$He(t.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const i=sze(n,t,e.expr);n._runtime=i,n._signals=i.signals,n._bind=(t.bindings||[]).map(s=>({state:null,param:ft({},s)})),i.root&&i.root.set(r),r.source=i.data.root.input,n.pulse(i.data.root.input,n.changeset().insert(r.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=Pre(n,n._width),n._viewHeight=Mre(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,uze(n),CHe(n),bHe(n),n.description(t.description),e.hover&&n.hover(),e.container&&n.initialize(e.container,e.bind)}function pO(t,e){return Je(t._signals,e)?t._signals[e]:ve("Unrecognized signal name: "+we(e))}function Hre(t,e){const n=(t._targets||[]).filter(r=>r._update&&r._update.handler===e);return n.length?n[0]:null}function zre(t,e,n,r){let i=Hre(n,r);return i||(i=Ak(t,()=>r(e,n.value)),i.handler=r,t.on(n,null,i)),t}function Qre(t,e,n){const r=Hre(e,n);return r&&e._targets.remove(r),t}Fe(qre,_y,{async evaluate(t,e,n){if(await _y.prototype.evaluate.call(this,t,e),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,NHe(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(r){this.error(r)}return n&&Hb(this,n),this},dirty(t){this._redraw=!0,this._renderer&&this._renderer.dirty(t)},description(t){if(arguments.length){const e=t!=null?t+"":null;return e!==this._desc&&bre(this._el,this._desc=e),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(t,e,n){const r=pO(this,t);return arguments.length===1?r.value:this.update(r,e,n)},width(t){return arguments.length?this.signal("width",t):this.signal("width")},height(t){return arguments.length?this.signal("height",t):this.signal("height")},padding(t){return arguments.length?this.signal("padding",Ire(t)):Ire(this.signal("padding"))},autosize(t){return arguments.length?this.signal("autosize",t):this.signal("autosize")},background(t){return arguments.length?this.signal("background",t):this.signal("background")},renderer(t){return arguments.length?(V$(t)||ve("Unrecognized renderer type: "+t),t!==this._renderType&&(this._renderType=t,this._resetRenderer()),this):this._renderType},tooltip(t){return arguments.length?(t!==this._tooltip&&(this._tooltip=t,this._resetRenderer()),this):this._tooltip},loader(t){return arguments.length?(t!==this._loader&&(_y.prototype.loader.call(this,t),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(pO(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:aze,addEventListener(t,e,n){let r=e;return n&&n.trap===!1||(r=Ak(this,e),r.raw=e),this._handler.on(t,r),this},removeEventListener(t,e){for(var n=this._handler.handlers(t),r=n.length,i,s;--r>=0;)if(s=n[r].type,i=n[r].handler,t===s&&(e===i||e===i.raw)){this._handler.off(s,i);break}return this},addResizeListener(t){const e=this._resizeListeners;return e.indexOf(t)<0&&e.push(t),this},removeResizeListener(t){var e=this._resizeListeners,n=e.indexOf(t);return n>=0&&e.splice(n,1),this},addSignalListener(t,e){return zre(this,t,pO(this,t),e)},removeSignalListener(t,e){return Qre(this,pO(this,t),e)},addDataListener(t,e){return zre(this,t,cO(this,t).values,e)},removeDataListener(t,e){return Qre(this,cO(this,t).values,e)},globalCursor(t){if(arguments.length){if(this._globalCursor!==!!t){const e=Ek(this,null);this._globalCursor=!!t,e&&Ek(this,e)}return this}else return this._globalCursor},preventDefault(t){return arguments.length?(this._preventDefault=t,this):this._preventDefault},timer:dze,events:kHe,finalize:MHe,hover:PHe,data:THe,change:fO,insert:RHe,remove:OHe,scale:oze,initialize:ZHe,toImageURL:tze,toCanvas:rze,toSVG:ize,getState:lze,setState:xze});const mze="view",gO="[",mO="]",Gre="{",Wre="}",yze=":",Vre=",",Eze="@",Aze=">",Sze=/[[\]{}]/,vze={"*":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};let Yre,Xre;function ad(t,e,n){return Yre=e||mze,Xre=n||vze,Kre(t.trim()).map(Ck)}function _ze(t){return Xre[t]}function HE(t,e,n,r,i){const s=t.length;let o=0,u;for(;e<s;++e){if(u=t[e],!o&&u===n)return e;i&&i.indexOf(u)>=0?--o:r&&r.indexOf(u)>=0&&++o}return e}function Kre(t){const e=[],n=t.length;let r=0,i=0;for(;i<n;)i=HE(t,i,Vre,gO+Gre,mO+Wre),e.push(t.substring(r,i).trim()),r=++i;if(e.length===0)throw"Empty event selector: "+t;return e}function Ck(t){return t[0]==="["?Cze(t):bze(t)}function Cze(t){const e=t.length;let n=1,r;if(n=HE(t,n,mO,gO,mO),n===e)throw"Empty between selector: "+t;if(r=Kre(t.substring(1,n)),r.length!==2)throw"Between selector must have two elements: "+t;if(t=t.slice(n+1).trim(),t[0]!==Aze)throw"Expected '>' after between selector: "+t;r=r.map(Ck);const i=Ck(t.slice(1).trim());return i.between?{between:r,stream:i}:(i.between=r,i)}function bze(t){const e={source:Yre},n=[];let r=[0,0],i=0,s=0,o=t.length,u=0,a,l;if(t[o-1]===Wre){if(u=t.lastIndexOf(Gre),u>=0){try{r=Tze(t.substring(u+1,o-1))}catch{throw"Invalid throttle specification: "+t}t=t.slice(0,u).trim(),o=t.length}else throw"Unmatched right brace: "+t;u=0}if(!o)throw t;if(t[0]===Eze&&(i=++u),a=HE(t,u,yze),a<o&&(n.push(t.substring(s,a).trim()),s=u=++a),u=HE(t,u,gO),u===o)n.push(t.substring(s,o).trim());else if(n.push(t.substring(s,u).trim()),l=[],s=++u,s===o)throw"Unmatched left bracket: "+t;for(;u<o;){if(u=HE(t,u,mO),u===o)throw"Unmatched left bracket: "+t;if(l.push(t.substring(s,u).trim()),u<o-1&&t[++u]!==gO)throw"Expected left bracket: "+t;s=++u}if(!(o=n.length)||Sze.test(n[o-1]))throw"Invalid event selector: "+t;return o>1?(e.type=n[1],i?e.markname=n[0].slice(1):_ze(n[0])?e.marktype=n[0]:e.source=n[0]):e.type=n[0],e.type.slice(-1)==="!"&&(e.consume=!0,e.type=e.type.slice(0,-1)),l!=null&&(e.filter=l),r[0]&&(e.throttle=r[0]),r[1]&&(e.debounce=r[1]),e}function Tze(t){const e=t.split(Vre);if(!t.length||e.length>2)throw t;return e.map(n=>{const r=+n;if(r!==r)throw t;return r})}function Rze(t){return He(t)?t:{type:t||"pad"}}const zE=t=>+t||0,Oze=t=>({top:t,bottom:t,left:t,right:t});function Nze(t){return He(t)?t.signal?t:{top:zE(t.top),bottom:zE(t.bottom),left:zE(t.left),right:zE(t.right)}:Oze(zE(t))}const mr=t=>He(t)&&!_e(t)?ft({},t):{value:t};function Jre(t,e,n,r){return n!=null?(He(n)&&!_e(n)||_e(n)&&n.length&&He(n[0])?t.update[e]=n:t[r||"enter"][e]={value:n},1):0}function Lr(t,e,n){for(const r in e)Jre(t,r,e[r]);for(const r in n)Jre(t,r,n[r],"update")}function o2(t,e,n){for(const r in e)n&&Je(n,r)||(t[r]=ft(t[r]||{},e[r]));return t}function u2(t,e){return e&&(e.enter&&e.enter[t]||e.update&&e.update[t])}const bk="mark",Tk="frame",Rk="scope",Dze="axis",Fze="axis-domain",wze="axis-grid",Lze="axis-label",Ize="axis-tick",$ze="axis-title",Bze="legend",kze="legend-band",Pze="legend-entry",Mze="legend-gradient",Zre="legend-label",jze="legend-symbol",Uze="legend-title",qze="title",Hze="title-text",zze="title-subtitle";function Qze(t,e,n,r,i){const s={},o={};let u,a,l,c;a="lineBreak",e==="text"&&i[a]!=null&&!u2(a,t)&&Ok(s,a,i[a]),(n=="legend"||String(n).startsWith("axis"))&&(n=null),c=n===Tk?i.group:n===bk?ft({},i.mark,i[e]):null;for(a in c)l=u2(a,t)||(a==="fill"||a==="stroke")&&(u2("fill",t)||u2("stroke",t)),l||Ok(s,a,c[a]);Pe(r).forEach(f=>{const x=i.style&&i.style[f];for(const h in x)u2(h,t)||Ok(s,h,x[h])}),t=ft({},t);for(a in s)c=s[a],c.signal?(u=u||{})[a]=c:o[a]=c;return t.enter=ft(o,t.enter),u&&(t.update=ft(u,t.update)),t}function Ok(t,e,n){t[e]=n&&n.signal?{signal:n.signal}:{value:n}}const eie=t=>je(t)?we(t):t.signal?`(${t.signal})`:tie(t);function yO(t){if(t.gradient!=null)return Wze(t);let e=t.signal?`(${t.signal})`:t.color?Gze(t.color):t.field!=null?tie(t.field):t.value!==void 0?we(t.value):void 0;return t.scale!=null&&(e=Vze(t,e)),e===void 0&&(e=null),t.exponent!=null&&(e=`pow(${e},${AO(t.exponent)})`),t.mult!=null&&(e+=`*${AO(t.mult)}`),t.offset!=null&&(e+=`+${AO(t.offset)}`),t.round&&(e=`round(${e})`),e}const EO=(t,e,n,r)=>`(${t}(${[e,n,r].map(yO).join(",")})+'')`;function Gze(t){return t.c?EO("hcl",t.h,t.c,t.l):t.h||t.s?EO("hsl",t.h,t.s,t.l):t.l||t.a?EO("lab",t.l,t.a,t.b):t.r||t.g||t.b?EO("rgb",t.r,t.g,t.b):null}function Wze(t){const e=[t.start,t.stop,t.count].map(n=>n==null?null:we(n));for(;e.length&&vt(e)==null;)e.pop();return e.unshift(eie(t.gradient)),`gradient(${e.join(",")})`}function AO(t){return He(t)?"("+yO(t)+")":t}function tie(t){return nie(He(t)?t:{datum:t})}function nie(t){let e,n,r;if(t.signal)e="datum",r=t.signal;else if(t.group||t.parent){for(n=Math.max(1,t.level||1),e="item";n-- >0;)e+=".mark.group";t.parent?(r=t.parent,e+=".datum"):r=t.group}else t.datum?(e="datum",r=t.datum):ve("Invalid field reference: "+we(t));return t.signal||(r=je(r)?hl(r).map(we).join("]["):nie(r)),e+"["+r+"]"}function Vze(t,e){const n=eie(t.scale);return t.range!=null?e=`lerp(_range(${n}), ${+t.range})`:(e!==void 0&&(e=`_scale(${n}, ${e})`),t.band&&(e=(e?e+"+":"")+`_bandwidth(${n})`+(+t.band==1?"":"*"+AO(t.band)),t.extra&&(e=`(datum.extra ? _scale(${n}, datum.extra.value) : ${e})`)),e==null&&(e="0")),e}function Yze(t){let e="";return t.forEach(n=>{const r=yO(n);e+=n.test?`(${n.test})?${r}:`:r}),vt(e)===":"&&(e+="null"),e}function rie(t,e,n,r,i,s){const o={};s=s||{},s.encoders={$encode:o},t=Qze(t,e,n,r,i.config);for(const u in t)o[u]=Xze(t[u],e,s,i);return s}function Xze(t,e,n,r){const i={},s={};for(const o in t)t[o]!=null&&(i[o]=Jze(Kze(t[o]),r,n,s));return{$expr:{marktype:e,channels:i},$fields:Object.keys(s),$output:Object.keys(t)}}function Kze(t){return _e(t)?Yze(t):yO(t)}function Jze(t,e,n,r){const i=ma(t,e);return i.$fields.forEach(s=>r[s]=1),ft(n,i.$params),i.$expr}const Zze="outer",eQe=["value","update","init","react","bind"];function iie(t,e){ve(t+' for "outer" push: '+we(e))}function sie(t,e){const n=t.name;if(t.push===Zze)e.signals[n]||iie("No prior signal definition",n),eQe.forEach(r=>{t[r]!==void 0&&iie("Invalid property ",r)});else{const r=e.addSignal(n,t.value);t.react===!1&&(r.react=!1),t.bind&&e.addBinding(n,t.bind)}}function Nk(t,e,n,r){this.id=-1,this.type=t,this.value=e,this.params=n,r&&(this.parent=r)}function SO(t,e,n,r){return new Nk(t,e,n,r)}function vO(t,e){return SO("operator",t,e)}function Ke(t){const e={$ref:t.id};return t.id<0&&(t.refs=t.refs||[]).push(e),e}function QE(t,e){return e?{$field:t,$name:e}:{$field:t}}const Dk=QE("key");function oie(t,e){return{$compare:t,$order:e}}function tQe(t,e){const n={$key:t};return e&&(n.$flat=!0),n}const nQe="ascending",rQe="descending";function iQe(t){return He(t)?(t.order===rQe?"-":"+")+_O(t.op,t.field):""}function _O(t,e){return(t&&t.signal?"$"+t.signal:t||"")+(t&&e?"_":"")+(e&&e.signal?"$"+e.signal:e||"")}const Fk="scope",wk="view";function tr(t){return t&&t.signal}function sQe(t){return t&&t.expr}function CO(t){if(tr(t))return!0;if(He(t)){for(const e in t)if(CO(t[e]))return!0}return!1}function nu(t,e){return t??e}function ld(t){return t&&t.signal||t}const uie="timer";function GE(t,e){return(t.merge?uQe:t.stream?aQe:t.type?lQe:ve("Invalid stream specification: "+we(t)))(t,e)}function oQe(t){return t===Fk?wk:t||wk}function uQe(t,e){const n=t.merge.map(i=>GE(i,e)),r=Lk({merge:n},t,e);return e.addStream(r).id}function aQe(t,e){const n=GE(t.stream,e),r=Lk({stream:n},t,e);return e.addStream(r).id}function lQe(t,e){let n;t.type===uie?(n=e.event(uie,t.throttle),t={between:t.between,filter:t.filter}):n=e.event(oQe(t.source),t.type);const r=Lk({stream:n},t,e);return Object.keys(r).length===1?n:e.addStream(r).id}function Lk(t,e,n){let r=e.between;return r&&(r.length!==2&&ve('Stream "between" parameter must have 2 entries: '+we(e)),t.between=[GE(r[0],n),GE(r[1],n)]),r=e.filter?[].concat(e.filter):[],(e.marktype||e.markname||e.markrole)&&r.push(cQe(e.marktype,e.markname,e.markrole)),e.source===Fk&&r.push("inScope(event.item)"),r.length&&(t.filter=ma("("+r.join(")&&(")+")",n).$expr),(r=e.throttle)!=null&&(t.throttle=+r),(r=e.debounce)!=null&&(t.debounce=+r),e.consume&&(t.consume=!0),t}function cQe(t,e,n){const r="event.item";return r+(t&&t!=="*"?"&&"+r+".mark.marktype==='"+t+"'":"")+(n?"&&"+r+".mark.role==='"+n+"'":"")+(e?"&&"+r+".mark.name==='"+e+"'":"")}const fQe={code:"_.$value",ast:{type:"Identifier",value:"value"}};function xQe(t,e,n){const r=t.encode,i={target:n};let s=t.events,o=t.update,u=[];s||ve("Signal update missing events specification."),je(s)&&(s=ad(s,e.isSubscope()?Fk:wk)),s=Pe(s).filter(a=>a.signal||a.scale?(u.push(a),0):1),u.length>1&&(u=[hQe(u)]),s.length&&u.push(s.length>1?{merge:s}:s[0]),r!=null&&(o&&ve("Signal encode and update are mutually exclusive."),o="encode(item(),"+we(r)+")"),i.update=je(o)?ma(o,e):o.expr!=null?ma(o.expr,e):o.value!=null?o.value:o.signal!=null?{$expr:fQe,$params:{$value:e.signalRef(o.signal)}}:ve("Invalid signal update specification."),t.force&&(i.options={force:!0}),u.forEach(a=>e.addUpdate(ft(dQe(a,e),i)))}function dQe(t,e){return{source:t.signal?e.signalRef(t.signal):t.scale?e.scaleRef(t.scale):GE(t,e)}}function hQe(t){return{signal:"["+t.map(e=>e.scale?'scale("'+e.scale+'")':e.signal)+"]"}}function pQe(t,e){const n=e.getSignal(t.name);let r=t.update;t.init&&(r?ve("Signals can not include both init and update expressions."):(r=t.init,n.initonly=!0)),r&&(r=ma(r,e),n.update=r.$expr,n.params=r.$params),t.on&&t.on.forEach(i=>xQe(i,e,n.id))}const jt=t=>(e,n,r)=>SO(t,n,e||void 0,r),aie=jt("aggregate"),gQe=jt("axisticks"),lie=jt("bound"),ru=jt("collect"),cie=jt("compare"),mQe=jt("datajoin"),fie=jt("encode"),yQe=jt("expression"),EQe=jt("facet"),AQe=jt("field"),SQe=jt("key"),vQe=jt("legendentries"),_Qe=jt("load"),CQe=jt("mark"),bQe=jt("multiextent"),TQe=jt("multivalues"),RQe=jt("overlap"),OQe=jt("params"),xie=jt("prefacet"),NQe=jt("projection"),DQe=jt("proxy"),FQe=jt("relay"),die=jt("render"),wQe=jt("scale"),cd=jt("sieve"),LQe=jt("sortitems"),hie=jt("viewlayout"),IQe=jt("values");let $Qe=0;const pie={min:"min",max:"max",count:"sum"};function BQe(t,e){const n=t.type||"linear";XK(n)||ve("Unrecognized scale type: "+we(n)),e.addScale(t.name,{type:n,domain:void 0})}function kQe(t,e){const n=e.getScale(t.name).params;let r;n.domain=gie(t.domain,t,e),t.range!=null&&(n.range=yie(t,e,n)),t.interpolate!=null&&WQe(t.interpolate,n),t.nice!=null&&(n.nice=GQe(t.nice)),t.bins!=null&&(n.bins=QQe(t.bins,e));for(r in t)Je(n,r)||r==="name"||(n[r]=mo(t[r],e))}function mo(t,e){return He(t)?t.signal?e.signalRef(t.signal):ve("Unsupported object: "+we(t)):t}function bO(t,e){return t.signal?e.signalRef(t.signal):t.map(n=>mo(n,e))}function TO(t){ve("Can not find data set: "+we(t))}function gie(t,e,n){if(!t){(e.domainMin!=null||e.domainMax!=null)&&ve("No scale domain defined for domainMin/domainMax to override.");return}return t.signal?n.signalRef(t.signal):(_e(t)?PQe:t.fields?jQe:MQe)(t,e,n)}function PQe(t,e,n){return t.map(r=>mo(r,n))}function MQe(t,e,n){const r=n.getData(t.data);return r||TO(t.data),Pp(e.type)?r.valuesRef(n,t.field,mie(t.sort,!1)):ZK(e.type)?r.domainRef(n,t.field):r.extentRef(n,t.field)}function jQe(t,e,n){const r=t.data,i=t.fields.reduce((s,o)=>(o=je(o)?{data:r,field:o}:_e(o)||o.signal?UQe(o,n):o,s.push(o),s),[]);return(Pp(e.type)?qQe:ZK(e.type)?HQe:zQe)(t,n,i)}function UQe(t,e){const n="_:vega:_"+$Qe++,r=ru({});if(_e(t))r.value={$ingest:t};else if(t.signal){const i="setdata("+we(n)+","+t.signal+")";r.params.input=e.signalRef(i)}return e.addDataPipeline(n,[r,cd({})]),{data:n,field:"data"}}function qQe(t,e,n){const r=mie(t.sort,!0);let i,s;const o=n.map(l=>{const c=e.getData(l.data);return c||TO(l.data),c.countsRef(e,l.field,r)}),u={groupby:Dk,pulse:o};r&&(i=r.op||"count",s=r.field?_O(i,r.field):"count",u.ops=[pie[i]],u.fields=[e.fieldRef(s)],u.as=[s]),i=e.add(aie(u));const a=e.add(ru({pulse:Ke(i)}));return s=e.add(IQe({field:Dk,sort:e.sortRef(r),pulse:Ke(a)})),Ke(s)}function mie(t,e){return t&&(!t.field&&!t.op?He(t)?t.field="key":t={field:"key"}:!t.field&&t.op!=="count"?ve("No field provided for sort aggregate op: "+t.op):e&&t.field&&t.op&&!pie[t.op]&&ve("Multiple domain scales can not be sorted using "+t.op)),t}function HQe(t,e,n){const r=n.map(i=>{const s=e.getData(i.data);return s||TO(i.data),s.domainRef(e,i.field)});return Ke(e.add(TQe({values:r})))}function zQe(t,e,n){const r=n.map(i=>{const s=e.getData(i.data);return s||TO(i.data),s.extentRef(e,i.field)});return Ke(e.add(bQe({extents:r})))}function QQe(t,e){return t.signal||_e(t)?bO(t,e):e.objectProperty(t)}function GQe(t){return He(t)?{interval:mo(t.interval),step:mo(t.step)}:mo(t)}function WQe(t,e){e.interpolate=mo(t.type||t),t.gamma!=null&&(e.interpolateGamma=mo(t.gamma))}function yie(t,e,n){const r=e.config.range;let i=t.range;if(i.signal)return e.signalRef(i.signal);if(je(i)){if(r&&Je(r,i))return t=ft({},t,{range:r[i]}),yie(t,e,n);i==="width"?i=[0,{signal:"width"}]:i==="height"?i=Pp(t.type)?[0,{signal:"height"}]:[{signal:"height"},0]:ve("Unrecognized scale range value: "+we(i))}else if(i.scheme){n.scheme=_e(i.scheme)?bO(i.scheme,e):mo(i.scheme,e),i.extent&&(n.schemeExtent=bO(i.extent,e)),i.count&&(n.schemeCount=mo(i.count,e));return}else if(i.step){n.rangeStep=mo(i.step,e);return}else{if(Pp(t.type)&&!_e(i))return gie(i,t,e);_e(i)||ve("Unsupported range type: "+we(i))}return i.map(s=>(_e(s)?bO:mo)(s,e))}function VQe(t,e){const n=e.config.projection||{},r={};for(const i in t)i!=="name"&&(r[i]=Ik(t[i],i,e));for(const i in n)r[i]==null&&(r[i]=Ik(n[i],i,e));e.addProjection(t.name,r)}function Ik(t,e,n){return _e(t)?t.map(r=>Ik(r,e,n)):He(t)?t.signal?n.signalRef(t.signal):e==="fit"?t:ve("Unsupported parameter object: "+we(t)):t}const iu="top",a2="left",l2="right",Tc="bottom",Eie="center",YQe="vertical",XQe="start",KQe="middle",JQe="end",$k="index",Bk="label",ZQe="offset",c2="perc",eGe="perc2",yo="value",WE="guide-label",kk="guide-title",tGe="group-title",nGe="group-subtitle",Aie="symbol",RO="gradient",Pk="discrete",Mk="size",jk=[Mk,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],VE={name:1,style:1,interactive:1},_t={value:0},Eo={value:1},OO="group",Sie="rect",Uk="rule",rGe="symbol",fd="text";function YE(t){return t.type=OO,t.interactive=t.interactive||!1,t}function as(t,e){const n=(r,i)=>nu(t[r],nu(e[r],i));return n.isVertical=r=>YQe===nu(t.direction,e.direction||(r?e.symbolDirection:e.gradientDirection)),n.gradientLength=()=>nu(t.gradientLength,e.gradientLength||e.gradientWidth),n.gradientThickness=()=>nu(t.gradientThickness,e.gradientThickness||e.gradientHeight),n.entryColumns=()=>nu(t.columns,nu(e.columns,+n.isVertical(!0))),n}function vie(t,e){const n=e&&(e.update&&e.update[t]||e.enter&&e.enter[t]);return n&&n.signal?n:n?n.value:null}function iGe(t,e,n){const r=e.config.style[n];return r&&r[t]}function NO(t,e,n){return`item.anchor === '${XQe}' ? ${t} : item.anchor === '${JQe}' ? ${e} : ${n}`}const qk=NO(we(a2),we(l2),we(Eie));function sGe(t){const e=t("tickBand");let n=t("tickOffset"),r,i;return e?e.signal?(r={signal:`(${e.signal}) === 'extent' ? 1 : 0.5`},i={signal:`(${e.signal}) === 'extent'`},He(n)||(n={signal:`(${e.signal}) === 'extent' ? 0 : ${n}`})):e==="extent"?(r=1,i=!0,n=0):(r=.5,i=!1):(r=t("bandPosition"),i=t("tickExtra")),{extra:i,band:r,offset:n}}function _ie(t,e){return e?t?He(t)?Object.assign({},t,{offset:_ie(t.offset,e)}):{value:t,offset:e}:e:t}function Ps(t,e){return e?(t.name=e.name,t.style=e.style||t.style,t.interactive=!!e.interactive,t.encode=o2(t.encode,e,VE)):t.interactive=!1,t}function oGe(t,e,n,r){const i=as(t,n),s=i.isVertical(),o=i.gradientThickness(),u=i.gradientLength();let a,l,c,f,x;s?(l=[0,1],c=[0,0],f=o,x=u):(l=[0,0],c=[1,0],f=u,x=o);const h={enter:a={opacity:_t,x:_t,y:_t,width:mr(f),height:mr(x)},update:ft({},a,{opacity:Eo,fill:{gradient:e,start:l,stop:c}}),exit:{opacity:_t}};return Lr(h,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),Ps({type:Sie,role:Mze,encode:h},r)}function uGe(t,e,n,r,i){const s=as(t,n),o=s.isVertical(),u=s.gradientThickness(),a=s.gradientLength();let l,c,f,x,h="";o?(l="y",f="y2",c="x",x="width",h="1-"):(l="x",f="x2",c="y",x="height");const p={opacity:_t,fill:{scale:e,field:yo}};p[l]={signal:h+"datum."+c2,mult:a},p[c]=_t,p[f]={signal:h+"datum."+eGe,mult:a},p[x]=mr(u);const m={enter:p,update:ft({},p,{opacity:Eo}),exit:{opacity:_t}};return Lr(m,{stroke:s("gradientStrokeColor"),strokeWidth:s("gradientStrokeWidth")},{opacity:s("gradientOpacity")}),Ps({type:Sie,role:kze,key:yo,from:i,encode:m},r)}const aGe=`datum.${c2}<=0?"${a2}":datum.${c2}>=1?"${l2}":"${Eie}"`,lGe=`datum.${c2}<=0?"${Tc}":datum.${c2}>=1?"${iu}":"${KQe}"`;function Cie(t,e,n,r){const i=as(t,e),s=i.isVertical(),o=mr(i.gradientThickness()),u=i.gradientLength();let a=i("labelOverlap"),l,c,f,x,h="";const p={enter:l={opacity:_t},update:c={opacity:Eo,text:{field:Bk}},exit:{opacity:_t}};return Lr(p,{fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:nu(t.labelLimit,e.gradientLabelLimit)}),s?(l.align={value:"left"},l.baseline=c.baseline={signal:lGe},f="y",x="x",h="1-"):(l.align=c.align={signal:aGe},l.baseline={value:"top"},f="x",x="y"),l[f]=c[f]={signal:h+"datum."+c2,mult:u},l[x]=c[x]=o,o.offset=nu(t.labelOffset,e.gradientLabelOffset)||0,a=a?{separation:i("labelSeparation"),method:a,order:"datum."+$k}:void 0,Ps({type:fd,role:Zre,style:WE,key:yo,from:r,encode:p,overlap:a},n)}function cGe(t,e,n,r,i){const s=as(t,e),o=n.entries,u=!!(o&&o.interactive),a=o?o.name:void 0,l=s("clipHeight"),c=s("symbolOffset"),f={data:"value"},x=`(${i}) ? datum.${ZQe} : datum.${Mk}`,h=l?mr(l):{field:Mk},p=`datum.${$k}`,m=`max(1, ${i})`;let g,y,E,A,S;h.mult=.5,g={enter:y={opacity:_t,x:{signal:x,mult:.5,offset:c},y:h},update:E={opacity:Eo,x:y.x,y:y.y},exit:{opacity:_t}};let v=null,_=null;t.fill||(v=e.symbolBaseFillColor,_=e.symbolBaseStrokeColor),Lr(g,{fill:s("symbolFillColor",v),shape:s("symbolType"),size:s("symbolSize"),stroke:s("symbolStrokeColor",_),strokeDash:s("symbolDash"),strokeDashOffset:s("symbolDashOffset"),strokeWidth:s("symbolStrokeWidth")},{opacity:s("symbolOpacity")}),jk.forEach(O=>{t[O]&&(E[O]=y[O]={scale:t[O],field:yo})});const C=Ps({type:rGe,role:jze,key:yo,from:f,clip:l?!0:void 0,encode:g},n.symbols),b=mr(c);b.offset=s("labelOffset"),g={enter:y={opacity:_t,x:{signal:x,offset:b},y:h},update:E={opacity:Eo,text:{field:Bk},x:y.x,y:y.y},exit:{opacity:_t}},Lr(g,{align:s("labelAlign"),baseline:s("labelBaseline"),fill:s("labelColor"),fillOpacity:s("labelOpacity"),font:s("labelFont"),fontSize:s("labelFontSize"),fontStyle:s("labelFontStyle"),fontWeight:s("labelFontWeight"),limit:s("labelLimit")});const R=Ps({type:fd,role:Zre,style:WE,key:yo,from:f,encode:g},n.labels);return g={enter:{noBound:{value:!l},width:_t,height:l?mr(l):_t,opacity:_t},exit:{opacity:_t},update:E={opacity:Eo,row:{signal:null},column:{signal:null}}},s.isVertical(!0)?(A=`ceil(item.mark.items.length / ${m})`,E.row.signal=`${p}%${A}`,E.column.signal=`floor(${p} / ${A})`,S={field:["row",p]}):(E.row.signal=`floor(${p} / ${m})`,E.column.signal=`${p} % ${m}`,S={field:p}),E.column.signal=`(${i})?${E.column.signal}:${p}`,r={facet:{data:r,name:"value",groupby:$k}},YE({role:Rk,from:r,encode:o2(g,o,VE),marks:[C,R],name:a,interactive:u,sort:S})}function fGe(t,e){const n=as(t,e);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}const Hk='item.orient === "left"',zk='item.orient === "right"',DO=`(${Hk} || ${zk})`,xGe=`datum.vgrad && ${DO}`,dGe=NO('"top"','"bottom"','"middle"'),hGe=NO('"right"','"left"','"center"'),pGe=`datum.vgrad && ${zk} ? (${hGe}) : (${DO} && !(datum.vgrad && ${Hk})) ? "left" : ${qk}`,gGe=`item._anchor || (${DO} ? "middle" : "start")`,mGe=`${xGe} ? (${Hk} ? -90 : 90) : 0`,yGe=`${DO} ? (datum.vgrad ? (${zk} ? "bottom" : "top") : ${dGe}) : "top"`;function EGe(t,e,n,r){const i=as(t,e),s={enter:{opacity:_t},update:{opacity:Eo,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:_t}};return Lr(s,{orient:i("titleOrient"),_anchor:i("titleAnchor"),anchor:{signal:gGe},angle:{signal:mGe},align:{signal:pGe},baseline:{signal:yGe},text:t.title,fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),baseline:i("titleBaseline")}),Ps({type:fd,role:Uze,style:kk,from:r,encode:s},n)}function AGe(t,e){let n;return He(t)&&(t.signal?n=t.signal:t.path?n="pathShape("+bie(t.path)+")":t.sphere&&(n="geoShape("+bie(t.sphere)+', {type: "Sphere"})')),n?e.signalRef(n):!!t}function bie(t){return He(t)&&t.signal?t.signal:we(t)}function Tie(t){const e=t.role||"";return!e.indexOf("axis")||!e.indexOf("legend")||!e.indexOf("title")?e:t.type===OO?Rk:e||bk}function SGe(t){return{marktype:t.type,name:t.name||void 0,role:t.role||Tie(t),zindex:+t.zindex||void 0,aria:t.aria,description:t.description}}function vGe(t,e){return t&&t.signal?e.signalRef(t.signal):t!==!1}function Qk(t,e){const n=x4e(t.type);n||ve("Unrecognized transform type: "+we(t.type));const r=SO(n.type.toLowerCase(),null,Rie(n,t,e));return t.signal&&e.addSignal(t.signal,e.proxy(r)),r.metadata=n.metadata||{},r}function Rie(t,e,n){const r={},i=t.params.length;for(let s=0;s<i;++s){const o=t.params[s];r[o.name]=_Ge(o,e,n)}return r}function _Ge(t,e,n){const r=t.type,i=e[t.name];if(r==="index")return CGe(t,e,n);if(i===void 0){t.required&&ve("Missing required "+we(e.type)+" parameter: "+we(t.name));return}else{if(r==="param")return bGe(t,e,n);if(r==="projection")return n.projectionRef(e[t.name])}return t.array&&!tr(i)?i.map(s=>Oie(t,s,n)):Oie(t,i,n)}function Oie(t,e,n){const r=t.type;if(tr(e))return Die(r)?ve("Expression references can not be signals."):Gk(r)?n.fieldRef(e):Fie(r)?n.compareRef(e):n.signalRef(e.signal);{const i=t.expr||Gk(r);return i&&TGe(e)?n.exprRef(e.expr,e.as):i&&RGe(e)?QE(e.field,e.as):Die(r)?ma(e,n):OGe(r)?Ke(n.getData(e).values):Gk(r)?QE(e):Fie(r)?n.compareRef(e):e}}function CGe(t,e,n){return je(e.from)||ve('Lookup "from" parameter must be a string literal.'),n.getData(e.from).lookupRef(n,e.key)}function bGe(t,e,n){const r=e[t.name];return t.array?(_e(r)||ve("Expected an array of sub-parameters. Instead: "+we(r)),r.map(i=>Nie(t,i,n))):Nie(t,r,n)}function Nie(t,e,n){const r=t.params.length;let i;for(let o=0;o<r;++o){i=t.params[o];for(const u in i.key)if(i.key[u]!==e[u]){i=null;break}if(i)break}i||ve("Unsupported parameter: "+we(e));const s=ft(Rie(i,e,n),i.key);return Ke(n.add(OQe(s)))}const TGe=t=>t&&t.expr,RGe=t=>t&&t.field,OGe=t=>t==="data",Die=t=>t==="expr",Gk=t=>t==="field",Fie=t=>t==="compare";function NGe(t,e,n){let r,i,s,o,u;return t?(r=t.facet)&&(e||ve("Only group marks can be faceted."),r.field!=null?o=u=FO(r,n):(t.data?u=Ke(n.getData(t.data).aggregate):(s=Qk(ft({type:"aggregate",groupby:Pe(r.groupby)},r.aggregate),n),s.params.key=n.keyRef(r.groupby),s.params.pulse=FO(r,n),o=u=Ke(n.add(s))),i=n.keyRef(r.groupby,!0))):o=Ke(n.add(ru(null,[{}]))),o||(o=FO(t,n)),{key:i,pulse:o,parent:u}}function FO(t,e){return t.$ref?t:t.data&&t.data.$ref?t.data:Ke(e.getData(t.data).output)}function xd(t,e,n,r,i){this.scope=t,this.input=e,this.output=n,this.values=r,this.aggregate=i,this.index={}}xd.fromEntries=function(t,e){const n=e.length,r=e[n-1],i=e[n-2];let s=e[0],o=null,u=1;for(s&&s.type==="load"&&(s=e[1]),t.add(e[0]);u<n;++u)e[u].params.pulse=Ke(e[u-1]),t.add(e[u]),e[u].type==="aggregate"&&(o=e[u]);return new xd(t,s,i,r,o)};function wie(t){return je(t)?t:null}function Lie(t,e,n){const r=_O(n.op,n.field);let i;if(e.ops){for(let s=0,o=e.as.length;s<o;++s)if(e.as[s]===r)return}else e.ops=["count"],e.fields=[null],e.as=["count"];n.op&&(e.ops.push((i=n.op.signal)?t.signalRef(i):n.op),e.fields.push(t.fieldRef(n.field)),e.as.push(r))}function XE(t,e,n,r,i,s,o){const u=e[n]||(e[n]={}),a=iQe(s);let l=wie(i),c,f;if(l!=null&&(t=e.scope,l=l+(a?"|"+a:""),c=u[l]),!c){const x=s?{field:Dk,pulse:e.countsRef(t,i,s)}:{field:t.fieldRef(i),pulse:Ke(e.output)};a&&(x.sort=t.sortRef(s)),f=t.add(SO(r,void 0,x)),o&&(e.index[i]=f),c=Ke(f),l!=null&&(u[l]=c)}return c}xd.prototype={countsRef(t,e,n){const r=this,i=r.counts||(r.counts={}),s=wie(e);let o,u,a;return s!=null&&(t=r.scope,o=i[s]),o?n&&n.field&&Lie(t,o.agg.params,n):(a={groupby:t.fieldRef(e,"key"),pulse:Ke(r.output)},n&&n.field&&Lie(t,a,n),u=t.add(aie(a)),o=t.add(ru({pulse:Ke(u)})),o={agg:u,ref:Ke(o)},s!=null&&(i[s]=o)),o.ref},tuplesRef(){return Ke(this.values)},extentRef(t,e){return XE(t,this,"extent","extent",e,!1)},domainRef(t,e){return XE(t,this,"domain","values",e,!1)},valuesRef(t,e,n){return XE(t,this,"vals","values",e,n||!0)},lookupRef(t,e){return XE(t,this,"lookup","tupleindex",e,!1)},indataRef(t,e){return XE(t,this,"indata","tupleindex",e,!0,!0)}};function DGe(t,e,n){const r=t.from.facet,i=r.name,s=FO(r,e);let o;r.name||ve("Facet must have a name: "+we(r)),r.data||ve("Facet must reference a data set: "+we(r)),r.field?o=e.add(xie({field:e.fieldRef(r.field),pulse:s})):r.groupby?o=e.add(EQe({key:e.keyRef(r.groupby),group:Ke(e.proxy(n.parent)),pulse:s})):ve("Facet must specify groupby or field: "+we(r));const u=e.fork(),a=u.add(ru()),l=u.add(cd({pulse:Ke(a)}));u.addData(i,new xd(u,a,a,l)),u.addSignal("parent",null),o.params.subflow={$subflow:u.parse(t).toRuntime()}}function FGe(t,e,n){const r=e.add(xie({pulse:n.pulse})),i=e.fork();i.add(cd()),i.addSignal("parent",null),r.params.subflow={$subflow:i.parse(t).toRuntime()}}function Iie(t,e,n){const r=t.remove,i=t.insert,s=t.toggle,o=t.modify,u=t.values,a=e.add(vO()),l="if("+t.trigger+',modify("'+n+'",'+[i,r,s,o,u].map(f=>f??"null").join(",")+"),0)",c=ma(l,e);a.update=c.$expr,a.params=c.$params}function wO(t,e){const n=Tie(t),r=t.type===OO,i=t.from&&t.from.facet,s=t.overlap;let o=t.layout||n===Rk||n===Tk,u,a,l,c,f,x,h;const p=n===bk||o||i,m=NGe(t.from,r,e);a=e.add(mQe({key:m.key||(t.key?QE(t.key):void 0),pulse:m.pulse,clean:!r}));const g=Ke(a);a=l=e.add(ru({pulse:g})),a=e.add(CQe({markdef:SGe(t),interactive:vGe(t.interactive,e),clip:AGe(t.clip,e),context:{$context:!0},groups:e.lookup(),parent:e.signals.parent?e.signalRef("parent"):null,index:e.markpath(),pulse:Ke(a)}));const y=Ke(a);a=c=e.add(fie(rie(t.encode,t.type,n,t.style,e,{mod:!1,pulse:y}))),a.params.parent=e.encode(),t.transform&&t.transform.forEach(_=>{const C=Qk(_,e),b=C.metadata;(b.generates||b.changes)&&ve("Mark transforms should not generate new data."),b.nomod||(c.params.mod=!0),C.params.pulse=Ke(a),e.add(a=C)}),t.sort&&(a=e.add(LQe({sort:e.compareRef(t.sort),pulse:Ke(a)})));const E=Ke(a);(i||o)&&(o=e.add(hie({layout:e.objectProperty(t.layout),legends:e.legends,mark:y,pulse:E})),x=Ke(o));const A=e.add(lie({mark:y,pulse:x||E}));h=Ke(A),r&&(p&&(u=e.operators,u.pop(),o&&u.pop()),e.pushState(E,x||h,g),i?DGe(t,e,m):p?FGe(t,e,m):e.parse(t),e.popState(),p&&(o&&u.push(o),u.push(A))),s&&(h=wGe(s,h,e));const S=e.add(die({pulse:h})),v=e.add(cd({pulse:Ke(S)},void 0,e.parent()));t.name!=null&&(f=t.name,e.addData(f,new xd(e,l,S,v)),t.on&&t.on.forEach(_=>{(_.insert||_.remove||_.toggle)&&ve("Marks only support modify triggers."),Iie(_,e,f)}))}function wGe(t,e,n){const r=t.method,i=t.bound,s=t.separation,o={separation:tr(s)?n.signalRef(s.signal):s,method:tr(r)?n.signalRef(r.signal):r,pulse:e};if(t.order&&(o.sort=n.compareRef({field:t.order})),i){const u=i.tolerance;o.boundTolerance=tr(u)?n.signalRef(u.signal):+u,o.boundScale=n.scaleRef(i.scale),o.boundOrient=i.orient}return Ke(n.add(RQe(o)))}function LGe(t,e){const n=e.config.legend,r=t.encode||{},i=as(t,n),s=r.legend||{},o=s.name||void 0,u=s.interactive,a=s.style,l={};let c=0,f,x,h;jk.forEach(A=>t[A]?(l[A]=t[A],c=c||t[A]):0),c||ve("Missing valid scale for legend.");const p=IGe(t,e.scaleType(c)),m={title:t.title!=null,scales:l,type:p,vgrad:p!=="symbol"&&i.isVertical()},g=Ke(e.add(ru(null,[m]))),y={enter:{x:{value:0},y:{value:0}}},E=Ke(e.add(vQe(x={type:p,scale:e.scaleRef(c),count:e.objectProperty(i("tickCount")),limit:e.property(i("symbolLimit")),values:e.objectProperty(t.values),minstep:e.property(t.tickMinStep),formatType:e.property(t.formatType),formatSpecifier:e.property(t.format)})));return p===RO?(h=[oGe(t,c,n,r.gradient),Cie(t,n,r.labels,E)],x.count=x.count||e.signalRef(`max(2,2*floor((${ld(i.gradientLength())})/100))`)):p===Pk?h=[uGe(t,c,n,r.gradient,E),Cie(t,n,r.labels,E)]:(f=fGe(t,n),h=[cGe(t,n,r,E,ld(f.columns))],x.size=kGe(t,e,h[0].marks)),h=[YE({role:Pze,from:g,encode:y,marks:h,layout:f,interactive:u})],m.title&&h.push(EGe(t,n,r.title,g)),wO(YE({role:Bze,from:g,encode:o2(BGe(i,t,n),s,VE),marks:h,aria:i("aria"),description:i("description"),zindex:i("zindex"),name:o,interactive:u,style:a}),e)}function IGe(t,e){let n=t.type||Aie;return!t.type&&$Ge(t)===1&&(t.fill||t.stroke)&&(n=n$(e)?RO:r$(e)?Pk:Aie),n!==RO?n:r$(e)?Pk:RO}function $Ge(t){return jk.reduce((e,n)=>e+(t[n]?1:0),0)}function BGe(t,e,n){const r={enter:{},update:{}};return Lr(r,{orient:t("orient"),offset:t("offset"),padding:t("padding"),titlePadding:t("titlePadding"),cornerRadius:t("cornerRadius"),fill:t("fillColor"),stroke:t("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:t("legendX"),y:t("legendY"),format:e.format,formatType:e.formatType}),r}function kGe(t,e,n){const r=ld($ie("size",t,n)),i=ld($ie("strokeWidth",t,n)),s=ld(PGe(n[1].encode,e,WE));return ma(`max(ceil(sqrt(${r})+${i}),${s})`,e)}function $ie(t,e,n){return e[t]?`scale("${e[t]}",datum)`:vie(t,n[0].encode)}function PGe(t,e,n){return vie("fontSize",t)||iGe("fontSize",e,n)}const MGe=`item.orient==="${a2}"?-90:item.orient==="${l2}"?90:0`;function jGe(t,e){t=je(t)?{text:t}:t;const n=as(t,e.config.title),r=t.encode||{},i=r.group||{},s=i.name||void 0,o=i.interactive,u=i.style,a=[],l={},c=Ke(e.add(ru(null,[l])));return a.push(HGe(t,n,UGe(t),c)),t.subtitle&&a.push(zGe(t,n,r.subtitle,c)),wO(YE({role:qze,from:c,encode:qGe(n,i),marks:a,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:s,interactive:o,style:u}),e)}function UGe(t){const e=t.encode;return e&&e.title||ft({name:t.name,interactive:t.interactive,style:t.style},e)}function qGe(t,e){const n={enter:{},update:{}};return Lr(n,{orient:t("orient"),anchor:t("anchor"),align:{signal:qk},angle:{signal:MGe},limit:t("limit"),frame:t("frame"),offset:t("offset")||0,padding:t("subtitlePadding")}),o2(n,e,VE)}function HGe(t,e,n,r){const i={value:0},s=t.text,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Lr(o,{text:s,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:e("dx"),dy:e("dy"),fill:e("color"),font:e("font"),fontSize:e("fontSize"),fontStyle:e("fontStyle"),fontWeight:e("fontWeight"),lineHeight:e("lineHeight")},{align:e("align"),angle:e("angle"),baseline:e("baseline")}),Ps({type:fd,role:Hze,style:tGe,from:r,encode:o},n)}function zGe(t,e,n,r){const i={value:0},s=t.subtitle,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Lr(o,{text:s,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:e("dx"),dy:e("dy"),fill:e("subtitleColor"),font:e("subtitleFont"),fontSize:e("subtitleFontSize"),fontStyle:e("subtitleFontStyle"),fontWeight:e("subtitleFontWeight"),lineHeight:e("subtitleLineHeight")},{align:e("align"),angle:e("angle"),baseline:e("baseline")}),Ps({type:fd,role:zze,style:nGe,from:r,encode:o},n)}function QGe(t,e){const n=[];t.transform&&t.transform.forEach(r=>{n.push(Qk(r,e))}),t.on&&t.on.forEach(r=>{Iie(r,e,t.name)}),e.addDataPipeline(t.name,GGe(t,e,n))}function GGe(t,e,n){const r=[];let i=null,s=!1,o=!1,u,a,l,c,f;for(t.values?tr(t.values)||CO(t.format)?(r.push(Bie(e,t)),r.push(i=dd())):r.push(i=dd({$ingest:t.values,$format:t.format})):t.url?CO(t.url)||CO(t.format)?(r.push(Bie(e,t)),r.push(i=dd())):r.push(i=dd({$request:t.url,$format:t.format})):t.source&&(i=u=Pe(t.source).map(x=>Ke(e.getData(x).output)),r.push(null)),a=0,l=n.length;a<l;++a)c=n[a],f=c.metadata,!i&&!f.source&&r.push(i=dd()),r.push(c),f.generates&&(o=!0),f.modifies&&!o&&(s=!0),f.source?i=c:f.changes&&(i=null);return u&&(l=u.length-1,r[0]=FQe({derive:s,pulse:l?u:u[0]}),(s||l)&&r.splice(1,0,dd())),i||r.push(dd()),r.push(cd({})),r}function dd(t){const e=ru({},t);return e.metadata={source:!0},e}function Bie(t,e){return _Qe({url:e.url?t.property(e.url):void 0,async:e.async?t.property(e.async):void 0,values:e.values?t.property(e.values):void 0,format:t.objectProperty(e.format)})}const kie=t=>t===Tc||t===iu,LO=(t,e,n)=>tr(t)?XGe(t.signal,e,n):t===a2||t===iu?e:n,yr=(t,e,n)=>tr(t)?VGe(t.signal,e,n):kie(t)?e:n,su=(t,e,n)=>tr(t)?YGe(t.signal,e,n):kie(t)?n:e,Pie=(t,e,n)=>tr(t)?KGe(t.signal,e,n):t===iu?{value:e}:{value:n},WGe=(t,e,n)=>tr(t)?JGe(t.signal,e,n):t===l2?{value:e}:{value:n},VGe=(t,e,n)=>Mie(`${t} === '${iu}' || ${t} === '${Tc}'`,e,n),YGe=(t,e,n)=>Mie(`${t} !== '${iu}' && ${t} !== '${Tc}'`,e,n),XGe=(t,e,n)=>Wk(`${t} === '${a2}' || ${t} === '${iu}'`,e,n),KGe=(t,e,n)=>Wk(`${t} === '${iu}'`,e,n),JGe=(t,e,n)=>Wk(`${t} === '${l2}'`,e,n),Mie=(t,e,n)=>(e=e!=null?mr(e):e,n=n!=null?mr(n):n,jie(e)&&jie(n)?(e=e?e.signal||we(e.value):null,n=n?n.signal||we(n.value):null,{signal:`${t} ? (${e}) : (${n})`}):[ft({test:t},e)].concat(n||[])),jie=t=>t==null||Object.keys(t).length===1,Wk=(t,e,n)=>({signal:`${t} ? (${f2(e)}) : (${f2(n)})`}),ZGe=(t,e,n,r,i)=>({signal:(r!=null?`${t} === '${a2}' ? (${f2(r)}) : `:"")+(n!=null?`${t} === '${Tc}' ? (${f2(n)}) : `:"")+(i!=null?`${t} === '${l2}' ? (${f2(i)}) : `:"")+(e!=null?`${t} === '${iu}' ? (${f2(e)}) : `:"")+"(null)"}),f2=t=>tr(t)?t.signal:t==null?null:we(t),eWe=(t,e)=>e===0?0:tr(t)?{signal:`(${t.signal}) * ${e}`}:{value:t*e},x2=(t,e)=>{const n=t.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+e.signal}:t};function d2(t,e,n,r){let i;if(e&&Je(e,t))return e[t];if(Je(n,t))return n[t];if(t.startsWith("title")){switch(t){case"titleColor":i="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":i=t[5].toLowerCase()+t.slice(6)}return r[kk][i]}else if(t.startsWith("label")){switch(t){case"labelColor":i="fill";break;case"labelFont":case"labelFontSize":i=t[5].toLowerCase()+t.slice(6)}return r[WE][i]}return null}function Uie(t){const e={};for(const n of t)if(n)for(const r in n)e[r]=1;return Object.keys(e)}function tWe(t,e){var n=e.config,r=n.style,i=n.axis,s=e.scaleType(t.scale)==="band"&&n.axisBand,o=t.orient,u,a,l;if(tr(o)){const f=Uie([n.axisX,n.axisY]),x=Uie([n.axisTop,n.axisBottom,n.axisLeft,n.axisRight]);u={};for(l of f)u[l]=yr(o,d2(l,n.axisX,i,r),d2(l,n.axisY,i,r));a={};for(l of x)a[l]=ZGe(o.signal,d2(l,n.axisTop,i,r),d2(l,n.axisBottom,i,r),d2(l,n.axisLeft,i,r),d2(l,n.axisRight,i,r))}else u=o===iu||o===Tc?n.axisX:n.axisY,a=n["axis"+o[0].toUpperCase()+o.slice(1)];return u||a||s?ft({},i,u,a,s):i}function nWe(t,e,n,r){const i=as(t,e),s=t.orient;let o,u;const a={enter:o={opacity:_t},update:u={opacity:Eo},exit:{opacity:_t}};Lr(a,{stroke:i("domainColor"),strokeCap:i("domainCap"),strokeDash:i("domainDash"),strokeDashOffset:i("domainDashOffset"),strokeWidth:i("domainWidth"),strokeOpacity:i("domainOpacity")});const l=qie(t,0),c=qie(t,1);return o.x=u.x=yr(s,l,_t),o.x2=u.x2=yr(s,c),o.y=u.y=su(s,l,_t),o.y2=u.y2=su(s,c),Ps({type:Uk,role:Fze,from:r,encode:a},n)}function qie(t,e){return{scale:t.scale,range:e}}function rWe(t,e,n,r,i){const s=as(t,e),o=t.orient,u=t.gridScale,a=LO(o,1,-1),l=iWe(t.offset,a);let c,f,x;const h={enter:c={opacity:_t},update:x={opacity:Eo},exit:f={opacity:_t}};Lr(h,{stroke:s("gridColor"),strokeCap:s("gridCap"),strokeDash:s("gridDash"),strokeDashOffset:s("gridDashOffset"),strokeOpacity:s("gridOpacity"),strokeWidth:s("gridWidth")});const p={scale:t.scale,field:yo,band:i.band,extra:i.extra,offset:i.offset,round:s("tickRound")},m=yr(o,{signal:"height"},{signal:"width"}),g=u?{scale:u,range:0,mult:a,offset:l}:{value:0,offset:l},y=u?{scale:u,range:1,mult:a,offset:l}:ft(m,{mult:a,offset:l});return c.x=x.x=yr(o,p,g),c.y=x.y=su(o,p,g),c.x2=x.x2=su(o,y),c.y2=x.y2=yr(o,y),f.x=yr(o,p),f.y=su(o,p),Ps({type:Uk,role:wze,key:yo,from:r,encode:h},n)}function iWe(t,e){if(e!==1)if(!He(t))t=tr(e)?{signal:`(${e.signal}) * (${t||0})`}:e*(t||0);else{let n=t=ft({},t);for(;n.mult!=null;)if(He(n.mult))n=n.mult=ft({},n.mult);else return n.mult=tr(e)?{signal:`(${n.mult}) * (${e.signal})`}:n.mult*e,t;n.mult=e}return t}function sWe(t,e,n,r,i,s){const o=as(t,e),u=t.orient,a=LO(u,-1,1);let l,c,f;const x={enter:l={opacity:_t},update:f={opacity:Eo},exit:c={opacity:_t}};Lr(x,{stroke:o("tickColor"),strokeCap:o("tickCap"),strokeDash:o("tickDash"),strokeDashOffset:o("tickDashOffset"),strokeOpacity:o("tickOpacity"),strokeWidth:o("tickWidth")});const h=mr(i);h.mult=a;const p={scale:t.scale,field:yo,band:s.band,extra:s.extra,offset:s.offset,round:o("tickRound")};return f.y=l.y=yr(u,_t,p),f.y2=l.y2=yr(u,h),c.x=yr(u,p),f.x=l.x=su(u,_t,p),f.x2=l.x2=su(u,h),c.y=su(u,p),Ps({type:Uk,role:Ize,key:yo,from:r,encode:x},n)}function Vk(t,e,n,r,i){return{signal:'flush(range("'+t+'"), scale("'+t+'", datum.value), '+e+","+n+","+r+","+i+")"}}function oWe(t,e,n,r,i,s){const o=as(t,e),u=t.orient,a=t.scale,l=LO(u,-1,1),c=ld(o("labelFlush")),f=ld(o("labelFlushOffset")),x=o("labelAlign"),h=o("labelBaseline");let p=c===0||!!c,m;const g=mr(i);g.mult=l,g.offset=mr(o("labelPadding")||0),g.offset.mult=l;const y={scale:a,field:yo,band:.5,offset:_ie(s.offset,o("labelOffset"))},E=yr(u,p?Vk(a,c,'"left"','"right"','"center"'):{value:"center"},WGe(u,"left","right")),A=yr(u,Pie(u,"bottom","top"),p?Vk(a,c,'"top"','"bottom"','"middle"'):{value:"middle"}),S=Vk(a,c,`-(${f})`,f,0);p=p&&f;const v={opacity:_t,x:yr(u,y,g),y:su(u,y,g)},_={enter:v,update:m={opacity:Eo,text:{field:Bk},x:v.x,y:v.y,align:E,baseline:A},exit:{opacity:_t,x:v.x,y:v.y}};Lr(_,{dx:!x&&p?yr(u,S):null,dy:!h&&p?su(u,S):null}),Lr(_,{angle:o("labelAngle"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontWeight:o("labelFontWeight"),fontStyle:o("labelFontStyle"),limit:o("labelLimit"),lineHeight:o("labelLineHeight")},{align:x,baseline:h});const C=o("labelBound");let b=o("labelOverlap");return b=b||C?{separation:o("labelSeparation"),method:b,order:"datum.index",bound:C?{scale:a,orient:u,tolerance:C}:null}:void 0,m.align!==E&&(m.align=x2(m.align,E)),m.baseline!==A&&(m.baseline=x2(m.baseline,A)),Ps({type:fd,role:Lze,style:WE,key:yo,from:r,encode:_,overlap:b},n)}function uWe(t,e,n,r){const i=as(t,e),s=t.orient,o=LO(s,-1,1);let u,a;const l={enter:u={opacity:_t,anchor:mr(i("titleAnchor",null)),align:{signal:qk}},update:a=ft({},u,{opacity:Eo,text:mr(t.title)}),exit:{opacity:_t}},c={signal:`lerp(range("${t.scale}"), ${NO(0,1,.5)})`};return a.x=yr(s,c),a.y=su(s,c),u.angle=yr(s,_t,eWe(o,90)),u.baseline=yr(s,Pie(s,Tc,iu),{value:Tc}),a.angle=u.angle,a.baseline=u.baseline,Lr(l,{fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),angle:i("titleAngle"),baseline:i("titleBaseline")}),aWe(i,s,l,n),l.update.align=x2(l.update.align,u.align),l.update.angle=x2(l.update.angle,u.angle),l.update.baseline=x2(l.update.baseline,u.baseline),Ps({type:fd,role:$ze,style:kk,from:r,encode:l},n)}function aWe(t,e,n,r){const i=(u,a)=>u!=null?(n.update[a]=x2(mr(u),n.update[a]),!1):!u2(a,r),s=i(t("titleX"),"x"),o=i(t("titleY"),"y");n.enter.auto=o===s?mr(o):yr(e,mr(o),mr(s))}function lWe(t,e){const n=tWe(t,e),r=t.encode||{},i=r.axis||{},s=i.name||void 0,o=i.interactive,u=i.style,a=as(t,n),l=sGe(a),c={scale:t.scale,ticks:!!a("ticks"),labels:!!a("labels"),grid:!!a("grid"),domain:!!a("domain"),title:t.title!=null},f=Ke(e.add(ru({},[c]))),x=Ke(e.add(gQe({scale:e.scaleRef(t.scale),extra:e.property(l.extra),count:e.objectProperty(t.tickCount),values:e.objectProperty(t.values),minstep:e.property(t.tickMinStep),formatType:e.property(t.formatType),formatSpecifier:e.property(t.format)}))),h=[];let p;return c.grid&&h.push(rWe(t,n,r.grid,x,l)),c.ticks&&(p=a("tickSize"),h.push(sWe(t,n,r.ticks,x,p,l))),c.labels&&(p=c.ticks?p:0,h.push(oWe(t,n,r.labels,x,p,l))),c.domain&&h.push(nWe(t,n,r.domain,f)),c.title&&h.push(uWe(t,n,r.title,f)),wO(YE({role:Dze,from:f,encode:o2(cWe(a,t),i,VE),marks:h,aria:a("aria"),description:a("description"),zindex:a("zindex"),name:s,interactive:o,style:u}),e)}function cWe(t,e){const n={enter:{},update:{}};return Lr(n,{orient:t("orient"),offset:t("offset")||0,position:nu(e.position,0),titlePadding:t("titlePadding"),minExtent:t("minExtent"),maxExtent:t("maxExtent"),range:{signal:`abs(span(range("${e.scale}")))`},translate:t("translate"),format:e.format,formatType:e.formatType}),n}function Hie(t,e,n){const r=Pe(t.signals),i=Pe(t.scales);return n||r.forEach(s=>sie(s,e)),Pe(t.projections).forEach(s=>VQe(s,e)),i.forEach(s=>BQe(s,e)),Pe(t.data).forEach(s=>QGe(s,e)),i.forEach(s=>kQe(s,e)),(n||r).forEach(s=>pQe(s,e)),Pe(t.axes).forEach(s=>lWe(s,e)),Pe(t.marks).forEach(s=>wO(s,e)),Pe(t.legends).forEach(s=>LGe(s,e)),t.title&&jGe(t.title,e),e.parseLambdas(),e}const fWe=t=>o2({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},t);function xWe(t,e){const n=e.config,r=Ke(e.root=e.add(vO())),i=dWe(t,n);i.forEach(l=>sie(l,e)),e.description=t.description||n.description,e.eventConfig=n.events,e.legends=e.objectProperty(n.legend&&n.legend.layout),e.locale=n.locale;const s=e.add(ru()),o=e.add(fie(rie(fWe(t.encode),OO,Tk,t.style,e,{pulse:Ke(s)}))),u=e.add(hie({layout:e.objectProperty(t.layout),legends:e.legends,autosize:e.signalRef("autosize"),mark:r,pulse:Ke(o)}));e.operators.pop(),e.pushState(Ke(o),Ke(u),null),Hie(t,e,i),e.operators.push(u);let a=e.add(lie({mark:r,pulse:Ke(u)}));return a=e.add(die({pulse:Ke(a)})),a=e.add(cd({pulse:Ke(a)})),e.addData("root",new xd(e,s,s,a)),e}function KE(t,e){return e&&e.signal?{name:t,update:e.signal}:{name:t,value:e}}function dWe(t,e){const n=o=>nu(t[o],e[o]),r=[KE("background",n("background")),KE("autosize",Rze(n("autosize"))),KE("padding",Nze(n("padding"))),KE("width",n("width")||0),KE("height",n("height")||0)],i=r.reduce((o,u)=>(o[u.name]=u,o),{}),s={};return Pe(t.signals).forEach(o=>{Je(i,o.name)?o=ft(i[o.name],o):r.push(o),s[o.name]=o}),Pe(e.signals).forEach(o=>{!Je(s,o.name)&&!Je(i,o.name)&&r.push(o)}),r}function zie(t,e){this.config=t||{},this.options=e||{},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 Qie(t){this.config=t.config,this.options=t.options,this.legends=t.legends,this.field=Object.create(t.field),this.signals=Object.create(t.signals),this.lambdas=Object.create(t.lambdas),this.scales=Object.create(t.scales),this.events=Object.create(t.events),this.data=Object.create(t.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++t._nextsub[0],this._nextsub=t._nextsub,this._parent=t._parent.slice(),this._encode=t._encode.slice(),this._lookup=t._lookup.slice(),this._markpath=t._markpath}zie.prototype=Qie.prototype={parse(t){return Hie(t,this)},fork(){return new Qie(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(t){return this.operators.push(t),t.id=this.id(),t.refs&&(t.refs.forEach(e=>{e.$ref=t.id}),t.refs=null),t},proxy(t){const e=t instanceof Nk?Ke(t):t;return this.add(DQe({value:e}))},addStream(t){return this.streams.push(t),t.id=this.id(),t},addUpdate(t){return this.updates.push(t),t},finish(){let t,e;this.root&&(this.root.root=!0);for(t in this.signals)this.signals[t].signal=t;for(t in this.scales)this.scales[t].scale=t;function n(r,i,s){let o,u;r&&(o=r.data||(r.data={}),u=o[i]||(o[i]=[]),u.push(s))}for(t in this.data){e=this.data[t],n(e.input,t,"input"),n(e.output,t,"output"),n(e.values,t,"values");for(const r in e.index)n(e.index[r],t,"index:"+r)}return this},pushState(t,e,n){this._encode.push(Ke(this.add(cd({pulse:t})))),this._parent.push(e),this._lookup.push(n?Ke(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return vt(this._parent)},encode(){return vt(this._encode)},lookup(){return vt(this._lookup)},markpath(){const t=this._markpath;return++t[t.length-1]},fieldRef(t,e){if(je(t))return QE(t,e);t.signal||ve("Unsupported field reference: "+we(t));const n=t.signal;let r=this.field[n];if(!r){const i={name:this.signalRef(n)};e&&(i.as=e),this.field[n]=r=Ke(this.add(AQe(i)))}return r},compareRef(t){let e=!1;const n=s=>tr(s)?(e=!0,this.signalRef(s.signal)):sQe(s)?(e=!0,this.exprRef(s.expr)):s,r=Pe(t.field).map(n),i=Pe(t.order).map(n);return e?Ke(this.add(cie({fields:r,orders:i}))):oie(r,i)},keyRef(t,e){let n=!1;const r=s=>tr(s)?(n=!0,Ke(i[s.signal])):s,i=this.signals;return t=Pe(t).map(r),n?Ke(this.add(SQe({fields:t,flat:e}))):tQe(t,e)},sortRef(t){if(!t)return t;const e=_O(t.op,t.field),n=t.order||nQe;return n.signal?Ke(this.add(cie({fields:e,orders:this.signalRef(n.signal)}))):oie(e,n)},event(t,e){const n=t+":"+e;if(!this.events[n]){const r=this.id();this.streams.push({id:r,source:t,type:e}),this.events[n]=r}return this.events[n]},hasOwnSignal(t){return Je(this.signals,t)},addSignal(t,e){this.hasOwnSignal(t)&&ve("Duplicate signal name: "+we(t));const n=e instanceof Nk?e:this.add(vO(e));return this.signals[t]=n},getSignal(t){return this.signals[t]||ve("Unrecognized signal name: "+we(t)),this.signals[t]},signalRef(t){return this.signals[t]?Ke(this.signals[t]):(Je(this.lambdas,t)||(this.lambdas[t]=this.add(vO(null))),Ke(this.lambdas[t]))},parseLambdas(){const t=Object.keys(this.lambdas);for(let e=0,n=t.length;e<n;++e){const r=t[e],i=ma(r,this),s=this.lambdas[r];s.params=i.$params,s.update=i.$expr}},property(t){return t&&t.signal?this.signalRef(t.signal):t},objectProperty(t){return!t||!He(t)?t:this.signalRef(t.signal||Yk(t))},exprRef(t,e){const n={expr:ma(t,this)};return e&&(n.expr.$name=e),Ke(this.add(yQe(n)))},addBinding(t,e){this.bindings||ve("Nested signals do not support binding: "+we(t)),this.bindings.push(ft({signal:t},e))},addScaleProj(t,e){Je(this.scales,t)&&ve("Duplicate scale or projection name: "+we(t)),this.scales[t]=this.add(e)},addScale(t,e){this.addScaleProj(t,wQe(e))},addProjection(t,e){this.addScaleProj(t,NQe(e))},getScale(t){return this.scales[t]||ve("Unrecognized scale name: "+we(t)),this.scales[t]},scaleRef(t){return Ke(this.getScale(t))},scaleType(t){return this.getScale(t).params.type},projectionRef(t){return this.scaleRef(t)},projectionType(t){return this.scaleType(t)},addData(t,e){return Je(this.data,t)&&ve("Duplicate data set name: "+we(t)),this.data[t]=e},getData(t){return this.data[t]||ve("Undefined data set name: "+we(t)),this.data[t]},addDataPipeline(t,e){return Je(this.data,t)&&ve("Duplicate data set name: "+we(t)),this.addData(t,xd.fromEntries(this,e))}};function Yk(t){return(_e(t)?hWe:pWe)(t)}function hWe(t){const e=t.length;let n="[";for(let r=0;r<e;++r){const i=t[r];n+=(r>0?",":"")+(He(i)?i.signal||Yk(i):we(i))}return n+"]"}function pWe(t){let e="{",n=0,r,i;for(r in t)i=t[r],e+=(++n>1?",":"")+we(r)+":"+(He(i)?i.signal||Yk(i):we(i));return e+"}"}function gWe(){const t="sans-serif",r="#4c78a8",i="#000",s="#888",o="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:r},area:{fill:r},image:null,line:{stroke:r,strokeWidth:2},path:{stroke:r},rect:{fill:r},rule:{stroke:i},shape:{stroke:r},symbol:{fill:r,size:64},text:{fill:i,font:t,fontSize:11},trail:{fill:r,size:2},style:{"guide-label":{fill:i,font:t,fontSize:10},"guide-title":{fill:i,font:t,fontSize:11,fontWeight:"bold"},"group-title":{fill:i,font:t,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:i,font:t,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:o},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:s,grid:!1,gridWidth:1,gridColor:o,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:s,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:o,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:s,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"]}}}function mWe(t,e,n){return He(t)||ve("Input Vega specification must be an object."),e=G4(gWe(),e,t.config),xWe(t,new zie(e,n)).toRuntime()}ft(by,S5e,Jke,_8e,aPe,nMe,N9e,a9e,F9e,eje,cje,mje);const yWe={spark:[180,1],xs:[170,2],sm:[216,3],md:[256,4],lg:[472,7],xl:[508,10],"2xl":[730,14]},IO=28;function EWe(t,e){const n=t.allFields.at(0),r=t.allFields.at(1),{tag:i}=t.tagParse();let s=0,o=0;const u=i.numeric("size","width"),a=i.numeric("size","height");let l=i.text("size");u&&a?(s=u,o=a):(l=l||"md",[s,o]=yWe[l],o=o*IO);let c=0,f=0,x=-90,h="right",p="middle",m=0,g=0;const y=l!=="spark",E=l!=="spark",A=e.fields[Ex(t)];let S=l!=="spark"?IO-1:0,v;const _=Ex(r),C=e.fields[_].max,b=Ot("linear")().domain([0,C]).nice().range([o,0]),R=b.domain();if(E){const q=b.domain().at(1),B=ZV().format(",")(q);f=ey(B,"Inter, sans-serif 12px")+5+31;const K=Math.ceil(o/40),de=b.ticks(K);if(de.at(-1)<q){const be=(q-de.at(-1))/q,ee=o/(1-be);S=S-(ee-o),o=ee,v=K}}if(y){const q=Ex(n),W=e.fields[q].maxString,B=ey(W,"Inter, sans-serif 12px"),G=.3;g=22+15,c=Math.min(B,G*o),m=c;const K=(s-f)/A.maxRecordCt;K>c&&(x=0,m=K,h=void 0,p="top")}const O=o+c+g,L=Math.ceil(O/IO)*IO;g+=L-O;const M=i.text("size")==="spark";return{plotWidth:s,plotHeight:o,xAxis:{labelAngle:x,labelAlign:h,labelBaseline:p,labelSize:m,height:c,titleSize:g,hidden:M},yAxis:{width:f,tickCount:v,hidden:M},yScale:{domain:R},padding:M?{top:0,left:0,bottom:0,right:0}:{top:S+1,left:f,bottom:c+g,right:0},xField:n,yField:r,get totalWidth(){return this.plotWidth+this.padding.left+this.padding.right},get totalHeight(){return this.plotHeight+this.padding.top+this.padding.bottom}}}const $O="#727883",BO="#E5E7EB";function AWe(t,e){const n=EWe(e.field,e.metadata),r={$schema:"https://vega.github.io/schema/vega/v5.json",width:n.plotWidth,height:n.plotHeight,config:{axisY:{gridColor:BO,tickColor:BO,domain:!1,labelFont:"Inter, sans-serif",labelFontSize:10,labelFontWeight:"normal",labelColor:$O,labelPadding:5,titleColor:$O,titleFont:"Inter, sans-serif",titleFontSize:12,titleFontWeight:"bold",titlePadding:10,labelOverlap:!1},axisX:{gridColor:BO,tickColor:BO,tickSize:0,domain:!1,labelFont:"Inter, sans-serif",labelFontSize:10,labelFontWeight:"normal",labelPadding:5,labelColor:$O,titleColor:$O,titleFont:"Inter, sans-serif",titleFontSize:12,titleFontWeight:"bold",titlePadding:10},view:{strokeWidth:0}},data:[{name:"table",values:[]}],marks:[],scales:[],legends:[],axes:[],autosize:{type:"none",resize:!0,contains:"content"},padding:n.padding},i={name:"xscale",type:t.x.type==="nominal"?"band":"linear",domain:{data:"table",field:t.x.fields.at(0)},range:"width"};i.type==="band"&&(i.paddingInner=.1,i.paddingOuter=.05,i.round=!0);const s={name:"yscale",type:t.y.type==="nominal"?"band":"linear",domain:n.yScale.domain??{data:"table",fields:t.y.fields},range:"height"};s.type==="linear"&&(s.nice=!0),r.scales.push(i),r.scales.push(s);for(const o of t.marks){const u={},a={name:o.id,source:"table",transform:[]};if(r.data.push(a),o.type==="bar_y"){u.type="rect",u.from={data:o.id};const l=o.x??t.x.fields.at(0),c=o.y??t.y.fields.at(0);u.encode={enter:{x:{scale:"xscale",field:l,band:.1},width:{scale:"xscale",band:.8},y:{scale:"yscale",field:c},y2:{scale:"yscale",value:0},fill:{value:"#53B2C8"}}},r.marks.push(u)}}return n.xAxis.hidden||r.axes.push({orient:"bottom",scale:"xscale",title:t.x.fields.join(", "),labelAngle:n.xAxis.labelAngle,labelLimit:n.xAxis.labelSize,labelAlign:n.xAxis.labelAlign,labelBaseline:n.xAxis.labelBaseline,maxExtent:n.xAxis.height}),n.yAxis.hidden||r.axes.push({orient:"left",scale:"yscale",grid:!0,maxExtent:n.yAxis.width,labelLimit:n.yAxis.width+10,tickCount:n.yAxis.tickCount??{signal:"ceil(height/40)"},title:[...new Set(s.domain.fields)].filter(o=>typeof o=="string").join(", ")}),{spec:r,plotWidth:n.plotWidth,plotHeight:n.plotHeight,totalWidth:n.totalWidth,totalHeight:n.totalHeight}}function SWe(){const t=new WeakMap;return{get:e=>{if(!t.has(e)&&e.isArray()){const n=[];for(const r of e)n.push(r.toObject());t.set(e,n)}return t.get(e)}}}function vWe(t){const e=new WeakMap,n=u=>{if(e.has(u))return e.get(u);const a=Ex(u);return e.set(u,a),a},r=SWe(),i={fields:{},fieldKeyMap:e,getFieldKey:n,field:u=>i.fields[n(u)],getData:r.get},s=t.data.field,o=i.getFieldKey(s);return i.fields[o]={field:s,min:null,max:null,minString:null,maxString:null,values:new Set,maxRecordCt:null},Gie(t.data.field,i),Wie(t.data,i),Object.values(i.fields).forEach(u=>{const a=u.field;a.isExploreField()?Vie(a,a.tagParse().tag,i):a.isExplore()&&Vie(a,t.tagParse().tag,i)}),i}function Gie(t,e){for(const n of t.allFields){const r=e.getFieldKey(n);e.fields[r]={field:n,min:null,max:null,minString:null,maxString:null,values:new Set,maxRecordCt:null},n.isExploreField()&&Gie(n,e)}}const Wie=(t,e)=>{let n=0;for(const s of t){n++;for(const o of t.field.allFields){const u=o.isAtomicField()?s.cell(o).value:void 0,a=e.field(o);if(SW(o,u)){const l=u;a.min=Math.min(a.min??l,l),a.max=Math.max(a.max??l,l)}else if(vW(o,u)){const l=u;a.values.add(l),(!a.minString||a.minString.length>l.length)&&(a.minString=l),(!a.maxString||a.maxString.length<l.length)&&(a.maxString=l)}else if(o.isExploreField()){const l=s.cell(o);Wie(l,e)}}}const r=t.field,i=e.field(r);i.maxRecordCt=Math.max(i.maxRecordCt??n,n)};function Vie(t,e,n){const r=n.field(t);if(H4(e,"bar","bar_chart")){const i=fDe(t,e);r.vegaChartProps=AWe(i,{field:t,metadata:n})}}const Yie=gP(),Xie=()=>{const t=rD(Yie);if(!t)throw Error("useResultContext must be used within a ResultContext.Provider");return t};function Jnt(t){return t}function Znt(t){return t}Array.prototype.flat||Object.defineProperty(Array.prototype,"flat",{configurable:!0,value:function t(){var e=isNaN(arguments[0])?1:Number(arguments[0]);return e?Array.prototype.reduce.call(this,function(n,r){return Array.isArray(r)?n.push.apply(n,t.call(r,e-1)):n.push(r),n},[]):Array.prototype.slice.call(this)},writable:!0}),Array.prototype.flatMap||Object.defineProperty(Array.prototype,"flatMap",{configurable:!0,value:function(t){return Array.prototype.map.apply(this,arguments).flat()},writable:!0});var Kie={exports:{}};(function(t){var e=function(){function n(x,h){return h!=null&&x instanceof h}var r;try{r=Map}catch{r=function(){}}var i;try{i=Set}catch{i=function(){}}var s;try{s=Promise}catch{s=function(){}}function o(x,h,p,m,g){typeof h=="object"&&(p=h.depth,m=h.prototype,g=h.includeNonEnumerable,h=h.circular);var y=[],E=[],A=typeof Buffer<"u";typeof h>"u"&&(h=!0),typeof p>"u"&&(p=1/0);function S(v,_){if(v===null)return null;if(_===0)return v;var C,b;if(typeof v!="object")return v;if(n(v,r))C=new r;else if(n(v,i))C=new i;else if(n(v,s))C=new s(function(te,K){v.then(function(de){te(S(de,_-1))},function(de){K(S(de,_-1))})});else if(o.__isArray(v))C=[];else if(o.__isRegExp(v))C=new RegExp(v.source,f(v)),v.lastIndex&&(C.lastIndex=v.lastIndex);else if(o.__isDate(v))C=new Date(v.getTime());else{if(A&&Buffer.isBuffer(v))return Buffer.allocUnsafe?C=Buffer.allocUnsafe(v.length):C=new Buffer(v.length),v.copy(C),C;n(v,Error)?C=Object.create(v):typeof m>"u"?(b=Object.getPrototypeOf(v),C=Object.create(b)):(C=Object.create(m),b=m)}if(h){var R=y.indexOf(v);if(R!=-1)return E[R];y.push(v),E.push(C)}n(v,r)&&v.forEach(function(te,K){var de=S(K,_-1),be=S(te,_-1);C.set(de,be)}),n(v,i)&&v.forEach(function(te){var K=S(te,_-1);C.add(K)});for(var O in v){var L;b&&(L=Object.getOwnPropertyDescriptor(b,O)),!(L&&L.set==null)&&(C[O]=S(v[O],_-1))}if(Object.getOwnPropertySymbols)for(var M=Object.getOwnPropertySymbols(v),O=0;O<M.length;O++){var q=M[O],W=Object.getOwnPropertyDescriptor(v,q);W&&!W.enumerable&&!g||(C[q]=S(v[q],_-1),W.enumerable||Object.defineProperty(C,q,{enumerable:!1}))}if(g)for(var B=Object.getOwnPropertyNames(v),O=0;O<B.length;O++){var G=B[O],W=Object.getOwnPropertyDescriptor(v,G);W&&W.enumerable||(C[G]=S(v[G],_-1),Object.defineProperty(C,G,{enumerable:!1}))}return C}return S(x,p)}o.clonePrototype=function(h){if(h===null)return null;var p=function(){};return p.prototype=h,new p};function u(x){return Object.prototype.toString.call(x)}o.__objToStr=u;function a(x){return typeof x=="object"&&u(x)==="[object Date]"}o.__isDate=a;function l(x){return typeof x=="object"&&u(x)==="[object Array]"}o.__isArray=l;function c(x){return typeof x=="object"&&u(x)==="[object RegExp]"}o.__isRegExp=c;function f(x){var h="";return x.global&&(h+="g"),x.ignoreCase&&(h+="i"),x.multiline&&(h+="m"),h}return o.__getRegExpFlags=f,o}();t.exports&&(t.exports=e)})(Kie);var _We=Kie.exports;const CWe=lD(_We);var bWe=function t(e,n){if(e===n)return!0;if(e&&n&&typeof e=="object"&&typeof n=="object"){if(e.constructor!==n.constructor)return!1;var r,i,s;if(Array.isArray(e)){if(r=e.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!t(e[i],n[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===n.source&&e.flags===n.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===n.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===n.toString();if(s=Object.keys(e),r=s.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,s[i]))return!1;for(i=r;i--!==0;){var o=s[i];if(!t(e[o],n[o]))return!1}return!0}return e!==e&&n!==n};const TWe=lD(bWe);var RWe=function(t,e){e||(e={}),typeof e=="function"&&(e={cmp:e});var n=typeof e.cycles=="boolean"?e.cycles:!1,r=e.cmp&&function(s){return function(o){return function(u,a){var l={key:u,value:o[u]},c={key:a,value:o[a]};return s(l,c)}}}(e.cmp),i=[];return function s(o){if(o&&o.toJSON&&typeof o.toJSON=="function"&&(o=o.toJSON()),o!==void 0){if(typeof o=="number")return isFinite(o)?""+o:"null";if(typeof o!="object")return JSON.stringify(o);var u,a;if(Array.isArray(o)){for(a="[",u=0;u<o.length;u++)u&&(a+=","),a+=s(o[u])||"null";return a+"]"}if(o===null)return"null";if(i.indexOf(o)!==-1){if(n)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var l=i.push(o)-1,c=Object.keys(o).sort(r&&r(o));for(a="",u=0;u<c.length;u++){var f=c[u],x=s(o[f]);x&&(a&&(a+=","),a+=JSON.stringify(f)+":"+x)}return i.splice(l,1),"{"+a+"}"}}(t)};const Xk=lD(RWe);function Kk(t){return!!t.or}function Jk(t){return!!t.and}function Zk(t){return!!t.not}function kO(t,e){if(Zk(t))kO(t.not,e);else if(Jk(t))for(const n of t.and)kO(n,e);else if(Kk(t))for(const n of t.or)kO(n,e);else e(t)}function h2(t,e){return Zk(t)?{not:h2(t.not,e)}:Jk(t)?{and:t.and.map(n=>h2(n,e))}:Kk(t)?{or:t.or.map(n=>h2(n,e))}:e(t)}const Ul=TWe,ut=CWe;function OWe(t){throw new Error(t)}function JE(t,e){const n={};for(const r of e)Je(t,r)&&(n[r]=t[r]);return n}function Ao(t,e){const n=Object.assign({},t);for(const r of e)delete n[r];return n}Set.prototype.toJSON=function(){return`Set(${[...this].map(t=>Xk(t)).join(",")})`};const rn=Xk;function Ct(t){if(tn(t))return t;const e=je(t)?t:Xk(t);if(e.length<250)return e;let n=0;for(let r=0;r<e.length;r++){const i=e.charCodeAt(r);n=(n<<5)-n+i,n=n&n}return n}function Jie(t){return t===!1||t===null}function bt(t,e){return t.includes(e)}function p2(t,e){let n=0;for(const[r,i]of t.entries())if(e(i,r,n++))return!0;return!1}function Zie(t,e){let n=0;for(const[r,i]of t.entries())if(!e(i,r,n++))return!1;return!0}function NWe(t,...e){for(const n of e)DWe(t,n??{});return t}function DWe(t,e){for(const n of Te(e))Sb(t,n,e[n],!0)}function ql(t,e){const n=[],r={};let i;for(const s of t)i=e(s),!(i in r)&&(r[i]=1,n.push(s));return n}function FWe(t,e){if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0}function ese(t,e){for(const n of t)if(e.has(n))return!0;return!1}function tse(t){const e=new Set;for(const n of t){const i=hl(n).map((o,u)=>u===0?o:`[${o}]`),s=i.map((o,u)=>i.slice(0,u+1).join(""));for(const o of s)e.add(o)}return e}function nse(t,e){return t===void 0||e===void 0?!0:ese(tse(t),tse(e))}function Gt(t){return Te(t).length===0}const Te=Object.keys,$i=Object.values,hd=Object.entries;function PO(t){return t===!0||t===!1}function gn(t){const e=t.replace(/\W/g,"_");return(t.match(/^\d+/)?"_":"")+e}function MO(t,e){return Zk(t)?`!(${MO(t.not,e)})`:Jk(t)?`(${t.and.map(n=>MO(n,e)).join(") && (")})`:Kk(t)?`(${t.or.map(n=>MO(n,e)).join(") || (")})`:e(t)}function e8(t,e){if(e.length===0)return!0;const n=e.shift();return n in t&&e8(t[n],e)&&delete t[n],Gt(t)}function jO(t){return t.charAt(0).toUpperCase()+t.substr(1)}function rse(t,e="datum"){const n=hl(t),r=[];for(let i=1;i<=n.length;i++){const s=`[${n.slice(0,i).map(we).join("][")}]`;r.push(`${e}${s}`)}return r.join(" && ")}function wWe(t,e="datum"){return`${e}[${we(hl(t).join("."))}]`}function LWe(t){return t.replace(/(\[|\]|\.|'|")/g,"\\$1")}function ou(t){return`${hl(t).map(LWe).join("\\.")}`}function g2(t,e,n){return t.replace(new RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function ise(t){return`${hl(t).join(".")}`}function ZE(t){return t?hl(t).length:0}function nr(...t){for(const e of t)if(e!==void 0)return e}let IWe=42;function $We(t){const e=++IWe;return t?String(t)+e:e}function BWe(t){return kWe(t)?t:`__${t}`}function kWe(t){return t.startsWith("__")}function UO(t){if(t!==void 0)return(t%360+360)%360}function t8(t){return tn(t)?!0:!isNaN(t)&&!isNaN(parseFloat(t))}var e3=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const Hl="row",zl="column",qO="facet",mn="x",Er="y",uu="x2",ya="y2",Rc="xOffset",m2="yOffset",Ea="radius",Ql="radius2",au="theta",Gl="theta2",Aa="latitude",Sa="longitude",lu="latitude2",So="longitude2",ls="color",va="fill",_a="stroke",cs="shape",Wl="size",pd="angle",Vl="opacity",Oc="fillOpacity",Nc="strokeOpacity",Dc="strokeWidth",Fc="strokeDash",t3="text",n3="order",r3="detail",HO="key",gd="tooltip",zO="href",QO="url",GO="description",PWe={x:1,y:1,x2:1,y2:1},sse={theta:1,theta2:1,radius:1,radius2:1};function ose(t){return t in sse}const n8={longitude:1,longitude2:1,latitude:1,latitude2:1};function MWe(t){switch(t){case Aa:return"y";case lu:return"y2";case Sa:return"x";case So:return"x2"}}function jWe(t){return t in n8}const UWe=Te(n8),r8=Object.assign(Object.assign(Object.assign(Object.assign({},PWe),sse),n8),{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 y2(t){return t===ls||t===va||t===_a}const use={row:1,column:1,facet:1},vo=Te(use),i8=Object.assign(Object.assign({},r8),use),qWe=Te(i8),HWe=e3(i8,["order","detail","tooltip"]),zWe=e3(HWe,["row","column","facet"]);function QWe(t){return!!zWe[t]}function ase(t){return!!i8[t]}const GWe=[uu,ya,lu,So,Gl,Ql];function lse(t){return md(t)!==t}function md(t){switch(t){case uu:return mn;case ya:return Er;case lu:return Aa;case So:return Sa;case Gl:return au;case Ql:return Ea}return t}function wc(t){if(ose(t))switch(t){case au:return"startAngle";case Gl:return"endAngle";case Ea:return"outerRadius";case Ql:return"innerRadius"}return t}function Yl(t){switch(t){case mn:return uu;case Er:return ya;case Aa:return lu;case Sa:return So;case au:return Gl;case Ea:return Ql}}function fs(t){switch(t){case mn:case uu:return"width";case Er:case ya:return"height"}}function WWe(t){switch(t){case mn:return"xOffset";case Er:return"yOffset";case uu:return"x2Offset";case ya:return"y2Offset";case au:return"thetaOffset";case Ea:return"radiusOffset";case Gl:return"theta2Offset";case Ql:return"radius2Offset"}}function cse(t){switch(t){case mn:return"xOffset";case Er:return"yOffset"}}function fse(t){switch(t){case"xOffset":return"x";case"yOffset":return"y"}}const VWe=Te(r8),s8=e3(r8,["x","y","x2","y2","xOffset","yOffset","latitude","longitude","latitude2","longitude2","theta","theta2","radius","radius2"]),YWe=Te(s8),o8={x:1,y:1},Ca=Te(o8);function Ir(t){return t in o8}const u8={theta:1,radius:1},XWe=Te(u8);function WO(t){return t==="width"?mn:Er}const xse={xOffset:1,yOffset:1};function E2(t){return t in xse}const dse=e3(s8,["text","tooltip","href","url","description","detail","key","order"]),KWe=Te(dse);function JWe(t){return!!s8[t]}function ZWe(t){switch(t){case ls:case va:case _a:case Wl:case cs:case Vl:case Dc:case Fc:return!0;case Oc:case Nc:case pd:return!1}}const hse=Object.assign(Object.assign(Object.assign(Object.assign({},o8),u8),xse),dse),VO=Te(hse);function Lc(t){return!!hse[t]}function eVe(t,e){return nVe(t)[e]}const pse={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"},tVe=e3(pse,["geoshape"]);function nVe(t){switch(t){case ls:case va:case _a:case GO:case r3:case HO:case gd:case zO:case n3:case Vl:case Oc:case Nc:case Dc:case qO:case Hl:case zl:return pse;case mn:case Er:case Rc:case m2:case Aa:case Sa:return tVe;case uu:case ya:case lu:case So:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case Wl:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case Fc:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case cs:return{point:"always",geoshape:"always"};case t3:return{text:"always"};case pd:return{point:"always",square:"always",text:"always"};case QO:return{image:"always"};case au:return{text:"always",arc:"always"};case Ea:return{text:"always",arc:"always"};case Gl:case Ql:return{arc:"always"}}}function a8(t){switch(t){case mn:case Er:case au:case Ea:case Rc:case m2:case Wl:case pd:case Dc:case Vl:case Oc:case Nc:case uu:case ya:case Gl:case Ql:return;case qO:case Hl:case zl:case cs:case Fc:case t3:case gd:case zO:case QO:case GO:return"discrete";case ls:case va:case _a:return"flexible";case Aa:case Sa:case lu:case So:case r3:case HO:case n3:return}}const rVe={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},iVe={count:1,min:1,max:1};function Xl(t){return!!t&&!!t.argmin}function Ic(t){return!!t&&!!t.argmax}function l8(t){return je(t)&&!!rVe[t]}const sVe=new Set(["count","valid","missing","distinct"]);function gse(t){return je(t)&&sVe.has(t)}function oVe(t){return je(t)&&bt(["min","max"],t)}const uVe=new Set(["count","sum","distinct","valid","missing"]),aVe=new Set(["mean","average","median","q1","q3","min","max"]);function mse(t){return yp(t)&&(t=dN(t,void 0)),"bin"+Te(t).map(e=>YO(t[e])?gn(`_${e}_${hd(t[e])}`):gn(`_${e}_${t[e]}`)).join("")}function Xt(t){return t===!0||yd(t)&&!t.binned}function Bi(t){return t==="binned"||yd(t)&&t.binned===!0}function yd(t){return He(t)}function YO(t){return t==null?void 0:t.param}function yse(t){switch(t){case Hl:case zl:case Wl:case ls:case va:case _a:case Dc:case Vl:case Oc:case Nc:case cs:return 6;case Fc:return 4;default:return 10}}function i3(t){return t&&!!t.expr}function xs(t){const e=Te(t||{}),n={};for(const r of e)n[r]=Ms(t[r]);return n}var lVe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Ese(t){const{anchor:e,frame:n,offset:r,orient:i,angle:s,limit:o,color:u,subtitleColor:a,subtitleFont:l,subtitleFontSize:c,subtitleFontStyle:f,subtitleFontWeight:x,subtitleLineHeight:h,subtitlePadding:p}=t,m=lVe(t,["anchor","frame","offset","orient","angle","limit","color","subtitleColor","subtitleFont","subtitleFontSize","subtitleFontStyle","subtitleFontWeight","subtitleLineHeight","subtitlePadding"]),g=Object.assign(Object.assign({},m),u?{fill:u}:{}),y=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},e?{anchor:e}:{}),n?{frame:n}:{}),r?{offset:r}:{}),i?{orient:i}:{}),s!==void 0?{angle:s}:{}),o!==void 0?{limit:o}:{}),E=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},a?{subtitleColor:a}:{}),l?{subtitleFont:l}:{}),c?{subtitleFontSize:c}:{}),f?{subtitleFontStyle:f}:{}),x?{subtitleFontWeight:x}:{}),h?{subtitleLineHeight:h}:{}),p?{subtitlePadding:p}:{}),A=JE(t,["align","baseline","dx","dy","limit"]);return{titleMarkConfig:g,subtitleMarkConfig:A,nonMarkTitleProperties:y,subtitle:E}}function $c(t){return je(t)||_e(t)&&je(t[0])}function Ye(t){return t&&!!t.signal}function Bc(t){return!!t.step}function cVe(t){return _e(t)?!1:"fields"in t&&!("data"in t)}function fVe(t){return _e(t)?!1:"fields"in t&&"data"in t}function Kl(t){return _e(t)?!1:"field"in t&&"data"in t}const xVe=Te({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}),dVe={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},c8=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];var f8=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Ase(t){const e=_e(t.condition)?t.condition.map(Sse):Sse(t.condition);return Object.assign(Object.assign({},Ms(t)),{condition:e})}function Ms(t){if(i3(t)){const{expr:e}=t,n=f8(t,["expr"]);return Object.assign({signal:e},n)}return t}function Sse(t){if(i3(t)){const{expr:e}=t,n=f8(t,["expr"]);return Object.assign({signal:e},n)}return t}function sn(t){if(i3(t)){const{expr:e}=t,n=f8(t,["expr"]);return Object.assign({signal:e},n)}return Ye(t)?t:t!==void 0?{value:t}:void 0}function hVe(t){return Ye(t)?t.signal:we(t)}function vse(t){return Ye(t)?t.signal:we(t.value)}function Jl(t){return Ye(t)?t.signal:t==null?null:we(t)}function pVe(t,e,n){for(const r of n){const i=Ed(r,e.markDef,e.config);i!==void 0&&(t[r]=sn(i))}return t}function _se(t){var e;return[].concat(t.type,(e=t.style)!==null&&e!==void 0?e:[])}function $t(t,e,n,r={}){const{vgChannel:i,ignoreVgConfig:s}=r;return i&&e[i]!==void 0?e[i]:e[t]!==void 0?e[t]:s&&(!i||i===t)?void 0:Ed(t,e,n,r)}function Ed(t,e,n,{vgChannel:r}={}){return nr(r?XO(t,e,n.style):void 0,XO(t,e,n.style),r?n[e.type][r]:void 0,n[e.type][t],r?n.mark[r]:n.mark[t])}function XO(t,e,n){return Cse(t,_se(e),n)}function Cse(t,e,n){e=Pe(e);let r;for(const i of e){const s=n[i];s&&s[t]!==void 0&&(r=s[t])}return r}function bse(t,e){return Pe(t).reduce((n,r)=>{var i;return n.field.push($e(r,e)),n.order.push((i=r.sort)!==null&&i!==void 0?i:"ascending"),n},{field:[],order:[]})}function Tse(t,e){const n=[...t];return e.forEach(r=>{for(const i of n)if(Ul(i,r))return;n.push(r)}),n}function Rse(t,e){return Ul(t,e)||!e?t:t?[...Pe(t),...Pe(e)].join(", "):e}function Ose(t,e){const n=t.value,r=e.value;if(n==null||r===null)return{explicit:t.explicit,value:null};if(($c(n)||Ye(n))&&($c(r)||Ye(r)))return{explicit:t.explicit,value:Rse(n,r)};if($c(n)||Ye(n))return{explicit:t.explicit,value:n};if($c(r)||Ye(r))return{explicit:t.explicit,value:r};if(!$c(n)&&!Ye(n)&&!$c(r)&&!Ye(r))return{explicit:t.explicit,value:Tse(n,r)};throw new Error("It should never reach here")}function x8(t){return`Invalid specification ${rn(t)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const gVe='Autosize "fit" only works for single views and layered views.';function Nse(t){return`${t=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function Dse(t){const e=t=="width"?"Width":"Height",n=t=="width"?"x":"y";return`${e} "container" only works well with autosize "fit" or "fit-${n}".`}function Fse(t){return t?`Dropping "fit-${t}" because spec has discrete ${fs(t)}.`:'Dropping "fit" because spec has discrete size.'}function d8(t){return`Unknown field for ${t}. Cannot calculate view size.`}function wse(t){return`Cannot project a selection on encoding channel "${t}", which has no field.`}function mVe(t,e){return`Cannot project a selection on encoding channel "${t}" as it uses an aggregate function ("${e}").`}function yVe(t){return`The "nearest" transform is not supported for ${t} marks.`}function Lse(t){return`Selection not supported for ${t} yet.`}function EVe(t){return`Cannot find a selection named "${t}".`}const AVe="Scale bindings are currently only supported for scales with unbinned, continuous domains.",SVe="Legend bindings are only supported for selections over an individual field or encoding channel.";function vVe(t){return`Lookups can only be performed on selection parameters. "${t}" is a variable parameter.`}function _Ve(t){return`Cannot define and lookup the "${t}" selection in the same view. Try moving the lookup into a second, layered view?`}const CVe="The same selection must be used to override scale domains in a layered view.",bVe='Interval selections should be initialized using "x" and/or "y" keys.';function TVe(t){return`Unknown repeated value "${t}".`}function Ise(t){return`The "columns" property cannot be used when "${t}" has nested row/column.`}const RVe="Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415).";function OVe(t){return`Unrecognized parse "${t}".`}function $se(t,e,n){return`An ancestor parsed field "${t}" as ${n} but a child wants to parse the field as ${e}.`}const NVe="Attempt to add the same child twice.";function DVe(t){return`Ignoring an invalid transform: ${rn(t)}.`}const FVe='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.';function Bse(t){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${t} are dropped.`}function wVe(t){const{parentProjection:e,projection:n}=t;return`Layer's shared projection ${rn(e)} is overridden by a child projection ${rn(n)}.`}const LVe="Arc marks uses theta channel rather than angle, replacing angle with theta.";function IVe(t){return`${t}Offset dropped because ${t} is continuous`}function $Ve(t){return`There is no ${t} encoding. Replacing ${t}Offset encoding as ${t}.`}function BVe(t,e,n){return`Channel ${t} is a ${e}. Converted to {value: ${rn(n)}}.`}function kse(t){return`Invalid field type "${t}".`}function kVe(t,e){return`Invalid field type "${t}" for aggregate: "${e}", using "quantitative" instead.`}function PVe(t){return`Invalid aggregation operator "${t}".`}function Pse(t,e){const{fill:n,stroke:r}=e;return`Dropping color ${t} as the plot also has ${n&&r?"fill and stroke":n?"fill":"stroke"}.`}function MVe(t){return`Position range does not support relative band size for ${t}.`}function h8(t,e){return`Dropping ${rn(t)} from channel "${e}" since it does not contain any data field, datum, value, or signal.`}const jVe="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function KO(t,e,n){return`${t} dropped as it is incompatible with "${e}"${n?` when ${n}`:""}.`}function UVe(t){return`${t} encoding has no scale, so specified scale is ignored.`}function qVe(t){return`${t}-encoding is dropped as ${t} is not a valid encoding channel.`}function HVe(t){return`${t} encoding should be discrete (ordinal / nominal / binned).`}function zVe(t){return`${t} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function QVe(t){return`Facet encoding dropped as ${t.join(" and ")} ${t.length>1?"are":"is"} also specified.`}function p8(t,e){return`Using discrete channel "${t}" to encode "${e}" field can be misleading as it does not encode ${e==="ordinal"?"order":"magnitude"}.`}function GVe(t){return`The ${t} for range marks cannot be an expression`}function WVe(t,e){return`Line mark is for continuous lines and thus cannot be used with ${t&&e?"x2 and y2":t?"x2":"y2"}. We will use the rule mark (line segments) instead.`}function VVe(t,e){return`Specified orient "${t}" overridden with "${e}".`}function YVe(t){return`Cannot use the scale property "${t}" with non-color channel.`}function XVe(t){return`Cannot use the relative band size with ${t} scale.`}function KVe(t){return`Using unaggregated domain with raw field has no effect (${rn(t)}).`}function JVe(t){return`Unaggregated domain not applicable for "${t}" since it produces values outside the origin domain of the source data.`}function ZVe(t){return`Unaggregated domain is currently unsupported for log scale (${rn(t)}).`}function eYe(t){return`Cannot apply size to non-oriented mark "${t}".`}function tYe(t,e,n){return`Channel "${t}" does not work with "${e}" scale. We are using "${n}" scale instead.`}function nYe(t,e){return`FieldDef does not work with "${t}" scale. We are using "${e}" scale instead.`}function Mse(t,e,n){return`${n}-scale's "${e}" is dropped as it does not work with ${t} scale.`}function jse(t){return`The step for "${t}" is dropped because the ${t==="width"?"x":"y"} is continuous.`}function rYe(t,e,n,r){return`Conflicting ${e.toString()} property "${t.toString()}" (${rn(n)} and ${rn(r)}). Using ${rn(n)}.`}function iYe(t,e,n,r){return`Conflicting ${e.toString()} property "${t.toString()}" (${rn(n)} and ${rn(r)}). Using the union of the two domains.`}function sYe(t){return`Setting the scale to be independent for "${t}" means we also have to set the guide (axis or legend) to be independent.`}function oYe(t){return`Dropping sort property ${rn(t)} as unioned domains only support boolean or op "count", "min", and "max".`}const Use="Domains that should be unioned has conflicting sort properties. Sort will be set to true.",uYe="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.",aYe="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.",lYe="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.";function cYe(t){return`Cannot stack "${t}" if there is already "${t}2".`}function fYe(t){return`Cannot stack non-linear scale (${t}).`}function xYe(t){return`Stacking is applied even though the aggregate function is non-summative ("${t}").`}function JO(t,e){return`Invalid ${t}: ${rn(e)}.`}function dYe(t){return`Dropping day from datetime ${rn(t)} as day cannot be combined with other units.`}function hYe(t,e){return`${e?"extent ":""}${e&&t?"and ":""}${t?"center ":""}${e&&t?"are ":"is "}not needed when data are aggregated.`}function pYe(t,e,n){return`${t} is not usually used with ${e} for ${n}.`}function gYe(t,e){return`Continuous axis should not have customized aggregation function ${t}; ${e} already agregates the axis.`}function qse(t){return`1D error band does not support ${t}.`}function Hse(t){return`Channel ${t} is required for "binned" bin.`}function mYe(t){return`Channel ${t} should not be used with "binned" bin.`}function yYe(t){return`Domain for ${t} is required for threshold scale.`}const zse=NW(OW);let A2=zse;function EYe(t){return A2=t,A2}function AYe(){return A2=zse,A2}function Re(...t){A2.warn(...t)}function SYe(...t){A2.debug(...t)}function Ad(t){if(t&&He(t)){for(const e of m8)if(e in t)return!0}return!1}const Qse=["january","february","march","april","may","june","july","august","september","october","november","december"],vYe=Qse.map(t=>t.substr(0,3)),Gse=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],_Ye=Gse.map(t=>t.substr(0,3));function CYe(t){if(t8(t)&&(t=+t),tn(t))return t>4&&Re(JO("quarter",t)),t-1;throw new Error(JO("quarter",t))}function bYe(t){if(t8(t)&&(t=+t),tn(t))return t-1;{const e=t.toLowerCase(),n=Qse.indexOf(e);if(n!==-1)return n;const r=e.substr(0,3),i=vYe.indexOf(r);if(i!==-1)return i;throw new Error(JO("month",t))}}function TYe(t){if(t8(t)&&(t=+t),tn(t))return t%7;{const e=t.toLowerCase(),n=Gse.indexOf(e);if(n!==-1)return n;const r=e.substr(0,3),i=_Ye.indexOf(r);if(i!==-1)return i;throw new Error(JO("day",t))}}function g8(t,e){const n=[];if(e&&t.day!==void 0&&Te(t).length>1&&(Re(dYe(t)),t=ut(t),delete t.day),t.year!==void 0?n.push(t.year):n.push(2012),t.month!==void 0){const r=e?bYe(t.month):t.month;n.push(r)}else if(t.quarter!==void 0){const r=e?CYe(t.quarter):t.quarter;n.push(tn(r)?r*3:`${r}*3`)}else n.push(0);if(t.date!==void 0)n.push(t.date);else if(t.day!==void 0){const r=e?TYe(t.day):t.day;n.push(tn(r)?r+1:`${r}+1`)}else n.push(1);for(const r of["hours","minutes","seconds","milliseconds"]){const i=t[r];n.push(typeof i>"u"?0:i)}return n}function s3(t){const n=g8(t,!0).join(", ");return t.utc?`utc(${n})`:`datetime(${n})`}function RYe(t){const n=g8(t,!1).join(", ");return t.utc?`utc(${n})`:`datetime(${n})`}function OYe(t){const e=g8(t,!0);return t.utc?+new Date(Date.UTC(...e)):+new Date(...e)}var NYe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const Wse={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},m8=Te(Wse);function DYe(t){return!!Wse[t]}function y8(t){return t.startsWith("utc")}function FYe(t){return t.substr(3)}const wYe={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function E8(t){return m8.filter(e=>Vse(t,e))}function Vse(t,e){const n=t.indexOf(e);return!(n<0||n>0&&e==="seconds"&&t.charAt(n-1)==="i"||t.length>n+3&&e==="day"&&t.charAt(n+3)==="o"||n>0&&e==="year"&&t.charAt(n-1)==="f")}function LYe(t,e,{end:n}={end:!1}){const r=rse(e),i=y8(t)?"utc":"";function s(a){return a==="quarter"?`(${i}quarter(${r})-1)`:`${i}${a}(${r})`}let o;const u={};for(const a of m8)Vse(t,a)&&(u[a]=s(a),o=a);return n&&(u[o]+="+1"),RYe(u)}function Yse(t){if(!t)return;const e=E8(t);return`timeUnitSpecifier(${rn(e)}, ${rn(wYe)})`}function IYe(t,e,n){if(!t)return;const r=Yse(t);return`${n||y8(t)?"utc":"time"}Format(${e}, ${r})`}function ki(t){if(!t)return;let e;return je(t)?e={unit:t}:He(t)&&(e=Object.assign(Object.assign({},t),t.unit?{unit:t.unit}:{})),y8(e.unit)&&(e.utc=!0,e.unit=FYe(e.unit)),e}function $Ye(t){const e=ki(t),{utc:n}=e,r=NYe(e,["utc"]);return r.unit?(n?"utc":"")+Te(r).map(i=>gn(`${i==="unit"?"":`_${i}_`}${r[i]}`)).join(""):(n?"utc":"")+"timeunit"+Te(r).map(i=>gn(`_${i}_${r[i]}`)).join("")}function BYe(t){return t==null?void 0:t.param}function A8(t){return t&&!!t.field&&t.equal!==void 0}function S8(t){return t&&!!t.field&&t.lt!==void 0}function v8(t){return t&&!!t.field&&t.lte!==void 0}function _8(t){return t&&!!t.field&&t.gt!==void 0}function C8(t){return t&&!!t.field&&t.gte!==void 0}function b8(t){if(t!=null&&t.field){if(_e(t.range)&&t.range.length===2)return!0;if(Ye(t.range))return!0}return!1}function T8(t){return t&&!!t.field&&(_e(t.oneOf)||_e(t.in))}function kYe(t){return t&&!!t.field&&t.valid!==void 0}function Xse(t){return T8(t)||A8(t)||b8(t)||S8(t)||_8(t)||v8(t)||C8(t)}function ba(t,e){return hN(t,{timeUnit:e,wrapTime:!0})}function PYe(t,e){return t.map(n=>ba(n,e))}function Kse(t,e=!0){var n;const{field:r}=t,i=(n=ki(t.timeUnit))===null||n===void 0?void 0:n.unit,s=i?`time(${LYe(i,r)})`:$e(t,{expr:"datum"});if(A8(t))return`${s}===${ba(t.equal,i)}`;if(S8(t)){const o=t.lt;return`${s}<${ba(o,i)}`}else if(_8(t)){const o=t.gt;return`${s}>${ba(o,i)}`}else if(v8(t)){const o=t.lte;return`${s}<=${ba(o,i)}`}else if(C8(t)){const o=t.gte;return`${s}>=${ba(o,i)}`}else{if(T8(t))return`indexof([${PYe(t.oneOf,i).join(",")}], ${s}) !== -1`;if(kYe(t))return R8(s,t.valid);if(b8(t)){const{range:o}=t,u=Ye(o)?{signal:`${o.signal}[0]`}:o[0],a=Ye(o)?{signal:`${o.signal}[1]`}:o[1];if(u!==null&&a!==null&&e)return"inrange("+s+", ["+ba(u,i)+", "+ba(a,i)+"])";const l=[];return u!==null&&l.push(`${s} >= ${ba(u,i)}`),a!==null&&l.push(`${s} <= ${ba(a,i)}`),l.length>0?l.join(" && "):"true"}}throw new Error(`Invalid field predicate: ${rn(t)}`)}function R8(t,e=!0){return e?`isValid(${t}) && isFinite(+${t})`:`!isValid(${t}) || !isFinite(+${t})`}function MYe(t){var e;return Xse(t)&&t.timeUnit?Object.assign(Object.assign({},t),{timeUnit:(e=ki(t.timeUnit))===null||e===void 0?void 0:e.unit}):t}const o3={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function jYe(t){return t==="quantitative"||t==="temporal"}function Jse(t){return t==="ordinal"||t==="nominal"}const Sd=o3.quantitative,O8=o3.ordinal,S2=o3.temporal,N8=o3.nominal,v2=o3.geojson;function UYe(t){if(t)switch(t=t.toLowerCase(),t){case"q":case Sd:return"quantitative";case"t":case S2:return"temporal";case"o":case O8:return"ordinal";case"n":case N8:return"nominal";case v2:return"geojson"}}var qYe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const ds={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"},D8={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 HYe(t,e){const n=D8[t],r=D8[e];return n===r||n==="ordinal-position"&&r==="time"||r==="ordinal-position"&&n==="time"}const zYe={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 Zse(t){return zYe[t]}const eoe=new Set(["linear","log","pow","sqrt","symlog"]),toe=new Set([...eoe,"time","utc"]);function noe(t){return eoe.has(t)}const roe=new Set(["quantile","quantize","threshold"]),QYe=new Set([...toe,...roe,"sequential","identity"]),GYe=new Set(["ordinal","bin-ordinal","point","band"]);function Ar(t){return GYe.has(t)}function js(t){return QYe.has(t)}function cu(t){return toe.has(t)}function _2(t){return roe.has(t)}const WYe={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};function VYe(t){return!je(t)&&!!t.name}function ioe(t){return t==null?void 0:t.param}function YYe(t){return t&&t.unionWith}function XYe(t){return He(t)&&"field"in t}const KYe=qYe({type:1,domain:1,domainMax:1,domainMin:1,domainMid: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},["type","domain","range","rangeMax","rangeMin","scheme"]),JYe=Te(KYe);function F8(t,e){switch(e){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(t);case"bins":return!["point","band","identity","ordinal"].includes(t);case"round":return cu(t)||t==="band"||t==="point";case"padding":case"rangeMin":case"rangeMax":return cu(t)||["point","band"].includes(t);case"paddingOuter":case"align":return["point","band"].includes(t);case"paddingInner":return t==="band";case"domainMax":case"domainMid":case"domainMin":case"clamp":return cu(t);case"nice":return cu(t)||t==="quantize"||t==="threshold";case"exponent":return t==="pow";case"base":return t==="log";case"constant":return t==="symlog";case"zero":return js(t)&&!bt(["log","time","utc","threshold","quantile"],t)}}function soe(t,e){switch(e){case"interpolate":case"scheme":case"domainMid":return y2(t)?void 0:YVe(t);case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":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}}function ZYe(t,e){return bt([O8,N8],e)?t===void 0||Ar(t):e===S2?bt([ds.TIME,ds.UTC,void 0],t):e===Sd?noe(t)||_2(t)||t===void 0:!0}function eXe(t,e,n=!1){if(!Lc(t))return!1;switch(t){case mn:case Er:case Rc:case m2:case au:case Ea:return cu(e)||e==="band"?!0:e==="point"?!n:!1;case Wl:case Dc:case Vl:case Oc:case Nc:case pd:return cu(e)||_2(e)||bt(["band","point","ordinal"],e);case ls:case va:case _a:return e!=="band";case Fc:case cs:return e==="ordinal"||_2(e)}}const Pi={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"},ooe=Pi.arc,ZO=Pi.area,eN=Pi.bar,tXe=Pi.image,tN=Pi.line,nN=Pi.point,nXe=Pi.rect,rN=Pi.rule,uoe=Pi.text,w8=Pi.tick,rXe=Pi.trail,L8=Pi.circle,I8=Pi.square,aoe=Pi.geoshape;function kc(t){return["line","area","trail"].includes(t)}function loe(t){return["rect","bar","image","arc"].includes(t)}const iXe=new Set(Te(Pi));function Ta(t){return t.type}const sXe=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit"],oXe=["fill","fillOpacity"],uXe=[...sXe,...oXe],coe=Te({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),aXe={area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize"],line:["point"],tick:["bandSize","thickness"]},lXe={color:"#4c78a8",invalid:"filter",timeUnitBandSize:1},foe=Te({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 C2(t){return t&&t.band!=null}const cXe={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},xoe=5,fXe={binSpacing:1,continuousBandSize:xoe,timeUnitBandPosition:.5},xXe={binSpacing:0,continuousBandSize:xoe,timeUnitBandPosition:.5},dXe={thickness:1};function hXe(t){return Ta(t)?t.type:t}function $8(t){const{channel:e,channelDef:n,markDef:r,scale:i,config:s}=t,o=k8(t);return Ie(n)&&!gse(n.aggregate)&&i&&cu(i.get("type"))?pXe({fieldDef:n,channel:e,markDef:r,ref:o,config:s}):o}function pXe({fieldDef:t,channel:e,markDef:n,ref:r,config:i}){return kc(n.type)?r:$t("invalid",n,i)===null?[gXe(t,e),r]:r}function gXe(t,e){const n=B8(t,!0),i=md(e)==="y"?{field:{group:"height"}}:{value:0};return Object.assign({test:n},i)}function B8(t,e=!0){return R8(je(t)?t:$e(t,{expr:"datum"}),!e)}function mXe(t){const{datum:e}=t;return Ad(e)?s3(e):`${rn(e)}`}function vd(t,e,n,r){const i={};if(e&&(i.scale=e),Oa(t)){const{datum:s}=t;Ad(s)?i.signal=s3(s):Ye(s)?i.signal=s.signal:i3(s)?i.signal=s.expr:i.value=s}else i.field=$e(t,n);if(r){const{offset:s,band:o}=r;s&&(i.offset=s),o&&(i.band=o)}return i}function iN({scaleName:t,fieldOrDatumDef:e,fieldOrDatumDef2:n,offset:r,startSuffix:i,bandPosition:s=.5}){const o=0<s&&s<1?"datum":void 0,u=$e(e,{expr:o,suffix:i}),a=n!==void 0?$e(n,{expr:o}):$e(e,{suffix:"end",expr:o}),l={};if(s===0||s===1){l.scale=t;const c=s===0?u:a;l.field=c}else{const c=Ye(s)?`${s.signal} * ${u} + (1-${s.signal}) * ${a}`:`${s} * ${u} + ${1-s} * ${a}`;l.signal=`scale("${t}", ${c})`}return r&&(l.offset=r),l}function k8({channel:t,channelDef:e,channel2Def:n,markDef:r,config:i,scaleName:s,scale:o,stack:u,offset:a,defaultRef:l,bandPosition:c}){var f;if(e){if(st(e)){const x=o==null?void 0:o.get("type");if(_o(e)){c??(c=Coe({fieldDef:e,fieldDef2:n,markDef:r,config:i}));const{bin:h,timeUnit:p,type:m}=e;if(Xt(h)||c&&p&&m===S2)return u!=null&&u.impute?vd(e,s,{binSuffix:"mid"},{offset:a}):c&&!Ar(x)?iN({scaleName:s,fieldOrDatumDef:e,bandPosition:c,offset:a}):vd(e,s,c3(e,t)?{binSuffix:"range"}:{},{offset:a});if(Bi(h)){if(Ie(n))return iN({scaleName:s,fieldOrDatumDef:e,fieldOrDatumDef2:n,bandPosition:c,offset:a});Re(Hse(t===mn?uu:ya))}}return vd(e,s,Ar(x)?{binSuffix:"range"}:{},{offset:a,band:x==="band"?(f=c??e.bandPosition)!==null&&f!==void 0?f:.5:void 0})}else if(fu(e)){const x=e.value,h=a?{offset:a}:{};return Object.assign(Object.assign({},u3(t,x)),h)}}return ct(l)&&(l=l()),l&&Object.assign(Object.assign({},l),a?{offset:a}:{})}function u3(t,e){return bt(["x","x2"],t)&&e==="width"?{field:{group:"width"}}:bt(["y","y2"],t)&&e==="height"?{field:{group:"height"}}:sn(e)}function _d(t){return t&&t!=="number"&&t!=="time"}function doe(t,e,n){return`${t}(${e}${n?`, ${rn(n)}`:""})`}const yXe=" – ";function P8({fieldOrDatumDef:t,format:e,formatType:n,expr:r,normalizeStack:i,config:s}){var o,u;if(_d(n))return M8({fieldOrDatumDef:t,format:e,formatType:n,expr:r,config:s});const a=hoe(t,r,i);if(R2(t)){const l=AXe(a,Ie(t)?(o=ki(t.timeUnit))===null||o===void 0?void 0:o.unit:void 0,e,s.timeFormat,Cd(t)&&((u=t.scale)===null||u===void 0?void 0:u.type)===ds.UTC);return l?{signal:l}:void 0}if(e=moe(H8(t),e,s),Ie(t)&&Xt(t.bin)){const l=$e(t,{expr:r,binSuffix:"end"});return{signal:sN(a,l,e,n,s)}}else return e||H8(t)==="quantitative"?{signal:`${yoe(a,e)}`}:{signal:`isValid(${a}) ? ${a} : ""+${a}`}}function hoe(t,e,n){return Ie(t)?n?`${$e(t,{expr:e,suffix:"end"})}-${$e(t,{expr:e,suffix:"start"})}`:$e(t,{expr:e}):mXe(t)}function M8({fieldOrDatumDef:t,format:e,formatType:n,expr:r,normalizeStack:i,config:s,field:o}){if(o??(o=hoe(t,r,i)),Ie(t)&&Xt(t.bin)){const u=$e(t,{expr:r,binSuffix:"end"});return{signal:sN(o,u,e,n,s)}}return{signal:doe(n,o,e)}}function poe(t,e,n,r,i,s){var o;if(!_d(r)){if(R2(t)){const u=Ie(t)?(o=ki(t.timeUnit))===null||o===void 0?void 0:o.unit:void 0;return EXe(n,u,i,s)}return moe(e,n,i)}}function goe(t,e,n){if(t&&(Ye(t)||t==="number"||t==="time"))return t;if(R2(e)&&n!=="time"&&n!=="utc")return"time"}function moe(t,e,n){if(je(e))return e;if(t===Sd)return n.numberFormat}function EXe(t,e,n,r){return t||(e?{signal:Yse(e)}:r?void 0:n.timeFormat)}function yoe(t,e){return`format(${t}, "${e||""}")`}function Eoe(t,e,n,r){var i;return _d(n)?doe(n,t,e):yoe(t,(i=je(e)?e:void 0)!==null&&i!==void 0?i:r.numberFormat)}function sN(t,e,n,r,i){const s=Eoe(t,n,r,i),o=Eoe(e,n,r,i);return`${R8(t,!1)} ? "null" : ${s} + "${yXe}" + ${o}`}function AXe(t,e,n,r,i){return!e||n?(n=je(n)?n:r,`${i?"utc":"time"}Format(${t}, '${n}')`):IYe(e,t,i)}const oN="min",SXe={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 Aoe(t){return t in SXe}function Soe(t){return!!t&&!!t.encoding}function Ra(t){return!!t&&(t.op==="count"||!!t.field)}function voe(t){return!!t&&_e(t)}function a3(t){return"row"in t||"column"in t}function j8(t){return!!t&&"header"in t}function uN(t){return"facet"in t}var U8=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function vXe(t){return t.param}function _Xe(t){return t&&!je(t)&&"repeat"in t}function _oe(t){const{field:e,timeUnit:n,bin:r,aggregate:i}=t;return Object.assign(Object.assign(Object.assign(Object.assign({},n?{timeUnit:n}:{}),r?{bin:r}:{}),i?{aggregate:i}:{}),{field:e})}function q8(t){return"sort"in t}function Coe({fieldDef:t,fieldDef2:e,markDef:n,config:r}){if(st(t)&&t.bandPosition!==void 0)return t.bandPosition;if(Ie(t)){const{timeUnit:i,bin:s}=t;if(i&&!e)return loe(n.type)?0:Ed("timeUnitBandPosition",n,r);if(Xt(s))return .5}}function boe({channel:t,fieldDef:e,fieldDef2:n,markDef:r,config:i,scaleType:s,useVlSizeChannel:o}){var u,a,l;const c=fs(t),f=$t(o?"size":c,r,i,{vgChannel:c});if(f!==void 0)return f;if(Ie(e)){const{timeUnit:x,bin:h}=e;if(x&&!n)return{band:Ed("timeUnitBandSize",r,i)};if(Xt(h)&&!Ar(s))return{band:1}}if(loe(r.type))return s?Ar(s)?((u=i[r.type])===null||u===void 0?void 0:u.discreteBandSize)||{band:1}:(a=i[r.type])===null||a===void 0?void 0:a.continuousBandSize:(l=i[r.type])===null||l===void 0?void 0:l.discreteBandSize}function Toe(t,e,n,r){return Xt(t.bin)||t.timeUnit&&_o(t)&&t.type==="temporal"?Coe({fieldDef:t,fieldDef2:e,markDef:n,config:r})!==void 0:!1}function aN(t){return t&&"condition"in t}function lN(t){const e=t&&t.condition;return!!e&&!_e(e)&&Ie(e)}function l3(t){const e=t&&t.condition;return!!e&&!_e(e)&&st(e)}function CXe(t){const e=t&&t.condition;return!!e&&(_e(e)||fu(e))}function Ie(t){return t&&(!!t.field||t.aggregate==="count")}function H8(t){return t&&t.type}function Oa(t){return t&&"datum"in t}function Na(t){return _o(t)&&!cN(t)||z8(t)}function z8(t){return Oa(t)&&tn(t.datum)}function st(t){return Ie(t)||Oa(t)}function _o(t){return t&&("field"in t||t.aggregate==="count")&&"type"in t}function fu(t){return t&&"value"in t&&"value"in t}function Cd(t){return t&&("scale"in t||"sort"in t)}function Q8(t){return t&&("axis"in t||"stack"in t||"impute"in t)}function Roe(t){return t&&"legend"in t}function Ooe(t){return t&&("format"in t||"formatType"in t)}function bXe(t){return Ao(t,["legend","axis","header","scale"])}function TXe(t){return"op"in t}function $e(t,e={}){var n,r,i;let s=t.field;const o=e.prefix;let u=e.suffix,a="";if(OXe(t))s=BWe("count");else{let l;if(!e.nofn)if(TXe(t))l=t.op;else{const{bin:c,aggregate:f,timeUnit:x}=t;Xt(c)?(l=mse(c),u=((n=e.binSuffix)!==null&&n!==void 0?n:"")+((r=e.suffix)!==null&&r!==void 0?r:"")):f?Ic(f)?(a=`["${s}"]`,s=`argmax_${f.argmax}`):Xl(f)?(a=`["${s}"]`,s=`argmin_${f.argmin}`):l=String(f):x&&(l=$Ye(x),u=(!["range","mid"].includes(e.binSuffix)&&e.binSuffix||"")+((i=e.suffix)!==null&&i!==void 0?i:""))}l&&(s=s?`${l}_${s}`:l)}return u&&(s=`${s}_${u}`),o&&(s=`${o}_${s}`),e.forAs?ise(s):e.expr?wWe(s,e.expr)+a:ou(s)+a}function cN(t){switch(t.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return Ie(t)&&!!t.bin;case"temporal":return!1}throw new Error(kse(t.type))}function RXe(t){var e;return Cd(t)&&_2((e=t.scale)===null||e===void 0?void 0:e.type)}function OXe(t){return t.aggregate==="count"}function NXe(t,e){var n;const{field:r,bin:i,timeUnit:s,aggregate:o}=t;if(o==="count")return e.countTitle;if(Xt(i))return`${r} (binned)`;if(s){const u=(n=ki(s))===null||n===void 0?void 0:n.unit;if(u)return`${r} (${E8(u).join("-")})`}else if(o)return Ic(o)?`${r} for max ${o.argmax}`:Xl(o)?`${r} for min ${o.argmin}`:`${jO(o)} of ${r}`;return r}function DXe(t){const{aggregate:e,bin:n,timeUnit:r,field:i}=t;if(Ic(e))return`${i} for argmax(${e.argmax})`;if(Xl(e))return`${i} for argmin(${e.argmin})`;const s=ki(r),o=e||(s==null?void 0:s.unit)||(s==null?void 0:s.maxbins)&&"timeunit"||Xt(n)&&"bin";return o?`${o.toUpperCase()}(${i})`:i}const Noe=(t,e)=>{switch(e.fieldTitle){case"plain":return t.field;case"functional":return DXe(t);default:return NXe(t,e)}};let Doe=Noe;function Foe(t){Doe=t}function FXe(){Foe(Noe)}function b2(t,e,{allowDisabling:n,includeDefault:r=!0}){var i,s;const o=(i=G8(t))===null||i===void 0?void 0:i.title;if(!Ie(t))return o??t.title;const u=t,a=r?W8(u,e):void 0;return n?nr(o,u.title,a):(s=o??u.title)!==null&&s!==void 0?s:a}function G8(t){if(Q8(t)&&t.axis)return t.axis;if(Roe(t)&&t.legend)return t.legend;if(j8(t)&&t.header)return t.header}function W8(t,e){return Doe(t,e)}function fN(t){var e;if(Ooe(t)){const{format:n,formatType:r}=t;return{format:n,formatType:r}}else{const n=(e=G8(t))!==null&&e!==void 0?e:{},{format:r,formatType:i}=n;return{format:r,formatType:i}}}function wXe(t,e){var n;switch(e){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(q8(t)&&_e(t.sort))return"ordinal";const{aggregate:r,bin:i,timeUnit:s}=t;if(s)return"temporal";if(i||r&&!Ic(r)&&!Xl(r))return"quantitative";if(Cd(t)&&(!((n=t.scale)===null||n===void 0)&&n.type))switch(D8[t.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}function Da(t){if(Ie(t))return t;if(lN(t))return t.condition}function rr(t){if(st(t))return t;if(l3(t))return t.condition}function woe(t,e,n,r={}){if(je(t)||tn(t)||yp(t)){const i=je(t)?"string":tn(t)?"number":"boolean";return Re(BVe(e,i,t)),{value:t}}return st(t)?xN(t,e,n,r):l3(t)?Object.assign(Object.assign({},t),{condition:xN(t.condition,e,n,r)}):t}function xN(t,e,n,r){if(Ooe(t)){const{format:i,formatType:s}=t,o=U8(t,["format","formatType"]);if(_d(s)&&!n.customFormatTypes)return Re(Bse(e)),xN(o,e,n,r)}else{const i=Q8(t)?"axis":Roe(t)?"legend":j8(t)?"header":null;if(i&&t[i]){const s=t[i],{format:o,formatType:u}=s,a=U8(s,["format","formatType"]);if(_d(u)&&!n.customFormatTypes)return Re(Bse(e)),xN(Object.assign(Object.assign({},t),{[i]:a}),e,n,r)}}return Ie(t)?V8(t,e,r):LXe(t)}function LXe(t){let e=t.type;if(e)return t;const{datum:n}=t;return e=tn(n)?"quantitative":je(n)?"nominal":Ad(n)?"temporal":void 0,Object.assign(Object.assign({},t),{type:e})}function V8(t,e,{compositeMark:n=!1}={}){const{aggregate:r,timeUnit:i,bin:s,field:o}=t,u=Object.assign({},t);if(!n&&r&&!l8(r)&&!Ic(r)&&!Xl(r)&&(Re(PVe(r)),delete u.aggregate),i&&(u.timeUnit=ki(i)),o&&(u.field=`${o}`),Xt(s)&&(u.bin=dN(s,e)),Bi(s)&&!Ir(e)&&Re(mYe(e)),_o(u)){const{type:a}=u,l=UYe(a);a!==l&&(u.type=l),a!=="quantitative"&&gse(r)&&(Re(kVe(a,r)),u.type="quantitative")}else if(!lse(e)){const a=wXe(u,e);u.type=a}if(_o(u)){const{compatible:a,warning:l}=IXe(u,e)||{};a===!1&&Re(l)}if(q8(u)&&je(u.sort)){const{sort:a}=u;if(Aoe(a))return Object.assign(Object.assign({},u),{sort:{encoding:a}});const l=a.substr(1);if(a.charAt(0)==="-"&&Aoe(l))return Object.assign(Object.assign({},u),{sort:{encoding:l,order:"descending"}})}if(j8(u)){const{header:a}=u;if(a){const{orient:l}=a,c=U8(a,["orient"]);if(l)return Object.assign(Object.assign({},u),{header:Object.assign(Object.assign({},c),{labelOrient:a.labelOrient||l,titleOrient:a.titleOrient||l})})}}return u}function dN(t,e){return yp(t)?{maxbins:yse(e)}:t==="binned"?{binned:!0}:!t.maxbins&&!t.step?Object.assign(Object.assign({},t),{maxbins:yse(e)}):t}const T2={compatible:!0};function IXe(t,e){const n=t.type;if(n==="geojson"&&e!=="shape")return{compatible:!1,warning:`Channel ${e} should not be used with a geojson data.`};switch(e){case Hl:case zl:case qO:return cN(t)?T2:{compatible:!1,warning:HVe(e)};case mn:case Er:case Rc:case m2:case ls:case va:case _a:case t3:case r3:case HO:case gd:case zO:case QO:case pd:case au:case Ea:case GO:return T2;case Sa:case So:case Aa:case lu:return n!==Sd?{compatible:!1,warning:`Channel ${e} should be used with a quantitative field only, not ${t.type} field.`}:T2;case Vl:case Oc:case Nc:case Dc:case Wl:case Gl:case Ql:case uu:case ya:return n==="nominal"&&!t.sort?{compatible:!1,warning:`Channel ${e} should not be used with an unsorted discrete field.`}:T2;case cs:case Fc:return!cN(t)&&!RXe(t)?{compatible:!1,warning:zVe(e)}:T2;case n3:return t.type==="nominal"&&!("sort"in t)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:T2}}function R2(t){const{formatType:e}=fN(t);return e==="time"||!e&&$Xe(t)}function $Xe(t){return t&&(t.type==="temporal"||Ie(t)&&!!t.timeUnit)}function hN(t,{timeUnit:e,type:n,wrapTime:r,undefinedIfExprNotRequired:i}){var s;const o=e&&((s=ki(e))===null||s===void 0?void 0:s.unit);let u=o||n==="temporal",a;return i3(t)?a=t.expr:Ye(t)?a=t.signal:Ad(t)?(u=!0,a=s3(t)):(je(t)||tn(t))&&u&&(a=`datetime(${rn(t)})`,DYe(o)&&(tn(t)&&t<1e4||je(t)&&isNaN(Date.parse(t)))&&(a=s3({[o]:t}))),a?r&&u?`time(${a})`:a:i?void 0:rn(t)}function Loe(t,e){const{type:n}=t;return e.map(r=>{const i=hN(r,{timeUnit:Ie(t)?t.timeUnit:void 0,type:n,undefinedIfExprNotRequired:!0});return i!==void 0?{signal:i}:r})}function c3(t,e){return Xt(t.bin)?Lc(e)&&["ordinal","nominal"].includes(t.type):(console.warn("Only call this method for binned field defs."),!1)}const Ioe={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 f3(t){return t&&t.condition}const $oe=["domain","grid","labels","ticks","title"],BXe={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"},Boe={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},kXe=Object.assign(Object.assign({},Boe),{style:1,labelExpr:1,encoding:1});function koe(t){return!!kXe[t]}const Poe=Te({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 Zl(t){return"mark"in t}class pN{constructor(e,n){this.name=e,this.run=n}hasMatchingType(e){return Zl(e)?hXe(e.mark)===this.name:!1}}var PXe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function bd(t,e){const n=t&&t[e];return n?_e(n)?p2(n,r=>!!r.field):Ie(n)||lN(n):!1}function Moe(t,e){const n=t&&t[e];return n?_e(n)?p2(n,r=>!!r.field):Ie(n)||Oa(n)||l3(n):!1}function Y8(t,e){if(Ir(e)){const n=t[e];if((Ie(n)||Oa(n))&&Jse(n.type)){const r=cse(e);return Moe(t,r)}}return!1}function X8(t){return p2(qWe,e=>{if(bd(t,e)){const n=t[e];if(_e(n))return p2(n,r=>!!r.aggregate);{const r=Da(n);return r&&!!r.aggregate}}return!1})}function joe(t,e){const n=[],r=[],i=[],s=[],o={};return K8(t,(u,a)=>{if(Ie(u)){const{field:l,aggregate:c,bin:f,timeUnit:x}=u,h=PXe(u,["field","aggregate","bin","timeUnit"]);if(c||x||f){const p=G8(u),m=p==null?void 0:p.title;let g=$e(u,{forAs:!0});const y=Object.assign(Object.assign(Object.assign({},m?[]:{title:b2(u,e,{allowDisabling:!0})}),h),{field:g});if(c){let E;if(Ic(c)?(E="argmax",g=$e({op:"argmax",field:c.argmax},{forAs:!0}),y.field=`${g}.${l}`):Xl(c)?(E="argmin",g=$e({op:"argmin",field:c.argmin},{forAs:!0}),y.field=`${g}.${l}`):c!=="boxplot"&&c!=="errorbar"&&c!=="errorband"&&(E=c),E){const A={op:E,as:g};l&&(A.field=l),s.push(A)}}else if(n.push(g),_o(u)&&Xt(f)){if(r.push({bin:f,field:l,as:g}),n.push($e(u,{binSuffix:"end"})),c3(u,a)&&n.push($e(u,{binSuffix:"range"})),Ir(a)){const E={field:`${g}_end`};o[`${a}2`]=E}y.bin="binned",lse(a)||(y.type=Sd)}else if(x){i.push({timeUnit:x,field:l,as:g});const E=_o(u)&&u.type!==S2&&"time";E&&(a===t3||a===gd?y.formatType=E:JWe(a)?y.legend=Object.assign({formatType:E},y.legend):Ir(a)&&(y.axis=Object.assign({formatType:E},y.axis)))}o[a]=y}else n.push(l),o[a]=t[a]}else o[a]=t[a]}),{bins:r,timeUnits:i,aggregate:s,groupby:n,encoding:o}}function MXe(t,e,n){const r=eVe(e,n);if(r){if(r==="binned"){const i=t[e===uu?mn:Er];return!!(Ie(i)&&Ie(t[e])&&Bi(i.bin))}}else return!1;return!0}function jXe(t,e,n,r){const i={};for(const s of Te(t))ase(s)||Re(qVe(s));for(let s of VWe){if(!t[s])continue;const o=t[s];if(E2(s)){const u=fse(s),a=i[u];if(Ie(a)){if(jYe(a.type)&&Ie(o)){Re(IVe(u));continue}}else s=u,Re($Ve(u))}if(s==="angle"&&e==="arc"&&!t.theta&&(Re(LVe),s=au),!MXe(t,s,e)){Re(KO(s,e));continue}if(s===Wl&&e==="line"){const u=Da(t[s]);if(u!=null&&u.aggregate){Re(jVe);continue}}if(s===ls&&(n?"fill"in t:"stroke"in t)){Re(Pse("encoding",{fill:"fill"in t,stroke:"stroke"in t}));continue}if(s===r3||s===n3&&!_e(o)&&!fu(o)||s===gd&&_e(o))o&&(i[s]=Pe(o).reduce((u,a)=>(Ie(a)?u.push(V8(a,s)):Re(h8(a,s)),u),[]));else{if(s===gd&&o===null)i[s]=null;else if(!Ie(o)&&!Oa(o)&&!fu(o)&&!aN(o)&&!Ye(o)){Re(h8(o,s));continue}i[s]=woe(o,s,r)}}return i}function gN(t,e){const n={};for(const r of Te(t)){const i=woe(t[r],r,e,{compositeMark:!0});n[r]=i}return n}function UXe(t){const e=[];for(const n of Te(t))if(bd(t,n)){const r=t[n],i=Pe(r);for(const s of i)Ie(s)?e.push(s):lN(s)&&e.push(s.condition)}return e}function K8(t,e,n){if(t)for(const r of Te(t)){const i=t[r];if(_e(i))for(const s of i)e.call(n,s,r);else e.call(n,i,r)}}function qXe(t,e,n,r){return t?Te(t).reduce((i,s)=>{const o=t[s];return _e(o)?o.reduce((u,a)=>e.call(r,u,a,s),i):e.call(r,i,o,s)},n):n}function Uoe(t,e){return Te(e).reduce((n,r)=>{switch(r){case mn:case Er:case zO:case GO:case QO:case uu:case ya:case Rc:case m2:case au:case Gl:case Ea:case Ql:case Aa:case Sa:case lu:case So:case t3:case cs:case pd:case gd:return n;case n3:if(t==="line"||t==="trail")return n;case r3:case HO:{const i=e[r];if(_e(i)||Ie(i))for(const s of Pe(i))s.aggregate||n.push($e(s,{}));return n}case Wl:if(t==="trail")return n;case ls:case va:case _a:case Vl:case Oc:case Nc:case Fc:case Dc:{const i=Da(e[r]);return i&&!i.aggregate&&n.push($e(i,{})),n}}},[])}var qoe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function HXe(t){const{tooltip:e}=t,n=qoe(t,["tooltip"]);if(!e)return{filteredEncoding:n};let r,i;if(_e(e)){for(const s of e)s.aggregate?(r||(r=[]),r.push(s)):(i||(i=[]),i.push(s));r&&(n.tooltip=r)}else e.aggregate?n.tooltip=e:i=e;return _e(i)&&i.length===1&&(i=i[0]),{customTooltipWithoutAggregatedField:i,filteredEncoding:n}}function J8(t,e,n,r=!0){if("tooltip"in n)return{tooltip:n.tooltip};const i=t.map(({fieldPrefix:o,titlePrefix:u})=>{const a=r?` of ${Z8(e)}`:"";return{field:o+e.field,type:e.type,title:Ye(u)?{signal:`${u}"${escape(a)}"`}:u+a}}),s=UXe(n).map(bXe);return{tooltip:[...i,...ql(s,Ct)]}}function Z8(t){const{title:e,field:n}=t;return nr(e,n)}function e7(t,e,n,r,i){const{scale:s,axis:o}=n;return({partName:u,mark:a,positionPrefix:l,endPositionPrefix:c=void 0,extraEncoding:f={}})=>{const x=Z8(n);return Hoe(t,u,i,{mark:a,encoding:Object.assign(Object.assign(Object.assign({[e]:Object.assign(Object.assign(Object.assign({field:`${l}_${n.field}`,type:n.type},x!==void 0?{title:x}:{}),s!==void 0?{scale:s}:{}),o!==void 0?{axis:o}:{})},je(c)?{[`${e}2`]:{field:`${c}_${n.field}`}}:{}),r),f)})}}function Hoe(t,e,n,r){const{clip:i,color:s,opacity:o}=t,u=t.type;return t[e]||t[e]===void 0&&n[e]?[Object.assign(Object.assign({},r),{mark:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},n[e]),i?{clip:i}:{}),s?{color:s}:{}),o?{opacity:o}:{}),Ta(r.mark)?r.mark:{type:r.mark}),{style:`${u}-${e}`}),yp(t[e])?{}:t[e])})]:[]}function zoe(t,e,n){const{encoding:r}=t,i=e==="vertical"?"y":"x",s=r[i],o=r[`${i}2`],u=r[`${i}Error`],a=r[`${i}Error2`];return{continuousAxisChannelDef:mN(s,n),continuousAxisChannelDef2:mN(o,n),continuousAxisChannelDefError:mN(u,n),continuousAxisChannelDefError2:mN(a,n),continuousAxis:i}}function mN(t,e){if(t!=null&&t.aggregate){const{aggregate:n}=t,r=qoe(t,["aggregate"]);return n!==e&&Re(gYe(n,e)),r}else return t}function Qoe(t,e){const{mark:n,encoding:r}=t,{x:i,y:s}=r;if(Ta(n)&&n.orient)return n.orient;if(Na(i)){if(Na(s)){const o=Ie(i)&&i.aggregate,u=Ie(s)&&s.aggregate;if(!o&&u===e)return"vertical";if(!u&&o===e)return"horizontal";if(o===e&&u===e)throw new Error("Both x and y cannot have aggregate");return R2(s)&&!R2(i)?"horizontal":"vertical"}return"horizontal"}else{if(Na(s))return"vertical";throw new Error(`Need a valid continuous axis for ${e}s`)}}var yN=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const EN="boxplot",zXe=["box","median","outliers","rule","ticks"],QXe=new pN(EN,Woe);function Goe(t){return tn(t)?"tukey":t}function Woe(t,{config:e}){var n,r;t=Object.assign(Object.assign({},t),{encoding:gN(t.encoding,e)});const{mark:i,encoding:s,params:o,projection:u}=t,a=yN(t,["mark","encoding","params","projection"]),l=Ta(i)?i:{type:i};o&&Re(Lse("boxplot"));const c=(n=l.extent)!==null&&n!==void 0?n:e.boxplot.extent,f=$t("size",l,e),x=Goe(c),{bins:h,timeUnits:p,transform:m,continuousAxisChannelDef:g,continuousAxis:y,groupby:E,aggregate:A,encodingWithoutContinuousAxis:S,ticksOrient:v,boxOrient:_,customTooltipWithoutAggregatedField:C}=GXe(t,c,e),{color:b,size:R}=S,O=yN(S,["color","size"]),L=J=>e7(l,y,g,J,e.boxplot),M=L(O),q=L(S),W=L(Object.assign(Object.assign({},O),R?{size:R}:{})),B=J8([{fieldPrefix:x==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:x==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],g,S),G={type:"tick",color:"black",opacity:1,orient:v,invalid:null,aria:!1},te=x==="min-max"?B:J8([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],g,S),K=[...M({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:te}),...M({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:te}),...M({partName:"ticks",mark:G,positionPrefix:"lower_whisker",extraEncoding:te}),...M({partName:"ticks",mark:G,positionPrefix:"upper_whisker",extraEncoding:te})],de=[...x!=="tukey"?K:[],...q({partName:"box",mark:Object.assign(Object.assign({type:"bar"},f?{size:f}:{}),{orient:_,invalid:null,ariaRoleDescription:"box"}),positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:B}),...W({partName:"median",mark:Object.assign(Object.assign(Object.assign({type:"tick",invalid:null},He(e.boxplot.median)&&e.boxplot.median.color?{color:e.boxplot.median.color}:{}),f?{size:f}:{}),{orient:v,aria:!1}),positionPrefix:"mid_box",extraEncoding:B})];if(x==="min-max")return Object.assign(Object.assign({},a),{transform:((r=a.transform)!==null&&r!==void 0?r:[]).concat(m),layer:de});const be=`datum["lower_box_${g.field}"]`,ee=`datum["upper_box_${g.field}"]`,U=`(${ee} - ${be})`,T=`${be} - ${c} * ${U}`,w=`${ee} + ${c} * ${U}`,k=`datum["${g.field}"]`,z={joinaggregate:Voe(g.field),groupby:E},Y={transform:[{filter:`(${T} <= ${k}) && (${k} <= ${w})`},{aggregate:[{op:"min",field:g.field,as:`lower_whisker_${g.field}`},{op:"max",field:g.field,as:`upper_whisker_${g.field}`},{op:"min",field:`lower_box_${g.field}`,as:`lower_box_${g.field}`},{op:"max",field:`upper_box_${g.field}`,as:`upper_box_${g.field}`},...A],groupby:E}],layer:K},V=yN(O,["tooltip"]),{scale:D,axis:$}=g,j=Z8(g),Q=Ao($,["title"]),I=Hoe(l,"outliers",e.boxplot,{transform:[{filter:`(${k} < ${T}) || (${k} > ${w})`}],mark:"point",encoding:Object.assign(Object.assign(Object.assign({[y]:Object.assign(Object.assign(Object.assign({field:g.field,type:g.type},j!==void 0?{title:j}:{}),D!==void 0?{scale:D}:{}),Gt(Q)?{}:{axis:Q})},V),b?{color:b}:{}),C?{tooltip:C}:{})})[0];let H;const P=[...h,...p,z];return I?H={transform:P,layer:[I,Y]}:(H=Y,H.transform.unshift(...P)),Object.assign(Object.assign({},a),{layer:[H,{transform:m,layer:de}]})}function Voe(t){return[{op:"q1",field:t,as:`lower_box_${t}`},{op:"q3",field:t,as:`upper_box_${t}`}]}function GXe(t,e,n){const r=Qoe(t,EN),{continuousAxisChannelDef:i,continuousAxis:s}=zoe(t,r,EN),o=i.field,u=Goe(e),a=[...Voe(o),{op:"median",field:o,as:`mid_box_${o}`},{op:"min",field:o,as:(u==="min-max"?"lower_whisker_":"min_")+o},{op:"max",field:o,as:(u==="min-max"?"upper_whisker_":"max_")+o}],l=u==="min-max"||u==="tukey"?[]:[{calculate:`datum["upper_box_${o}"] - datum["lower_box_${o}"]`,as:`iqr_${o}`},{calculate:`min(datum["upper_box_${o}"] + datum["iqr_${o}"] * ${e}, datum["max_${o}"])`,as:`upper_whisker_${o}`},{calculate:`max(datum["lower_box_${o}"] - datum["iqr_${o}"] * ${e}, datum["min_${o}"])`,as:`lower_whisker_${o}`}],c=t.encoding,f=s;c[f];const x=yN(c,[typeof f=="symbol"?f:f+""]),{customTooltipWithoutAggregatedField:h,filteredEncoding:p}=HXe(x),{bins:m,timeUnits:g,aggregate:y,groupby:E,encoding:A}=joe(p,n),S=r==="vertical"?"horizontal":"vertical",v=r,_=[...m,...g,{aggregate:[...y,...a],groupby:E},...l];return{bins:m,timeUnits:g,transform:_,groupby:E,aggregate:y,continuousAxisChannelDef:i,continuousAxis:s,encodingWithoutContinuousAxis:A,ticksOrient:S,boxOrient:v,customTooltipWithoutAggregatedField:h}}var Yoe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const t7="errorbar",WXe=["ticks","rule"],VXe=new pN(t7,Xoe);function Xoe(t,{config:e}){t=Object.assign(Object.assign({},t),{encoding:gN(t.encoding,e)});const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:s,ticksOrient:o,markDef:u,outerSpec:a,tooltipEncoding:l}=Koe(t,t7,e);delete s.size;const c=e7(u,i,r,s,e.errorbar),f=u.thickness,x=u.size,h=Object.assign(Object.assign({type:"tick",orient:o,aria:!1},f!==void 0?{thickness:f}:{}),x!==void 0?{size:x}:{}),p=[...c({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:l}),...c({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:l}),...c({partName:"rule",mark:Object.assign({type:"rule",ariaRoleDescription:"errorbar"},f!==void 0?{size:f}:{}),positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l})];return Object.assign(Object.assign(Object.assign({},a),{transform:n}),p.length>1?{layer:p}:Object.assign({},p[0]))}function YXe(t,e){const{encoding:n}=t;if(XXe(n))return{orient:Qoe(t,e),inputType:"raw"};const r=KXe(n),i=JXe(n),s=n.x,o=n.y;if(r){if(i)throw new Error(`${e} cannot be both type aggregated-upper-lower and aggregated-error`);const u=n.x2,a=n.y2;if(st(u)&&st(a))throw new Error(`${e} cannot have both x2 and y2`);if(st(u)){if(Na(s))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${e}`)}else if(st(a)){if(Na(o))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${e}`)}throw new Error("No ranged axis")}else{const u=n.xError,a=n.xError2,l=n.yError,c=n.yError2;if(st(a)&&!st(u))throw new Error(`${e} cannot have xError2 without xError`);if(st(c)&&!st(l))throw new Error(`${e} cannot have yError2 without yError`);if(st(u)&&st(l))throw new Error(`${e} cannot have both xError and yError with both are quantiative`);if(st(u)){if(Na(s))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}else if(st(l)){if(Na(o))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 XXe(t){return(st(t.x)||st(t.y))&&!st(t.x2)&&!st(t.y2)&&!st(t.xError)&&!st(t.xError2)&&!st(t.yError)&&!st(t.yError2)}function KXe(t){return st(t.x2)||st(t.y2)}function JXe(t){return st(t.xError)||st(t.xError2)||st(t.yError)||st(t.yError2)}function Koe(t,e,n){var r;const{mark:i,encoding:s,params:o,projection:u}=t,a=Yoe(t,["mark","encoding","params","projection"]),l=Ta(i)?i:{type:i};o&&Re(Lse(e));const{orient:c,inputType:f}=YXe(t,e),{continuousAxisChannelDef:x,continuousAxisChannelDef2:h,continuousAxisChannelDefError:p,continuousAxisChannelDefError2:m,continuousAxis:g}=zoe(t,c,e),{errorBarSpecificAggregate:y,postAggregateCalculates:E,tooltipSummary:A,tooltipTitleWithFieldName:S}=ZXe(l,x,h,p,m,f,e,n),v=s,_=g;v[_];const C=g==="x"?"x2":"y2";v[C];const b=g==="x"?"xError":"yError";v[b];const R=g==="x"?"xError2":"yError2";v[R];const O=Yoe(v,[typeof _=="symbol"?_:_+"",typeof C=="symbol"?C:C+"",typeof b=="symbol"?b:b+"",typeof R=="symbol"?R:R+""]),{bins:L,timeUnits:M,aggregate:q,groupby:W,encoding:B}=joe(O,n),G=[...q,...y],te=f!=="raw"?[]:W,K=J8(A,x,B,S);return{transform:[...(r=a.transform)!==null&&r!==void 0?r:[],...L,...M,...G.length===0?[]:[{aggregate:G,groupby:te}],...E],groupby:te,continuousAxisChannelDef:x,continuousAxis:g,encodingWithoutContinuousAxis:B,ticksOrient:c==="vertical"?"horizontal":"vertical",markDef:l,outerSpec:a,tooltipEncoding:K}}function ZXe(t,e,n,r,i,s,o,u){let a=[],l=[];const c=e.field;let f,x=!1;if(s==="raw"){const h=t.center?t.center:t.extent?t.extent==="iqr"?"median":"mean":u.errorbar.center,p=t.extent?t.extent:h==="mean"?"stderr":"iqr";if(h==="median"!=(p==="iqr")&&Re(pYe(h,p,o)),p==="stderr"||p==="stdev")a=[{op:p,field:c,as:`extent_${c}`},{op:h,field:c,as:`center_${c}`}],l=[{calculate:`datum["center_${c}"] + datum["extent_${c}"]`,as:`upper_${c}`},{calculate:`datum["center_${c}"] - datum["extent_${c}"]`,as:`lower_${c}`}],f=[{fieldPrefix:"center_",titlePrefix:jO(h)},{fieldPrefix:"upper_",titlePrefix:Joe(h,p,"+")},{fieldPrefix:"lower_",titlePrefix:Joe(h,p,"-")}],x=!0;else{let m,g,y;p==="ci"?(m="mean",g="ci0",y="ci1"):(m="median",g="q1",y="q3"),a=[{op:g,field:c,as:`lower_${c}`},{op:y,field:c,as:`upper_${c}`},{op:m,field:c,as:`center_${c}`}],f=[{fieldPrefix:"upper_",titlePrefix:b2({field:c,aggregate:y,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:b2({field:c,aggregate:g,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:b2({field:c,aggregate:m,type:"quantitative"},u,{allowDisabling:!1})}]}}else{(t.center||t.extent)&&Re(hYe(t.center,t.extent)),s==="aggregated-upper-lower"?(f=[],l=[{calculate:`datum["${n.field}"]`,as:`upper_${c}`},{calculate:`datum["${c}"]`,as:`lower_${c}`}]):s==="aggregated-error"&&(f=[{fieldPrefix:"",titlePrefix:c}],l=[{calculate:`datum["${c}"] + datum["${r.field}"]`,as:`upper_${c}`}],i?l.push({calculate:`datum["${c}"] + datum["${i.field}"]`,as:`lower_${c}`}):l.push({calculate:`datum["${c}"] - datum["${r.field}"]`,as:`lower_${c}`}));for(const h of l)f.push({fieldPrefix:h.as.substring(0,6),titlePrefix:g2(g2(h.calculate,'datum["',""),'"]',"")})}return{postAggregateCalculates:l,errorBarSpecificAggregate:a,tooltipSummary:f,tooltipTitleWithFieldName:x}}function Joe(t,e,n){return`${jO(t)} ${n} ${e}`}const n7="errorband",eKe=["band","borders"],tKe=new pN(n7,Zoe);function Zoe(t,{config:e}){t=Object.assign(Object.assign({},t),{encoding:gN(t.encoding,e)});const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:s,markDef:o,outerSpec:u,tooltipEncoding:a}=Koe(t,n7,e),l=o,c=e7(l,i,r,s,e.errorband),f=t.encoding.x!==void 0&&t.encoding.y!==void 0;let x={type:f?"area":"rect"},h={type:f?"line":"rule"};const p=Object.assign(Object.assign({},l.interpolate?{interpolate:l.interpolate}:{}),l.tension&&l.interpolate?{tension:l.tension}:{});return f?(x=Object.assign(Object.assign(Object.assign({},x),p),{ariaRoleDescription:"errorband"}),h=Object.assign(Object.assign(Object.assign({},h),p),{aria:!1})):l.interpolate?Re(qse("interpolate")):l.tension&&Re(qse("tension")),Object.assign(Object.assign({},u),{transform:n,layer:[...c({partName:"band",mark:x,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:a}),...c({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:a}),...c({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:a})]})}const eue={};function r7(t,e,n){const r=new pN(t,e);eue[t]={normalizer:r,parts:n}}function nKe(){return Te(eue)}r7(EN,Woe,zXe),r7(t7,Xoe,WXe),r7(n7,Zoe,eKe);const rKe=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],tue={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"},nue={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"},iKe=Te(tue),sKe=Te(nue),rue=Te({header:1,headerRow:1,headerColumn:1,headerFacet:1}),iue=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],oKe={gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},uKe={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},x3="_vgsid_",aKe={point:{on:"click",fields:[x3],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[mousedown, window:mouseup] > window:mousemove!",encodings:["x","y"],translate:"[mousedown, window:mouseup] > window:mousemove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function i7(t){return!!t&&(t==="legend"||!!t.legend)}function s7(t){return i7(t)&&He(t)}function o7(t){return!!t.select}var lKe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function sue(t){const e=[];for(const n of t||[]){if(o7(n))continue;const{expr:r,bind:i}=n,s=lKe(n,["expr","bind"]);if(i&&r){const o=Object.assign(Object.assign({},s),{bind:i,init:r});e.push(o)}else{const o=Object.assign(Object.assign(Object.assign({},s),r?{update:r}:{}),i?{bind:i}:{});e.push(o)}}return e}function cKe(t){return AN(t)||a7(t)||u7(t)}function u7(t){return"concat"in t}function AN(t){return"vconcat"in t}function a7(t){return"hconcat"in t}function oue({step:t,offsetIsDiscrete:e}){var n;return e?(n=t.for)!==null&&n!==void 0?n:"offset":"position"}function Fa(t){return He(t)&&t.step!==void 0}function uue(t){return t.view||t.width||t.height}const aue=20,fKe=Te({align:1,bounds:1,center:1,columns:1,spacing:1});function xKe(t,e,n){var r,i;const s=n[e],o={},{spacing:u,columns:a}=s;u!==void 0&&(o.spacing=u),a!==void 0&&(uN(t)&&!a3(t.facet)||u7(t))&&(o.columns=a),AN(t)&&(o.columns=1);for(const l of fKe)if(t[l]!==void 0)if(l==="spacing"){const c=t[l];o[l]=tn(c)?c:{row:(r=c.row)!==null&&r!==void 0?r:u,column:(i=c.column)!==null&&i!==void 0?i:u}}else o[l]=t[l];return o}var dKe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function l7(t,e){var n;return(n=t[e])!==null&&n!==void 0?n:t[e==="width"?"continuousWidth":"continuousHeight"]}function SN(t,e){const n=vN(t,e);return Fa(n)?n.step:lue}function vN(t,e){var n;const r=(n=t[e])!==null&&n!==void 0?n:t[e==="width"?"discreteWidth":"discreteHeight"];return nr(r,{step:t.step})}const lue=20,hKe={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:lue},mark:lXe,arc:{},area:{},bar:fXe,circle:{},geoshape:{},image:{},line:{},point:{},rect:xXe,rule:{color:"black"},square:{},text:{color:"black"},tick:dXe,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:WYe,projection:{},legend:oKe,header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:aKe,style:{},title:{},facet:{spacing:aue},concat:{spacing:aue}},e0=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],cue={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},fue={blue:e0[0],orange:e0[1],red:e0[2],teal:e0[3],green:e0[4],yellow:e0[5],purple:e0[6],pink:e0[7],brown:e0[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 pKe(t={}){return{signals:[{name:"color",value:He(t)?Object.assign(Object.assign({},fue),t):fue}],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"}]}}}function gKe(t){return{signals:[{name:"fontSize",value:He(t)?Object.assign(Object.assign({},cue),t):cue}],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"}}}}}function mKe(t){return{text:{font:t},style:{"guide-label":{font:t},"guide-title":{font:t},"group-title":{font:t},"group-subtitle":{font:t}}}}function xue(t){const e=Te(t||{}),n={};for(const r of e){const i=t[r];n[r]=f3(i)?Ase(i):Ms(i)}return n}function yKe(t){const e=Te(t),n={};for(const r of e)n[r]=xue(t[r]);return n}const EKe=[...foe,...Poe,...rue,"background","padding","legend","lineBreak","scale","style","title","view"];function due(t={}){const{color:e,font:n,fontSize:r,selection:i}=t,s=dKe(t,["color","font","fontSize","selection"]),o=G4({},ut(hKe),n?mKe(n):{},e?pKe(e):{},r?gKe(r):{},s||{});i&&Sb(o,"selection",i,!0);const u=Ao(o,EKe);for(const a of["background","lineBreak","padding"])o[a]&&(u[a]=Ms(o[a]));for(const a of foe)o[a]&&(u[a]=xs(o[a]));for(const a of Poe)o[a]&&(u[a]=xue(o[a]));for(const a of rue)o[a]&&(u[a]=xs(o[a]));return o.legend&&(u.legend=xs(o.legend)),o.scale&&(u.scale=xs(o.scale)),o.style&&(u.style=yKe(o.style)),o.title&&(u.title=xs(o.title)),o.view&&(u.view=xs(o.view)),u}const AKe=new Set(["view",...iXe]),SKe=["color","fontSize","background","padding","facet","concat","numberFormat","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],vKe=Object.assign({view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"]},aXe);function _Ke(t){t=ut(t);for(const e of SKe)delete t[e];if(t.axis)for(const e in t.axis)f3(t.axis[e])&&delete t.axis[e];if(t.legend)for(const e of rKe)delete t.legend[e];if(t.mark){for(const e of coe)delete t.mark[e];t.mark.tooltip&&He(t.mark.tooltip)&&delete t.mark.tooltip}t.params&&(t.signals=(t.signals||[]).concat(sue(t.params)),delete t.params);for(const e of AKe){for(const r of coe)delete t[e][r];const n=vKe[e];if(n)for(const r of n)delete t[e][r];bKe(t,e)}for(const e of nKe())delete t[e];CKe(t);for(const e in t)He(t[e])&&Gt(t[e])&&delete t[e];return Gt(t)?void 0:t}function CKe(t){const{titleMarkConfig:e,subtitleMarkConfig:n,subtitle:r}=Ese(t.title);Gt(e)||(t.style["group-title"]=Object.assign(Object.assign({},t.style["group-title"]),e)),Gt(n)||(t.style["group-subtitle"]=Object.assign(Object.assign({},t.style["group-subtitle"]),n)),Gt(r)?delete t.title:t.title=r}function bKe(t,e,n,r){const i=r?t[e][r]:t[e];e==="view"&&(n="cell");const s=Object.assign(Object.assign({},i),t.style[n??e]);Gt(s)||(t.style[n??e]=s),r||delete t[e]}function _N(t){return"layer"in t}function TKe(t){return"repeat"in t}function RKe(t){return!_e(t.repeat)&&t.repeat.layer}var OKe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class c7{map(e,n){return uN(e)?this.mapFacet(e,n):TKe(e)?this.mapRepeat(e,n):a7(e)?this.mapHConcat(e,n):AN(e)?this.mapVConcat(e,n):u7(e)?this.mapConcat(e,n):this.mapLayerOrUnit(e,n)}mapLayerOrUnit(e,n){if(_N(e))return this.mapLayer(e,n);if(Zl(e))return this.mapUnit(e,n);throw new Error(x8(e))}mapLayer(e,n){return Object.assign(Object.assign({},e),{layer:e.layer.map(r=>this.mapLayerOrUnit(r,n))})}mapHConcat(e,n){return Object.assign(Object.assign({},e),{hconcat:e.hconcat.map(r=>this.map(r,n))})}mapVConcat(e,n){return Object.assign(Object.assign({},e),{vconcat:e.vconcat.map(r=>this.map(r,n))})}mapConcat(e,n){const{concat:r}=e,i=OKe(e,["concat"]);return Object.assign(Object.assign({},i),{concat:r.map(s=>this.map(s,n))})}mapFacet(e,n){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,n)})}mapRepeat(e,n){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,n)})}}const NKe={zero:1,center:1,normalize:1};function DKe(t){return t in NKe}const FKe=new Set([ooe,eN,ZO,rN,nN,L8,I8,tN,uoe,w8]),wKe=new Set([eN,ZO,ooe]);function O2(t){return Ie(t)&&H8(t)==="quantitative"&&!t.bin}function hue(t,e){var n,r;const i=e==="x"?"y":"radius",s=t[e],o=t[i];if(Ie(s)&&Ie(o))if(O2(s)&&O2(o)){if(s.stack)return e;if(o.stack)return i;const u=Ie(s)&&!!s.aggregate,a=Ie(o)&&!!o.aggregate;if(u!==a)return u?e:i;{const l=(n=s.scale)===null||n===void 0?void 0:n.type,c=(r=o.scale)===null||r===void 0?void 0:r.type;if(l&&l!=="linear")return i;if(c&&c!=="linear")return e}}else{if(O2(s))return e;if(O2(o))return i}else{if(O2(s))return e;if(O2(o))return i}}function LKe(t){switch(t){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}function pue(t,e,n={}){var r,i;const s=Ta(t)?t.type:t;if(!FKe.has(s))return null;const o=hue(e,"x")||hue(e,"theta");if(!o)return null;const u=e[o],a=Ie(u)?$e(u,{}):void 0,l=LKe(o),c=[],f=new Set;if(e[l]){const p=e[l],m=Ie(p)?$e(p,{}):void 0;m&&m!==a&&(c.push(l),f.add(m));const g=l==="x"?"xOffset":"yOffset",y=e[g],E=Ie(y)?$e(y,{}):void 0;E&&E!==a&&(c.push(g),f.add(E))}const x=YWe.reduce((p,m)=>{if(m!=="tooltip"&&bd(e,m)){const g=e[m];for(const y of Pe(g)){const E=Da(y);if(E.aggregate)continue;const A=$e(E,{});(!A||!f.has(A))&&p.push({channel:m,fieldDef:E})}}return p},[]);let h;if(u.stack!==void 0?yp(u.stack)?h=u.stack?"zero":null:h=u.stack:wKe.has(s)&&(h="zero"),!h||!DKe(h)||X8(e)&&x.length===0)return null;if(!((r=u==null?void 0:u.scale)===null||r===void 0)&&r.type&&((i=u==null?void 0:u.scale)===null||i===void 0?void 0:i.type)!==ds.LINEAR){if(n.disallowNonLinearStack)return null;Re(fYe(u.scale.type))}return st(e[Yl(o)])?(u.stack!==void 0&&Re(cYe(o)),null):(Ie(u)&&u.aggregate&&!uVe.has(u.aggregate)&&Re(xYe(u.aggregate)),{groupbyChannels:c,groupbyFields:f,fieldChannel:o,impute:u.impute===null?!1:kc(s),stackBy:x,offset:h})}var gue=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function IKe(t){const e=gue(t,["point","line"]);return Te(e).length>1?e:e.type}function $Ke(t){for(const e of["line","area","rule","trail"])t[e]&&(t=Object.assign(Object.assign({},t),{[e]:Ao(t[e],["point","line"])}));return t}function f7(t,e={},n){return t.point==="transparent"?{opacity:0}:t.point?He(t.point)?t.point:{}:t.point!==void 0?null:e.point||n.shape?He(e.point)?e.point:{}:void 0}function mue(t,e={}){return t.line?t.line===!0?{}:t.line:t.line!==void 0?null:e.line?e.line===!0?{}:e.line:void 0}class BKe{constructor(){this.name="path-overlay"}hasMatchingType(e,n){if(Zl(e)){const{mark:r,encoding:i}=e,s=Ta(r)?r:{type:r};switch(s.type){case"line":case"rule":case"trail":return!!f7(s,n[s.type],i);case"area":return!!f7(s,n[s.type],i)||!!mue(s,n[s.type])}}return!1}run(e,n,r){const{config:i}=n,{params:s,projection:o,mark:u,encoding:a}=e,l=gue(e,["params","projection","mark","encoding"]),c=gN(a,i),f=Ta(u)?u:{type:u},x=f7(f,i[f.type],c),h=f.type==="area"&&mue(f,i[f.type]),p=[Object.assign(Object.assign({},s?{params:s}:{}),{mark:IKe(Object.assign(Object.assign({},f.type==="area"&&f.opacity===void 0&&f.fillOpacity===void 0?{opacity:.7}:{}),f)),encoding:Ao(c,["shape"])})],m=pue(f,c);let g=c;if(m){const{fieldChannel:y,offset:E}=m;g=Object.assign(Object.assign({},c),{[y]:Object.assign(Object.assign({},c[y]),E?{stack:E}:{})})}return h&&p.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"line"},JE(f,["clip","interpolate","tension","tooltip"])),h),encoding:g})),x&&p.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"point",opacity:1,filled:!0},JE(f,["clip","tooltip"])),x),encoding:g})),r(Object.assign(Object.assign({},l),{layer:p}),Object.assign(Object.assign({},n),{config:$Ke(i)}))}}var kKe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function PKe(t,e){return e?a3(t)?Sue(t,e):yue(t,e):t}function x7(t,e){return e?Sue(t,e):t}function d7(t,e,n){const r=e[t];if(_Xe(r)){if(r.repeat in n)return Object.assign(Object.assign({},e),{[t]:n[r.repeat]});Re(TVe(r.repeat));return}return e}function yue(t,e){if(t=d7("field",t,e),t!==void 0){if(t===null)return null;if(q8(t)&&Ra(t.sort)){const n=d7("field",t.sort,e);t=Object.assign(Object.assign({},t),n?{sort:n}:{})}return t}}function Eue(t,e){if(Ie(t))return yue(t,e);{const n=d7("datum",t,e);return n!==t&&!n.type&&(n.type="nominal"),n}}function Aue(t,e){if(st(t)){const n=Eue(t,e);if(n)return n;if(aN(t))return{condition:t.condition}}else{if(l3(t)){const n=Eue(t.condition,e);return n?Object.assign(Object.assign({},t),{condition:n}):kKe(t,["condition"])}return t}}function Sue(t,e){const n={};for(const r in t)if(Je(t,r)){const i=t[r];if(_e(i))n[r]=i.map(s=>Aue(s,e)).filter(s=>s);else{const s=Aue(i,e);s!==void 0&&(n[r]=s)}}return n}class MKe{constructor(){this.name="RuleForRangedLine"}hasMatchingType(e){if(Zl(e)){const{encoding:n,mark:r}=e;if(r==="line"||Ta(r)&&r.type==="line")for(const i of GWe){const s=md(i),o=n[s];if(n[i]&&(Ie(o)&&!Bi(o.bin)||Oa(o)))return!0}}return!1}run(e,n,r){const{encoding:i,mark:s}=e;return Re(WVe(!!i.x2,!!i.y2)),r(Object.assign(Object.assign({},e),{mark:He(s)?Object.assign(Object.assign({},s),{type:"rule"}):"rule"}),n)}}var Pc=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class jKe extends c7{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[QXe,VXe,tKe,new BKe,new MKe]}map(e,n){if(Zl(e)){const r=bd(e.encoding,Hl),i=bd(e.encoding,zl),s=bd(e.encoding,qO);if(r||i||s)return this.mapFacetedUnit(e,n)}return super.map(e,n)}mapUnit(e,n){const{parentEncoding:r,parentProjection:i}=n,s=x7(e.encoding,n.repeater),o=Object.assign(Object.assign({},e),s?{encoding:s}:{});if(r||i)return this.mapUnitWithParentEncodingOrProjection(o,n);const u=this.mapLayerOrUnit.bind(this);for(const a of this.nonFacetUnitNormalizers)if(a.hasMatchingType(o,n.config))return a.run(o,n,u);return o}mapRepeat(e,n){return RKe(e)?this.mapLayerRepeat(e,n):this.mapNonLayerRepeat(e,n)}mapLayerRepeat(e,n){const{repeat:r,spec:i}=e,s=Pc(e,["repeat","spec"]),{row:o,column:u,layer:a}=r,{repeater:l={},repeaterPrefix:c=""}=n;return o||u?this.mapRepeat(Object.assign(Object.assign({},e),{repeat:Object.assign(Object.assign({},o?{row:o}:{}),u?{column:u}:{}),spec:{repeat:{layer:a},spec:i}}),n):Object.assign(Object.assign({},s),{layer:a.map(f=>{const x=Object.assign(Object.assign({},l),{layer:f}),h=`${(i.name||"")+c}child__layer_${gn(f)}`,p=this.mapLayerOrUnit(i,Object.assign(Object.assign({},n),{repeater:x,repeaterPrefix:h}));return p.name=h,p})})}mapNonLayerRepeat(e,n){var r;const{repeat:i,spec:s,data:o}=e,u=Pc(e,["repeat","spec","data"]);!_e(i)&&e.columns&&(e=Ao(e,["columns"]),Re(Ise("repeat")));const a=[],{repeater:l={},repeaterPrefix:c=""}=n,f=!_e(i)&&i.row||[l?l.row:null],x=!_e(i)&&i.column||[l?l.column:null],h=_e(i)&&i||[l?l.repeat:null];for(const m of h)for(const g of f)for(const y of x){const E={repeat:m,row:g,column:y,layer:l.layer},A=(s.name||"")+c+"child__"+(_e(i)?`${gn(m)}`:(i.row?`row_${gn(g)}`:"")+(i.column?`column_${gn(y)}`:"")),S=this.map(s,Object.assign(Object.assign({},n),{repeater:E,repeaterPrefix:A}));S.name=A,a.push(Ao(S,["data"]))}const p=_e(i)?e.columns:i.column?i.column.length:1;return Object.assign(Object.assign({data:(r=s.data)!==null&&r!==void 0?r:o,align:"all"},u),{columns:p,concat:a})}mapFacet(e,n){const{facet:r}=e;return a3(r)&&e.columns&&(e=Ao(e,["columns"]),Re(Ise("facet"))),super.mapFacet(e,n)}mapUnitWithParentEncodingOrProjection(e,n){const{encoding:r,projection:i}=e,{parentEncoding:s,parentProjection:o,config:u}=n,a=_ue({parentProjection:o,projection:i}),l=vue({parentEncoding:s,encoding:x7(r,n.repeater)});return this.mapUnit(Object.assign(Object.assign(Object.assign({},e),a?{projection:a}:{}),l?{encoding:l}:{}),{config:u})}mapFacetedUnit(e,n){const r=e.encoding,{row:i,column:s,facet:o}=r,u=Pc(r,["row","column","facet"]),{mark:a,width:l,projection:c,height:f,view:x,params:h,encoding:p}=e,m=Pc(e,["mark","width","projection","height","view","params","encoding"]),{facetMapping:g,layout:y}=this.getFacetMappingAndLayout({row:i,column:s,facet:o},n),E=x7(u,n.repeater);return this.mapFacet(Object.assign(Object.assign(Object.assign({},m),y),{facet:g,spec:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},l?{width:l}:{}),f?{height:f}:{}),x?{view:x}:{}),c?{projection:c}:{}),{mark:a,encoding:E}),h?{params:h}:{})}),n)}getFacetMappingAndLayout(e,n){var r;const{row:i,column:s,facet:o}=e;if(i||s){o&&Re(QVe([...i?[Hl]:[],...s?[zl]:[]]));const u={},a={};for(const l of[Hl,zl]){const c=e[l];if(c){const f=Pc(c,["align","center","spacing","columns"]);u[l]=f;for(const x of["align","center","spacing"])c[x]!==void 0&&((r=a[x])!==null&&r!==void 0||(a[x]={}),a[x][l]=c[x])}}return{facetMapping:u,layout:a}}else{const{align:u,center:a,spacing:l,columns:c}=o,f=Pc(o,["align","center","spacing","columns"]);return{facetMapping:PKe(f,n.repeater),layout:Object.assign(Object.assign(Object.assign(Object.assign({},u?{align:u}:{}),a?{center:a}:{}),l?{spacing:l}:{}),c?{columns:c}:{})}}}mapLayer(e,n){var{parentEncoding:r,parentProjection:i}=n,s=Pc(n,["parentEncoding","parentProjection"]);const{encoding:o,projection:u}=e,a=Pc(e,["encoding","projection"]),l=Object.assign(Object.assign({},s),{parentEncoding:vue({parentEncoding:r,encoding:o,layer:!0}),parentProjection:_ue({parentProjection:i,projection:u})});return super.mapLayer(a,l)}}function vue({parentEncoding:t,encoding:e={},layer:n}){let r={};if(t){const i=new Set([...Te(t),...Te(e)]);for(const s of i){const o=e[s],u=t[s];if(st(o)){const a=Object.assign(Object.assign({},u),o);r[s]=a}else l3(o)?r[s]=Object.assign(Object.assign({},o),{condition:Object.assign(Object.assign({},u),o.condition)}):o||o===null?r[s]=o:(n||fu(u)||Ye(u)||st(u)||_e(u))&&(r[s]=u)}}else r=e;return!r||Gt(r)?void 0:r}function _ue(t){const{parentProjection:e,projection:n}=t;return e&&n&&Re(wVe({parentProjection:e,projection:n})),n??e}function h7(t){return"filter"in t}function UKe(t){return(t==null?void 0:t.stop)!==void 0}function Cue(t){return"lookup"in t}function qKe(t){return"data"in t}function HKe(t){return"param"in t}function zKe(t){return"pivot"in t}function QKe(t){return"density"in t}function GKe(t){return"quantile"in t}function WKe(t){return"regression"in t}function VKe(t){return"loess"in t}function YKe(t){return"sample"in t}function XKe(t){return"window"in t}function KKe(t){return"joinaggregate"in t}function JKe(t){return"flatten"in t}function ZKe(t){return"calculate"in t}function bue(t){return"bin"in t}function eJe(t){return"impute"in t}function tJe(t){return"timeUnit"in t}function nJe(t){return"aggregate"in t}function rJe(t){return"stack"in t}function iJe(t){return"fold"in t}function sJe(t){return t.map(e=>h7(e)?{filter:h2(e.filter,MYe)}:e)}var Mc=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class oJe extends c7{map(e,n){var r,i;return(r=n.emptySelections)!==null&&r!==void 0||(n.emptySelections={}),(i=n.selectionPredicates)!==null&&i!==void 0||(n.selectionPredicates={}),e=Tue(e,n),super.map(e,n)}mapLayerOrUnit(e,n){if(e=Tue(e,n),e.encoding){const r={};for(const[i,s]of hd(e.encoding))r[i]=Rue(s,n);e=Object.assign(Object.assign({},e),{encoding:r})}return super.mapLayerOrUnit(e,n)}mapUnit(e,n){const r=e,{selection:i}=r,s=Mc(r,["selection"]);return i?Object.assign(Object.assign({},s),{params:hd(i).map(([o,u])=>{var a;const l=u,{init:c,bind:f,empty:x}=l,h=Mc(l,["init","bind","empty"]);h.type==="single"?(h.type="point",h.toggle=!1):h.type==="multi"&&(h.type="point"),n.emptySelections[o]=x!=="none";for(const p of $i((a=n.selectionPredicates[o])!==null&&a!==void 0?a:{}))p.empty=x!=="none";return{name:o,value:c,select:h,bind:f}})}):e}}function Tue(t,e){const{transform:n}=t,r=Mc(t,["transform"]);if(n){const i=n.map(s=>{if(h7(s))return{filter:p7(s,e)};if(bue(s)&&yd(s.bin))return Object.assign(Object.assign({},s),{bin:Oue(s.bin)});if(Cue(s)){const o=s.from,{selection:u}=o,a=Mc(o,["selection"]);return u?Object.assign(Object.assign({},s),{from:Object.assign({param:u},a)}):s}return s});return Object.assign(Object.assign({},r),{transform:i})}return t}function Rue(t,e){var n,r;const i=ut(t);if(Ie(i)&&yd(i.bin)&&(i.bin=Oue(i.bin)),Cd(i)&&(!((r=(n=i.scale)===null||n===void 0?void 0:n.domain)===null||r===void 0)&&r.selection)){const s=i.scale.domain,{selection:o}=s,u=Mc(s,["selection"]);i.scale.domain=Object.assign(Object.assign({},u),o?{param:o}:{})}if(aN(i))if(_e(i.condition))i.condition=i.condition.map(s=>{const{selection:o,param:u,test:a}=s,l=Mc(s,["selection","param","test"]);return u?s:Object.assign(Object.assign({},l),{test:p7(s,e)})});else{const s=Rue(i.condition,e),{selection:o,param:u,test:a}=s,l=Mc(s,["selection","param","test"]);i.condition=u?i.condition:Object.assign(Object.assign({},l),{test:p7(i.condition,e)})}return i}function Oue(t){const e=t.extent;if(e!=null&&e.selection){const{selection:n}=e,r=Mc(e,["selection"]);return Object.assign(Object.assign({},t),{extent:Object.assign(Object.assign({},r),{param:n})})}return t}function p7(t,e){const n=r=>h2(r,i=>{var s,o,u;const a=(s=e.emptySelections[i])!==null&&s!==void 0?s:!0,l={param:i,empty:a};return(o=(u=e.selectionPredicates)[i])!==null&&o!==void 0||(u[i]=[]),e.selectionPredicates[i].push(l),l});return t.selection?n(t.selection):h2(t.test||t.filter,r=>r.selection?n(r.selection):r)}class g7 extends c7{map(e,n){var r;const i=(r=n.selections)!==null&&r!==void 0?r:[];if(e.params&&!Zl(e)){const s=[];for(const o of e.params)o7(o)?i.push(o):s.push(o);e.params=s}return n.selections=i,super.map(e,Nue(e,n))}mapUnit(e,n){var r;const i=n.selections;if(!i||!i.length)return e;const s=((r=n.path)!==null&&r!==void 0?r:[]).concat(e.name),o=[];for(const u of i)if(!u.views||!u.views.length)o.push(u);else for(const a of u.views)(je(a)&&(a===e.name||s.indexOf(a)>=0)||_e(a)&&a.map(l=>s.indexOf(l)).every((l,c,f)=>l!==-1&&(c===0||l>f[c-1])))&&o.push(u);return o.length&&(e.params=o),e}}for(const t of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const e=g7.prototype[t];g7.prototype[t]=function(n,r){return e.call(this,n,Nue(n,r))}}function Nue(t,e){var n;return t.name?Object.assign(Object.assign({},e),{path:((n=e.path)!==null&&n!==void 0?n:[]).concat(t.name)}):e}function uJe(t,e){e===void 0&&(e=due(t.config));const n=fJe(t,e),{width:r,height:i}=t,s=xJe(n,{width:r,height:i,autosize:t.autosize},e);return Object.assign(Object.assign({},n),s?{autosize:s}:{})}const aJe=new jKe,lJe=new oJe,cJe=new g7;function fJe(t,e={}){const n={config:e};return cJe.map(aJe.map(lJe.map(t,n),n),n)}function Due(t){return je(t)?{type:t}:t??{}}function xJe(t,e,n){let{width:r,height:i}=e;const s=Zl(t)||_N(t),o={};s?r=="container"&&i=="container"?(o.type="fit",o.contains="padding"):r=="container"?(o.type="fit-x",o.contains="padding"):i=="container"&&(o.type="fit-y",o.contains="padding"):(r=="container"&&(Re(Nse("width")),r=void 0),i=="container"&&(Re(Nse("height")),i=void 0));const u=Object.assign(Object.assign(Object.assign({type:"pad"},o),n?Due(n.autosize):{}),Due(t.autosize));if(u.type==="fit"&&!s&&(Re(gVe),u.type="pad"),r=="container"&&!(u.type=="fit"||u.type=="fit-x")&&Re(Dse("width")),i=="container"&&!(u.type=="fit"||u.type=="fit-y")&&Re(Dse("height")),!Ul(u,{type:"pad"}))return u}function dJe(t){return t==="fit"||t==="fit-x"||t==="fit-y"}function hJe(t){return t?`fit-${WO(t)}`:"fit"}const pJe=["background","padding"];function Fue(t,e){const n={};for(const r of pJe)t&&t[r]!==void 0&&(n[r]=Ms(t[r]));return e&&(n.params=t.params),n}class t0{constructor(e={},n={}){this.explicit=e,this.implicit=n}clone(){return new t0(ut(this.explicit),ut(this.implicit))}combine(){return Object.assign(Object.assign({},this.explicit),this.implicit)}get(e){return nr(this.explicit[e],this.implicit[e])}getWithExplicit(e){return this.explicit[e]!==void 0?{explicit:!0,value:this.explicit[e]}:this.implicit[e]!==void 0?{explicit:!1,value:this.implicit[e]}:{explicit:!1,value:void 0}}setWithExplicit(e,{value:n,explicit:r}){n!==void 0&&this.set(e,n,r)}set(e,n,r){return delete this[r?"implicit":"explicit"][e],this[r?"explicit":"implicit"][e]=n,this}copyKeyFromSplit(e,{explicit:n,implicit:r}){n[e]!==void 0?this.set(e,n[e],!0):r[e]!==void 0&&this.set(e,r[e],!1)}copyKeyFromObject(e,n){n[e]!==void 0&&this.set(e,n[e],!0)}copyAll(e){for(const n of Te(e.combine())){const r=e.getWithExplicit(n);this.setWithExplicit(n,r)}}}function wa(t){return{explicit:!0,value:t}}function Us(t){return{explicit:!1,value:t}}function wue(t){return(e,n,r,i)=>{const s=t(e.value,n.value);return s>0?e:s<0?n:CN(e,n,r,i)}}function CN(t,e,n,r){return t.explicit&&e.explicit&&Re(rYe(n,r,t.value,e.value)),t}function jc(t,e,n,r,i=CN){return t===void 0||t.value===void 0?e:t.explicit&&!e.explicit?t:e.explicit&&!t.explicit?e:Ul(t.value,e.value)?t:i(t,e,n,r)}class gJe extends t0{constructor(e={},n={},r=!1){super(e,n),this.explicit=e,this.implicit=n,this.parseNothing=r}clone(){const e=super.clone();return e.parseNothing=this.parseNothing,e}}function N2(t){return"url"in t}function d3(t){return"values"in t}function Lue(t){return"name"in t&&!N2(t)&&!d3(t)&&!Uc(t)}function Uc(t){return t&&(Iue(t)||$ue(t)||m7(t))}function Iue(t){return"sequence"in t}function $ue(t){return"sphere"in t}function m7(t){return"graticule"in t}var Kt;(function(t){t[t.Raw=0]="Raw",t[t.Main=1]="Main",t[t.Row=2]="Row",t[t.Column=3]="Column",t[t.Lookup=4]="Lookup"})(Kt||(Kt={}));var mJe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function D2(t,e=!0,n=mi){if(_e(t)){const r=t.map(i=>D2(i,e,n));return e?`[${r.join(", ")}]`:r}else if(Ad(t))return n(e?s3(t):OYe(t));return e?n(rn(t)):t}function yJe(t,e){var n;for(const r of $i((n=t.component.selection)!==null&&n!==void 0?n:{})){const i=r.name;let s=`${i}${zc}, ${r.resolve==="global"?"true":`{unit: ${L2(t)}}`}`;for(const o of NN)o.defined(r)&&(o.signals&&(e=o.signals(t,r,e)),o.modifyExpr&&(s=o.modifyExpr(t,r,s)));e.push({name:i+KJe,on:[{events:{signal:r.name+zc},update:`modify(${we(r.name+Td)}, ${s})`}]})}return y7(e)}function EJe(t,e){if(t.component.selection&&Te(t.component.selection).length){const n=we(t.getName("cell"));e.unshift({name:"facet",value:{},on:[{events:ad("mousemove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return y7(e)}function AJe(t,e){var n;let r=!1;for(const i of $i((n=t.component.selection)!==null&&n!==void 0?n:{})){const s=i.name,o=we(s+Td);if(e.filter(a=>a.name===s).length===0){const a=i.resolve==="global"?"union":i.resolve,l=i.type==="point"?", true, true)":")";e.push({name:i.name,update:`${iae}(${o}, ${we(a)}${l}`})}r=!0;for(const a of NN)a.defined(i)&&a.topLevelSignals&&(e=a.topLevelSignals(t,i,e))}return r&&e.filter(s=>s.name==="unit").length===0&&e.unshift({name:"unit",value:{},on:[{events:"mousemove",update:"isTuple(group()) ? group() : unit"}]}),y7(e)}function SJe(t,e){var n;const r=[...e];for(const i of $i((n=t.component.selection)!==null&&n!==void 0?n:{})){const s={name:i.name+Td};if(i.init){const u=i.project.items.map(a=>mJe(a,["signals"]));s.values=i.init.map(a=>({unit:L2(t,{escape:!1}),fields:u,values:D2(a,!1)}))}r.filter(u=>u.name===i.name+Td).length||r.push(s)}return r}function Bue(t,e){var n;for(const r of $i((n=t.component.selection)!==null&&n!==void 0?n:{}))for(const i of NN)i.defined(r)&&i.marks&&(e=i.marks(t,r,e));return e}function vJe(t,e){for(const n of t.children)zn(n)&&(e=Bue(n,e));return e}function _Je(t,e,n,r){const i=lae(t,e.param,e);return{signal:js(n.get("type"))&&_e(r)&&r[0]>r[1]?`isValid(${i}) && reverse(${i})`:i}}function y7(t){return t.map(e=>(e.on&&!e.on.length&&delete e.on,e))}class Ut{constructor(e,n){this.debugName=n,this._children=[],this._parent=null,e&&(this.parent=e)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(e){this._parent=e,e&&e.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(e,n){if(this._children.includes(e)){Re(NVe);return}n!==void 0?this._children.splice(n,0,e):this._children.push(e)}removeChild(e){const n=this._children.indexOf(e);return this._children.splice(n,1),n}remove(){let e=this._parent.removeChild(this);for(const n of this._children)n._parent=this._parent,this._parent.addChild(n,e++)}insertAsParentOf(e){const n=e.parent;n.removeChild(this),this.parent=n,e.parent=this}swapWithParent(){const e=this._parent,n=e.parent;for(const r of this._children)r.parent=e;this._children=[],e.removeChild(this),e.parent.removeChild(e),this.parent=n,e.parent=this}}class Mi extends Ut{constructor(e,n,r,i){super(e,n),this.type=r,this.refCounts=i,this._source=this._name=n,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}clone(){const e=new this.constructor;return e.debugName=`clone_${this.debugName}`,e._source=this._source,e._name=`clone_${this._name}`,e.type=this.type,e.refCounts=this.refCounts,e.refCounts[e._name]=0,e}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${$We()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(e){this._source=e}}var kue=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class La extends Ut{constructor(e,n){super(e),this.formula=n}clone(){return new La(null,ut(this.formula))}static makeFromEncoding(e,n){const r=n.reduceFieldDef((i,s)=>{const{field:o,timeUnit:u}=s;if(u){const a=$e(s,{forAs:!0});i[Ct({as:a,field:o,timeUnit:u})]={as:a,field:o,timeUnit:u}}return i},{});return Gt(r)?null:new La(e,r)}static makeFromTransform(e,n){const r=Object.assign({},n),{timeUnit:i}=r,s=kue(r,["timeUnit"]),o=ki(i),u=Object.assign(Object.assign({},s),{timeUnit:o});return new La(e,{[Ct(u)]:u})}merge(e){this.formula=Object.assign({},this.formula);for(const n in e.formula)this.formula[n]||(this.formula[n]=e.formula[n]);for(const n of e.children)e.removeChild(n),n.parent=this;e.remove()}removeFormulas(e){const n={};for(const[r,i]of hd(this.formula))e.has(i.as)||(n[r]=i);this.formula=n}producedFields(){return new Set($i(this.formula).map(e=>e.as))}dependentFields(){return new Set($i(this.formula).map(e=>e.field))}hash(){return`TimeUnit ${Ct(this.formula)}`}assemble(){const e=[];for(const n of $i(this.formula)){const{field:r,as:i,timeUnit:s}=n,o=ki(s),{unit:u,utc:a}=o,l=kue(o,["unit","utc"]);e.push(Object.assign(Object.assign(Object.assign(Object.assign({field:ou(r),type:"timeunit"},u?{units:E8(u)}:{}),a?{timezone:"utc"}:{}),l),{as:[i,`${i}_end`]}))}return e}}var CJe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const h3="_tuple_fields";class bJe{constructor(...e){this.items=e,this.hasChannel={},this.hasField={}}}const TJe={defined:()=>!0,parse:(t,e,n)=>{var r;const i=e.name,s=(r=e.project)!==null&&r!==void 0?r:e.project=new bJe,o={},u={},a=new Set,l=(m,g)=>{const y=g==="visual"?m.channel:m.field;let E=gn(`${i}_${y}`);for(let A=1;a.has(E);A++)E=gn(`${i}_${y}_${A}`);return a.add(E),{[g]:E}},c=e.type,f=t.config.selection[c],x=n.value!==void 0?Pe(n.value):null;let{fields:h,encodings:p}=He(n.select)?n.select:{};if(!h&&!p&&x){for(const m of x)if(He(m))for(const g of Te(m))QWe(g)?(p||(p=[])).push(g):c==="interval"?(Re(bVe),p=f.encodings):(h||(h=[])).push(g)}!h&&!p&&(p=f.encodings,"fields"in f&&(h=f.fields));for(const m of p??[]){const g=t.fieldDef(m);if(g){let y=g.field;if(g.aggregate){Re(mVe(m,g.aggregate));continue}else if(!y){Re(wse(m));continue}if(g.timeUnit){y=t.vgField(m);const E={timeUnit:g.timeUnit,as:y,field:g.field};u[Ct(E)]=E}if(!o[y]){let E="E";if(c==="interval"){const S=t.getScaleComponent(m).get("type");js(S)&&(E="R")}else g.bin&&(E="R-RE");const A={field:y,channel:m,type:E};A.signals=Object.assign(Object.assign({},l(A,"data")),l(A,"visual")),s.items.push(o[y]=A),s.hasField[y]=s.hasChannel[m]=o[y]}}else Re(wse(m))}for(const m of h??[]){if(s.hasField[m])continue;const g={type:"E",field:m};g.signals=Object.assign({},l(g,"data")),s.items.push(g),s.hasField[m]=g}x&&(e.init=x.map(m=>s.items.map(g=>He(m)?m[g.channel]!==void 0?m[g.channel]:m[g.field]:m))),Gt(u)||(s.timeUnit=new La(null,u))},signals:(t,e,n)=>{const r=e.name+h3;return n.filter(s=>s.name===r).length>0?n:n.concat({name:r,value:e.project.items.map(s=>{const o=CJe(s,["signals","hasLegend"]);return o.field=ou(o.field),o})})}},qc={defined:t=>t.type==="interval"&&t.resolve==="global"&&t.bind&&t.bind==="scales",parse:(t,e)=>{const n=e.scales=[];for(const r of e.project.items){const i=r.channel;if(!Lc(i))continue;const s=t.getScaleComponent(i),o=s?s.get("type"):void 0;if(!s||!js(o)){Re(AVe);continue}s.set("selectionExtent",{param:e.name,field:r.field},!0),n.push(r)}},topLevelSignals:(t,e,n)=>{const r=e.scales.filter(o=>n.filter(u=>u.name===o.signals.data).length===0);if(!t.parent||A7(t)||r.length===0)return n;const i=n.filter(o=>o.name===e.name)[0];let s=i.update;if(s.indexOf(iae)>=0)i.update=`{${r.map(o=>`${we(ou(o.field))}: ${o.signals.data}`).join(", ")}}`;else{for(const o of r){const u=`${we(ou(o.field))}: ${o.signals.data}`;s.includes(u)||(s=`${s.substring(0,s.length-1)}, ${u}}`)}i.update=s}return n.concat(r.map(o=>({name:o.signals.data})))},signals:(t,e,n)=>{if(t.parent&&!A7(t))for(const r of e.scales){const i=n.filter(s=>s.name===r.signals.data)[0];i.push="outer",delete i.value,delete i.update}return n}};function E7(t,e){return`domain(${we(t.scaleName(e))})`}function A7(t){var e;return t.parent&&j2(t.parent)&&((e=!t.parent.parent)!==null&&e!==void 0?e:A7(t.parent.parent))}var RJe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const F2="_brush",S7="_scale_trigger",OJe={defined:t=>t.type==="interval",signals:(t,e,n)=>{const r=e.name,i=r+h3,s=qc.defined(e),o=e.init?e.init[0]:null,u=[],a=[];if(e.translate&&!s){const c=`!event.item || event.item.mark.name !== ${we(r+F2)}`;Pue(e,(f,x)=>{var h,p;const m=Pe((h=(p=x.between[0]).filter)!==null&&h!==void 0?h:p.filter=[]);return m.includes(c)||m.push(c),f})}e.project.items.forEach((c,f)=>{const x=c.channel;if(x!==mn&&x!==Er){Re("Interval selections only support x and y encoding channels.");return}const h=o?o[f]:null,p=NJe(t,e,c,h),m=c.signals.data,g=c.signals.visual,y=we(t.scaleName(x)),E=t.getScaleComponent(x).get("type"),A=js(E)?"+":"";n.push(...p),u.push(m),a.push({scaleName:t.scaleName(x),expr:`(!isArray(${m}) || (${A}invert(${y}, ${g})[0] === ${A}${m}[0] && ${A}invert(${y}, ${g})[1] === ${A}${m}[1]))`})}),!s&&a.length&&n.push({name:r+S7,value:{},on:[{events:a.map(c=>({scale:c.scaleName})),update:`${a.map(c=>c.expr).join(" && ")} ? ${r+S7} : {}`}]});const l=`unit: ${L2(t)}, fields: ${i}, values`;return n.concat(Object.assign(Object.assign({name:r+zc},o?{init:`{${l}: ${D2(o)}}`}:{}),u.length?{on:[{events:[{signal:u.join(" || ")}],update:`${u.join(" && ")} ? {${l}: [${u}]} : null`}]}:{}))},marks:(t,e,n)=>{const r=e.name,{x:i,y:s}=e.project.hasChannel,o=i==null?void 0:i.signals.visual,u=s==null?void 0:s.signals.visual,a=`data(${we(e.name+Td)})`;if(qc.defined(e)||!i&&!s)return n;const l={x:i!==void 0?{signal:`${o}[0]`}:{value:0},y:s!==void 0?{signal:`${u}[0]`}:{value:0},x2:i!==void 0?{signal:`${o}[1]`}:{field:{group:"width"}},y2:s!==void 0?{signal:`${u}[1]`}:{field:{group:"height"}}};if(e.resolve==="global")for(const g of Te(l))l[g]=[Object.assign({test:`${a}.length && ${a}[0].unit === ${L2(t)}`},l[g]),{value:0}];const c=e.mark,{fill:f,fillOpacity:x,cursor:h}=c,p=RJe(c,["fill","fillOpacity","cursor"]),m=Te(p).reduce((g,y)=>(g[y]=[{test:[i!==void 0&&`${o}[0] !== ${o}[1]`,s!==void 0&&`${u}[0] !== ${u}[1]`].filter(E=>E).join(" && "),value:p[y]},{value:null}],g),{});return[{name:`${r+F2}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:f},fillOpacity:{value:x}},update:l}},...n,{name:r+F2,type:"rect",clip:!0,encode:{enter:Object.assign(Object.assign({},h?{cursor:{value:h}}:{}),{fill:{value:"transparent"}}),update:Object.assign(Object.assign({},l),m)}}]}};function NJe(t,e,n,r){const i=n.channel,s=n.signals.visual,o=n.signals.data,u=qc.defined(e),a=we(t.scaleName(i)),l=t.getScaleComponent(i),c=l?l.get("type"):void 0,f=m=>`scale(${a}, ${m})`,x=t.getSizeSignalRef(i===mn?"width":"height").signal,h=`${i}(unit)`,p=Pue(e,(m,g)=>[...m,{events:g.between[0],update:`[${h}, ${h}]`},{events:g,update:`[${s}[0], clamp(${h}, 0, ${x})]`}]);return p.push({events:{signal:e.name+S7},update:js(c)?`[${f(`${o}[0]`)}, ${f(`${o}[1]`)}]`:"[0, 0]"}),u?[{name:o,on:[]}]:[Object.assign(Object.assign({name:s},r?{init:D2(r,!0,f)}:{value:[]}),{on:p}),Object.assign(Object.assign({name:o},r?{init:D2(r)}:{}),{on:[{events:{signal:s},update:`${s}[0] === ${s}[1] ? null : invert(${a}, ${s})`}]})]}function Pue(t,e){return t.events.reduce((n,r)=>r.between?e(n,r):(Re(`${r} is not an ordered event stream for interval selections.`),n),[])}const DJe={defined:t=>t.type==="point",signals:(t,e,n)=>{var r;const i=e.name,s=i+h3,o=e.project,u="(item().isVoronoi ? datum.datum : datum)",a=o.items.map(h=>{const p=t.fieldDef(h.channel);return p!=null&&p.bin?`[${u}[${we(t.vgField(h.channel,{}))}], ${u}[${we(t.vgField(h.channel,{binSuffix:"end"}))}]]`:`${u}[${we(h.field)}]`}).join(", "),l=`unit: ${L2(t)}, fields: ${s}, values`,c=e.events,f=$i((r=t.component.selection)!==null&&r!==void 0?r:{}).reduce((h,p)=>p.type==="interval"?h.concat(p.name+F2):h,[]).map(h=>`indexof(item().mark.name, '${h}') < 0`).join(" && "),x=`datum && item().mark.marktype !== 'group'${f?` && ${f}`:""}`;return n.concat([{name:i+zc,on:c?[{events:c,update:`${x} ? {${l}: [${a}]} : null`,force:!0}]:[]}])}};function w2(t,e,n,r){const i=aN(e)&&e.condition,s=r(e);if(i){const u=Pe(i).map(a=>{const l=r(a);if(vXe(a)){const{param:c,empty:f}=a,x=aae(t,{param:c,empty:f});return Object.assign({test:x},l)}else{const c=DN(t,a.test);return Object.assign({test:c},l)}});return{[n]:[...u,...s!==void 0?[s]:[]]}}else return s!==void 0?{[n]:s}:{}}function v7(t,e="text"){const n=t.encoding[e];return w2(t,n,e,r=>bN(r,t.config))}function bN(t,e,n="datum"){if(t){if(fu(t))return sn(t.value);if(st(t)){const{format:r,formatType:i}=fN(t);return P8({fieldOrDatumDef:t,format:r,formatType:i,expr:n,config:e})}}}function Mue(t,e={}){const{encoding:n,markDef:r,config:i,stack:s}=t,o=n.tooltip;if(_e(o))return{tooltip:Uue({tooltip:o},s,i,e)};{const u=e.reactiveGeom?"datum.datum":"datum";return w2(t,o,"tooltip",a=>{const l=bN(a,i,u);if(l)return l;if(a===null)return;let c=$t("tooltip",r,i);if(c===!0&&(c={content:"encoding"}),je(c))return{value:c};if(He(c))return Ye(c)?c:c.content==="encoding"?Uue(n,s,i,e):{signal:u}})}}function jue(t,e,n,{reactiveGeom:r}={}){const i={},s=r?"datum.datum":"datum",o=[];function u(l,c){const f=md(c),x=_o(l)?l:Object.assign(Object.assign({},l),{type:t[f].type}),h=x.title||W8(x,n),p=Pe(h).join(", ");let m;if(Ir(c)){const g=c==="x"?"x2":"y2",y=Da(t[g]);if(Bi(x.bin)&&y){const E=$e(x,{expr:s}),A=$e(y,{expr:s}),{format:S,formatType:v}=fN(x);m=sN(E,A,S,v,n),i[g]=!0}else if(e&&e.fieldChannel===c&&e.offset==="normalize"){const{format:E,formatType:A}=fN(x);m=P8({fieldOrDatumDef:x,format:E,formatType:A,expr:s,config:n,normalizeStack:!0}).signal}}m??(m=bN(x,n,s).signal),o.push({channel:c,key:p,value:m})}K8(t,(l,c)=>{Ie(l)?u(l,c):lN(l)&&u(l.condition,c)});const a={};for(const{channel:l,key:c,value:f}of o)!i[l]&&!a[c]&&(a[c]=f);return a}function Uue(t,e,n,{reactiveGeom:r}={}){const i=jue(t,e,n,{reactiveGeom:r}),s=hd(i).map(([o,u])=>`"${o}": ${u}`);return s.length>0?{signal:`{${s.join(", ")}}`}:void 0}function FJe(t){const{markDef:e,config:n}=t,r=$t("aria",e,n);return r===!1?{}:Object.assign(Object.assign(Object.assign({},r?{aria:r}:{}),wJe(t)),LJe(t))}function wJe(t){const{mark:e,markDef:n,config:r}=t;if(r.aria===!1)return{};const i=$t("ariaRoleDescription",n,r);return i!=null?{ariaRoleDescription:{value:i}}:e in dVe?{}:{ariaRoleDescription:{value:e}}}function LJe(t){const{encoding:e,markDef:n,config:r,stack:i}=t,s=e.description;if(s)return w2(t,s,"description",a=>bN(a,t.config));const o=$t("description",n,r);if(o!=null)return{description:sn(o)};if(r.aria===!1)return{};const u=jue(e,i,r);if(!Gt(u))return{description:{signal:hd(u).map(([a,l],c)=>`"${c>0?"; ":""}${a}: " + (${l})`).join(" + ")}}}function Sr(t,e,n={}){const{markDef:r,encoding:i,config:s}=e,{vgChannel:o}=n;let{defaultRef:u,defaultValue:a}=n;u===void 0&&(a??(a=$t(t,r,s,{vgChannel:o,ignoreVgConfig:!0})),a!==void 0&&(u=sn(a)));const l=i[t];return w2(e,l,o??t,c=>k8({channel:t,channelDef:c,markDef:r,config:s,scaleName:e.scaleName(t),scale:e.getScaleComponent(t),stack:null,defaultRef:u}))}function que(t,e={filled:void 0}){var n,r,i,s;const{markDef:o,encoding:u,config:a}=t,{type:l}=o,c=(n=e.filled)!==null&&n!==void 0?n:$t("filled",o,a),f=bt(["bar","point","circle","square","geoshape"],l)?"transparent":void 0,x=(i=(r=$t(c===!0?"color":void 0,o,a,{vgChannel:"fill"}))!==null&&r!==void 0?r:a.mark[c===!0&&"color"])!==null&&i!==void 0?i:f,h=(s=$t(c===!1?"color":void 0,o,a,{vgChannel:"stroke"}))!==null&&s!==void 0?s:a.mark[c===!1&&"color"],p=c?"fill":"stroke",m=Object.assign(Object.assign({},x?{fill:sn(x)}:{}),h?{stroke:sn(h)}:{});return o.color&&(c?o.fill:o.stroke)&&Re(Pse("property",{fill:"fill"in o,stroke:"stroke"in o})),Object.assign(Object.assign(Object.assign(Object.assign({},m),Sr("color",t,{vgChannel:p,defaultValue:c?x:h})),Sr("fill",t,{defaultValue:u.fill?x:void 0})),Sr("stroke",t,{defaultValue:u.stroke?h:void 0}))}function IJe(t){const{encoding:e,mark:n}=t,r=e.order;return!kc(n)&&fu(r)?w2(t,r,"zindex",i=>sn(i.value)):{}}function p3({channel:t,markDef:e,encoding:n={},model:r,bandPosition:i}){const s=`${t}Offset`,o=e[s],u=n[s];if((s==="xOffset"||s==="yOffset")&&u)return{offsetType:"encoding",offset:k8({channel:s,channelDef:u,markDef:e,config:r==null?void 0:r.config,scaleName:r.scaleName(s),scale:r.getScaleComponent(s),stack:null,defaultRef:sn(o),bandPosition:i})};const a=e[s];return a?{offsetType:"visual",offset:a}:{}}function ii(t,e,{defaultPos:n,vgChannel:r}){const{encoding:i,markDef:s,config:o,stack:u}=e,a=i[t],l=i[Yl(t)],c=e.scaleName(t),f=e.getScaleComponent(t),{offset:x,offsetType:h}=p3({channel:t,markDef:s,encoding:i,model:e,bandPosition:.5}),p=_7({model:e,defaultPos:n,channel:t,scaleName:c,scale:f}),m=!a&&Ir(t)&&(i.latitude||i.longitude)?{field:e.getName(t)}:$Je({channel:t,channelDef:a,channel2Def:l,markDef:s,config:o,scaleName:c,scale:f,stack:u,offset:x,defaultRef:p,bandPosition:h==="encoding"?0:void 0});return m?{[r||t]:m}:void 0}function $Je(t){const{channel:e,channelDef:n,scaleName:r,stack:i,offset:s,markDef:o}=t;if(st(n)&&i&&e===i.fieldChannel){if(Ie(n)){let u=n.bandPosition;if(u===void 0&&o.type==="text"&&(e==="radius"||e==="theta")&&(u=.5),u!==void 0)return iN({scaleName:r,fieldOrDatumDef:n,startSuffix:"start",bandPosition:u,offset:s})}return vd(n,r,{suffix:"end"},{offset:s})}return $8(t)}function _7({model:t,defaultPos:e,channel:n,scaleName:r,scale:i}){const{markDef:s,config:o}=t;return()=>{const u=md(n),a=wc(n),l=$t(n,s,o,{vgChannel:a});if(l!==void 0)return u3(n,l);switch(e){case"zeroOrMin":case"zeroOrMax":if(r){const c=i.get("type");if(!bt([ds.LOG,ds.TIME,ds.UTC],c)){if(i.domainDefinitelyIncludesZero())return{scale:r,value:0}}}if(e==="zeroOrMin")return u==="y"?{field:{group:"height"}}:{value:0};switch(u){case"radius":return{signal:`min(${t.width.signal},${t.height.signal})/2`};case"theta":return{signal:"2*PI"};case"x":return{field:{group:"width"}};case"y":return{value:0}}break;case"mid":{const c=t[fs(n)];return Object.assign(Object.assign({},c),{mult:.5})}}}}const BJe={left:"x",center:"xc",right:"x2"},kJe={top:"y",middle:"yc",bottom:"y2"};function Hue(t,e,n,r="middle"){if(t==="radius"||t==="theta")return wc(t);const i=t==="x"?"align":"baseline",s=$t(i,e,n);let o;return Ye(s)?(Re(GVe(i)),o=void 0):o=s,t==="x"?BJe[o||(r==="top"?"left":"center")]:kJe[o||r]}function TN(t,e,{defaultPos:n,defaultPos2:r,range:i}){return i?zue(t,e,{defaultPos:n,defaultPos2:r}):ii(t,e,{defaultPos:n})}function zue(t,e,{defaultPos:n,defaultPos2:r}){const{markDef:i,config:s}=e,o=Yl(t),u=fs(t),a=PJe(e,r,o),l=a[u]?Hue(t,i,s):wc(t);return Object.assign(Object.assign({},ii(t,e,{defaultPos:n,vgChannel:l})),a)}function PJe(t,e,n){const{encoding:r,mark:i,markDef:s,stack:o,config:u}=t,a=md(n),l=fs(n),c=wc(n),f=r[a],x=t.scaleName(a),h=t.getScaleComponent(a),{offset:p}=n in r||n in s?p3({channel:n,markDef:s,encoding:r,model:t}):p3({channel:a,markDef:s,encoding:r,model:t});if(!f&&(n==="x2"||n==="y2")&&(r.latitude||r.longitude)){const g=fs(n),y=t.markDef[g];return y!=null?{[g]:{value:y}}:{[c]:{field:t.getName(n)}}}const m=MJe({channel:n,channelDef:f,channel2Def:r[n],markDef:s,config:u,scaleName:x,scale:h,stack:o,offset:p,defaultRef:void 0});return m!==void 0?{[c]:m}:RN(n,s)||RN(n,{[n]:XO(n,s,u.style),[l]:XO(l,s,u.style)})||RN(n,u[i])||RN(n,u.mark)||{[c]:_7({model:t,defaultPos:e,channel:n,scaleName:x,scale:h})()}}function MJe({channel:t,channelDef:e,channel2Def:n,markDef:r,config:i,scaleName:s,scale:o,stack:u,offset:a,defaultRef:l}){return st(e)&&u&&t.charAt(0)===u.fieldChannel.charAt(0)?vd(e,s,{suffix:"start"},{offset:a}):$8({channel:t,channelDef:n,scaleName:s,scale:o,stack:u,markDef:r,config:i,offset:a,defaultRef:l})}function RN(t,e){const n=fs(t),r=wc(t);if(e[r]!==void 0)return{[r]:u3(t,e[r])};if(e[t]!==void 0)return{[r]:u3(t,e[t])};if(e[n]){const i=e[n];if(C2(i))Re(MVe(n));else return{[n]:u3(t,i)}}}function Hc(t,e){var n,r;const{config:i,encoding:s,markDef:o}=t,u=o.type,a=Yl(e),l=fs(e),c=s[e],f=s[a],x=t.getScaleComponent(e),h=x?x.get("type"):void 0,p=o.orient,m=(r=(n=s[l])!==null&&n!==void 0?n:s.size)!==null&&r!==void 0?r:$t("size",o,i,{vgChannel:l}),g=u==="bar"&&(e==="x"?p==="vertical":p==="horizontal");return Ie(c)&&(Xt(c.bin)||Bi(c.bin)||c.timeUnit&&!f)&&!(m&&!C2(m))&&!Ar(h)?qJe({fieldDef:c,fieldDef2:f,channel:e,model:t}):(st(c)&&Ar(h)||g)&&!f?UJe(c,e,t):zue(e,t,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}function jJe(t,e,n,r,i){if(C2(i))if(n){const o=n.get("type");if(o==="band")return{scale:e,band:i.band};i.band!==1&&(Re(XVe(o)),i=void 0)}else return{mult:i.band,field:{group:t}};else{if(Ye(i))return i;if(i)return{value:i}}if(n){const o=n.get("range");if(Bc(o)&&tn(o.step))return{value:o.step-2}}return{value:SN(r.view,t)-2}}function UJe(t,e,n){const{markDef:r,encoding:i,config:s,stack:o}=n,u=r.orient,a=n.scaleName(e),l=n.getScaleComponent(e),c=fs(e),f=Yl(e),x=WWe(e),h=n.scaleName(x),p=u==="horizontal"&&e==="y"||u==="vertical"&&e==="x";let m;(i.size||r.size)&&(p?m=Sr("size",n,{vgChannel:c,defaultRef:sn(r.size)}):Re(eYe(r.type)));const g=boe({channel:e,fieldDef:t,markDef:r,config:s,scaleType:l==null?void 0:l.get("type"),useVlSizeChannel:p});m=m||{[c]:jJe(c,h||a,l,s,g)};const y=(l==null?void 0:l.get("type"))!=="band"||!("band"in m[c])?"middle":"top",E=Hue(e,r,s,y),A=E==="xc"||E==="yc",{offset:S,offsetType:v}=p3({channel:e,markDef:r,encoding:i,model:n,bandPosition:A?.5:0}),_=$8({channel:e,channelDef:t,markDef:r,config:s,scaleName:a,scale:l,stack:o,offset:S,defaultRef:_7({model:n,defaultPos:"mid",channel:e,scaleName:a,scale:l}),bandPosition:A?v==="encoding"?0:.5:Ye(g)?{signal:`(1-${g})/2`}:C2(g)?(1-g.band)/2:0});if(c)return Object.assign({[E]:_},m);{const C=wc(f),b=m[c],R=S?Object.assign(Object.assign({},b),{offset:S}):b;return{[E]:_,[C]:_e(_)?[_[0],Object.assign(Object.assign({},_[1]),{offset:R})]:Object.assign(Object.assign({},_),{offset:R})}}}function g3(t,e,n,r,i){if(ose(t))return 0;const s=t==="x"||t==="y2"?-e/2:e/2;if(Ye(n)||Ye(i)||Ye(r)){const o=Jl(n),u=Jl(i),a=Jl(r),l=a?`${a} + `:"",c=o?`(${o} ? -1 : 1) * `:"",f=u?`(${u} + ${s})`:s;return{signal:l+c+f}}else return i=i||0,r+(n?-i-s:+i+s)}function qJe({fieldDef:t,fieldDef2:e,channel:n,model:r}){var i,s,o;const{config:u,markDef:a,encoding:l}=r,c=r.getScaleComponent(n),f=r.scaleName(n),x=c?c.get("type"):void 0,h=c.get("reverse"),p=boe({channel:n,fieldDef:t,markDef:a,config:u,scaleType:x}),m=(i=r.component.axes[n])===null||i===void 0?void 0:i[0],g=(s=m==null?void 0:m.get("translate"))!==null&&s!==void 0?s:.5,y=Ir(n)&&(o=$t("binSpacing",a,u))!==null&&o!==void 0?o:0,E=Yl(n),A=wc(n),S=wc(E),{offset:v}=p3({channel:n,markDef:a,encoding:l,model:r,bandPosition:0}),_=Ye(p)?{signal:`(1-${p.signal})/2`}:C2(p)?(1-p.band)/2:.5;if(Xt(t.bin)||t.timeUnit)return{[S]:Que({fieldDef:t,scaleName:f,bandPosition:_,offset:g3(E,y,h,g,v)}),[A]:Que({fieldDef:t,scaleName:f,bandPosition:Ye(_)?{signal:`1-${_.signal}`}:1-_,offset:g3(n,y,h,g,v)})};if(Bi(t.bin)){const C=vd(t,f,{},{offset:g3(E,y,h,g,v)});if(Ie(e))return{[S]:C,[A]:vd(e,f,{},{offset:g3(n,y,h,g,v)})};if(yd(t.bin)&&t.bin.step)return{[S]:C,[A]:{signal:`scale("${f}", ${$e(t,{expr:"datum"})} + ${t.bin.step})`,offset:g3(n,y,h,g,v)}}}Re(Hse(E))}function Que({fieldDef:t,scaleName:e,bandPosition:n,offset:r}){return iN({scaleName:e,fieldOrDatumDef:t,bandPosition:n,offset:r})}const HJe=new Set(["aria","width","height"]);function Co(t,e){const{fill:n=void 0,stroke:r=void 0}=e.color==="include"?que(t):{};return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},zJe(t.markDef,e)),Gue(t,"fill",n)),Gue(t,"stroke",r)),Sr("opacity",t)),Sr("fillOpacity",t)),Sr("strokeOpacity",t)),Sr("strokeWidth",t)),Sr("strokeDash",t)),IJe(t)),Mue(t)),v7(t,"href")),FJe(t))}function Gue(t,e,n){const{config:r,mark:i,markDef:s}=t;if($t("invalid",s,r)==="hide"&&n&&!kc(i)){const u=QJe(t,{invalid:!0,channels:VO});if(u)return{[e]:[{test:u,value:null},...Pe(n)]}}return n?{[e]:n}:{}}function zJe(t,e){return xVe.reduce((n,r)=>(!HJe.has(r)&&t[r]!==void 0&&e[r]!=="ignore"&&(n[r]=sn(t[r])),n),{})}function QJe(t,{invalid:e=!1,channels:n}){const r=n.reduce((s,o)=>{const u=t.getScaleComponent(o);if(u){const a=u.get("type"),l=t.vgField(o,{expr:"datum"});l&&js(a)&&(s[l]=!0)}return s},{}),i=Te(r);if(i.length>0){const s=e?"||":"&&";return i.map(o=>B8(o,e)).join(` ${s} `)}}function C7(t){const{config:e,markDef:n}=t;if($t("invalid",n,e)){const i=GJe(t,{channels:Ca});if(i)return{defined:{signal:i}}}return{}}function GJe(t,{invalid:e=!1,channels:n}){const r=n.reduce((s,o)=>{const u=t.getScaleComponent(o);if(u){const a=u.get("type"),l=t.vgField(o,{expr:"datum"});l&&js(a)&&(s[l]=!0)}return s},{}),i=Te(r);if(i.length>0){const s=e?"||":"&&";return i.map(o=>B8(o,e)).join(` ${s} `)}}function Wue(t,e){if(e!==void 0)return{[t]:sn(e)}}const b7="voronoi",Vue={defined:t=>t.type==="point"&&t.nearest,parse:(t,e)=>{if(e.events)for(const n of e.events)n.markname=t.getName(b7)},marks:(t,e,n)=>{const{x:r,y:i}=e.project.hasChannel,s=t.mark;if(kc(s))return Re(yVe(s)),n;const o={name:t.getName(b7),type:"path",interactive:!0,from:{data:t.getName("marks")},encode:{update:Object.assign({fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0}},Mue(t,{reactiveGeom:!0}))},transform:[{type:"voronoi",x:{expr:r||!i?"datum.datum.x || 0":"0"},y:{expr:i||!r?"datum.datum.y || 0":"0"},size:[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]}]};let u=0,a=!1;return n.forEach((l,c)=>{var f;const x=(f=l.name)!==null&&f!==void 0?f:"";x===t.component.mark[0].name?u=c:x.indexOf(b7)>=0&&(a=!0)}),a||n.splice(u+1,0,o),n}},Yue={defined:t=>t.type==="point"&&t.resolve==="global"&&t.bind&&t.bind!=="scales"&&!i7(t.bind),parse:(t,e,n)=>sae(e,n),topLevelSignals:(t,e,n)=>{const r=e.name,i=e.project,s=e.bind,o=e.init&&e.init[0],u=Vue.defined(e)?"(item().isVoronoi ? datum.datum : datum)":"datum";return i.items.forEach((a,l)=>{var c,f;const x=gn(`${r}_${a.field}`);n.filter(p=>p.name===x).length||n.unshift(Object.assign(Object.assign({name:x},o?{init:D2(o[l])}:{value:null}),{on:e.events?[{events:e.events,update:`datum && item().mark.marktype !== 'group' ? ${u}[${we(a.field)}] : null`}]:[],bind:(f=(c=s[a.field])!==null&&c!==void 0?c:s[a.channel])!==null&&f!==void 0?f:s}))}),n},signals:(t,e,n)=>{const r=e.name,i=e.project,s=n.filter(l=>l.name===r+zc)[0],o=r+h3,u=i.items.map(l=>gn(`${r}_${l.field}`)),a=u.map(l=>`${l} !== null`).join(" && ");return u.length&&(s.update=`${a} ? {fields: ${o}, values: [${u.join(", ")}]} : null`),delete s.value,delete s.on,n}},ON="_toggle",Xue={defined:t=>t.type==="point"&&!!t.toggle,signals:(t,e,n)=>n.concat({name:e.name+ON,value:!1,on:[{events:e.events,update:e.toggle}]}),modifyExpr:(t,e)=>{const n=e.name+zc,r=e.name+ON;return`${r} ? null : ${n}, `+(e.resolve==="global"?`${r} ? null : true, `:`${r} ? null : {unit: ${L2(t)}}, `)+`${r} ? ${n} : null`}},WJe={defined:t=>t.clear!==void 0&&t.clear!==!1,parse:(t,e)=>{e.clear&&(e.clear=je(e.clear)?ad(e.clear,"view"):e.clear)},topLevelSignals:(t,e,n)=>{if(Yue.defined(e))for(const r of e.project.items){const i=n.findIndex(s=>s.name===gn(`${e.name}_${r.field}`));i!==-1&&n[i].on.push({events:e.clear,update:"null"})}return n},signals:(t,e,n)=>{function r(i,s){i!==-1&&n[i].on&&n[i].on.push({events:e.clear,update:s})}if(e.type==="interval")for(const i of e.project.items){const s=n.findIndex(o=>o.name===i.signals.visual);if(r(s,"[0, 0]"),s===-1){const o=n.findIndex(u=>u.name===i.signals.data);r(o,"null")}}else{let i=n.findIndex(s=>s.name===e.name+zc);r(i,"null"),Xue.defined(e)&&(i=n.findIndex(s=>s.name===e.name+ON),r(i,"false"))}return n}},Kue={defined:t=>{const e=t.resolve==="global"&&t.bind&&i7(t.bind),n=t.project.items.length===1&&t.project.items[0].field!==x3;return e&&!n&&Re(SVe),e&&n},parse:(t,e,n)=>{var r;const i=ut(n);if(i.select=je(i.select)?{type:i.select,toggle:e.toggle}:Object.assign(Object.assign({},i.select),{toggle:e.toggle}),sae(e,i),He(n.select)&&(n.select.on||n.select.clear)){const u='event.item && indexof(event.item.mark.role, "legend") < 0';for(const a of e.events)a.filter=Pe((r=a.filter)!==null&&r!==void 0?r:[]),a.filter.includes(u)||a.filter.push(u)}const s=s7(e.bind)?e.bind.legend:"click",o=je(s)?ad(s,"view"):Pe(s);e.bind={legend:{merge:o}}},topLevelSignals:(t,e,n)=>{const r=e.name,i=s7(e.bind)&&e.bind.legend,s=o=>u=>{const a=ut(u);return a.markname=o,a};for(const o of e.project.items){if(!o.hasLegend)continue;const u=`${gn(o.field)}_legend`,a=`${r}_${u}`;if(n.filter(c=>c.name===a).length===0){const c=i.merge.map(s(`${u}_symbols`)).concat(i.merge.map(s(`${u}_labels`))).concat(i.merge.map(s(`${u}_entries`)));n.unshift(Object.assign(Object.assign({name:a},e.init?{}:{value:null}),{on:[{events:c,update:"datum.value || item().items[0].items[0].datum.value",force:!0},{events:i.merge,update:`!event.item || !datum ? null : ${a}`,force:!0}]}))}}return n},signals:(t,e,n)=>{const r=e.name,i=e.project,s=n.find(x=>x.name===r+zc),o=r+h3,u=i.items.filter(x=>x.hasLegend).map(x=>gn(`${r}_${gn(x.field)}_legend`)),l=`${u.map(x=>`${x} !== null`).join(" && ")} ? {fields: ${o}, values: [${u.join(", ")}]} : null`;e.events&&u.length>0?s.on.push({events:u.map(x=>({signal:x})),update:l}):u.length>0&&(s.update=l,delete s.value,delete s.on);const c=n.find(x=>x.name===r+ON),f=s7(e.bind)&&e.bind.legend;return c&&(e.events?c.on.push(Object.assign(Object.assign({},c.on[0]),{events:f})):c.on[0].events=f),n}};function VJe(t,e,n){var r,i,s,o;const u=(r=t.fieldDef(e))===null||r===void 0?void 0:r.field;for(const a of $i((i=t.component.selection)!==null&&i!==void 0?i:{})){const l=(s=a.project.hasField[u])!==null&&s!==void 0?s:a.project.hasChannel[e];if(l&&Kue.defined(a)){const c=(o=n.get("selections"))!==null&&o!==void 0?o:[];c.push(a.name),n.set("selections",c,!1),l.hasLegend=!0}}}const Jue="_translate_anchor",Zue="_translate_delta",YJe={defined:t=>t.type==="interval"&&t.translate,signals:(t,e,n)=>{const r=e.name,i=qc.defined(e),s=r+Jue,{x:o,y:u}=e.project.hasChannel;let a=ad(e.translate,"scope");return i||(a=a.map(l=>(l.between[0].markname=r+F2,l))),n.push({name:s,value:{},on:[{events:a.map(l=>l.between[0]),update:"{x: x(unit), y: y(unit)"+(o!==void 0?`, extent_x: ${i?E7(t,mn):`slice(${o.signals.visual})`}`:"")+(u!==void 0?`, extent_y: ${i?E7(t,Er):`slice(${u.signals.visual})`}`:"")+"}"}]},{name:r+Zue,value:{},on:[{events:a,update:`{x: ${s}.x - x(unit), y: ${s}.y - y(unit)}`}]}),o!==void 0&&eae(t,e,o,"width",n),u!==void 0&&eae(t,e,u,"height",n),n}};function eae(t,e,n,r,i){var s,o;const u=e.name,a=u+Jue,l=u+Zue,c=n.channel,f=qc.defined(e),x=i.filter(C=>C.name===n.signals[f?"data":"visual"])[0],h=t.getSizeSignalRef(r).signal,p=t.getScaleComponent(c),m=p.get("type"),g=p.get("reverse"),y=f?c===mn?g?"":"-":g?"-":"":"",E=`${a}.extent_${c}`,A=`${y}${l}.${c} / ${f?`${h}`:`span(${E})`}`,S=f?m==="log"?"panLog":m==="symlog"?"panSymlog":m==="pow"?"panPow":"panLinear":"panLinear",v=f?m==="pow"?`, ${(s=p.get("exponent"))!==null&&s!==void 0?s:1}`:m==="symlog"?`, ${(o=p.get("constant"))!==null&&o!==void 0?o:1}`:"":"",_=`${S}(${E}, ${A}${v})`;x.on.push({events:{signal:l},update:f?_:`clampRange(${_}, 0, ${h})`})}const tae="_zoom_anchor",nae="_zoom_delta",XJe={defined:t=>t.type==="interval"&&t.zoom,signals:(t,e,n)=>{const r=e.name,i=qc.defined(e),s=r+nae,{x:o,y:u}=e.project.hasChannel,a=we(t.scaleName(mn)),l=we(t.scaleName(Er));let c=ad(e.zoom,"scope");return i||(c=c.map(f=>(f.markname=r+F2,f))),n.push({name:r+tae,on:[{events:c,update:i?"{"+[a?`x: invert(${a}, x(unit))`:"",l?`y: invert(${l}, y(unit))`:""].filter(f=>!!f).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:s,on:[{events:c,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),o!==void 0&&rae(t,e,o,"width",n),u!==void 0&&rae(t,e,u,"height",n),n}};function rae(t,e,n,r,i){var s,o;const u=e.name,a=n.channel,l=qc.defined(e),c=i.filter(S=>S.name===n.signals[l?"data":"visual"])[0],f=t.getSizeSignalRef(r).signal,x=t.getScaleComponent(a),h=x.get("type"),p=l?E7(t,a):c.name,m=u+nae,g=`${u}${tae}.${a}`,y=l?h==="log"?"zoomLog":h==="symlog"?"zoomSymlog":h==="pow"?"zoomPow":"zoomLinear":"zoomLinear",E=l?h==="pow"?`, ${(s=x.get("exponent"))!==null&&s!==void 0?s:1}`:h==="symlog"?`, ${(o=x.get("constant"))!==null&&o!==void 0?o:1}`:"":"",A=`${y}(${p}, ${g}, ${m}${E})`;c.on.push({events:{signal:m},update:l?A:`clampRange(${A}, 0, ${f})`})}const Td="_store",zc="_tuple",KJe="_modify",iae="vlSelectionResolve",NN=[DJe,OJe,TJe,Xue,Yue,qc,Kue,WJe,YJe,XJe,Vue];function JJe(t){let e=t.parent;for(;e&&!hu(e);)e=e.parent;return e}function L2(t,{escape:e}={escape:!0}){let n=e?we(t.name):t.name;const r=JJe(t);if(r){const{facet:i}=r;for(const s of vo)i[s]&&(n+=` + '__facet_${s}_' + (facet[${we(r.vgField(s))}])`)}return n}function T7(t){var e;return $i((e=t.component.selection)!==null&&e!==void 0?e:{}).reduce((n,r)=>n||r.project.items.some(i=>i.field===x3),!1)}function sae(t,e){(je(e.select)||!e.select.on)&&delete t.events,(je(e.select)||!e.select.clear)&&delete t.clear,(je(e.select)||!e.select.toggle)&&delete t.toggle}function R7(t){const e=[];return t.type==="Identifier"?[t.name]:t.type==="Literal"?[t.value]:(t.type==="MemberExpression"&&(e.push(...R7(t.object)),e.push(...R7(t.property))),e)}function oae(t){return t.object.type==="MemberExpression"?oae(t.object):t.object.name==="datum"}function uae(t){const e=Zne(t),n=new Set;return e.visit(r=>{r.type==="MemberExpression"&&oae(r)&&n.add(R7(r).slice(1).join("."))}),n}class I2 extends Ut{constructor(e,n,r){super(e),this.model=n,this.filter=r,this.expr=DN(this.model,this.filter,this),this._dependentFields=uae(this.expr)}clone(){return new I2(null,this.model,ut(this.filter))}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function ZJe(t,e){var n;const r={},i=t.config.selection;if(!e||!e.length)return r;for(const s of e){const o=gn(s.name),u=s.select,a=je(u)?u:u.type,l=He(u)?ut(u):{type:a},c=i[a];for(const x in c)x==="fields"||x==="encodings"||(x==="mark"&&(l[x]=Object.assign(Object.assign({},c[x]),l[x])),(l[x]===void 0||l[x]===!0)&&(l[x]=(n=c[x])!==null&&n!==void 0?n:l[x]));const f=r[o]=Object.assign(Object.assign({},l),{name:o,type:a,init:s.value,bind:s.bind,events:je(l.on)?ad(l.on,"scope"):Pe(ut(l.on))});for(const x of NN)x.defined(f)&&x.parse&&x.parse(t,f,s)}return r}function aae(t,e,n,r="datum"){const i=je(e)?e:e.param,s=gn(i),o=we(s+Td);let u;try{u=t.getSelectionComponent(s,i)}catch{return`!!${s}`}if(u.project.timeUnit){const c=n??t.component.data.raw,f=u.project.timeUnit.clone();c.parent?f.insertAsParentOf(c):c.parent=f}const a=`vlSelectionTest(${o}, ${r}${u.resolve==="global"?")":`, ${we(u.resolve)})`}`,l=`length(data(${o}))`;return e.empty===!1?`${l} && ${a}`:`!${l} || ${a}`}function lae(t,e,n){const r=gn(e),i=n.encoding;let s=n.field,o;try{o=t.getSelectionComponent(r,e)}catch{return r}if(!i&&!s)s=o.project.items[0].field,o.project.items.length>1&&Re(`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${we(s)}.`);else if(i&&!s){const u=o.project.items.filter(a=>a.channel===i);!u.length||u.length>1?(s=o.project.items[0].field,Re((u.length?"Multiple ":"No ")+`matching ${we(i)} encoding found for selection ${we(n.param)}. Using "field": ${we(s)}.`)):s=u[0].field}return`${o.name}[${we(ou(s))}]`}function eZe(t,e){var n;for(const[r,i]of hd((n=t.component.selection)!==null&&n!==void 0?n:{})){const s=t.getName(`lookup_${r}`);t.component.data.outputNodes[s]=i.materialized=new Mi(new I2(e,t,{param:r}),s,Kt.Lookup,t.component.data.outputNodeRefCounts)}}function DN(t,e,n){return MO(e,r=>je(r)?r:BYe(r)?aae(t,r,n):Kse(r))}var FN=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function tZe(t,e){if(t)return _e(t)&&!$c(t)?t.map(n=>W8(n,e)).join(", "):t}function O7(t,e,n,r){var i,s,o,u,a;(i=t.encode)!==null&&i!==void 0||(t.encode={}),(s=(u=t.encode)[e])!==null&&s!==void 0||(u[e]={}),(o=(a=t.encode[e]).update)!==null&&o!==void 0||(a.update={}),t.encode[e].update[n]=r}function m3(t,e,n,r={header:!1}){var i,s;const o=t.combine(),{disable:u,orient:a,scale:l,labelExpr:c,title:f,zindex:x}=o,h=FN(o,["disable","orient","scale","labelExpr","title","zindex"]);if(!u){for(const p in h){const m=BXe[p],g=h[p];if(m&&m!==e&&m!=="both")delete h[p];else if(f3(g)){const{condition:y}=g,E=FN(g,["condition"]),A=Pe(y),S=Ioe[p];if(S){const{vgProp:v,part:_}=S,C=[...A.map(b=>{const{test:R}=b,O=FN(b,["test"]);return Object.assign({test:DN(null,R)},O)}),E];O7(h,_,v,C),delete h[p]}else if(S===null){const v={signal:A.map(_=>{const{test:C}=_,b=FN(_,["test"]);return`${DN(null,C)} ? ${vse(b)} : `}).join("")+vse(E)};h[p]=v}}else if(Ye(g)){const y=Ioe[p];if(y){const{vgProp:E,part:A}=y;O7(h,A,E,g),delete h[p]}}bt(["labelAlign","labelBaseline"],p)&&h[p]===null&&delete h[p]}if(e==="grid"){if(!h.grid)return;if(h.encode){const{grid:p}=h.encode;h.encode=Object.assign({},p?{grid:p}:{}),Gt(h.encode)&&delete h.encode}return Object.assign(Object.assign({scale:l,orient:a},h),{domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:nr(x,0)})}else{if(!r.header&&t.mainExtracted)return;if(c!==void 0){let m=c;!((s=(i=h.encode)===null||i===void 0?void 0:i.labels)===null||s===void 0)&&s.update&&Ye(h.encode.labels.update.text)&&(m=g2(c,"datum.label",h.encode.labels.update.text.signal)),O7(h,"labels","text",{signal:m})}if(h.labelAlign===null&&delete h.labelAlign,h.encode){for(const m of $oe)t.hasAxisPart(m)||delete h.encode[m];Gt(h.encode)&&delete h.encode}const p=tZe(f,n);return Object.assign(Object.assign(Object.assign(Object.assign({scale:l,orient:a,grid:!1},p?{title:p}:{}),h),n.aria===!1?{aria:!1}:{}),{zindex:nr(x,0)})}}}function cae(t){const{axes:e}=t.component,n=[];for(const r of Ca)if(e[r]){for(const i of e[r])if(!i.get("disable")&&!i.get("gridScale")){const s=r==="x"?"height":"width",o=t.getSizeSignalRef(s).signal;s!==o&&n.push({name:s,update:o})}}return n}function nZe(t,e){const{x:n=[],y:r=[]}=t;return[...n.map(i=>m3(i,"grid",e)),...r.map(i=>m3(i,"grid",e)),...n.map(i=>m3(i,"main",e)),...r.map(i=>m3(i,"main",e))].filter(i=>i)}function fae(t,e,n,r){return Object.assign.apply(null,[{},...t.map(i=>{if(i==="axisOrient"){const s=n==="x"?"bottom":"left",o=e[n==="x"?"axisBottom":"axisLeft"]||{},u=e[n==="x"?"axisTop":"axisRight"]||{},a=new Set([...Te(o),...Te(u)]),l={};for(const c of a.values())l[c]={signal:`${r.signal} === "${s}" ? ${Jl(o[c])} : ${Jl(u[c])}`};return l}return e[i]})])}function rZe(t,e,n,r){const i=e==="band"?["axisDiscrete","axisBand"]:e==="point"?["axisDiscrete","axisPoint"]:noe(e)?["axisQuantitative"]:e==="time"||e==="utc"?["axisTemporal"]:[],s=t==="x"?"axisX":"axisY",o=Ye(n)?"axisOrient":`axis${jO(n)}`,u=[...i,...i.map(l=>s+l.substr(4))],a=["axis",o,s];return{vlOnlyAxisConfig:fae(u,r,t,n),vgAxisConfig:fae(a,r,t,n),axisConfigStyle:iZe([...a,...u],r)}}function iZe(t,e){var n;const r=[{}];for(const i of t){let s=(n=e[i])===null||n===void 0?void 0:n.style;if(s){s=Pe(s);for(const o of s)r.push(e.style[o])}}return Object.assign.apply(null,r)}function N7(t,e,n,r={}){var i;const s=Cse(t,n,e);if(s!==void 0)return{configFrom:"style",configValue:s};for(const o of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(((i=r[o])===null||i===void 0?void 0:i[t])!==void 0)return{configFrom:o,configValue:r[o][t]};return{}}const xae={scale:({model:t,channel:e})=>t.scaleName(e),format:({fieldOrDatumDef:t,config:e,axis:n})=>{const{format:r,formatType:i}=n;return poe(t,t.type,r,i,e,!0)},formatType:({axis:t,fieldOrDatumDef:e,scaleType:n})=>{const{formatType:r}=t;return goe(r,e,n)},grid:({fieldOrDatumDef:t,axis:e,scaleType:n})=>{var r;return(r=e.grid)!==null&&r!==void 0?r:sZe(n,t)},gridScale:({model:t,channel:e})=>oZe(t,e),labelAlign:({axis:t,labelAngle:e,orient:n,channel:r})=>t.labelAlign||hae(e,n,r),labelAngle:({labelAngle:t})=>t,labelBaseline:({axis:t,labelAngle:e,orient:n,channel:r})=>t.labelBaseline||dae(e,n,r),labelFlush:({axis:t,fieldOrDatumDef:e,channel:n})=>{var r;return(r=t.labelFlush)!==null&&r!==void 0?r:aZe(e.type,n)},labelOverlap:({axis:t,fieldOrDatumDef:e,scaleType:n})=>{var r;return(r=t.labelOverlap)!==null&&r!==void 0?r:lZe(e.type,n,Ie(e)&&!!e.timeUnit,Ie(e)?e.sort:void 0)},orient:({orient:t})=>t,tickCount:({channel:t,model:e,axis:n,fieldOrDatumDef:r,scaleType:i})=>{var s;const o=t==="x"?"width":t==="y"?"height":void 0,u=o?e.getSizeSignalRef(o):void 0;return(s=n.tickCount)!==null&&s!==void 0?s:fZe({fieldOrDatumDef:r,scaleType:i,size:u,values:n.values})},title:({axis:t,model:e,channel:n})=>{if(t.title!==void 0)return t.title;const r=pae(e,n);if(r!==void 0)return r;const i=e.typedFieldDef(n),s=n==="x"?"x2":"y2",o=e.fieldDef(s);return Tse(i?[_oe(i)]:[],Ie(o)?[_oe(o)]:[])},values:({axis:t,fieldOrDatumDef:e})=>xZe(t,e),zindex:({axis:t,fieldOrDatumDef:e,mark:n})=>{var r;return(r=t.zindex)!==null&&r!==void 0?r:dZe(n,e)}};function sZe(t,e){return!Ar(t)&&Ie(e)&&!Xt(e==null?void 0:e.bin)&&!Bi(e==null?void 0:e.bin)}function oZe(t,e){const n=e==="x"?"y":"x";if(t.getScaleComponent(n))return t.scaleName(n)}function uZe(t,e,n,r,i){const s=e==null?void 0:e.labelAngle;if(s!==void 0)return Ye(s)?s:UO(s);{const{configValue:o}=N7("labelAngle",r,e==null?void 0:e.style,i);return o!==void 0?UO(o):n===mn&&bt([N8,O8],t.type)&&!(Ie(t)&&t.timeUnit)?270:void 0}}function D7(t){return`(((${t.signal} % 360) + 360) % 360)`}function dae(t,e,n,r){if(t!==void 0)if(n==="x"){if(Ye(t)){const i=D7(t),s=Ye(e)?`(${e.signal} === "top")`:e==="top";return{signal:`(45 < ${i} && ${i} < 135) || (225 < ${i} && ${i} < 315) ? "middle" :(${i} <= 45 || 315 <= ${i}) === ${s} ? "bottom" : "top"`}}if(45<t&&t<135||225<t&&t<315)return"middle";if(Ye(e)){const i=t<=45||315<=t?"===":"!==";return{signal:`${e.signal} ${i} "top" ? "bottom" : "top"`}}return(t<=45||315<=t)==(e==="top")?"bottom":"top"}else{if(Ye(t)){const i=D7(t),s=Ye(e)?`(${e.signal} === "left")`:e==="left";return{signal:`${i} <= 45 || 315 <= ${i} || (135 <= ${i} && ${i} <= 225) ? ${r?'"middle"':"null"} : (45 <= ${i} && ${i} <= 135) === ${s} ? "top" : "bottom"`}}if(t<=45||315<=t||135<=t&&t<=225)return r?"middle":null;if(Ye(e)){const i=45<=t&&t<=135?"===":"!==";return{signal:`${e.signal} ${i} "left" ? "top" : "bottom"`}}return(45<=t&&t<=135)==(e==="left")?"top":"bottom"}}function hae(t,e,n){if(t===void 0)return;const r=n==="x",i=r?0:90,s=r?"bottom":"left";if(Ye(t)){const o=D7(t),u=Ye(e)?`(${e.signal} === "${s}")`:e===s;return{signal:`(${i?`(${o} + 90)`:o} % 180 === 0) ? ${r?null:'"center"'} :(${i} < ${o} && ${o} < ${180+i}) === ${u} ? "left" : "right"`}}if((t+i)%180===0)return r?null:"center";if(Ye(e)){const o=i<t&&t<180+i?"===":"!==";return{signal:`${`${e.signal} ${o} "${s}"`} ? "left" : "right"`}}return(i<t&&t<180+i)==(e===s)?"left":"right"}function aZe(t,e){if(e==="x"&&bt(["quantitative","temporal"],t))return!0}function lZe(t,e,n,r){if(n&&!He(r)||t!=="nominal"&&t!=="ordinal")return e==="log"||e==="symlog"?"greedy":!0}function cZe(t){return t==="x"?"bottom":"left"}function fZe({fieldOrDatumDef:t,scaleType:e,size:n,values:r}){var i;if(!r&&!Ar(e)&&e!=="log"){if(Ie(t)){if(Xt(t.bin))return{signal:`ceil(${n.signal}/10)`};if(t.timeUnit&&bt(["month","hours","day","quarter"],(i=ki(t.timeUnit))===null||i===void 0?void 0:i.unit))return}return{signal:`ceil(${n.signal}/40)`}}}function pae(t,e){const n=e==="x"?"x2":"y2",r=t.fieldDef(e),i=t.fieldDef(n),s=r?r.title:void 0,o=i?i.title:void 0;if(s&&o)return Rse(s,o);if(s)return s;if(o)return o;if(s!==void 0)return s;if(o!==void 0)return o}function xZe(t,e){const n=t.values;if(_e(n))return Loe(e,n);if(Ye(n))return n}function dZe(t,e){return t==="rect"&&cN(e)?1:0}class $2 extends Ut{constructor(e,n){super(e),this.transform=n,this._dependentFields=uae(this.transform.calculate)}clone(){return new $2(null,ut(this.transform))}static parseAllForSortIndex(e,n){return n.forEachFieldDef((r,i)=>{if(Cd(r)&&voe(r.sort)){const{field:s,timeUnit:o}=r,u=r.sort,a=u.map((l,c)=>`${Kse({field:s,timeUnit:o,equal:l})} ? ${c} : `).join("")+u.length;e=new $2(e,{calculate:a,as:B2(r,i,{forAs:!0})})}}),e}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 ${Ct(this.transform)}`}}function B2(t,e,n){return $e(t,Object.assign({prefix:e,suffix:"sort_index"},n??{}))}function wN(t,e){return bt(["top","bottom"],e)?"column":bt(["left","right"],e)||t==="row"?"row":"column"}function k2(t,e,n,r){const i=r==="row"?n.headerRow:r==="column"?n.headerColumn:n.headerFacet;return nr((e||{})[t],i[t],n.header[t])}function LN(t,e,n,r){const i={};for(const s of t){const o=k2(s,e||{},n,r);o!==void 0&&(i[s]=o)}return i}const F7=["row","column"],w7=["header","footer"];function hZe(t,e){const n=t.component.layoutHeaders[e].title,r=t.config?t.config:void 0,i=t.component.layoutHeaders[e].facetFieldDef?t.component.layoutHeaders[e].facetFieldDef:void 0,{titleAnchor:s,titleAngle:o,titleOrient:u}=LN(["titleAnchor","titleAngle","titleOrient"],i.header,r,e),a=wN(e,u),l=UO(o);return{name:`${e}-title`,type:"group",role:`${a}-title`,title:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:n},e==="row"?{orient:"left"}:{}),{style:"guide-title"}),mae(l,a)),gae(a,l,s)),yae(r,i,e,iKe,tue))}}function gae(t,e,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const r=hae(e,t==="row"?"left":"top",t==="row"?"y":"x");return r?{align:r}:{}}function mae(t,e){const n=dae(t,e==="row"?"left":"top",e==="row"?"y":"x",!0);return n?{baseline:n}:{}}function pZe(t,e){const n=t.component.layoutHeaders[e],r=[];for(const i of w7)if(n[i])for(const s of n[i]){const o=mZe(t,e,i,n,s);o!=null&&r.push(o)}return r}function gZe(t,e){var n;const{sort:r}=t;return Ra(r)?{field:$e(r,{expr:"datum"}),order:(n=r.order)!==null&&n!==void 0?n:"ascending"}:_e(r)?{field:B2(t,e,{expr:"datum"}),order:"ascending"}:{field:$e(t,{expr:"datum"}),order:r??"ascending"}}function L7(t,e,n){const{format:r,formatType:i,labelAngle:s,labelAnchor:o,labelOrient:u,labelExpr:a}=LN(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],t.header,n,e),l=P8({fieldOrDatumDef:t,format:r,formatType:i,expr:"parent",config:n}).signal,c=wN(e,u);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:{signal:a?g2(g2(a,"datum.label",l),"datum.value",$e(t,{expr:"parent"})):l}},e==="row"?{orient:"left"}:{}),{style:"guide-label",frame:"group"}),mae(s,c)),gae(c,s,o)),yae(n,t,e,sKe,nue))}function mZe(t,e,n,r,i){if(i){let s=null;const{facetFieldDef:o}=r,u=t.config?t.config:void 0;if(o&&i.labels){const{labelOrient:f}=LN(["labelOrient"],o.header,u,e);(e==="row"&&!bt(["top","bottom"],f)||e==="column"&&!bt(["left","right"],f))&&(s=L7(o,e,u))}const a=hu(t)&&!a3(t.facet),l=i.axes,c=(l==null?void 0:l.length)>0;if(s||c){const f=e==="row"?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:t.getName(`${e}_${n}`),type:"group",role:`${e}-${n}`},r.facetFieldDef?{from:{data:t.getName(`${e}_domain`)},sort:gZe(o,e)}:{}),c&&a?{from:{data:t.getName(`facet_domain_${e}`)}}:{}),s?{title:s}:{}),i.sizeSignal?{encode:{update:{[f]:i.sizeSignal}}}:{}),c?{axes:l}:{})}}return null}const yZe={column:{start:0,end:1},row:{start:1,end:0}};function EZe(t,e){return yZe[e][t]}function AZe(t,e){const n={};for(const r of vo){const i=t[r];if(i!=null&&i.facetFieldDef){const{titleAnchor:s,titleOrient:o}=LN(["titleAnchor","titleOrient"],i.facetFieldDef.header,e,r),u=wN(r,o),a=EZe(s,u);a!==void 0&&(n[u]=a)}}return Gt(n)?void 0:n}function yae(t,e,n,r,i){const s={};for(const o of r){if(!i[o])continue;const u=k2(o,e==null?void 0:e.header,t,n);u!==void 0&&(s[i[o]]=u)}return s}function I7(t){return[...IN(t,"width"),...IN(t,"height"),...IN(t,"childWidth"),...IN(t,"childHeight")]}function IN(t,e){const n=e==="width"?"x":"y",r=t.component.layoutSize.get(e);if(!r||r==="merged")return[];const i=t.getSizeSignalRef(e).signal;if(r==="step"){const s=t.getScaleComponent(n);if(s){const o=s.get("type"),u=s.get("range");if(Ar(o)&&Bc(u)){const a=t.scaleName(n);return hu(t.parent)&&t.parent.component.resolve.scale[n]==="independent"?[Eae(a,u)]:[Eae(a,u),{name:i,update:Aae(a,s,`domain('${a}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}else if(r=="container"){const s=i.endsWith("width"),o=s?"containerSize()[0]":"containerSize()[1]",u=l7(t.config.view,s?"width":"height"),a=`isFinite(${o}) ? ${o} : ${u}`;return[{name:i,init:a,on:[{update:a,events:"window:resize"}]}]}else return[{name:i,value:r}]}function Eae(t,e){const n=`${t}_step`;return Ye(e.step)?{name:n,update:e.step.signal}:{name:n,value:e.step}}function Aae(t,e,n){const r=e.get("type"),i=e.get("padding"),s=nr(e.get("paddingOuter"),i);let o=e.get("paddingInner");return o=r==="band"?o!==void 0?o:i:1,`bandspace(${n}, ${Jl(o)}, ${Jl(s)}) * ${t}_step`}function Sae(t){return t==="childWidth"?"width":t==="childHeight"?"height":t}function vae(t,e){return Te(t).reduce((n,r)=>{const i=t[r];return Object.assign(Object.assign({},n),w2(e,i,r,s=>sn(s.value)))},{})}function _ae(t,e){if(hu(e))return t==="theta"?"independent":"shared";if(j2(e))return"shared";if(X7(e))return Ir(t)||t==="theta"||t==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function $7(t,e){const n=t.scale[e],r=Ir(e)?"axis":"legend";return n==="independent"?(t[r][e]==="shared"&&Re(sYe(e)),"independent"):t[r][e]||"shared"}const SZe=Object.assign(Object.assign({},uKe),{disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1}),Cae=Te(SZe);class vZe extends t0{}const bae={symbols:_Ze,gradient:CZe,labels:bZe,entries:TZe};function _Ze(t,{fieldOrDatumDef:e,model:n,channel:r,legendCmpt:i,legendType:s}){var o,u,a,l,c,f,x,h;if(s!=="symbol")return;const{markDef:p,encoding:m,config:g,mark:y}=n,E=p.filled&&y!=="trail";let A=Object.assign(Object.assign({},pVe({},n,uXe)),que(n,{filled:E}));const S=(o=i.get("symbolOpacity"))!==null&&o!==void 0?o:g.legend.symbolOpacity,v=(u=i.get("symbolFillColor"))!==null&&u!==void 0?u:g.legend.symbolFillColor,_=(a=i.get("symbolStrokeColor"))!==null&&a!==void 0?a:g.legend.symbolStrokeColor,C=S===void 0?(l=Tae(m.opacity))!==null&&l!==void 0?l:p.opacity:void 0;if(A.fill){if(r==="fill"||E&&r===ls)delete A.fill;else if(A.fill.field)v?delete A.fill:(A.fill=sn((c=g.legend.symbolBaseFillColor)!==null&&c!==void 0?c:"black"),A.fillOpacity=sn(C??1));else if(_e(A.fill)){const b=(h=(x=B7((f=m.fill)!==null&&f!==void 0?f:m.color))!==null&&x!==void 0?x:p.fill)!==null&&h!==void 0?h:E&&p.color;b&&(A.fill=sn(b))}}if(A.stroke){if(r==="stroke"||!E&&r===ls)delete A.stroke;else if(A.stroke.field||_)delete A.stroke;else if(_e(A.stroke)){const b=nr(B7(m.stroke||m.color),p.stroke,E?p.color:void 0);b&&(A.stroke={value:b})}}if(r!==Vl){const b=Ie(e)&&Oae(n,i,e);b?A.opacity=[Object.assign({test:b},sn(C??1)),sn(g.legend.unselectedOpacity)]:C&&(A.opacity=sn(C))}return A=Object.assign(Object.assign({},A),t),Gt(A)?void 0:A}function CZe(t,{model:e,legendType:n,legendCmpt:r}){var i;if(n!=="gradient")return;const{config:s,markDef:o,encoding:u}=e;let a={};const c=((i=r.get("gradientOpacity"))!==null&&i!==void 0?i:s.legend.gradientOpacity)===void 0?Tae(u.opacity)||o.opacity:void 0;return c&&(a.opacity=sn(c)),a=Object.assign(Object.assign({},a),t),Gt(a)?void 0:a}function bZe(t,{fieldOrDatumDef:e,model:n,channel:r,legendCmpt:i}){const s=n.legend(r)||{},o=n.config,u=Ie(e)?Oae(n,i,e):void 0,a=u?[{test:u,value:1},{value:o.legend.unselectedOpacity}]:void 0,{format:l,formatType:c}=s,f=_d(c)?M8({fieldOrDatumDef:e,field:"datum.value",format:l,formatType:c,config:o}):void 0,x=Object.assign(Object.assign(Object.assign({},a?{opacity:a}:{}),f?{text:f}:{}),t);return Gt(x)?void 0:x}function TZe(t,{legendCmpt:e}){const n=e.get("selections");return n!=null&&n.length?Object.assign(Object.assign({},t),{fill:{value:"transparent"}}):t}function Tae(t){return Rae(t,(e,n)=>Math.max(e,n.value))}function B7(t){return Rae(t,(e,n)=>nr(e,n.value))}function Rae(t,e){if(CXe(t))return Pe(t.condition).reduce(e,t.value);if(fu(t))return t.value}function Oae(t,e,n){const r=e.get("selections");if(!(r!=null&&r.length))return;const i=we(n.field);return r.map(s=>`(!length(data(${we(gn(s)+Td)})) || (${s}[${i}] && indexof(${s}[${i}], datum.value) >= 0))`).join(" || ")}const Nae={direction:({direction:t})=>t,format:({fieldOrDatumDef:t,legend:e,config:n})=>{const{format:r,formatType:i}=e;return poe(t,t.type,r,i,n,!1)},formatType:({legend:t,fieldOrDatumDef:e,scaleType:n})=>{const{formatType:r}=t;return goe(r,e,n)},gradientLength:t=>{var e,n;const{legend:r,legendConfig:i}=t;return(n=(e=r.gradientLength)!==null&&e!==void 0?e:i.gradientLength)!==null&&n!==void 0?n:LZe(t)},labelOverlap:({legend:t,legendConfig:e,scaleType:n})=>{var r,i;return(i=(r=t.labelOverlap)!==null&&r!==void 0?r:e.labelOverlap)!==null&&i!==void 0?i:IZe(n)},symbolType:({legend:t,markDef:e,channel:n,encoding:r})=>{var i;return(i=t.symbolType)!==null&&i!==void 0?i:OZe(e.type,n,r.shape,e.shape)},title:({fieldOrDatumDef:t,config:e})=>b2(t,e,{allowDisabling:!0}),type:({legendType:t,scaleType:e,channel:n})=>{if(y2(n)&&cu(e)){if(t==="gradient")return}else if(t==="symbol")return;return t},values:({fieldOrDatumDef:t,legend:e})=>RZe(e,t)};function RZe(t,e){const n=t.values;if(_e(n))return Loe(e,n);if(Ye(n))return n}function OZe(t,e,n,r){var i;if(e!=="shape"){const s=(i=B7(n))!==null&&i!==void 0?i:r;if(s)return s}switch(t){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"}}function NZe(t){const{legend:e}=t;return nr(e.type,DZe(t))}function DZe({channel:t,timeUnit:e,scaleType:n}){if(y2(t)){if(bt(["quarter","month","day"],e))return"symbol";if(cu(n))return"gradient"}return"symbol"}function FZe({legendConfig:t,legendType:e,orient:n,legend:r}){var i,s;return(s=(i=r.direction)!==null&&i!==void 0?i:t[e?"gradientDirection":"symbolDirection"])!==null&&s!==void 0?s:wZe(n,e)}function wZe(t,e){switch(t){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return e==="gradient"?"horizontal":void 0}}function LZe({legendConfig:t,model:e,direction:n,orient:r,scaleType:i}){const{gradientHorizontalMaxLength:s,gradientHorizontalMinLength:o,gradientVerticalMaxLength:u,gradientVerticalMinLength:a}=t;if(cu(i))return n==="horizontal"?r==="top"||r==="bottom"?Dae(e,"width",o,s):o:Dae(e,"height",a,u)}function Dae(t,e,n,r){return{signal:`clamp(${t.getSizeSignalRef(e).signal}, ${n}, ${r})`}}function IZe(t){if(bt(["quantile","threshold","log","symlog"],t))return"greedy"}function Fae(t){const e=zn(t)?$Ze(t):MZe(t);return t.component.legends=e,e}function $Ze(t){const{encoding:e}=t,n={};for(const r of[ls,...iue]){const i=rr(e[r]);!i||!t.getScaleComponent(r)||r===cs&&Ie(i)&&i.type===v2||(n[r]=PZe(t,r))}return n}function BZe(t,e){const n=t.scaleName(e);if(t.mark==="trail"){if(e==="color")return{stroke:n};if(e==="size")return{strokeWidth:n}}return e==="color"?t.markDef.filled?{fill:n}:{stroke:n}:{[e]:n}}function kZe(t,e,n,r){switch(e){case"disable":return n!==void 0;case"values":return!!(n!=null&&n.values);case"title":if(e==="title"&&t===(r==null?void 0:r.title))return!0}return t===(n||{})[e]}function PZe(t,e){var n,r,i;let s=t.legend(e);const{markDef:o,encoding:u,config:a}=t,l=a.legend,c=new vZe({},BZe(t,e));VJe(t,e,c);const f=s!==void 0?!s:l.disable;if(c.set("disable",f,s!==void 0),f)return c;s=s||{};const x=t.getScaleComponent(e).get("type"),h=rr(u[e]),p=Ie(h)?(n=ki(h.timeUnit))===null||n===void 0?void 0:n.unit:void 0,m=s.orient||a.legend.orient||"right",g=NZe({legend:s,channel:e,timeUnit:p,scaleType:x}),y=FZe({legend:s,legendType:g,orient:m,legendConfig:l}),E={legend:s,channel:e,model:t,markDef:o,encoding:u,fieldOrDatumDef:h,legendConfig:l,config:a,scaleType:x,orient:m,legendType:g,direction:y};for(const C of Cae){if(g==="gradient"&&C.startsWith("symbol")||g==="symbol"&&C.startsWith("gradient"))continue;const b=C in Nae?Nae[C](E):s[C];if(b!==void 0){const R=kZe(b,C,s,t.fieldDef(e));(R||a.legend[C]===void 0)&&c.set(C,b,R)}}const A=(r=s==null?void 0:s.encoding)!==null&&r!==void 0?r:{},S=c.get("selections"),v={},_={fieldOrDatumDef:h,model:t,channel:e,legendCmpt:c,legendType:g};for(const C of["labels","legend","title","symbols","gradient","entries"]){const b=vae((i=A[C])!==null&&i!==void 0?i:{},t),R=C in bae?bae[C](b,_):b;R!==void 0&&!Gt(R)&&(v[C]=Object.assign(Object.assign(Object.assign({},S!=null&&S.length&&Ie(h)?{name:`${gn(h.field)}_legend_${C}`}:{}),S!=null&&S.length?{interactive:!!S}:{}),{update:R}))}return Gt(v)||c.set("encode",v,!!(s!=null&&s.encoding)),c}function MZe(t){const{legends:e,resolve:n}=t.component;for(const r of t.children){Fae(r);for(const i of Te(r.component.legends))n.legend[i]=$7(t.component.resolve,i),n.legend[i]==="shared"&&(e[i]=wae(e[i],r.component.legends[i]),e[i]||(n.legend[i]="independent",delete e[i]))}for(const r of Te(e))for(const i of t.children)i.component.legends[r]&&n.legend[r]==="shared"&&delete i.component.legends[r];return e}function wae(t,e){var n,r,i,s;if(!t)return e.clone();const o=t.getWithExplicit("orient"),u=e.getWithExplicit("orient");if(o.explicit&&u.explicit&&o.value!==u.value)return;let a=!1;for(const l of Cae){const c=jc(t.getWithExplicit(l),e.getWithExplicit(l),l,"legend",(f,x)=>{switch(l){case"symbolType":return jZe(f,x);case"title":return Ose(f,x);case"type":return a=!0,Us("symbol")}return CN(f,x,l,"legend")});t.setWithExplicit(l,c)}return a&&(!((r=(n=t.implicit)===null||n===void 0?void 0:n.encode)===null||r===void 0)&&r.gradient&&e8(t.implicit,["encode","gradient"]),!((s=(i=t.explicit)===null||i===void 0?void 0:i.encode)===null||s===void 0)&&s.gradient&&e8(t.explicit,["encode","gradient"])),t}function jZe(t,e){return e.value==="circle"?e:t}var UZe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function qZe(t,e,n,r){var i,s,o,u,a;(i=t.encode)!==null&&i!==void 0||(t.encode={}),(s=(u=t.encode)[e])!==null&&s!==void 0||(u[e]={}),(o=(a=t.encode[e]).update)!==null&&o!==void 0||(a.update={}),t.encode[e].update[n]=r}function Lae(t){const e=t.component.legends,n={};for(const i of Te(e)){const s=t.getScaleComponent(i),o=rn(s.get("domains"));if(n[o])for(const u of n[o])wae(u,e[i])||n[o].push(e[i]);else n[o]=[e[i].clone()]}return $i(n).flat().map(i=>HZe(i,t.config)).filter(i=>i!==void 0)}function HZe(t,e){var n,r,i;const s=t.combine(),{disable:o,labelExpr:u,selections:a}=s,l=UZe(s,["disable","labelExpr","selections"]);if(!o){if(e.aria===!1&&l.aria==null&&(l.aria=!1),!((n=l.encode)===null||n===void 0)&&n.symbols){const c=l.encode.symbols.update;c.fill&&c.fill.value!=="transparent"&&!c.stroke&&!l.stroke&&(c.stroke={value:"transparent"});for(const f of iue)l[f]&&delete c[f]}if(l.title||delete l.title,u!==void 0){let c=u;!((i=(r=l.encode)===null||r===void 0?void 0:r.labels)===null||i===void 0)&&i.update&&Ye(l.encode.labels.update.text)&&(c=g2(u,"datum.label",l.encode.labels.update.text.signal)),qZe(l,"labels","text",{signal:c})}return l}}function zZe(t){return j2(t)||X7(t)?QZe(t):Iae(t)}function QZe(t){return t.children.reduce((e,n)=>e.concat(n.assembleProjections()),Iae(t))}function Iae(t){const e=t.component.projection;if(!e||e.merged)return[];const n=e.combine(),{name:r}=n;if(e.data){const i={signal:`[${e.size.map(o=>o.signal).join(", ")}]`},s=e.data.reduce((o,u)=>{const a=Ye(u)?u.signal:`data('${t.lookupDataSource(u)}')`;return bt(o,a)||o.push(a),o},[]);if(s.length<=0)throw new Error("Projection's fit didn't find any data sources");return[Object.assign({name:r,size:i,fit:{signal:s.length>1?`[${s.join(", ")}]`:s[0]}},n)]}else return[Object.assign(Object.assign({name:r},{translate:{signal:"[width / 2, height / 2]"}}),n)]}const GZe=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class $ae extends t0{constructor(e,n,r,i){super(Object.assign({},n),{name:e}),this.specifiedProjection=n,this.size=r,this.data=i,this.merged=!1}get isFit(){return!!this.data}}function Bae(t){t.component.projection=zn(t)?WZe(t):XZe(t)}function WZe(t){var e;if(t.hasProjection){const n=xs(t.specifiedProjection),r=!(n&&(n.scale!=null||n.translate!=null)),i=r?[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]:void 0,s=r?VZe(t):void 0,o=new $ae(t.projectionName(!0),Object.assign(Object.assign({},(e=xs(t.config.projection))!==null&&e!==void 0?e:{}),n??{}),i,s);return o.get("type")||o.set("type","equalEarth",!1),o}}function VZe(t){const e=[],{encoding:n}=t;for(const r of[[Sa,Aa],[So,lu]])(rr(n[r[0]])||rr(n[r[1]]))&&e.push({signal:t.getName(`geojson_${e.length}`)});return t.channelHasField(cs)&&t.typedFieldDef(cs).type===v2&&e.push({signal:t.getName(`geojson_${e.length}`)}),e.length===0&&e.push(t.requestDataName(Kt.Main)),e}function YZe(t,e){const n=Zie(GZe,i=>!!(!Je(t.explicit,i)&&!Je(e.explicit,i)||Je(t.explicit,i)&&Je(e.explicit,i)&&Ul(t.get(i),e.get(i))));if(Ul(t.size,e.size)){if(n)return t;if(Ul(t.explicit,{}))return e;if(Ul(e.explicit,{}))return t}return null}function XZe(t){if(t.children.length===0)return;let e;for(const r of t.children)Bae(r);const n=Zie(t.children,r=>{const i=r.component.projection;if(i)if(e){const s=YZe(e,i);return s&&(e=s),!!s}else return e=i,!0;else return!0});if(e&&n){const r=t.projectionName(!0),i=new $ae(r,e.specifiedProjection,e.size,ut(e.data));for(const s of t.children){const o=s.component.projection;o&&(o.isFit&&i.data.push(...s.component.projection.data),s.renameProjection(o.get("name"),r),o.merged=!0)}return i}}var KZe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function JZe(t,e,n,r){var i,s;if(c3(e,n)){const o=zn(t)?(s=(i=t.axis(n))!==null&&i!==void 0?i:t.legend(n))!==null&&s!==void 0?s:{}:{},u=$e(e,{expr:"datum"}),a=$e(e,{expr:"datum",binSuffix:"end"});return{formulaAs:$e(e,{binSuffix:"range",forAs:!0}),formula:sN(u,a,o.format,o.formatType,r)}}return{}}function kae(t,e){return`${mse(t)}_${e}`}function ZZe(t,e){return{signal:t.getName(`${e}_bins`),extentSignal:t.getName(`${e}_extent`)}}function k7(t,e,n){var r;const i=(r=dN(n,void 0))!==null&&r!==void 0?r:{},s=kae(i,e);return t.getName(`${s}_bins`)}function eet(t){return"as"in t}function Pae(t,e,n){let r,i;eet(t)?r=je(t.as)?[t.as,`${t.as}_end`]:[t.as[0],t.as[1]]:r=[$e(t,{forAs:!0}),$e(t,{binSuffix:"end",forAs:!0})];const s=Object.assign({},dN(e,void 0)),o=kae(s,t.field),{signal:u,extentSignal:a}=ZZe(n,o);if(YO(s.extent)){const c=s.extent;i=lae(n,c.param,c),delete s.extent}const l=Object.assign(Object.assign(Object.assign({bin:s,field:t.field,as:[r]},u?{signal:u}:{}),a?{extentSignal:a}:{}),i?{span:i}:{});return{key:o,binComponent:l}}class Ia extends Ut{constructor(e,n){super(e),this.bins=n}clone(){return new Ia(null,ut(this.bins))}static makeFromEncoding(e,n){const r=n.reduceFieldDef((i,s,o)=>{if(_o(s)&&Xt(s.bin)){const{key:u,binComponent:a}=Pae(s,s.bin,n);i[u]=Object.assign(Object.assign(Object.assign({},a),i[u]),JZe(n,s,o,n.config))}return i},{});return Gt(r)?null:new Ia(e,r)}static makeFromTransform(e,n,r){const{key:i,binComponent:s}=Pae(n,n.bin,r);return new Ia(e,{[i]:s})}merge(e,n){for(const r of Te(e.bins))r in this.bins?(n(e.bins[r].signal,this.bins[r].signal),this.bins[r].as=ql([...this.bins[r].as,...e.bins[r].as],Ct)):this.bins[r]=e.bins[r];for(const r of e.children)e.removeChild(r),r.parent=this;e.remove()}producedFields(){return new Set($i(this.bins).map(e=>e.as).flat(2))}dependentFields(){return new Set($i(this.bins).map(e=>e.field))}hash(){return`Bin ${Ct(this.bins)}`}assemble(){return $i(this.bins).flatMap(e=>{const n=[],[r,...i]=e.as,s=e.bin,{extent:o}=s,u=KZe(s,["extent"]),a=Object.assign(Object.assign(Object.assign({type:"bin",field:ou(e.field),as:r,signal:e.signal},YO(o)?{extent:null}:{extent:o}),e.span?{span:{signal:`span(${e.span})`}}:{}),u);!o&&e.extentSignal&&(n.push({type:"extent",field:ou(e.field),signal:e.extentSignal}),a.extent={signal:e.extentSignal}),n.push(a);for(const l of i)for(let c=0;c<2;c++)n.push({type:"formula",expr:$e({field:r[c]},{expr:"datum"}),as:l[c]});return e.formula&&n.push({type:"formula",expr:e.formula,as:e.formulaAs}),n})}}function tet(t,e,n,r){var i;const s=zn(r)?r.encoding[Yl(e)]:void 0;if(_o(n)&&zn(r)&&Toe(n,s,r.markDef,r.config))t.add($e(n,{})),t.add($e(n,{suffix:"end"})),n.bin&&c3(n,e)&&t.add($e(n,{binSuffix:"range"}));else if(jWe(e)){const o=MWe(e);t.add(r.getName(o))}else t.add($e(n));return Cd(n)&&XYe((i=n.scale)===null||i===void 0?void 0:i.range)&&t.add(n.scale.range.field),t}function net(t,e){var n;for(const r of Te(e)){const i=e[r];for(const s of Te(i))r in t?t[r][s]=new Set([...(n=t[r][s])!==null&&n!==void 0?n:[],...i[s]]):t[r]={[s]:i[s]}}}class xu extends Ut{constructor(e,n,r){super(e),this.dimensions=n,this.measures=r}clone(){return new xu(null,new Set(this.dimensions),ut(this.measures))}get groupBy(){return this.dimensions}static makeFromEncoding(e,n){let r=!1;n.forEachFieldDef(o=>{o.aggregate&&(r=!0)});const i={},s=new Set;return!r||(n.forEachFieldDef((o,u)=>{var a,l,c,f;const{aggregate:x,field:h}=o;if(x)if(x==="count")(a=i["*"])!==null&&a!==void 0||(i["*"]={}),i["*"].count=new Set([$e(o,{forAs:!0})]);else{if(Xl(x)||Ic(x)){const p=Xl(x)?"argmin":"argmax",m=x[p];(l=i[m])!==null&&l!==void 0||(i[m]={}),i[m][p]=new Set([$e({op:p,field:m},{forAs:!0})])}else(c=i[h])!==null&&c!==void 0||(i[h]={}),i[h][x]=new Set([$e(o,{forAs:!0})]);Lc(u)&&n.scaleDomain(u)==="unaggregated"&&((f=i[h])!==null&&f!==void 0||(i[h]={}),i[h].min=new Set([$e({field:h,aggregate:"min"},{forAs:!0})]),i[h].max=new Set([$e({field:h,aggregate:"max"},{forAs:!0})]))}else tet(s,u,o,n)}),s.size+Te(i).length===0)?null:new xu(e,s,i)}static makeFromTransform(e,n){var r,i,s;const o=new Set,u={};for(const a of n.aggregate){const{op:l,field:c,as:f}=a;l&&(l==="count"?((r=u["*"])!==null&&r!==void 0||(u["*"]={}),u["*"].count=new Set([f||$e(a,{forAs:!0})])):((i=u[c])!==null&&i!==void 0||(u[c]={}),u[c][l]=new Set([f||$e(a,{forAs:!0})])))}for(const a of(s=n.groupby)!==null&&s!==void 0?s:[])o.add(a);return o.size+Te(u).length===0?null:new xu(e,o,u)}merge(e){return FWe(this.dimensions,e.dimensions)?(net(this.measures,e.measures),!0):(SYe("different dimensions, cannot merge"),!1)}addDimensions(e){e.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...Te(this.measures)])}producedFields(){const e=new Set;for(const n of Te(this.measures))for(const r of Te(this.measures[n])){const i=this.measures[n][r];i.size===0?e.add(`${r}_${n}`):i.forEach(e.add,e)}return e}hash(){return`Aggregate ${Ct({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const e=[],n=[],r=[];for(const s of Te(this.measures))for(const o of Te(this.measures[s]))for(const u of this.measures[s][o])r.push(u),e.push(o),n.push(s==="*"?null:ou(s));return{type:"aggregate",groupby:[...this.dimensions].map(ou),ops:e,fields:n,as:r}}}class P2 extends Ut{constructor(e,n,r,i){super(e),this.model=n,this.name=r,this.data=i;for(const s of vo){const o=n.facet[s];if(o){const{bin:u,sort:a}=o;this[s]=Object.assign({name:n.getName(`${s}_domain`),fields:[$e(o),...Xt(u)?[$e(o,{binSuffix:"end"})]:[]]},Ra(a)?{sortField:a}:_e(a)?{sortIndexField:B2(o,s)}:{})}}this.childModel=n.child}hash(){let e="Facet";for(const n of vo)this[n]&&(e+=` ${n.charAt(0)}:${Ct(this[n])}`);return e}get fields(){var e;const n=[];for(const r of vo)!((e=this[r])===null||e===void 0)&&e.fields&&n.push(...this[r].fields);return n}dependentFields(){const e=new Set(this.fields);for(const n of vo)this[n]&&(this[n].sortField&&e.add(this[n].sortField.field),this[n].sortIndexField&&e.add(this[n].sortIndexField));return e}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const e={};for(const n of Ca){const r=this.childModel.component.scales[n];if(r&&!r.merged){const i=r.get("type"),s=r.get("range");if(Ar(i)&&Bc(s)){const o=BN(this.childModel,n),u=W7(o);u?e[n]=u:Re(d8(n))}}}return e}assembleRowColumnHeaderData(e,n,r){const i={row:"y",column:"x",facet:void 0}[e],s=[],o=[],u=[];i&&r&&r[i]&&(n?(s.push(`distinct_${r[i]}`),o.push("max")):(s.push(r[i]),o.push("distinct")),u.push(`distinct_${r[i]}`));const{sortField:a,sortIndexField:l}=this[e];if(a){const{op:c=oN,field:f}=a;s.push(f),o.push(c),u.push($e(a,{forAs:!0}))}else l&&(s.push(l),o.push("max"),u.push(l));return{name:this[e].name,source:n??this.data,transform:[Object.assign({type:"aggregate",groupby:this[e].fields},s.length?{fields:s,ops:o,as:u}:{})]}}assembleFacetHeaderData(e){var n,r;const{columns:i}=this.model.layout,{layoutHeaders:s}=this.model.component,o=[],u={};for(const c of F7){for(const f of w7){const x=(n=s[c]&&s[c][f])!==null&&n!==void 0?n:[];for(const h of x)if(((r=h.axes)===null||r===void 0?void 0:r.length)>0){u[c]=!0;break}}if(u[c]){const f=`length(data("${this.facet.name}"))`,x=c==="row"?i?{signal:`ceil(${f} / ${i})`}:1:i?{signal:`min(${f}, ${i})`}:{signal:f};o.push({name:`${this.facet.name}_${c}`,transform:[{type:"sequence",start:0,stop:x}]})}}const{row:a,column:l}=u;return(a||l)&&o.unshift(this.assembleRowColumnHeaderData("facet",null,e)),o}assemble(){var e,n;const r=[];let i=null;const s=this.getChildIndependentFieldsWithStep(),{column:o,row:u,facet:a}=this;if(o&&u&&(s.x||s.y)){i=`cross_${this.column.name}_${this.row.name}`;const l=[].concat((e=s.x)!==null&&e!==void 0?e:[],(n=s.y)!==null&&n!==void 0?n:[]),c=l.map(()=>"distinct");r.push({name:i,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:l,ops:c}]})}for(const l of[zl,Hl])this[l]&&r.push(this.assembleRowColumnHeaderData(l,i,s));if(a){const l=this.assembleFacetHeaderData(s);l&&r.push(...l)}return r}}function Mae(t){return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function ret(t,e){const n=rse(t);if(e==="number")return`toNumber(${n})`;if(e==="boolean")return`toBoolean(${n})`;if(e==="string")return`toString(${n})`;if(e==="date")return`toDate(${n})`;if(e==="flatten")return n;if(e.startsWith("date:")){const r=Mae(e.slice(5,e.length));return`timeParse(${n},'${r}')`}else if(e.startsWith("utc:")){const r=Mae(e.slice(4,e.length));return`utcParse(${n},'${r}')`}else return Re(OVe(e)),null}function iet(t){const e={};return kO(t.filter,n=>{var r;if(Xse(n)){let i=null;A8(n)?i=Ms(n.equal):v8(n)?i=Ms(n.lte):S8(n)?i=Ms(n.lt):_8(n)?i=Ms(n.gt):C8(n)?i=Ms(n.gte):b8(n)?i=n.range[0]:T8(n)&&(i=((r=n.oneOf)!==null&&r!==void 0?r:n.in)[0]),i&&(Ad(i)?e[n.field]="date":tn(i)?e[n.field]="number":je(i)&&(e[n.field]="string")),n.timeUnit&&(e[n.field]="date")}}),e}function set(t){const e={};function n(r){R2(r)?e[r.field]="date":r.type==="quantitative"&&oVe(r.aggregate)?e[r.field]="number":ZE(r.field)>1?r.field in e||(e[r.field]="flatten"):Cd(r)&&Ra(r.sort)&&ZE(r.sort.field)>1&&(r.sort.field in e||(e[r.sort.field]="flatten"))}if((zn(t)||hu(t))&&t.forEachFieldDef((r,i)=>{if(_o(r))n(r);else{const s=md(i),o=t.fieldDef(s);n(Object.assign(Object.assign({},r),{type:o.type}))}}),zn(t)){const{mark:r,markDef:i,encoding:s}=t;if(kc(r)&&!t.encoding.order){const o=i.orient==="horizontal"?"y":"x",u=s[o];Ie(u)&&u.type==="quantitative"&&!(u.field in e)&&(e[u.field]="number")}}return e}function oet(t){const e={};if(zn(t)&&t.component.selection)for(const n of Te(t.component.selection)){const r=t.component.selection[n];for(const i of r.project.items)!i.channel&&ZE(i.field)>1&&(e[i.field]="flatten")}return e}class si extends Ut{constructor(e,n){super(e),this._parse=n}clone(){return new si(null,ut(this._parse))}hash(){return`Parse ${Ct(this._parse)}`}static makeExplicit(e,n,r){var i;let s={};const o=n.data;return!Uc(o)&&(!((i=o==null?void 0:o.format)===null||i===void 0)&&i.parse)&&(s=o.format.parse),this.makeWithAncestors(e,s,{},r)}static makeWithAncestors(e,n,r,i){for(const u of Te(r)){const a=i.getWithExplicit(u);a.value!==void 0&&(a.explicit||a.value===r[u]||a.value==="derived"||r[u]==="flatten"?delete r[u]:Re($se(u,r[u],a.value)))}for(const u of Te(n)){const a=i.get(u);a!==void 0&&(a===n[u]?delete n[u]:Re($se(u,n[u],a)))}const s=new t0(n,r);i.copyAll(s);const o={};for(const u of Te(s.combine())){const a=s.get(u);a!==null&&(o[u]=a)}return Te(o).length===0||i.parseNothing?null:new si(e,o)}get parse(){return this._parse}merge(e){this._parse=Object.assign(Object.assign({},this._parse),e.parse),e.remove()}assembleFormatParse(){const e={};for(const n of Te(this._parse)){const r=this._parse[n];ZE(n)===1&&(e[n]=r)}return e}producedFields(){return new Set(Te(this._parse))}dependentFields(){return new Set(Te(this._parse))}assembleTransforms(e=!1){return Te(this._parse).filter(n=>e?ZE(n)>1:!0).map(n=>{const r=ret(n,this._parse[n]);return r?{type:"formula",expr:r,as:ise(n)}:null}).filter(n=>n!==null)}}class Qc extends Ut{clone(){return new Qc(null)}constructor(e){super(e)}dependentFields(){return new Set}producedFields(){return new Set([x3])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:x3}}}class y3 extends Ut{constructor(e,n){super(e),this.params=n}clone(){return new y3(null,this.params)}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${Ct(this.params)}`}assemble(){return Object.assign({type:"graticule"},this.params===!0?{}:this.params)}}class E3 extends Ut{constructor(e,n){super(e),this.params=n}clone(){return new E3(null,this.params)}dependentFields(){return new Set}producedFields(){var e;return new Set([(e=this.params.as)!==null&&e!==void 0?e:"data"])}hash(){return`Hash ${Ct(this.params)}`}assemble(){return Object.assign({type:"sequence"},this.params)}}class Rd extends Ut{constructor(e){super(null),e??(e={name:"source"});let n;if(Uc(e)||(n=e.format?Object.assign({},Ao(e.format,["parse"])):{}),d3(e))this._data={values:e.values};else if(N2(e)){if(this._data={url:e.url},!n.type){let r=/(?:\.([^.]+))?$/.exec(e.url)[1];bt(["json","csv","tsv","dsv","topojson"],r)||(r="json"),n.type=r}}else $ue(e)?this._data={values:[{type:"Sphere"}]}:(Lue(e)||Uc(e))&&(this._data={});this._generator=Uc(e),e.name&&(this._name=e.name),n&&!Gt(n)&&(this._data.format=n)}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(e){this._name=e}set parent(e){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 Object.assign(Object.assign({name:this._name},this._data),{transform:[]})}}var jae=function(t,e,n,r,i){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?i.call(t,n):i?i.value=n:e.set(t,n),n},uet=function(t,e,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(t):r?r.value:e.get(t)},A3;function P7(t){return t instanceof Rd||t instanceof y3||t instanceof E3}class M7{constructor(){A3.set(this,void 0),jae(this,A3,!1,"f")}setModified(){jae(this,A3,!0,"f")}get modifiedFlag(){return uet(this,A3,"f")}}A3=new WeakMap;class Od extends M7{getNodeDepths(e,n,r){r.set(e,n);for(const i of e.children)this.getNodeDepths(i,n+1,r);return r}optimize(e){const r=[...this.getNodeDepths(e,0,new Map).entries()].sort((i,s)=>s[1]-i[1]);for(const i of r)this.run(i[0]);return this.modifiedFlag}}class j7 extends M7{optimize(e){this.run(e);for(const n of e.children)this.optimize(n);return this.modifiedFlag}}class aet extends j7{mergeNodes(e,n){const r=n.shift();for(const i of n)e.removeChild(i),i.parent=r,i.remove()}run(e){const n=e.children.map(i=>i.hash()),r={};for(let i=0;i<n.length;i++)r[n[i]]===void 0?r[n[i]]=[e.children[i]]:r[n[i]].push(e.children[i]);for(const i of Te(r))r[i].length>1&&(this.setModified(),this.mergeNodes(e,r[i]))}}class cet extends j7{constructor(e){super(),this.requiresSelectionId=e&&T7(e)}run(e){e instanceof Qc&&(this.requiresSelectionId&&(P7(e.parent)||e.parent instanceof xu||e.parent instanceof si)||(this.setModified(),e.remove()))}}class fet extends M7{optimize(e){return this.run(e,new Set),this.modifiedFlag}run(e,n){let r=new Set;e instanceof La&&(r=e.producedFields(),ese(r,n)&&(this.setModified(),e.removeFormulas(n),e.producedFields.length===0&&e.remove()));for(const i of e.children)this.run(i,new Set([...n,...r]))}}class xet extends j7{constructor(){super()}run(e){e instanceof Mi&&!e.isRequired()&&(this.setModified(),e.remove())}}class det extends Od{run(e){if(!P7(e)&&!(e.numChildren()>1)){for(const n of e.children)if(n instanceof si)if(e instanceof si)this.setModified(),e.merge(n);else{if(nse(e.producedFields(),n.dependentFields()))continue;this.setModified(),n.swapWithParent()}}}}class het extends Od{run(e){const n=[...e.children],r=e.children.filter(i=>i instanceof si);if(e.numChildren()>1&&r.length>=1){const i={},s=new Set;for(const o of r){const u=o.parse;for(const a of Te(u))a in i?i[a]!==u[a]&&s.add(a):i[a]=u[a]}for(const o of s)delete i[o];if(!Gt(i)){this.setModified();const o=new si(e,i);for(const u of n){if(u instanceof si)for(const a of Te(i))delete u.parse[a];e.removeChild(u),u.parent=o,u instanceof si&&Te(u.parse).length===0&&u.remove()}}}}}class pet extends Od{run(e){e instanceof Mi||e.numChildren()>0||e instanceof P2||e instanceof Rd||(this.setModified(),e.remove())}}class get extends Od{run(e){const n=e.children.filter(i=>i instanceof La),r=n.pop();for(const i of n)this.setModified(),r.merge(i)}}class met extends Od{run(e){const n=e.children.filter(i=>i instanceof xu),r={};for(const i of n){const s=Ct(i.groupBy);s in r||(r[s]=[]),r[s].push(i)}for(const i of Te(r)){const s=r[i];if(s.length>1){const o=s.pop();for(const u of s)o.merge(u)&&(e.removeChild(u),u.parent=o,u.remove(),this.setModified())}}}}class yet extends Od{constructor(e){super(),this.model=e}run(e){const n=!(P7(e)||e instanceof I2||e instanceof si||e instanceof Qc),r=[],i=[];for(const s of e.children)s instanceof Ia&&(n&&!nse(e.producedFields(),s.dependentFields())?r.push(s):i.push(s));if(r.length>0){const s=r.pop();for(const o of r)s.merge(o,this.model.renameSignal.bind(this.model));this.setModified(),e instanceof Ia?e.merge(s,this.model.renameSignal.bind(this.model)):s.swapWithParent()}if(i.length>1){const s=i.pop();for(const o of i)s.merge(o,this.model.renameSignal.bind(this.model));this.setModified()}}}class Eet extends Od{run(e){const n=[...e.children];if(!p2(n,o=>o instanceof Mi)||e.numChildren()<=1)return;const i=[];let s;for(const o of n)if(o instanceof Mi){let u=o;for(;u.numChildren()===1;){const[a]=u.children;if(a instanceof Mi)u=a;else break}i.push(...u.children),s?(e.removeChild(o),o.parent=s.parent,s.parent.removeChild(s),s.parent=u,this.setModified()):s=u}else i.push(o);if(i.length){this.setModified();for(const o of i)o.parent.removeChild(o),o.parent=s}}}class Nd extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new Nd(null,ut(this.transform))}addDimensions(e){this.transform.groupby=ql(this.transform.groupby.concat(e),n=>n)}dependentFields(){const e=new Set;return this.transform.groupby&&this.transform.groupby.forEach(e.add,e),this.transform.joinaggregate.map(n=>n.field).filter(n=>n!==void 0).forEach(e.add,e),e}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(e){var n;return(n=e.as)!==null&&n!==void 0?n:$e(e)}hash(){return`JoinAggregateTransform ${Ct(this.transform)}`}assemble(){const e=[],n=[],r=[];for(const s of this.transform.joinaggregate)n.push(s.op),r.push(this.getDefaultName(s)),e.push(s.field===void 0?null:s.field);const i=this.transform.groupby;return Object.assign({type:"joinaggregate",as:r,ops:n,fields:e},i!==void 0?{groupby:i}:{})}}function Aet(t){return t.stack.stackBy.reduce((e,n)=>{const r=n.fieldDef,i=$e(r);return i&&e.push(i),e},[])}function vet(t){return _e(t)&&t.every(e=>je(e))&&t.length>1}class n0 extends Ut{constructor(e,n){super(e),this._stack=n}clone(){return new n0(null,ut(this._stack))}static makeFromTransform(e,n){const{stack:r,groupby:i,as:s,offset:o="zero"}=n,u=[],a=[];if(n.sort!==void 0)for(const f of n.sort)u.push(f.field),a.push(nr(f.order,"ascending"));const l={field:u,order:a};let c;return vet(s)?c=s:je(s)?c=[s,`${s}_end`]:c=[`${n.stack}_start`,`${n.stack}_end`],new n0(e,{dimensionFieldDefs:[],stackField:r,groupby:i,offset:o,sort:l,facetby:[],as:c})}static makeFromEncoding(e,n){const r=n.stack,{encoding:i}=n;if(!r)return null;const{groupbyChannels:s,fieldChannel:o,offset:u,impute:a}=r,l=s.map(h=>{const p=i[h];return Da(p)}).filter(h=>!!h),c=Aet(n),f=n.encoding.order;let x;return _e(f)||Ie(f)?x=bse(f):x=c.reduce((h,p)=>(h.field.push(p),h.order.push(o==="y"?"descending":"ascending"),h),{field:[],order:[]}),new n0(e,{dimensionFieldDefs:l,stackField:n.vgField(o),facetby:[],stackby:c,sort:x,offset:u,impute:a,as:[n.vgField(o,{suffix:"start",forAs:!0}),n.vgField(o,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(e){this._stack.facetby.push(...e)}dependentFields(){const e=new Set;return e.add(this._stack.stackField),this.getGroupbyFields().forEach(e.add,e),this._stack.facetby.forEach(e.add,e),this._stack.sort.field.forEach(e.add,e),e}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${Ct(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:e,impute:n,groupby:r}=this._stack;return e.length>0?e.map(i=>i.bin?n?[$e(i,{binSuffix:"mid"})]:[$e(i,{}),$e(i,{binSuffix:"end"})]:[$e(i)]).flat():r??[]}assemble(){const e=[],{facetby:n,dimensionFieldDefs:r,stackField:i,stackby:s,sort:o,offset:u,impute:a,as:l}=this._stack;if(a)for(const c of r){const{bandPosition:f=.5,bin:x}=c;if(x){const h=$e(c,{expr:"datum"}),p=$e(c,{expr:"datum",binSuffix:"end"});e.push({type:"formula",expr:`${f}*${h}+${1-f}*${p}`,as:$e(c,{binSuffix:"mid",forAs:!0})})}e.push({type:"impute",field:i,groupby:[...s,...n],key:$e(c,{binSuffix:"mid"}),method:"value",value:0})}return e.push({type:"stack",groupby:[...this.getGroupbyFields(),...n],field:i,sort:o,as:l,offset:u}),e}}class M2 extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new M2(null,ut(this.transform))}addDimensions(e){this.transform.groupby=ql(this.transform.groupby.concat(e),n=>n)}dependentFields(){var e,n;const r=new Set;return((e=this.transform.groupby)!==null&&e!==void 0?e:[]).forEach(r.add,r),((n=this.transform.sort)!==null&&n!==void 0?n:[]).forEach(i=>r.add(i.field)),this.transform.window.map(i=>i.field).filter(i=>i!==void 0).forEach(r.add,r),r}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(e){var n;return(n=e.as)!==null&&n!==void 0?n:$e(e)}hash(){return`WindowTransform ${Ct(this.transform)}`}assemble(){var e;const n=[],r=[],i=[],s=[];for(const x of this.transform.window)r.push(x.op),i.push(this.getDefaultName(x)),s.push(x.param===void 0?null:x.param),n.push(x.field===void 0?null:x.field);const o=this.transform.frame,u=this.transform.groupby;if(o&&o[0]===null&&o[1]===null&&r.every(x=>l8(x)))return Object.assign({type:"joinaggregate",as:i,ops:r,fields:n},u!==void 0?{groupby:u}:{});const a=[],l=[];if(this.transform.sort!==void 0)for(const x of this.transform.sort)a.push(x.field),l.push((e=x.order)!==null&&e!==void 0?e:"ascending");const c={field:a,order:l},f=this.transform.ignorePeers;return Object.assign(Object.assign(Object.assign({type:"window",params:s,as:i,ops:r,fields:n,sort:c},f!==void 0?{ignorePeers:f}:{}),u!==void 0?{groupby:u}:{}),o!==void 0?{frame:o}:{})}}function _et(t){function e(n){if(!(n instanceof P2)){const r=n.clone();if(r instanceof Mi){const i=q7+r.getSource();r.setSource(i),t.model.component.data.outputNodes[i]=r}else(r instanceof xu||r instanceof n0||r instanceof M2||r instanceof Nd)&&r.addDimensions(t.fields);for(const i of n.children.flatMap(e))i.parent=r;return[r]}return n.children.flatMap(e)}return e}function U7(t){if(t instanceof P2)if(t.numChildren()===1&&!(t.children[0]instanceof Mi)){const e=t.children[0];(e instanceof xu||e instanceof n0||e instanceof M2||e instanceof Nd)&&e.addDimensions(t.fields),e.swapWithParent(),U7(t)}else{const e=t.model.component.data.main;Uae(e);const n=_et(t),r=t.children.map(n).flat();for(const i of r)i.parent=e}else t.children.map(U7)}function Uae(t){if(t instanceof Mi&&t.type===Kt.Main&&t.numChildren()===1){const e=t.children[0];e instanceof P2||(e.swapWithParent(),Uae(t))}}const q7="scale_",$N=5;function H7(t){for(const e of t){for(const n of e.children)if(n.parent!==e)return!1;if(!H7(e.children))return!1}return!0}function du(t,e){let n=!1;for(const r of e)n=t.optimize(r)||n;return n}function qae(t,e,n){let r=t.sources,i=!1;return i=du(new xet,r)||i,i=du(new cet(e),r)||i,r=r.filter(s=>s.numChildren()>0),i=du(new pet,r)||i,r=r.filter(s=>s.numChildren()>0),n||(i=du(new det,r)||i,i=du(new yet(e),r)||i,i=du(new fet,r)||i,i=du(new het,r)||i,i=du(new met,r)||i,i=du(new get,r)||i,i=du(new aet,r)||i,i=du(new Eet,r)||i),t.sources=r,i}function Cet(t,e){H7(t.sources);let n=0,r=0;for(let i=0;i<$N&&qae(t,e,!0);i++)n++;t.sources.map(U7);for(let i=0;i<$N&&qae(t,e,!1);i++)r++;H7(t.sources),Math.max(n,r)===$N&&Re(`Maximum optimization runs(${$N}) reached.`)}class hs{constructor(e){Object.defineProperty(this,"signal",{enumerable:!0,get:e})}static fromName(e,n){return new hs(()=>e(n))}}var bet=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Hae(t){zn(t)?Tet(t):Ret(t)}function Tet(t){const e=t.component.scales;for(const n of Te(e)){const r=Net(t,n);if(e[n].setWithExplicit("domains",r),Fet(t,n),t.component.data.isFaceted){let s=t;for(;!hu(s)&&s.parent;)s=s.parent;if(s.component.resolve.scale[n]==="shared")for(const u of r.value)Kl(u)&&(u.data=q7+u.data.replace(q7,""))}}}function Ret(t){for(const n of t.children)Hae(n);const e=t.component.scales;for(const n of Te(e)){let r,i=null;for(const s of t.children){const o=s.component.scales[n];if(o){r===void 0?r=o.getWithExplicit("domains"):r=jc(r,o.getWithExplicit("domains"),"domains","scale",G7);const u=o.get("selectionExtent");i&&u&&i.param!==u.param&&Re(CVe),i=u}}e[n].setWithExplicit("domains",r),i&&e[n].set("selectionExtent",i,!0)}}function Oet(t,e,n,r){if(t==="unaggregated"){const{valid:i,reason:s}=zae(e,n);if(!i){Re(s);return}}else if(t===void 0&&r.useUnaggregatedDomain){const{valid:i}=zae(e,n);if(i)return"unaggregated"}return t}function Net(t,e){const n=t.getScaleComponent(e).get("type"),{encoding:r}=t,i=Oet(t.scaleDomain(e),t.typedFieldDef(e),n,t.config.scale);return i!==t.scaleDomain(e)&&(t.specifiedScales[e]=Object.assign(Object.assign({},t.specifiedScales[e]),{domain:i})),e==="x"&&rr(r.x2)?rr(r.x)?jc(Gc(n,i,t,"x"),Gc(n,i,t,"x2"),"domain","scale",G7):Gc(n,i,t,"x2"):e==="y"&&rr(r.y2)?rr(r.y)?jc(Gc(n,i,t,"y"),Gc(n,i,t,"y2"),"domain","scale",G7):Gc(n,i,t,"y2"):Gc(n,i,t,e)}function Det(t,e,n){return t.map(r=>({signal:`{data: ${hN(r,{timeUnit:n,type:e})}}`}))}function z7(t,e,n){var r;const i=(r=ki(n))===null||r===void 0?void 0:r.unit;return e==="temporal"||i?Det(t,e,i):[t]}function Gc(t,e,n,r){const{encoding:i}=n,s=rr(i[r]),{type:o}=s,u=s.timeUnit;if(YYe(e)){const f=Gc(t,void 0,n,r),x=z7(e.unionWith,o,u);return wa([...f.value,...x])}else{if(Ye(e))return wa([e]);if(e&&e!=="unaggregated"&&!ioe(e))return wa(z7(e,o,u))}const a=n.stack;if(a&&r===a.fieldChannel){if(a.offset==="normalize")return Us([[0,1]]);const f=n.requestDataName(Kt.Main);return Us([{data:f,field:n.vgField(r,{suffix:"start"})},{data:f,field:n.vgField(r,{suffix:"end"})}])}const l=Lc(r)&&Ie(s)?wet(n,r,t):void 0;if(Oa(s)){const f=z7([s.datum],o,u);return Us(f)}const c=s;if(e==="unaggregated"){const f=n.requestDataName(Kt.Main),{field:x}=s;return Us([{data:f,field:$e({field:x,aggregate:"min"})},{data:f,field:$e({field:x,aggregate:"max"})}])}else if(Xt(c.bin)){if(Ar(t))return Us(t==="bin-ordinal"?[]:[{data:PO(l)?n.requestDataName(Kt.Main):n.requestDataName(Kt.Raw),field:n.vgField(r,c3(c,r)?{binSuffix:"range"}:{}),sort:l===!0||!He(l)?{field:n.vgField(r,{}),op:"min"}:l}]);{const{bin:f}=c;if(Xt(f)){const x=k7(n,c.field,f);return Us([new hs(()=>{const h=n.getSignalName(x);return`[${h}.start, ${h}.stop]`})])}else return Us([{data:n.requestDataName(Kt.Main),field:n.vgField(r,{})}])}}else if(c.timeUnit&&bt(["time","utc"],t)&&Toe(c,zn(n)?n.encoding[Yl(r)]:void 0,n.markDef,n.config)){const f=n.requestDataName(Kt.Main);return Us([{data:f,field:n.vgField(r)},{data:f,field:n.vgField(r,{suffix:"end"})}])}else return Us(l?[{data:PO(l)?n.requestDataName(Kt.Main):n.requestDataName(Kt.Raw),field:n.vgField(r),sort:l}]:[{data:n.requestDataName(Kt.Main),field:n.vgField(r)}])}function Q7(t,e){const{op:n,field:r,order:i}=t;return Object.assign(Object.assign({op:n??(e?"sum":oN)},r?{field:ou(r)}:{}),i?{order:i}:{})}function Fet(t,e){var n;const r=t.component.scales[e],i=t.specifiedScales[e].domain,s=(n=t.fieldDef(e))===null||n===void 0?void 0:n.bin,o=ioe(i)&&i,u=yd(s)&&YO(s.extent)&&s.extent;(o||u)&&r.set("selectionExtent",o??u,!0)}function wet(t,e,n){if(!Ar(n))return;const r=t.fieldDef(e),i=r.sort;if(voe(i))return{op:"min",field:B2(r,e),order:"ascending"};const{stack:s}=t,o=s?new Set([...s.groupbyFields,...s.stackBy.map(u=>u.fieldDef.field)]):void 0;if(Ra(i)){const u=s&&!o.has(i.field);return Q7(i,u)}else if(Soe(i)){const{encoding:u,order:a}=i,l=t.fieldDef(u),{aggregate:c,field:f}=l,x=s&&!o.has(f);if(Xl(c)||Ic(c))return Q7({field:$e(l),order:a},x);if(l8(c)||!c)return Q7({op:c,field:f,order:a},x)}else{if(i==="descending")return{op:"min",field:t.vgField(e),order:"descending"};if(bt(["ascending",void 0],i))return!0}}function zae(t,e){const{aggregate:n,type:r}=t;return n?je(n)&&!aVe.has(n)?{valid:!1,reason:JVe(n)}:r==="quantitative"&&e==="log"?{valid:!1,reason:ZVe(t)}:{valid:!0}:{valid:!1,reason:KVe(t)}}function G7(t,e,n,r){return t.explicit&&e.explicit&&Re(iYe(n,r,t.value,e.value)),{explicit:t.explicit,value:[...t.value,...e.value]}}function Let(t){const e=ql(t.map(o=>Kl(o)?bet(o,["sort"]):o),Ct),n=ql(t.map(o=>{if(Kl(o)){const u=o.sort;return u!==void 0&&!PO(u)&&("op"in u&&u.op==="count"&&delete u.field,u.order==="ascending"&&delete u.order),u}}).filter(o=>o!==void 0),Ct);if(e.length===0)return;if(e.length===1){const o=t[0];if(Kl(o)&&n.length>0){let u=n[0];if(n.length>1)Re(Use),u=!0;else if(He(u)&&"field"in u){const a=u.field;o.field===a&&(u=u.order?{order:u.order}:!0)}return Object.assign(Object.assign({},o),{sort:u})}return o}const r=ql(n.map(o=>PO(o)||!("op"in o)||je(o.op)&&o.op in iVe?o:(Re(oYe(o)),!0)),Ct);let i;r.length===1?i=r[0]:r.length>1&&(Re(Use),i=!0);const s=ql(t.map(o=>Kl(o)?o.data:null),o=>o);return s.length===1&&s[0]!==null?Object.assign({data:s[0],fields:e.map(u=>u.field)},i?{sort:i}:{}):Object.assign({fields:e},i?{sort:i}:{})}function W7(t){if(Kl(t)&&je(t.field))return t.field;if(cVe(t)){let e;for(const n of t.fields)if(Kl(n)&&je(n.field)){if(!e)e=n.field;else if(e!==n.field)return Re(uYe),e}return Re(aYe),e}else if(fVe(t)){Re(lYe);const e=t.fields[0];return je(e)?e:void 0}}function BN(t,e){const r=t.component.scales[e].get("domains").map(i=>(Kl(i)&&(i.data=t.lookupDataSource(i.data)),i));return Let(r)}var Iet=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Qae(t){return j2(t)||X7(t)?t.children.reduce((e,n)=>e.concat(Qae(n)),Gae(t)):Gae(t)}function Gae(t){return Te(t.component.scales).reduce((e,n)=>{const r=t.component.scales[n];if(r.merged)return e;const i=r.combine(),{name:s,type:o,selectionExtent:u,domains:a,range:l,reverse:c}=i,f=Iet(i,["name","type","selectionExtent","domains","range","reverse"]),x=$et(i.range,s,n,t),h=BN(t,n),p=u?_Je(t,u,r,h):null;return e.push(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:s,type:o},h?{domain:h}:{}),p?{domainRaw:p}:{}),{range:x}),c!==void 0?{reverse:c}:{}),f)),e},[])}function $et(t,e,n,r){if(Ir(n)){if(Bc(t))return{step:{signal:`${e}_step`}}}else if(He(t)&&Kl(t))return Object.assign(Object.assign({},t),{data:r.lookupDataSource(t.data)});return t}class Wae extends t0{constructor(e,n){super({},{name:e}),this.merged=!1,this.setWithExplicit("type",n)}domainDefinitelyIncludesZero(){return this.get("zero")!==!1?!0:p2(this.get("domains"),e=>_e(e)&&e.length===2&&e[0]<=0&&e[1]>=0)}}const Bet=["range","scheme"];function ket(t){const e=t.component.scales;for(const n of VO){const r=e[n];if(!r)continue;const i=Pet(n,t);r.setWithExplicit("range",i)}}function Vae(t,e){const n=t.fieldDef(e);if(n!=null&&n.bin){const{bin:r,field:i}=n,s=fs(e),o=t.getName(s);if(He(r)&&r.binned&&r.step!==void 0)return new hs(()=>{const u=t.scaleName(e),a=`(domain("${u}")[1] - domain("${u}")[0]) / ${r.step}`;return`${t.getSignalName(o)} / (${a})`});if(Xt(r)){const u=k7(t,i,r);return new hs(()=>{const a=t.getSignalName(u),l=`(${a}.stop - ${a}.start) / ${a}.step`;return`${t.getSignalName(o)} / (${l})`})}}}function Pet(t,e){const n=e.specifiedScales[t],{size:r}=e,s=e.getScaleComponent(t).get("type");for(const f of Bet)if(n[f]!==void 0){const x=F8(s,f),h=soe(t,f);if(!x)Re(Mse(s,f,t));else if(h)Re(h);else switch(f){case"range":{const p=n.range;if(_e(p)){if(Ir(t))return wa(p.map(m=>{if(m==="width"||m==="height"){const g=e.getName(m),y=e.getSignalName.bind(e);return hs.fromName(y,g)}return m}))}else if(He(p))return wa({data:e.requestDataName(Kt.Main),field:p.field,sort:{op:"min",field:e.vgField(t)}});return wa(p)}case"scheme":return wa(Met(n[f]))}}const o=t===mn||t==="xOffset"?"width":"height",u=r[o];if(Fa(u)){if(Ir(t))if(Ar(s)){const f=Yae(u,e,t);if(f)return wa({step:f})}else Re(jse(o));else if(E2(t)){const f=t===Rc?"x":"y";if(e.getScaleComponent(f).get("type")==="band"){const p=Xae(u,s);if(p)return wa(p)}}}const{rangeMin:a,rangeMax:l}=n,c=jet(t,e);return(a!==void 0||l!==void 0)&&F8(s,"rangeMin")&&_e(c)&&c.length===2?wa([a??c[0],l??c[1]]):Us(c)}function Met(t){return VYe(t)?Object.assign({scheme:t.name},Ao(t,["name"])):{scheme:t}}function jet(t,e){const{size:n,config:r,mark:i,encoding:s}=e,o=e.getSignalName.bind(e),{type:u}=rr(s[t]),l=e.getScaleComponent(t).get("type"),{domain:c,domainMid:f}=e.specifiedScales[t];switch(t){case mn:case Er:{if(bt(["point","band"],l)){const p=Kae(t,n,r.view);if(Fa(p))return{step:Yae(p,e,t)}}const x=fs(t),h=e.getName(x);return t===Er&&js(l)?[hs.fromName(o,h),0]:[0,hs.fromName(o,h)]}case Rc:case m2:return Uet(t,e,l);case Wl:{const x=e.component.scales[t].get("zero"),h=Jae(i,x,r),p=zet(i,n,e,r);return _2(l)?Het(h,p,qet(l,r,c,t)):[h,p]}case au:return[0,Math.PI*2];case pd:return[0,360];case Ea:return[0,new hs(()=>{const x=e.getSignalName("width"),h=e.getSignalName("height");return`min(${x},${h})/2`})];case Dc:return[r.scale.minStrokeWidth,r.scale.maxStrokeWidth];case Fc:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case cs:return"symbol";case ls:case va:case _a:return l==="ordinal"?u==="nominal"?"category":"ordinal":f!==void 0?"diverging":i==="rect"||i==="geoshape"?"heatmap":"ramp";case Vl:case Oc:case Nc:return[r.scale.minOpacity,r.scale.maxOpacity]}}function Yae(t,e,n){var r,i,s,o,u;const{encoding:a}=e,l=e.getScaleComponent(n),c=cse(n),f=a[c];if(oue({step:t,offsetIsDiscrete:st(f)&&Jse(f.type)})==="offset"&&Moe(a,c)){const h=e.getScaleComponent(c);let m=`domain('${e.scaleName(c)}').length`;if(h.get("type")==="band"){const y=(i=(r=h.get("paddingInner"))!==null&&r!==void 0?r:h.get("padding"))!==null&&i!==void 0?i:0,E=(o=(s=h.get("paddingOuter"))!==null&&s!==void 0?s:h.get("padding"))!==null&&o!==void 0?o:0;m=`bandspace(${m}, ${y}, ${E})`}const g=(u=l.get("paddingInner"))!==null&&u!==void 0?u:l.get("padding");return{signal:`${t.step} * ${m} / (1-${hVe(g)})`}}else return t.step}function Xae(t,e){if(oue({step:t,offsetIsDiscrete:Ar(e)})==="offset")return{step:t.step}}function Uet(t,e,n){const r=t===Rc?"x":"y",s=e.getScaleComponent(r).get("type"),o=e.scaleName(r);if(s==="band"){const u=Kae(r,e.size,e.config.view);if(Fa(u)){const a=Xae(u,n);if(a)return a}return[0,{signal:`bandwidth('${o}')`}]}else return OWe(`Cannot use ${t} scale if ${r} scale is not discrete.`)}function Kae(t,e,n){const r=t===mn?"width":"height",i=e[r];return i||vN(n,r)}function qet(t,e,n,r){switch(t){case"quantile":return e.scale.quantileCount;case"quantize":return e.scale.quantizeCount;case"threshold":return n!==void 0&&_e(n)?n.length+1:(Re(yYe(r)),3)}}function Het(t,e,n){const r=()=>{const i=Jl(e),s=Jl(t),o=`(${i} - ${s}) / (${n} - 1)`;return`sequence(${s}, ${i} + ${o}, ${o})`};return Ye(e)?new hs(r):{signal:r()}}function Jae(t,e,n){if(e)return Ye(e)?{signal:`${e.signal} ? 0 : ${Jae(t,!1,n)}`}:0;switch(t){case"bar":case"tick":return n.scale.minBandSize;case"line":case"trail":case"rule":return n.scale.minStrokeWidth;case"text":return n.scale.minFontSize;case"point":case"square":case"circle":return n.scale.minSize}throw new Error(KO("size",t))}const Zae=.95;function zet(t,e,n,r){const i={x:Vae(n,"x"),y:Vae(n,"y")};switch(t){case"bar":case"tick":{if(r.scale.maxBandSize!==void 0)return r.scale.maxBandSize;const s=ele(e,i,r.view);return tn(s)?s-1:new hs(()=>`${s.signal} - 1`)}case"line":case"trail":case"rule":return r.scale.maxStrokeWidth;case"text":return r.scale.maxFontSize;case"point":case"square":case"circle":{if(r.scale.maxSize)return r.scale.maxSize;const s=ele(e,i,r.view);return tn(s)?Math.pow(Zae*s,2):new hs(()=>`pow(${Zae} * ${s.signal}, 2)`)}}throw new Error(KO("size",t))}function ele(t,e,n){const r=Fa(t.width)?t.width.step:SN(n,"width"),i=Fa(t.height)?t.height.step:SN(n,"height");return e.x||e.y?new hs(()=>`min(${[e.x?e.x.signal:r,e.y?e.y.signal:i].join(", ")})`):Math.min(r,i)}function tle(t,e){zn(t)?Qet(t,e):ile(t,e)}function Qet(t,e){const n=t.component.scales,{config:r,encoding:i,markDef:s,specifiedScales:o}=t;for(const u of Te(n)){const a=o[u],l=n[u],c=t.getScaleComponent(u),f=rr(i[u]),x=a[e],h=c.get("type"),p=c.get("padding"),m=c.get("paddingInner"),g=F8(h,e),y=soe(u,e);if(x!==void 0&&(g?y&&Re(y):Re(Mse(h,e,u))),g&&y===void 0)if(x!==void 0){const E=f.timeUnit,A=f.type;switch(e){case"domainMax":case"domainMin":Ad(a[e])||A==="temporal"||E?l.set(e,{signal:hN(a[e],{type:A,timeUnit:E})},!0):l.set(e,a[e],!0);break;default:l.copyKeyFromObject(e,a)}}else{const E=e in nle?nle[e]({model:t,channel:u,fieldOrDatumDef:f,scaleType:h,scalePadding:p,scalePaddingInner:m,domain:a.domain,domainMin:a.domainMin,domainMax:a.domainMax,markDef:s,config:r,hasNestedOffsetScale:Y8(i,u)}):r.scale[e];E!==void 0&&l.set(e,E,!1)}}}const nle={bins:({model:t,fieldOrDatumDef:e})=>Ie(e)?Get(t,e):void 0,interpolate:({channel:t,fieldOrDatumDef:e})=>Wet(t,e.type),nice:({scaleType:t,channel:e,domain:n,domainMin:r,domainMax:i,fieldOrDatumDef:s})=>Vet(t,e,n,r,i,s),padding:({channel:t,scaleType:e,fieldOrDatumDef:n,markDef:r,config:i})=>Yet(t,e,i.scale,n,r,i.bar),paddingInner:({scalePadding:t,channel:e,markDef:n,scaleType:r,config:i,hasNestedOffsetScale:s})=>Xet(t,e,n.type,r,i.scale,s),paddingOuter:({scalePadding:t,channel:e,scaleType:n,scalePaddingInner:r,config:i,hasNestedOffsetScale:s})=>Ket(t,e,n,r,i.scale,s),reverse:({fieldOrDatumDef:t,scaleType:e,channel:n,config:r})=>{const i=Ie(t)?t.sort:void 0;return Jet(e,i,n,r.scale)},zero:({channel:t,fieldOrDatumDef:e,domain:n,markDef:r,scaleType:i})=>Zet(t,e,n,r,i)};function rle(t){zn(t)?ket(t):ile(t,"range")}function ile(t,e){const n=t.component.scales;for(const r of t.children)e==="range"?rle(r):tle(r,e);for(const r of Te(n)){let i;for(const s of t.children){const o=s.component.scales[r];if(o){const u=o.getWithExplicit(e);i=jc(i,u,e,"scale",wue((a,l)=>{switch(e){case"range":return a.step&&l.step?a.step-l.step:0}return 0}))}}n[r].setWithExplicit(e,i)}}function Get(t,e){const n=e.bin;if(Xt(n)){const r=k7(t,e.field,n);return new hs(()=>t.getSignalName(r))}else if(Bi(n)&&yd(n)&&n.step!==void 0)return{step:n.step}}function Wet(t,e){if(bt([ls,va,_a],t)&&e!=="nominal")return"hcl"}function Vet(t,e,n,r,i,s){var o;if(!(!((o=Da(s))===null||o===void 0)&&o.bin||_e(n)||i!=null||r!=null||bt([ds.TIME,ds.UTC],t)))return Ir(e)?!0:void 0}function Yet(t,e,n,r,i,s){if(Ir(t)){if(cu(e)){if(n.continuousPadding!==void 0)return n.continuousPadding;const{type:o,orient:u}=i;if(o==="bar"&&!(Ie(r)&&(r.bin||r.timeUnit))&&(u==="vertical"&&t==="x"||u==="horizontal"&&t==="y"))return s.continuousBandSize}if(e===ds.POINT)return n.pointPadding}}function Xet(t,e,n,r,i,s=!1){if(t===void 0){if(Ir(e)){const{bandPaddingInner:o,barBandPaddingInner:u,rectBandPaddingInner:a,bandWithNestedOffsetPaddingInner:l}=i;return s?l:nr(o,n==="bar"?u:a)}else if(E2(e)&&r===ds.BAND)return i.offsetBandPaddingInner}}function Ket(t,e,n,r,i,s=!1){if(t===void 0){if(Ir(e)){const{bandPaddingOuter:o,bandWithNestedOffsetPaddingOuter:u}=i;if(s)return u;if(n===ds.BAND)return nr(o,Ye(r)?{signal:`${r.signal}/2`}:r/2)}else if(E2(e)){if(n===ds.POINT)return .5;if(n===ds.BAND)return i.offsetBandPaddingOuter}}}function Jet(t,e,n,r){if(n==="x"&&r.xReverse!==void 0)return js(t)&&e==="descending"?Ye(r.xReverse)?{signal:`!${r.xReverse.signal}`}:!r.xReverse:r.xReverse;if(js(t)&&e==="descending")return!0}function Zet(t,e,n,r,i){if(!!n&&n!=="unaggregated"&&js(i)){if(_e(n)){const o=n[0],u=n[n.length-1];if(o<=0&&u>=0)return!0}return!1}if(t==="size"&&e.type==="quantitative"&&!_2(i))return!0;if(!(Ie(e)&&e.bin)&&bt([...Ca,...XWe],t)){const{orient:o,type:u}=r;return!(bt(["bar","area","line","trail"],u)&&(o==="horizontal"&&t==="y"||o==="vertical"&&t==="x"))}return!1}function ett(t,e,n,r,i=!1){const s=ttt(e,n,r,i),{type:o}=t;return Lc(e)?o!==void 0?eXe(e,o)?Ie(n)&&!ZYe(o,n.type)?(Re(nYe(o,s)),s):o:(Re(tYe(e,o,s)),s):s:null}function ttt(t,e,n,r){var i;switch(e.type){case"nominal":case"ordinal":{if(y2(t)||a8(t)==="discrete")return t==="shape"&&e.type==="ordinal"&&Re(p8(t,"ordinal")),"ordinal";if(Ir(t)||E2(t)){if(bt(["rect","bar","image","rule"],n.type)||r)return"band"}else if(n.type==="arc"&&t in u8)return"band";const s=n[fs(t)];return C2(s)||Q8(e)&&(!((i=e.axis)===null||i===void 0)&&i.tickBand)?"band":"point"}case"temporal":return y2(t)?"time":a8(t)==="discrete"?(Re(p8(t,"temporal")),"ordinal"):Ie(e)&&e.timeUnit&&ki(e.timeUnit).utc?"utc":"time";case"quantitative":return y2(t)?Ie(e)&&Xt(e.bin)?"bin-ordinal":"linear":a8(t)==="discrete"?(Re(p8(t,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(kse(e.type))}function ntt(t,{ignoreRange:e}={}){sle(t),Hae(t);for(const n of JYe)tle(t,n);e||rle(t)}function sle(t){zn(t)?t.component.scales=rtt(t):t.component.scales=stt(t)}function rtt(t){const{encoding:e,mark:n,markDef:r}=t,i={};for(const s of VO){const o=rr(e[s]);if(o&&n===aoe&&s===cs&&o.type===v2)continue;let u=o&&o.scale;if(E2(s)){const a=fse(s);if(!Y8(e,a)){u&&Re(UVe(s));continue}}if(o&&u!==null&&u!==!1){u??(u={});const a=Y8(e,s),l=ett(u,s,o,r,a);i[s]=new Wae(t.scaleName(`${s}`,!0),{value:l,explicit:u.type===l})}}return i}const itt=wue((t,e)=>Zse(t)-Zse(e));function stt(t){var e,n;const r=t.component.scales={},i={},s=t.component.resolve;for(const o of t.children){sle(o);for(const u of Te(o.component.scales))if((e=(n=s.scale)[u])!==null&&e!==void 0||(n[u]=_ae(u,t)),s.scale[u]==="shared"){const a=i[u],l=o.component.scales[u].getWithExplicit("type");a?HYe(a.value,l.value)?i[u]=jc(a,l,"type","scale",itt):(s.scale[u]="independent",delete i[u]):i[u]=l}}for(const o of Te(i)){const u=t.scaleName(o,!0),a=i[o];r[o]=new Wae(u,a);for(const l of t.children){const c=l.component.scales[o];c&&(l.renameScale(c.get("name"),u),c.merged=!0)}}return r}var V7=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class Y7{constructor(){this.nameMap={}}rename(e,n){this.nameMap[e]=n}has(e){return this.nameMap[e]!==void 0}get(e){for(;this.nameMap[e]&&e!==this.nameMap[e];)e=this.nameMap[e];return e}}function zn(t){return(t==null?void 0:t.type)==="unit"}function hu(t){return(t==null?void 0:t.type)==="facet"}function X7(t){return(t==null?void 0:t.type)==="concat"}function j2(t){return(t==null?void 0:t.type)==="layer"}class K7{constructor(e,n,r,i,s,o,u){var a,l;this.type=n,this.parent=r,this.config=s,this.correctDataNames=c=>{var f,x,h;return!((f=c.from)===null||f===void 0)&&f.data&&(c.from.data=this.lookupDataSource(c.from.data)),!((h=(x=c.from)===null||x===void 0?void 0:x.facet)===null||h===void 0)&&h.data&&(c.from.facet.data=this.lookupDataSource(c.from.facet.data)),c},this.parent=r,this.config=s,this.view=xs(u),this.name=(a=e.name)!==null&&a!==void 0?a:i,this.title=$c(e.title)?{text:e.title}:e.title?xs(e.title):void 0,this.scaleNameMap=r?r.scaleNameMap:new Y7,this.projectionNameMap=r?r.projectionNameMap:new Y7,this.signalNameMap=r?r.signalNameMap:new Y7,this.data=e.data,this.description=e.description,this.transforms=sJe((l=e.transform)!==null&&l!==void 0?l:[]),this.layout=n==="layer"||n==="unit"?{}:xKe(e,n,s),this.component={data:{sources:r?r.component.data.sources:[],outputNodes:r?r.component.data.outputNodes:{},outputNodeRefCounts:r?r.component.data.outputNodeRefCounts:{},isFaceted:uN(e)||(r==null?void 0:r.component.data.isFaceted)&&e.data===void 0},layoutSize:new t0,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:Object.assign({scale:{},axis:{},legend:{}},o?ut(o):{}),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(){ntt(this)}parseProjection(){Bae(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){Fae(this)}assembleEncodeFromView(e){const n=V7(e,["style"]),r={};for(const i of Te(n)){const s=n[i];s!==void 0&&(r[i]=sn(s))}return r}assembleGroupEncodeEntry(e){let n={};return this.view&&(n=this.assembleEncodeFromView(this.view)),!e&&(this.description&&(n.description=sn(this.description)),this.type==="unit"||this.type==="layer")?Object.assign({width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height")},n??{}):Gt(n)?void 0:n}assembleLayout(){if(!this.layout)return;const e=this.layout,{spacing:n}=e,r=V7(e,["spacing"]),{component:i,config:s}=this,o=AZe(i.layoutHeaders,s);return Object.assign(Object.assign(Object.assign({padding:n},this.assembleDefaultLayout()),r),o?{titleBand:o}:{})}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:e}=this.component;let n=[];for(const r of vo)e[r].title&&n.push(hZe(this,r));for(const r of F7)n=n.concat(pZe(this,r));return n}assembleAxes(){return nZe(this.component.axes,this.config)}assembleLegends(){return Lae(this)}assembleProjections(){return zZe(this)}assembleTitle(){var e,n,r;const i=(e=this.title)!==null&&e!==void 0?e:{},{encoding:s}=i,o=V7(i,["encoding"]),u=Object.assign(Object.assign(Object.assign({},Ese(this.config.title).nonMarkTitleProperties),o),s?{encode:{update:s}}:{});if(u.text)return bt(["unit","layer"],this.type)?bt(["middle",void 0],u.anchor)&&((n=u.frame)!==null&&n!==void 0||(u.frame="group")):(r=u.anchor)!==null&&r!==void 0||(u.anchor="start"),Gt(u)?void 0:u}assembleGroup(e=[]){const n={};e=e.concat(this.assembleSignals()),e.length>0&&(n.signals=e);const r=this.assembleLayout();r&&(n.layout=r),n.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||hu(this.parent)?Qae(this):[];i.length>0&&(n.scales=i);const s=this.assembleAxes();s.length>0&&(n.axes=s);const o=this.assembleLegends();return o.length>0&&(n.legends=o),n}getName(e){return gn((this.name?`${this.name}_`:"")+e)}getDataName(e){return this.getName(Kt[e].toLowerCase())}requestDataName(e){const n=this.getDataName(e),r=this.component.data.outputNodeRefCounts;return r[n]=(r[n]||0)+1,n}getSizeSignalRef(e){if(hu(this.parent)){const n=Sae(e),r=WO(n),i=this.component.scales[r];if(i&&!i.merged){const s=i.get("type"),o=i.get("range");if(Ar(s)&&Bc(o)){const u=i.get("name"),a=BN(this,r),l=W7(a);if(l){const c=$e({aggregate:"distinct",field:l},{expr:"datum"});return{signal:Aae(u,i,c)}}else return Re(d8(r)),null}}}return{signal:this.signalNameMap.get(this.getName(e))}}lookupDataSource(e){const n=this.component.data.outputNodes[e];return n?n.getSource():e}getSignalName(e){return this.signalNameMap.get(e)}renameSignal(e,n){this.signalNameMap.rename(e,n)}renameScale(e,n){this.scaleNameMap.rename(e,n)}renameProjection(e,n){this.projectionNameMap.rename(e,n)}scaleName(e,n){if(n)return this.getName(e);if(ase(e)&&Lc(e)&&this.component.scales[e]||this.scaleNameMap.has(this.getName(e)))return this.scaleNameMap.get(this.getName(e))}projectionName(e){if(e)return this.getName("projection");if(this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection")))return this.projectionNameMap.get(this.getName("projection"))}getScaleComponent(e){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const n=this.component.scales[e];return n&&!n.merged?n:this.parent?this.parent.getScaleComponent(e):void 0}getSelectionComponent(e,n){let r=this.component.selection[e];if(!r&&this.parent&&(r=this.parent.getSelectionComponent(e,n)),!r)throw new Error(EVe(n));return r}hasAxisOrientSignalRef(){var e,n;return((e=this.component.axes.x)===null||e===void 0?void 0:e.some(r=>r.hasOrientSignalRef()))||((n=this.component.axes.y)===null||n===void 0?void 0:n.some(r=>r.hasOrientSignalRef()))}}class ole extends K7{vgField(e,n={}){const r=this.fieldDef(e);if(r)return $e(r,n)}reduceFieldDef(e,n){return qXe(this.getMapping(),(r,i,s)=>{const o=Da(i);return o?e(r,o,s):r},n)}forEachFieldDef(e,n){K8(this.getMapping(),(r,i)=>{const s=Da(r);s&&e(s,i)},n)}}var ott=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class kN extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"value",(s=o[1])!==null&&s!==void 0?s:"density"]}clone(){return new kN(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.density,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${Ct(this.transform)}`}assemble(){const e=this.transform,{density:n}=e,r=ott(e,["density"]);return Object.assign({type:"kde",field:n},r)}}class S3 extends Ut{constructor(e,n){super(e),this.filter=n}clone(){return new S3(null,Object.assign({},this.filter))}static make(e,n){const{config:r,mark:i,markDef:s}=n;if($t("invalid",s,r)!=="filter")return null;const u=n.reduceFieldDef((a,l,c)=>{const f=Lc(c)&&n.getScaleComponent(c);if(f){const x=f.get("type");js(x)&&l.aggregate!=="count"&&!kc(i)&&(a[l.field]=l)}return a},{});return Te(u).length?new S3(e,u):null}dependentFields(){return new Set(Te(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${Ct(this.filter)}`}assemble(){const e=Te(this.filter).reduce((n,r)=>{const i=this.filter[r],s=$e(i,{expr:"datum"});return i!==null&&(i.type==="temporal"?n.push(`(isDate(${s}) || (isValid(${s}) && isFinite(+${s})))`):i.type==="quantitative"&&(n.push(`isValid(${s})`),n.push(`isFinite(+${s})`))),n},[]);return e.length>0?{type:"filter",expr:e.join(" && ")}:null}}class PN extends Ut{constructor(e,n){super(e),this.transform=n,this.transform=ut(n);const{flatten:r,as:i=[]}=this.transform;this.transform.as=r.map((s,o)=>{var u;return(u=i[o])!==null&&u!==void 0?u:s})}clone(){return new PN(this.parent,ut(this.transform))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${Ct(this.transform)}`}assemble(){const{flatten:e,as:n}=this.transform;return{type:"flatten",fields:e,as:n}}}class MN extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"key",(s=o[1])!==null&&s!==void 0?s:"value"]}clone(){return new MN(null,ut(this.transform))}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${Ct(this.transform)}`}assemble(){const{fold:e,as:n}=this.transform;return{type:"fold",fields:e,as:n}}}class U2 extends Ut{constructor(e,n,r,i){super(e),this.fields=n,this.geojson=r,this.signal=i}clone(){return new U2(null,ut(this.fields),this.geojson,this.signal)}static parseAll(e,n){if(n.component.projection&&!n.component.projection.isFit)return e;let r=0;for(const i of[[Sa,Aa],[So,lu]]){const s=i.map(o=>{const u=rr(n.encoding[o]);return Ie(u)?u.field:Oa(u)?{expr:`${u.datum}`}:fu(u)?{expr:`${u.value}`}:void 0});(s[0]||s[1])&&(e=new U2(e,s,null,n.getName(`geojson_${r++}`)))}if(n.channelHasField(cs)){const i=n.typedFieldDef(cs);i.type===v2&&(e=new U2(e,null,i.field,n.getName(`geojson_${r++}`)))}return e}dependentFields(){var e;const n=((e=this.fields)!==null&&e!==void 0?e:[]).filter(je);return new Set([...this.geojson?[this.geojson]:[],...n])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${Ct(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],Object.assign(Object.assign(Object.assign({type:"geojson"},this.fields?{fields:this.fields}:{}),this.geojson?{geojson:this.geojson}:{}),{signal:this.signal})]}}class v3 extends Ut{constructor(e,n,r,i){super(e),this.projection=n,this.fields=r,this.as=i}clone(){return new v3(null,this.projection,ut(this.fields),ut(this.as))}static parseAll(e,n){if(!n.projectionName())return e;for(const r of[[Sa,Aa],[So,lu]]){const i=r.map(o=>{const u=rr(n.encoding[o]);return Ie(u)?u.field:Oa(u)?{expr:`${u.datum}`}:fu(u)?{expr:`${u.value}`}:void 0}),s=r[0]===So?"2":"";(i[0]||i[1])&&(e=new v3(e,n.projectionName(),i,[n.getName(`x${s}`),n.getName(`y${s}`)]))}return e}dependentFields(){return new Set(this.fields.filter(je))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${Ct(this.fields)} ${Ct(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class Dd extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new Dd(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.impute,this.transform.key,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set([this.transform.impute])}processSequence(e){const{start:n=0,stop:r,step:i}=e;return{signal:`sequence(${[n,r,...i?[i]:[]].join(",")})`}}static makeFromTransform(e,n){return new Dd(e,n)}static makeFromEncoding(e,n){const r=n.encoding,i=r.x,s=r.y;if(Ie(i)&&Ie(s)){const o=i.impute?i:s.impute?s:void 0;if(o===void 0)return;const u=i.impute?s:s.impute?i:void 0,{method:a,value:l,frame:c,keyvals:f}=o.impute,x=Uoe(n.mark,r);return new Dd(e,Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({impute:o.field,key:u.field},a?{method:a}:{}),l!==void 0?{value:l}:{}),c?{frame:c}:{}),f!==void 0?{keyvals:f}:{}),x.length?{groupby:x}:{}))}return null}hash(){return`Impute ${Ct(this.transform)}`}assemble(){const{impute:e,key:n,keyvals:r,method:i,groupby:s,value:o,frame:u=[null,null]}=this.transform,a=Object.assign(Object.assign(Object.assign(Object.assign({type:"impute",field:e,key:n},r?{keyvals:UKe(r)?this.processSequence(r):r}:{}),{method:"value"}),s?{groupby:s}:{}),{value:!i||i==="value"?o:null});if(i&&i!=="value"){const l=Object.assign({type:"window",as:[`imputed_${e}_value`],ops:[i],fields:[e],frame:u,ignorePeers:!1},s?{groupby:s}:{}),c={type:"formula",expr:`datum.${e} === null ? datum.imputed_${e}_value : datum.${e}`,as:e};return[a,l,c]}else return[a]}}var utt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class jN extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:n.on,(s=o[1])!==null&&s!==void 0?s:n.loess]}clone(){return new jN(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.loess,this.transform.on,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${Ct(this.transform)}`}assemble(){const e=this.transform,{loess:n,on:r}=e,i=utt(e,["loess","on"]);return Object.assign({type:"loess",x:r,y:n},i)}}class _3 extends Ut{constructor(e,n,r){super(e),this.transform=n,this.secondary=r}clone(){return new _3(null,ut(this.transform),this.secondary)}static make(e,n,r,i){const s=n.component.data.sources,{from:o}=r;let u=null;if(qKe(o)){let a=cle(o.data,s);a||(a=new Rd(o.data),s.push(a));const l=n.getName(`lookup_${i}`);u=new Mi(a,l,Kt.Lookup,n.component.data.outputNodeRefCounts),n.component.data.outputNodes[l]=u}else if(HKe(o)){const a=o.param;r=Object.assign({as:a},r);let l;try{l=n.getSelectionComponent(gn(a),a)}catch{throw new Error(vVe(a))}if(u=l.materialized,!u)throw new Error(_Ve(a))}return new _3(e,r,u.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?Pe(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${Ct({transform:this.transform,secondary:this.secondary})}`}assemble(){let e;if(this.transform.from.fields)e=Object.assign({values:this.transform.from.fields},this.transform.as?{as:Pe(this.transform.as)}:{});else{let n=this.transform.as;je(n)||(Re(FVe),n="_lookup"),e={as:[n]}}return Object.assign(Object.assign({type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup]},e),this.transform.default?{default:this.transform.default}:{})}}var att=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class UN extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"prob",(s=o[1])!==null&&s!==void 0?s:"value"]}clone(){return new UN(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.quantile,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${Ct(this.transform)}`}assemble(){const e=this.transform,{quantile:n}=e,r=att(e,["quantile"]);return Object.assign({type:"quantile",field:n},r)}}var ltt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class qN extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:n.on,(s=o[1])!==null&&s!==void 0?s:n.regression]}clone(){return new qN(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.regression,this.transform.on,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${Ct(this.transform)}`}assemble(){const e=this.transform,{regression:n,on:r}=e,i=ltt(e,["regression","on"]);return Object.assign({type:"regression",x:r,y:n},i)}}class HN extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new HN(null,ut(this.transform))}addDimensions(e){var n;this.transform.groupby=ql(((n=this.transform.groupby)!==null&&n!==void 0?n:[]).concat(e),r=>r)}producedFields(){}dependentFields(){var e;return new Set([this.transform.pivot,this.transform.value,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}hash(){return`PivotTransform ${Ct(this.transform)}`}assemble(){const{pivot:e,value:n,groupby:r,limit:i,op:s}=this.transform;return Object.assign(Object.assign(Object.assign({type:"pivot",field:e,value:n},i!==void 0?{limit:i}:{}),s!==void 0?{op:s}:{}),r!==void 0?{groupby:r}:{})}}class zN extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new zN(null,ut(this.transform))}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${Ct(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function ule(t){let e=0;function n(r,i){var s;if(r instanceof Rd&&!r.isGenerator&&!N2(r.data)&&(t.push(i),i={name:null,source:i.name,transform:[]}),r instanceof si&&(r.parent instanceof Rd&&!i.source?(i.format=Object.assign(Object.assign({},(s=i.format)!==null&&s!==void 0?s:{}),{parse:r.assembleFormatParse()}),i.transform.push(...r.assembleTransforms(!0))):i.transform.push(...r.assembleTransforms())),r instanceof P2){i.name||(i.name=`data_${e++}`),!i.source||i.transform.length>0?(t.push(i),r.data=i.name):r.data=i.source,t.push(...r.assemble());return}switch((r instanceof y3||r instanceof E3||r instanceof S3||r instanceof I2||r instanceof $2||r instanceof v3||r instanceof xu||r instanceof _3||r instanceof M2||r instanceof Nd||r instanceof MN||r instanceof PN||r instanceof kN||r instanceof jN||r instanceof UN||r instanceof qN||r instanceof Qc||r instanceof zN||r instanceof HN)&&i.transform.push(r.assemble()),(r instanceof Ia||r instanceof La||r instanceof Dd||r instanceof n0||r instanceof U2)&&i.transform.push(...r.assemble()),r instanceof Mi&&(i.source&&i.transform.length===0?r.setSource(i.source):r.parent instanceof Mi?r.setSource(i.name):(i.name||(i.name=`data_${e++}`),r.setSource(i.name),r.numChildren()===1&&(t.push(i),i={name:null,source:i.name,transform:[]}))),r.numChildren()){case 0:r instanceof Mi&&(!i.source||i.transform.length>0)&&t.push(i);break;case 1:n(r.children[0],i);break;default:{i.name||(i.name=`data_${e++}`);let o=i.name;!i.source||i.transform.length>0?t.push(i):o=i.source;for(const u of r.children)n(u,{name:null,source:o,transform:[]});break}}}return n}function ctt(t){const e=[],n=ule(e);for(const r of t.children)n(r,{source:t.name,name:null,transform:[]});return e}function ftt(t,e){var n,r;const i=[],s=ule(i);let o=0;for(const a of t.sources){a.hasName()||(a.dataName=`source_${o++}`);const l=a.assemble();s(a,l)}for(const a of i)a.transform.length===0&&delete a.transform;let u=0;for(const[a,l]of i.entries())((n=l.transform)!==null&&n!==void 0?n:[]).length===0&&!l.source&&i.splice(u++,0,i.splice(a,1)[0]);for(const a of i)for(const l of(r=a.transform)!==null&&r!==void 0?r:[])l.type==="lookup"&&(l.from=t.outputNodes[l.from].getSource());for(const a of i)a.name in e&&(a.values=e[a.name]);return i}function xtt(t){return t==="top"||t==="left"||Ye(t)?"header":"footer"}function dtt(t){for(const e of vo)htt(t,e);lle(t,"x"),lle(t,"y")}function htt(t,e){var n;const{facet:r,config:i,child:s,component:o}=t;if(t.channelHasField(e)){const u=r[e],a=k2("title",null,i,e);let l=b2(u,i,{allowDisabling:!0,includeDefault:a===void 0||!!a});s.component.layoutHeaders[e].title&&(l=_e(l)?l.join(", "):l,l+=` / ${s.component.layoutHeaders[e].title}`,s.component.layoutHeaders[e].title=null);const c=k2("labelOrient",u.header,i,e),f=u.header!==null?nr((n=u.header)===null||n===void 0?void 0:n.labels,i.header.labels,!0):!1,x=bt(["bottom","right"],c)?"footer":"header";o.layoutHeaders[e]={title:u.header!==null?l:null,facetFieldDef:u,[x]:e==="facet"?[]:[ale(t,e,f)]}}}function ale(t,e,n){const r=e==="row"?"height":"width";return{labels:n,sizeSignal:t.child.component.layoutSize.get(r)?t.child.getSizeSignalRef(r):void 0,axes:[]}}function lle(t,e){var n;const{child:r}=t;if(r.component.axes[e]){const{layoutHeaders:i,resolve:s}=t.component;if(s.axis[e]=$7(s,e),s.axis[e]==="shared"){const o=e==="x"?"column":"row",u=i[o];for(const a of r.component.axes[e]){const l=xtt(a.get("orient"));(n=u[l])!==null&&n!==void 0||(u[l]=[ale(t,o,!1)]);const c=m3(a,"main",t.config,{header:!0});c&&u[l][0].axes.push(c),a.mainExtracted=!0}}}}function ptt(t){J7(t),QN(t,"width"),QN(t,"height")}function gtt(t){J7(t);const e=t.layout.columns===1?"width":"childWidth",n=t.layout.columns===void 0?"height":"childHeight";QN(t,e),QN(t,n)}function J7(t){for(const e of t.children)e.parseLayoutSize()}function QN(t,e){var n;const r=Sae(e),i=WO(r),s=t.component.resolve,o=t.component.layoutSize;let u;for(const a of t.children){const l=a.component.layoutSize.getWithExplicit(r),c=(n=s.scale[i])!==null&&n!==void 0?n:_ae(i,t);if(c==="independent"&&l.value==="step"){u=void 0;break}if(u){if(c==="independent"&&u.value!==l.value){u=void 0;break}u=jc(u,l,r,"")}else u=l}if(u){for(const a of t.children)t.renameSignal(a.getName(r),t.getName(e)),a.component.layoutSize.set(r,"merged",!1);o.setWithExplicit(e,u)}else o.setWithExplicit(e,{explicit:!1,value:void 0})}function mtt(t){const{size:e,component:n}=t;for(const r of Ca){const i=fs(r);if(e[i]){const s=e[i];n.layoutSize.set(i,Fa(s)?"step":s,!0)}else{const s=ytt(t,i);n.layoutSize.set(i,s,!1)}}}function ytt(t,e){const n=e==="width"?"x":"y",r=t.config,i=t.getScaleComponent(n);if(i){const s=i.get("type"),o=i.get("range");if(Ar(s)){const u=vN(r.view,e);return Bc(o)||Fa(u)?"step":u}else return l7(r.view,e)}else{if(t.hasProjection||t.mark==="arc")return l7(r.view,e);{const s=vN(r.view,e);return Fa(s)?s.step:s}}}function Z7(t,e,n){return $e(e,Object.assign({suffix:`by_${$e(t)}`},n??{}))}class C3 extends ole{constructor(e,n,r,i){super(e,"facet",n,r,i,e.resolve),this.child=iP(e.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(e.facet)}initFacet(e){if(!a3(e))return{facet:this.initFacetFieldDef(e,"facet")};const n=Te(e),r={};for(const i of n){if(![Hl,zl].includes(i)){Re(KO(i,"facet"));break}const s=e[i];if(s.field===void 0){Re(h8(s,i));break}r[i]=this.initFacetFieldDef(s,i)}return r}initFacetFieldDef(e,n){const r=V8(e,n);return r.header?r.header=xs(r.header):r.header===null&&(r.header=null),r}channelHasField(e){return!!this.facet[e]}fieldDef(e){return this.facet[e]}parseData(){this.component.data=GN(this),this.child.parseData()}parseLayoutSize(){J7(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),dtt(this)}assembleSelectionTopLevelSignals(e){return this.child.assembleSelectionTopLevelSignals(e)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(e){return this.child.assembleSelectionData(e)}getHeaderLayoutMixins(){var e,n,r;const i={};for(const s of vo)for(const o of w7){const u=this.component.layoutHeaders[s],a=u[o],{facetFieldDef:l}=u;if(l){const c=k2("titleOrient",l.header,this.config,s);if(["right","bottom"].includes(c)){const f=wN(s,c);(e=i.titleAnchor)!==null&&e!==void 0||(i.titleAnchor={}),i.titleAnchor[f]="end"}}if(a!=null&&a[0]){const c=s==="row"?"height":"width",f=o==="header"?"headerBand":"footerBand";s!=="facet"&&!this.child.component.layoutSize.get(c)&&((n=i[f])!==null&&n!==void 0||(i[f]={}),i[f][s]=.5),u.title&&((r=i.offset)!==null&&r!==void 0||(i.offset={}),i.offset[s==="row"?"rowTitle":"columnTitle"]=10)}}return i}assembleDefaultLayout(){const{column:e,row:n}=this.facet,r=e?this.columnDistinctSignal():n?1:void 0;let i="all";return(!n&&this.component.resolve.scale.x==="independent"||!e&&this.component.resolve.scale.y==="independent")&&(i="none"),Object.assign(Object.assign(Object.assign({},this.getHeaderLayoutMixins()),r?{columns:r}:{}),{bounds:"full",align:i})}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof C3))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(e){return this.parent&&this.parent instanceof C3?Object.assign(Object.assign({},this.channelHasField("column")?{encode:{update:{columns:{field:$e(this.facet.column,{prefix:"distinct"})}}}}:{}),super.assembleGroup(e)):super.assembleGroup(e)}getCardinalityAggregateForChild(){const e=[],n=[],r=[];if(this.child instanceof C3){if(this.child.channelHasField("column")){const i=$e(this.child.facet.column);e.push(i),n.push("distinct"),r.push(`distinct_${i}`)}}else for(const i of Ca){const s=this.child.component.scales[i];if(s&&!s.merged){const o=s.get("type"),u=s.get("range");if(Ar(o)&&Bc(u)){const a=BN(this.child,i),l=W7(a);l?(e.push(l),n.push("distinct"),r.push(`distinct_${l}`)):Re(d8(i))}}}return{fields:e,ops:n,as:r}}assembleFacet(){const{name:e,data:n}=this.component.data.facetRoot,{row:r,column:i}=this.facet,{fields:s,ops:o,as:u}=this.getCardinalityAggregateForChild(),a=[];for(const c of vo){const f=this.facet[c];if(f){a.push($e(f));const{bin:x,sort:h}=f;if(Xt(x)&&a.push($e(f,{binSuffix:"end"})),Ra(h)){const{field:p,op:m=oN}=h,g=Z7(f,h);r&&i?(s.push(g),o.push("max"),u.push(g)):(s.push(p),o.push(m),u.push(g))}else if(_e(h)){const p=B2(f,c);s.push(p),o.push("max"),u.push(p)}}}const l=!!r&&!!i;return Object.assign({name:e,data:n,groupby:a},l||s.length>0?{aggregate:Object.assign(Object.assign({},l?{cross:l}:{}),s.length?{fields:s,ops:o,as:u}:{})}:{})}facetSortFields(e){const{facet:n}=this,r=n[e];return r?Ra(r.sort)?[Z7(r,r.sort,{expr:"datum"})]:_e(r.sort)?[B2(r,e,{expr:"datum"})]:[$e(r,{expr:"datum"})]:[]}facetSortOrder(e){const{facet:n}=this,r=n[e];if(r){const{sort:i}=r;return[(Ra(i)?i.order:!_e(i)&&i)||"ascending"]}return[]}assembleLabelTitle(){var e;const{facet:n,config:r}=this;if(n.facet)return L7(n.facet,"facet",r);const i={row:["top","bottom"],column:["left","right"]};for(const s of F7)if(n[s]){const o=k2("labelOrient",(e=n[s])===null||e===void 0?void 0:e.header,r,s);if(i[s].includes(o))return L7(n[s],s,r)}}assembleMarks(){const{child:e}=this,n=this.component.data.facetRoot,r=ctt(n),i=e.assembleGroupEncodeEntry(!1),s=this.assembleLabelTitle()||e.assembleTitle(),o=e.assembleGroupStyle();return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:this.getName("cell"),type:"group"},s?{title:s}:{}),o?{style:o}:{}),{from:{facet:this.assembleFacet()},sort:{field:vo.map(a=>this.facetSortFields(a)).flat(),order:vo.map(a=>this.facetSortOrder(a)).flat()}}),r.length>0?{data:r}:{}),i?{encode:{update:i}}:{}),e.assembleGroup(EJe(this,[])))]}getMapping(){return this.facet}}function Ett(t,e){const{row:n,column:r}=e;if(n&&r){let i=null;for(const s of[n,r])if(Ra(s.sort)){const{field:o,op:u=oN}=s.sort;t=i=new Nd(t,{joinaggregate:[{op:u,field:o,as:Z7(s,s.sort,{forAs:!0})}],groupby:[$e(s)]})}return i}return null}function cle(t,e){var n,r,i,s;for(const o of e){const u=o.data;if(t.name&&o.hasName()&&t.name!==o.dataName)continue;const a=(n=t.format)===null||n===void 0?void 0:n.mesh,l=(r=u.format)===null||r===void 0?void 0:r.feature;if(a&&l)continue;const c=(i=t.format)===null||i===void 0?void 0:i.feature;if((c||l)&&c!==l)continue;const f=(s=u.format)===null||s===void 0?void 0:s.mesh;if(!((a||f)&&a!==f)){if(d3(t)&&d3(u)){if(Ul(t.values,u.values))return o}else if(N2(t)&&N2(u)){if(t.url===u.url)return o}else if(Lue(t)&&t.name===o.dataName)return o}}return null}function Att(t,e){if(t.data||!t.parent){if(t.data===null){const r=new Rd({values:[]});return e.push(r),r}const n=cle(t.data,e);if(n)return Uc(t.data)||(n.data.format=NWe({},t.data.format,n.data.format)),!n.hasName()&&t.data.name&&(n.dataName=t.data.name),n;{const r=new Rd(t.data);return e.push(r),r}}else return t.parent.component.data.facetRoot?t.parent.component.data.facetRoot:t.parent.component.data.main}function Stt(t,e,n){var r,i;let s=0;for(const o of e.transforms){let u,a;if(ZKe(o))a=t=new $2(t,o),u="derived";else if(h7(o)){const l=iet(o);a=t=(r=si.makeWithAncestors(t,{},l,n))!==null&&r!==void 0?r:t,t=new I2(t,e,o.filter)}else if(bue(o))a=t=Ia.makeFromTransform(t,o,e),u="number";else if(tJe(o))u="date",n.getWithExplicit(o.field).value===void 0&&(t=new si(t,{[o.field]:u}),n.set(o.field,u,!1)),a=t=La.makeFromTransform(t,o);else if(nJe(o))a=t=xu.makeFromTransform(t,o),u="number",T7(e)&&(t=new Qc(t));else if(Cue(o))a=t=_3.make(t,e,o,s++),u="derived";else if(XKe(o))a=t=new M2(t,o),u="number";else if(KKe(o))a=t=new Nd(t,o),u="number";else if(rJe(o))a=t=n0.makeFromTransform(t,o),u="derived";else if(iJe(o))a=t=new MN(t,o),u="derived";else if(JKe(o))a=t=new PN(t,o),u="derived";else if(zKe(o))a=t=new HN(t,o),u="derived";else if(YKe(o))t=new zN(t,o);else if(eJe(o))a=t=Dd.makeFromTransform(t,o),u="derived";else if(QKe(o))a=t=new kN(t,o),u="derived";else if(GKe(o))a=t=new UN(t,o),u="derived";else if(WKe(o))a=t=new qN(t,o),u="derived";else if(VKe(o))a=t=new jN(t,o),u="derived";else{Re(DVe(o));continue}if(a&&u!==void 0)for(const l of(i=a.producedFields())!==null&&i!==void 0?i:[])n.set(l,u,!1)}return t}function GN(t){var e,n,r,i,s,o,u,a,l,c;let f=Att(t,t.component.data.sources);const{outputNodes:x,outputNodeRefCounts:h}=t.component.data,p=t.data,g=!(p&&(Uc(p)||N2(p)||d3(p)))&&t.parent?t.parent.component.data.ancestorParse.clone():new gJe;Uc(p)?(Iue(p)?f=new E3(f,p.sequence):m7(p)&&(f=new y3(f,p.graticule)),g.parseNothing=!0):((e=p==null?void 0:p.format)===null||e===void 0?void 0:e.parse)===null&&(g.parseNothing=!0),f=(n=si.makeExplicit(f,t,g))!==null&&n!==void 0?n:f,f=new Qc(f);const y=t.parent&&j2(t.parent);(zn(t)||hu(t))&&y&&(f=(r=Ia.makeFromEncoding(f,t))!==null&&r!==void 0?r:f),t.transforms.length>0&&(f=Stt(f,t,g));const E=oet(t),A=set(t);f=(i=si.makeWithAncestors(f,{},Object.assign(Object.assign({},E),A),g))!==null&&i!==void 0?i:f,zn(t)&&(f=U2.parseAll(f,t),f=v3.parseAll(f,t)),(zn(t)||hu(t))&&(y||(f=(s=Ia.makeFromEncoding(f,t))!==null&&s!==void 0?s:f),f=(o=La.makeFromEncoding(f,t))!==null&&o!==void 0?o:f,f=$2.parseAllForSortIndex(f,t));const S=t.getDataName(Kt.Raw),v=new Mi(f,S,Kt.Raw,h);if(x[S]=v,f=v,zn(t)){const R=xu.makeFromEncoding(f,t);R&&(f=R,T7(t)&&(f=new Qc(f))),f=(u=Dd.makeFromEncoding(f,t))!==null&&u!==void 0?u:f,f=(a=n0.makeFromEncoding(f,t))!==null&&a!==void 0?a:f}zn(t)&&(f=(l=S3.make(f,t))!==null&&l!==void 0?l:f);const _=t.getDataName(Kt.Main),C=new Mi(f,_,Kt.Main,h);x[_]=C,f=C,zn(t)&&eZe(t,C);let b=null;if(hu(t)){const R=t.getName("facet");f=(c=Ett(f,t.facet))!==null&&c!==void 0?c:f,b=new P2(f,t,R,C.getSource()),x[R]=b}return Object.assign(Object.assign({},t.component.data),{outputNodes:x,outputNodeRefCounts:h,raw:v,main:C,facetRoot:b,ancestorParse:g})}class vtt extends K7{constructor(e,n,r,i){var s,o,u,a;super(e,"concat",n,r,i,e.resolve),(((o=(s=e.resolve)===null||s===void 0?void 0:s.axis)===null||o===void 0?void 0:o.x)==="shared"||((a=(u=e.resolve)===null||u===void 0?void 0:u.axis)===null||a===void 0?void 0:a.y)==="shared")&&Re(RVe),this.children=this.getChildren(e).map((l,c)=>iP(l,this,this.getName(`concat_${c}`),void 0,i))}parseData(){this.component.data=GN(this);for(const e of this.children)e.parseData()}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const n of Te(e.component.selection))this.component.selection[n]=e.component.selection[n]}}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){for(const e of this.children)e.parseAxesAndHeaders()}getChildren(e){return AN(e)?e.vconcat:a7(e)?e.hconcat:e.concat}parseLayoutSize(){gtt(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(e){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),e)}assembleSignals(){return this.children.forEach(e=>e.assembleSignals()),[]}assembleLayoutSignals(){const e=I7(this);for(const n of this.children)e.push(...n.assembleLayoutSignals());return e}assembleSelectionData(e){return this.children.reduce((n,r)=>r.assembleSelectionData(n),e)}assembleMarks(){return this.children.map(e=>{const n=e.assembleTitle(),r=e.assembleGroupStyle(),i=e.assembleGroupEncodeEntry(!1);return Object.assign(Object.assign(Object.assign(Object.assign({type:"group",name:e.getName("group")},n?{title:n}:{}),r?{style:r}:{}),i?{encode:{update:i}}:{}),e.assembleGroup())})}assembleGroupStyle(){}assembleDefaultLayout(){const e=this.layout.columns;return Object.assign(Object.assign({},e!=null?{columns:e}:{}),{bounds:"full",align:"each"})}}function _tt(t){return t===!1||t===null}const Ctt=Object.assign(Object.assign({disable:1,gridScale:1,scale:1},Boe),{labelExpr:1,encode:1}),fle=Te(Ctt);class eP extends t0{constructor(e={},n={},r=!1){super(),this.explicit=e,this.implicit=n,this.mainExtracted=r}clone(){return new eP(ut(this.explicit),ut(this.implicit),this.mainExtracted)}hasAxisPart(e){return e==="axis"?!0:e==="grid"||e==="title"?!!this.get(e):!_tt(this.get(e))}hasOrientSignalRef(){return Ye(this.explicit.orient)}}function btt(t,e,n){var r;const{encoding:i,config:s}=t,o=(r=rr(i[e]))!==null&&r!==void 0?r:rr(i[Yl(e)]),u=t.axis(e)||{},{format:a,formatType:l}=u;return _d(l)?Object.assign({text:M8({fieldOrDatumDef:o,field:"datum.value",format:a,formatType:l,config:s})},n):n}function Ttt(t){return Ca.reduce((e,n)=>(t.component.scales[n]&&(e[n]=[Ltt(n,t)]),e),{})}const Rtt={bottom:"top",top:"bottom",left:"right",right:"left"};function Ott(t){var e;const{axes:n,resolve:r}=t.component,i={top:0,bottom:0,right:0,left:0};for(const s of t.children){s.parseAxesAndHeaders();for(const o of Te(s.component.axes))r.axis[o]=$7(t.component.resolve,o),r.axis[o]==="shared"&&(n[o]=Ntt(n[o],s.component.axes[o]),n[o]||(r.axis[o]="independent",delete n[o]))}for(const s of Ca){for(const o of t.children)if(o.component.axes[s]){if(r.axis[s]==="independent"){n[s]=((e=n[s])!==null&&e!==void 0?e:[]).concat(o.component.axes[s]);for(const u of o.component.axes[s]){const{value:a,explicit:l}=u.getWithExplicit("orient");if(!Ye(a)){if(i[a]>0&&!l){const c=Rtt[a];i[a]>i[c]&&u.set("orient",c,!1)}i[a]++}}}delete o.component.axes[s]}if(r.axis[s]==="independent"&&n[s]&&n[s].length>1)for(const o of n[s])o.get("grid")&&!o.explicit.grid&&(o.implicit.grid=!1)}}function Ntt(t,e){if(t){if(t.length!==e.length)return;const n=t.length;for(let r=0;r<n;r++){const i=t[r],s=e[r];if(!!i!=!!s)return;if(i&&s){const o=i.getWithExplicit("orient"),u=s.getWithExplicit("orient");if(o.explicit&&u.explicit&&o.value!==u.value)return;t[r]=Dtt(i,s)}}}else return e.map(n=>n.clone());return t}function Dtt(t,e){for(const n of fle){const r=jc(t.getWithExplicit(n),e.getWithExplicit(n),n,"axis",(i,s)=>{switch(n){case"title":return Ose(i,s);case"gridScale":return{explicit:i.explicit,value:nr(i.value,s.value)}}return CN(i,s,n,"axis")});t.setWithExplicit(n,r)}return t}function Ftt(t,e,n,r,i){if(e==="disable")return n!==void 0;switch(n=n||{},e){case"titleAngle":case"labelAngle":return t===(Ye(n.labelAngle)?n.labelAngle:UO(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(t===pae(r,i))return!0}return t===n[e]}const wtt=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function Ltt(t,e){var n,r,i;let s=e.axis(t);const o=new eP,u=rr(e.encoding[t]),{mark:a,config:l}=e,c=(s==null?void 0:s.orient)||((n=l[t==="x"?"axisX":"axisY"])===null||n===void 0?void 0:n.orient)||((r=l.axis)===null||r===void 0?void 0:r.orient)||cZe(t),f=e.getScaleComponent(t).get("type"),x=rZe(t,f,c,e.config),h=s!==void 0?!s:N7("disable",l.style,s==null?void 0:s.style,x).configValue;if(o.set("disable",h,s!==void 0),h)return o;s=s||{};const p=uZe(u,s,t,l.style,x),m={fieldOrDatumDef:u,axis:s,channel:t,model:e,scaleType:f,orient:c,labelAngle:p,mark:a,config:l};for(const E of fle){const A=E in xae?xae[E](m):koe(E)?s[E]:void 0,S=A!==void 0,v=Ftt(A,E,s,e,t);if(S&&v)o.set(E,A,v);else{const{configValue:_=void 0,configFrom:C=void 0}=koe(E)&&E!=="values"?N7(E,l.style,s.style,x):{},b=_!==void 0;S&&!b?o.set(E,A,v):(C!=="vgAxisConfig"||wtt.has(E)&&b||f3(_)||Ye(_))&&o.set(E,_,!1)}}const g=(i=s.encoding)!==null&&i!==void 0?i:{},y=$oe.reduce((E,A)=>{var S;if(!o.hasAxisPart(A))return E;const v=vae((S=g[A])!==null&&S!==void 0?S:{},e),_=A==="labels"?btt(e,t,v):v;return _!==void 0&&!Gt(_)&&(E[A]={update:_}),E},{});return Gt(y)||o.set("encode",y,!!s.encoding||s.labelAngle!==void 0),o}function Itt({encoding:t,size:e}){for(const n of Ca){const r=fs(n);Fa(e[r])&&Na(t[n])&&(delete e[r],Re(jse(r)))}return e}function $tt(t,e,n){const r=xs(t),i=$t("orient",r,n);if(r.orient=Mtt(r.type,e,i),i!==void 0&&i!==r.orient&&Re(VVe(r.orient,i)),r.type==="bar"&&r.orient){const u=$t("cornerRadiusEnd",r,n);if(u!==void 0){const a=r.orient==="horizontal"&&e.x2||r.orient==="vertical"&&e.y2?["cornerRadius"]:cXe[r.orient];for(const l of a)r[l]=u;r.cornerRadiusEnd!==void 0&&delete r.cornerRadiusEnd}}return $t("opacity",r,n)===void 0&&(r.opacity=ktt(r.type,e)),$t("cursor",r,n)===void 0&&(r.cursor=Btt(r,e,n)),r}function Btt(t,e,n){return e.href||t.href||$t("href",t,n)?"pointer":t.cursor}function ktt(t,e){if(bt([nN,w8,L8,I8],t)&&!X8(e))return .7}function Ptt(t,e,{graticule:n}){if(n)return!1;const r=Ed("filled",t,e),i=t.type;return nr(r,i!==nN&&i!==tN&&i!==rN)}function Mtt(t,e,n){switch(t){case nN:case L8:case I8:case uoe:case nXe:case tXe:return}const{x:r,y:i,x2:s,y2:o}=e;switch(t){case eN:if(Ie(r)&&(Bi(r.bin)||Ie(i)&&i.aggregate&&!r.aggregate))return"vertical";if(Ie(i)&&(Bi(i.bin)||Ie(r)&&r.aggregate&&!i.aggregate))return"horizontal";if(o||s){if(n)return n;if(!s&&(Ie(r)&&r.type===Sd&&!Xt(r.bin)||z8(r)))return"horizontal";if(!o&&(Ie(i)&&i.type===Sd&&!Xt(i.bin)||z8(i)))return"vertical"}case rN:if(s&&!(Ie(r)&&Bi(r.bin))&&o&&!(Ie(i)&&Bi(i.bin)))return;case ZO:if(o)return Ie(i)&&Bi(i.bin)?"horizontal":"vertical";if(s)return Ie(r)&&Bi(r.bin)?"vertical":"horizontal";if(t===rN){if(r&&!i)return"vertical";if(i&&!r)return"horizontal"}case tN:case w8:{const u=Na(r),a=Na(i);if(n)return n;if(u&&!a)return t!=="tick"?"horizontal":"vertical";if(!u&&a)return t!=="tick"?"vertical":"horizontal";if(u&&a){const l=r,c=i,f=l.type===S2,x=c.type===S2;return f&&!x?t!=="tick"?"vertical":"horizontal":!f&&x?t!=="tick"?"horizontal":"vertical":!l.aggregate&&c.aggregate?t!=="tick"?"vertical":"horizontal":l.aggregate&&!c.aggregate&&t!=="tick"?"horizontal":"vertical"}else return}}return"vertical"}const jtt={vgMark:"arc",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),ii("x",t,{defaultPos:"mid"})),ii("y",t,{defaultPos:"mid"})),Hc(t,"radius")),Hc(t,"theta"))},Utt={vgMark:"area",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"})),TN("x",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="horizontal"})),TN("y",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="vertical"})),C7(t))},qtt={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Hc(t,"x")),Hc(t,"y"))},Htt={vgMark:"shape",encodeEntry:t=>Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),postEncodingTransform:t=>{const{encoding:e}=t,n=e.shape;return[Object.assign({type:"geoshape",projection:t.projectionName()},n&&Ie(n)&&n.type===v2?{field:$e(n,{expr:"datum"})}:{})]}},ztt={vgMark:"image",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"})),Hc(t,"x")),Hc(t,"y")),v7(t,"url"))},Qtt={vgMark:"line",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),ii("x",t,{defaultPos:"mid"})),ii("y",t,{defaultPos:"mid"})),Sr("size",t,{vgChannel:"strokeWidth"})),C7(t))},Gtt={vgMark:"trail",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),ii("x",t,{defaultPos:"mid"})),ii("y",t,{defaultPos:"mid"})),Sr("size",t)),C7(t))};function tP(t,e){const{config:n}=t;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),ii("x",t,{defaultPos:"mid"})),ii("y",t,{defaultPos:"mid"})),Sr("size",t)),Sr("angle",t)),Wtt(t,n,e))}function Wtt(t,e,n){return n?{shape:{value:n}}:Sr("shape",t)}const Vtt={vgMark:"symbol",encodeEntry:t=>tP(t)},Ytt={vgMark:"symbol",encodeEntry:t=>tP(t,"circle")},Xtt={vgMark:"symbol",encodeEntry:t=>tP(t,"square")},Ktt={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Hc(t,"x")),Hc(t,"y"))},Jtt={vgMark:"rule",encodeEntry:t=>{const{markDef:e}=t,n=e.orient;return!t.encoding.x&&!t.encoding.y&&!t.encoding.latitude&&!t.encoding.longitude?{}:Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),TN("x",t,{defaultPos:n==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="vertical"})),TN("y",t,{defaultPos:n==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="horizontal"})),Sr("size",t,{vgChannel:"strokeWidth"}))}},Ztt={vgMark:"text",encodeEntry:t=>{const{config:e,encoding:n}=t;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"})),ii("x",t,{defaultPos:"mid"})),ii("y",t,{defaultPos:"mid"})),v7(t)),Sr("size",t,{vgChannel:"fontSize"})),Sr("angle",t)),Wue("align",ent(t.markDef,n,e))),Wue("baseline",tnt(t.markDef,n,e))),ii("radius",t,{defaultPos:null})),ii("theta",t,{defaultPos:null}))}};function ent(t,e,n){if($t("align",t,n)===void 0)return"center"}function tnt(t,e,n){if($t("baseline",t,n)===void 0)return"middle"}const nnt={vgMark:"rect",encodeEntry:t=>{const{config:e,markDef:n}=t,r=n.orient,i=r==="horizontal"?"width":"height",s=r==="horizontal"?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),ii("x",t,{defaultPos:"mid",vgChannel:"xc"})),ii("y",t,{defaultPos:"mid",vgChannel:"yc"})),Sr("size",t,{defaultValue:rnt(t),vgChannel:i})),{[s]:sn($t("thickness",n,e))})}};function rnt(t){var e;const{config:n,markDef:r}=t,{orient:i}=r,s=i==="horizontal"?"width":"height",o=t.getScaleComponent(i==="horizontal"?"x":"y"),u=(e=$t("size",r,n,{vgChannel:s}))!==null&&e!==void 0?e:n.tick.bandSize;if(u!==void 0)return u;{const a=o?o.get("range"):void 0;return a&&Bc(a)&&tn(a.step)?a.step*3/4:SN(n.view,s)*3/4}}const WN={arc:jtt,area:Utt,bar:qtt,circle:Ytt,geoshape:Htt,image:ztt,line:Qtt,point:Vtt,rect:Ktt,rule:Jtt,square:Xtt,text:Ztt,tick:nnt,trail:Gtt};function int(t){if(bt([tN,ZO,rXe],t.mark)){const e=Uoe(t.mark,t.encoding);if(e.length>0)return snt(t,e)}else if(t.mark===eN){const e=c8.some(n=>$t(n,t.markDef,t.config));if(t.stack&&!t.fieldDef("size")&&e)return ont(t)}return nP(t)}const xle="faceted_path_";function snt(t,e){return[{name:t.getName("pathgroup"),type:"group",from:{facet:{name:xle+t.requestDataName(Kt.Main),data:t.requestDataName(Kt.Main),groupby:e}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:nP(t,{fromPrefix:xle})}]}const dle="stack_group_";function ont(t){var e;const[n]=nP(t,{fromPrefix:dle}),r=t.scaleName(t.stack.fieldChannel),i=(c={})=>t.vgField(t.stack.fieldChannel,c),s=(c,f)=>{const x=[i({prefix:"min",suffix:"start",expr:f}),i({prefix:"max",suffix:"start",expr:f}),i({prefix:"min",suffix:"end",expr:f}),i({prefix:"max",suffix:"end",expr:f})];return`${c}(${x.map(h=>`scale('${r}',${h})`).join(",")})`};let o,u;t.stack.fieldChannel==="x"?(o=Object.assign(Object.assign({},JE(n.encode.update,["y","yc","y2","height",...c8])),{x:{signal:s("min","datum")},x2:{signal:s("max","datum")},clip:{value:!0}}),u={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},n.encode.update=Object.assign(Object.assign({},Ao(n.encode.update,["y","yc","y2"])),{height:{field:{group:"height"}}})):(o=Object.assign(Object.assign({},JE(n.encode.update,["x","xc","x2","width"])),{y:{signal:s("min","datum")},y2:{signal:s("max","datum")},clip:{value:!0}}),u={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},n.encode.update=Object.assign(Object.assign({},Ao(n.encode.update,["x","xc","x2"])),{width:{field:{group:"width"}}}));for(const c of c8){const f=Ed(c,t.markDef,t.config);n.encode.update[c]?(o[c]=n.encode.update[c],delete n.encode.update[c]):f&&(o[c]=sn(f)),f&&(n.encode.update[c]={value:0})}const a=[];if(((e=t.stack.groupbyChannels)===null||e===void 0?void 0:e.length)>0)for(const c of t.stack.groupbyChannels){const f=t.fieldDef(c),x=$e(f);x&&a.push(x),(f!=null&&f.bin||f!=null&&f.timeUnit)&&a.push($e(f,{binSuffix:"end"}))}return o=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((c,f)=>{if(n.encode.update[f])return Object.assign(Object.assign({},c),{[f]:n.encode.update[f]});{const x=Ed(f,t.markDef,t.config);return x!==void 0?Object.assign(Object.assign({},c),{[f]:sn(x)}):c}},o),o.stroke&&(o.strokeForeground={value:!0},o.strokeOffset={value:0}),[{type:"group",from:{facet:{data:t.requestDataName(Kt.Main),name:dle+t.requestDataName(Kt.Main),groupby:a,aggregate:{fields:[i({suffix:"start"}),i({suffix:"start"}),i({suffix:"end"}),i({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:o},marks:[{type:"group",encode:{update:u},marks:[n]}]}]}function unt(t){var e;const{encoding:n,stack:r,mark:i,markDef:s,config:o}=t,u=n.order;if(!(!_e(u)&&fu(u)&&Jie(u.value)||!u&&Jie($t("order",s,o)))){if((_e(u)||Ie(u))&&!r)return bse(u,{expr:"datum"});if(kc(i)){const a=s.orient==="horizontal"?"y":"x",l=n[a];if(Ie(l)){const c=l.sort;if(_e(c))return{field:$e(l,{prefix:a,suffix:"sort_index",expr:"datum"})};if(Ra(c))return{field:$e({aggregate:X8(t.encoding)?c.op:void 0,field:c.field},{expr:"datum"})};if(Soe(c)){const f=t.fieldDef(c.encoding);return{field:$e(f,{expr:"datum"}),order:c.order}}else return c===null?void 0:{field:$e(l,{binSuffix:!((e=t.stack)===null||e===void 0)&&e.impute?"mid":void 0,expr:"datum"})}}return}}}function nP(t,e={fromPrefix:""}){const{mark:n,markDef:r,encoding:i,config:s}=t,o=nr(r.clip,ant(t),lnt(t)),u=_se(r),a=i.key,l=unt(t),c=cnt(t),f=$t("aria",r,s),x=WN[n].postEncodingTransform?WN[n].postEncodingTransform(t):null;return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:t.getName("marks"),type:WN[n].vgMark},o?{clip:!0}:{}),u?{style:u}:{}),a?{key:a.field}:{}),l?{sort:l}:{}),c||{}),f===!1?{aria:f}:{}),{from:{data:e.fromPrefix+t.requestDataName(Kt.Main)},encode:{update:WN[n].encodeEntry(t)}}),x?{transform:x}:{})]}function ant(t){const e=t.getScaleComponent("x"),n=t.getScaleComponent("y");return e!=null&&e.get("selectionExtent")||n!=null&&n.get("selectionExtent")?!0:void 0}function lnt(t){const e=t.component.projection;return e&&!e.isFit?!0:void 0}function cnt(t){if(!t.component.selection)return null;const e=Te(t.component.selection).length;let n=e,r=t.parent;for(;r&&n===0;)n=Te(r.component.selection).length,r=r.parent;return n?{interactive:e>0||!!t.encoding.tooltip}:null}class hle extends ole{constructor(e,n,r,i={},s){var o;super(e,"unit",n,r,s,void 0,uue(e)?e.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[];const u=Ta(e.mark)?Object.assign({},e.mark):{type:e.mark},a=u.type;u.filled===void 0&&(u.filled=Ptt(u,s,{graticule:e.data&&m7(e.data)}));const l=this.encoding=jXe(e.encoding||{},a,u.filled,s);this.markDef=$tt(u,l,s),this.size=Itt({encoding:l,size:uue(e)?Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{}):i}),this.stack=pue(a,l),this.specifiedScales=this.initScales(a,l),this.specifiedAxes=this.initAxes(l),this.specifiedLegends=this.initLegends(l),this.specifiedProjection=e.projection,this.selection=((o=e.params)!==null&&o!==void 0?o:[]).filter(c=>o7(c))}get hasProjection(){const{encoding:e}=this,n=this.mark===aoe,r=e&&UWe.some(i=>st(e[i]));return n||r}scaleDomain(e){const n=this.specifiedScales[e];return n?n.domain:void 0}axis(e){return this.specifiedAxes[e]}legend(e){return this.specifiedLegends[e]}initScales(e,n){return VO.reduce((r,i)=>{var s;const o=rr(n[i]);return o&&(r[i]=this.initScale((s=o.scale)!==null&&s!==void 0?s:{})),r},{})}initScale(e){const{domain:n,range:r}=e,i=xs(e);return _e(n)&&(i.domain=n.map(Ms)),_e(r)&&(i.range=r.map(Ms)),i}initAxes(e){return Ca.reduce((n,r)=>{const i=e[r];if(st(i)||r===mn&&st(e.x2)||r===Er&&st(e.y2)){const s=st(i)?i.axis:void 0;n[r]=s&&this.initAxis(Object.assign({},s))}return n},{})}initAxis(e){const n=Te(e),r={};for(const i of n){const s=e[i];r[i]=f3(s)?Ase(s):Ms(s)}return r}initLegends(e){return KWe.reduce((n,r)=>{const i=rr(e[r]);if(i&&ZWe(r)){const s=i.legend;n[r]=s&&xs(s)}return n},{})}parseData(){this.component.data=GN(this)}parseLayoutSize(){mtt(this)}parseSelections(){this.component.selection=ZJe(this,this.selection)}parseMarkGroup(){this.component.mark=int(this)}parseAxesAndHeaders(){this.component.axes=Ttt(this)}assembleSelectionTopLevelSignals(e){return AJe(this,e)}assembleSignals(){return[...cae(this),...yJe(this,[])]}assembleSelectionData(e){return SJe(this,e)}assembleLayout(){return null}assembleLayoutSignals(){return I7(this)}assembleMarks(){var e;let n=(e=this.component.mark)!==null&&e!==void 0?e:[];return(!this.parent||!j2(this.parent))&&(n=Bue(this,n)),n.map(this.correctDataNames)}assembleGroupStyle(){const{style:e}=this.view||{};if(e!==void 0)return e;if(this.encoding.x||this.encoding.y)return"cell"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(e){return bd(this.encoding,e)}fieldDef(e){const n=this.encoding[e];return Da(n)}typedFieldDef(e){const n=this.fieldDef(e);return _o(n)?n:null}}class rP extends K7{constructor(e,n,r,i,s){super(e,"layer",n,r,s,e.resolve,e.view);const o=Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{});this.children=e.layer.map((u,a)=>{if(_N(u))return new rP(u,this,this.getName(`layer_${a}`),o,s);if(Zl(u))return new hle(u,this,this.getName(`layer_${a}`),o,s);throw new Error(x8(u))})}parseData(){this.component.data=GN(this);for(const e of this.children)e.parseData()}parseLayoutSize(){ptt(this)}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const n of Te(e.component.selection))this.component.selection[n]=e.component.selection[n]}}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){Ott(this)}assembleSelectionTopLevelSignals(e){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),e)}assembleSignals(){return this.children.reduce((e,n)=>e.concat(n.assembleSignals()),cae(this))}assembleLayoutSignals(){return this.children.reduce((e,n)=>e.concat(n.assembleLayoutSignals()),I7(this))}assembleSelectionData(e){return this.children.reduce((n,r)=>r.assembleSelectionData(n),e)}assembleGroupStyle(){const e=new Set;for(const r of this.children)for(const i of Pe(r.assembleGroupStyle()))e.add(i);const n=Array.from(e);return n.length>1?n:n.length===1?n[0]:void 0}assembleTitle(){let e=super.assembleTitle();if(e)return e;for(const n of this.children)if(e=n.assembleTitle(),e)return e}assembleLayout(){return null}assembleMarks(){return vJe(this,this.children.flatMap(e=>e.assembleMarks()))}assembleLegends(){return this.children.reduce((e,n)=>e.concat(n.assembleLegends()),Lae(this))}}function iP(t,e,n,r,i){if(uN(t))return new C3(t,e,n,i);if(_N(t))return new rP(t,e,n,r,i);if(Zl(t))return new hle(t,e,n,r,i);if(cKe(t))return new vtt(t,e,n,i);throw new Error(x8(t))}var fnt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function xnt(t,e={}){e.logger&&EYe(e.logger),e.fieldTitle&&Foe(e.fieldTitle);try{const n=due(G4(e.config,t.config)),r=uJe(t,n),i=iP(r,null,"",void 0,n);return i.parse(),Cet(i.component.data,i),{spec:hnt(i,dnt(t,r.autosize,n,i),t.datasets,t.usermeta),normalized:r}}finally{e.logger&&AYe(),e.fieldTitle&&FXe()}}function dnt(t,e,n,r){const i=r.component.layoutSize.get("width"),s=r.component.layoutSize.get("height");if(e===void 0?(e={type:"pad"},r.hasAxisOrientSignalRef()&&(e.resize=!0)):je(e)&&(e={type:e}),i&&s&&dJe(e.type)){if(i==="step"&&s==="step")Re(Fse()),e.type="pad";else if(i==="step"||s==="step"){const o=i==="step"?"width":"height";Re(Fse(WO(o)));const u=o==="width"?"height":"width";e.type=hJe(u)}}return Object.assign(Object.assign(Object.assign({},Te(e).length===1&&e.type?e.type==="pad"?{}:{autosize:e.type}:{autosize:e}),Fue(n,!1)),Fue(t,!0))}function hnt(t,e,n={},r){const i=t.config?_Ke(t.config):void 0,s=[].concat(t.assembleSelectionData([]),ftt(t.component.data,n)),o=t.assembleProjections(),u=t.assembleTitle(),a=t.assembleGroupStyle(),l=t.assembleGroupEncodeEntry(!0);let c=t.assembleLayoutSignals();c=c.filter(h=>(h.name==="width"||h.name==="height")&&h.value!==void 0?(e[h.name]=+h.value,!1):!0);const{params:f}=e,x=fnt(e,["params"]);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({$schema:"https://vega.github.io/schema/vega/v5.json"},t.description?{description:t.description}:{}),x),u?{title:u}:{}),a?{style:a}:{}),l?{encode:{update:l}}:{}),{data:s}),o.length>0?{projections:o}:{}),t.assembleGroup([...c,...t.assembleSelectionTopLevelSignals([]),...sue(f)])),i?{config:i}:{}),r?{usermeta:r}:{})}var pnt=Xc("<div>");function gnt(t){let e,n=null;return nD(()=>{n&&n.finalize();const r=t.type==="vega-lite"?xnt(t.spec).spec:t.spec;n=new qre(mWe(r)).initialize(e).renderer("svg").hover(),n.run()}),nD(()=>{n&&(t.width&&n.width(t.width),t.height&&n.height(t.height),n.run())}),(()=>{var r=pnt(),i=e;return typeof i=="function"?n0e(i,r):e=r,r})()}function ple(t){const{field:e,data:n}=t,r=t.metadata.field(e).vegaChartProps,i=structuredClone(r.spec);return i.data[0].values=n,Pn(gnt,{spec:i,type:"vega",get width(){return r.plotWidth},get height(){return r.plotHeight}})}var VN=(t=>(t.Dollars="usd",t.Euros="euro",t.Pounds="pound",t))(VN||{}),r0=(t=>(t.Nanoseconds="nanoseconds",t.Microseconds="microseconds",t.Milliseconds="milliseconds",t.Seconds="seconds",t.Minutes="minutes",t.Hours="hours",t.Days="days",t))(r0||{}),gle={exports:{}};(function(t){var e={},n=function(i){i.version="0.11.2";function s(D){for(var $="",j=D.length-1;j>=0;)$+=D.charAt(j--);return $}function o(D,$){for(var j="";j.length<$;)j+=D;return j}function u(D,$){var j=""+D;return j.length>=$?j:o("0",$-j.length)+j}function a(D,$){var j=""+D;return j.length>=$?j:o(" ",$-j.length)+j}function l(D,$){var j=""+D;return j.length>=$?j:j+o(" ",$-j.length)}function c(D,$){var j=""+Math.round(D);return j.length>=$?j:o("0",$-j.length)+j}function f(D,$){var j=""+D;return j.length>=$?j:o("0",$-j.length)+j}var x=Math.pow(2,32);function h(D,$){if(D>x||D<-x)return c(D,$);var j=Math.round(D);return f(j,$)}function p(D,$){return $=$||0,D.length>=7+$&&(D.charCodeAt($)|32)===103&&(D.charCodeAt($+1)|32)===101&&(D.charCodeAt($+2)|32)===110&&(D.charCodeAt($+3)|32)===101&&(D.charCodeAt($+4)|32)===114&&(D.charCodeAt($+5)|32)===97&&(D.charCodeAt($+6)|32)===108}var m=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]],g=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function y(D){D[0]="General",D[1]="0",D[2]="0.00",D[3]="#,##0",D[4]="#,##0.00",D[9]="0%",D[10]="0.00%",D[11]="0.00E+00",D[12]="# ?/?",D[13]="# ??/??",D[14]="m/d/yy",D[15]="d-mmm-yy",D[16]="d-mmm",D[17]="mmm-yy",D[18]="h:mm AM/PM",D[19]="h:mm:ss AM/PM",D[20]="h:mm",D[21]="h:mm:ss",D[22]="m/d/yy h:mm",D[37]="#,##0 ;(#,##0)",D[38]="#,##0 ;[Red](#,##0)",D[39]="#,##0.00;(#,##0.00)",D[40]="#,##0.00;[Red](#,##0.00)",D[45]="mm:ss",D[46]="[h]:mm:ss",D[47]="mmss.0",D[48]="##0.0E+0",D[49]="@",D[56]='"上午/下午 "hh"時"mm"分"ss"秒 "'}var E={};y(E);var A=[],S=0;for(S=5;S<=8;++S)A[S]=32+S;for(S=23;S<=26;++S)A[S]=0;for(S=27;S<=31;++S)A[S]=14;for(S=50;S<=58;++S)A[S]=14;for(S=59;S<=62;++S)A[S]=S-58;for(S=67;S<=68;++S)A[S]=S-58;for(S=72;S<=75;++S)A[S]=S-58;for(S=67;S<=68;++S)A[S]=S-57;for(S=76;S<=78;++S)A[S]=S-56;for(S=79;S<=81;++S)A[S]=S-34;var v=[];v[5]=v[63]='"$"#,##0_);\\("$"#,##0\\)',v[6]=v[64]='"$"#,##0_);[Red]\\("$"#,##0\\)',v[7]=v[65]='"$"#,##0.00_);\\("$"#,##0.00\\)',v[8]=v[66]='"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',v[41]='_(* #,##0_);_(* \\(#,##0\\);_(* "-"_);_(@_)',v[42]='_("$"* #,##0_);_("$"* \\(#,##0\\);_("$"* "-"_);_(@_)',v[43]='_(* #,##0.00_);_(* \\(#,##0.00\\);_(* "-"??_);_(@_)',v[44]='_("$"* #,##0.00_);_("$"* \\(#,##0.00\\);_("$"* "-"??_);_(@_)';function _(D,$,j){for(var Q=D<0?-1:1,I=D*Q,H=0,P=1,J=0,ce=1,ue=0,Z=0,ae=Math.floor(I);ue<$&&(ae=Math.floor(I),J=ae*P+H,Z=ae*ue+ce,!(I-ae<5e-8));)I=1/(I-ae),H=P,P=J,ce=ue,ue=Z;if(Z>$&&(ue>$?(Z=ce,J=H):(Z=ue,J=P)),!j)return[0,Q*J,Z];var qe=Math.floor(Q*J/Z);return[qe,Q*J-qe*Z,Z]}function C(D,$,j){if(D>2958465||D<0)return null;var Q=D|0,I=Math.floor(86400*(D-Q)),H=0,P=[],J={D:Q,T:I,u:86400*(D-Q)-I,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(J.u)<1e-6&&(J.u=0),$&&$.date1904&&(Q+=1462),J.u>.9999&&(J.u=0,++I==86400&&(J.T=I=0,++Q,++J.D)),Q===60)P=j?[1317,10,29]:[1900,2,29],H=3;else if(Q===0)P=j?[1317,8,29]:[1900,1,0],H=6;else{Q>60&&--Q;var ce=new Date(1900,0,1);ce.setDate(ce.getDate()+Q-1),P=[ce.getFullYear(),ce.getMonth()+1,ce.getDate()],H=ce.getDay(),Q<60&&(H=(H+6)%7),j&&(H=B(ce,P))}return J.y=P[0],J.m=P[1],J.d=P[2],J.S=I%60,I=Math.floor(I/60),J.M=I%60,I=Math.floor(I/60),J.H=I,J.q=H,J}i.parse_date_code=C;var b=new Date(1899,11,31,0,0,0),R=b.getTime(),O=new Date(1900,2,1,0,0,0);function L(D,$){var j=D.getTime();return $?j-=1262304e5:D>=O&&(j+=864e5),(j-(R+(D.getTimezoneOffset()-b.getTimezoneOffset())*6e4))/864e5}function M(D){return D.toString(10)}i._general_int=M;var q=function(){var $=/(?:\.0*|(\.\d*[1-9])0+)$/;function j(ue){return ue.indexOf(".")==-1?ue:ue.replace($,"$1")}var Q=/(?:\.0*|(\.\d*[1-9])0+)[Ee]/,I=/(E[+-])(\d)$/;function H(ue){return ue.indexOf("E")==-1?ue:ue.replace(Q,"$1E").replace(I,"$10$2")}function P(ue){var Z=ue<0?12:11,ae=j(ue.toFixed(12));return ae.length<=Z||(ae=ue.toPrecision(10),ae.length<=Z)?ae:ue.toExponential(5)}function J(ue){var Z=j(ue.toFixed(11));return Z.length>(ue<0?12:11)||Z==="0"||Z==="-0"?ue.toPrecision(6):Z}function ce(ue){var Z=Math.floor(Math.log(Math.abs(ue))*Math.LOG10E),ae;return Z>=-4&&Z<=-1?ae=ue.toPrecision(10+Z):Math.abs(Z)<=9?ae=P(ue):Z===10?ae=ue.toFixed(10).substr(0,12):ae=J(ue),j(H(ae.toUpperCase()))}return ce}();i._general_num=q;function W(D,$){switch(typeof D){case"string":return D;case"boolean":return D?"TRUE":"FALSE";case"number":return(D|0)===D?D.toString(10):q(D);case"undefined":return"";case"object":if(D==null)return"";if(D instanceof Date)return Y(14,L(D,$&&$.date1904),$)}throw new Error("unsupported value in General format: "+D)}i._general=W;function B(D,$){$[0]-=581;var j=D.getDay();return D<60&&(j=(j+6)%7),j}function G(D,$,j,Q){var I="",H=0,P=0,J=j.y,ce,ue=0;switch(D){case 98:J=j.y+543;case 121:switch($.length){case 1:case 2:ce=J%100,ue=2;break;default:ce=J%1e4,ue=4;break}break;case 109:switch($.length){case 1:case 2:ce=j.m,ue=$.length;break;case 3:return g[j.m-1][1];case 5:return g[j.m-1][0];default:return g[j.m-1][2]}break;case 100:switch($.length){case 1:case 2:ce=j.d,ue=$.length;break;case 3:return m[j.q][0];default:return m[j.q][1]}break;case 104:switch($.length){case 1:case 2:ce=1+(j.H+11)%12,ue=$.length;break;default:throw"bad hour format: "+$}break;case 72:switch($.length){case 1:case 2:ce=j.H,ue=$.length;break;default:throw"bad hour format: "+$}break;case 77:switch($.length){case 1:case 2:ce=j.M,ue=$.length;break;default:throw"bad minute format: "+$}break;case 115:if($!="s"&&$!="ss"&&$!=".0"&&$!=".00"&&$!=".000")throw"bad second format: "+$;return j.u===0&&($=="s"||$=="ss")?u(j.S,$.length):(Q>=2?P=Q===3?1e3:100:P=Q===1?10:1,H=Math.round(P*(j.S+j.u)),H>=60*P&&(H=0),$==="s"?H===0?"0":""+H/P:(I=u(H,2+Q),$==="ss"?I.substr(0,2):"."+I.substr(2,$.length-1)));case 90:switch($){case"[h]":case"[hh]":ce=j.D*24+j.H;break;case"[m]":case"[mm]":ce=(j.D*24+j.H)*60+j.M;break;case"[s]":case"[ss]":ce=((j.D*24+j.H)*60+j.M)*60+Math.round(j.S+j.u);break;default:throw"bad abstime format: "+$}ue=$.length===3?1:2;break;case 101:ce=J,ue=1;break}var Z=ue>0?u(ce,ue):"";return Z}function te(D){var $=3;if(D.length<=$)return D;for(var j=D.length%$,Q=D.substr(0,j);j!=D.length;j+=$)Q+=(Q.length>0?",":"")+D.substr(j,$);return Q}var K=function(){var $=/%/g;function j(Se,ie,le){var ze=ie.replace($,""),X=ie.length-ze.length;return K(Se,ze,le*Math.pow(10,2*X))+o("%",X)}function Q(Se,ie,le){for(var ze=ie.length-1;ie.charCodeAt(ze-1)===44;)--ze;return K(Se,ie.substr(0,ze),le/Math.pow(10,3*(ie.length-ze)))}function I(Se,ie){var le,ze=Se.indexOf("E")-Se.indexOf(".")-1;if(Se.match(/^#+0.0E\+0$/)){if(ie==0)return"0.0E+0";if(ie<0)return"-"+I(Se,-ie);var X=Se.indexOf(".");X===-1&&(X=Se.indexOf("E"));var fe=Math.floor(Math.log(ie)*Math.LOG10E)%X;if(fe<0&&(fe+=X),le=(ie/Math.pow(10,fe)).toPrecision(ze+1+(X+fe)%X),le.indexOf("e")===-1){var Le=Math.floor(Math.log(ie)*Math.LOG10E);for(le.indexOf(".")===-1?le=le.charAt(0)+"."+le.substr(1)+"E+"+(Le-le.length+fe):le+="E+"+(Le-fe);le.substr(0,2)==="0.";)le=le.charAt(0)+le.substr(2,X)+"."+le.substr(2+X),le=le.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.");le=le.replace(/\+-/,"-")}le=le.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(We,at,Bt,rt){return at+Bt+rt.substr(0,(X+fe)%X)+"."+rt.substr(fe)+"E"})}else le=ie.toExponential(ze);return Se.match(/E\+00$/)&&le.match(/e[+-]\d$/)&&(le=le.substr(0,le.length-1)+"0"+le.charAt(le.length-1)),Se.match(/E\-/)&&le.match(/e\+/)&&(le=le.replace(/e\+/,"e")),le.replace("e","E")}var H=/# (\?+)( ?)\/( ?)(\d+)/;function P(Se,ie,le){var ze=parseInt(Se[4],10),X=Math.round(ie*ze),fe=Math.floor(X/ze),Le=X-fe*ze,We=ze;return le+(fe===0?"":""+fe)+" "+(Le===0?o(" ",Se[1].length+1+Se[4].length):a(Le,Se[1].length)+Se[2]+"/"+Se[3]+u(We,Se[4].length))}function J(Se,ie,le){return le+(ie===0?"":""+ie)+o(" ",Se[1].length+2+Se[4].length)}var ce=/^#*0*\.([0#]+)/,ue=/\).*[0#]/,Z=/\(###\) ###\\?-####/;function ae(Se){for(var ie="",le,ze=0;ze!=Se.length;++ze)switch(le=Se.charCodeAt(ze)){case 35:break;case 63:ie+=" ";break;case 48:ie+="0";break;default:ie+=String.fromCharCode(le)}return ie}function qe(Se,ie){var le=Math.pow(10,ie);return""+Math.round(Se*le)/le}function se(Se,ie){var le=Se-Math.floor(Se),ze=Math.pow(10,ie);return ie<(""+Math.round(le*ze)).length?0:Math.round(le*ze)}function xe(Se,ie){return ie<(""+Math.round((Se-Math.floor(Se))*Math.pow(10,ie))).length?1:0}function Ce(Se){return Se<2147483647&&Se>-2147483648?""+(Se>=0?Se|0:Se-1|0):""+Math.floor(Se)}function Oe(Se,ie,le){if(Se.charCodeAt(0)===40&&!ie.match(ue)){var ze=ie.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return le>=0?Oe("n",ze,le):"("+Oe("n",ze,-le)+")"}if(ie.charCodeAt(ie.length-1)===44)return Q(Se,ie,le);if(ie.indexOf("%")!==-1)return j(Se,ie,le);if(ie.indexOf("E")!==-1)return I(ie,le);if(ie.charCodeAt(0)===36)return"$"+Oe(Se,ie.substr(ie.charAt(1)==" "?2:1),le);var X,fe,Le,We,at=Math.abs(le),Bt=le<0?"-":"";if(ie.match(/^00+$/))return Bt+h(at,ie.length);if(ie.match(/^[#?]+$/))return X=h(le,0),X==="0"&&(X=""),X.length>ie.length?X:ae(ie.substr(0,ie.length-X.length))+X;if(fe=ie.match(H))return P(fe,at,Bt);if(ie.match(/^#+0+$/))return Bt+h(at,ie.length-ie.indexOf("0"));if(fe=ie.match(ce))return X=qe(le,fe[1].length).replace(/^([^\.]+)$/,"$1."+ae(fe[1])).replace(/\.$/,"."+ae(fe[1])).replace(/\.(\d*)$/,function(qs,R3){return"."+R3+o("0",ae(fe[1]).length-R3.length)}),ie.indexOf("0.")!==-1?X:X.replace(/^0\./,".");if(ie=ie.replace(/^#+([0.])/,"$1"),fe=ie.match(/^(0*)\.(#*)$/))return Bt+qe(at,fe[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,fe[1].length?"0.":".");if(fe=ie.match(/^#{1,3},##0(\.?)$/))return Bt+te(h(at,0));if(fe=ie.match(/^#,##0\.([#0]*0)$/))return le<0?"-"+Oe(Se,ie,-le):te(""+(Math.floor(le)+xe(le,fe[1].length)))+"."+u(se(le,fe[1].length),fe[1].length);if(fe=ie.match(/^#,#*,#0/))return Oe(Se,ie.replace(/^#,#*,/,""),le);if(fe=ie.match(/^([0#]+)(\\?-([0#]+))+$/))return X=s(Oe(Se,ie.replace(/[\\-]/g,""),le)),Le=0,s(s(ie.replace(/\\/g,"")).replace(/[0#]/g,function(qs){return Le<X.length?X.charAt(Le++):qs==="0"?"0":""}));if(ie.match(Z))return X=Oe(Se,"##########",le),"("+X.substr(0,3)+") "+X.substr(3,3)+"-"+X.substr(6);var rt="";if(fe=ie.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))return Le=Math.min(fe[4].length,7),We=_(at,Math.pow(10,Le)-1,!1),X=""+Bt,rt=K("n",fe[1],We[1]),rt.charAt(rt.length-1)==" "&&(rt=rt.substr(0,rt.length-1)+"0"),X+=rt+fe[2]+"/"+fe[3],rt=l(We[2],Le),rt.length<fe[4].length&&(rt=ae(fe[4].substr(fe[4].length-rt.length))+rt),X+=rt,X;if(fe=ie.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/))return Le=Math.min(Math.max(fe[1].length,fe[4].length),7),We=_(at,Math.pow(10,Le)-1,!0),Bt+(We[0]||(We[1]?"":"0"))+" "+(We[1]?a(We[1],Le)+fe[2]+"/"+fe[3]+l(We[2],Le):o(" ",2*Le+1+fe[2].length+fe[3].length));if(fe=ie.match(/^[#0?]+$/))return X=h(le,0),ie.length<=X.length?X:ae(ie.substr(0,ie.length-X.length))+X;if(fe=ie.match(/^([#0?]+)\.([#0]+)$/)){X=""+le.toFixed(Math.min(fe[2].length,10)).replace(/([^0])0+$/,"$1"),Le=X.indexOf(".");var vr=ie.indexOf(".")-Le,Wc=ie.length-X.length-vr;return ae(ie.substr(0,vr)+X+ie.substr(ie.length-Wc))}if(fe=ie.match(/^00,000\.([#0]*0)$/))return Le=se(le,fe[1].length),le<0?"-"+Oe(Se,ie,-le):te(Ce(le)).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,function(qs){return"00,"+(qs.length<3?u(0,3-qs.length):"")+qs})+"."+u(Le,fe[1].length);switch(ie){case"###,##0.00":return Oe(Se,"#,##0.00",le);case"###,###":case"##,###":case"#,###":var T3=te(h(at,0));return T3!=="0"?Bt+T3:"";case"###,###.00":return Oe(Se,"###,##0.00",le).replace(/^0\./,".");case"#,###.00":return Oe(Se,"#,##0.00",le).replace(/^0\./,".")}throw new Error("unsupported format |"+ie+"|")}function Me(Se,ie,le){for(var ze=ie.length-1;ie.charCodeAt(ze-1)===44;)--ze;return K(Se,ie.substr(0,ze),le/Math.pow(10,3*(ie.length-ze)))}function it(Se,ie,le){var ze=ie.replace($,""),X=ie.length-ze.length;return K(Se,ze,le*Math.pow(10,2*X))+o("%",X)}function et(Se,ie){var le,ze=Se.indexOf("E")-Se.indexOf(".")-1;if(Se.match(/^#+0.0E\+0$/)){if(ie==0)return"0.0E+0";if(ie<0)return"-"+et(Se,-ie);var X=Se.indexOf(".");X===-1&&(X=Se.indexOf("E"));var fe=Math.floor(Math.log(ie)*Math.LOG10E)%X;if(fe<0&&(fe+=X),le=(ie/Math.pow(10,fe)).toPrecision(ze+1+(X+fe)%X),!le.match(/[Ee]/)){var Le=Math.floor(Math.log(ie)*Math.LOG10E);le.indexOf(".")===-1?le=le.charAt(0)+"."+le.substr(1)+"E+"+(Le-le.length+fe):le+="E+"+(Le-fe),le=le.replace(/\+-/,"-")}le=le.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(We,at,Bt,rt){return at+Bt+rt.substr(0,(X+fe)%X)+"."+rt.substr(fe)+"E"})}else le=ie.toExponential(ze);return Se.match(/E\+00$/)&&le.match(/e[+-]\d$/)&&(le=le.substr(0,le.length-1)+"0"+le.charAt(le.length-1)),Se.match(/E\-/)&&le.match(/e\+/)&&(le=le.replace(/e\+/,"e")),le.replace("e","E")}function Be(Se,ie,le){if(Se.charCodeAt(0)===40&&!ie.match(ue)){var ze=ie.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return le>=0?Be("n",ze,le):"("+Be("n",ze,-le)+")"}if(ie.charCodeAt(ie.length-1)===44)return Me(Se,ie,le);if(ie.indexOf("%")!==-1)return it(Se,ie,le);if(ie.indexOf("E")!==-1)return et(ie,le);if(ie.charCodeAt(0)===36)return"$"+Be(Se,ie.substr(ie.charAt(1)==" "?2:1),le);var X,fe,Le,We,at=Math.abs(le),Bt=le<0?"-":"";if(ie.match(/^00+$/))return Bt+u(at,ie.length);if(ie.match(/^[#?]+$/))return X=""+le,le===0&&(X=""),X.length>ie.length?X:ae(ie.substr(0,ie.length-X.length))+X;if(fe=ie.match(H))return J(fe,at,Bt);if(ie.match(/^#+0+$/))return Bt+u(at,ie.length-ie.indexOf("0"));if(fe=ie.match(ce))return X=(""+le).replace(/^([^\.]+)$/,"$1."+ae(fe[1])).replace(/\.$/,"."+ae(fe[1])),X=X.replace(/\.(\d*)$/,function(qs,R3){return"."+R3+o("0",ae(fe[1]).length-R3.length)}),ie.indexOf("0.")!==-1?X:X.replace(/^0\./,".");if(ie=ie.replace(/^#+([0.])/,"$1"),fe=ie.match(/^(0*)\.(#*)$/))return Bt+(""+at).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,fe[1].length?"0.":".");if(fe=ie.match(/^#{1,3},##0(\.?)$/))return Bt+te(""+at);if(fe=ie.match(/^#,##0\.([#0]*0)$/))return le<0?"-"+Be(Se,ie,-le):te(""+le)+"."+o("0",fe[1].length);if(fe=ie.match(/^#,#*,#0/))return Be(Se,ie.replace(/^#,#*,/,""),le);if(fe=ie.match(/^([0#]+)(\\?-([0#]+))+$/))return X=s(Be(Se,ie.replace(/[\\-]/g,""),le)),Le=0,s(s(ie.replace(/\\/g,"")).replace(/[0#]/g,function(qs){return Le<X.length?X.charAt(Le++):qs==="0"?"0":""}));if(ie.match(Z))return X=Be(Se,"##########",le),"("+X.substr(0,3)+") "+X.substr(3,3)+"-"+X.substr(6);var rt="";if(fe=ie.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))return Le=Math.min(fe[4].length,7),We=_(at,Math.pow(10,Le)-1,!1),X=""+Bt,rt=K("n",fe[1],We[1]),rt.charAt(rt.length-1)==" "&&(rt=rt.substr(0,rt.length-1)+"0"),X+=rt+fe[2]+"/"+fe[3],rt=l(We[2],Le),rt.length<fe[4].length&&(rt=ae(fe[4].substr(fe[4].length-rt.length))+rt),X+=rt,X;if(fe=ie.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/))return Le=Math.min(Math.max(fe[1].length,fe[4].length),7),We=_(at,Math.pow(10,Le)-1,!0),Bt+(We[0]||(We[1]?"":"0"))+" "+(We[1]?a(We[1],Le)+fe[2]+"/"+fe[3]+l(We[2],Le):o(" ",2*Le+1+fe[2].length+fe[3].length));if(fe=ie.match(/^[#0?]+$/))return X=""+le,ie.length<=X.length?X:ae(ie.substr(0,ie.length-X.length))+X;if(fe=ie.match(/^([#0]+)\.([#0]+)$/)){X=""+le.toFixed(Math.min(fe[2].length,10)).replace(/([^0])0+$/,"$1"),Le=X.indexOf(".");var vr=ie.indexOf(".")-Le,Wc=ie.length-X.length-vr;return ae(ie.substr(0,vr)+X+ie.substr(ie.length-Wc))}if(fe=ie.match(/^00,000\.([#0]*0)$/))return le<0?"-"+Be(Se,ie,-le):te(""+le).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,function(qs){return"00,"+(qs.length<3?u(0,3-qs.length):"")+qs})+"."+u(0,fe[1].length);switch(ie){case"###,###":case"##,###":case"#,###":var T3=te(""+at);return T3!=="0"?Bt+T3:"";default:if(ie.match(/\.[0#?]*$/))return Be(Se,ie.slice(0,ie.lastIndexOf(".")),le)+ae(ie.slice(ie.lastIndexOf(".")))}throw new Error("unsupported format |"+ie+"|")}return function(ie,le,ze){return(ze|0)===ze?Be(ie,le,ze):Oe(ie,le,ze)}}();function de(D){for(var $=[],j=!1,Q=0,I=0;Q<D.length;++Q)switch(D.charCodeAt(Q)){case 34:j=!j;break;case 95:case 42:case 92:++Q;break;case 59:$[$.length]=D.substr(I,Q-I),I=Q+1}if($[$.length]=D.substr(I),j===!0)throw new Error("Format |"+D+"| unterminated string ");return $}i._split=de;var be=/\[[HhMmSs\u0E0A\u0E19\u0E17]*\]/;function ee(D){for(var $=0,j="",Q="";$<D.length;)switch(j=D.charAt($)){case"G":p(D,$)&&($+=6),$++;break;case'"':for(;D.charCodeAt(++$)!==34&&$<D.length;);++$;break;case"\\":$+=2;break;case"_":$+=2;break;case"@":++$;break;case"B":case"b":if(D.charAt($+1)==="1"||D.charAt($+1)==="2")return!0;case"M":case"D":case"Y":case"H":case"S":case"E":case"m":case"d":case"y":case"h":case"s":case"e":case"g":return!0;case"A":case"a":case"上":if(D.substr($,3).toUpperCase()==="A/P"||D.substr($,5).toUpperCase()==="AM/PM"||D.substr($,5).toUpperCase()==="上午/下午")return!0;++$;break;case"[":for(Q=j;D.charAt($++)!=="]"&&$<D.length;)Q+=D.charAt($);if(Q.match(be))return!0;break;case".":case"0":case"#":for(;$<D.length&&("0#?.,E+-%".indexOf(j=D.charAt(++$))>-1||j=="\\"&&D.charAt($+1)=="-"&&"0#".indexOf(D.charAt($+2))>-1););break;case"?":for(;D.charAt(++$)===j;);break;case"*":++$,(D.charAt($)==" "||D.charAt($)=="*")&&++$;break;case"(":case")":++$;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;$<D.length&&"0123456789".indexOf(D.charAt(++$))>-1;);break;case" ":++$;break;default:++$;break}return!1}i.is_date=ee;function U(D,$,j,Q){for(var I=[],H="",P=0,J="",ce="t",ue,Z,ae,qe="H";P<D.length;)switch(J=D.charAt(P)){case"G":if(!p(D,P))throw new Error("unrecognized character "+J+" in "+D);I[I.length]={t:"G",v:"General"},P+=7;break;case'"':for(H="";(ae=D.charCodeAt(++P))!==34&&P<D.length;)H+=String.fromCharCode(ae);I[I.length]={t:"t",v:H},++P;break;case"\\":var se=D.charAt(++P),xe=se==="("||se===")"?se:"t";I[I.length]={t:xe,v:se},++P;break;case"_":I[I.length]={t:"t",v:" "},P+=2;break;case"@":I[I.length]={t:"T",v:$},++P;break;case"B":case"b":if(D.charAt(P+1)==="1"||D.charAt(P+1)==="2"){if(ue==null&&(ue=C($,j,D.charAt(P+1)==="2"),ue==null))return"";I[I.length]={t:"X",v:D.substr(P,2)},ce=J,P+=2;break}case"M":case"D":case"Y":case"H":case"S":case"E":J=J.toLowerCase();case"m":case"d":case"y":case"h":case"s":case"e":case"g":if($<0||ue==null&&(ue=C($,j),ue==null))return"";for(H=J;++P<D.length&&D.charAt(P).toLowerCase()===J;)H+=J;J==="m"&&ce.toLowerCase()==="h"&&(J="M"),J==="h"&&(J=qe),I[I.length]={t:J,v:H},ce=J;break;case"A":case"a":case"上":var Ce={t:J,v:J};if(ue==null&&(ue=C($,j)),D.substr(P,3).toUpperCase()==="A/P"?(ue!=null&&(Ce.v=ue.H>=12?"P":"A"),Ce.t="T",qe="h",P+=3):D.substr(P,5).toUpperCase()==="AM/PM"?(ue!=null&&(Ce.v=ue.H>=12?"PM":"AM"),Ce.t="T",P+=5,qe="h"):D.substr(P,5).toUpperCase()==="上午/下午"?(ue!=null&&(Ce.v=ue.H>=12?"下午":"上午"),Ce.t="T",P+=5,qe="h"):(Ce.t="t",++P),ue==null&&Ce.t==="T")return"";I[I.length]=Ce,ce=J;break;case"[":for(H=J;D.charAt(P++)!=="]"&&P<D.length;)H+=D.charAt(P);if(H.slice(-1)!=="]")throw'unterminated "[" block: |'+H+"|";if(H.match(be)){if(ue==null&&(ue=C($,j),ue==null))return"";I[I.length]={t:"Z",v:H.toLowerCase()},ce=H.charAt(1)}else H.indexOf("$")>-1&&(H=(H.match(/\$([^-\[\]]*)/)||[])[1]||"$",ee(D)||(I[I.length]={t:"t",v:H}));break;case".":if(ue!=null){for(H=J;++P<D.length&&(J=D.charAt(P))==="0";)H+=J;I[I.length]={t:"s",v:H};break}case"0":case"#":for(H=J;++P<D.length&&"0#?.,E+-%".indexOf(J=D.charAt(P))>-1;)H+=J;I[I.length]={t:"n",v:H};break;case"?":for(H=J;D.charAt(++P)===J;)H+=J;I[I.length]={t:J,v:H},ce=J;break;case"*":++P,(D.charAt(P)==" "||D.charAt(P)=="*")&&++P;break;case"(":case")":I[I.length]={t:Q===1?"t":J,v:J},++P;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(H=J;P<D.length&&"0123456789".indexOf(D.charAt(++P))>-1;)H+=D.charAt(P);I[I.length]={t:"D",v:H};break;case" ":I[I.length]={t:J,v:J},++P;break;case"$":I[I.length]={t:"t",v:"$"},++P;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(J)===-1)throw new Error("unrecognized character "+J+" in "+D);I[I.length]={t:"t",v:J},++P;break}var Oe=0,Me=0,it;for(P=I.length-1,ce="t";P>=0;--P)switch(I[P].t){case"h":case"H":I[P].t=qe,ce="h",Oe<1&&(Oe=1);break;case"s":(it=I[P].v.match(/\.0+$/))&&(Me=Math.max(Me,it[0].length-1)),Oe<3&&(Oe=3);case"d":case"y":case"M":case"e":ce=I[P].t;break;case"m":ce==="s"&&(I[P].t="M",Oe<2&&(Oe=2));break;case"X":break;case"Z":Oe<1&&I[P].v.match(/[Hh]/)&&(Oe=1),Oe<2&&I[P].v.match(/[Mm]/)&&(Oe=2),Oe<3&&I[P].v.match(/[Ss]/)&&(Oe=3)}switch(Oe){case 0:break;case 1:ue.u>=.5&&(ue.u=0,++ue.S),ue.S>=60&&(ue.S=0,++ue.M),ue.M>=60&&(ue.M=0,++ue.H);break;case 2:ue.u>=.5&&(ue.u=0,++ue.S),ue.S>=60&&(ue.S=0,++ue.M);break}var et="",Be;for(P=0;P<I.length;++P)switch(I[P].t){case"t":case"T":case" ":case"D":break;case"X":I[P].v="",I[P].t=";";break;case"d":case"m":case"y":case"h":case"H":case"M":case"s":case"e":case"b":case"Z":I[P].v=G(I[P].t.charCodeAt(0),I[P].v,ue,Me),I[P].t="t";break;case"n":case"?":for(Be=P+1;I[Be]!=null&&((J=I[Be].t)==="?"||J==="D"||(J===" "||J==="t")&&I[Be+1]!=null&&(I[Be+1].t==="?"||I[Be+1].t==="t"&&I[Be+1].v==="/")||I[P].t==="("&&(J===" "||J==="n"||J===")")||J==="t"&&(I[Be].v==="/"||I[Be].v===" "&&I[Be+1]!=null&&I[Be+1].t=="?"));)I[P].v+=I[Be].v,I[Be]={v:"",t:";"},++Be;et+=I[P].v,P=Be-1;break;case"G":I[P].t="t",I[P].v=W($,j);break}var Se="",ie,le;if(et.length>0){et.charCodeAt(0)==40?(ie=$<0&&et.charCodeAt(0)===45?-$:$,le=K("n",et,ie)):(ie=$<0&&Q>1?-$:$,le=K("n",et,ie),ie<0&&I[0]&&I[0].t=="t"&&(le=le.substr(1),I[0].v="-"+I[0].v)),Be=le.length-1;var ze=I.length;for(P=0;P<I.length;++P)if(I[P]!=null&&I[P].t!="t"&&I[P].v.indexOf(".")>-1){ze=P;break}var X=I.length;if(ze===I.length&&le.indexOf("E")===-1){for(P=I.length-1;P>=0;--P)I[P]==null||"n?".indexOf(I[P].t)===-1||(Be>=I[P].v.length-1?(Be-=I[P].v.length,I[P].v=le.substr(Be+1,I[P].v.length)):Be<0?I[P].v="":(I[P].v=le.substr(0,Be+1),Be=-1),I[P].t="t",X=P);Be>=0&&X<I.length&&(I[X].v=le.substr(0,Be+1)+I[X].v)}else if(ze!==I.length&&le.indexOf("E")===-1){for(Be=le.indexOf(".")-1,P=ze;P>=0;--P)if(!(I[P]==null||"n?".indexOf(I[P].t)===-1)){for(Z=I[P].v.indexOf(".")>-1&&P===ze?I[P].v.indexOf(".")-1:I[P].v.length-1,Se=I[P].v.substr(Z+1);Z>=0;--Z)Be>=0&&(I[P].v.charAt(Z)==="0"||I[P].v.charAt(Z)==="#")&&(Se=le.charAt(Be--)+Se);I[P].v=Se,I[P].t="t",X=P}for(Be>=0&&X<I.length&&(I[X].v=le.substr(0,Be+1)+I[X].v),Be=le.indexOf(".")+1,P=ze;P<I.length;++P)if(!(I[P]==null||"n?(".indexOf(I[P].t)===-1&&P!==ze)){for(Z=I[P].v.indexOf(".")>-1&&P===ze?I[P].v.indexOf(".")+1:0,Se=I[P].v.substr(0,Z);Z<I[P].v.length;++Z)Be<le.length&&(Se+=le.charAt(Be++));I[P].v=Se,I[P].t="t",X=P}}}for(P=0;P<I.length;++P)I[P]!=null&&"n?".indexOf(I[P].t)>-1&&(ie=Q>1&&$<0&&P>0&&I[P-1].v==="-"?-$:$,I[P].v=K(I[P].t,I[P].v,ie),I[P].t="t");var fe="";for(P=0;P!==I.length;++P)I[P]!=null&&(fe+=I[P].v);return fe}i._eval=U;var T=/\[[=<>]/,w=/\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;function k(D,$){if($==null)return!1;var j=parseFloat($[2]);switch($[1]){case"=":if(D==j)return!0;break;case">":if(D>j)return!0;break;case"<":if(D<j)return!0;break;case"<>":if(D!=j)return!0;break;case">=":if(D>=j)return!0;break;case"<=":if(D<=j)return!0;break}return!1}function z(D,$){var j=de(D),Q=j.length,I=j[Q-1].indexOf("@");if(Q<4&&I>-1&&--Q,j.length>4)throw new Error("cannot find right format for |"+j.join("|")+"|");if(typeof $!="number")return[4,j.length===4||I>-1?j[j.length-1]:"@"];switch(j.length){case 1:j=I>-1?["General","General","General",j[0]]:[j[0],j[0],j[0],"@"];break;case 2:j=I>-1?[j[0],j[0],j[0],j[1]]:[j[0],j[1],j[0],"@"];break;case 3:j=I>-1?[j[0],j[1],j[0],j[2]]:[j[0],j[1],j[2],"@"];break}var H=$>0?j[0]:$<0?j[1]:j[2];if(j[0].indexOf("[")===-1&&j[1].indexOf("[")===-1)return[Q,H];if(j[0].match(T)!=null||j[1].match(T)!=null){var P=j[0].match(w),J=j[1].match(w);return k($,P)?[Q,j[0]]:k($,J)?[Q,j[1]]:[Q,j[P!=null&&J!=null?2:1]]}return[Q,H]}function Y(D,$,j){j==null&&(j={});var Q="";switch(typeof D){case"string":D=="m/d/yy"&&j.dateNF?Q=j.dateNF:Q=D;break;case"number":D==14&&j.dateNF?Q=j.dateNF:Q=(j.table!=null?j.table:E)[D],Q==null&&(Q=j.table&&j.table[A[D]]||E[A[D]]),Q==null&&(Q=v[D]||"General");break}if(p(Q,0))return W($,j);$ instanceof Date&&($=L($,j.date1904));var I=z(Q,$);if(p(I[1]))return W($,j);if($===!0)$="TRUE";else if($===!1)$="FALSE";else if($===""||$==null)return"";return U(I[1],$,j,I[0])}function V(D,$){if(typeof $!="number"){$=+$||-1;for(var j=0;j<392;++j){if(E[j]==null){$<0&&($=j);continue}if(E[j]==D){$=j;break}}$<0&&($=391)}return E[$]=D,$}i.load=V,i._table=E,i.get_table=function(){return E},i.load_table=function($){for(var j=0;j!=392;++j)$[j]!==void 0&&V($[j],j)},i.init_table=y,i.format=Y};n(e),typeof DO_NOT_EXPORT_SSF>"u"&&(t.exports=e)})(gle);var sP=gle.exports;const mnt=new Map([[r0.Nanoseconds,1e3],[r0.Microseconds,1e3],[r0.Milliseconds,1e3],[r0.Seconds,60],[r0.Minutes,60],[r0.Hours,24],[r0.Days,Number.MAX_VALUE]]);function mle(t,e){let n=e.toString();return t===1&&(n=n.substring(0,n.length-1)),`${t} ${n}`}function yle(t,e){let n=e;const{tag:r}=t.tagParse();if(r.has("currency")){let i="$";switch(r.text("currency")){case VN.Euros:i="€";break;case VN.Pounds:i="£";break;case VN.Dollars:break}n=sP.format(`${i}#,##0.00`,e)}else if(r.has("percent"))n=sP.format("#,##0.00%",e);else if(r.has("duration")){const s=r.text("duration")??r0.Seconds;let o=e,u=0,a=[],l=!1;for(const[c,f]of mnt)if(c===s&&(l=!0),!!l&&(u=o%f,o=Math.floor(o/=f),u>0&&(a=[mle(u,c),...a]),o===0))break;a.length>0?n=a.slice(0,2).join(" "):n=mle(0,s)}else r.has("number")?n=sP.format(r.text("number"),e):n=e.toLocaleString();return n}const ynt=32,Ent=384,Ele=12,Ant=28;function Snt(t){const e={};for(const[n,r]of Object.entries(t.fields)){const i=r.field,s={metadata:r,width:i.isExplore()?0:vnt(i,t),height:null},{tag:o}=i.tagParse();H4(o,"bar","bar_chart")&&i.isExploreField()?(s.width=r.vegaChartProps.totalWidth,s.height=r.vegaChartProps.totalHeight):!i.isExplore()&&i.isAtomicField()&&(s.height=Ant),e[n]=s}return e}function vnt(t,e){const n=Ex(t),r=e.fields[n];let i=0;if(t.isAtomicField()){const s="12px Inter, sans-serif",o=ey(t.name,s);if(t.isAtomicField()&&t.isString())i=Math.max(ey(r.maxString,s),o)+Ele;else if(t.isAtomicField()&&t.isNumber()){const u=r.max===null?"∅":yle(t,r.max);i=Math.max(ey(u,s),o)+Ele}else i=130;i=lDe(ynt,Ent,i)}return i}const Ale=gP(),b3=()=>rD(Ale);var _nt=Xc("<div class=cell-wrapper><div class=cell-gutter></div><div class=cell-content></div><div class=cell-gutter>"),Cnt=Xc("<th class=column-cell>"),bnt=Xc("<td class=column-cell>"),Tnt=Xc("<div class=sticky-header><div class=sticky-header-content>"),Rnt=Xc("<div class=malloy-table><table><thead><tr></tr></thead><tbody>"),Ont=Xc("<tr>");const Sle=t=>{const e=()=>{const n=b3().layout,r=n[Ex(t.field)].width,i=n[Ex(t.field)].height;let s="";return t.isHeader||typeof r<"u"&&(s+=`width: ${r}px; min-width: ${r}px; max-width: ${r}px;`,typeof i=="number"&&(s+=`height: ${i}px;`)),s};return(()=>{var n=_nt(),r=n.firstChild,i=r.nextSibling,s=i.nextSibling;return Ba(i,()=>t.value),s0(o=>{var u=!!t.hideStartGutter,a=!!t.isHeader,l=e(),c=!!t.hideEndGutter;return u!==o.e&&r.classList.toggle("hide-gutter-border",o.e=u),a!==o.t&&i.classList.toggle("header",o.t=a),o.a=t0e(i,l,o.a),c!==o.o&&s.classList.toggle("hide-gutter-border",o.o=c),o},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()},Nnt=t=>{const e=Q4(t.field),n=Q4(t.field.parentExplore),r=!t.field.parentExplore.isExploreField(),i=e&&(n||r),s=z4(t.field),o=z4(t.field.parentExplore),u=s&&(o||r);return(()=>{var a=Cnt();return Ba(a,Pn(Sle,{get field(){return t.field},get value(){return t.field.name},hideStartGutter:i,hideEndGutter:u,isHeader:!0})),s0(()=>a.classList.toggle("numeric",!!(t.field.isAtomicField()&&t.field.isNumber()))),a})()},Dnt=t=>{const e=b3(),n=_W(t.field);let r="";if(e.pinnedHeader)r="";else if(n==="cell"){const i=t.row.cell(t.field).value;SW(t.field,i)?r=yle(t.field,i):i===null?r="∅":vW(t.field,i)&&(r=i)}else if(n==="chart"){const i=Xie();r=Pn(ple,{get field(){return t.field},get data(){return i.getData(t.row.cell(t.field))},metadata:i})}return(()=>{var i=bnt();return Ba(i,Pn(TP,{get children(){return[Pn(uD,{when:n==="table",get children(){return Pn(oP,{get data(){return t.row.cell(t.field)},get pinnedHeader(){return e.pinnedHeader},get rowLimit(){return e.pinnedHeader?1:1/0}})}}),Pn(uD,{when:!0,get children(){return Pn(Sle,{get field(){return t.field},value:r,get hideStartGutter(){return Q4(t.field)},get hideEndGutter(){return z4(t.field)}})}})]}})),s0(()=>i.classList.toggle("numeric",!!(t.field.isAtomicField()&&t.field.isNumber()))),i})()},Fnt=t=>{const e=Xle({rowLimit:1/0,pinnedHeader:!1},t),n=b3(),[r,i]=tD(!1),s=u=>{const a=u.target;i(a.scrollTop>0)},o=Qs(()=>{const u=[];let a=0;for(const l of e.data){if(a>=e.rowLimit)break;u.push(l),a++}return u});return(()=>{var u=Rnt(),a=u.firstChild,l=a.firstChild,c=l.firstChild,f=l.nextSibling;return u.addEventListener("scroll",s),Ba(u,Pn(Jle,{get when(){return n.root},get children(){var x=Tnt(),h=x.firstChild;return Ba(h,Pn(oP,{get data(){return e.data},rowLimit:1,pinnedHeader:!0})),x}}),a),Ba(c,()=>e.data.field.allFields.map(x=>Pn(Nnt,{field:x}))),Ba(f,Pn(Kle,{get each(){return o()},children:x=>(()=>{var h=Ont();return Ba(h,()=>e.data.field.allFields.map(p=>Pn(Dnt,{field:p,row:x}))),h})()})),s0(x=>{var h=!!n.root,p=!!n.pinnedHeader,m=!!r();return h!==x.e&&u.classList.toggle("root",x.e=h),p!==x.t&&u.classList.toggle("pinned-header",x.t=p),m!==x.a&&u.classList.toggle("scrolled",x.a=m),x},{e:void 0,t:void 0,a:void 0}),u})()},oP=t=>{const e=Xie(),n=!!b3(),r=Qs(()=>{if(n){const i=b3();return{root:!1,pinnedHeader:t.pinnedHeader??i.pinnedHeader,layout:i.layout}}return{root:!0,pinnedHeader:t.pinnedHeader??!1,layout:Snt(e)}});return Pn(Ale.Provider,{get value(){return r()},get children(){return Pn(Fnt,t)}})};function wnt(t,{element:e}){const n=Qs(()=>{if(t.result)return t.result;if(t.queryResult&&t.modelDef)return new OP.Result(t.queryResult,t.modelDef);throw Error("MalloyRender: Must provide either a result or a queryResult and modelDef.")}),r=Qs(()=>vWe(n())),i=()=>{const o=n().modelTag,u=n().tagParse().tag,a=o.tag("theme"),l=u.tag("theme");return{modelTag:o,resultTag:u,modelTheme:a,localTheme:l}};nD(()=>{if(e){const o=Lnt(i().modelTheme,i().localTheme);for(const[u,a]of Object.entries(o))e.style.setProperty(u,a)}});const s=()=>{const o=i().resultTag,u=n().resultExplore;return _W(u,o)};return Pn(Yie.Provider,{get value(){return r()},get children(){return Pn(TP,{get fallback(){return Pn(oP,{get data(){return n().data}})},get children(){return Pn(uD,{get when(){return s()==="chart"},get children(){return Pn(ple,{get field(){return n().resultExplore},get data(){return r().getData(n().data)},get metadata(){return r()}})}})}})}})}function bo(t,...e){let n;for(const r of e)if(n=r==null?void 0:r.text(t),typeof n<"u")break;return n??`var(--malloy-theme--${t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()})`}function Lnt(t,e){const n={},r=bo("tableRowHeight",e,t),i=bo("tableBodyColor",e,t),s=bo("tableFontSize",e,t),o=bo("tableHeaderColor",e,t),u=bo("tableHeaderWeight",e,t),a=bo("tableBodyWeight",e,t),l=bo("tableBorder",e,t),c=bo("tableBackground",e,t),f=bo("tableGutterSize",e,t),x=bo("tablePinnedBackground",e,t),h=bo("tablePinnedBorder",e,t),p=bo("fontFamily",e,t);return n["--malloy-render--table-row-height"]=r,n["--malloy-render--table-body-color"]=i,n["--malloy-render--table-font-size"]=s,n["--malloy-render--font-family"]=p,n["--malloy-render--table-header-color"]=o,n["--malloy-render--table-header-weight"]=u,n["--malloy-render--table-body-weight"]=a,n["--malloy-render--table-border"]=l,n["--malloy-render--table-background"]=c,n["--malloy-render--table-gutter-size"]=f,n["--malloy-render--table-pinned-background"]=x,n["--malloy-render--table-pinned-border"]=h,n}const Int=`:host {
|
|
1319
|
+
`)}function jre(t){return"["+t.map(Ure).join(", ")+"]"}function Ure(t){return _e(t)?"[…]":He(t)&&!vx(t)?"{…}":t}function qre(t,e){const n=this;if(e=e||{},_y.call(n),e.loader&&n.loader(e.loader),e.logger&&n.logger(e.logger),e.logLevel!=null&&n.logLevel(e.logLevel),e.locale||t.locale){const s=ft({},t.locale,e.locale);n.locale(ZV(s.number,s.time))}n._el=null,n._elBind=null,n._renderType=e.renderer||Xx.Canvas,n._scenegraph=new XJ;const r=n._scenegraph.root;n._renderer=null,n._tooltip=e.tooltip||hze,n._redraw=!0,n._handler=new WT().scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=$He(t.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const i=sze(n,t,e.expr);n._runtime=i,n._signals=i.signals,n._bind=(t.bindings||[]).map(s=>({state:null,param:ft({},s)})),i.root&&i.root.set(r),r.source=i.data.root.input,n.pulse(i.data.root.input,n.changeset().insert(r.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=Pre(n,n._width),n._viewHeight=Mre(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,uze(n),CHe(n),bHe(n),n.description(t.description),e.hover&&n.hover(),e.container&&n.initialize(e.container,e.bind)}function pO(t,e){return Je(t._signals,e)?t._signals[e]:ve("Unrecognized signal name: "+we(e))}function Hre(t,e){const n=(t._targets||[]).filter(r=>r._update&&r._update.handler===e);return n.length?n[0]:null}function zre(t,e,n,r){let i=Hre(n,r);return i||(i=Ak(t,()=>r(e,n.value)),i.handler=r,t.on(n,null,i)),t}function Qre(t,e,n){const r=Hre(e,n);return r&&e._targets.remove(r),t}Fe(qre,_y,{async evaluate(t,e,n){if(await _y.prototype.evaluate.call(this,t,e),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,NHe(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(r){this.error(r)}return n&&Hb(this,n),this},dirty(t){this._redraw=!0,this._renderer&&this._renderer.dirty(t)},description(t){if(arguments.length){const e=t!=null?t+"":null;return e!==this._desc&&bre(this._el,this._desc=e),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(t,e,n){const r=pO(this,t);return arguments.length===1?r.value:this.update(r,e,n)},width(t){return arguments.length?this.signal("width",t):this.signal("width")},height(t){return arguments.length?this.signal("height",t):this.signal("height")},padding(t){return arguments.length?this.signal("padding",Ire(t)):Ire(this.signal("padding"))},autosize(t){return arguments.length?this.signal("autosize",t):this.signal("autosize")},background(t){return arguments.length?this.signal("background",t):this.signal("background")},renderer(t){return arguments.length?(V$(t)||ve("Unrecognized renderer type: "+t),t!==this._renderType&&(this._renderType=t,this._resetRenderer()),this):this._renderType},tooltip(t){return arguments.length?(t!==this._tooltip&&(this._tooltip=t,this._resetRenderer()),this):this._tooltip},loader(t){return arguments.length?(t!==this._loader&&(_y.prototype.loader.call(this,t),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(pO(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:aze,addEventListener(t,e,n){let r=e;return n&&n.trap===!1||(r=Ak(this,e),r.raw=e),this._handler.on(t,r),this},removeEventListener(t,e){for(var n=this._handler.handlers(t),r=n.length,i,s;--r>=0;)if(s=n[r].type,i=n[r].handler,t===s&&(e===i||e===i.raw)){this._handler.off(s,i);break}return this},addResizeListener(t){const e=this._resizeListeners;return e.indexOf(t)<0&&e.push(t),this},removeResizeListener(t){var e=this._resizeListeners,n=e.indexOf(t);return n>=0&&e.splice(n,1),this},addSignalListener(t,e){return zre(this,t,pO(this,t),e)},removeSignalListener(t,e){return Qre(this,pO(this,t),e)},addDataListener(t,e){return zre(this,t,cO(this,t).values,e)},removeDataListener(t,e){return Qre(this,cO(this,t).values,e)},globalCursor(t){if(arguments.length){if(this._globalCursor!==!!t){const e=Ek(this,null);this._globalCursor=!!t,e&&Ek(this,e)}return this}else return this._globalCursor},preventDefault(t){return arguments.length?(this._preventDefault=t,this):this._preventDefault},timer:dze,events:kHe,finalize:MHe,hover:PHe,data:THe,change:fO,insert:RHe,remove:OHe,scale:oze,initialize:ZHe,toImageURL:tze,toCanvas:rze,toSVG:ize,getState:lze,setState:xze});const mze="view",gO="[",mO="]",Gre="{",Wre="}",yze=":",Vre=",",Eze="@",Aze=">",Sze=/[[\]{}]/,vze={"*":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};let Yre,Xre;function ad(t,e,n){return Yre=e||mze,Xre=n||vze,Kre(t.trim()).map(Ck)}function _ze(t){return Xre[t]}function HE(t,e,n,r,i){const s=t.length;let o=0,u;for(;e<s;++e){if(u=t[e],!o&&u===n)return e;i&&i.indexOf(u)>=0?--o:r&&r.indexOf(u)>=0&&++o}return e}function Kre(t){const e=[],n=t.length;let r=0,i=0;for(;i<n;)i=HE(t,i,Vre,gO+Gre,mO+Wre),e.push(t.substring(r,i).trim()),r=++i;if(e.length===0)throw"Empty event selector: "+t;return e}function Ck(t){return t[0]==="["?Cze(t):bze(t)}function Cze(t){const e=t.length;let n=1,r;if(n=HE(t,n,mO,gO,mO),n===e)throw"Empty between selector: "+t;if(r=Kre(t.substring(1,n)),r.length!==2)throw"Between selector must have two elements: "+t;if(t=t.slice(n+1).trim(),t[0]!==Aze)throw"Expected '>' after between selector: "+t;r=r.map(Ck);const i=Ck(t.slice(1).trim());return i.between?{between:r,stream:i}:(i.between=r,i)}function bze(t){const e={source:Yre},n=[];let r=[0,0],i=0,s=0,o=t.length,u=0,a,l;if(t[o-1]===Wre){if(u=t.lastIndexOf(Gre),u>=0){try{r=Tze(t.substring(u+1,o-1))}catch{throw"Invalid throttle specification: "+t}t=t.slice(0,u).trim(),o=t.length}else throw"Unmatched right brace: "+t;u=0}if(!o)throw t;if(t[0]===Eze&&(i=++u),a=HE(t,u,yze),a<o&&(n.push(t.substring(s,a).trim()),s=u=++a),u=HE(t,u,gO),u===o)n.push(t.substring(s,o).trim());else if(n.push(t.substring(s,u).trim()),l=[],s=++u,s===o)throw"Unmatched left bracket: "+t;for(;u<o;){if(u=HE(t,u,mO),u===o)throw"Unmatched left bracket: "+t;if(l.push(t.substring(s,u).trim()),u<o-1&&t[++u]!==gO)throw"Expected left bracket: "+t;s=++u}if(!(o=n.length)||Sze.test(n[o-1]))throw"Invalid event selector: "+t;return o>1?(e.type=n[1],i?e.markname=n[0].slice(1):_ze(n[0])?e.marktype=n[0]:e.source=n[0]):e.type=n[0],e.type.slice(-1)==="!"&&(e.consume=!0,e.type=e.type.slice(0,-1)),l!=null&&(e.filter=l),r[0]&&(e.throttle=r[0]),r[1]&&(e.debounce=r[1]),e}function Tze(t){const e=t.split(Vre);if(!t.length||e.length>2)throw t;return e.map(n=>{const r=+n;if(r!==r)throw t;return r})}function Rze(t){return He(t)?t:{type:t||"pad"}}const zE=t=>+t||0,Oze=t=>({top:t,bottom:t,left:t,right:t});function Nze(t){return He(t)?t.signal?t:{top:zE(t.top),bottom:zE(t.bottom),left:zE(t.left),right:zE(t.right)}:Oze(zE(t))}const mr=t=>He(t)&&!_e(t)?ft({},t):{value:t};function Jre(t,e,n,r){return n!=null?(He(n)&&!_e(n)||_e(n)&&n.length&&He(n[0])?t.update[e]=n:t[r||"enter"][e]={value:n},1):0}function Lr(t,e,n){for(const r in e)Jre(t,r,e[r]);for(const r in n)Jre(t,r,n[r],"update")}function o2(t,e,n){for(const r in e)n&&Je(n,r)||(t[r]=ft(t[r]||{},e[r]));return t}function u2(t,e){return e&&(e.enter&&e.enter[t]||e.update&&e.update[t])}const bk="mark",Tk="frame",Rk="scope",Dze="axis",Fze="axis-domain",wze="axis-grid",Lze="axis-label",Ize="axis-tick",$ze="axis-title",Bze="legend",kze="legend-band",Pze="legend-entry",Mze="legend-gradient",Zre="legend-label",jze="legend-symbol",Uze="legend-title",qze="title",Hze="title-text",zze="title-subtitle";function Qze(t,e,n,r,i){const s={},o={};let u,a,l,c;a="lineBreak",e==="text"&&i[a]!=null&&!u2(a,t)&&Ok(s,a,i[a]),(n=="legend"||String(n).startsWith("axis"))&&(n=null),c=n===Tk?i.group:n===bk?ft({},i.mark,i[e]):null;for(a in c)l=u2(a,t)||(a==="fill"||a==="stroke")&&(u2("fill",t)||u2("stroke",t)),l||Ok(s,a,c[a]);Pe(r).forEach(f=>{const x=i.style&&i.style[f];for(const h in x)u2(h,t)||Ok(s,h,x[h])}),t=ft({},t);for(a in s)c=s[a],c.signal?(u=u||{})[a]=c:o[a]=c;return t.enter=ft(o,t.enter),u&&(t.update=ft(u,t.update)),t}function Ok(t,e,n){t[e]=n&&n.signal?{signal:n.signal}:{value:n}}const eie=t=>je(t)?we(t):t.signal?`(${t.signal})`:tie(t);function yO(t){if(t.gradient!=null)return Wze(t);let e=t.signal?`(${t.signal})`:t.color?Gze(t.color):t.field!=null?tie(t.field):t.value!==void 0?we(t.value):void 0;return t.scale!=null&&(e=Vze(t,e)),e===void 0&&(e=null),t.exponent!=null&&(e=`pow(${e},${AO(t.exponent)})`),t.mult!=null&&(e+=`*${AO(t.mult)}`),t.offset!=null&&(e+=`+${AO(t.offset)}`),t.round&&(e=`round(${e})`),e}const EO=(t,e,n,r)=>`(${t}(${[e,n,r].map(yO).join(",")})+'')`;function Gze(t){return t.c?EO("hcl",t.h,t.c,t.l):t.h||t.s?EO("hsl",t.h,t.s,t.l):t.l||t.a?EO("lab",t.l,t.a,t.b):t.r||t.g||t.b?EO("rgb",t.r,t.g,t.b):null}function Wze(t){const e=[t.start,t.stop,t.count].map(n=>n==null?null:we(n));for(;e.length&&vt(e)==null;)e.pop();return e.unshift(eie(t.gradient)),`gradient(${e.join(",")})`}function AO(t){return He(t)?"("+yO(t)+")":t}function tie(t){return nie(He(t)?t:{datum:t})}function nie(t){let e,n,r;if(t.signal)e="datum",r=t.signal;else if(t.group||t.parent){for(n=Math.max(1,t.level||1),e="item";n-- >0;)e+=".mark.group";t.parent?(r=t.parent,e+=".datum"):r=t.group}else t.datum?(e="datum",r=t.datum):ve("Invalid field reference: "+we(t));return t.signal||(r=je(r)?hl(r).map(we).join("]["):nie(r)),e+"["+r+"]"}function Vze(t,e){const n=eie(t.scale);return t.range!=null?e=`lerp(_range(${n}), ${+t.range})`:(e!==void 0&&(e=`_scale(${n}, ${e})`),t.band&&(e=(e?e+"+":"")+`_bandwidth(${n})`+(+t.band==1?"":"*"+AO(t.band)),t.extra&&(e=`(datum.extra ? _scale(${n}, datum.extra.value) : ${e})`)),e==null&&(e="0")),e}function Yze(t){let e="";return t.forEach(n=>{const r=yO(n);e+=n.test?`(${n.test})?${r}:`:r}),vt(e)===":"&&(e+="null"),e}function rie(t,e,n,r,i,s){const o={};s=s||{},s.encoders={$encode:o},t=Qze(t,e,n,r,i.config);for(const u in t)o[u]=Xze(t[u],e,s,i);return s}function Xze(t,e,n,r){const i={},s={};for(const o in t)t[o]!=null&&(i[o]=Jze(Kze(t[o]),r,n,s));return{$expr:{marktype:e,channels:i},$fields:Object.keys(s),$output:Object.keys(t)}}function Kze(t){return _e(t)?Yze(t):yO(t)}function Jze(t,e,n,r){const i=ma(t,e);return i.$fields.forEach(s=>r[s]=1),ft(n,i.$params),i.$expr}const Zze="outer",eQe=["value","update","init","react","bind"];function iie(t,e){ve(t+' for "outer" push: '+we(e))}function sie(t,e){const n=t.name;if(t.push===Zze)e.signals[n]||iie("No prior signal definition",n),eQe.forEach(r=>{t[r]!==void 0&&iie("Invalid property ",r)});else{const r=e.addSignal(n,t.value);t.react===!1&&(r.react=!1),t.bind&&e.addBinding(n,t.bind)}}function Nk(t,e,n,r){this.id=-1,this.type=t,this.value=e,this.params=n,r&&(this.parent=r)}function SO(t,e,n,r){return new Nk(t,e,n,r)}function vO(t,e){return SO("operator",t,e)}function Ke(t){const e={$ref:t.id};return t.id<0&&(t.refs=t.refs||[]).push(e),e}function QE(t,e){return e?{$field:t,$name:e}:{$field:t}}const Dk=QE("key");function oie(t,e){return{$compare:t,$order:e}}function tQe(t,e){const n={$key:t};return e&&(n.$flat=!0),n}const nQe="ascending",rQe="descending";function iQe(t){return He(t)?(t.order===rQe?"-":"+")+_O(t.op,t.field):""}function _O(t,e){return(t&&t.signal?"$"+t.signal:t||"")+(t&&e?"_":"")+(e&&e.signal?"$"+e.signal:e||"")}const Fk="scope",wk="view";function tr(t){return t&&t.signal}function sQe(t){return t&&t.expr}function CO(t){if(tr(t))return!0;if(He(t)){for(const e in t)if(CO(t[e]))return!0}return!1}function nu(t,e){return t??e}function ld(t){return t&&t.signal||t}const uie="timer";function GE(t,e){return(t.merge?uQe:t.stream?aQe:t.type?lQe:ve("Invalid stream specification: "+we(t)))(t,e)}function oQe(t){return t===Fk?wk:t||wk}function uQe(t,e){const n=t.merge.map(i=>GE(i,e)),r=Lk({merge:n},t,e);return e.addStream(r).id}function aQe(t,e){const n=GE(t.stream,e),r=Lk({stream:n},t,e);return e.addStream(r).id}function lQe(t,e){let n;t.type===uie?(n=e.event(uie,t.throttle),t={between:t.between,filter:t.filter}):n=e.event(oQe(t.source),t.type);const r=Lk({stream:n},t,e);return Object.keys(r).length===1?n:e.addStream(r).id}function Lk(t,e,n){let r=e.between;return r&&(r.length!==2&&ve('Stream "between" parameter must have 2 entries: '+we(e)),t.between=[GE(r[0],n),GE(r[1],n)]),r=e.filter?[].concat(e.filter):[],(e.marktype||e.markname||e.markrole)&&r.push(cQe(e.marktype,e.markname,e.markrole)),e.source===Fk&&r.push("inScope(event.item)"),r.length&&(t.filter=ma("("+r.join(")&&(")+")",n).$expr),(r=e.throttle)!=null&&(t.throttle=+r),(r=e.debounce)!=null&&(t.debounce=+r),e.consume&&(t.consume=!0),t}function cQe(t,e,n){const r="event.item";return r+(t&&t!=="*"?"&&"+r+".mark.marktype==='"+t+"'":"")+(n?"&&"+r+".mark.role==='"+n+"'":"")+(e?"&&"+r+".mark.name==='"+e+"'":"")}const fQe={code:"_.$value",ast:{type:"Identifier",value:"value"}};function xQe(t,e,n){const r=t.encode,i={target:n};let s=t.events,o=t.update,u=[];s||ve("Signal update missing events specification."),je(s)&&(s=ad(s,e.isSubscope()?Fk:wk)),s=Pe(s).filter(a=>a.signal||a.scale?(u.push(a),0):1),u.length>1&&(u=[hQe(u)]),s.length&&u.push(s.length>1?{merge:s}:s[0]),r!=null&&(o&&ve("Signal encode and update are mutually exclusive."),o="encode(item(),"+we(r)+")"),i.update=je(o)?ma(o,e):o.expr!=null?ma(o.expr,e):o.value!=null?o.value:o.signal!=null?{$expr:fQe,$params:{$value:e.signalRef(o.signal)}}:ve("Invalid signal update specification."),t.force&&(i.options={force:!0}),u.forEach(a=>e.addUpdate(ft(dQe(a,e),i)))}function dQe(t,e){return{source:t.signal?e.signalRef(t.signal):t.scale?e.scaleRef(t.scale):GE(t,e)}}function hQe(t){return{signal:"["+t.map(e=>e.scale?'scale("'+e.scale+'")':e.signal)+"]"}}function pQe(t,e){const n=e.getSignal(t.name);let r=t.update;t.init&&(r?ve("Signals can not include both init and update expressions."):(r=t.init,n.initonly=!0)),r&&(r=ma(r,e),n.update=r.$expr,n.params=r.$params),t.on&&t.on.forEach(i=>xQe(i,e,n.id))}const Mt=t=>(e,n,r)=>SO(t,n,e||void 0,r),aie=Mt("aggregate"),gQe=Mt("axisticks"),lie=Mt("bound"),ru=Mt("collect"),cie=Mt("compare"),mQe=Mt("datajoin"),fie=Mt("encode"),yQe=Mt("expression"),EQe=Mt("facet"),AQe=Mt("field"),SQe=Mt("key"),vQe=Mt("legendentries"),_Qe=Mt("load"),CQe=Mt("mark"),bQe=Mt("multiextent"),TQe=Mt("multivalues"),RQe=Mt("overlap"),OQe=Mt("params"),xie=Mt("prefacet"),NQe=Mt("projection"),DQe=Mt("proxy"),FQe=Mt("relay"),die=Mt("render"),wQe=Mt("scale"),cd=Mt("sieve"),LQe=Mt("sortitems"),hie=Mt("viewlayout"),IQe=Mt("values");let $Qe=0;const pie={min:"min",max:"max",count:"sum"};function BQe(t,e){const n=t.type||"linear";XK(n)||ve("Unrecognized scale type: "+we(n)),e.addScale(t.name,{type:n,domain:void 0})}function kQe(t,e){const n=e.getScale(t.name).params;let r;n.domain=gie(t.domain,t,e),t.range!=null&&(n.range=yie(t,e,n)),t.interpolate!=null&&WQe(t.interpolate,n),t.nice!=null&&(n.nice=GQe(t.nice)),t.bins!=null&&(n.bins=QQe(t.bins,e));for(r in t)Je(n,r)||r==="name"||(n[r]=mo(t[r],e))}function mo(t,e){return He(t)?t.signal?e.signalRef(t.signal):ve("Unsupported object: "+we(t)):t}function bO(t,e){return t.signal?e.signalRef(t.signal):t.map(n=>mo(n,e))}function TO(t){ve("Can not find data set: "+we(t))}function gie(t,e,n){if(!t){(e.domainMin!=null||e.domainMax!=null)&&ve("No scale domain defined for domainMin/domainMax to override.");return}return t.signal?n.signalRef(t.signal):(_e(t)?PQe:t.fields?jQe:MQe)(t,e,n)}function PQe(t,e,n){return t.map(r=>mo(r,n))}function MQe(t,e,n){const r=n.getData(t.data);return r||TO(t.data),Pp(e.type)?r.valuesRef(n,t.field,mie(t.sort,!1)):ZK(e.type)?r.domainRef(n,t.field):r.extentRef(n,t.field)}function jQe(t,e,n){const r=t.data,i=t.fields.reduce((s,o)=>(o=je(o)?{data:r,field:o}:_e(o)||o.signal?UQe(o,n):o,s.push(o),s),[]);return(Pp(e.type)?qQe:ZK(e.type)?HQe:zQe)(t,n,i)}function UQe(t,e){const n="_:vega:_"+$Qe++,r=ru({});if(_e(t))r.value={$ingest:t};else if(t.signal){const i="setdata("+we(n)+","+t.signal+")";r.params.input=e.signalRef(i)}return e.addDataPipeline(n,[r,cd({})]),{data:n,field:"data"}}function qQe(t,e,n){const r=mie(t.sort,!0);let i,s;const o=n.map(l=>{const c=e.getData(l.data);return c||TO(l.data),c.countsRef(e,l.field,r)}),u={groupby:Dk,pulse:o};r&&(i=r.op||"count",s=r.field?_O(i,r.field):"count",u.ops=[pie[i]],u.fields=[e.fieldRef(s)],u.as=[s]),i=e.add(aie(u));const a=e.add(ru({pulse:Ke(i)}));return s=e.add(IQe({field:Dk,sort:e.sortRef(r),pulse:Ke(a)})),Ke(s)}function mie(t,e){return t&&(!t.field&&!t.op?He(t)?t.field="key":t={field:"key"}:!t.field&&t.op!=="count"?ve("No field provided for sort aggregate op: "+t.op):e&&t.field&&t.op&&!pie[t.op]&&ve("Multiple domain scales can not be sorted using "+t.op)),t}function HQe(t,e,n){const r=n.map(i=>{const s=e.getData(i.data);return s||TO(i.data),s.domainRef(e,i.field)});return Ke(e.add(TQe({values:r})))}function zQe(t,e,n){const r=n.map(i=>{const s=e.getData(i.data);return s||TO(i.data),s.extentRef(e,i.field)});return Ke(e.add(bQe({extents:r})))}function QQe(t,e){return t.signal||_e(t)?bO(t,e):e.objectProperty(t)}function GQe(t){return He(t)?{interval:mo(t.interval),step:mo(t.step)}:mo(t)}function WQe(t,e){e.interpolate=mo(t.type||t),t.gamma!=null&&(e.interpolateGamma=mo(t.gamma))}function yie(t,e,n){const r=e.config.range;let i=t.range;if(i.signal)return e.signalRef(i.signal);if(je(i)){if(r&&Je(r,i))return t=ft({},t,{range:r[i]}),yie(t,e,n);i==="width"?i=[0,{signal:"width"}]:i==="height"?i=Pp(t.type)?[0,{signal:"height"}]:[{signal:"height"},0]:ve("Unrecognized scale range value: "+we(i))}else if(i.scheme){n.scheme=_e(i.scheme)?bO(i.scheme,e):mo(i.scheme,e),i.extent&&(n.schemeExtent=bO(i.extent,e)),i.count&&(n.schemeCount=mo(i.count,e));return}else if(i.step){n.rangeStep=mo(i.step,e);return}else{if(Pp(t.type)&&!_e(i))return gie(i,t,e);_e(i)||ve("Unsupported range type: "+we(i))}return i.map(s=>(_e(s)?bO:mo)(s,e))}function VQe(t,e){const n=e.config.projection||{},r={};for(const i in t)i!=="name"&&(r[i]=Ik(t[i],i,e));for(const i in n)r[i]==null&&(r[i]=Ik(n[i],i,e));e.addProjection(t.name,r)}function Ik(t,e,n){return _e(t)?t.map(r=>Ik(r,e,n)):He(t)?t.signal?n.signalRef(t.signal):e==="fit"?t:ve("Unsupported parameter object: "+we(t)):t}const iu="top",a2="left",l2="right",Tc="bottom",Eie="center",YQe="vertical",XQe="start",KQe="middle",JQe="end",$k="index",Bk="label",ZQe="offset",c2="perc",eGe="perc2",yo="value",WE="guide-label",kk="guide-title",tGe="group-title",nGe="group-subtitle",Aie="symbol",RO="gradient",Pk="discrete",Mk="size",jk=[Mk,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],VE={name:1,style:1,interactive:1},_t={value:0},Eo={value:1},OO="group",Sie="rect",Uk="rule",rGe="symbol",fd="text";function YE(t){return t.type=OO,t.interactive=t.interactive||!1,t}function as(t,e){const n=(r,i)=>nu(t[r],nu(e[r],i));return n.isVertical=r=>YQe===nu(t.direction,e.direction||(r?e.symbolDirection:e.gradientDirection)),n.gradientLength=()=>nu(t.gradientLength,e.gradientLength||e.gradientWidth),n.gradientThickness=()=>nu(t.gradientThickness,e.gradientThickness||e.gradientHeight),n.entryColumns=()=>nu(t.columns,nu(e.columns,+n.isVertical(!0))),n}function vie(t,e){const n=e&&(e.update&&e.update[t]||e.enter&&e.enter[t]);return n&&n.signal?n:n?n.value:null}function iGe(t,e,n){const r=e.config.style[n];return r&&r[t]}function NO(t,e,n){return`item.anchor === '${XQe}' ? ${t} : item.anchor === '${JQe}' ? ${e} : ${n}`}const qk=NO(we(a2),we(l2),we(Eie));function sGe(t){const e=t("tickBand");let n=t("tickOffset"),r,i;return e?e.signal?(r={signal:`(${e.signal}) === 'extent' ? 1 : 0.5`},i={signal:`(${e.signal}) === 'extent'`},He(n)||(n={signal:`(${e.signal}) === 'extent' ? 0 : ${n}`})):e==="extent"?(r=1,i=!0,n=0):(r=.5,i=!1):(r=t("bandPosition"),i=t("tickExtra")),{extra:i,band:r,offset:n}}function _ie(t,e){return e?t?He(t)?Object.assign({},t,{offset:_ie(t.offset,e)}):{value:t,offset:e}:e:t}function Ps(t,e){return e?(t.name=e.name,t.style=e.style||t.style,t.interactive=!!e.interactive,t.encode=o2(t.encode,e,VE)):t.interactive=!1,t}function oGe(t,e,n,r){const i=as(t,n),s=i.isVertical(),o=i.gradientThickness(),u=i.gradientLength();let a,l,c,f,x;s?(l=[0,1],c=[0,0],f=o,x=u):(l=[0,0],c=[1,0],f=u,x=o);const h={enter:a={opacity:_t,x:_t,y:_t,width:mr(f),height:mr(x)},update:ft({},a,{opacity:Eo,fill:{gradient:e,start:l,stop:c}}),exit:{opacity:_t}};return Lr(h,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),Ps({type:Sie,role:Mze,encode:h},r)}function uGe(t,e,n,r,i){const s=as(t,n),o=s.isVertical(),u=s.gradientThickness(),a=s.gradientLength();let l,c,f,x,h="";o?(l="y",f="y2",c="x",x="width",h="1-"):(l="x",f="x2",c="y",x="height");const p={opacity:_t,fill:{scale:e,field:yo}};p[l]={signal:h+"datum."+c2,mult:a},p[c]=_t,p[f]={signal:h+"datum."+eGe,mult:a},p[x]=mr(u);const m={enter:p,update:ft({},p,{opacity:Eo}),exit:{opacity:_t}};return Lr(m,{stroke:s("gradientStrokeColor"),strokeWidth:s("gradientStrokeWidth")},{opacity:s("gradientOpacity")}),Ps({type:Sie,role:kze,key:yo,from:i,encode:m},r)}const aGe=`datum.${c2}<=0?"${a2}":datum.${c2}>=1?"${l2}":"${Eie}"`,lGe=`datum.${c2}<=0?"${Tc}":datum.${c2}>=1?"${iu}":"${KQe}"`;function Cie(t,e,n,r){const i=as(t,e),s=i.isVertical(),o=mr(i.gradientThickness()),u=i.gradientLength();let a=i("labelOverlap"),l,c,f,x,h="";const p={enter:l={opacity:_t},update:c={opacity:Eo,text:{field:Bk}},exit:{opacity:_t}};return Lr(p,{fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:nu(t.labelLimit,e.gradientLabelLimit)}),s?(l.align={value:"left"},l.baseline=c.baseline={signal:lGe},f="y",x="x",h="1-"):(l.align=c.align={signal:aGe},l.baseline={value:"top"},f="x",x="y"),l[f]=c[f]={signal:h+"datum."+c2,mult:u},l[x]=c[x]=o,o.offset=nu(t.labelOffset,e.gradientLabelOffset)||0,a=a?{separation:i("labelSeparation"),method:a,order:"datum."+$k}:void 0,Ps({type:fd,role:Zre,style:WE,key:yo,from:r,encode:p,overlap:a},n)}function cGe(t,e,n,r,i){const s=as(t,e),o=n.entries,u=!!(o&&o.interactive),a=o?o.name:void 0,l=s("clipHeight"),c=s("symbolOffset"),f={data:"value"},x=`(${i}) ? datum.${ZQe} : datum.${Mk}`,h=l?mr(l):{field:Mk},p=`datum.${$k}`,m=`max(1, ${i})`;let g,y,E,A,S;h.mult=.5,g={enter:y={opacity:_t,x:{signal:x,mult:.5,offset:c},y:h},update:E={opacity:Eo,x:y.x,y:y.y},exit:{opacity:_t}};let v=null,_=null;t.fill||(v=e.symbolBaseFillColor,_=e.symbolBaseStrokeColor),Lr(g,{fill:s("symbolFillColor",v),shape:s("symbolType"),size:s("symbolSize"),stroke:s("symbolStrokeColor",_),strokeDash:s("symbolDash"),strokeDashOffset:s("symbolDashOffset"),strokeWidth:s("symbolStrokeWidth")},{opacity:s("symbolOpacity")}),jk.forEach(O=>{t[O]&&(E[O]=y[O]={scale:t[O],field:yo})});const C=Ps({type:rGe,role:jze,key:yo,from:f,clip:l?!0:void 0,encode:g},n.symbols),b=mr(c);b.offset=s("labelOffset"),g={enter:y={opacity:_t,x:{signal:x,offset:b},y:h},update:E={opacity:Eo,text:{field:Bk},x:y.x,y:y.y},exit:{opacity:_t}},Lr(g,{align:s("labelAlign"),baseline:s("labelBaseline"),fill:s("labelColor"),fillOpacity:s("labelOpacity"),font:s("labelFont"),fontSize:s("labelFontSize"),fontStyle:s("labelFontStyle"),fontWeight:s("labelFontWeight"),limit:s("labelLimit")});const R=Ps({type:fd,role:Zre,style:WE,key:yo,from:f,encode:g},n.labels);return g={enter:{noBound:{value:!l},width:_t,height:l?mr(l):_t,opacity:_t},exit:{opacity:_t},update:E={opacity:Eo,row:{signal:null},column:{signal:null}}},s.isVertical(!0)?(A=`ceil(item.mark.items.length / ${m})`,E.row.signal=`${p}%${A}`,E.column.signal=`floor(${p} / ${A})`,S={field:["row",p]}):(E.row.signal=`floor(${p} / ${m})`,E.column.signal=`${p} % ${m}`,S={field:p}),E.column.signal=`(${i})?${E.column.signal}:${p}`,r={facet:{data:r,name:"value",groupby:$k}},YE({role:Rk,from:r,encode:o2(g,o,VE),marks:[C,R],name:a,interactive:u,sort:S})}function fGe(t,e){const n=as(t,e);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}const Hk='item.orient === "left"',zk='item.orient === "right"',DO=`(${Hk} || ${zk})`,xGe=`datum.vgrad && ${DO}`,dGe=NO('"top"','"bottom"','"middle"'),hGe=NO('"right"','"left"','"center"'),pGe=`datum.vgrad && ${zk} ? (${hGe}) : (${DO} && !(datum.vgrad && ${Hk})) ? "left" : ${qk}`,gGe=`item._anchor || (${DO} ? "middle" : "start")`,mGe=`${xGe} ? (${Hk} ? -90 : 90) : 0`,yGe=`${DO} ? (datum.vgrad ? (${zk} ? "bottom" : "top") : ${dGe}) : "top"`;function EGe(t,e,n,r){const i=as(t,e),s={enter:{opacity:_t},update:{opacity:Eo,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:_t}};return Lr(s,{orient:i("titleOrient"),_anchor:i("titleAnchor"),anchor:{signal:gGe},angle:{signal:mGe},align:{signal:pGe},baseline:{signal:yGe},text:t.title,fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),baseline:i("titleBaseline")}),Ps({type:fd,role:Uze,style:kk,from:r,encode:s},n)}function AGe(t,e){let n;return He(t)&&(t.signal?n=t.signal:t.path?n="pathShape("+bie(t.path)+")":t.sphere&&(n="geoShape("+bie(t.sphere)+', {type: "Sphere"})')),n?e.signalRef(n):!!t}function bie(t){return He(t)&&t.signal?t.signal:we(t)}function Tie(t){const e=t.role||"";return!e.indexOf("axis")||!e.indexOf("legend")||!e.indexOf("title")?e:t.type===OO?Rk:e||bk}function SGe(t){return{marktype:t.type,name:t.name||void 0,role:t.role||Tie(t),zindex:+t.zindex||void 0,aria:t.aria,description:t.description}}function vGe(t,e){return t&&t.signal?e.signalRef(t.signal):t!==!1}function Qk(t,e){const n=x4e(t.type);n||ve("Unrecognized transform type: "+we(t.type));const r=SO(n.type.toLowerCase(),null,Rie(n,t,e));return t.signal&&e.addSignal(t.signal,e.proxy(r)),r.metadata=n.metadata||{},r}function Rie(t,e,n){const r={},i=t.params.length;for(let s=0;s<i;++s){const o=t.params[s];r[o.name]=_Ge(o,e,n)}return r}function _Ge(t,e,n){const r=t.type,i=e[t.name];if(r==="index")return CGe(t,e,n);if(i===void 0){t.required&&ve("Missing required "+we(e.type)+" parameter: "+we(t.name));return}else{if(r==="param")return bGe(t,e,n);if(r==="projection")return n.projectionRef(e[t.name])}return t.array&&!tr(i)?i.map(s=>Oie(t,s,n)):Oie(t,i,n)}function Oie(t,e,n){const r=t.type;if(tr(e))return Die(r)?ve("Expression references can not be signals."):Gk(r)?n.fieldRef(e):Fie(r)?n.compareRef(e):n.signalRef(e.signal);{const i=t.expr||Gk(r);return i&&TGe(e)?n.exprRef(e.expr,e.as):i&&RGe(e)?QE(e.field,e.as):Die(r)?ma(e,n):OGe(r)?Ke(n.getData(e).values):Gk(r)?QE(e):Fie(r)?n.compareRef(e):e}}function CGe(t,e,n){return je(e.from)||ve('Lookup "from" parameter must be a string literal.'),n.getData(e.from).lookupRef(n,e.key)}function bGe(t,e,n){const r=e[t.name];return t.array?(_e(r)||ve("Expected an array of sub-parameters. Instead: "+we(r)),r.map(i=>Nie(t,i,n))):Nie(t,r,n)}function Nie(t,e,n){const r=t.params.length;let i;for(let o=0;o<r;++o){i=t.params[o];for(const u in i.key)if(i.key[u]!==e[u]){i=null;break}if(i)break}i||ve("Unsupported parameter: "+we(e));const s=ft(Rie(i,e,n),i.key);return Ke(n.add(OQe(s)))}const TGe=t=>t&&t.expr,RGe=t=>t&&t.field,OGe=t=>t==="data",Die=t=>t==="expr",Gk=t=>t==="field",Fie=t=>t==="compare";function NGe(t,e,n){let r,i,s,o,u;return t?(r=t.facet)&&(e||ve("Only group marks can be faceted."),r.field!=null?o=u=FO(r,n):(t.data?u=Ke(n.getData(t.data).aggregate):(s=Qk(ft({type:"aggregate",groupby:Pe(r.groupby)},r.aggregate),n),s.params.key=n.keyRef(r.groupby),s.params.pulse=FO(r,n),o=u=Ke(n.add(s))),i=n.keyRef(r.groupby,!0))):o=Ke(n.add(ru(null,[{}]))),o||(o=FO(t,n)),{key:i,pulse:o,parent:u}}function FO(t,e){return t.$ref?t:t.data&&t.data.$ref?t.data:Ke(e.getData(t.data).output)}function xd(t,e,n,r,i){this.scope=t,this.input=e,this.output=n,this.values=r,this.aggregate=i,this.index={}}xd.fromEntries=function(t,e){const n=e.length,r=e[n-1],i=e[n-2];let s=e[0],o=null,u=1;for(s&&s.type==="load"&&(s=e[1]),t.add(e[0]);u<n;++u)e[u].params.pulse=Ke(e[u-1]),t.add(e[u]),e[u].type==="aggregate"&&(o=e[u]);return new xd(t,s,i,r,o)};function wie(t){return je(t)?t:null}function Lie(t,e,n){const r=_O(n.op,n.field);let i;if(e.ops){for(let s=0,o=e.as.length;s<o;++s)if(e.as[s]===r)return}else e.ops=["count"],e.fields=[null],e.as=["count"];n.op&&(e.ops.push((i=n.op.signal)?t.signalRef(i):n.op),e.fields.push(t.fieldRef(n.field)),e.as.push(r))}function XE(t,e,n,r,i,s,o){const u=e[n]||(e[n]={}),a=iQe(s);let l=wie(i),c,f;if(l!=null&&(t=e.scope,l=l+(a?"|"+a:""),c=u[l]),!c){const x=s?{field:Dk,pulse:e.countsRef(t,i,s)}:{field:t.fieldRef(i),pulse:Ke(e.output)};a&&(x.sort=t.sortRef(s)),f=t.add(SO(r,void 0,x)),o&&(e.index[i]=f),c=Ke(f),l!=null&&(u[l]=c)}return c}xd.prototype={countsRef(t,e,n){const r=this,i=r.counts||(r.counts={}),s=wie(e);let o,u,a;return s!=null&&(t=r.scope,o=i[s]),o?n&&n.field&&Lie(t,o.agg.params,n):(a={groupby:t.fieldRef(e,"key"),pulse:Ke(r.output)},n&&n.field&&Lie(t,a,n),u=t.add(aie(a)),o=t.add(ru({pulse:Ke(u)})),o={agg:u,ref:Ke(o)},s!=null&&(i[s]=o)),o.ref},tuplesRef(){return Ke(this.values)},extentRef(t,e){return XE(t,this,"extent","extent",e,!1)},domainRef(t,e){return XE(t,this,"domain","values",e,!1)},valuesRef(t,e,n){return XE(t,this,"vals","values",e,n||!0)},lookupRef(t,e){return XE(t,this,"lookup","tupleindex",e,!1)},indataRef(t,e){return XE(t,this,"indata","tupleindex",e,!0,!0)}};function DGe(t,e,n){const r=t.from.facet,i=r.name,s=FO(r,e);let o;r.name||ve("Facet must have a name: "+we(r)),r.data||ve("Facet must reference a data set: "+we(r)),r.field?o=e.add(xie({field:e.fieldRef(r.field),pulse:s})):r.groupby?o=e.add(EQe({key:e.keyRef(r.groupby),group:Ke(e.proxy(n.parent)),pulse:s})):ve("Facet must specify groupby or field: "+we(r));const u=e.fork(),a=u.add(ru()),l=u.add(cd({pulse:Ke(a)}));u.addData(i,new xd(u,a,a,l)),u.addSignal("parent",null),o.params.subflow={$subflow:u.parse(t).toRuntime()}}function FGe(t,e,n){const r=e.add(xie({pulse:n.pulse})),i=e.fork();i.add(cd()),i.addSignal("parent",null),r.params.subflow={$subflow:i.parse(t).toRuntime()}}function Iie(t,e,n){const r=t.remove,i=t.insert,s=t.toggle,o=t.modify,u=t.values,a=e.add(vO()),l="if("+t.trigger+',modify("'+n+'",'+[i,r,s,o,u].map(f=>f??"null").join(",")+"),0)",c=ma(l,e);a.update=c.$expr,a.params=c.$params}function wO(t,e){const n=Tie(t),r=t.type===OO,i=t.from&&t.from.facet,s=t.overlap;let o=t.layout||n===Rk||n===Tk,u,a,l,c,f,x,h;const p=n===bk||o||i,m=NGe(t.from,r,e);a=e.add(mQe({key:m.key||(t.key?QE(t.key):void 0),pulse:m.pulse,clean:!r}));const g=Ke(a);a=l=e.add(ru({pulse:g})),a=e.add(CQe({markdef:SGe(t),interactive:vGe(t.interactive,e),clip:AGe(t.clip,e),context:{$context:!0},groups:e.lookup(),parent:e.signals.parent?e.signalRef("parent"):null,index:e.markpath(),pulse:Ke(a)}));const y=Ke(a);a=c=e.add(fie(rie(t.encode,t.type,n,t.style,e,{mod:!1,pulse:y}))),a.params.parent=e.encode(),t.transform&&t.transform.forEach(_=>{const C=Qk(_,e),b=C.metadata;(b.generates||b.changes)&&ve("Mark transforms should not generate new data."),b.nomod||(c.params.mod=!0),C.params.pulse=Ke(a),e.add(a=C)}),t.sort&&(a=e.add(LQe({sort:e.compareRef(t.sort),pulse:Ke(a)})));const E=Ke(a);(i||o)&&(o=e.add(hie({layout:e.objectProperty(t.layout),legends:e.legends,mark:y,pulse:E})),x=Ke(o));const A=e.add(lie({mark:y,pulse:x||E}));h=Ke(A),r&&(p&&(u=e.operators,u.pop(),o&&u.pop()),e.pushState(E,x||h,g),i?DGe(t,e,m):p?FGe(t,e,m):e.parse(t),e.popState(),p&&(o&&u.push(o),u.push(A))),s&&(h=wGe(s,h,e));const S=e.add(die({pulse:h})),v=e.add(cd({pulse:Ke(S)},void 0,e.parent()));t.name!=null&&(f=t.name,e.addData(f,new xd(e,l,S,v)),t.on&&t.on.forEach(_=>{(_.insert||_.remove||_.toggle)&&ve("Marks only support modify triggers."),Iie(_,e,f)}))}function wGe(t,e,n){const r=t.method,i=t.bound,s=t.separation,o={separation:tr(s)?n.signalRef(s.signal):s,method:tr(r)?n.signalRef(r.signal):r,pulse:e};if(t.order&&(o.sort=n.compareRef({field:t.order})),i){const u=i.tolerance;o.boundTolerance=tr(u)?n.signalRef(u.signal):+u,o.boundScale=n.scaleRef(i.scale),o.boundOrient=i.orient}return Ke(n.add(RQe(o)))}function LGe(t,e){const n=e.config.legend,r=t.encode||{},i=as(t,n),s=r.legend||{},o=s.name||void 0,u=s.interactive,a=s.style,l={};let c=0,f,x,h;jk.forEach(A=>t[A]?(l[A]=t[A],c=c||t[A]):0),c||ve("Missing valid scale for legend.");const p=IGe(t,e.scaleType(c)),m={title:t.title!=null,scales:l,type:p,vgrad:p!=="symbol"&&i.isVertical()},g=Ke(e.add(ru(null,[m]))),y={enter:{x:{value:0},y:{value:0}}},E=Ke(e.add(vQe(x={type:p,scale:e.scaleRef(c),count:e.objectProperty(i("tickCount")),limit:e.property(i("symbolLimit")),values:e.objectProperty(t.values),minstep:e.property(t.tickMinStep),formatType:e.property(t.formatType),formatSpecifier:e.property(t.format)})));return p===RO?(h=[oGe(t,c,n,r.gradient),Cie(t,n,r.labels,E)],x.count=x.count||e.signalRef(`max(2,2*floor((${ld(i.gradientLength())})/100))`)):p===Pk?h=[uGe(t,c,n,r.gradient,E),Cie(t,n,r.labels,E)]:(f=fGe(t,n),h=[cGe(t,n,r,E,ld(f.columns))],x.size=kGe(t,e,h[0].marks)),h=[YE({role:Pze,from:g,encode:y,marks:h,layout:f,interactive:u})],m.title&&h.push(EGe(t,n,r.title,g)),wO(YE({role:Bze,from:g,encode:o2(BGe(i,t,n),s,VE),marks:h,aria:i("aria"),description:i("description"),zindex:i("zindex"),name:o,interactive:u,style:a}),e)}function IGe(t,e){let n=t.type||Aie;return!t.type&&$Ge(t)===1&&(t.fill||t.stroke)&&(n=n$(e)?RO:r$(e)?Pk:Aie),n!==RO?n:r$(e)?Pk:RO}function $Ge(t){return jk.reduce((e,n)=>e+(t[n]?1:0),0)}function BGe(t,e,n){const r={enter:{},update:{}};return Lr(r,{orient:t("orient"),offset:t("offset"),padding:t("padding"),titlePadding:t("titlePadding"),cornerRadius:t("cornerRadius"),fill:t("fillColor"),stroke:t("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:t("legendX"),y:t("legendY"),format:e.format,formatType:e.formatType}),r}function kGe(t,e,n){const r=ld($ie("size",t,n)),i=ld($ie("strokeWidth",t,n)),s=ld(PGe(n[1].encode,e,WE));return ma(`max(ceil(sqrt(${r})+${i}),${s})`,e)}function $ie(t,e,n){return e[t]?`scale("${e[t]}",datum)`:vie(t,n[0].encode)}function PGe(t,e,n){return vie("fontSize",t)||iGe("fontSize",e,n)}const MGe=`item.orient==="${a2}"?-90:item.orient==="${l2}"?90:0`;function jGe(t,e){t=je(t)?{text:t}:t;const n=as(t,e.config.title),r=t.encode||{},i=r.group||{},s=i.name||void 0,o=i.interactive,u=i.style,a=[],l={},c=Ke(e.add(ru(null,[l])));return a.push(HGe(t,n,UGe(t),c)),t.subtitle&&a.push(zGe(t,n,r.subtitle,c)),wO(YE({role:qze,from:c,encode:qGe(n,i),marks:a,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:s,interactive:o,style:u}),e)}function UGe(t){const e=t.encode;return e&&e.title||ft({name:t.name,interactive:t.interactive,style:t.style},e)}function qGe(t,e){const n={enter:{},update:{}};return Lr(n,{orient:t("orient"),anchor:t("anchor"),align:{signal:qk},angle:{signal:MGe},limit:t("limit"),frame:t("frame"),offset:t("offset")||0,padding:t("subtitlePadding")}),o2(n,e,VE)}function HGe(t,e,n,r){const i={value:0},s=t.text,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Lr(o,{text:s,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:e("dx"),dy:e("dy"),fill:e("color"),font:e("font"),fontSize:e("fontSize"),fontStyle:e("fontStyle"),fontWeight:e("fontWeight"),lineHeight:e("lineHeight")},{align:e("align"),angle:e("angle"),baseline:e("baseline")}),Ps({type:fd,role:Hze,style:tGe,from:r,encode:o},n)}function zGe(t,e,n,r){const i={value:0},s=t.subtitle,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Lr(o,{text:s,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:e("dx"),dy:e("dy"),fill:e("subtitleColor"),font:e("subtitleFont"),fontSize:e("subtitleFontSize"),fontStyle:e("subtitleFontStyle"),fontWeight:e("subtitleFontWeight"),lineHeight:e("subtitleLineHeight")},{align:e("align"),angle:e("angle"),baseline:e("baseline")}),Ps({type:fd,role:zze,style:nGe,from:r,encode:o},n)}function QGe(t,e){const n=[];t.transform&&t.transform.forEach(r=>{n.push(Qk(r,e))}),t.on&&t.on.forEach(r=>{Iie(r,e,t.name)}),e.addDataPipeline(t.name,GGe(t,e,n))}function GGe(t,e,n){const r=[];let i=null,s=!1,o=!1,u,a,l,c,f;for(t.values?tr(t.values)||CO(t.format)?(r.push(Bie(e,t)),r.push(i=dd())):r.push(i=dd({$ingest:t.values,$format:t.format})):t.url?CO(t.url)||CO(t.format)?(r.push(Bie(e,t)),r.push(i=dd())):r.push(i=dd({$request:t.url,$format:t.format})):t.source&&(i=u=Pe(t.source).map(x=>Ke(e.getData(x).output)),r.push(null)),a=0,l=n.length;a<l;++a)c=n[a],f=c.metadata,!i&&!f.source&&r.push(i=dd()),r.push(c),f.generates&&(o=!0),f.modifies&&!o&&(s=!0),f.source?i=c:f.changes&&(i=null);return u&&(l=u.length-1,r[0]=FQe({derive:s,pulse:l?u:u[0]}),(s||l)&&r.splice(1,0,dd())),i||r.push(dd()),r.push(cd({})),r}function dd(t){const e=ru({},t);return e.metadata={source:!0},e}function Bie(t,e){return _Qe({url:e.url?t.property(e.url):void 0,async:e.async?t.property(e.async):void 0,values:e.values?t.property(e.values):void 0,format:t.objectProperty(e.format)})}const kie=t=>t===Tc||t===iu,LO=(t,e,n)=>tr(t)?XGe(t.signal,e,n):t===a2||t===iu?e:n,yr=(t,e,n)=>tr(t)?VGe(t.signal,e,n):kie(t)?e:n,su=(t,e,n)=>tr(t)?YGe(t.signal,e,n):kie(t)?n:e,Pie=(t,e,n)=>tr(t)?KGe(t.signal,e,n):t===iu?{value:e}:{value:n},WGe=(t,e,n)=>tr(t)?JGe(t.signal,e,n):t===l2?{value:e}:{value:n},VGe=(t,e,n)=>Mie(`${t} === '${iu}' || ${t} === '${Tc}'`,e,n),YGe=(t,e,n)=>Mie(`${t} !== '${iu}' && ${t} !== '${Tc}'`,e,n),XGe=(t,e,n)=>Wk(`${t} === '${a2}' || ${t} === '${iu}'`,e,n),KGe=(t,e,n)=>Wk(`${t} === '${iu}'`,e,n),JGe=(t,e,n)=>Wk(`${t} === '${l2}'`,e,n),Mie=(t,e,n)=>(e=e!=null?mr(e):e,n=n!=null?mr(n):n,jie(e)&&jie(n)?(e=e?e.signal||we(e.value):null,n=n?n.signal||we(n.value):null,{signal:`${t} ? (${e}) : (${n})`}):[ft({test:t},e)].concat(n||[])),jie=t=>t==null||Object.keys(t).length===1,Wk=(t,e,n)=>({signal:`${t} ? (${f2(e)}) : (${f2(n)})`}),ZGe=(t,e,n,r,i)=>({signal:(r!=null?`${t} === '${a2}' ? (${f2(r)}) : `:"")+(n!=null?`${t} === '${Tc}' ? (${f2(n)}) : `:"")+(i!=null?`${t} === '${l2}' ? (${f2(i)}) : `:"")+(e!=null?`${t} === '${iu}' ? (${f2(e)}) : `:"")+"(null)"}),f2=t=>tr(t)?t.signal:t==null?null:we(t),eWe=(t,e)=>e===0?0:tr(t)?{signal:`(${t.signal}) * ${e}`}:{value:t*e},x2=(t,e)=>{const n=t.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+e.signal}:t};function d2(t,e,n,r){let i;if(e&&Je(e,t))return e[t];if(Je(n,t))return n[t];if(t.startsWith("title")){switch(t){case"titleColor":i="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":i=t[5].toLowerCase()+t.slice(6)}return r[kk][i]}else if(t.startsWith("label")){switch(t){case"labelColor":i="fill";break;case"labelFont":case"labelFontSize":i=t[5].toLowerCase()+t.slice(6)}return r[WE][i]}return null}function Uie(t){const e={};for(const n of t)if(n)for(const r in n)e[r]=1;return Object.keys(e)}function tWe(t,e){var n=e.config,r=n.style,i=n.axis,s=e.scaleType(t.scale)==="band"&&n.axisBand,o=t.orient,u,a,l;if(tr(o)){const f=Uie([n.axisX,n.axisY]),x=Uie([n.axisTop,n.axisBottom,n.axisLeft,n.axisRight]);u={};for(l of f)u[l]=yr(o,d2(l,n.axisX,i,r),d2(l,n.axisY,i,r));a={};for(l of x)a[l]=ZGe(o.signal,d2(l,n.axisTop,i,r),d2(l,n.axisBottom,i,r),d2(l,n.axisLeft,i,r),d2(l,n.axisRight,i,r))}else u=o===iu||o===Tc?n.axisX:n.axisY,a=n["axis"+o[0].toUpperCase()+o.slice(1)];return u||a||s?ft({},i,u,a,s):i}function nWe(t,e,n,r){const i=as(t,e),s=t.orient;let o,u;const a={enter:o={opacity:_t},update:u={opacity:Eo},exit:{opacity:_t}};Lr(a,{stroke:i("domainColor"),strokeCap:i("domainCap"),strokeDash:i("domainDash"),strokeDashOffset:i("domainDashOffset"),strokeWidth:i("domainWidth"),strokeOpacity:i("domainOpacity")});const l=qie(t,0),c=qie(t,1);return o.x=u.x=yr(s,l,_t),o.x2=u.x2=yr(s,c),o.y=u.y=su(s,l,_t),o.y2=u.y2=su(s,c),Ps({type:Uk,role:Fze,from:r,encode:a},n)}function qie(t,e){return{scale:t.scale,range:e}}function rWe(t,e,n,r,i){const s=as(t,e),o=t.orient,u=t.gridScale,a=LO(o,1,-1),l=iWe(t.offset,a);let c,f,x;const h={enter:c={opacity:_t},update:x={opacity:Eo},exit:f={opacity:_t}};Lr(h,{stroke:s("gridColor"),strokeCap:s("gridCap"),strokeDash:s("gridDash"),strokeDashOffset:s("gridDashOffset"),strokeOpacity:s("gridOpacity"),strokeWidth:s("gridWidth")});const p={scale:t.scale,field:yo,band:i.band,extra:i.extra,offset:i.offset,round:s("tickRound")},m=yr(o,{signal:"height"},{signal:"width"}),g=u?{scale:u,range:0,mult:a,offset:l}:{value:0,offset:l},y=u?{scale:u,range:1,mult:a,offset:l}:ft(m,{mult:a,offset:l});return c.x=x.x=yr(o,p,g),c.y=x.y=su(o,p,g),c.x2=x.x2=su(o,y),c.y2=x.y2=yr(o,y),f.x=yr(o,p),f.y=su(o,p),Ps({type:Uk,role:wze,key:yo,from:r,encode:h},n)}function iWe(t,e){if(e!==1)if(!He(t))t=tr(e)?{signal:`(${e.signal}) * (${t||0})`}:e*(t||0);else{let n=t=ft({},t);for(;n.mult!=null;)if(He(n.mult))n=n.mult=ft({},n.mult);else return n.mult=tr(e)?{signal:`(${n.mult}) * (${e.signal})`}:n.mult*e,t;n.mult=e}return t}function sWe(t,e,n,r,i,s){const o=as(t,e),u=t.orient,a=LO(u,-1,1);let l,c,f;const x={enter:l={opacity:_t},update:f={opacity:Eo},exit:c={opacity:_t}};Lr(x,{stroke:o("tickColor"),strokeCap:o("tickCap"),strokeDash:o("tickDash"),strokeDashOffset:o("tickDashOffset"),strokeOpacity:o("tickOpacity"),strokeWidth:o("tickWidth")});const h=mr(i);h.mult=a;const p={scale:t.scale,field:yo,band:s.band,extra:s.extra,offset:s.offset,round:o("tickRound")};return f.y=l.y=yr(u,_t,p),f.y2=l.y2=yr(u,h),c.x=yr(u,p),f.x=l.x=su(u,_t,p),f.x2=l.x2=su(u,h),c.y=su(u,p),Ps({type:Uk,role:Ize,key:yo,from:r,encode:x},n)}function Vk(t,e,n,r,i){return{signal:'flush(range("'+t+'"), scale("'+t+'", datum.value), '+e+","+n+","+r+","+i+")"}}function oWe(t,e,n,r,i,s){const o=as(t,e),u=t.orient,a=t.scale,l=LO(u,-1,1),c=ld(o("labelFlush")),f=ld(o("labelFlushOffset")),x=o("labelAlign"),h=o("labelBaseline");let p=c===0||!!c,m;const g=mr(i);g.mult=l,g.offset=mr(o("labelPadding")||0),g.offset.mult=l;const y={scale:a,field:yo,band:.5,offset:_ie(s.offset,o("labelOffset"))},E=yr(u,p?Vk(a,c,'"left"','"right"','"center"'):{value:"center"},WGe(u,"left","right")),A=yr(u,Pie(u,"bottom","top"),p?Vk(a,c,'"top"','"bottom"','"middle"'):{value:"middle"}),S=Vk(a,c,`-(${f})`,f,0);p=p&&f;const v={opacity:_t,x:yr(u,y,g),y:su(u,y,g)},_={enter:v,update:m={opacity:Eo,text:{field:Bk},x:v.x,y:v.y,align:E,baseline:A},exit:{opacity:_t,x:v.x,y:v.y}};Lr(_,{dx:!x&&p?yr(u,S):null,dy:!h&&p?su(u,S):null}),Lr(_,{angle:o("labelAngle"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontWeight:o("labelFontWeight"),fontStyle:o("labelFontStyle"),limit:o("labelLimit"),lineHeight:o("labelLineHeight")},{align:x,baseline:h});const C=o("labelBound");let b=o("labelOverlap");return b=b||C?{separation:o("labelSeparation"),method:b,order:"datum.index",bound:C?{scale:a,orient:u,tolerance:C}:null}:void 0,m.align!==E&&(m.align=x2(m.align,E)),m.baseline!==A&&(m.baseline=x2(m.baseline,A)),Ps({type:fd,role:Lze,style:WE,key:yo,from:r,encode:_,overlap:b},n)}function uWe(t,e,n,r){const i=as(t,e),s=t.orient,o=LO(s,-1,1);let u,a;const l={enter:u={opacity:_t,anchor:mr(i("titleAnchor",null)),align:{signal:qk}},update:a=ft({},u,{opacity:Eo,text:mr(t.title)}),exit:{opacity:_t}},c={signal:`lerp(range("${t.scale}"), ${NO(0,1,.5)})`};return a.x=yr(s,c),a.y=su(s,c),u.angle=yr(s,_t,eWe(o,90)),u.baseline=yr(s,Pie(s,Tc,iu),{value:Tc}),a.angle=u.angle,a.baseline=u.baseline,Lr(l,{fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),angle:i("titleAngle"),baseline:i("titleBaseline")}),aWe(i,s,l,n),l.update.align=x2(l.update.align,u.align),l.update.angle=x2(l.update.angle,u.angle),l.update.baseline=x2(l.update.baseline,u.baseline),Ps({type:fd,role:$ze,style:kk,from:r,encode:l},n)}function aWe(t,e,n,r){const i=(u,a)=>u!=null?(n.update[a]=x2(mr(u),n.update[a]),!1):!u2(a,r),s=i(t("titleX"),"x"),o=i(t("titleY"),"y");n.enter.auto=o===s?mr(o):yr(e,mr(o),mr(s))}function lWe(t,e){const n=tWe(t,e),r=t.encode||{},i=r.axis||{},s=i.name||void 0,o=i.interactive,u=i.style,a=as(t,n),l=sGe(a),c={scale:t.scale,ticks:!!a("ticks"),labels:!!a("labels"),grid:!!a("grid"),domain:!!a("domain"),title:t.title!=null},f=Ke(e.add(ru({},[c]))),x=Ke(e.add(gQe({scale:e.scaleRef(t.scale),extra:e.property(l.extra),count:e.objectProperty(t.tickCount),values:e.objectProperty(t.values),minstep:e.property(t.tickMinStep),formatType:e.property(t.formatType),formatSpecifier:e.property(t.format)}))),h=[];let p;return c.grid&&h.push(rWe(t,n,r.grid,x,l)),c.ticks&&(p=a("tickSize"),h.push(sWe(t,n,r.ticks,x,p,l))),c.labels&&(p=c.ticks?p:0,h.push(oWe(t,n,r.labels,x,p,l))),c.domain&&h.push(nWe(t,n,r.domain,f)),c.title&&h.push(uWe(t,n,r.title,f)),wO(YE({role:Dze,from:f,encode:o2(cWe(a,t),i,VE),marks:h,aria:a("aria"),description:a("description"),zindex:a("zindex"),name:s,interactive:o,style:u}),e)}function cWe(t,e){const n={enter:{},update:{}};return Lr(n,{orient:t("orient"),offset:t("offset")||0,position:nu(e.position,0),titlePadding:t("titlePadding"),minExtent:t("minExtent"),maxExtent:t("maxExtent"),range:{signal:`abs(span(range("${e.scale}")))`},translate:t("translate"),format:e.format,formatType:e.formatType}),n}function Hie(t,e,n){const r=Pe(t.signals),i=Pe(t.scales);return n||r.forEach(s=>sie(s,e)),Pe(t.projections).forEach(s=>VQe(s,e)),i.forEach(s=>BQe(s,e)),Pe(t.data).forEach(s=>QGe(s,e)),i.forEach(s=>kQe(s,e)),(n||r).forEach(s=>pQe(s,e)),Pe(t.axes).forEach(s=>lWe(s,e)),Pe(t.marks).forEach(s=>wO(s,e)),Pe(t.legends).forEach(s=>LGe(s,e)),t.title&&jGe(t.title,e),e.parseLambdas(),e}const fWe=t=>o2({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},t);function xWe(t,e){const n=e.config,r=Ke(e.root=e.add(vO())),i=dWe(t,n);i.forEach(l=>sie(l,e)),e.description=t.description||n.description,e.eventConfig=n.events,e.legends=e.objectProperty(n.legend&&n.legend.layout),e.locale=n.locale;const s=e.add(ru()),o=e.add(fie(rie(fWe(t.encode),OO,Tk,t.style,e,{pulse:Ke(s)}))),u=e.add(hie({layout:e.objectProperty(t.layout),legends:e.legends,autosize:e.signalRef("autosize"),mark:r,pulse:Ke(o)}));e.operators.pop(),e.pushState(Ke(o),Ke(u),null),Hie(t,e,i),e.operators.push(u);let a=e.add(lie({mark:r,pulse:Ke(u)}));return a=e.add(die({pulse:Ke(a)})),a=e.add(cd({pulse:Ke(a)})),e.addData("root",new xd(e,s,s,a)),e}function KE(t,e){return e&&e.signal?{name:t,update:e.signal}:{name:t,value:e}}function dWe(t,e){const n=o=>nu(t[o],e[o]),r=[KE("background",n("background")),KE("autosize",Rze(n("autosize"))),KE("padding",Nze(n("padding"))),KE("width",n("width")||0),KE("height",n("height")||0)],i=r.reduce((o,u)=>(o[u.name]=u,o),{}),s={};return Pe(t.signals).forEach(o=>{Je(i,o.name)?o=ft(i[o.name],o):r.push(o),s[o.name]=o}),Pe(e.signals).forEach(o=>{!Je(s,o.name)&&!Je(i,o.name)&&r.push(o)}),r}function zie(t,e){this.config=t||{},this.options=e||{},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 Qie(t){this.config=t.config,this.options=t.options,this.legends=t.legends,this.field=Object.create(t.field),this.signals=Object.create(t.signals),this.lambdas=Object.create(t.lambdas),this.scales=Object.create(t.scales),this.events=Object.create(t.events),this.data=Object.create(t.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++t._nextsub[0],this._nextsub=t._nextsub,this._parent=t._parent.slice(),this._encode=t._encode.slice(),this._lookup=t._lookup.slice(),this._markpath=t._markpath}zie.prototype=Qie.prototype={parse(t){return Hie(t,this)},fork(){return new Qie(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(t){return this.operators.push(t),t.id=this.id(),t.refs&&(t.refs.forEach(e=>{e.$ref=t.id}),t.refs=null),t},proxy(t){const e=t instanceof Nk?Ke(t):t;return this.add(DQe({value:e}))},addStream(t){return this.streams.push(t),t.id=this.id(),t},addUpdate(t){return this.updates.push(t),t},finish(){let t,e;this.root&&(this.root.root=!0);for(t in this.signals)this.signals[t].signal=t;for(t in this.scales)this.scales[t].scale=t;function n(r,i,s){let o,u;r&&(o=r.data||(r.data={}),u=o[i]||(o[i]=[]),u.push(s))}for(t in this.data){e=this.data[t],n(e.input,t,"input"),n(e.output,t,"output"),n(e.values,t,"values");for(const r in e.index)n(e.index[r],t,"index:"+r)}return this},pushState(t,e,n){this._encode.push(Ke(this.add(cd({pulse:t})))),this._parent.push(e),this._lookup.push(n?Ke(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return vt(this._parent)},encode(){return vt(this._encode)},lookup(){return vt(this._lookup)},markpath(){const t=this._markpath;return++t[t.length-1]},fieldRef(t,e){if(je(t))return QE(t,e);t.signal||ve("Unsupported field reference: "+we(t));const n=t.signal;let r=this.field[n];if(!r){const i={name:this.signalRef(n)};e&&(i.as=e),this.field[n]=r=Ke(this.add(AQe(i)))}return r},compareRef(t){let e=!1;const n=s=>tr(s)?(e=!0,this.signalRef(s.signal)):sQe(s)?(e=!0,this.exprRef(s.expr)):s,r=Pe(t.field).map(n),i=Pe(t.order).map(n);return e?Ke(this.add(cie({fields:r,orders:i}))):oie(r,i)},keyRef(t,e){let n=!1;const r=s=>tr(s)?(n=!0,Ke(i[s.signal])):s,i=this.signals;return t=Pe(t).map(r),n?Ke(this.add(SQe({fields:t,flat:e}))):tQe(t,e)},sortRef(t){if(!t)return t;const e=_O(t.op,t.field),n=t.order||nQe;return n.signal?Ke(this.add(cie({fields:e,orders:this.signalRef(n.signal)}))):oie(e,n)},event(t,e){const n=t+":"+e;if(!this.events[n]){const r=this.id();this.streams.push({id:r,source:t,type:e}),this.events[n]=r}return this.events[n]},hasOwnSignal(t){return Je(this.signals,t)},addSignal(t,e){this.hasOwnSignal(t)&&ve("Duplicate signal name: "+we(t));const n=e instanceof Nk?e:this.add(vO(e));return this.signals[t]=n},getSignal(t){return this.signals[t]||ve("Unrecognized signal name: "+we(t)),this.signals[t]},signalRef(t){return this.signals[t]?Ke(this.signals[t]):(Je(this.lambdas,t)||(this.lambdas[t]=this.add(vO(null))),Ke(this.lambdas[t]))},parseLambdas(){const t=Object.keys(this.lambdas);for(let e=0,n=t.length;e<n;++e){const r=t[e],i=ma(r,this),s=this.lambdas[r];s.params=i.$params,s.update=i.$expr}},property(t){return t&&t.signal?this.signalRef(t.signal):t},objectProperty(t){return!t||!He(t)?t:this.signalRef(t.signal||Yk(t))},exprRef(t,e){const n={expr:ma(t,this)};return e&&(n.expr.$name=e),Ke(this.add(yQe(n)))},addBinding(t,e){this.bindings||ve("Nested signals do not support binding: "+we(t)),this.bindings.push(ft({signal:t},e))},addScaleProj(t,e){Je(this.scales,t)&&ve("Duplicate scale or projection name: "+we(t)),this.scales[t]=this.add(e)},addScale(t,e){this.addScaleProj(t,wQe(e))},addProjection(t,e){this.addScaleProj(t,NQe(e))},getScale(t){return this.scales[t]||ve("Unrecognized scale name: "+we(t)),this.scales[t]},scaleRef(t){return Ke(this.getScale(t))},scaleType(t){return this.getScale(t).params.type},projectionRef(t){return this.scaleRef(t)},projectionType(t){return this.scaleType(t)},addData(t,e){return Je(this.data,t)&&ve("Duplicate data set name: "+we(t)),this.data[t]=e},getData(t){return this.data[t]||ve("Undefined data set name: "+we(t)),this.data[t]},addDataPipeline(t,e){return Je(this.data,t)&&ve("Duplicate data set name: "+we(t)),this.addData(t,xd.fromEntries(this,e))}};function Yk(t){return(_e(t)?hWe:pWe)(t)}function hWe(t){const e=t.length;let n="[";for(let r=0;r<e;++r){const i=t[r];n+=(r>0?",":"")+(He(i)?i.signal||Yk(i):we(i))}return n+"]"}function pWe(t){let e="{",n=0,r,i;for(r in t)i=t[r],e+=(++n>1?",":"")+we(r)+":"+(He(i)?i.signal||Yk(i):we(i));return e+"}"}function gWe(){const t="sans-serif",r="#4c78a8",i="#000",s="#888",o="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:r},area:{fill:r},image:null,line:{stroke:r,strokeWidth:2},path:{stroke:r},rect:{fill:r},rule:{stroke:i},shape:{stroke:r},symbol:{fill:r,size:64},text:{fill:i,font:t,fontSize:11},trail:{fill:r,size:2},style:{"guide-label":{fill:i,font:t,fontSize:10},"guide-title":{fill:i,font:t,fontSize:11,fontWeight:"bold"},"group-title":{fill:i,font:t,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:i,font:t,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:o},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:s,grid:!1,gridWidth:1,gridColor:o,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:s,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:o,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:s,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"]}}}function mWe(t,e,n){return He(t)||ve("Input Vega specification must be an object."),e=G4(gWe(),e,t.config),xWe(t,new zie(e,n)).toRuntime()}ft(by,S5e,Jke,_8e,aPe,nMe,N9e,a9e,F9e,eje,cje,mje);const yWe={spark:[180,1],xs:[170,2],sm:[216,3],md:[256,4],lg:[472,7],xl:[508,10],"2xl":[730,14]},IO=28;function EWe(t,e){const n=t.allFields.at(0),r=t.allFields.at(1),{tag:i}=t.tagParse();let s=0,o=0;const u=i.numeric("size","width"),a=i.numeric("size","height");let l=i.text("size");u&&a?(s=u,o=a):(l=l||"md",[s,o]=yWe[l],o=o*IO);let c=0,f=0,x=-90,h="right",p="middle",m=0,g=0;const y=l!=="spark",E=l!=="spark",A=e.fields[Ex(t)];let S=l!=="spark"?IO-1:0,v;const _=Ex(r),C=e.fields[_].max,b=Ot("linear")().domain([0,C]).nice().range([o,0]),R=b.domain();if(E){const q=b.domain().at(1),B=ZV().format(",")(q);f=ey(B,"Inter, sans-serif 12px")+5+31;const K=Math.ceil(o/40),de=b.ticks(K);if(de.at(-1)<q){const be=(q-de.at(-1))/q,ee=o/(1-be);S=S-(ee-o),o=ee,v=K}}if(y){const q=Ex(n),W=e.fields[q].maxString,B=ey(W,"Inter, sans-serif 12px"),G=.3;g=22+15,c=Math.min(B,G*o),m=c;const K=(s-f)/A.maxRecordCt;K>c&&(x=0,m=K,h=void 0,p="top")}const O=o+c+g,L=Math.ceil(O/IO)*IO;g+=L-O;const M=i.text("size")==="spark";return{plotWidth:s,plotHeight:o,xAxis:{labelAngle:x,labelAlign:h,labelBaseline:p,labelSize:m,height:c,titleSize:g,hidden:M},yAxis:{width:f,tickCount:v,hidden:M},yScale:{domain:R},padding:M?{top:0,left:0,bottom:0,right:0}:{top:S+1,left:f,bottom:c+g,right:0},xField:n,yField:r,get totalWidth(){return this.plotWidth+this.padding.left+this.padding.right},get totalHeight(){return this.plotHeight+this.padding.top+this.padding.bottom}}}const $O="#727883",BO="#E5E7EB";function AWe(t,e){const n=EWe(e.field,e.metadata),r={$schema:"https://vega.github.io/schema/vega/v5.json",width:n.plotWidth,height:n.plotHeight,config:{axisY:{gridColor:BO,tickColor:BO,domain:!1,labelFont:"Inter, sans-serif",labelFontSize:10,labelFontWeight:"normal",labelColor:$O,labelPadding:5,titleColor:$O,titleFont:"Inter, sans-serif",titleFontSize:12,titleFontWeight:"bold",titlePadding:10,labelOverlap:!1},axisX:{gridColor:BO,tickColor:BO,tickSize:0,domain:!1,labelFont:"Inter, sans-serif",labelFontSize:10,labelFontWeight:"normal",labelPadding:5,labelColor:$O,titleColor:$O,titleFont:"Inter, sans-serif",titleFontSize:12,titleFontWeight:"bold",titlePadding:10},view:{strokeWidth:0}},data:[{name:"table",values:[]}],marks:[],scales:[],legends:[],axes:[],autosize:{type:"none",resize:!0,contains:"content"},padding:n.padding},i={name:"xscale",type:t.x.type==="nominal"?"band":"linear",domain:{data:"table",field:t.x.fields.at(0)},range:"width"};i.type==="band"&&(i.paddingInner=.1,i.paddingOuter=.05,i.round=!0);const s={name:"yscale",type:t.y.type==="nominal"?"band":"linear",domain:n.yScale.domain??{data:"table",fields:t.y.fields},range:"height"};s.type==="linear"&&(s.nice=!0),r.scales.push(i),r.scales.push(s);for(const o of t.marks){const u={},a={name:o.id,source:"table",transform:[]};if(r.data.push(a),o.type==="bar_y"){u.type="rect",u.from={data:o.id};const l=o.x??t.x.fields.at(0),c=o.y??t.y.fields.at(0);u.encode={enter:{x:{scale:"xscale",field:l,band:.1},width:{scale:"xscale",band:.8},y:{scale:"yscale",field:c},y2:{scale:"yscale",value:0},fill:{value:"#53B2C8"}}},r.marks.push(u)}}return n.xAxis.hidden||r.axes.push({orient:"bottom",scale:"xscale",title:t.x.fields.join(", "),labelAngle:n.xAxis.labelAngle,labelLimit:n.xAxis.labelSize,labelAlign:n.xAxis.labelAlign,labelBaseline:n.xAxis.labelBaseline,maxExtent:n.xAxis.height}),n.yAxis.hidden||r.axes.push({orient:"left",scale:"yscale",grid:!0,maxExtent:n.yAxis.width,labelLimit:n.yAxis.width+10,tickCount:n.yAxis.tickCount??{signal:"ceil(height/40)"},title:[...new Set(s.domain.fields)].filter(o=>typeof o=="string").join(", ")}),{spec:r,plotWidth:n.plotWidth,plotHeight:n.plotHeight,totalWidth:n.totalWidth,totalHeight:n.totalHeight}}function SWe(){const t=new WeakMap;return{get:e=>{if(!t.has(e)&&e.isArray()){const n=[];for(const r of e)n.push(r.toObject());t.set(e,n)}return t.get(e)}}}function vWe(t){const e=new WeakMap,n=u=>{if(e.has(u))return e.get(u);const a=Ex(u);return e.set(u,a),a},r=SWe(),i={fields:{},fieldKeyMap:e,getFieldKey:n,field:u=>i.fields[n(u)],getData:r.get},s=t.data.field,o=i.getFieldKey(s);return i.fields[o]={field:s,min:null,max:null,minString:null,maxString:null,values:new Set,maxRecordCt:null},Gie(t.data.field,i),Wie(t.data,i),Object.values(i.fields).forEach(u=>{const a=u.field;a.isExploreField()?Vie(a,a.tagParse().tag,i):a.isExplore()&&Vie(a,t.tagParse().tag,i)}),i}function Gie(t,e){for(const n of t.allFields){const r=e.getFieldKey(n);e.fields[r]={field:n,min:null,max:null,minString:null,maxString:null,values:new Set,maxRecordCt:null},n.isExploreField()&&Gie(n,e)}}const Wie=(t,e)=>{let n=0;for(const s of t){n++;for(const o of t.field.allFields){const u=o.isAtomicField()?s.cell(o).value:void 0,a=e.field(o);if(SW(o,u)){const l=u;a.min=Math.min(a.min??l,l),a.max=Math.max(a.max??l,l)}else if(vW(o,u)){const l=u;a.values.add(l),(!a.minString||a.minString.length>l.length)&&(a.minString=l),(!a.maxString||a.maxString.length<l.length)&&(a.maxString=l)}else if(o.isExploreField()){const l=s.cell(o);Wie(l,e)}}}const r=t.field,i=e.field(r);i.maxRecordCt=Math.max(i.maxRecordCt??n,n)};function Vie(t,e,n){const r=n.field(t);if(H4(e,"bar","bar_chart")){const i=fDe(t,e);r.vegaChartProps=AWe(i,{field:t,metadata:n})}}const Yie=gP(),Xie=()=>{const t=rD(Yie);if(!t)throw Error("useResultContext must be used within a ResultContext.Provider");return t};function Jnt(t){return t}function Znt(t){return t}Array.prototype.flat||Object.defineProperty(Array.prototype,"flat",{configurable:!0,value:function t(){var e=isNaN(arguments[0])?1:Number(arguments[0]);return e?Array.prototype.reduce.call(this,function(n,r){return Array.isArray(r)?n.push.apply(n,t.call(r,e-1)):n.push(r),n},[]):Array.prototype.slice.call(this)},writable:!0}),Array.prototype.flatMap||Object.defineProperty(Array.prototype,"flatMap",{configurable:!0,value:function(t){return Array.prototype.map.apply(this,arguments).flat()},writable:!0});var Kie={exports:{}};(function(t){var e=function(){function n(x,h){return h!=null&&x instanceof h}var r;try{r=Map}catch{r=function(){}}var i;try{i=Set}catch{i=function(){}}var s;try{s=Promise}catch{s=function(){}}function o(x,h,p,m,g){typeof h=="object"&&(p=h.depth,m=h.prototype,g=h.includeNonEnumerable,h=h.circular);var y=[],E=[],A=typeof Buffer<"u";typeof h>"u"&&(h=!0),typeof p>"u"&&(p=1/0);function S(v,_){if(v===null)return null;if(_===0)return v;var C,b;if(typeof v!="object")return v;if(n(v,r))C=new r;else if(n(v,i))C=new i;else if(n(v,s))C=new s(function(te,K){v.then(function(de){te(S(de,_-1))},function(de){K(S(de,_-1))})});else if(o.__isArray(v))C=[];else if(o.__isRegExp(v))C=new RegExp(v.source,f(v)),v.lastIndex&&(C.lastIndex=v.lastIndex);else if(o.__isDate(v))C=new Date(v.getTime());else{if(A&&Buffer.isBuffer(v))return Buffer.allocUnsafe?C=Buffer.allocUnsafe(v.length):C=new Buffer(v.length),v.copy(C),C;n(v,Error)?C=Object.create(v):typeof m>"u"?(b=Object.getPrototypeOf(v),C=Object.create(b)):(C=Object.create(m),b=m)}if(h){var R=y.indexOf(v);if(R!=-1)return E[R];y.push(v),E.push(C)}n(v,r)&&v.forEach(function(te,K){var de=S(K,_-1),be=S(te,_-1);C.set(de,be)}),n(v,i)&&v.forEach(function(te){var K=S(te,_-1);C.add(K)});for(var O in v){var L;b&&(L=Object.getOwnPropertyDescriptor(b,O)),!(L&&L.set==null)&&(C[O]=S(v[O],_-1))}if(Object.getOwnPropertySymbols)for(var M=Object.getOwnPropertySymbols(v),O=0;O<M.length;O++){var q=M[O],W=Object.getOwnPropertyDescriptor(v,q);W&&!W.enumerable&&!g||(C[q]=S(v[q],_-1),W.enumerable||Object.defineProperty(C,q,{enumerable:!1}))}if(g)for(var B=Object.getOwnPropertyNames(v),O=0;O<B.length;O++){var G=B[O],W=Object.getOwnPropertyDescriptor(v,G);W&&W.enumerable||(C[G]=S(v[G],_-1),Object.defineProperty(C,G,{enumerable:!1}))}return C}return S(x,p)}o.clonePrototype=function(h){if(h===null)return null;var p=function(){};return p.prototype=h,new p};function u(x){return Object.prototype.toString.call(x)}o.__objToStr=u;function a(x){return typeof x=="object"&&u(x)==="[object Date]"}o.__isDate=a;function l(x){return typeof x=="object"&&u(x)==="[object Array]"}o.__isArray=l;function c(x){return typeof x=="object"&&u(x)==="[object RegExp]"}o.__isRegExp=c;function f(x){var h="";return x.global&&(h+="g"),x.ignoreCase&&(h+="i"),x.multiline&&(h+="m"),h}return o.__getRegExpFlags=f,o}();t.exports&&(t.exports=e)})(Kie);var _We=Kie.exports;const CWe=lD(_We);var bWe=function t(e,n){if(e===n)return!0;if(e&&n&&typeof e=="object"&&typeof n=="object"){if(e.constructor!==n.constructor)return!1;var r,i,s;if(Array.isArray(e)){if(r=e.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!t(e[i],n[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===n.source&&e.flags===n.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===n.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===n.toString();if(s=Object.keys(e),r=s.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,s[i]))return!1;for(i=r;i--!==0;){var o=s[i];if(!t(e[o],n[o]))return!1}return!0}return e!==e&&n!==n};const TWe=lD(bWe);var RWe=function(t,e){e||(e={}),typeof e=="function"&&(e={cmp:e});var n=typeof e.cycles=="boolean"?e.cycles:!1,r=e.cmp&&function(s){return function(o){return function(u,a){var l={key:u,value:o[u]},c={key:a,value:o[a]};return s(l,c)}}}(e.cmp),i=[];return function s(o){if(o&&o.toJSON&&typeof o.toJSON=="function"&&(o=o.toJSON()),o!==void 0){if(typeof o=="number")return isFinite(o)?""+o:"null";if(typeof o!="object")return JSON.stringify(o);var u,a;if(Array.isArray(o)){for(a="[",u=0;u<o.length;u++)u&&(a+=","),a+=s(o[u])||"null";return a+"]"}if(o===null)return"null";if(i.indexOf(o)!==-1){if(n)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var l=i.push(o)-1,c=Object.keys(o).sort(r&&r(o));for(a="",u=0;u<c.length;u++){var f=c[u],x=s(o[f]);x&&(a&&(a+=","),a+=JSON.stringify(f)+":"+x)}return i.splice(l,1),"{"+a+"}"}}(t)};const Xk=lD(RWe);function Kk(t){return!!t.or}function Jk(t){return!!t.and}function Zk(t){return!!t.not}function kO(t,e){if(Zk(t))kO(t.not,e);else if(Jk(t))for(const n of t.and)kO(n,e);else if(Kk(t))for(const n of t.or)kO(n,e);else e(t)}function h2(t,e){return Zk(t)?{not:h2(t.not,e)}:Jk(t)?{and:t.and.map(n=>h2(n,e))}:Kk(t)?{or:t.or.map(n=>h2(n,e))}:e(t)}const Ul=TWe,ut=CWe;function OWe(t){throw new Error(t)}function JE(t,e){const n={};for(const r of e)Je(t,r)&&(n[r]=t[r]);return n}function Ao(t,e){const n=Object.assign({},t);for(const r of e)delete n[r];return n}Set.prototype.toJSON=function(){return`Set(${[...this].map(t=>Xk(t)).join(",")})`};const rn=Xk;function Ct(t){if(tn(t))return t;const e=je(t)?t:Xk(t);if(e.length<250)return e;let n=0;for(let r=0;r<e.length;r++){const i=e.charCodeAt(r);n=(n<<5)-n+i,n=n&n}return n}function Jie(t){return t===!1||t===null}function bt(t,e){return t.includes(e)}function p2(t,e){let n=0;for(const[r,i]of t.entries())if(e(i,r,n++))return!0;return!1}function Zie(t,e){let n=0;for(const[r,i]of t.entries())if(!e(i,r,n++))return!1;return!0}function NWe(t,...e){for(const n of e)DWe(t,n??{});return t}function DWe(t,e){for(const n of Te(e))Sb(t,n,e[n],!0)}function ql(t,e){const n=[],r={};let i;for(const s of t)i=e(s),!(i in r)&&(r[i]=1,n.push(s));return n}function FWe(t,e){if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0}function ese(t,e){for(const n of t)if(e.has(n))return!0;return!1}function tse(t){const e=new Set;for(const n of t){const i=hl(n).map((o,u)=>u===0?o:`[${o}]`),s=i.map((o,u)=>i.slice(0,u+1).join(""));for(const o of s)e.add(o)}return e}function nse(t,e){return t===void 0||e===void 0?!0:ese(tse(t),tse(e))}function Gt(t){return Te(t).length===0}const Te=Object.keys,$i=Object.values,hd=Object.entries;function PO(t){return t===!0||t===!1}function gn(t){const e=t.replace(/\W/g,"_");return(t.match(/^\d+/)?"_":"")+e}function MO(t,e){return Zk(t)?`!(${MO(t.not,e)})`:Jk(t)?`(${t.and.map(n=>MO(n,e)).join(") && (")})`:Kk(t)?`(${t.or.map(n=>MO(n,e)).join(") || (")})`:e(t)}function e8(t,e){if(e.length===0)return!0;const n=e.shift();return n in t&&e8(t[n],e)&&delete t[n],Gt(t)}function jO(t){return t.charAt(0).toUpperCase()+t.substr(1)}function rse(t,e="datum"){const n=hl(t),r=[];for(let i=1;i<=n.length;i++){const s=`[${n.slice(0,i).map(we).join("][")}]`;r.push(`${e}${s}`)}return r.join(" && ")}function wWe(t,e="datum"){return`${e}[${we(hl(t).join("."))}]`}function LWe(t){return t.replace(/(\[|\]|\.|'|")/g,"\\$1")}function ou(t){return`${hl(t).map(LWe).join("\\.")}`}function g2(t,e,n){return t.replace(new RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function ise(t){return`${hl(t).join(".")}`}function ZE(t){return t?hl(t).length:0}function nr(...t){for(const e of t)if(e!==void 0)return e}let IWe=42;function $We(t){const e=++IWe;return t?String(t)+e:e}function BWe(t){return kWe(t)?t:`__${t}`}function kWe(t){return t.startsWith("__")}function UO(t){if(t!==void 0)return(t%360+360)%360}function t8(t){return tn(t)?!0:!isNaN(t)&&!isNaN(parseFloat(t))}var e3=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const Hl="row",zl="column",qO="facet",mn="x",Er="y",uu="x2",ya="y2",Rc="xOffset",m2="yOffset",Ea="radius",Ql="radius2",au="theta",Gl="theta2",Aa="latitude",Sa="longitude",lu="latitude2",So="longitude2",ls="color",va="fill",_a="stroke",cs="shape",Wl="size",pd="angle",Vl="opacity",Oc="fillOpacity",Nc="strokeOpacity",Dc="strokeWidth",Fc="strokeDash",t3="text",n3="order",r3="detail",HO="key",gd="tooltip",zO="href",QO="url",GO="description",PWe={x:1,y:1,x2:1,y2:1},sse={theta:1,theta2:1,radius:1,radius2:1};function ose(t){return t in sse}const n8={longitude:1,longitude2:1,latitude:1,latitude2:1};function MWe(t){switch(t){case Aa:return"y";case lu:return"y2";case Sa:return"x";case So:return"x2"}}function jWe(t){return t in n8}const UWe=Te(n8),r8=Object.assign(Object.assign(Object.assign(Object.assign({},PWe),sse),n8),{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 y2(t){return t===ls||t===va||t===_a}const use={row:1,column:1,facet:1},vo=Te(use),i8=Object.assign(Object.assign({},r8),use),qWe=Te(i8),HWe=e3(i8,["order","detail","tooltip"]),zWe=e3(HWe,["row","column","facet"]);function QWe(t){return!!zWe[t]}function ase(t){return!!i8[t]}const GWe=[uu,ya,lu,So,Gl,Ql];function lse(t){return md(t)!==t}function md(t){switch(t){case uu:return mn;case ya:return Er;case lu:return Aa;case So:return Sa;case Gl:return au;case Ql:return Ea}return t}function wc(t){if(ose(t))switch(t){case au:return"startAngle";case Gl:return"endAngle";case Ea:return"outerRadius";case Ql:return"innerRadius"}return t}function Yl(t){switch(t){case mn:return uu;case Er:return ya;case Aa:return lu;case Sa:return So;case au:return Gl;case Ea:return Ql}}function fs(t){switch(t){case mn:case uu:return"width";case Er:case ya:return"height"}}function WWe(t){switch(t){case mn:return"xOffset";case Er:return"yOffset";case uu:return"x2Offset";case ya:return"y2Offset";case au:return"thetaOffset";case Ea:return"radiusOffset";case Gl:return"theta2Offset";case Ql:return"radius2Offset"}}function cse(t){switch(t){case mn:return"xOffset";case Er:return"yOffset"}}function fse(t){switch(t){case"xOffset":return"x";case"yOffset":return"y"}}const VWe=Te(r8),s8=e3(r8,["x","y","x2","y2","xOffset","yOffset","latitude","longitude","latitude2","longitude2","theta","theta2","radius","radius2"]),YWe=Te(s8),o8={x:1,y:1},Ca=Te(o8);function Ir(t){return t in o8}const u8={theta:1,radius:1},XWe=Te(u8);function WO(t){return t==="width"?mn:Er}const xse={xOffset:1,yOffset:1};function E2(t){return t in xse}const dse=e3(s8,["text","tooltip","href","url","description","detail","key","order"]),KWe=Te(dse);function JWe(t){return!!s8[t]}function ZWe(t){switch(t){case ls:case va:case _a:case Wl:case cs:case Vl:case Dc:case Fc:return!0;case Oc:case Nc:case pd:return!1}}const hse=Object.assign(Object.assign(Object.assign(Object.assign({},o8),u8),xse),dse),VO=Te(hse);function Lc(t){return!!hse[t]}function eVe(t,e){return nVe(t)[e]}const pse={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"},tVe=e3(pse,["geoshape"]);function nVe(t){switch(t){case ls:case va:case _a:case GO:case r3:case HO:case gd:case zO:case n3:case Vl:case Oc:case Nc:case Dc:case qO:case Hl:case zl:return pse;case mn:case Er:case Rc:case m2:case Aa:case Sa:return tVe;case uu:case ya:case lu:case So:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case Wl:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case Fc:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case cs:return{point:"always",geoshape:"always"};case t3:return{text:"always"};case pd:return{point:"always",square:"always",text:"always"};case QO:return{image:"always"};case au:return{text:"always",arc:"always"};case Ea:return{text:"always",arc:"always"};case Gl:case Ql:return{arc:"always"}}}function a8(t){switch(t){case mn:case Er:case au:case Ea:case Rc:case m2:case Wl:case pd:case Dc:case Vl:case Oc:case Nc:case uu:case ya:case Gl:case Ql:return;case qO:case Hl:case zl:case cs:case Fc:case t3:case gd:case zO:case QO:case GO:return"discrete";case ls:case va:case _a:return"flexible";case Aa:case Sa:case lu:case So:case r3:case HO:case n3:return}}const rVe={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},iVe={count:1,min:1,max:1};function Xl(t){return!!t&&!!t.argmin}function Ic(t){return!!t&&!!t.argmax}function l8(t){return je(t)&&!!rVe[t]}const sVe=new Set(["count","valid","missing","distinct"]);function gse(t){return je(t)&&sVe.has(t)}function oVe(t){return je(t)&&bt(["min","max"],t)}const uVe=new Set(["count","sum","distinct","valid","missing"]),aVe=new Set(["mean","average","median","q1","q3","min","max"]);function mse(t){return yp(t)&&(t=dN(t,void 0)),"bin"+Te(t).map(e=>YO(t[e])?gn(`_${e}_${hd(t[e])}`):gn(`_${e}_${t[e]}`)).join("")}function Xt(t){return t===!0||yd(t)&&!t.binned}function Bi(t){return t==="binned"||yd(t)&&t.binned===!0}function yd(t){return He(t)}function YO(t){return t==null?void 0:t.param}function yse(t){switch(t){case Hl:case zl:case Wl:case ls:case va:case _a:case Dc:case Vl:case Oc:case Nc:case cs:return 6;case Fc:return 4;default:return 10}}function i3(t){return t&&!!t.expr}function xs(t){const e=Te(t||{}),n={};for(const r of e)n[r]=Ms(t[r]);return n}var lVe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Ese(t){const{anchor:e,frame:n,offset:r,orient:i,angle:s,limit:o,color:u,subtitleColor:a,subtitleFont:l,subtitleFontSize:c,subtitleFontStyle:f,subtitleFontWeight:x,subtitleLineHeight:h,subtitlePadding:p}=t,m=lVe(t,["anchor","frame","offset","orient","angle","limit","color","subtitleColor","subtitleFont","subtitleFontSize","subtitleFontStyle","subtitleFontWeight","subtitleLineHeight","subtitlePadding"]),g=Object.assign(Object.assign({},m),u?{fill:u}:{}),y=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},e?{anchor:e}:{}),n?{frame:n}:{}),r?{offset:r}:{}),i?{orient:i}:{}),s!==void 0?{angle:s}:{}),o!==void 0?{limit:o}:{}),E=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},a?{subtitleColor:a}:{}),l?{subtitleFont:l}:{}),c?{subtitleFontSize:c}:{}),f?{subtitleFontStyle:f}:{}),x?{subtitleFontWeight:x}:{}),h?{subtitleLineHeight:h}:{}),p?{subtitlePadding:p}:{}),A=JE(t,["align","baseline","dx","dy","limit"]);return{titleMarkConfig:g,subtitleMarkConfig:A,nonMarkTitleProperties:y,subtitle:E}}function $c(t){return je(t)||_e(t)&&je(t[0])}function Ye(t){return t&&!!t.signal}function Bc(t){return!!t.step}function cVe(t){return _e(t)?!1:"fields"in t&&!("data"in t)}function fVe(t){return _e(t)?!1:"fields"in t&&"data"in t}function Kl(t){return _e(t)?!1:"field"in t&&"data"in t}const xVe=Te({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}),dVe={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},c8=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];var f8=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Ase(t){const e=_e(t.condition)?t.condition.map(Sse):Sse(t.condition);return Object.assign(Object.assign({},Ms(t)),{condition:e})}function Ms(t){if(i3(t)){const{expr:e}=t,n=f8(t,["expr"]);return Object.assign({signal:e},n)}return t}function Sse(t){if(i3(t)){const{expr:e}=t,n=f8(t,["expr"]);return Object.assign({signal:e},n)}return t}function sn(t){if(i3(t)){const{expr:e}=t,n=f8(t,["expr"]);return Object.assign({signal:e},n)}return Ye(t)?t:t!==void 0?{value:t}:void 0}function hVe(t){return Ye(t)?t.signal:we(t)}function vse(t){return Ye(t)?t.signal:we(t.value)}function Jl(t){return Ye(t)?t.signal:t==null?null:we(t)}function pVe(t,e,n){for(const r of n){const i=Ed(r,e.markDef,e.config);i!==void 0&&(t[r]=sn(i))}return t}function _se(t){var e;return[].concat(t.type,(e=t.style)!==null&&e!==void 0?e:[])}function $t(t,e,n,r={}){const{vgChannel:i,ignoreVgConfig:s}=r;return i&&e[i]!==void 0?e[i]:e[t]!==void 0?e[t]:s&&(!i||i===t)?void 0:Ed(t,e,n,r)}function Ed(t,e,n,{vgChannel:r}={}){return nr(r?XO(t,e,n.style):void 0,XO(t,e,n.style),r?n[e.type][r]:void 0,n[e.type][t],r?n.mark[r]:n.mark[t])}function XO(t,e,n){return Cse(t,_se(e),n)}function Cse(t,e,n){e=Pe(e);let r;for(const i of e){const s=n[i];s&&s[t]!==void 0&&(r=s[t])}return r}function bse(t,e){return Pe(t).reduce((n,r)=>{var i;return n.field.push($e(r,e)),n.order.push((i=r.sort)!==null&&i!==void 0?i:"ascending"),n},{field:[],order:[]})}function Tse(t,e){const n=[...t];return e.forEach(r=>{for(const i of n)if(Ul(i,r))return;n.push(r)}),n}function Rse(t,e){return Ul(t,e)||!e?t:t?[...Pe(t),...Pe(e)].join(", "):e}function Ose(t,e){const n=t.value,r=e.value;if(n==null||r===null)return{explicit:t.explicit,value:null};if(($c(n)||Ye(n))&&($c(r)||Ye(r)))return{explicit:t.explicit,value:Rse(n,r)};if($c(n)||Ye(n))return{explicit:t.explicit,value:n};if($c(r)||Ye(r))return{explicit:t.explicit,value:r};if(!$c(n)&&!Ye(n)&&!$c(r)&&!Ye(r))return{explicit:t.explicit,value:Tse(n,r)};throw new Error("It should never reach here")}function x8(t){return`Invalid specification ${rn(t)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const gVe='Autosize "fit" only works for single views and layered views.';function Nse(t){return`${t=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function Dse(t){const e=t=="width"?"Width":"Height",n=t=="width"?"x":"y";return`${e} "container" only works well with autosize "fit" or "fit-${n}".`}function Fse(t){return t?`Dropping "fit-${t}" because spec has discrete ${fs(t)}.`:'Dropping "fit" because spec has discrete size.'}function d8(t){return`Unknown field for ${t}. Cannot calculate view size.`}function wse(t){return`Cannot project a selection on encoding channel "${t}", which has no field.`}function mVe(t,e){return`Cannot project a selection on encoding channel "${t}" as it uses an aggregate function ("${e}").`}function yVe(t){return`The "nearest" transform is not supported for ${t} marks.`}function Lse(t){return`Selection not supported for ${t} yet.`}function EVe(t){return`Cannot find a selection named "${t}".`}const AVe="Scale bindings are currently only supported for scales with unbinned, continuous domains.",SVe="Legend bindings are only supported for selections over an individual field or encoding channel.";function vVe(t){return`Lookups can only be performed on selection parameters. "${t}" is a variable parameter.`}function _Ve(t){return`Cannot define and lookup the "${t}" selection in the same view. Try moving the lookup into a second, layered view?`}const CVe="The same selection must be used to override scale domains in a layered view.",bVe='Interval selections should be initialized using "x" and/or "y" keys.';function TVe(t){return`Unknown repeated value "${t}".`}function Ise(t){return`The "columns" property cannot be used when "${t}" has nested row/column.`}const RVe="Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415).";function OVe(t){return`Unrecognized parse "${t}".`}function $se(t,e,n){return`An ancestor parsed field "${t}" as ${n} but a child wants to parse the field as ${e}.`}const NVe="Attempt to add the same child twice.";function DVe(t){return`Ignoring an invalid transform: ${rn(t)}.`}const FVe='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.';function Bse(t){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${t} are dropped.`}function wVe(t){const{parentProjection:e,projection:n}=t;return`Layer's shared projection ${rn(e)} is overridden by a child projection ${rn(n)}.`}const LVe="Arc marks uses theta channel rather than angle, replacing angle with theta.";function IVe(t){return`${t}Offset dropped because ${t} is continuous`}function $Ve(t){return`There is no ${t} encoding. Replacing ${t}Offset encoding as ${t}.`}function BVe(t,e,n){return`Channel ${t} is a ${e}. Converted to {value: ${rn(n)}}.`}function kse(t){return`Invalid field type "${t}".`}function kVe(t,e){return`Invalid field type "${t}" for aggregate: "${e}", using "quantitative" instead.`}function PVe(t){return`Invalid aggregation operator "${t}".`}function Pse(t,e){const{fill:n,stroke:r}=e;return`Dropping color ${t} as the plot also has ${n&&r?"fill and stroke":n?"fill":"stroke"}.`}function MVe(t){return`Position range does not support relative band size for ${t}.`}function h8(t,e){return`Dropping ${rn(t)} from channel "${e}" since it does not contain any data field, datum, value, or signal.`}const jVe="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function KO(t,e,n){return`${t} dropped as it is incompatible with "${e}"${n?` when ${n}`:""}.`}function UVe(t){return`${t} encoding has no scale, so specified scale is ignored.`}function qVe(t){return`${t}-encoding is dropped as ${t} is not a valid encoding channel.`}function HVe(t){return`${t} encoding should be discrete (ordinal / nominal / binned).`}function zVe(t){return`${t} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function QVe(t){return`Facet encoding dropped as ${t.join(" and ")} ${t.length>1?"are":"is"} also specified.`}function p8(t,e){return`Using discrete channel "${t}" to encode "${e}" field can be misleading as it does not encode ${e==="ordinal"?"order":"magnitude"}.`}function GVe(t){return`The ${t} for range marks cannot be an expression`}function WVe(t,e){return`Line mark is for continuous lines and thus cannot be used with ${t&&e?"x2 and y2":t?"x2":"y2"}. We will use the rule mark (line segments) instead.`}function VVe(t,e){return`Specified orient "${t}" overridden with "${e}".`}function YVe(t){return`Cannot use the scale property "${t}" with non-color channel.`}function XVe(t){return`Cannot use the relative band size with ${t} scale.`}function KVe(t){return`Using unaggregated domain with raw field has no effect (${rn(t)}).`}function JVe(t){return`Unaggregated domain not applicable for "${t}" since it produces values outside the origin domain of the source data.`}function ZVe(t){return`Unaggregated domain is currently unsupported for log scale (${rn(t)}).`}function eYe(t){return`Cannot apply size to non-oriented mark "${t}".`}function tYe(t,e,n){return`Channel "${t}" does not work with "${e}" scale. We are using "${n}" scale instead.`}function nYe(t,e){return`FieldDef does not work with "${t}" scale. We are using "${e}" scale instead.`}function Mse(t,e,n){return`${n}-scale's "${e}" is dropped as it does not work with ${t} scale.`}function jse(t){return`The step for "${t}" is dropped because the ${t==="width"?"x":"y"} is continuous.`}function rYe(t,e,n,r){return`Conflicting ${e.toString()} property "${t.toString()}" (${rn(n)} and ${rn(r)}). Using ${rn(n)}.`}function iYe(t,e,n,r){return`Conflicting ${e.toString()} property "${t.toString()}" (${rn(n)} and ${rn(r)}). Using the union of the two domains.`}function sYe(t){return`Setting the scale to be independent for "${t}" means we also have to set the guide (axis or legend) to be independent.`}function oYe(t){return`Dropping sort property ${rn(t)} as unioned domains only support boolean or op "count", "min", and "max".`}const Use="Domains that should be unioned has conflicting sort properties. Sort will be set to true.",uYe="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.",aYe="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.",lYe="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.";function cYe(t){return`Cannot stack "${t}" if there is already "${t}2".`}function fYe(t){return`Cannot stack non-linear scale (${t}).`}function xYe(t){return`Stacking is applied even though the aggregate function is non-summative ("${t}").`}function JO(t,e){return`Invalid ${t}: ${rn(e)}.`}function dYe(t){return`Dropping day from datetime ${rn(t)} as day cannot be combined with other units.`}function hYe(t,e){return`${e?"extent ":""}${e&&t?"and ":""}${t?"center ":""}${e&&t?"are ":"is "}not needed when data are aggregated.`}function pYe(t,e,n){return`${t} is not usually used with ${e} for ${n}.`}function gYe(t,e){return`Continuous axis should not have customized aggregation function ${t}; ${e} already agregates the axis.`}function qse(t){return`1D error band does not support ${t}.`}function Hse(t){return`Channel ${t} is required for "binned" bin.`}function mYe(t){return`Channel ${t} should not be used with "binned" bin.`}function yYe(t){return`Domain for ${t} is required for threshold scale.`}const zse=NW(OW);let A2=zse;function EYe(t){return A2=t,A2}function AYe(){return A2=zse,A2}function Re(...t){A2.warn(...t)}function SYe(...t){A2.debug(...t)}function Ad(t){if(t&&He(t)){for(const e of m8)if(e in t)return!0}return!1}const Qse=["january","february","march","april","may","june","july","august","september","october","november","december"],vYe=Qse.map(t=>t.substr(0,3)),Gse=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],_Ye=Gse.map(t=>t.substr(0,3));function CYe(t){if(t8(t)&&(t=+t),tn(t))return t>4&&Re(JO("quarter",t)),t-1;throw new Error(JO("quarter",t))}function bYe(t){if(t8(t)&&(t=+t),tn(t))return t-1;{const e=t.toLowerCase(),n=Qse.indexOf(e);if(n!==-1)return n;const r=e.substr(0,3),i=vYe.indexOf(r);if(i!==-1)return i;throw new Error(JO("month",t))}}function TYe(t){if(t8(t)&&(t=+t),tn(t))return t%7;{const e=t.toLowerCase(),n=Gse.indexOf(e);if(n!==-1)return n;const r=e.substr(0,3),i=_Ye.indexOf(r);if(i!==-1)return i;throw new Error(JO("day",t))}}function g8(t,e){const n=[];if(e&&t.day!==void 0&&Te(t).length>1&&(Re(dYe(t)),t=ut(t),delete t.day),t.year!==void 0?n.push(t.year):n.push(2012),t.month!==void 0){const r=e?bYe(t.month):t.month;n.push(r)}else if(t.quarter!==void 0){const r=e?CYe(t.quarter):t.quarter;n.push(tn(r)?r*3:`${r}*3`)}else n.push(0);if(t.date!==void 0)n.push(t.date);else if(t.day!==void 0){const r=e?TYe(t.day):t.day;n.push(tn(r)?r+1:`${r}+1`)}else n.push(1);for(const r of["hours","minutes","seconds","milliseconds"]){const i=t[r];n.push(typeof i>"u"?0:i)}return n}function s3(t){const n=g8(t,!0).join(", ");return t.utc?`utc(${n})`:`datetime(${n})`}function RYe(t){const n=g8(t,!1).join(", ");return t.utc?`utc(${n})`:`datetime(${n})`}function OYe(t){const e=g8(t,!0);return t.utc?+new Date(Date.UTC(...e)):+new Date(...e)}var NYe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const Wse={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},m8=Te(Wse);function DYe(t){return!!Wse[t]}function y8(t){return t.startsWith("utc")}function FYe(t){return t.substr(3)}const wYe={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function E8(t){return m8.filter(e=>Vse(t,e))}function Vse(t,e){const n=t.indexOf(e);return!(n<0||n>0&&e==="seconds"&&t.charAt(n-1)==="i"||t.length>n+3&&e==="day"&&t.charAt(n+3)==="o"||n>0&&e==="year"&&t.charAt(n-1)==="f")}function LYe(t,e,{end:n}={end:!1}){const r=rse(e),i=y8(t)?"utc":"";function s(a){return a==="quarter"?`(${i}quarter(${r})-1)`:`${i}${a}(${r})`}let o;const u={};for(const a of m8)Vse(t,a)&&(u[a]=s(a),o=a);return n&&(u[o]+="+1"),RYe(u)}function Yse(t){if(!t)return;const e=E8(t);return`timeUnitSpecifier(${rn(e)}, ${rn(wYe)})`}function IYe(t,e,n){if(!t)return;const r=Yse(t);return`${n||y8(t)?"utc":"time"}Format(${e}, ${r})`}function ki(t){if(!t)return;let e;return je(t)?e={unit:t}:He(t)&&(e=Object.assign(Object.assign({},t),t.unit?{unit:t.unit}:{})),y8(e.unit)&&(e.utc=!0,e.unit=FYe(e.unit)),e}function $Ye(t){const e=ki(t),{utc:n}=e,r=NYe(e,["utc"]);return r.unit?(n?"utc":"")+Te(r).map(i=>gn(`${i==="unit"?"":`_${i}_`}${r[i]}`)).join(""):(n?"utc":"")+"timeunit"+Te(r).map(i=>gn(`_${i}_${r[i]}`)).join("")}function BYe(t){return t==null?void 0:t.param}function A8(t){return t&&!!t.field&&t.equal!==void 0}function S8(t){return t&&!!t.field&&t.lt!==void 0}function v8(t){return t&&!!t.field&&t.lte!==void 0}function _8(t){return t&&!!t.field&&t.gt!==void 0}function C8(t){return t&&!!t.field&&t.gte!==void 0}function b8(t){if(t!=null&&t.field){if(_e(t.range)&&t.range.length===2)return!0;if(Ye(t.range))return!0}return!1}function T8(t){return t&&!!t.field&&(_e(t.oneOf)||_e(t.in))}function kYe(t){return t&&!!t.field&&t.valid!==void 0}function Xse(t){return T8(t)||A8(t)||b8(t)||S8(t)||_8(t)||v8(t)||C8(t)}function ba(t,e){return hN(t,{timeUnit:e,wrapTime:!0})}function PYe(t,e){return t.map(n=>ba(n,e))}function Kse(t,e=!0){var n;const{field:r}=t,i=(n=ki(t.timeUnit))===null||n===void 0?void 0:n.unit,s=i?`time(${LYe(i,r)})`:$e(t,{expr:"datum"});if(A8(t))return`${s}===${ba(t.equal,i)}`;if(S8(t)){const o=t.lt;return`${s}<${ba(o,i)}`}else if(_8(t)){const o=t.gt;return`${s}>${ba(o,i)}`}else if(v8(t)){const o=t.lte;return`${s}<=${ba(o,i)}`}else if(C8(t)){const o=t.gte;return`${s}>=${ba(o,i)}`}else{if(T8(t))return`indexof([${PYe(t.oneOf,i).join(",")}], ${s}) !== -1`;if(kYe(t))return R8(s,t.valid);if(b8(t)){const{range:o}=t,u=Ye(o)?{signal:`${o.signal}[0]`}:o[0],a=Ye(o)?{signal:`${o.signal}[1]`}:o[1];if(u!==null&&a!==null&&e)return"inrange("+s+", ["+ba(u,i)+", "+ba(a,i)+"])";const l=[];return u!==null&&l.push(`${s} >= ${ba(u,i)}`),a!==null&&l.push(`${s} <= ${ba(a,i)}`),l.length>0?l.join(" && "):"true"}}throw new Error(`Invalid field predicate: ${rn(t)}`)}function R8(t,e=!0){return e?`isValid(${t}) && isFinite(+${t})`:`!isValid(${t}) || !isFinite(+${t})`}function MYe(t){var e;return Xse(t)&&t.timeUnit?Object.assign(Object.assign({},t),{timeUnit:(e=ki(t.timeUnit))===null||e===void 0?void 0:e.unit}):t}const o3={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function jYe(t){return t==="quantitative"||t==="temporal"}function Jse(t){return t==="ordinal"||t==="nominal"}const Sd=o3.quantitative,O8=o3.ordinal,S2=o3.temporal,N8=o3.nominal,v2=o3.geojson;function UYe(t){if(t)switch(t=t.toLowerCase(),t){case"q":case Sd:return"quantitative";case"t":case S2:return"temporal";case"o":case O8:return"ordinal";case"n":case N8:return"nominal";case v2:return"geojson"}}var qYe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const ds={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"},D8={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 HYe(t,e){const n=D8[t],r=D8[e];return n===r||n==="ordinal-position"&&r==="time"||r==="ordinal-position"&&n==="time"}const zYe={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 Zse(t){return zYe[t]}const eoe=new Set(["linear","log","pow","sqrt","symlog"]),toe=new Set([...eoe,"time","utc"]);function noe(t){return eoe.has(t)}const roe=new Set(["quantile","quantize","threshold"]),QYe=new Set([...toe,...roe,"sequential","identity"]),GYe=new Set(["ordinal","bin-ordinal","point","band"]);function Ar(t){return GYe.has(t)}function js(t){return QYe.has(t)}function cu(t){return toe.has(t)}function _2(t){return roe.has(t)}const WYe={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};function VYe(t){return!je(t)&&!!t.name}function ioe(t){return t==null?void 0:t.param}function YYe(t){return t&&t.unionWith}function XYe(t){return He(t)&&"field"in t}const KYe=qYe({type:1,domain:1,domainMax:1,domainMin:1,domainMid: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},["type","domain","range","rangeMax","rangeMin","scheme"]),JYe=Te(KYe);function F8(t,e){switch(e){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(t);case"bins":return!["point","band","identity","ordinal"].includes(t);case"round":return cu(t)||t==="band"||t==="point";case"padding":case"rangeMin":case"rangeMax":return cu(t)||["point","band"].includes(t);case"paddingOuter":case"align":return["point","band"].includes(t);case"paddingInner":return t==="band";case"domainMax":case"domainMid":case"domainMin":case"clamp":return cu(t);case"nice":return cu(t)||t==="quantize"||t==="threshold";case"exponent":return t==="pow";case"base":return t==="log";case"constant":return t==="symlog";case"zero":return js(t)&&!bt(["log","time","utc","threshold","quantile"],t)}}function soe(t,e){switch(e){case"interpolate":case"scheme":case"domainMid":return y2(t)?void 0:YVe(t);case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":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}}function ZYe(t,e){return bt([O8,N8],e)?t===void 0||Ar(t):e===S2?bt([ds.TIME,ds.UTC,void 0],t):e===Sd?noe(t)||_2(t)||t===void 0:!0}function eXe(t,e,n=!1){if(!Lc(t))return!1;switch(t){case mn:case Er:case Rc:case m2:case au:case Ea:return cu(e)||e==="band"?!0:e==="point"?!n:!1;case Wl:case Dc:case Vl:case Oc:case Nc:case pd:return cu(e)||_2(e)||bt(["band","point","ordinal"],e);case ls:case va:case _a:return e!=="band";case Fc:case cs:return e==="ordinal"||_2(e)}}const Pi={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"},ooe=Pi.arc,ZO=Pi.area,eN=Pi.bar,tXe=Pi.image,tN=Pi.line,nN=Pi.point,nXe=Pi.rect,rN=Pi.rule,uoe=Pi.text,w8=Pi.tick,rXe=Pi.trail,L8=Pi.circle,I8=Pi.square,aoe=Pi.geoshape;function kc(t){return["line","area","trail"].includes(t)}function loe(t){return["rect","bar","image","arc"].includes(t)}const iXe=new Set(Te(Pi));function Ta(t){return t.type}const sXe=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit"],oXe=["fill","fillOpacity"],uXe=[...sXe,...oXe],coe=Te({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),aXe={area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize"],line:["point"],tick:["bandSize","thickness"]},lXe={color:"#4c78a8",invalid:"filter",timeUnitBandSize:1},foe=Te({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 C2(t){return t&&t.band!=null}const cXe={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},xoe=5,fXe={binSpacing:1,continuousBandSize:xoe,timeUnitBandPosition:.5},xXe={binSpacing:0,continuousBandSize:xoe,timeUnitBandPosition:.5},dXe={thickness:1};function hXe(t){return Ta(t)?t.type:t}function $8(t){const{channel:e,channelDef:n,markDef:r,scale:i,config:s}=t,o=k8(t);return Ie(n)&&!gse(n.aggregate)&&i&&cu(i.get("type"))?pXe({fieldDef:n,channel:e,markDef:r,ref:o,config:s}):o}function pXe({fieldDef:t,channel:e,markDef:n,ref:r,config:i}){return kc(n.type)?r:$t("invalid",n,i)===null?[gXe(t,e),r]:r}function gXe(t,e){const n=B8(t,!0),i=md(e)==="y"?{field:{group:"height"}}:{value:0};return Object.assign({test:n},i)}function B8(t,e=!0){return R8(je(t)?t:$e(t,{expr:"datum"}),!e)}function mXe(t){const{datum:e}=t;return Ad(e)?s3(e):`${rn(e)}`}function vd(t,e,n,r){const i={};if(e&&(i.scale=e),Oa(t)){const{datum:s}=t;Ad(s)?i.signal=s3(s):Ye(s)?i.signal=s.signal:i3(s)?i.signal=s.expr:i.value=s}else i.field=$e(t,n);if(r){const{offset:s,band:o}=r;s&&(i.offset=s),o&&(i.band=o)}return i}function iN({scaleName:t,fieldOrDatumDef:e,fieldOrDatumDef2:n,offset:r,startSuffix:i,bandPosition:s=.5}){const o=0<s&&s<1?"datum":void 0,u=$e(e,{expr:o,suffix:i}),a=n!==void 0?$e(n,{expr:o}):$e(e,{suffix:"end",expr:o}),l={};if(s===0||s===1){l.scale=t;const c=s===0?u:a;l.field=c}else{const c=Ye(s)?`${s.signal} * ${u} + (1-${s.signal}) * ${a}`:`${s} * ${u} + ${1-s} * ${a}`;l.signal=`scale("${t}", ${c})`}return r&&(l.offset=r),l}function k8({channel:t,channelDef:e,channel2Def:n,markDef:r,config:i,scaleName:s,scale:o,stack:u,offset:a,defaultRef:l,bandPosition:c}){var f;if(e){if(st(e)){const x=o==null?void 0:o.get("type");if(_o(e)){c??(c=Coe({fieldDef:e,fieldDef2:n,markDef:r,config:i}));const{bin:h,timeUnit:p,type:m}=e;if(Xt(h)||c&&p&&m===S2)return u!=null&&u.impute?vd(e,s,{binSuffix:"mid"},{offset:a}):c&&!Ar(x)?iN({scaleName:s,fieldOrDatumDef:e,bandPosition:c,offset:a}):vd(e,s,c3(e,t)?{binSuffix:"range"}:{},{offset:a});if(Bi(h)){if(Ie(n))return iN({scaleName:s,fieldOrDatumDef:e,fieldOrDatumDef2:n,bandPosition:c,offset:a});Re(Hse(t===mn?uu:ya))}}return vd(e,s,Ar(x)?{binSuffix:"range"}:{},{offset:a,band:x==="band"?(f=c??e.bandPosition)!==null&&f!==void 0?f:.5:void 0})}else if(fu(e)){const x=e.value,h=a?{offset:a}:{};return Object.assign(Object.assign({},u3(t,x)),h)}}return ct(l)&&(l=l()),l&&Object.assign(Object.assign({},l),a?{offset:a}:{})}function u3(t,e){return bt(["x","x2"],t)&&e==="width"?{field:{group:"width"}}:bt(["y","y2"],t)&&e==="height"?{field:{group:"height"}}:sn(e)}function _d(t){return t&&t!=="number"&&t!=="time"}function doe(t,e,n){return`${t}(${e}${n?`, ${rn(n)}`:""})`}const yXe=" – ";function P8({fieldOrDatumDef:t,format:e,formatType:n,expr:r,normalizeStack:i,config:s}){var o,u;if(_d(n))return M8({fieldOrDatumDef:t,format:e,formatType:n,expr:r,config:s});const a=hoe(t,r,i);if(R2(t)){const l=AXe(a,Ie(t)?(o=ki(t.timeUnit))===null||o===void 0?void 0:o.unit:void 0,e,s.timeFormat,Cd(t)&&((u=t.scale)===null||u===void 0?void 0:u.type)===ds.UTC);return l?{signal:l}:void 0}if(e=moe(H8(t),e,s),Ie(t)&&Xt(t.bin)){const l=$e(t,{expr:r,binSuffix:"end"});return{signal:sN(a,l,e,n,s)}}else return e||H8(t)==="quantitative"?{signal:`${yoe(a,e)}`}:{signal:`isValid(${a}) ? ${a} : ""+${a}`}}function hoe(t,e,n){return Ie(t)?n?`${$e(t,{expr:e,suffix:"end"})}-${$e(t,{expr:e,suffix:"start"})}`:$e(t,{expr:e}):mXe(t)}function M8({fieldOrDatumDef:t,format:e,formatType:n,expr:r,normalizeStack:i,config:s,field:o}){if(o??(o=hoe(t,r,i)),Ie(t)&&Xt(t.bin)){const u=$e(t,{expr:r,binSuffix:"end"});return{signal:sN(o,u,e,n,s)}}return{signal:doe(n,o,e)}}function poe(t,e,n,r,i,s){var o;if(!_d(r)){if(R2(t)){const u=Ie(t)?(o=ki(t.timeUnit))===null||o===void 0?void 0:o.unit:void 0;return EXe(n,u,i,s)}return moe(e,n,i)}}function goe(t,e,n){if(t&&(Ye(t)||t==="number"||t==="time"))return t;if(R2(e)&&n!=="time"&&n!=="utc")return"time"}function moe(t,e,n){if(je(e))return e;if(t===Sd)return n.numberFormat}function EXe(t,e,n,r){return t||(e?{signal:Yse(e)}:r?void 0:n.timeFormat)}function yoe(t,e){return`format(${t}, "${e||""}")`}function Eoe(t,e,n,r){var i;return _d(n)?doe(n,t,e):yoe(t,(i=je(e)?e:void 0)!==null&&i!==void 0?i:r.numberFormat)}function sN(t,e,n,r,i){const s=Eoe(t,n,r,i),o=Eoe(e,n,r,i);return`${R8(t,!1)} ? "null" : ${s} + "${yXe}" + ${o}`}function AXe(t,e,n,r,i){return!e||n?(n=je(n)?n:r,`${i?"utc":"time"}Format(${t}, '${n}')`):IYe(e,t,i)}const oN="min",SXe={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 Aoe(t){return t in SXe}function Soe(t){return!!t&&!!t.encoding}function Ra(t){return!!t&&(t.op==="count"||!!t.field)}function voe(t){return!!t&&_e(t)}function a3(t){return"row"in t||"column"in t}function j8(t){return!!t&&"header"in t}function uN(t){return"facet"in t}var U8=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function vXe(t){return t.param}function _Xe(t){return t&&!je(t)&&"repeat"in t}function _oe(t){const{field:e,timeUnit:n,bin:r,aggregate:i}=t;return Object.assign(Object.assign(Object.assign(Object.assign({},n?{timeUnit:n}:{}),r?{bin:r}:{}),i?{aggregate:i}:{}),{field:e})}function q8(t){return"sort"in t}function Coe({fieldDef:t,fieldDef2:e,markDef:n,config:r}){if(st(t)&&t.bandPosition!==void 0)return t.bandPosition;if(Ie(t)){const{timeUnit:i,bin:s}=t;if(i&&!e)return loe(n.type)?0:Ed("timeUnitBandPosition",n,r);if(Xt(s))return .5}}function boe({channel:t,fieldDef:e,fieldDef2:n,markDef:r,config:i,scaleType:s,useVlSizeChannel:o}){var u,a,l;const c=fs(t),f=$t(o?"size":c,r,i,{vgChannel:c});if(f!==void 0)return f;if(Ie(e)){const{timeUnit:x,bin:h}=e;if(x&&!n)return{band:Ed("timeUnitBandSize",r,i)};if(Xt(h)&&!Ar(s))return{band:1}}if(loe(r.type))return s?Ar(s)?((u=i[r.type])===null||u===void 0?void 0:u.discreteBandSize)||{band:1}:(a=i[r.type])===null||a===void 0?void 0:a.continuousBandSize:(l=i[r.type])===null||l===void 0?void 0:l.discreteBandSize}function Toe(t,e,n,r){return Xt(t.bin)||t.timeUnit&&_o(t)&&t.type==="temporal"?Coe({fieldDef:t,fieldDef2:e,markDef:n,config:r})!==void 0:!1}function aN(t){return t&&"condition"in t}function lN(t){const e=t&&t.condition;return!!e&&!_e(e)&&Ie(e)}function l3(t){const e=t&&t.condition;return!!e&&!_e(e)&&st(e)}function CXe(t){const e=t&&t.condition;return!!e&&(_e(e)||fu(e))}function Ie(t){return t&&(!!t.field||t.aggregate==="count")}function H8(t){return t&&t.type}function Oa(t){return t&&"datum"in t}function Na(t){return _o(t)&&!cN(t)||z8(t)}function z8(t){return Oa(t)&&tn(t.datum)}function st(t){return Ie(t)||Oa(t)}function _o(t){return t&&("field"in t||t.aggregate==="count")&&"type"in t}function fu(t){return t&&"value"in t&&"value"in t}function Cd(t){return t&&("scale"in t||"sort"in t)}function Q8(t){return t&&("axis"in t||"stack"in t||"impute"in t)}function Roe(t){return t&&"legend"in t}function Ooe(t){return t&&("format"in t||"formatType"in t)}function bXe(t){return Ao(t,["legend","axis","header","scale"])}function TXe(t){return"op"in t}function $e(t,e={}){var n,r,i;let s=t.field;const o=e.prefix;let u=e.suffix,a="";if(OXe(t))s=BWe("count");else{let l;if(!e.nofn)if(TXe(t))l=t.op;else{const{bin:c,aggregate:f,timeUnit:x}=t;Xt(c)?(l=mse(c),u=((n=e.binSuffix)!==null&&n!==void 0?n:"")+((r=e.suffix)!==null&&r!==void 0?r:"")):f?Ic(f)?(a=`["${s}"]`,s=`argmax_${f.argmax}`):Xl(f)?(a=`["${s}"]`,s=`argmin_${f.argmin}`):l=String(f):x&&(l=$Ye(x),u=(!["range","mid"].includes(e.binSuffix)&&e.binSuffix||"")+((i=e.suffix)!==null&&i!==void 0?i:""))}l&&(s=s?`${l}_${s}`:l)}return u&&(s=`${s}_${u}`),o&&(s=`${o}_${s}`),e.forAs?ise(s):e.expr?wWe(s,e.expr)+a:ou(s)+a}function cN(t){switch(t.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return Ie(t)&&!!t.bin;case"temporal":return!1}throw new Error(kse(t.type))}function RXe(t){var e;return Cd(t)&&_2((e=t.scale)===null||e===void 0?void 0:e.type)}function OXe(t){return t.aggregate==="count"}function NXe(t,e){var n;const{field:r,bin:i,timeUnit:s,aggregate:o}=t;if(o==="count")return e.countTitle;if(Xt(i))return`${r} (binned)`;if(s){const u=(n=ki(s))===null||n===void 0?void 0:n.unit;if(u)return`${r} (${E8(u).join("-")})`}else if(o)return Ic(o)?`${r} for max ${o.argmax}`:Xl(o)?`${r} for min ${o.argmin}`:`${jO(o)} of ${r}`;return r}function DXe(t){const{aggregate:e,bin:n,timeUnit:r,field:i}=t;if(Ic(e))return`${i} for argmax(${e.argmax})`;if(Xl(e))return`${i} for argmin(${e.argmin})`;const s=ki(r),o=e||(s==null?void 0:s.unit)||(s==null?void 0:s.maxbins)&&"timeunit"||Xt(n)&&"bin";return o?`${o.toUpperCase()}(${i})`:i}const Noe=(t,e)=>{switch(e.fieldTitle){case"plain":return t.field;case"functional":return DXe(t);default:return NXe(t,e)}};let Doe=Noe;function Foe(t){Doe=t}function FXe(){Foe(Noe)}function b2(t,e,{allowDisabling:n,includeDefault:r=!0}){var i,s;const o=(i=G8(t))===null||i===void 0?void 0:i.title;if(!Ie(t))return o??t.title;const u=t,a=r?W8(u,e):void 0;return n?nr(o,u.title,a):(s=o??u.title)!==null&&s!==void 0?s:a}function G8(t){if(Q8(t)&&t.axis)return t.axis;if(Roe(t)&&t.legend)return t.legend;if(j8(t)&&t.header)return t.header}function W8(t,e){return Doe(t,e)}function fN(t){var e;if(Ooe(t)){const{format:n,formatType:r}=t;return{format:n,formatType:r}}else{const n=(e=G8(t))!==null&&e!==void 0?e:{},{format:r,formatType:i}=n;return{format:r,formatType:i}}}function wXe(t,e){var n;switch(e){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(q8(t)&&_e(t.sort))return"ordinal";const{aggregate:r,bin:i,timeUnit:s}=t;if(s)return"temporal";if(i||r&&!Ic(r)&&!Xl(r))return"quantitative";if(Cd(t)&&(!((n=t.scale)===null||n===void 0)&&n.type))switch(D8[t.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}function Da(t){if(Ie(t))return t;if(lN(t))return t.condition}function rr(t){if(st(t))return t;if(l3(t))return t.condition}function woe(t,e,n,r={}){if(je(t)||tn(t)||yp(t)){const i=je(t)?"string":tn(t)?"number":"boolean";return Re(BVe(e,i,t)),{value:t}}return st(t)?xN(t,e,n,r):l3(t)?Object.assign(Object.assign({},t),{condition:xN(t.condition,e,n,r)}):t}function xN(t,e,n,r){if(Ooe(t)){const{format:i,formatType:s}=t,o=U8(t,["format","formatType"]);if(_d(s)&&!n.customFormatTypes)return Re(Bse(e)),xN(o,e,n,r)}else{const i=Q8(t)?"axis":Roe(t)?"legend":j8(t)?"header":null;if(i&&t[i]){const s=t[i],{format:o,formatType:u}=s,a=U8(s,["format","formatType"]);if(_d(u)&&!n.customFormatTypes)return Re(Bse(e)),xN(Object.assign(Object.assign({},t),{[i]:a}),e,n,r)}}return Ie(t)?V8(t,e,r):LXe(t)}function LXe(t){let e=t.type;if(e)return t;const{datum:n}=t;return e=tn(n)?"quantitative":je(n)?"nominal":Ad(n)?"temporal":void 0,Object.assign(Object.assign({},t),{type:e})}function V8(t,e,{compositeMark:n=!1}={}){const{aggregate:r,timeUnit:i,bin:s,field:o}=t,u=Object.assign({},t);if(!n&&r&&!l8(r)&&!Ic(r)&&!Xl(r)&&(Re(PVe(r)),delete u.aggregate),i&&(u.timeUnit=ki(i)),o&&(u.field=`${o}`),Xt(s)&&(u.bin=dN(s,e)),Bi(s)&&!Ir(e)&&Re(mYe(e)),_o(u)){const{type:a}=u,l=UYe(a);a!==l&&(u.type=l),a!=="quantitative"&&gse(r)&&(Re(kVe(a,r)),u.type="quantitative")}else if(!lse(e)){const a=wXe(u,e);u.type=a}if(_o(u)){const{compatible:a,warning:l}=IXe(u,e)||{};a===!1&&Re(l)}if(q8(u)&&je(u.sort)){const{sort:a}=u;if(Aoe(a))return Object.assign(Object.assign({},u),{sort:{encoding:a}});const l=a.substr(1);if(a.charAt(0)==="-"&&Aoe(l))return Object.assign(Object.assign({},u),{sort:{encoding:l,order:"descending"}})}if(j8(u)){const{header:a}=u;if(a){const{orient:l}=a,c=U8(a,["orient"]);if(l)return Object.assign(Object.assign({},u),{header:Object.assign(Object.assign({},c),{labelOrient:a.labelOrient||l,titleOrient:a.titleOrient||l})})}}return u}function dN(t,e){return yp(t)?{maxbins:yse(e)}:t==="binned"?{binned:!0}:!t.maxbins&&!t.step?Object.assign(Object.assign({},t),{maxbins:yse(e)}):t}const T2={compatible:!0};function IXe(t,e){const n=t.type;if(n==="geojson"&&e!=="shape")return{compatible:!1,warning:`Channel ${e} should not be used with a geojson data.`};switch(e){case Hl:case zl:case qO:return cN(t)?T2:{compatible:!1,warning:HVe(e)};case mn:case Er:case Rc:case m2:case ls:case va:case _a:case t3:case r3:case HO:case gd:case zO:case QO:case pd:case au:case Ea:case GO:return T2;case Sa:case So:case Aa:case lu:return n!==Sd?{compatible:!1,warning:`Channel ${e} should be used with a quantitative field only, not ${t.type} field.`}:T2;case Vl:case Oc:case Nc:case Dc:case Wl:case Gl:case Ql:case uu:case ya:return n==="nominal"&&!t.sort?{compatible:!1,warning:`Channel ${e} should not be used with an unsorted discrete field.`}:T2;case cs:case Fc:return!cN(t)&&!RXe(t)?{compatible:!1,warning:zVe(e)}:T2;case n3:return t.type==="nominal"&&!("sort"in t)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:T2}}function R2(t){const{formatType:e}=fN(t);return e==="time"||!e&&$Xe(t)}function $Xe(t){return t&&(t.type==="temporal"||Ie(t)&&!!t.timeUnit)}function hN(t,{timeUnit:e,type:n,wrapTime:r,undefinedIfExprNotRequired:i}){var s;const o=e&&((s=ki(e))===null||s===void 0?void 0:s.unit);let u=o||n==="temporal",a;return i3(t)?a=t.expr:Ye(t)?a=t.signal:Ad(t)?(u=!0,a=s3(t)):(je(t)||tn(t))&&u&&(a=`datetime(${rn(t)})`,DYe(o)&&(tn(t)&&t<1e4||je(t)&&isNaN(Date.parse(t)))&&(a=s3({[o]:t}))),a?r&&u?`time(${a})`:a:i?void 0:rn(t)}function Loe(t,e){const{type:n}=t;return e.map(r=>{const i=hN(r,{timeUnit:Ie(t)?t.timeUnit:void 0,type:n,undefinedIfExprNotRequired:!0});return i!==void 0?{signal:i}:r})}function c3(t,e){return Xt(t.bin)?Lc(e)&&["ordinal","nominal"].includes(t.type):(console.warn("Only call this method for binned field defs."),!1)}const Ioe={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 f3(t){return t&&t.condition}const $oe=["domain","grid","labels","ticks","title"],BXe={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"},Boe={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},kXe=Object.assign(Object.assign({},Boe),{style:1,labelExpr:1,encoding:1});function koe(t){return!!kXe[t]}const Poe=Te({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 Zl(t){return"mark"in t}class pN{constructor(e,n){this.name=e,this.run=n}hasMatchingType(e){return Zl(e)?hXe(e.mark)===this.name:!1}}var PXe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function bd(t,e){const n=t&&t[e];return n?_e(n)?p2(n,r=>!!r.field):Ie(n)||lN(n):!1}function Moe(t,e){const n=t&&t[e];return n?_e(n)?p2(n,r=>!!r.field):Ie(n)||Oa(n)||l3(n):!1}function Y8(t,e){if(Ir(e)){const n=t[e];if((Ie(n)||Oa(n))&&Jse(n.type)){const r=cse(e);return Moe(t,r)}}return!1}function X8(t){return p2(qWe,e=>{if(bd(t,e)){const n=t[e];if(_e(n))return p2(n,r=>!!r.aggregate);{const r=Da(n);return r&&!!r.aggregate}}return!1})}function joe(t,e){const n=[],r=[],i=[],s=[],o={};return K8(t,(u,a)=>{if(Ie(u)){const{field:l,aggregate:c,bin:f,timeUnit:x}=u,h=PXe(u,["field","aggregate","bin","timeUnit"]);if(c||x||f){const p=G8(u),m=p==null?void 0:p.title;let g=$e(u,{forAs:!0});const y=Object.assign(Object.assign(Object.assign({},m?[]:{title:b2(u,e,{allowDisabling:!0})}),h),{field:g});if(c){let E;if(Ic(c)?(E="argmax",g=$e({op:"argmax",field:c.argmax},{forAs:!0}),y.field=`${g}.${l}`):Xl(c)?(E="argmin",g=$e({op:"argmin",field:c.argmin},{forAs:!0}),y.field=`${g}.${l}`):c!=="boxplot"&&c!=="errorbar"&&c!=="errorband"&&(E=c),E){const A={op:E,as:g};l&&(A.field=l),s.push(A)}}else if(n.push(g),_o(u)&&Xt(f)){if(r.push({bin:f,field:l,as:g}),n.push($e(u,{binSuffix:"end"})),c3(u,a)&&n.push($e(u,{binSuffix:"range"})),Ir(a)){const E={field:`${g}_end`};o[`${a}2`]=E}y.bin="binned",lse(a)||(y.type=Sd)}else if(x){i.push({timeUnit:x,field:l,as:g});const E=_o(u)&&u.type!==S2&&"time";E&&(a===t3||a===gd?y.formatType=E:JWe(a)?y.legend=Object.assign({formatType:E},y.legend):Ir(a)&&(y.axis=Object.assign({formatType:E},y.axis)))}o[a]=y}else n.push(l),o[a]=t[a]}else o[a]=t[a]}),{bins:r,timeUnits:i,aggregate:s,groupby:n,encoding:o}}function MXe(t,e,n){const r=eVe(e,n);if(r){if(r==="binned"){const i=t[e===uu?mn:Er];return!!(Ie(i)&&Ie(t[e])&&Bi(i.bin))}}else return!1;return!0}function jXe(t,e,n,r){const i={};for(const s of Te(t))ase(s)||Re(qVe(s));for(let s of VWe){if(!t[s])continue;const o=t[s];if(E2(s)){const u=fse(s),a=i[u];if(Ie(a)){if(jYe(a.type)&&Ie(o)){Re(IVe(u));continue}}else s=u,Re($Ve(u))}if(s==="angle"&&e==="arc"&&!t.theta&&(Re(LVe),s=au),!MXe(t,s,e)){Re(KO(s,e));continue}if(s===Wl&&e==="line"){const u=Da(t[s]);if(u!=null&&u.aggregate){Re(jVe);continue}}if(s===ls&&(n?"fill"in t:"stroke"in t)){Re(Pse("encoding",{fill:"fill"in t,stroke:"stroke"in t}));continue}if(s===r3||s===n3&&!_e(o)&&!fu(o)||s===gd&&_e(o))o&&(i[s]=Pe(o).reduce((u,a)=>(Ie(a)?u.push(V8(a,s)):Re(h8(a,s)),u),[]));else{if(s===gd&&o===null)i[s]=null;else if(!Ie(o)&&!Oa(o)&&!fu(o)&&!aN(o)&&!Ye(o)){Re(h8(o,s));continue}i[s]=woe(o,s,r)}}return i}function gN(t,e){const n={};for(const r of Te(t)){const i=woe(t[r],r,e,{compositeMark:!0});n[r]=i}return n}function UXe(t){const e=[];for(const n of Te(t))if(bd(t,n)){const r=t[n],i=Pe(r);for(const s of i)Ie(s)?e.push(s):lN(s)&&e.push(s.condition)}return e}function K8(t,e,n){if(t)for(const r of Te(t)){const i=t[r];if(_e(i))for(const s of i)e.call(n,s,r);else e.call(n,i,r)}}function qXe(t,e,n,r){return t?Te(t).reduce((i,s)=>{const o=t[s];return _e(o)?o.reduce((u,a)=>e.call(r,u,a,s),i):e.call(r,i,o,s)},n):n}function Uoe(t,e){return Te(e).reduce((n,r)=>{switch(r){case mn:case Er:case zO:case GO:case QO:case uu:case ya:case Rc:case m2:case au:case Gl:case Ea:case Ql:case Aa:case Sa:case lu:case So:case t3:case cs:case pd:case gd:return n;case n3:if(t==="line"||t==="trail")return n;case r3:case HO:{const i=e[r];if(_e(i)||Ie(i))for(const s of Pe(i))s.aggregate||n.push($e(s,{}));return n}case Wl:if(t==="trail")return n;case ls:case va:case _a:case Vl:case Oc:case Nc:case Fc:case Dc:{const i=Da(e[r]);return i&&!i.aggregate&&n.push($e(i,{})),n}}},[])}var qoe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function HXe(t){const{tooltip:e}=t,n=qoe(t,["tooltip"]);if(!e)return{filteredEncoding:n};let r,i;if(_e(e)){for(const s of e)s.aggregate?(r||(r=[]),r.push(s)):(i||(i=[]),i.push(s));r&&(n.tooltip=r)}else e.aggregate?n.tooltip=e:i=e;return _e(i)&&i.length===1&&(i=i[0]),{customTooltipWithoutAggregatedField:i,filteredEncoding:n}}function J8(t,e,n,r=!0){if("tooltip"in n)return{tooltip:n.tooltip};const i=t.map(({fieldPrefix:o,titlePrefix:u})=>{const a=r?` of ${Z8(e)}`:"";return{field:o+e.field,type:e.type,title:Ye(u)?{signal:`${u}"${escape(a)}"`}:u+a}}),s=UXe(n).map(bXe);return{tooltip:[...i,...ql(s,Ct)]}}function Z8(t){const{title:e,field:n}=t;return nr(e,n)}function e7(t,e,n,r,i){const{scale:s,axis:o}=n;return({partName:u,mark:a,positionPrefix:l,endPositionPrefix:c=void 0,extraEncoding:f={}})=>{const x=Z8(n);return Hoe(t,u,i,{mark:a,encoding:Object.assign(Object.assign(Object.assign({[e]:Object.assign(Object.assign(Object.assign({field:`${l}_${n.field}`,type:n.type},x!==void 0?{title:x}:{}),s!==void 0?{scale:s}:{}),o!==void 0?{axis:o}:{})},je(c)?{[`${e}2`]:{field:`${c}_${n.field}`}}:{}),r),f)})}}function Hoe(t,e,n,r){const{clip:i,color:s,opacity:o}=t,u=t.type;return t[e]||t[e]===void 0&&n[e]?[Object.assign(Object.assign({},r),{mark:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},n[e]),i?{clip:i}:{}),s?{color:s}:{}),o?{opacity:o}:{}),Ta(r.mark)?r.mark:{type:r.mark}),{style:`${u}-${e}`}),yp(t[e])?{}:t[e])})]:[]}function zoe(t,e,n){const{encoding:r}=t,i=e==="vertical"?"y":"x",s=r[i],o=r[`${i}2`],u=r[`${i}Error`],a=r[`${i}Error2`];return{continuousAxisChannelDef:mN(s,n),continuousAxisChannelDef2:mN(o,n),continuousAxisChannelDefError:mN(u,n),continuousAxisChannelDefError2:mN(a,n),continuousAxis:i}}function mN(t,e){if(t!=null&&t.aggregate){const{aggregate:n}=t,r=qoe(t,["aggregate"]);return n!==e&&Re(gYe(n,e)),r}else return t}function Qoe(t,e){const{mark:n,encoding:r}=t,{x:i,y:s}=r;if(Ta(n)&&n.orient)return n.orient;if(Na(i)){if(Na(s)){const o=Ie(i)&&i.aggregate,u=Ie(s)&&s.aggregate;if(!o&&u===e)return"vertical";if(!u&&o===e)return"horizontal";if(o===e&&u===e)throw new Error("Both x and y cannot have aggregate");return R2(s)&&!R2(i)?"horizontal":"vertical"}return"horizontal"}else{if(Na(s))return"vertical";throw new Error(`Need a valid continuous axis for ${e}s`)}}var yN=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const EN="boxplot",zXe=["box","median","outliers","rule","ticks"],QXe=new pN(EN,Woe);function Goe(t){return tn(t)?"tukey":t}function Woe(t,{config:e}){var n,r;t=Object.assign(Object.assign({},t),{encoding:gN(t.encoding,e)});const{mark:i,encoding:s,params:o,projection:u}=t,a=yN(t,["mark","encoding","params","projection"]),l=Ta(i)?i:{type:i};o&&Re(Lse("boxplot"));const c=(n=l.extent)!==null&&n!==void 0?n:e.boxplot.extent,f=$t("size",l,e),x=Goe(c),{bins:h,timeUnits:p,transform:m,continuousAxisChannelDef:g,continuousAxis:y,groupby:E,aggregate:A,encodingWithoutContinuousAxis:S,ticksOrient:v,boxOrient:_,customTooltipWithoutAggregatedField:C}=GXe(t,c,e),{color:b,size:R}=S,O=yN(S,["color","size"]),L=J=>e7(l,y,g,J,e.boxplot),M=L(O),q=L(S),W=L(Object.assign(Object.assign({},O),R?{size:R}:{})),B=J8([{fieldPrefix:x==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:x==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],g,S),G={type:"tick",color:"black",opacity:1,orient:v,invalid:null,aria:!1},te=x==="min-max"?B:J8([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],g,S),K=[...M({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:te}),...M({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:te}),...M({partName:"ticks",mark:G,positionPrefix:"lower_whisker",extraEncoding:te}),...M({partName:"ticks",mark:G,positionPrefix:"upper_whisker",extraEncoding:te})],de=[...x!=="tukey"?K:[],...q({partName:"box",mark:Object.assign(Object.assign({type:"bar"},f?{size:f}:{}),{orient:_,invalid:null,ariaRoleDescription:"box"}),positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:B}),...W({partName:"median",mark:Object.assign(Object.assign(Object.assign({type:"tick",invalid:null},He(e.boxplot.median)&&e.boxplot.median.color?{color:e.boxplot.median.color}:{}),f?{size:f}:{}),{orient:v,aria:!1}),positionPrefix:"mid_box",extraEncoding:B})];if(x==="min-max")return Object.assign(Object.assign({},a),{transform:((r=a.transform)!==null&&r!==void 0?r:[]).concat(m),layer:de});const be=`datum["lower_box_${g.field}"]`,ee=`datum["upper_box_${g.field}"]`,U=`(${ee} - ${be})`,T=`${be} - ${c} * ${U}`,w=`${ee} + ${c} * ${U}`,k=`datum["${g.field}"]`,z={joinaggregate:Voe(g.field),groupby:E},Y={transform:[{filter:`(${T} <= ${k}) && (${k} <= ${w})`},{aggregate:[{op:"min",field:g.field,as:`lower_whisker_${g.field}`},{op:"max",field:g.field,as:`upper_whisker_${g.field}`},{op:"min",field:`lower_box_${g.field}`,as:`lower_box_${g.field}`},{op:"max",field:`upper_box_${g.field}`,as:`upper_box_${g.field}`},...A],groupby:E}],layer:K},V=yN(O,["tooltip"]),{scale:D,axis:$}=g,j=Z8(g),Q=Ao($,["title"]),I=Hoe(l,"outliers",e.boxplot,{transform:[{filter:`(${k} < ${T}) || (${k} > ${w})`}],mark:"point",encoding:Object.assign(Object.assign(Object.assign({[y]:Object.assign(Object.assign(Object.assign({field:g.field,type:g.type},j!==void 0?{title:j}:{}),D!==void 0?{scale:D}:{}),Gt(Q)?{}:{axis:Q})},V),b?{color:b}:{}),C?{tooltip:C}:{})})[0];let H;const P=[...h,...p,z];return I?H={transform:P,layer:[I,Y]}:(H=Y,H.transform.unshift(...P)),Object.assign(Object.assign({},a),{layer:[H,{transform:m,layer:de}]})}function Voe(t){return[{op:"q1",field:t,as:`lower_box_${t}`},{op:"q3",field:t,as:`upper_box_${t}`}]}function GXe(t,e,n){const r=Qoe(t,EN),{continuousAxisChannelDef:i,continuousAxis:s}=zoe(t,r,EN),o=i.field,u=Goe(e),a=[...Voe(o),{op:"median",field:o,as:`mid_box_${o}`},{op:"min",field:o,as:(u==="min-max"?"lower_whisker_":"min_")+o},{op:"max",field:o,as:(u==="min-max"?"upper_whisker_":"max_")+o}],l=u==="min-max"||u==="tukey"?[]:[{calculate:`datum["upper_box_${o}"] - datum["lower_box_${o}"]`,as:`iqr_${o}`},{calculate:`min(datum["upper_box_${o}"] + datum["iqr_${o}"] * ${e}, datum["max_${o}"])`,as:`upper_whisker_${o}`},{calculate:`max(datum["lower_box_${o}"] - datum["iqr_${o}"] * ${e}, datum["min_${o}"])`,as:`lower_whisker_${o}`}],c=t.encoding,f=s;c[f];const x=yN(c,[typeof f=="symbol"?f:f+""]),{customTooltipWithoutAggregatedField:h,filteredEncoding:p}=HXe(x),{bins:m,timeUnits:g,aggregate:y,groupby:E,encoding:A}=joe(p,n),S=r==="vertical"?"horizontal":"vertical",v=r,_=[...m,...g,{aggregate:[...y,...a],groupby:E},...l];return{bins:m,timeUnits:g,transform:_,groupby:E,aggregate:y,continuousAxisChannelDef:i,continuousAxis:s,encodingWithoutContinuousAxis:A,ticksOrient:S,boxOrient:v,customTooltipWithoutAggregatedField:h}}var Yoe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const t7="errorbar",WXe=["ticks","rule"],VXe=new pN(t7,Xoe);function Xoe(t,{config:e}){t=Object.assign(Object.assign({},t),{encoding:gN(t.encoding,e)});const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:s,ticksOrient:o,markDef:u,outerSpec:a,tooltipEncoding:l}=Koe(t,t7,e);delete s.size;const c=e7(u,i,r,s,e.errorbar),f=u.thickness,x=u.size,h=Object.assign(Object.assign({type:"tick",orient:o,aria:!1},f!==void 0?{thickness:f}:{}),x!==void 0?{size:x}:{}),p=[...c({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:l}),...c({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:l}),...c({partName:"rule",mark:Object.assign({type:"rule",ariaRoleDescription:"errorbar"},f!==void 0?{size:f}:{}),positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l})];return Object.assign(Object.assign(Object.assign({},a),{transform:n}),p.length>1?{layer:p}:Object.assign({},p[0]))}function YXe(t,e){const{encoding:n}=t;if(XXe(n))return{orient:Qoe(t,e),inputType:"raw"};const r=KXe(n),i=JXe(n),s=n.x,o=n.y;if(r){if(i)throw new Error(`${e} cannot be both type aggregated-upper-lower and aggregated-error`);const u=n.x2,a=n.y2;if(st(u)&&st(a))throw new Error(`${e} cannot have both x2 and y2`);if(st(u)){if(Na(s))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${e}`)}else if(st(a)){if(Na(o))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${e}`)}throw new Error("No ranged axis")}else{const u=n.xError,a=n.xError2,l=n.yError,c=n.yError2;if(st(a)&&!st(u))throw new Error(`${e} cannot have xError2 without xError`);if(st(c)&&!st(l))throw new Error(`${e} cannot have yError2 without yError`);if(st(u)&&st(l))throw new Error(`${e} cannot have both xError and yError with both are quantiative`);if(st(u)){if(Na(s))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}else if(st(l)){if(Na(o))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 XXe(t){return(st(t.x)||st(t.y))&&!st(t.x2)&&!st(t.y2)&&!st(t.xError)&&!st(t.xError2)&&!st(t.yError)&&!st(t.yError2)}function KXe(t){return st(t.x2)||st(t.y2)}function JXe(t){return st(t.xError)||st(t.xError2)||st(t.yError)||st(t.yError2)}function Koe(t,e,n){var r;const{mark:i,encoding:s,params:o,projection:u}=t,a=Yoe(t,["mark","encoding","params","projection"]),l=Ta(i)?i:{type:i};o&&Re(Lse(e));const{orient:c,inputType:f}=YXe(t,e),{continuousAxisChannelDef:x,continuousAxisChannelDef2:h,continuousAxisChannelDefError:p,continuousAxisChannelDefError2:m,continuousAxis:g}=zoe(t,c,e),{errorBarSpecificAggregate:y,postAggregateCalculates:E,tooltipSummary:A,tooltipTitleWithFieldName:S}=ZXe(l,x,h,p,m,f,e,n),v=s,_=g;v[_];const C=g==="x"?"x2":"y2";v[C];const b=g==="x"?"xError":"yError";v[b];const R=g==="x"?"xError2":"yError2";v[R];const O=Yoe(v,[typeof _=="symbol"?_:_+"",typeof C=="symbol"?C:C+"",typeof b=="symbol"?b:b+"",typeof R=="symbol"?R:R+""]),{bins:L,timeUnits:M,aggregate:q,groupby:W,encoding:B}=joe(O,n),G=[...q,...y],te=f!=="raw"?[]:W,K=J8(A,x,B,S);return{transform:[...(r=a.transform)!==null&&r!==void 0?r:[],...L,...M,...G.length===0?[]:[{aggregate:G,groupby:te}],...E],groupby:te,continuousAxisChannelDef:x,continuousAxis:g,encodingWithoutContinuousAxis:B,ticksOrient:c==="vertical"?"horizontal":"vertical",markDef:l,outerSpec:a,tooltipEncoding:K}}function ZXe(t,e,n,r,i,s,o,u){let a=[],l=[];const c=e.field;let f,x=!1;if(s==="raw"){const h=t.center?t.center:t.extent?t.extent==="iqr"?"median":"mean":u.errorbar.center,p=t.extent?t.extent:h==="mean"?"stderr":"iqr";if(h==="median"!=(p==="iqr")&&Re(pYe(h,p,o)),p==="stderr"||p==="stdev")a=[{op:p,field:c,as:`extent_${c}`},{op:h,field:c,as:`center_${c}`}],l=[{calculate:`datum["center_${c}"] + datum["extent_${c}"]`,as:`upper_${c}`},{calculate:`datum["center_${c}"] - datum["extent_${c}"]`,as:`lower_${c}`}],f=[{fieldPrefix:"center_",titlePrefix:jO(h)},{fieldPrefix:"upper_",titlePrefix:Joe(h,p,"+")},{fieldPrefix:"lower_",titlePrefix:Joe(h,p,"-")}],x=!0;else{let m,g,y;p==="ci"?(m="mean",g="ci0",y="ci1"):(m="median",g="q1",y="q3"),a=[{op:g,field:c,as:`lower_${c}`},{op:y,field:c,as:`upper_${c}`},{op:m,field:c,as:`center_${c}`}],f=[{fieldPrefix:"upper_",titlePrefix:b2({field:c,aggregate:y,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:b2({field:c,aggregate:g,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:b2({field:c,aggregate:m,type:"quantitative"},u,{allowDisabling:!1})}]}}else{(t.center||t.extent)&&Re(hYe(t.center,t.extent)),s==="aggregated-upper-lower"?(f=[],l=[{calculate:`datum["${n.field}"]`,as:`upper_${c}`},{calculate:`datum["${c}"]`,as:`lower_${c}`}]):s==="aggregated-error"&&(f=[{fieldPrefix:"",titlePrefix:c}],l=[{calculate:`datum["${c}"] + datum["${r.field}"]`,as:`upper_${c}`}],i?l.push({calculate:`datum["${c}"] + datum["${i.field}"]`,as:`lower_${c}`}):l.push({calculate:`datum["${c}"] - datum["${r.field}"]`,as:`lower_${c}`}));for(const h of l)f.push({fieldPrefix:h.as.substring(0,6),titlePrefix:g2(g2(h.calculate,'datum["',""),'"]',"")})}return{postAggregateCalculates:l,errorBarSpecificAggregate:a,tooltipSummary:f,tooltipTitleWithFieldName:x}}function Joe(t,e,n){return`${jO(t)} ${n} ${e}`}const n7="errorband",eKe=["band","borders"],tKe=new pN(n7,Zoe);function Zoe(t,{config:e}){t=Object.assign(Object.assign({},t),{encoding:gN(t.encoding,e)});const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:s,markDef:o,outerSpec:u,tooltipEncoding:a}=Koe(t,n7,e),l=o,c=e7(l,i,r,s,e.errorband),f=t.encoding.x!==void 0&&t.encoding.y!==void 0;let x={type:f?"area":"rect"},h={type:f?"line":"rule"};const p=Object.assign(Object.assign({},l.interpolate?{interpolate:l.interpolate}:{}),l.tension&&l.interpolate?{tension:l.tension}:{});return f?(x=Object.assign(Object.assign(Object.assign({},x),p),{ariaRoleDescription:"errorband"}),h=Object.assign(Object.assign(Object.assign({},h),p),{aria:!1})):l.interpolate?Re(qse("interpolate")):l.tension&&Re(qse("tension")),Object.assign(Object.assign({},u),{transform:n,layer:[...c({partName:"band",mark:x,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:a}),...c({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:a}),...c({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:a})]})}const eue={};function r7(t,e,n){const r=new pN(t,e);eue[t]={normalizer:r,parts:n}}function nKe(){return Te(eue)}r7(EN,Woe,zXe),r7(t7,Xoe,WXe),r7(n7,Zoe,eKe);const rKe=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],tue={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"},nue={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"},iKe=Te(tue),sKe=Te(nue),rue=Te({header:1,headerRow:1,headerColumn:1,headerFacet:1}),iue=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],oKe={gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},uKe={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},x3="_vgsid_",aKe={point:{on:"click",fields:[x3],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[mousedown, window:mouseup] > window:mousemove!",encodings:["x","y"],translate:"[mousedown, window:mouseup] > window:mousemove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function i7(t){return!!t&&(t==="legend"||!!t.legend)}function s7(t){return i7(t)&&He(t)}function o7(t){return!!t.select}var lKe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function sue(t){const e=[];for(const n of t||[]){if(o7(n))continue;const{expr:r,bind:i}=n,s=lKe(n,["expr","bind"]);if(i&&r){const o=Object.assign(Object.assign({},s),{bind:i,init:r});e.push(o)}else{const o=Object.assign(Object.assign(Object.assign({},s),r?{update:r}:{}),i?{bind:i}:{});e.push(o)}}return e}function cKe(t){return AN(t)||a7(t)||u7(t)}function u7(t){return"concat"in t}function AN(t){return"vconcat"in t}function a7(t){return"hconcat"in t}function oue({step:t,offsetIsDiscrete:e}){var n;return e?(n=t.for)!==null&&n!==void 0?n:"offset":"position"}function Fa(t){return He(t)&&t.step!==void 0}function uue(t){return t.view||t.width||t.height}const aue=20,fKe=Te({align:1,bounds:1,center:1,columns:1,spacing:1});function xKe(t,e,n){var r,i;const s=n[e],o={},{spacing:u,columns:a}=s;u!==void 0&&(o.spacing=u),a!==void 0&&(uN(t)&&!a3(t.facet)||u7(t))&&(o.columns=a),AN(t)&&(o.columns=1);for(const l of fKe)if(t[l]!==void 0)if(l==="spacing"){const c=t[l];o[l]=tn(c)?c:{row:(r=c.row)!==null&&r!==void 0?r:u,column:(i=c.column)!==null&&i!==void 0?i:u}}else o[l]=t[l];return o}var dKe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function l7(t,e){var n;return(n=t[e])!==null&&n!==void 0?n:t[e==="width"?"continuousWidth":"continuousHeight"]}function SN(t,e){const n=vN(t,e);return Fa(n)?n.step:lue}function vN(t,e){var n;const r=(n=t[e])!==null&&n!==void 0?n:t[e==="width"?"discreteWidth":"discreteHeight"];return nr(r,{step:t.step})}const lue=20,hKe={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:lue},mark:lXe,arc:{},area:{},bar:fXe,circle:{},geoshape:{},image:{},line:{},point:{},rect:xXe,rule:{color:"black"},square:{},text:{color:"black"},tick:dXe,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:WYe,projection:{},legend:oKe,header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:aKe,style:{},title:{},facet:{spacing:aue},concat:{spacing:aue}},e0=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],cue={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},fue={blue:e0[0],orange:e0[1],red:e0[2],teal:e0[3],green:e0[4],yellow:e0[5],purple:e0[6],pink:e0[7],brown:e0[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 pKe(t={}){return{signals:[{name:"color",value:He(t)?Object.assign(Object.assign({},fue),t):fue}],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"}]}}}function gKe(t){return{signals:[{name:"fontSize",value:He(t)?Object.assign(Object.assign({},cue),t):cue}],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"}}}}}function mKe(t){return{text:{font:t},style:{"guide-label":{font:t},"guide-title":{font:t},"group-title":{font:t},"group-subtitle":{font:t}}}}function xue(t){const e=Te(t||{}),n={};for(const r of e){const i=t[r];n[r]=f3(i)?Ase(i):Ms(i)}return n}function yKe(t){const e=Te(t),n={};for(const r of e)n[r]=xue(t[r]);return n}const EKe=[...foe,...Poe,...rue,"background","padding","legend","lineBreak","scale","style","title","view"];function due(t={}){const{color:e,font:n,fontSize:r,selection:i}=t,s=dKe(t,["color","font","fontSize","selection"]),o=G4({},ut(hKe),n?mKe(n):{},e?pKe(e):{},r?gKe(r):{},s||{});i&&Sb(o,"selection",i,!0);const u=Ao(o,EKe);for(const a of["background","lineBreak","padding"])o[a]&&(u[a]=Ms(o[a]));for(const a of foe)o[a]&&(u[a]=xs(o[a]));for(const a of Poe)o[a]&&(u[a]=xue(o[a]));for(const a of rue)o[a]&&(u[a]=xs(o[a]));return o.legend&&(u.legend=xs(o.legend)),o.scale&&(u.scale=xs(o.scale)),o.style&&(u.style=yKe(o.style)),o.title&&(u.title=xs(o.title)),o.view&&(u.view=xs(o.view)),u}const AKe=new Set(["view",...iXe]),SKe=["color","fontSize","background","padding","facet","concat","numberFormat","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],vKe=Object.assign({view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"]},aXe);function _Ke(t){t=ut(t);for(const e of SKe)delete t[e];if(t.axis)for(const e in t.axis)f3(t.axis[e])&&delete t.axis[e];if(t.legend)for(const e of rKe)delete t.legend[e];if(t.mark){for(const e of coe)delete t.mark[e];t.mark.tooltip&&He(t.mark.tooltip)&&delete t.mark.tooltip}t.params&&(t.signals=(t.signals||[]).concat(sue(t.params)),delete t.params);for(const e of AKe){for(const r of coe)delete t[e][r];const n=vKe[e];if(n)for(const r of n)delete t[e][r];bKe(t,e)}for(const e of nKe())delete t[e];CKe(t);for(const e in t)He(t[e])&&Gt(t[e])&&delete t[e];return Gt(t)?void 0:t}function CKe(t){const{titleMarkConfig:e,subtitleMarkConfig:n,subtitle:r}=Ese(t.title);Gt(e)||(t.style["group-title"]=Object.assign(Object.assign({},t.style["group-title"]),e)),Gt(n)||(t.style["group-subtitle"]=Object.assign(Object.assign({},t.style["group-subtitle"]),n)),Gt(r)?delete t.title:t.title=r}function bKe(t,e,n,r){const i=r?t[e][r]:t[e];e==="view"&&(n="cell");const s=Object.assign(Object.assign({},i),t.style[n??e]);Gt(s)||(t.style[n??e]=s),r||delete t[e]}function _N(t){return"layer"in t}function TKe(t){return"repeat"in t}function RKe(t){return!_e(t.repeat)&&t.repeat.layer}var OKe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class c7{map(e,n){return uN(e)?this.mapFacet(e,n):TKe(e)?this.mapRepeat(e,n):a7(e)?this.mapHConcat(e,n):AN(e)?this.mapVConcat(e,n):u7(e)?this.mapConcat(e,n):this.mapLayerOrUnit(e,n)}mapLayerOrUnit(e,n){if(_N(e))return this.mapLayer(e,n);if(Zl(e))return this.mapUnit(e,n);throw new Error(x8(e))}mapLayer(e,n){return Object.assign(Object.assign({},e),{layer:e.layer.map(r=>this.mapLayerOrUnit(r,n))})}mapHConcat(e,n){return Object.assign(Object.assign({},e),{hconcat:e.hconcat.map(r=>this.map(r,n))})}mapVConcat(e,n){return Object.assign(Object.assign({},e),{vconcat:e.vconcat.map(r=>this.map(r,n))})}mapConcat(e,n){const{concat:r}=e,i=OKe(e,["concat"]);return Object.assign(Object.assign({},i),{concat:r.map(s=>this.map(s,n))})}mapFacet(e,n){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,n)})}mapRepeat(e,n){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,n)})}}const NKe={zero:1,center:1,normalize:1};function DKe(t){return t in NKe}const FKe=new Set([ooe,eN,ZO,rN,nN,L8,I8,tN,uoe,w8]),wKe=new Set([eN,ZO,ooe]);function O2(t){return Ie(t)&&H8(t)==="quantitative"&&!t.bin}function hue(t,e){var n,r;const i=e==="x"?"y":"radius",s=t[e],o=t[i];if(Ie(s)&&Ie(o))if(O2(s)&&O2(o)){if(s.stack)return e;if(o.stack)return i;const u=Ie(s)&&!!s.aggregate,a=Ie(o)&&!!o.aggregate;if(u!==a)return u?e:i;{const l=(n=s.scale)===null||n===void 0?void 0:n.type,c=(r=o.scale)===null||r===void 0?void 0:r.type;if(l&&l!=="linear")return i;if(c&&c!=="linear")return e}}else{if(O2(s))return e;if(O2(o))return i}else{if(O2(s))return e;if(O2(o))return i}}function LKe(t){switch(t){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}function pue(t,e,n={}){var r,i;const s=Ta(t)?t.type:t;if(!FKe.has(s))return null;const o=hue(e,"x")||hue(e,"theta");if(!o)return null;const u=e[o],a=Ie(u)?$e(u,{}):void 0,l=LKe(o),c=[],f=new Set;if(e[l]){const p=e[l],m=Ie(p)?$e(p,{}):void 0;m&&m!==a&&(c.push(l),f.add(m));const g=l==="x"?"xOffset":"yOffset",y=e[g],E=Ie(y)?$e(y,{}):void 0;E&&E!==a&&(c.push(g),f.add(E))}const x=YWe.reduce((p,m)=>{if(m!=="tooltip"&&bd(e,m)){const g=e[m];for(const y of Pe(g)){const E=Da(y);if(E.aggregate)continue;const A=$e(E,{});(!A||!f.has(A))&&p.push({channel:m,fieldDef:E})}}return p},[]);let h;if(u.stack!==void 0?yp(u.stack)?h=u.stack?"zero":null:h=u.stack:wKe.has(s)&&(h="zero"),!h||!DKe(h)||X8(e)&&x.length===0)return null;if(!((r=u==null?void 0:u.scale)===null||r===void 0)&&r.type&&((i=u==null?void 0:u.scale)===null||i===void 0?void 0:i.type)!==ds.LINEAR){if(n.disallowNonLinearStack)return null;Re(fYe(u.scale.type))}return st(e[Yl(o)])?(u.stack!==void 0&&Re(cYe(o)),null):(Ie(u)&&u.aggregate&&!uVe.has(u.aggregate)&&Re(xYe(u.aggregate)),{groupbyChannels:c,groupbyFields:f,fieldChannel:o,impute:u.impute===null?!1:kc(s),stackBy:x,offset:h})}var gue=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function IKe(t){const e=gue(t,["point","line"]);return Te(e).length>1?e:e.type}function $Ke(t){for(const e of["line","area","rule","trail"])t[e]&&(t=Object.assign(Object.assign({},t),{[e]:Ao(t[e],["point","line"])}));return t}function f7(t,e={},n){return t.point==="transparent"?{opacity:0}:t.point?He(t.point)?t.point:{}:t.point!==void 0?null:e.point||n.shape?He(e.point)?e.point:{}:void 0}function mue(t,e={}){return t.line?t.line===!0?{}:t.line:t.line!==void 0?null:e.line?e.line===!0?{}:e.line:void 0}class BKe{constructor(){this.name="path-overlay"}hasMatchingType(e,n){if(Zl(e)){const{mark:r,encoding:i}=e,s=Ta(r)?r:{type:r};switch(s.type){case"line":case"rule":case"trail":return!!f7(s,n[s.type],i);case"area":return!!f7(s,n[s.type],i)||!!mue(s,n[s.type])}}return!1}run(e,n,r){const{config:i}=n,{params:s,projection:o,mark:u,encoding:a}=e,l=gue(e,["params","projection","mark","encoding"]),c=gN(a,i),f=Ta(u)?u:{type:u},x=f7(f,i[f.type],c),h=f.type==="area"&&mue(f,i[f.type]),p=[Object.assign(Object.assign({},s?{params:s}:{}),{mark:IKe(Object.assign(Object.assign({},f.type==="area"&&f.opacity===void 0&&f.fillOpacity===void 0?{opacity:.7}:{}),f)),encoding:Ao(c,["shape"])})],m=pue(f,c);let g=c;if(m){const{fieldChannel:y,offset:E}=m;g=Object.assign(Object.assign({},c),{[y]:Object.assign(Object.assign({},c[y]),E?{stack:E}:{})})}return h&&p.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"line"},JE(f,["clip","interpolate","tension","tooltip"])),h),encoding:g})),x&&p.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"point",opacity:1,filled:!0},JE(f,["clip","tooltip"])),x),encoding:g})),r(Object.assign(Object.assign({},l),{layer:p}),Object.assign(Object.assign({},n),{config:$Ke(i)}))}}var kKe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function PKe(t,e){return e?a3(t)?Sue(t,e):yue(t,e):t}function x7(t,e){return e?Sue(t,e):t}function d7(t,e,n){const r=e[t];if(_Xe(r)){if(r.repeat in n)return Object.assign(Object.assign({},e),{[t]:n[r.repeat]});Re(TVe(r.repeat));return}return e}function yue(t,e){if(t=d7("field",t,e),t!==void 0){if(t===null)return null;if(q8(t)&&Ra(t.sort)){const n=d7("field",t.sort,e);t=Object.assign(Object.assign({},t),n?{sort:n}:{})}return t}}function Eue(t,e){if(Ie(t))return yue(t,e);{const n=d7("datum",t,e);return n!==t&&!n.type&&(n.type="nominal"),n}}function Aue(t,e){if(st(t)){const n=Eue(t,e);if(n)return n;if(aN(t))return{condition:t.condition}}else{if(l3(t)){const n=Eue(t.condition,e);return n?Object.assign(Object.assign({},t),{condition:n}):kKe(t,["condition"])}return t}}function Sue(t,e){const n={};for(const r in t)if(Je(t,r)){const i=t[r];if(_e(i))n[r]=i.map(s=>Aue(s,e)).filter(s=>s);else{const s=Aue(i,e);s!==void 0&&(n[r]=s)}}return n}class MKe{constructor(){this.name="RuleForRangedLine"}hasMatchingType(e){if(Zl(e)){const{encoding:n,mark:r}=e;if(r==="line"||Ta(r)&&r.type==="line")for(const i of GWe){const s=md(i),o=n[s];if(n[i]&&(Ie(o)&&!Bi(o.bin)||Oa(o)))return!0}}return!1}run(e,n,r){const{encoding:i,mark:s}=e;return Re(WVe(!!i.x2,!!i.y2)),r(Object.assign(Object.assign({},e),{mark:He(s)?Object.assign(Object.assign({},s),{type:"rule"}):"rule"}),n)}}var Pc=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class jKe extends c7{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[QXe,VXe,tKe,new BKe,new MKe]}map(e,n){if(Zl(e)){const r=bd(e.encoding,Hl),i=bd(e.encoding,zl),s=bd(e.encoding,qO);if(r||i||s)return this.mapFacetedUnit(e,n)}return super.map(e,n)}mapUnit(e,n){const{parentEncoding:r,parentProjection:i}=n,s=x7(e.encoding,n.repeater),o=Object.assign(Object.assign({},e),s?{encoding:s}:{});if(r||i)return this.mapUnitWithParentEncodingOrProjection(o,n);const u=this.mapLayerOrUnit.bind(this);for(const a of this.nonFacetUnitNormalizers)if(a.hasMatchingType(o,n.config))return a.run(o,n,u);return o}mapRepeat(e,n){return RKe(e)?this.mapLayerRepeat(e,n):this.mapNonLayerRepeat(e,n)}mapLayerRepeat(e,n){const{repeat:r,spec:i}=e,s=Pc(e,["repeat","spec"]),{row:o,column:u,layer:a}=r,{repeater:l={},repeaterPrefix:c=""}=n;return o||u?this.mapRepeat(Object.assign(Object.assign({},e),{repeat:Object.assign(Object.assign({},o?{row:o}:{}),u?{column:u}:{}),spec:{repeat:{layer:a},spec:i}}),n):Object.assign(Object.assign({},s),{layer:a.map(f=>{const x=Object.assign(Object.assign({},l),{layer:f}),h=`${(i.name||"")+c}child__layer_${gn(f)}`,p=this.mapLayerOrUnit(i,Object.assign(Object.assign({},n),{repeater:x,repeaterPrefix:h}));return p.name=h,p})})}mapNonLayerRepeat(e,n){var r;const{repeat:i,spec:s,data:o}=e,u=Pc(e,["repeat","spec","data"]);!_e(i)&&e.columns&&(e=Ao(e,["columns"]),Re(Ise("repeat")));const a=[],{repeater:l={},repeaterPrefix:c=""}=n,f=!_e(i)&&i.row||[l?l.row:null],x=!_e(i)&&i.column||[l?l.column:null],h=_e(i)&&i||[l?l.repeat:null];for(const m of h)for(const g of f)for(const y of x){const E={repeat:m,row:g,column:y,layer:l.layer},A=(s.name||"")+c+"child__"+(_e(i)?`${gn(m)}`:(i.row?`row_${gn(g)}`:"")+(i.column?`column_${gn(y)}`:"")),S=this.map(s,Object.assign(Object.assign({},n),{repeater:E,repeaterPrefix:A}));S.name=A,a.push(Ao(S,["data"]))}const p=_e(i)?e.columns:i.column?i.column.length:1;return Object.assign(Object.assign({data:(r=s.data)!==null&&r!==void 0?r:o,align:"all"},u),{columns:p,concat:a})}mapFacet(e,n){const{facet:r}=e;return a3(r)&&e.columns&&(e=Ao(e,["columns"]),Re(Ise("facet"))),super.mapFacet(e,n)}mapUnitWithParentEncodingOrProjection(e,n){const{encoding:r,projection:i}=e,{parentEncoding:s,parentProjection:o,config:u}=n,a=_ue({parentProjection:o,projection:i}),l=vue({parentEncoding:s,encoding:x7(r,n.repeater)});return this.mapUnit(Object.assign(Object.assign(Object.assign({},e),a?{projection:a}:{}),l?{encoding:l}:{}),{config:u})}mapFacetedUnit(e,n){const r=e.encoding,{row:i,column:s,facet:o}=r,u=Pc(r,["row","column","facet"]),{mark:a,width:l,projection:c,height:f,view:x,params:h,encoding:p}=e,m=Pc(e,["mark","width","projection","height","view","params","encoding"]),{facetMapping:g,layout:y}=this.getFacetMappingAndLayout({row:i,column:s,facet:o},n),E=x7(u,n.repeater);return this.mapFacet(Object.assign(Object.assign(Object.assign({},m),y),{facet:g,spec:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},l?{width:l}:{}),f?{height:f}:{}),x?{view:x}:{}),c?{projection:c}:{}),{mark:a,encoding:E}),h?{params:h}:{})}),n)}getFacetMappingAndLayout(e,n){var r;const{row:i,column:s,facet:o}=e;if(i||s){o&&Re(QVe([...i?[Hl]:[],...s?[zl]:[]]));const u={},a={};for(const l of[Hl,zl]){const c=e[l];if(c){const f=Pc(c,["align","center","spacing","columns"]);u[l]=f;for(const x of["align","center","spacing"])c[x]!==void 0&&((r=a[x])!==null&&r!==void 0||(a[x]={}),a[x][l]=c[x])}}return{facetMapping:u,layout:a}}else{const{align:u,center:a,spacing:l,columns:c}=o,f=Pc(o,["align","center","spacing","columns"]);return{facetMapping:PKe(f,n.repeater),layout:Object.assign(Object.assign(Object.assign(Object.assign({},u?{align:u}:{}),a?{center:a}:{}),l?{spacing:l}:{}),c?{columns:c}:{})}}}mapLayer(e,n){var{parentEncoding:r,parentProjection:i}=n,s=Pc(n,["parentEncoding","parentProjection"]);const{encoding:o,projection:u}=e,a=Pc(e,["encoding","projection"]),l=Object.assign(Object.assign({},s),{parentEncoding:vue({parentEncoding:r,encoding:o,layer:!0}),parentProjection:_ue({parentProjection:i,projection:u})});return super.mapLayer(a,l)}}function vue({parentEncoding:t,encoding:e={},layer:n}){let r={};if(t){const i=new Set([...Te(t),...Te(e)]);for(const s of i){const o=e[s],u=t[s];if(st(o)){const a=Object.assign(Object.assign({},u),o);r[s]=a}else l3(o)?r[s]=Object.assign(Object.assign({},o),{condition:Object.assign(Object.assign({},u),o.condition)}):o||o===null?r[s]=o:(n||fu(u)||Ye(u)||st(u)||_e(u))&&(r[s]=u)}}else r=e;return!r||Gt(r)?void 0:r}function _ue(t){const{parentProjection:e,projection:n}=t;return e&&n&&Re(wVe({parentProjection:e,projection:n})),n??e}function h7(t){return"filter"in t}function UKe(t){return(t==null?void 0:t.stop)!==void 0}function Cue(t){return"lookup"in t}function qKe(t){return"data"in t}function HKe(t){return"param"in t}function zKe(t){return"pivot"in t}function QKe(t){return"density"in t}function GKe(t){return"quantile"in t}function WKe(t){return"regression"in t}function VKe(t){return"loess"in t}function YKe(t){return"sample"in t}function XKe(t){return"window"in t}function KKe(t){return"joinaggregate"in t}function JKe(t){return"flatten"in t}function ZKe(t){return"calculate"in t}function bue(t){return"bin"in t}function eJe(t){return"impute"in t}function tJe(t){return"timeUnit"in t}function nJe(t){return"aggregate"in t}function rJe(t){return"stack"in t}function iJe(t){return"fold"in t}function sJe(t){return t.map(e=>h7(e)?{filter:h2(e.filter,MYe)}:e)}var Mc=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class oJe extends c7{map(e,n){var r,i;return(r=n.emptySelections)!==null&&r!==void 0||(n.emptySelections={}),(i=n.selectionPredicates)!==null&&i!==void 0||(n.selectionPredicates={}),e=Tue(e,n),super.map(e,n)}mapLayerOrUnit(e,n){if(e=Tue(e,n),e.encoding){const r={};for(const[i,s]of hd(e.encoding))r[i]=Rue(s,n);e=Object.assign(Object.assign({},e),{encoding:r})}return super.mapLayerOrUnit(e,n)}mapUnit(e,n){const r=e,{selection:i}=r,s=Mc(r,["selection"]);return i?Object.assign(Object.assign({},s),{params:hd(i).map(([o,u])=>{var a;const l=u,{init:c,bind:f,empty:x}=l,h=Mc(l,["init","bind","empty"]);h.type==="single"?(h.type="point",h.toggle=!1):h.type==="multi"&&(h.type="point"),n.emptySelections[o]=x!=="none";for(const p of $i((a=n.selectionPredicates[o])!==null&&a!==void 0?a:{}))p.empty=x!=="none";return{name:o,value:c,select:h,bind:f}})}):e}}function Tue(t,e){const{transform:n}=t,r=Mc(t,["transform"]);if(n){const i=n.map(s=>{if(h7(s))return{filter:p7(s,e)};if(bue(s)&&yd(s.bin))return Object.assign(Object.assign({},s),{bin:Oue(s.bin)});if(Cue(s)){const o=s.from,{selection:u}=o,a=Mc(o,["selection"]);return u?Object.assign(Object.assign({},s),{from:Object.assign({param:u},a)}):s}return s});return Object.assign(Object.assign({},r),{transform:i})}return t}function Rue(t,e){var n,r;const i=ut(t);if(Ie(i)&&yd(i.bin)&&(i.bin=Oue(i.bin)),Cd(i)&&(!((r=(n=i.scale)===null||n===void 0?void 0:n.domain)===null||r===void 0)&&r.selection)){const s=i.scale.domain,{selection:o}=s,u=Mc(s,["selection"]);i.scale.domain=Object.assign(Object.assign({},u),o?{param:o}:{})}if(aN(i))if(_e(i.condition))i.condition=i.condition.map(s=>{const{selection:o,param:u,test:a}=s,l=Mc(s,["selection","param","test"]);return u?s:Object.assign(Object.assign({},l),{test:p7(s,e)})});else{const s=Rue(i.condition,e),{selection:o,param:u,test:a}=s,l=Mc(s,["selection","param","test"]);i.condition=u?i.condition:Object.assign(Object.assign({},l),{test:p7(i.condition,e)})}return i}function Oue(t){const e=t.extent;if(e!=null&&e.selection){const{selection:n}=e,r=Mc(e,["selection"]);return Object.assign(Object.assign({},t),{extent:Object.assign(Object.assign({},r),{param:n})})}return t}function p7(t,e){const n=r=>h2(r,i=>{var s,o,u;const a=(s=e.emptySelections[i])!==null&&s!==void 0?s:!0,l={param:i,empty:a};return(o=(u=e.selectionPredicates)[i])!==null&&o!==void 0||(u[i]=[]),e.selectionPredicates[i].push(l),l});return t.selection?n(t.selection):h2(t.test||t.filter,r=>r.selection?n(r.selection):r)}class g7 extends c7{map(e,n){var r;const i=(r=n.selections)!==null&&r!==void 0?r:[];if(e.params&&!Zl(e)){const s=[];for(const o of e.params)o7(o)?i.push(o):s.push(o);e.params=s}return n.selections=i,super.map(e,Nue(e,n))}mapUnit(e,n){var r;const i=n.selections;if(!i||!i.length)return e;const s=((r=n.path)!==null&&r!==void 0?r:[]).concat(e.name),o=[];for(const u of i)if(!u.views||!u.views.length)o.push(u);else for(const a of u.views)(je(a)&&(a===e.name||s.indexOf(a)>=0)||_e(a)&&a.map(l=>s.indexOf(l)).every((l,c,f)=>l!==-1&&(c===0||l>f[c-1])))&&o.push(u);return o.length&&(e.params=o),e}}for(const t of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const e=g7.prototype[t];g7.prototype[t]=function(n,r){return e.call(this,n,Nue(n,r))}}function Nue(t,e){var n;return t.name?Object.assign(Object.assign({},e),{path:((n=e.path)!==null&&n!==void 0?n:[]).concat(t.name)}):e}function uJe(t,e){e===void 0&&(e=due(t.config));const n=fJe(t,e),{width:r,height:i}=t,s=xJe(n,{width:r,height:i,autosize:t.autosize},e);return Object.assign(Object.assign({},n),s?{autosize:s}:{})}const aJe=new jKe,lJe=new oJe,cJe=new g7;function fJe(t,e={}){const n={config:e};return cJe.map(aJe.map(lJe.map(t,n),n),n)}function Due(t){return je(t)?{type:t}:t??{}}function xJe(t,e,n){let{width:r,height:i}=e;const s=Zl(t)||_N(t),o={};s?r=="container"&&i=="container"?(o.type="fit",o.contains="padding"):r=="container"?(o.type="fit-x",o.contains="padding"):i=="container"&&(o.type="fit-y",o.contains="padding"):(r=="container"&&(Re(Nse("width")),r=void 0),i=="container"&&(Re(Nse("height")),i=void 0));const u=Object.assign(Object.assign(Object.assign({type:"pad"},o),n?Due(n.autosize):{}),Due(t.autosize));if(u.type==="fit"&&!s&&(Re(gVe),u.type="pad"),r=="container"&&!(u.type=="fit"||u.type=="fit-x")&&Re(Dse("width")),i=="container"&&!(u.type=="fit"||u.type=="fit-y")&&Re(Dse("height")),!Ul(u,{type:"pad"}))return u}function dJe(t){return t==="fit"||t==="fit-x"||t==="fit-y"}function hJe(t){return t?`fit-${WO(t)}`:"fit"}const pJe=["background","padding"];function Fue(t,e){const n={};for(const r of pJe)t&&t[r]!==void 0&&(n[r]=Ms(t[r]));return e&&(n.params=t.params),n}class t0{constructor(e={},n={}){this.explicit=e,this.implicit=n}clone(){return new t0(ut(this.explicit),ut(this.implicit))}combine(){return Object.assign(Object.assign({},this.explicit),this.implicit)}get(e){return nr(this.explicit[e],this.implicit[e])}getWithExplicit(e){return this.explicit[e]!==void 0?{explicit:!0,value:this.explicit[e]}:this.implicit[e]!==void 0?{explicit:!1,value:this.implicit[e]}:{explicit:!1,value:void 0}}setWithExplicit(e,{value:n,explicit:r}){n!==void 0&&this.set(e,n,r)}set(e,n,r){return delete this[r?"implicit":"explicit"][e],this[r?"explicit":"implicit"][e]=n,this}copyKeyFromSplit(e,{explicit:n,implicit:r}){n[e]!==void 0?this.set(e,n[e],!0):r[e]!==void 0&&this.set(e,r[e],!1)}copyKeyFromObject(e,n){n[e]!==void 0&&this.set(e,n[e],!0)}copyAll(e){for(const n of Te(e.combine())){const r=e.getWithExplicit(n);this.setWithExplicit(n,r)}}}function wa(t){return{explicit:!0,value:t}}function Us(t){return{explicit:!1,value:t}}function wue(t){return(e,n,r,i)=>{const s=t(e.value,n.value);return s>0?e:s<0?n:CN(e,n,r,i)}}function CN(t,e,n,r){return t.explicit&&e.explicit&&Re(rYe(n,r,t.value,e.value)),t}function jc(t,e,n,r,i=CN){return t===void 0||t.value===void 0?e:t.explicit&&!e.explicit?t:e.explicit&&!t.explicit?e:Ul(t.value,e.value)?t:i(t,e,n,r)}class gJe extends t0{constructor(e={},n={},r=!1){super(e,n),this.explicit=e,this.implicit=n,this.parseNothing=r}clone(){const e=super.clone();return e.parseNothing=this.parseNothing,e}}function N2(t){return"url"in t}function d3(t){return"values"in t}function Lue(t){return"name"in t&&!N2(t)&&!d3(t)&&!Uc(t)}function Uc(t){return t&&(Iue(t)||$ue(t)||m7(t))}function Iue(t){return"sequence"in t}function $ue(t){return"sphere"in t}function m7(t){return"graticule"in t}var Kt;(function(t){t[t.Raw=0]="Raw",t[t.Main=1]="Main",t[t.Row=2]="Row",t[t.Column=3]="Column",t[t.Lookup=4]="Lookup"})(Kt||(Kt={}));var mJe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function D2(t,e=!0,n=mi){if(_e(t)){const r=t.map(i=>D2(i,e,n));return e?`[${r.join(", ")}]`:r}else if(Ad(t))return n(e?s3(t):OYe(t));return e?n(rn(t)):t}function yJe(t,e){var n;for(const r of $i((n=t.component.selection)!==null&&n!==void 0?n:{})){const i=r.name;let s=`${i}${zc}, ${r.resolve==="global"?"true":`{unit: ${L2(t)}}`}`;for(const o of NN)o.defined(r)&&(o.signals&&(e=o.signals(t,r,e)),o.modifyExpr&&(s=o.modifyExpr(t,r,s)));e.push({name:i+KJe,on:[{events:{signal:r.name+zc},update:`modify(${we(r.name+Td)}, ${s})`}]})}return y7(e)}function EJe(t,e){if(t.component.selection&&Te(t.component.selection).length){const n=we(t.getName("cell"));e.unshift({name:"facet",value:{},on:[{events:ad("mousemove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return y7(e)}function AJe(t,e){var n;let r=!1;for(const i of $i((n=t.component.selection)!==null&&n!==void 0?n:{})){const s=i.name,o=we(s+Td);if(e.filter(a=>a.name===s).length===0){const a=i.resolve==="global"?"union":i.resolve,l=i.type==="point"?", true, true)":")";e.push({name:i.name,update:`${iae}(${o}, ${we(a)}${l}`})}r=!0;for(const a of NN)a.defined(i)&&a.topLevelSignals&&(e=a.topLevelSignals(t,i,e))}return r&&e.filter(s=>s.name==="unit").length===0&&e.unshift({name:"unit",value:{},on:[{events:"mousemove",update:"isTuple(group()) ? group() : unit"}]}),y7(e)}function SJe(t,e){var n;const r=[...e];for(const i of $i((n=t.component.selection)!==null&&n!==void 0?n:{})){const s={name:i.name+Td};if(i.init){const u=i.project.items.map(a=>mJe(a,["signals"]));s.values=i.init.map(a=>({unit:L2(t,{escape:!1}),fields:u,values:D2(a,!1)}))}r.filter(u=>u.name===i.name+Td).length||r.push(s)}return r}function Bue(t,e){var n;for(const r of $i((n=t.component.selection)!==null&&n!==void 0?n:{}))for(const i of NN)i.defined(r)&&i.marks&&(e=i.marks(t,r,e));return e}function vJe(t,e){for(const n of t.children)zn(n)&&(e=Bue(n,e));return e}function _Je(t,e,n,r){const i=lae(t,e.param,e);return{signal:js(n.get("type"))&&_e(r)&&r[0]>r[1]?`isValid(${i}) && reverse(${i})`:i}}function y7(t){return t.map(e=>(e.on&&!e.on.length&&delete e.on,e))}class jt{constructor(e,n){this.debugName=n,this._children=[],this._parent=null,e&&(this.parent=e)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(e){this._parent=e,e&&e.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(e,n){if(this._children.includes(e)){Re(NVe);return}n!==void 0?this._children.splice(n,0,e):this._children.push(e)}removeChild(e){const n=this._children.indexOf(e);return this._children.splice(n,1),n}remove(){let e=this._parent.removeChild(this);for(const n of this._children)n._parent=this._parent,this._parent.addChild(n,e++)}insertAsParentOf(e){const n=e.parent;n.removeChild(this),this.parent=n,e.parent=this}swapWithParent(){const e=this._parent,n=e.parent;for(const r of this._children)r.parent=e;this._children=[],e.removeChild(this),e.parent.removeChild(e),this.parent=n,e.parent=this}}class Mi extends jt{constructor(e,n,r,i){super(e,n),this.type=r,this.refCounts=i,this._source=this._name=n,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}clone(){const e=new this.constructor;return e.debugName=`clone_${this.debugName}`,e._source=this._source,e._name=`clone_${this._name}`,e.type=this.type,e.refCounts=this.refCounts,e.refCounts[e._name]=0,e}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${$We()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(e){this._source=e}}var kue=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class La extends jt{constructor(e,n){super(e),this.formula=n}clone(){return new La(null,ut(this.formula))}static makeFromEncoding(e,n){const r=n.reduceFieldDef((i,s)=>{const{field:o,timeUnit:u}=s;if(u){const a=$e(s,{forAs:!0});i[Ct({as:a,field:o,timeUnit:u})]={as:a,field:o,timeUnit:u}}return i},{});return Gt(r)?null:new La(e,r)}static makeFromTransform(e,n){const r=Object.assign({},n),{timeUnit:i}=r,s=kue(r,["timeUnit"]),o=ki(i),u=Object.assign(Object.assign({},s),{timeUnit:o});return new La(e,{[Ct(u)]:u})}merge(e){this.formula=Object.assign({},this.formula);for(const n in e.formula)this.formula[n]||(this.formula[n]=e.formula[n]);for(const n of e.children)e.removeChild(n),n.parent=this;e.remove()}removeFormulas(e){const n={};for(const[r,i]of hd(this.formula))e.has(i.as)||(n[r]=i);this.formula=n}producedFields(){return new Set($i(this.formula).map(e=>e.as))}dependentFields(){return new Set($i(this.formula).map(e=>e.field))}hash(){return`TimeUnit ${Ct(this.formula)}`}assemble(){const e=[];for(const n of $i(this.formula)){const{field:r,as:i,timeUnit:s}=n,o=ki(s),{unit:u,utc:a}=o,l=kue(o,["unit","utc"]);e.push(Object.assign(Object.assign(Object.assign(Object.assign({field:ou(r),type:"timeunit"},u?{units:E8(u)}:{}),a?{timezone:"utc"}:{}),l),{as:[i,`${i}_end`]}))}return e}}var CJe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const h3="_tuple_fields";class bJe{constructor(...e){this.items=e,this.hasChannel={},this.hasField={}}}const TJe={defined:()=>!0,parse:(t,e,n)=>{var r;const i=e.name,s=(r=e.project)!==null&&r!==void 0?r:e.project=new bJe,o={},u={},a=new Set,l=(m,g)=>{const y=g==="visual"?m.channel:m.field;let E=gn(`${i}_${y}`);for(let A=1;a.has(E);A++)E=gn(`${i}_${y}_${A}`);return a.add(E),{[g]:E}},c=e.type,f=t.config.selection[c],x=n.value!==void 0?Pe(n.value):null;let{fields:h,encodings:p}=He(n.select)?n.select:{};if(!h&&!p&&x){for(const m of x)if(He(m))for(const g of Te(m))QWe(g)?(p||(p=[])).push(g):c==="interval"?(Re(bVe),p=f.encodings):(h||(h=[])).push(g)}!h&&!p&&(p=f.encodings,"fields"in f&&(h=f.fields));for(const m of p??[]){const g=t.fieldDef(m);if(g){let y=g.field;if(g.aggregate){Re(mVe(m,g.aggregate));continue}else if(!y){Re(wse(m));continue}if(g.timeUnit){y=t.vgField(m);const E={timeUnit:g.timeUnit,as:y,field:g.field};u[Ct(E)]=E}if(!o[y]){let E="E";if(c==="interval"){const S=t.getScaleComponent(m).get("type");js(S)&&(E="R")}else g.bin&&(E="R-RE");const A={field:y,channel:m,type:E};A.signals=Object.assign(Object.assign({},l(A,"data")),l(A,"visual")),s.items.push(o[y]=A),s.hasField[y]=s.hasChannel[m]=o[y]}}else Re(wse(m))}for(const m of h??[]){if(s.hasField[m])continue;const g={type:"E",field:m};g.signals=Object.assign({},l(g,"data")),s.items.push(g),s.hasField[m]=g}x&&(e.init=x.map(m=>s.items.map(g=>He(m)?m[g.channel]!==void 0?m[g.channel]:m[g.field]:m))),Gt(u)||(s.timeUnit=new La(null,u))},signals:(t,e,n)=>{const r=e.name+h3;return n.filter(s=>s.name===r).length>0?n:n.concat({name:r,value:e.project.items.map(s=>{const o=CJe(s,["signals","hasLegend"]);return o.field=ou(o.field),o})})}},qc={defined:t=>t.type==="interval"&&t.resolve==="global"&&t.bind&&t.bind==="scales",parse:(t,e)=>{const n=e.scales=[];for(const r of e.project.items){const i=r.channel;if(!Lc(i))continue;const s=t.getScaleComponent(i),o=s?s.get("type"):void 0;if(!s||!js(o)){Re(AVe);continue}s.set("selectionExtent",{param:e.name,field:r.field},!0),n.push(r)}},topLevelSignals:(t,e,n)=>{const r=e.scales.filter(o=>n.filter(u=>u.name===o.signals.data).length===0);if(!t.parent||A7(t)||r.length===0)return n;const i=n.filter(o=>o.name===e.name)[0];let s=i.update;if(s.indexOf(iae)>=0)i.update=`{${r.map(o=>`${we(ou(o.field))}: ${o.signals.data}`).join(", ")}}`;else{for(const o of r){const u=`${we(ou(o.field))}: ${o.signals.data}`;s.includes(u)||(s=`${s.substring(0,s.length-1)}, ${u}}`)}i.update=s}return n.concat(r.map(o=>({name:o.signals.data})))},signals:(t,e,n)=>{if(t.parent&&!A7(t))for(const r of e.scales){const i=n.filter(s=>s.name===r.signals.data)[0];i.push="outer",delete i.value,delete i.update}return n}};function E7(t,e){return`domain(${we(t.scaleName(e))})`}function A7(t){var e;return t.parent&&j2(t.parent)&&((e=!t.parent.parent)!==null&&e!==void 0?e:A7(t.parent.parent))}var RJe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const F2="_brush",S7="_scale_trigger",OJe={defined:t=>t.type==="interval",signals:(t,e,n)=>{const r=e.name,i=r+h3,s=qc.defined(e),o=e.init?e.init[0]:null,u=[],a=[];if(e.translate&&!s){const c=`!event.item || event.item.mark.name !== ${we(r+F2)}`;Pue(e,(f,x)=>{var h,p;const m=Pe((h=(p=x.between[0]).filter)!==null&&h!==void 0?h:p.filter=[]);return m.includes(c)||m.push(c),f})}e.project.items.forEach((c,f)=>{const x=c.channel;if(x!==mn&&x!==Er){Re("Interval selections only support x and y encoding channels.");return}const h=o?o[f]:null,p=NJe(t,e,c,h),m=c.signals.data,g=c.signals.visual,y=we(t.scaleName(x)),E=t.getScaleComponent(x).get("type"),A=js(E)?"+":"";n.push(...p),u.push(m),a.push({scaleName:t.scaleName(x),expr:`(!isArray(${m}) || (${A}invert(${y}, ${g})[0] === ${A}${m}[0] && ${A}invert(${y}, ${g})[1] === ${A}${m}[1]))`})}),!s&&a.length&&n.push({name:r+S7,value:{},on:[{events:a.map(c=>({scale:c.scaleName})),update:`${a.map(c=>c.expr).join(" && ")} ? ${r+S7} : {}`}]});const l=`unit: ${L2(t)}, fields: ${i}, values`;return n.concat(Object.assign(Object.assign({name:r+zc},o?{init:`{${l}: ${D2(o)}}`}:{}),u.length?{on:[{events:[{signal:u.join(" || ")}],update:`${u.join(" && ")} ? {${l}: [${u}]} : null`}]}:{}))},marks:(t,e,n)=>{const r=e.name,{x:i,y:s}=e.project.hasChannel,o=i==null?void 0:i.signals.visual,u=s==null?void 0:s.signals.visual,a=`data(${we(e.name+Td)})`;if(qc.defined(e)||!i&&!s)return n;const l={x:i!==void 0?{signal:`${o}[0]`}:{value:0},y:s!==void 0?{signal:`${u}[0]`}:{value:0},x2:i!==void 0?{signal:`${o}[1]`}:{field:{group:"width"}},y2:s!==void 0?{signal:`${u}[1]`}:{field:{group:"height"}}};if(e.resolve==="global")for(const g of Te(l))l[g]=[Object.assign({test:`${a}.length && ${a}[0].unit === ${L2(t)}`},l[g]),{value:0}];const c=e.mark,{fill:f,fillOpacity:x,cursor:h}=c,p=RJe(c,["fill","fillOpacity","cursor"]),m=Te(p).reduce((g,y)=>(g[y]=[{test:[i!==void 0&&`${o}[0] !== ${o}[1]`,s!==void 0&&`${u}[0] !== ${u}[1]`].filter(E=>E).join(" && "),value:p[y]},{value:null}],g),{});return[{name:`${r+F2}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:f},fillOpacity:{value:x}},update:l}},...n,{name:r+F2,type:"rect",clip:!0,encode:{enter:Object.assign(Object.assign({},h?{cursor:{value:h}}:{}),{fill:{value:"transparent"}}),update:Object.assign(Object.assign({},l),m)}}]}};function NJe(t,e,n,r){const i=n.channel,s=n.signals.visual,o=n.signals.data,u=qc.defined(e),a=we(t.scaleName(i)),l=t.getScaleComponent(i),c=l?l.get("type"):void 0,f=m=>`scale(${a}, ${m})`,x=t.getSizeSignalRef(i===mn?"width":"height").signal,h=`${i}(unit)`,p=Pue(e,(m,g)=>[...m,{events:g.between[0],update:`[${h}, ${h}]`},{events:g,update:`[${s}[0], clamp(${h}, 0, ${x})]`}]);return p.push({events:{signal:e.name+S7},update:js(c)?`[${f(`${o}[0]`)}, ${f(`${o}[1]`)}]`:"[0, 0]"}),u?[{name:o,on:[]}]:[Object.assign(Object.assign({name:s},r?{init:D2(r,!0,f)}:{value:[]}),{on:p}),Object.assign(Object.assign({name:o},r?{init:D2(r)}:{}),{on:[{events:{signal:s},update:`${s}[0] === ${s}[1] ? null : invert(${a}, ${s})`}]})]}function Pue(t,e){return t.events.reduce((n,r)=>r.between?e(n,r):(Re(`${r} is not an ordered event stream for interval selections.`),n),[])}const DJe={defined:t=>t.type==="point",signals:(t,e,n)=>{var r;const i=e.name,s=i+h3,o=e.project,u="(item().isVoronoi ? datum.datum : datum)",a=o.items.map(h=>{const p=t.fieldDef(h.channel);return p!=null&&p.bin?`[${u}[${we(t.vgField(h.channel,{}))}], ${u}[${we(t.vgField(h.channel,{binSuffix:"end"}))}]]`:`${u}[${we(h.field)}]`}).join(", "),l=`unit: ${L2(t)}, fields: ${s}, values`,c=e.events,f=$i((r=t.component.selection)!==null&&r!==void 0?r:{}).reduce((h,p)=>p.type==="interval"?h.concat(p.name+F2):h,[]).map(h=>`indexof(item().mark.name, '${h}') < 0`).join(" && "),x=`datum && item().mark.marktype !== 'group'${f?` && ${f}`:""}`;return n.concat([{name:i+zc,on:c?[{events:c,update:`${x} ? {${l}: [${a}]} : null`,force:!0}]:[]}])}};function w2(t,e,n,r){const i=aN(e)&&e.condition,s=r(e);if(i){const u=Pe(i).map(a=>{const l=r(a);if(vXe(a)){const{param:c,empty:f}=a,x=aae(t,{param:c,empty:f});return Object.assign({test:x},l)}else{const c=DN(t,a.test);return Object.assign({test:c},l)}});return{[n]:[...u,...s!==void 0?[s]:[]]}}else return s!==void 0?{[n]:s}:{}}function v7(t,e="text"){const n=t.encoding[e];return w2(t,n,e,r=>bN(r,t.config))}function bN(t,e,n="datum"){if(t){if(fu(t))return sn(t.value);if(st(t)){const{format:r,formatType:i}=fN(t);return P8({fieldOrDatumDef:t,format:r,formatType:i,expr:n,config:e})}}}function Mue(t,e={}){const{encoding:n,markDef:r,config:i,stack:s}=t,o=n.tooltip;if(_e(o))return{tooltip:Uue({tooltip:o},s,i,e)};{const u=e.reactiveGeom?"datum.datum":"datum";return w2(t,o,"tooltip",a=>{const l=bN(a,i,u);if(l)return l;if(a===null)return;let c=$t("tooltip",r,i);if(c===!0&&(c={content:"encoding"}),je(c))return{value:c};if(He(c))return Ye(c)?c:c.content==="encoding"?Uue(n,s,i,e):{signal:u}})}}function jue(t,e,n,{reactiveGeom:r}={}){const i={},s=r?"datum.datum":"datum",o=[];function u(l,c){const f=md(c),x=_o(l)?l:Object.assign(Object.assign({},l),{type:t[f].type}),h=x.title||W8(x,n),p=Pe(h).join(", ");let m;if(Ir(c)){const g=c==="x"?"x2":"y2",y=Da(t[g]);if(Bi(x.bin)&&y){const E=$e(x,{expr:s}),A=$e(y,{expr:s}),{format:S,formatType:v}=fN(x);m=sN(E,A,S,v,n),i[g]=!0}else if(e&&e.fieldChannel===c&&e.offset==="normalize"){const{format:E,formatType:A}=fN(x);m=P8({fieldOrDatumDef:x,format:E,formatType:A,expr:s,config:n,normalizeStack:!0}).signal}}m??(m=bN(x,n,s).signal),o.push({channel:c,key:p,value:m})}K8(t,(l,c)=>{Ie(l)?u(l,c):lN(l)&&u(l.condition,c)});const a={};for(const{channel:l,key:c,value:f}of o)!i[l]&&!a[c]&&(a[c]=f);return a}function Uue(t,e,n,{reactiveGeom:r}={}){const i=jue(t,e,n,{reactiveGeom:r}),s=hd(i).map(([o,u])=>`"${o}": ${u}`);return s.length>0?{signal:`{${s.join(", ")}}`}:void 0}function FJe(t){const{markDef:e,config:n}=t,r=$t("aria",e,n);return r===!1?{}:Object.assign(Object.assign(Object.assign({},r?{aria:r}:{}),wJe(t)),LJe(t))}function wJe(t){const{mark:e,markDef:n,config:r}=t;if(r.aria===!1)return{};const i=$t("ariaRoleDescription",n,r);return i!=null?{ariaRoleDescription:{value:i}}:e in dVe?{}:{ariaRoleDescription:{value:e}}}function LJe(t){const{encoding:e,markDef:n,config:r,stack:i}=t,s=e.description;if(s)return w2(t,s,"description",a=>bN(a,t.config));const o=$t("description",n,r);if(o!=null)return{description:sn(o)};if(r.aria===!1)return{};const u=jue(e,i,r);if(!Gt(u))return{description:{signal:hd(u).map(([a,l],c)=>`"${c>0?"; ":""}${a}: " + (${l})`).join(" + ")}}}function Sr(t,e,n={}){const{markDef:r,encoding:i,config:s}=e,{vgChannel:o}=n;let{defaultRef:u,defaultValue:a}=n;u===void 0&&(a??(a=$t(t,r,s,{vgChannel:o,ignoreVgConfig:!0})),a!==void 0&&(u=sn(a)));const l=i[t];return w2(e,l,o??t,c=>k8({channel:t,channelDef:c,markDef:r,config:s,scaleName:e.scaleName(t),scale:e.getScaleComponent(t),stack:null,defaultRef:u}))}function que(t,e={filled:void 0}){var n,r,i,s;const{markDef:o,encoding:u,config:a}=t,{type:l}=o,c=(n=e.filled)!==null&&n!==void 0?n:$t("filled",o,a),f=bt(["bar","point","circle","square","geoshape"],l)?"transparent":void 0,x=(i=(r=$t(c===!0?"color":void 0,o,a,{vgChannel:"fill"}))!==null&&r!==void 0?r:a.mark[c===!0&&"color"])!==null&&i!==void 0?i:f,h=(s=$t(c===!1?"color":void 0,o,a,{vgChannel:"stroke"}))!==null&&s!==void 0?s:a.mark[c===!1&&"color"],p=c?"fill":"stroke",m=Object.assign(Object.assign({},x?{fill:sn(x)}:{}),h?{stroke:sn(h)}:{});return o.color&&(c?o.fill:o.stroke)&&Re(Pse("property",{fill:"fill"in o,stroke:"stroke"in o})),Object.assign(Object.assign(Object.assign(Object.assign({},m),Sr("color",t,{vgChannel:p,defaultValue:c?x:h})),Sr("fill",t,{defaultValue:u.fill?x:void 0})),Sr("stroke",t,{defaultValue:u.stroke?h:void 0}))}function IJe(t){const{encoding:e,mark:n}=t,r=e.order;return!kc(n)&&fu(r)?w2(t,r,"zindex",i=>sn(i.value)):{}}function p3({channel:t,markDef:e,encoding:n={},model:r,bandPosition:i}){const s=`${t}Offset`,o=e[s],u=n[s];if((s==="xOffset"||s==="yOffset")&&u)return{offsetType:"encoding",offset:k8({channel:s,channelDef:u,markDef:e,config:r==null?void 0:r.config,scaleName:r.scaleName(s),scale:r.getScaleComponent(s),stack:null,defaultRef:sn(o),bandPosition:i})};const a=e[s];return a?{offsetType:"visual",offset:a}:{}}function ii(t,e,{defaultPos:n,vgChannel:r}){const{encoding:i,markDef:s,config:o,stack:u}=e,a=i[t],l=i[Yl(t)],c=e.scaleName(t),f=e.getScaleComponent(t),{offset:x,offsetType:h}=p3({channel:t,markDef:s,encoding:i,model:e,bandPosition:.5}),p=_7({model:e,defaultPos:n,channel:t,scaleName:c,scale:f}),m=!a&&Ir(t)&&(i.latitude||i.longitude)?{field:e.getName(t)}:$Je({channel:t,channelDef:a,channel2Def:l,markDef:s,config:o,scaleName:c,scale:f,stack:u,offset:x,defaultRef:p,bandPosition:h==="encoding"?0:void 0});return m?{[r||t]:m}:void 0}function $Je(t){const{channel:e,channelDef:n,scaleName:r,stack:i,offset:s,markDef:o}=t;if(st(n)&&i&&e===i.fieldChannel){if(Ie(n)){let u=n.bandPosition;if(u===void 0&&o.type==="text"&&(e==="radius"||e==="theta")&&(u=.5),u!==void 0)return iN({scaleName:r,fieldOrDatumDef:n,startSuffix:"start",bandPosition:u,offset:s})}return vd(n,r,{suffix:"end"},{offset:s})}return $8(t)}function _7({model:t,defaultPos:e,channel:n,scaleName:r,scale:i}){const{markDef:s,config:o}=t;return()=>{const u=md(n),a=wc(n),l=$t(n,s,o,{vgChannel:a});if(l!==void 0)return u3(n,l);switch(e){case"zeroOrMin":case"zeroOrMax":if(r){const c=i.get("type");if(!bt([ds.LOG,ds.TIME,ds.UTC],c)){if(i.domainDefinitelyIncludesZero())return{scale:r,value:0}}}if(e==="zeroOrMin")return u==="y"?{field:{group:"height"}}:{value:0};switch(u){case"radius":return{signal:`min(${t.width.signal},${t.height.signal})/2`};case"theta":return{signal:"2*PI"};case"x":return{field:{group:"width"}};case"y":return{value:0}}break;case"mid":{const c=t[fs(n)];return Object.assign(Object.assign({},c),{mult:.5})}}}}const BJe={left:"x",center:"xc",right:"x2"},kJe={top:"y",middle:"yc",bottom:"y2"};function Hue(t,e,n,r="middle"){if(t==="radius"||t==="theta")return wc(t);const i=t==="x"?"align":"baseline",s=$t(i,e,n);let o;return Ye(s)?(Re(GVe(i)),o=void 0):o=s,t==="x"?BJe[o||(r==="top"?"left":"center")]:kJe[o||r]}function TN(t,e,{defaultPos:n,defaultPos2:r,range:i}){return i?zue(t,e,{defaultPos:n,defaultPos2:r}):ii(t,e,{defaultPos:n})}function zue(t,e,{defaultPos:n,defaultPos2:r}){const{markDef:i,config:s}=e,o=Yl(t),u=fs(t),a=PJe(e,r,o),l=a[u]?Hue(t,i,s):wc(t);return Object.assign(Object.assign({},ii(t,e,{defaultPos:n,vgChannel:l})),a)}function PJe(t,e,n){const{encoding:r,mark:i,markDef:s,stack:o,config:u}=t,a=md(n),l=fs(n),c=wc(n),f=r[a],x=t.scaleName(a),h=t.getScaleComponent(a),{offset:p}=n in r||n in s?p3({channel:n,markDef:s,encoding:r,model:t}):p3({channel:a,markDef:s,encoding:r,model:t});if(!f&&(n==="x2"||n==="y2")&&(r.latitude||r.longitude)){const g=fs(n),y=t.markDef[g];return y!=null?{[g]:{value:y}}:{[c]:{field:t.getName(n)}}}const m=MJe({channel:n,channelDef:f,channel2Def:r[n],markDef:s,config:u,scaleName:x,scale:h,stack:o,offset:p,defaultRef:void 0});return m!==void 0?{[c]:m}:RN(n,s)||RN(n,{[n]:XO(n,s,u.style),[l]:XO(l,s,u.style)})||RN(n,u[i])||RN(n,u.mark)||{[c]:_7({model:t,defaultPos:e,channel:n,scaleName:x,scale:h})()}}function MJe({channel:t,channelDef:e,channel2Def:n,markDef:r,config:i,scaleName:s,scale:o,stack:u,offset:a,defaultRef:l}){return st(e)&&u&&t.charAt(0)===u.fieldChannel.charAt(0)?vd(e,s,{suffix:"start"},{offset:a}):$8({channel:t,channelDef:n,scaleName:s,scale:o,stack:u,markDef:r,config:i,offset:a,defaultRef:l})}function RN(t,e){const n=fs(t),r=wc(t);if(e[r]!==void 0)return{[r]:u3(t,e[r])};if(e[t]!==void 0)return{[r]:u3(t,e[t])};if(e[n]){const i=e[n];if(C2(i))Re(MVe(n));else return{[n]:u3(t,i)}}}function Hc(t,e){var n,r;const{config:i,encoding:s,markDef:o}=t,u=o.type,a=Yl(e),l=fs(e),c=s[e],f=s[a],x=t.getScaleComponent(e),h=x?x.get("type"):void 0,p=o.orient,m=(r=(n=s[l])!==null&&n!==void 0?n:s.size)!==null&&r!==void 0?r:$t("size",o,i,{vgChannel:l}),g=u==="bar"&&(e==="x"?p==="vertical":p==="horizontal");return Ie(c)&&(Xt(c.bin)||Bi(c.bin)||c.timeUnit&&!f)&&!(m&&!C2(m))&&!Ar(h)?qJe({fieldDef:c,fieldDef2:f,channel:e,model:t}):(st(c)&&Ar(h)||g)&&!f?UJe(c,e,t):zue(e,t,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}function jJe(t,e,n,r,i){if(C2(i))if(n){const o=n.get("type");if(o==="band")return{scale:e,band:i.band};i.band!==1&&(Re(XVe(o)),i=void 0)}else return{mult:i.band,field:{group:t}};else{if(Ye(i))return i;if(i)return{value:i}}if(n){const o=n.get("range");if(Bc(o)&&tn(o.step))return{value:o.step-2}}return{value:SN(r.view,t)-2}}function UJe(t,e,n){const{markDef:r,encoding:i,config:s,stack:o}=n,u=r.orient,a=n.scaleName(e),l=n.getScaleComponent(e),c=fs(e),f=Yl(e),x=WWe(e),h=n.scaleName(x),p=u==="horizontal"&&e==="y"||u==="vertical"&&e==="x";let m;(i.size||r.size)&&(p?m=Sr("size",n,{vgChannel:c,defaultRef:sn(r.size)}):Re(eYe(r.type)));const g=boe({channel:e,fieldDef:t,markDef:r,config:s,scaleType:l==null?void 0:l.get("type"),useVlSizeChannel:p});m=m||{[c]:jJe(c,h||a,l,s,g)};const y=(l==null?void 0:l.get("type"))!=="band"||!("band"in m[c])?"middle":"top",E=Hue(e,r,s,y),A=E==="xc"||E==="yc",{offset:S,offsetType:v}=p3({channel:e,markDef:r,encoding:i,model:n,bandPosition:A?.5:0}),_=$8({channel:e,channelDef:t,markDef:r,config:s,scaleName:a,scale:l,stack:o,offset:S,defaultRef:_7({model:n,defaultPos:"mid",channel:e,scaleName:a,scale:l}),bandPosition:A?v==="encoding"?0:.5:Ye(g)?{signal:`(1-${g})/2`}:C2(g)?(1-g.band)/2:0});if(c)return Object.assign({[E]:_},m);{const C=wc(f),b=m[c],R=S?Object.assign(Object.assign({},b),{offset:S}):b;return{[E]:_,[C]:_e(_)?[_[0],Object.assign(Object.assign({},_[1]),{offset:R})]:Object.assign(Object.assign({},_),{offset:R})}}}function g3(t,e,n,r,i){if(ose(t))return 0;const s=t==="x"||t==="y2"?-e/2:e/2;if(Ye(n)||Ye(i)||Ye(r)){const o=Jl(n),u=Jl(i),a=Jl(r),l=a?`${a} + `:"",c=o?`(${o} ? -1 : 1) * `:"",f=u?`(${u} + ${s})`:s;return{signal:l+c+f}}else return i=i||0,r+(n?-i-s:+i+s)}function qJe({fieldDef:t,fieldDef2:e,channel:n,model:r}){var i,s,o;const{config:u,markDef:a,encoding:l}=r,c=r.getScaleComponent(n),f=r.scaleName(n),x=c?c.get("type"):void 0,h=c.get("reverse"),p=boe({channel:n,fieldDef:t,markDef:a,config:u,scaleType:x}),m=(i=r.component.axes[n])===null||i===void 0?void 0:i[0],g=(s=m==null?void 0:m.get("translate"))!==null&&s!==void 0?s:.5,y=Ir(n)&&(o=$t("binSpacing",a,u))!==null&&o!==void 0?o:0,E=Yl(n),A=wc(n),S=wc(E),{offset:v}=p3({channel:n,markDef:a,encoding:l,model:r,bandPosition:0}),_=Ye(p)?{signal:`(1-${p.signal})/2`}:C2(p)?(1-p.band)/2:.5;if(Xt(t.bin)||t.timeUnit)return{[S]:Que({fieldDef:t,scaleName:f,bandPosition:_,offset:g3(E,y,h,g,v)}),[A]:Que({fieldDef:t,scaleName:f,bandPosition:Ye(_)?{signal:`1-${_.signal}`}:1-_,offset:g3(n,y,h,g,v)})};if(Bi(t.bin)){const C=vd(t,f,{},{offset:g3(E,y,h,g,v)});if(Ie(e))return{[S]:C,[A]:vd(e,f,{},{offset:g3(n,y,h,g,v)})};if(yd(t.bin)&&t.bin.step)return{[S]:C,[A]:{signal:`scale("${f}", ${$e(t,{expr:"datum"})} + ${t.bin.step})`,offset:g3(n,y,h,g,v)}}}Re(Hse(E))}function Que({fieldDef:t,scaleName:e,bandPosition:n,offset:r}){return iN({scaleName:e,fieldOrDatumDef:t,bandPosition:n,offset:r})}const HJe=new Set(["aria","width","height"]);function Co(t,e){const{fill:n=void 0,stroke:r=void 0}=e.color==="include"?que(t):{};return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},zJe(t.markDef,e)),Gue(t,"fill",n)),Gue(t,"stroke",r)),Sr("opacity",t)),Sr("fillOpacity",t)),Sr("strokeOpacity",t)),Sr("strokeWidth",t)),Sr("strokeDash",t)),IJe(t)),Mue(t)),v7(t,"href")),FJe(t))}function Gue(t,e,n){const{config:r,mark:i,markDef:s}=t;if($t("invalid",s,r)==="hide"&&n&&!kc(i)){const u=QJe(t,{invalid:!0,channels:VO});if(u)return{[e]:[{test:u,value:null},...Pe(n)]}}return n?{[e]:n}:{}}function zJe(t,e){return xVe.reduce((n,r)=>(!HJe.has(r)&&t[r]!==void 0&&e[r]!=="ignore"&&(n[r]=sn(t[r])),n),{})}function QJe(t,{invalid:e=!1,channels:n}){const r=n.reduce((s,o)=>{const u=t.getScaleComponent(o);if(u){const a=u.get("type"),l=t.vgField(o,{expr:"datum"});l&&js(a)&&(s[l]=!0)}return s},{}),i=Te(r);if(i.length>0){const s=e?"||":"&&";return i.map(o=>B8(o,e)).join(` ${s} `)}}function C7(t){const{config:e,markDef:n}=t;if($t("invalid",n,e)){const i=GJe(t,{channels:Ca});if(i)return{defined:{signal:i}}}return{}}function GJe(t,{invalid:e=!1,channels:n}){const r=n.reduce((s,o)=>{const u=t.getScaleComponent(o);if(u){const a=u.get("type"),l=t.vgField(o,{expr:"datum"});l&&js(a)&&(s[l]=!0)}return s},{}),i=Te(r);if(i.length>0){const s=e?"||":"&&";return i.map(o=>B8(o,e)).join(` ${s} `)}}function Wue(t,e){if(e!==void 0)return{[t]:sn(e)}}const b7="voronoi",Vue={defined:t=>t.type==="point"&&t.nearest,parse:(t,e)=>{if(e.events)for(const n of e.events)n.markname=t.getName(b7)},marks:(t,e,n)=>{const{x:r,y:i}=e.project.hasChannel,s=t.mark;if(kc(s))return Re(yVe(s)),n;const o={name:t.getName(b7),type:"path",interactive:!0,from:{data:t.getName("marks")},encode:{update:Object.assign({fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0}},Mue(t,{reactiveGeom:!0}))},transform:[{type:"voronoi",x:{expr:r||!i?"datum.datum.x || 0":"0"},y:{expr:i||!r?"datum.datum.y || 0":"0"},size:[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]}]};let u=0,a=!1;return n.forEach((l,c)=>{var f;const x=(f=l.name)!==null&&f!==void 0?f:"";x===t.component.mark[0].name?u=c:x.indexOf(b7)>=0&&(a=!0)}),a||n.splice(u+1,0,o),n}},Yue={defined:t=>t.type==="point"&&t.resolve==="global"&&t.bind&&t.bind!=="scales"&&!i7(t.bind),parse:(t,e,n)=>sae(e,n),topLevelSignals:(t,e,n)=>{const r=e.name,i=e.project,s=e.bind,o=e.init&&e.init[0],u=Vue.defined(e)?"(item().isVoronoi ? datum.datum : datum)":"datum";return i.items.forEach((a,l)=>{var c,f;const x=gn(`${r}_${a.field}`);n.filter(p=>p.name===x).length||n.unshift(Object.assign(Object.assign({name:x},o?{init:D2(o[l])}:{value:null}),{on:e.events?[{events:e.events,update:`datum && item().mark.marktype !== 'group' ? ${u}[${we(a.field)}] : null`}]:[],bind:(f=(c=s[a.field])!==null&&c!==void 0?c:s[a.channel])!==null&&f!==void 0?f:s}))}),n},signals:(t,e,n)=>{const r=e.name,i=e.project,s=n.filter(l=>l.name===r+zc)[0],o=r+h3,u=i.items.map(l=>gn(`${r}_${l.field}`)),a=u.map(l=>`${l} !== null`).join(" && ");return u.length&&(s.update=`${a} ? {fields: ${o}, values: [${u.join(", ")}]} : null`),delete s.value,delete s.on,n}},ON="_toggle",Xue={defined:t=>t.type==="point"&&!!t.toggle,signals:(t,e,n)=>n.concat({name:e.name+ON,value:!1,on:[{events:e.events,update:e.toggle}]}),modifyExpr:(t,e)=>{const n=e.name+zc,r=e.name+ON;return`${r} ? null : ${n}, `+(e.resolve==="global"?`${r} ? null : true, `:`${r} ? null : {unit: ${L2(t)}}, `)+`${r} ? ${n} : null`}},WJe={defined:t=>t.clear!==void 0&&t.clear!==!1,parse:(t,e)=>{e.clear&&(e.clear=je(e.clear)?ad(e.clear,"view"):e.clear)},topLevelSignals:(t,e,n)=>{if(Yue.defined(e))for(const r of e.project.items){const i=n.findIndex(s=>s.name===gn(`${e.name}_${r.field}`));i!==-1&&n[i].on.push({events:e.clear,update:"null"})}return n},signals:(t,e,n)=>{function r(i,s){i!==-1&&n[i].on&&n[i].on.push({events:e.clear,update:s})}if(e.type==="interval")for(const i of e.project.items){const s=n.findIndex(o=>o.name===i.signals.visual);if(r(s,"[0, 0]"),s===-1){const o=n.findIndex(u=>u.name===i.signals.data);r(o,"null")}}else{let i=n.findIndex(s=>s.name===e.name+zc);r(i,"null"),Xue.defined(e)&&(i=n.findIndex(s=>s.name===e.name+ON),r(i,"false"))}return n}},Kue={defined:t=>{const e=t.resolve==="global"&&t.bind&&i7(t.bind),n=t.project.items.length===1&&t.project.items[0].field!==x3;return e&&!n&&Re(SVe),e&&n},parse:(t,e,n)=>{var r;const i=ut(n);if(i.select=je(i.select)?{type:i.select,toggle:e.toggle}:Object.assign(Object.assign({},i.select),{toggle:e.toggle}),sae(e,i),He(n.select)&&(n.select.on||n.select.clear)){const u='event.item && indexof(event.item.mark.role, "legend") < 0';for(const a of e.events)a.filter=Pe((r=a.filter)!==null&&r!==void 0?r:[]),a.filter.includes(u)||a.filter.push(u)}const s=s7(e.bind)?e.bind.legend:"click",o=je(s)?ad(s,"view"):Pe(s);e.bind={legend:{merge:o}}},topLevelSignals:(t,e,n)=>{const r=e.name,i=s7(e.bind)&&e.bind.legend,s=o=>u=>{const a=ut(u);return a.markname=o,a};for(const o of e.project.items){if(!o.hasLegend)continue;const u=`${gn(o.field)}_legend`,a=`${r}_${u}`;if(n.filter(c=>c.name===a).length===0){const c=i.merge.map(s(`${u}_symbols`)).concat(i.merge.map(s(`${u}_labels`))).concat(i.merge.map(s(`${u}_entries`)));n.unshift(Object.assign(Object.assign({name:a},e.init?{}:{value:null}),{on:[{events:c,update:"datum.value || item().items[0].items[0].datum.value",force:!0},{events:i.merge,update:`!event.item || !datum ? null : ${a}`,force:!0}]}))}}return n},signals:(t,e,n)=>{const r=e.name,i=e.project,s=n.find(x=>x.name===r+zc),o=r+h3,u=i.items.filter(x=>x.hasLegend).map(x=>gn(`${r}_${gn(x.field)}_legend`)),l=`${u.map(x=>`${x} !== null`).join(" && ")} ? {fields: ${o}, values: [${u.join(", ")}]} : null`;e.events&&u.length>0?s.on.push({events:u.map(x=>({signal:x})),update:l}):u.length>0&&(s.update=l,delete s.value,delete s.on);const c=n.find(x=>x.name===r+ON),f=s7(e.bind)&&e.bind.legend;return c&&(e.events?c.on.push(Object.assign(Object.assign({},c.on[0]),{events:f})):c.on[0].events=f),n}};function VJe(t,e,n){var r,i,s,o;const u=(r=t.fieldDef(e))===null||r===void 0?void 0:r.field;for(const a of $i((i=t.component.selection)!==null&&i!==void 0?i:{})){const l=(s=a.project.hasField[u])!==null&&s!==void 0?s:a.project.hasChannel[e];if(l&&Kue.defined(a)){const c=(o=n.get("selections"))!==null&&o!==void 0?o:[];c.push(a.name),n.set("selections",c,!1),l.hasLegend=!0}}}const Jue="_translate_anchor",Zue="_translate_delta",YJe={defined:t=>t.type==="interval"&&t.translate,signals:(t,e,n)=>{const r=e.name,i=qc.defined(e),s=r+Jue,{x:o,y:u}=e.project.hasChannel;let a=ad(e.translate,"scope");return i||(a=a.map(l=>(l.between[0].markname=r+F2,l))),n.push({name:s,value:{},on:[{events:a.map(l=>l.between[0]),update:"{x: x(unit), y: y(unit)"+(o!==void 0?`, extent_x: ${i?E7(t,mn):`slice(${o.signals.visual})`}`:"")+(u!==void 0?`, extent_y: ${i?E7(t,Er):`slice(${u.signals.visual})`}`:"")+"}"}]},{name:r+Zue,value:{},on:[{events:a,update:`{x: ${s}.x - x(unit), y: ${s}.y - y(unit)}`}]}),o!==void 0&&eae(t,e,o,"width",n),u!==void 0&&eae(t,e,u,"height",n),n}};function eae(t,e,n,r,i){var s,o;const u=e.name,a=u+Jue,l=u+Zue,c=n.channel,f=qc.defined(e),x=i.filter(C=>C.name===n.signals[f?"data":"visual"])[0],h=t.getSizeSignalRef(r).signal,p=t.getScaleComponent(c),m=p.get("type"),g=p.get("reverse"),y=f?c===mn?g?"":"-":g?"-":"":"",E=`${a}.extent_${c}`,A=`${y}${l}.${c} / ${f?`${h}`:`span(${E})`}`,S=f?m==="log"?"panLog":m==="symlog"?"panSymlog":m==="pow"?"panPow":"panLinear":"panLinear",v=f?m==="pow"?`, ${(s=p.get("exponent"))!==null&&s!==void 0?s:1}`:m==="symlog"?`, ${(o=p.get("constant"))!==null&&o!==void 0?o:1}`:"":"",_=`${S}(${E}, ${A}${v})`;x.on.push({events:{signal:l},update:f?_:`clampRange(${_}, 0, ${h})`})}const tae="_zoom_anchor",nae="_zoom_delta",XJe={defined:t=>t.type==="interval"&&t.zoom,signals:(t,e,n)=>{const r=e.name,i=qc.defined(e),s=r+nae,{x:o,y:u}=e.project.hasChannel,a=we(t.scaleName(mn)),l=we(t.scaleName(Er));let c=ad(e.zoom,"scope");return i||(c=c.map(f=>(f.markname=r+F2,f))),n.push({name:r+tae,on:[{events:c,update:i?"{"+[a?`x: invert(${a}, x(unit))`:"",l?`y: invert(${l}, y(unit))`:""].filter(f=>!!f).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:s,on:[{events:c,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),o!==void 0&&rae(t,e,o,"width",n),u!==void 0&&rae(t,e,u,"height",n),n}};function rae(t,e,n,r,i){var s,o;const u=e.name,a=n.channel,l=qc.defined(e),c=i.filter(S=>S.name===n.signals[l?"data":"visual"])[0],f=t.getSizeSignalRef(r).signal,x=t.getScaleComponent(a),h=x.get("type"),p=l?E7(t,a):c.name,m=u+nae,g=`${u}${tae}.${a}`,y=l?h==="log"?"zoomLog":h==="symlog"?"zoomSymlog":h==="pow"?"zoomPow":"zoomLinear":"zoomLinear",E=l?h==="pow"?`, ${(s=x.get("exponent"))!==null&&s!==void 0?s:1}`:h==="symlog"?`, ${(o=x.get("constant"))!==null&&o!==void 0?o:1}`:"":"",A=`${y}(${p}, ${g}, ${m}${E})`;c.on.push({events:{signal:m},update:l?A:`clampRange(${A}, 0, ${f})`})}const Td="_store",zc="_tuple",KJe="_modify",iae="vlSelectionResolve",NN=[DJe,OJe,TJe,Xue,Yue,qc,Kue,WJe,YJe,XJe,Vue];function JJe(t){let e=t.parent;for(;e&&!hu(e);)e=e.parent;return e}function L2(t,{escape:e}={escape:!0}){let n=e?we(t.name):t.name;const r=JJe(t);if(r){const{facet:i}=r;for(const s of vo)i[s]&&(n+=` + '__facet_${s}_' + (facet[${we(r.vgField(s))}])`)}return n}function T7(t){var e;return $i((e=t.component.selection)!==null&&e!==void 0?e:{}).reduce((n,r)=>n||r.project.items.some(i=>i.field===x3),!1)}function sae(t,e){(je(e.select)||!e.select.on)&&delete t.events,(je(e.select)||!e.select.clear)&&delete t.clear,(je(e.select)||!e.select.toggle)&&delete t.toggle}function R7(t){const e=[];return t.type==="Identifier"?[t.name]:t.type==="Literal"?[t.value]:(t.type==="MemberExpression"&&(e.push(...R7(t.object)),e.push(...R7(t.property))),e)}function oae(t){return t.object.type==="MemberExpression"?oae(t.object):t.object.name==="datum"}function uae(t){const e=Zne(t),n=new Set;return e.visit(r=>{r.type==="MemberExpression"&&oae(r)&&n.add(R7(r).slice(1).join("."))}),n}class I2 extends jt{constructor(e,n,r){super(e),this.model=n,this.filter=r,this.expr=DN(this.model,this.filter,this),this._dependentFields=uae(this.expr)}clone(){return new I2(null,this.model,ut(this.filter))}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function ZJe(t,e){var n;const r={},i=t.config.selection;if(!e||!e.length)return r;for(const s of e){const o=gn(s.name),u=s.select,a=je(u)?u:u.type,l=He(u)?ut(u):{type:a},c=i[a];for(const x in c)x==="fields"||x==="encodings"||(x==="mark"&&(l[x]=Object.assign(Object.assign({},c[x]),l[x])),(l[x]===void 0||l[x]===!0)&&(l[x]=(n=c[x])!==null&&n!==void 0?n:l[x]));const f=r[o]=Object.assign(Object.assign({},l),{name:o,type:a,init:s.value,bind:s.bind,events:je(l.on)?ad(l.on,"scope"):Pe(ut(l.on))});for(const x of NN)x.defined(f)&&x.parse&&x.parse(t,f,s)}return r}function aae(t,e,n,r="datum"){const i=je(e)?e:e.param,s=gn(i),o=we(s+Td);let u;try{u=t.getSelectionComponent(s,i)}catch{return`!!${s}`}if(u.project.timeUnit){const c=n??t.component.data.raw,f=u.project.timeUnit.clone();c.parent?f.insertAsParentOf(c):c.parent=f}const a=`vlSelectionTest(${o}, ${r}${u.resolve==="global"?")":`, ${we(u.resolve)})`}`,l=`length(data(${o}))`;return e.empty===!1?`${l} && ${a}`:`!${l} || ${a}`}function lae(t,e,n){const r=gn(e),i=n.encoding;let s=n.field,o;try{o=t.getSelectionComponent(r,e)}catch{return r}if(!i&&!s)s=o.project.items[0].field,o.project.items.length>1&&Re(`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${we(s)}.`);else if(i&&!s){const u=o.project.items.filter(a=>a.channel===i);!u.length||u.length>1?(s=o.project.items[0].field,Re((u.length?"Multiple ":"No ")+`matching ${we(i)} encoding found for selection ${we(n.param)}. Using "field": ${we(s)}.`)):s=u[0].field}return`${o.name}[${we(ou(s))}]`}function eZe(t,e){var n;for(const[r,i]of hd((n=t.component.selection)!==null&&n!==void 0?n:{})){const s=t.getName(`lookup_${r}`);t.component.data.outputNodes[s]=i.materialized=new Mi(new I2(e,t,{param:r}),s,Kt.Lookup,t.component.data.outputNodeRefCounts)}}function DN(t,e,n){return MO(e,r=>je(r)?r:BYe(r)?aae(t,r,n):Kse(r))}var FN=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function tZe(t,e){if(t)return _e(t)&&!$c(t)?t.map(n=>W8(n,e)).join(", "):t}function O7(t,e,n,r){var i,s,o,u,a;(i=t.encode)!==null&&i!==void 0||(t.encode={}),(s=(u=t.encode)[e])!==null&&s!==void 0||(u[e]={}),(o=(a=t.encode[e]).update)!==null&&o!==void 0||(a.update={}),t.encode[e].update[n]=r}function m3(t,e,n,r={header:!1}){var i,s;const o=t.combine(),{disable:u,orient:a,scale:l,labelExpr:c,title:f,zindex:x}=o,h=FN(o,["disable","orient","scale","labelExpr","title","zindex"]);if(!u){for(const p in h){const m=BXe[p],g=h[p];if(m&&m!==e&&m!=="both")delete h[p];else if(f3(g)){const{condition:y}=g,E=FN(g,["condition"]),A=Pe(y),S=Ioe[p];if(S){const{vgProp:v,part:_}=S,C=[...A.map(b=>{const{test:R}=b,O=FN(b,["test"]);return Object.assign({test:DN(null,R)},O)}),E];O7(h,_,v,C),delete h[p]}else if(S===null){const v={signal:A.map(_=>{const{test:C}=_,b=FN(_,["test"]);return`${DN(null,C)} ? ${vse(b)} : `}).join("")+vse(E)};h[p]=v}}else if(Ye(g)){const y=Ioe[p];if(y){const{vgProp:E,part:A}=y;O7(h,A,E,g),delete h[p]}}bt(["labelAlign","labelBaseline"],p)&&h[p]===null&&delete h[p]}if(e==="grid"){if(!h.grid)return;if(h.encode){const{grid:p}=h.encode;h.encode=Object.assign({},p?{grid:p}:{}),Gt(h.encode)&&delete h.encode}return Object.assign(Object.assign({scale:l,orient:a},h),{domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:nr(x,0)})}else{if(!r.header&&t.mainExtracted)return;if(c!==void 0){let m=c;!((s=(i=h.encode)===null||i===void 0?void 0:i.labels)===null||s===void 0)&&s.update&&Ye(h.encode.labels.update.text)&&(m=g2(c,"datum.label",h.encode.labels.update.text.signal)),O7(h,"labels","text",{signal:m})}if(h.labelAlign===null&&delete h.labelAlign,h.encode){for(const m of $oe)t.hasAxisPart(m)||delete h.encode[m];Gt(h.encode)&&delete h.encode}const p=tZe(f,n);return Object.assign(Object.assign(Object.assign(Object.assign({scale:l,orient:a,grid:!1},p?{title:p}:{}),h),n.aria===!1?{aria:!1}:{}),{zindex:nr(x,0)})}}}function cae(t){const{axes:e}=t.component,n=[];for(const r of Ca)if(e[r]){for(const i of e[r])if(!i.get("disable")&&!i.get("gridScale")){const s=r==="x"?"height":"width",o=t.getSizeSignalRef(s).signal;s!==o&&n.push({name:s,update:o})}}return n}function nZe(t,e){const{x:n=[],y:r=[]}=t;return[...n.map(i=>m3(i,"grid",e)),...r.map(i=>m3(i,"grid",e)),...n.map(i=>m3(i,"main",e)),...r.map(i=>m3(i,"main",e))].filter(i=>i)}function fae(t,e,n,r){return Object.assign.apply(null,[{},...t.map(i=>{if(i==="axisOrient"){const s=n==="x"?"bottom":"left",o=e[n==="x"?"axisBottom":"axisLeft"]||{},u=e[n==="x"?"axisTop":"axisRight"]||{},a=new Set([...Te(o),...Te(u)]),l={};for(const c of a.values())l[c]={signal:`${r.signal} === "${s}" ? ${Jl(o[c])} : ${Jl(u[c])}`};return l}return e[i]})])}function rZe(t,e,n,r){const i=e==="band"?["axisDiscrete","axisBand"]:e==="point"?["axisDiscrete","axisPoint"]:noe(e)?["axisQuantitative"]:e==="time"||e==="utc"?["axisTemporal"]:[],s=t==="x"?"axisX":"axisY",o=Ye(n)?"axisOrient":`axis${jO(n)}`,u=[...i,...i.map(l=>s+l.substr(4))],a=["axis",o,s];return{vlOnlyAxisConfig:fae(u,r,t,n),vgAxisConfig:fae(a,r,t,n),axisConfigStyle:iZe([...a,...u],r)}}function iZe(t,e){var n;const r=[{}];for(const i of t){let s=(n=e[i])===null||n===void 0?void 0:n.style;if(s){s=Pe(s);for(const o of s)r.push(e.style[o])}}return Object.assign.apply(null,r)}function N7(t,e,n,r={}){var i;const s=Cse(t,n,e);if(s!==void 0)return{configFrom:"style",configValue:s};for(const o of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(((i=r[o])===null||i===void 0?void 0:i[t])!==void 0)return{configFrom:o,configValue:r[o][t]};return{}}const xae={scale:({model:t,channel:e})=>t.scaleName(e),format:({fieldOrDatumDef:t,config:e,axis:n})=>{const{format:r,formatType:i}=n;return poe(t,t.type,r,i,e,!0)},formatType:({axis:t,fieldOrDatumDef:e,scaleType:n})=>{const{formatType:r}=t;return goe(r,e,n)},grid:({fieldOrDatumDef:t,axis:e,scaleType:n})=>{var r;return(r=e.grid)!==null&&r!==void 0?r:sZe(n,t)},gridScale:({model:t,channel:e})=>oZe(t,e),labelAlign:({axis:t,labelAngle:e,orient:n,channel:r})=>t.labelAlign||hae(e,n,r),labelAngle:({labelAngle:t})=>t,labelBaseline:({axis:t,labelAngle:e,orient:n,channel:r})=>t.labelBaseline||dae(e,n,r),labelFlush:({axis:t,fieldOrDatumDef:e,channel:n})=>{var r;return(r=t.labelFlush)!==null&&r!==void 0?r:aZe(e.type,n)},labelOverlap:({axis:t,fieldOrDatumDef:e,scaleType:n})=>{var r;return(r=t.labelOverlap)!==null&&r!==void 0?r:lZe(e.type,n,Ie(e)&&!!e.timeUnit,Ie(e)?e.sort:void 0)},orient:({orient:t})=>t,tickCount:({channel:t,model:e,axis:n,fieldOrDatumDef:r,scaleType:i})=>{var s;const o=t==="x"?"width":t==="y"?"height":void 0,u=o?e.getSizeSignalRef(o):void 0;return(s=n.tickCount)!==null&&s!==void 0?s:fZe({fieldOrDatumDef:r,scaleType:i,size:u,values:n.values})},title:({axis:t,model:e,channel:n})=>{if(t.title!==void 0)return t.title;const r=pae(e,n);if(r!==void 0)return r;const i=e.typedFieldDef(n),s=n==="x"?"x2":"y2",o=e.fieldDef(s);return Tse(i?[_oe(i)]:[],Ie(o)?[_oe(o)]:[])},values:({axis:t,fieldOrDatumDef:e})=>xZe(t,e),zindex:({axis:t,fieldOrDatumDef:e,mark:n})=>{var r;return(r=t.zindex)!==null&&r!==void 0?r:dZe(n,e)}};function sZe(t,e){return!Ar(t)&&Ie(e)&&!Xt(e==null?void 0:e.bin)&&!Bi(e==null?void 0:e.bin)}function oZe(t,e){const n=e==="x"?"y":"x";if(t.getScaleComponent(n))return t.scaleName(n)}function uZe(t,e,n,r,i){const s=e==null?void 0:e.labelAngle;if(s!==void 0)return Ye(s)?s:UO(s);{const{configValue:o}=N7("labelAngle",r,e==null?void 0:e.style,i);return o!==void 0?UO(o):n===mn&&bt([N8,O8],t.type)&&!(Ie(t)&&t.timeUnit)?270:void 0}}function D7(t){return`(((${t.signal} % 360) + 360) % 360)`}function dae(t,e,n,r){if(t!==void 0)if(n==="x"){if(Ye(t)){const i=D7(t),s=Ye(e)?`(${e.signal} === "top")`:e==="top";return{signal:`(45 < ${i} && ${i} < 135) || (225 < ${i} && ${i} < 315) ? "middle" :(${i} <= 45 || 315 <= ${i}) === ${s} ? "bottom" : "top"`}}if(45<t&&t<135||225<t&&t<315)return"middle";if(Ye(e)){const i=t<=45||315<=t?"===":"!==";return{signal:`${e.signal} ${i} "top" ? "bottom" : "top"`}}return(t<=45||315<=t)==(e==="top")?"bottom":"top"}else{if(Ye(t)){const i=D7(t),s=Ye(e)?`(${e.signal} === "left")`:e==="left";return{signal:`${i} <= 45 || 315 <= ${i} || (135 <= ${i} && ${i} <= 225) ? ${r?'"middle"':"null"} : (45 <= ${i} && ${i} <= 135) === ${s} ? "top" : "bottom"`}}if(t<=45||315<=t||135<=t&&t<=225)return r?"middle":null;if(Ye(e)){const i=45<=t&&t<=135?"===":"!==";return{signal:`${e.signal} ${i} "left" ? "top" : "bottom"`}}return(45<=t&&t<=135)==(e==="left")?"top":"bottom"}}function hae(t,e,n){if(t===void 0)return;const r=n==="x",i=r?0:90,s=r?"bottom":"left";if(Ye(t)){const o=D7(t),u=Ye(e)?`(${e.signal} === "${s}")`:e===s;return{signal:`(${i?`(${o} + 90)`:o} % 180 === 0) ? ${r?null:'"center"'} :(${i} < ${o} && ${o} < ${180+i}) === ${u} ? "left" : "right"`}}if((t+i)%180===0)return r?null:"center";if(Ye(e)){const o=i<t&&t<180+i?"===":"!==";return{signal:`${`${e.signal} ${o} "${s}"`} ? "left" : "right"`}}return(i<t&&t<180+i)==(e===s)?"left":"right"}function aZe(t,e){if(e==="x"&&bt(["quantitative","temporal"],t))return!0}function lZe(t,e,n,r){if(n&&!He(r)||t!=="nominal"&&t!=="ordinal")return e==="log"||e==="symlog"?"greedy":!0}function cZe(t){return t==="x"?"bottom":"left"}function fZe({fieldOrDatumDef:t,scaleType:e,size:n,values:r}){var i;if(!r&&!Ar(e)&&e!=="log"){if(Ie(t)){if(Xt(t.bin))return{signal:`ceil(${n.signal}/10)`};if(t.timeUnit&&bt(["month","hours","day","quarter"],(i=ki(t.timeUnit))===null||i===void 0?void 0:i.unit))return}return{signal:`ceil(${n.signal}/40)`}}}function pae(t,e){const n=e==="x"?"x2":"y2",r=t.fieldDef(e),i=t.fieldDef(n),s=r?r.title:void 0,o=i?i.title:void 0;if(s&&o)return Rse(s,o);if(s)return s;if(o)return o;if(s!==void 0)return s;if(o!==void 0)return o}function xZe(t,e){const n=t.values;if(_e(n))return Loe(e,n);if(Ye(n))return n}function dZe(t,e){return t==="rect"&&cN(e)?1:0}class $2 extends jt{constructor(e,n){super(e),this.transform=n,this._dependentFields=uae(this.transform.calculate)}clone(){return new $2(null,ut(this.transform))}static parseAllForSortIndex(e,n){return n.forEachFieldDef((r,i)=>{if(Cd(r)&&voe(r.sort)){const{field:s,timeUnit:o}=r,u=r.sort,a=u.map((l,c)=>`${Kse({field:s,timeUnit:o,equal:l})} ? ${c} : `).join("")+u.length;e=new $2(e,{calculate:a,as:B2(r,i,{forAs:!0})})}}),e}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 ${Ct(this.transform)}`}}function B2(t,e,n){return $e(t,Object.assign({prefix:e,suffix:"sort_index"},n??{}))}function wN(t,e){return bt(["top","bottom"],e)?"column":bt(["left","right"],e)||t==="row"?"row":"column"}function k2(t,e,n,r){const i=r==="row"?n.headerRow:r==="column"?n.headerColumn:n.headerFacet;return nr((e||{})[t],i[t],n.header[t])}function LN(t,e,n,r){const i={};for(const s of t){const o=k2(s,e||{},n,r);o!==void 0&&(i[s]=o)}return i}const F7=["row","column"],w7=["header","footer"];function hZe(t,e){const n=t.component.layoutHeaders[e].title,r=t.config?t.config:void 0,i=t.component.layoutHeaders[e].facetFieldDef?t.component.layoutHeaders[e].facetFieldDef:void 0,{titleAnchor:s,titleAngle:o,titleOrient:u}=LN(["titleAnchor","titleAngle","titleOrient"],i.header,r,e),a=wN(e,u),l=UO(o);return{name:`${e}-title`,type:"group",role:`${a}-title`,title:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:n},e==="row"?{orient:"left"}:{}),{style:"guide-title"}),mae(l,a)),gae(a,l,s)),yae(r,i,e,iKe,tue))}}function gae(t,e,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const r=hae(e,t==="row"?"left":"top",t==="row"?"y":"x");return r?{align:r}:{}}function mae(t,e){const n=dae(t,e==="row"?"left":"top",e==="row"?"y":"x",!0);return n?{baseline:n}:{}}function pZe(t,e){const n=t.component.layoutHeaders[e],r=[];for(const i of w7)if(n[i])for(const s of n[i]){const o=mZe(t,e,i,n,s);o!=null&&r.push(o)}return r}function gZe(t,e){var n;const{sort:r}=t;return Ra(r)?{field:$e(r,{expr:"datum"}),order:(n=r.order)!==null&&n!==void 0?n:"ascending"}:_e(r)?{field:B2(t,e,{expr:"datum"}),order:"ascending"}:{field:$e(t,{expr:"datum"}),order:r??"ascending"}}function L7(t,e,n){const{format:r,formatType:i,labelAngle:s,labelAnchor:o,labelOrient:u,labelExpr:a}=LN(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],t.header,n,e),l=P8({fieldOrDatumDef:t,format:r,formatType:i,expr:"parent",config:n}).signal,c=wN(e,u);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:{signal:a?g2(g2(a,"datum.label",l),"datum.value",$e(t,{expr:"parent"})):l}},e==="row"?{orient:"left"}:{}),{style:"guide-label",frame:"group"}),mae(s,c)),gae(c,s,o)),yae(n,t,e,sKe,nue))}function mZe(t,e,n,r,i){if(i){let s=null;const{facetFieldDef:o}=r,u=t.config?t.config:void 0;if(o&&i.labels){const{labelOrient:f}=LN(["labelOrient"],o.header,u,e);(e==="row"&&!bt(["top","bottom"],f)||e==="column"&&!bt(["left","right"],f))&&(s=L7(o,e,u))}const a=hu(t)&&!a3(t.facet),l=i.axes,c=(l==null?void 0:l.length)>0;if(s||c){const f=e==="row"?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:t.getName(`${e}_${n}`),type:"group",role:`${e}-${n}`},r.facetFieldDef?{from:{data:t.getName(`${e}_domain`)},sort:gZe(o,e)}:{}),c&&a?{from:{data:t.getName(`facet_domain_${e}`)}}:{}),s?{title:s}:{}),i.sizeSignal?{encode:{update:{[f]:i.sizeSignal}}}:{}),c?{axes:l}:{})}}return null}const yZe={column:{start:0,end:1},row:{start:1,end:0}};function EZe(t,e){return yZe[e][t]}function AZe(t,e){const n={};for(const r of vo){const i=t[r];if(i!=null&&i.facetFieldDef){const{titleAnchor:s,titleOrient:o}=LN(["titleAnchor","titleOrient"],i.facetFieldDef.header,e,r),u=wN(r,o),a=EZe(s,u);a!==void 0&&(n[u]=a)}}return Gt(n)?void 0:n}function yae(t,e,n,r,i){const s={};for(const o of r){if(!i[o])continue;const u=k2(o,e==null?void 0:e.header,t,n);u!==void 0&&(s[i[o]]=u)}return s}function I7(t){return[...IN(t,"width"),...IN(t,"height"),...IN(t,"childWidth"),...IN(t,"childHeight")]}function IN(t,e){const n=e==="width"?"x":"y",r=t.component.layoutSize.get(e);if(!r||r==="merged")return[];const i=t.getSizeSignalRef(e).signal;if(r==="step"){const s=t.getScaleComponent(n);if(s){const o=s.get("type"),u=s.get("range");if(Ar(o)&&Bc(u)){const a=t.scaleName(n);return hu(t.parent)&&t.parent.component.resolve.scale[n]==="independent"?[Eae(a,u)]:[Eae(a,u),{name:i,update:Aae(a,s,`domain('${a}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}else if(r=="container"){const s=i.endsWith("width"),o=s?"containerSize()[0]":"containerSize()[1]",u=l7(t.config.view,s?"width":"height"),a=`isFinite(${o}) ? ${o} : ${u}`;return[{name:i,init:a,on:[{update:a,events:"window:resize"}]}]}else return[{name:i,value:r}]}function Eae(t,e){const n=`${t}_step`;return Ye(e.step)?{name:n,update:e.step.signal}:{name:n,value:e.step}}function Aae(t,e,n){const r=e.get("type"),i=e.get("padding"),s=nr(e.get("paddingOuter"),i);let o=e.get("paddingInner");return o=r==="band"?o!==void 0?o:i:1,`bandspace(${n}, ${Jl(o)}, ${Jl(s)}) * ${t}_step`}function Sae(t){return t==="childWidth"?"width":t==="childHeight"?"height":t}function vae(t,e){return Te(t).reduce((n,r)=>{const i=t[r];return Object.assign(Object.assign({},n),w2(e,i,r,s=>sn(s.value)))},{})}function _ae(t,e){if(hu(e))return t==="theta"?"independent":"shared";if(j2(e))return"shared";if(X7(e))return Ir(t)||t==="theta"||t==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function $7(t,e){const n=t.scale[e],r=Ir(e)?"axis":"legend";return n==="independent"?(t[r][e]==="shared"&&Re(sYe(e)),"independent"):t[r][e]||"shared"}const SZe=Object.assign(Object.assign({},uKe),{disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1}),Cae=Te(SZe);class vZe extends t0{}const bae={symbols:_Ze,gradient:CZe,labels:bZe,entries:TZe};function _Ze(t,{fieldOrDatumDef:e,model:n,channel:r,legendCmpt:i,legendType:s}){var o,u,a,l,c,f,x,h;if(s!=="symbol")return;const{markDef:p,encoding:m,config:g,mark:y}=n,E=p.filled&&y!=="trail";let A=Object.assign(Object.assign({},pVe({},n,uXe)),que(n,{filled:E}));const S=(o=i.get("symbolOpacity"))!==null&&o!==void 0?o:g.legend.symbolOpacity,v=(u=i.get("symbolFillColor"))!==null&&u!==void 0?u:g.legend.symbolFillColor,_=(a=i.get("symbolStrokeColor"))!==null&&a!==void 0?a:g.legend.symbolStrokeColor,C=S===void 0?(l=Tae(m.opacity))!==null&&l!==void 0?l:p.opacity:void 0;if(A.fill){if(r==="fill"||E&&r===ls)delete A.fill;else if(A.fill.field)v?delete A.fill:(A.fill=sn((c=g.legend.symbolBaseFillColor)!==null&&c!==void 0?c:"black"),A.fillOpacity=sn(C??1));else if(_e(A.fill)){const b=(h=(x=B7((f=m.fill)!==null&&f!==void 0?f:m.color))!==null&&x!==void 0?x:p.fill)!==null&&h!==void 0?h:E&&p.color;b&&(A.fill=sn(b))}}if(A.stroke){if(r==="stroke"||!E&&r===ls)delete A.stroke;else if(A.stroke.field||_)delete A.stroke;else if(_e(A.stroke)){const b=nr(B7(m.stroke||m.color),p.stroke,E?p.color:void 0);b&&(A.stroke={value:b})}}if(r!==Vl){const b=Ie(e)&&Oae(n,i,e);b?A.opacity=[Object.assign({test:b},sn(C??1)),sn(g.legend.unselectedOpacity)]:C&&(A.opacity=sn(C))}return A=Object.assign(Object.assign({},A),t),Gt(A)?void 0:A}function CZe(t,{model:e,legendType:n,legendCmpt:r}){var i;if(n!=="gradient")return;const{config:s,markDef:o,encoding:u}=e;let a={};const c=((i=r.get("gradientOpacity"))!==null&&i!==void 0?i:s.legend.gradientOpacity)===void 0?Tae(u.opacity)||o.opacity:void 0;return c&&(a.opacity=sn(c)),a=Object.assign(Object.assign({},a),t),Gt(a)?void 0:a}function bZe(t,{fieldOrDatumDef:e,model:n,channel:r,legendCmpt:i}){const s=n.legend(r)||{},o=n.config,u=Ie(e)?Oae(n,i,e):void 0,a=u?[{test:u,value:1},{value:o.legend.unselectedOpacity}]:void 0,{format:l,formatType:c}=s,f=_d(c)?M8({fieldOrDatumDef:e,field:"datum.value",format:l,formatType:c,config:o}):void 0,x=Object.assign(Object.assign(Object.assign({},a?{opacity:a}:{}),f?{text:f}:{}),t);return Gt(x)?void 0:x}function TZe(t,{legendCmpt:e}){const n=e.get("selections");return n!=null&&n.length?Object.assign(Object.assign({},t),{fill:{value:"transparent"}}):t}function Tae(t){return Rae(t,(e,n)=>Math.max(e,n.value))}function B7(t){return Rae(t,(e,n)=>nr(e,n.value))}function Rae(t,e){if(CXe(t))return Pe(t.condition).reduce(e,t.value);if(fu(t))return t.value}function Oae(t,e,n){const r=e.get("selections");if(!(r!=null&&r.length))return;const i=we(n.field);return r.map(s=>`(!length(data(${we(gn(s)+Td)})) || (${s}[${i}] && indexof(${s}[${i}], datum.value) >= 0))`).join(" || ")}const Nae={direction:({direction:t})=>t,format:({fieldOrDatumDef:t,legend:e,config:n})=>{const{format:r,formatType:i}=e;return poe(t,t.type,r,i,n,!1)},formatType:({legend:t,fieldOrDatumDef:e,scaleType:n})=>{const{formatType:r}=t;return goe(r,e,n)},gradientLength:t=>{var e,n;const{legend:r,legendConfig:i}=t;return(n=(e=r.gradientLength)!==null&&e!==void 0?e:i.gradientLength)!==null&&n!==void 0?n:LZe(t)},labelOverlap:({legend:t,legendConfig:e,scaleType:n})=>{var r,i;return(i=(r=t.labelOverlap)!==null&&r!==void 0?r:e.labelOverlap)!==null&&i!==void 0?i:IZe(n)},symbolType:({legend:t,markDef:e,channel:n,encoding:r})=>{var i;return(i=t.symbolType)!==null&&i!==void 0?i:OZe(e.type,n,r.shape,e.shape)},title:({fieldOrDatumDef:t,config:e})=>b2(t,e,{allowDisabling:!0}),type:({legendType:t,scaleType:e,channel:n})=>{if(y2(n)&&cu(e)){if(t==="gradient")return}else if(t==="symbol")return;return t},values:({fieldOrDatumDef:t,legend:e})=>RZe(e,t)};function RZe(t,e){const n=t.values;if(_e(n))return Loe(e,n);if(Ye(n))return n}function OZe(t,e,n,r){var i;if(e!=="shape"){const s=(i=B7(n))!==null&&i!==void 0?i:r;if(s)return s}switch(t){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"}}function NZe(t){const{legend:e}=t;return nr(e.type,DZe(t))}function DZe({channel:t,timeUnit:e,scaleType:n}){if(y2(t)){if(bt(["quarter","month","day"],e))return"symbol";if(cu(n))return"gradient"}return"symbol"}function FZe({legendConfig:t,legendType:e,orient:n,legend:r}){var i,s;return(s=(i=r.direction)!==null&&i!==void 0?i:t[e?"gradientDirection":"symbolDirection"])!==null&&s!==void 0?s:wZe(n,e)}function wZe(t,e){switch(t){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return e==="gradient"?"horizontal":void 0}}function LZe({legendConfig:t,model:e,direction:n,orient:r,scaleType:i}){const{gradientHorizontalMaxLength:s,gradientHorizontalMinLength:o,gradientVerticalMaxLength:u,gradientVerticalMinLength:a}=t;if(cu(i))return n==="horizontal"?r==="top"||r==="bottom"?Dae(e,"width",o,s):o:Dae(e,"height",a,u)}function Dae(t,e,n,r){return{signal:`clamp(${t.getSizeSignalRef(e).signal}, ${n}, ${r})`}}function IZe(t){if(bt(["quantile","threshold","log","symlog"],t))return"greedy"}function Fae(t){const e=zn(t)?$Ze(t):MZe(t);return t.component.legends=e,e}function $Ze(t){const{encoding:e}=t,n={};for(const r of[ls,...iue]){const i=rr(e[r]);!i||!t.getScaleComponent(r)||r===cs&&Ie(i)&&i.type===v2||(n[r]=PZe(t,r))}return n}function BZe(t,e){const n=t.scaleName(e);if(t.mark==="trail"){if(e==="color")return{stroke:n};if(e==="size")return{strokeWidth:n}}return e==="color"?t.markDef.filled?{fill:n}:{stroke:n}:{[e]:n}}function kZe(t,e,n,r){switch(e){case"disable":return n!==void 0;case"values":return!!(n!=null&&n.values);case"title":if(e==="title"&&t===(r==null?void 0:r.title))return!0}return t===(n||{})[e]}function PZe(t,e){var n,r,i;let s=t.legend(e);const{markDef:o,encoding:u,config:a}=t,l=a.legend,c=new vZe({},BZe(t,e));VJe(t,e,c);const f=s!==void 0?!s:l.disable;if(c.set("disable",f,s!==void 0),f)return c;s=s||{};const x=t.getScaleComponent(e).get("type"),h=rr(u[e]),p=Ie(h)?(n=ki(h.timeUnit))===null||n===void 0?void 0:n.unit:void 0,m=s.orient||a.legend.orient||"right",g=NZe({legend:s,channel:e,timeUnit:p,scaleType:x}),y=FZe({legend:s,legendType:g,orient:m,legendConfig:l}),E={legend:s,channel:e,model:t,markDef:o,encoding:u,fieldOrDatumDef:h,legendConfig:l,config:a,scaleType:x,orient:m,legendType:g,direction:y};for(const C of Cae){if(g==="gradient"&&C.startsWith("symbol")||g==="symbol"&&C.startsWith("gradient"))continue;const b=C in Nae?Nae[C](E):s[C];if(b!==void 0){const R=kZe(b,C,s,t.fieldDef(e));(R||a.legend[C]===void 0)&&c.set(C,b,R)}}const A=(r=s==null?void 0:s.encoding)!==null&&r!==void 0?r:{},S=c.get("selections"),v={},_={fieldOrDatumDef:h,model:t,channel:e,legendCmpt:c,legendType:g};for(const C of["labels","legend","title","symbols","gradient","entries"]){const b=vae((i=A[C])!==null&&i!==void 0?i:{},t),R=C in bae?bae[C](b,_):b;R!==void 0&&!Gt(R)&&(v[C]=Object.assign(Object.assign(Object.assign({},S!=null&&S.length&&Ie(h)?{name:`${gn(h.field)}_legend_${C}`}:{}),S!=null&&S.length?{interactive:!!S}:{}),{update:R}))}return Gt(v)||c.set("encode",v,!!(s!=null&&s.encoding)),c}function MZe(t){const{legends:e,resolve:n}=t.component;for(const r of t.children){Fae(r);for(const i of Te(r.component.legends))n.legend[i]=$7(t.component.resolve,i),n.legend[i]==="shared"&&(e[i]=wae(e[i],r.component.legends[i]),e[i]||(n.legend[i]="independent",delete e[i]))}for(const r of Te(e))for(const i of t.children)i.component.legends[r]&&n.legend[r]==="shared"&&delete i.component.legends[r];return e}function wae(t,e){var n,r,i,s;if(!t)return e.clone();const o=t.getWithExplicit("orient"),u=e.getWithExplicit("orient");if(o.explicit&&u.explicit&&o.value!==u.value)return;let a=!1;for(const l of Cae){const c=jc(t.getWithExplicit(l),e.getWithExplicit(l),l,"legend",(f,x)=>{switch(l){case"symbolType":return jZe(f,x);case"title":return Ose(f,x);case"type":return a=!0,Us("symbol")}return CN(f,x,l,"legend")});t.setWithExplicit(l,c)}return a&&(!((r=(n=t.implicit)===null||n===void 0?void 0:n.encode)===null||r===void 0)&&r.gradient&&e8(t.implicit,["encode","gradient"]),!((s=(i=t.explicit)===null||i===void 0?void 0:i.encode)===null||s===void 0)&&s.gradient&&e8(t.explicit,["encode","gradient"])),t}function jZe(t,e){return e.value==="circle"?e:t}var UZe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function qZe(t,e,n,r){var i,s,o,u,a;(i=t.encode)!==null&&i!==void 0||(t.encode={}),(s=(u=t.encode)[e])!==null&&s!==void 0||(u[e]={}),(o=(a=t.encode[e]).update)!==null&&o!==void 0||(a.update={}),t.encode[e].update[n]=r}function Lae(t){const e=t.component.legends,n={};for(const i of Te(e)){const s=t.getScaleComponent(i),o=rn(s.get("domains"));if(n[o])for(const u of n[o])wae(u,e[i])||n[o].push(e[i]);else n[o]=[e[i].clone()]}return $i(n).flat().map(i=>HZe(i,t.config)).filter(i=>i!==void 0)}function HZe(t,e){var n,r,i;const s=t.combine(),{disable:o,labelExpr:u,selections:a}=s,l=UZe(s,["disable","labelExpr","selections"]);if(!o){if(e.aria===!1&&l.aria==null&&(l.aria=!1),!((n=l.encode)===null||n===void 0)&&n.symbols){const c=l.encode.symbols.update;c.fill&&c.fill.value!=="transparent"&&!c.stroke&&!l.stroke&&(c.stroke={value:"transparent"});for(const f of iue)l[f]&&delete c[f]}if(l.title||delete l.title,u!==void 0){let c=u;!((i=(r=l.encode)===null||r===void 0?void 0:r.labels)===null||i===void 0)&&i.update&&Ye(l.encode.labels.update.text)&&(c=g2(u,"datum.label",l.encode.labels.update.text.signal)),qZe(l,"labels","text",{signal:c})}return l}}function zZe(t){return j2(t)||X7(t)?QZe(t):Iae(t)}function QZe(t){return t.children.reduce((e,n)=>e.concat(n.assembleProjections()),Iae(t))}function Iae(t){const e=t.component.projection;if(!e||e.merged)return[];const n=e.combine(),{name:r}=n;if(e.data){const i={signal:`[${e.size.map(o=>o.signal).join(", ")}]`},s=e.data.reduce((o,u)=>{const a=Ye(u)?u.signal:`data('${t.lookupDataSource(u)}')`;return bt(o,a)||o.push(a),o},[]);if(s.length<=0)throw new Error("Projection's fit didn't find any data sources");return[Object.assign({name:r,size:i,fit:{signal:s.length>1?`[${s.join(", ")}]`:s[0]}},n)]}else return[Object.assign(Object.assign({name:r},{translate:{signal:"[width / 2, height / 2]"}}),n)]}const GZe=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class $ae extends t0{constructor(e,n,r,i){super(Object.assign({},n),{name:e}),this.specifiedProjection=n,this.size=r,this.data=i,this.merged=!1}get isFit(){return!!this.data}}function Bae(t){t.component.projection=zn(t)?WZe(t):XZe(t)}function WZe(t){var e;if(t.hasProjection){const n=xs(t.specifiedProjection),r=!(n&&(n.scale!=null||n.translate!=null)),i=r?[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]:void 0,s=r?VZe(t):void 0,o=new $ae(t.projectionName(!0),Object.assign(Object.assign({},(e=xs(t.config.projection))!==null&&e!==void 0?e:{}),n??{}),i,s);return o.get("type")||o.set("type","equalEarth",!1),o}}function VZe(t){const e=[],{encoding:n}=t;for(const r of[[Sa,Aa],[So,lu]])(rr(n[r[0]])||rr(n[r[1]]))&&e.push({signal:t.getName(`geojson_${e.length}`)});return t.channelHasField(cs)&&t.typedFieldDef(cs).type===v2&&e.push({signal:t.getName(`geojson_${e.length}`)}),e.length===0&&e.push(t.requestDataName(Kt.Main)),e}function YZe(t,e){const n=Zie(GZe,i=>!!(!Je(t.explicit,i)&&!Je(e.explicit,i)||Je(t.explicit,i)&&Je(e.explicit,i)&&Ul(t.get(i),e.get(i))));if(Ul(t.size,e.size)){if(n)return t;if(Ul(t.explicit,{}))return e;if(Ul(e.explicit,{}))return t}return null}function XZe(t){if(t.children.length===0)return;let e;for(const r of t.children)Bae(r);const n=Zie(t.children,r=>{const i=r.component.projection;if(i)if(e){const s=YZe(e,i);return s&&(e=s),!!s}else return e=i,!0;else return!0});if(e&&n){const r=t.projectionName(!0),i=new $ae(r,e.specifiedProjection,e.size,ut(e.data));for(const s of t.children){const o=s.component.projection;o&&(o.isFit&&i.data.push(...s.component.projection.data),s.renameProjection(o.get("name"),r),o.merged=!0)}return i}}var KZe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function JZe(t,e,n,r){var i,s;if(c3(e,n)){const o=zn(t)?(s=(i=t.axis(n))!==null&&i!==void 0?i:t.legend(n))!==null&&s!==void 0?s:{}:{},u=$e(e,{expr:"datum"}),a=$e(e,{expr:"datum",binSuffix:"end"});return{formulaAs:$e(e,{binSuffix:"range",forAs:!0}),formula:sN(u,a,o.format,o.formatType,r)}}return{}}function kae(t,e){return`${mse(t)}_${e}`}function ZZe(t,e){return{signal:t.getName(`${e}_bins`),extentSignal:t.getName(`${e}_extent`)}}function k7(t,e,n){var r;const i=(r=dN(n,void 0))!==null&&r!==void 0?r:{},s=kae(i,e);return t.getName(`${s}_bins`)}function eet(t){return"as"in t}function Pae(t,e,n){let r,i;eet(t)?r=je(t.as)?[t.as,`${t.as}_end`]:[t.as[0],t.as[1]]:r=[$e(t,{forAs:!0}),$e(t,{binSuffix:"end",forAs:!0})];const s=Object.assign({},dN(e,void 0)),o=kae(s,t.field),{signal:u,extentSignal:a}=ZZe(n,o);if(YO(s.extent)){const c=s.extent;i=lae(n,c.param,c),delete s.extent}const l=Object.assign(Object.assign(Object.assign({bin:s,field:t.field,as:[r]},u?{signal:u}:{}),a?{extentSignal:a}:{}),i?{span:i}:{});return{key:o,binComponent:l}}class Ia extends jt{constructor(e,n){super(e),this.bins=n}clone(){return new Ia(null,ut(this.bins))}static makeFromEncoding(e,n){const r=n.reduceFieldDef((i,s,o)=>{if(_o(s)&&Xt(s.bin)){const{key:u,binComponent:a}=Pae(s,s.bin,n);i[u]=Object.assign(Object.assign(Object.assign({},a),i[u]),JZe(n,s,o,n.config))}return i},{});return Gt(r)?null:new Ia(e,r)}static makeFromTransform(e,n,r){const{key:i,binComponent:s}=Pae(n,n.bin,r);return new Ia(e,{[i]:s})}merge(e,n){for(const r of Te(e.bins))r in this.bins?(n(e.bins[r].signal,this.bins[r].signal),this.bins[r].as=ql([...this.bins[r].as,...e.bins[r].as],Ct)):this.bins[r]=e.bins[r];for(const r of e.children)e.removeChild(r),r.parent=this;e.remove()}producedFields(){return new Set($i(this.bins).map(e=>e.as).flat(2))}dependentFields(){return new Set($i(this.bins).map(e=>e.field))}hash(){return`Bin ${Ct(this.bins)}`}assemble(){return $i(this.bins).flatMap(e=>{const n=[],[r,...i]=e.as,s=e.bin,{extent:o}=s,u=KZe(s,["extent"]),a=Object.assign(Object.assign(Object.assign({type:"bin",field:ou(e.field),as:r,signal:e.signal},YO(o)?{extent:null}:{extent:o}),e.span?{span:{signal:`span(${e.span})`}}:{}),u);!o&&e.extentSignal&&(n.push({type:"extent",field:ou(e.field),signal:e.extentSignal}),a.extent={signal:e.extentSignal}),n.push(a);for(const l of i)for(let c=0;c<2;c++)n.push({type:"formula",expr:$e({field:r[c]},{expr:"datum"}),as:l[c]});return e.formula&&n.push({type:"formula",expr:e.formula,as:e.formulaAs}),n})}}function tet(t,e,n,r){var i;const s=zn(r)?r.encoding[Yl(e)]:void 0;if(_o(n)&&zn(r)&&Toe(n,s,r.markDef,r.config))t.add($e(n,{})),t.add($e(n,{suffix:"end"})),n.bin&&c3(n,e)&&t.add($e(n,{binSuffix:"range"}));else if(jWe(e)){const o=MWe(e);t.add(r.getName(o))}else t.add($e(n));return Cd(n)&&XYe((i=n.scale)===null||i===void 0?void 0:i.range)&&t.add(n.scale.range.field),t}function net(t,e){var n;for(const r of Te(e)){const i=e[r];for(const s of Te(i))r in t?t[r][s]=new Set([...(n=t[r][s])!==null&&n!==void 0?n:[],...i[s]]):t[r]={[s]:i[s]}}}class xu extends jt{constructor(e,n,r){super(e),this.dimensions=n,this.measures=r}clone(){return new xu(null,new Set(this.dimensions),ut(this.measures))}get groupBy(){return this.dimensions}static makeFromEncoding(e,n){let r=!1;n.forEachFieldDef(o=>{o.aggregate&&(r=!0)});const i={},s=new Set;return!r||(n.forEachFieldDef((o,u)=>{var a,l,c,f;const{aggregate:x,field:h}=o;if(x)if(x==="count")(a=i["*"])!==null&&a!==void 0||(i["*"]={}),i["*"].count=new Set([$e(o,{forAs:!0})]);else{if(Xl(x)||Ic(x)){const p=Xl(x)?"argmin":"argmax",m=x[p];(l=i[m])!==null&&l!==void 0||(i[m]={}),i[m][p]=new Set([$e({op:p,field:m},{forAs:!0})])}else(c=i[h])!==null&&c!==void 0||(i[h]={}),i[h][x]=new Set([$e(o,{forAs:!0})]);Lc(u)&&n.scaleDomain(u)==="unaggregated"&&((f=i[h])!==null&&f!==void 0||(i[h]={}),i[h].min=new Set([$e({field:h,aggregate:"min"},{forAs:!0})]),i[h].max=new Set([$e({field:h,aggregate:"max"},{forAs:!0})]))}else tet(s,u,o,n)}),s.size+Te(i).length===0)?null:new xu(e,s,i)}static makeFromTransform(e,n){var r,i,s;const o=new Set,u={};for(const a of n.aggregate){const{op:l,field:c,as:f}=a;l&&(l==="count"?((r=u["*"])!==null&&r!==void 0||(u["*"]={}),u["*"].count=new Set([f||$e(a,{forAs:!0})])):((i=u[c])!==null&&i!==void 0||(u[c]={}),u[c][l]=new Set([f||$e(a,{forAs:!0})])))}for(const a of(s=n.groupby)!==null&&s!==void 0?s:[])o.add(a);return o.size+Te(u).length===0?null:new xu(e,o,u)}merge(e){return FWe(this.dimensions,e.dimensions)?(net(this.measures,e.measures),!0):(SYe("different dimensions, cannot merge"),!1)}addDimensions(e){e.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...Te(this.measures)])}producedFields(){const e=new Set;for(const n of Te(this.measures))for(const r of Te(this.measures[n])){const i=this.measures[n][r];i.size===0?e.add(`${r}_${n}`):i.forEach(e.add,e)}return e}hash(){return`Aggregate ${Ct({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const e=[],n=[],r=[];for(const s of Te(this.measures))for(const o of Te(this.measures[s]))for(const u of this.measures[s][o])r.push(u),e.push(o),n.push(s==="*"?null:ou(s));return{type:"aggregate",groupby:[...this.dimensions].map(ou),ops:e,fields:n,as:r}}}class P2 extends jt{constructor(e,n,r,i){super(e),this.model=n,this.name=r,this.data=i;for(const s of vo){const o=n.facet[s];if(o){const{bin:u,sort:a}=o;this[s]=Object.assign({name:n.getName(`${s}_domain`),fields:[$e(o),...Xt(u)?[$e(o,{binSuffix:"end"})]:[]]},Ra(a)?{sortField:a}:_e(a)?{sortIndexField:B2(o,s)}:{})}}this.childModel=n.child}hash(){let e="Facet";for(const n of vo)this[n]&&(e+=` ${n.charAt(0)}:${Ct(this[n])}`);return e}get fields(){var e;const n=[];for(const r of vo)!((e=this[r])===null||e===void 0)&&e.fields&&n.push(...this[r].fields);return n}dependentFields(){const e=new Set(this.fields);for(const n of vo)this[n]&&(this[n].sortField&&e.add(this[n].sortField.field),this[n].sortIndexField&&e.add(this[n].sortIndexField));return e}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const e={};for(const n of Ca){const r=this.childModel.component.scales[n];if(r&&!r.merged){const i=r.get("type"),s=r.get("range");if(Ar(i)&&Bc(s)){const o=BN(this.childModel,n),u=W7(o);u?e[n]=u:Re(d8(n))}}}return e}assembleRowColumnHeaderData(e,n,r){const i={row:"y",column:"x",facet:void 0}[e],s=[],o=[],u=[];i&&r&&r[i]&&(n?(s.push(`distinct_${r[i]}`),o.push("max")):(s.push(r[i]),o.push("distinct")),u.push(`distinct_${r[i]}`));const{sortField:a,sortIndexField:l}=this[e];if(a){const{op:c=oN,field:f}=a;s.push(f),o.push(c),u.push($e(a,{forAs:!0}))}else l&&(s.push(l),o.push("max"),u.push(l));return{name:this[e].name,source:n??this.data,transform:[Object.assign({type:"aggregate",groupby:this[e].fields},s.length?{fields:s,ops:o,as:u}:{})]}}assembleFacetHeaderData(e){var n,r;const{columns:i}=this.model.layout,{layoutHeaders:s}=this.model.component,o=[],u={};for(const c of F7){for(const f of w7){const x=(n=s[c]&&s[c][f])!==null&&n!==void 0?n:[];for(const h of x)if(((r=h.axes)===null||r===void 0?void 0:r.length)>0){u[c]=!0;break}}if(u[c]){const f=`length(data("${this.facet.name}"))`,x=c==="row"?i?{signal:`ceil(${f} / ${i})`}:1:i?{signal:`min(${f}, ${i})`}:{signal:f};o.push({name:`${this.facet.name}_${c}`,transform:[{type:"sequence",start:0,stop:x}]})}}const{row:a,column:l}=u;return(a||l)&&o.unshift(this.assembleRowColumnHeaderData("facet",null,e)),o}assemble(){var e,n;const r=[];let i=null;const s=this.getChildIndependentFieldsWithStep(),{column:o,row:u,facet:a}=this;if(o&&u&&(s.x||s.y)){i=`cross_${this.column.name}_${this.row.name}`;const l=[].concat((e=s.x)!==null&&e!==void 0?e:[],(n=s.y)!==null&&n!==void 0?n:[]),c=l.map(()=>"distinct");r.push({name:i,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:l,ops:c}]})}for(const l of[zl,Hl])this[l]&&r.push(this.assembleRowColumnHeaderData(l,i,s));if(a){const l=this.assembleFacetHeaderData(s);l&&r.push(...l)}return r}}function Mae(t){return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function ret(t,e){const n=rse(t);if(e==="number")return`toNumber(${n})`;if(e==="boolean")return`toBoolean(${n})`;if(e==="string")return`toString(${n})`;if(e==="date")return`toDate(${n})`;if(e==="flatten")return n;if(e.startsWith("date:")){const r=Mae(e.slice(5,e.length));return`timeParse(${n},'${r}')`}else if(e.startsWith("utc:")){const r=Mae(e.slice(4,e.length));return`utcParse(${n},'${r}')`}else return Re(OVe(e)),null}function iet(t){const e={};return kO(t.filter,n=>{var r;if(Xse(n)){let i=null;A8(n)?i=Ms(n.equal):v8(n)?i=Ms(n.lte):S8(n)?i=Ms(n.lt):_8(n)?i=Ms(n.gt):C8(n)?i=Ms(n.gte):b8(n)?i=n.range[0]:T8(n)&&(i=((r=n.oneOf)!==null&&r!==void 0?r:n.in)[0]),i&&(Ad(i)?e[n.field]="date":tn(i)?e[n.field]="number":je(i)&&(e[n.field]="string")),n.timeUnit&&(e[n.field]="date")}}),e}function set(t){const e={};function n(r){R2(r)?e[r.field]="date":r.type==="quantitative"&&oVe(r.aggregate)?e[r.field]="number":ZE(r.field)>1?r.field in e||(e[r.field]="flatten"):Cd(r)&&Ra(r.sort)&&ZE(r.sort.field)>1&&(r.sort.field in e||(e[r.sort.field]="flatten"))}if((zn(t)||hu(t))&&t.forEachFieldDef((r,i)=>{if(_o(r))n(r);else{const s=md(i),o=t.fieldDef(s);n(Object.assign(Object.assign({},r),{type:o.type}))}}),zn(t)){const{mark:r,markDef:i,encoding:s}=t;if(kc(r)&&!t.encoding.order){const o=i.orient==="horizontal"?"y":"x",u=s[o];Ie(u)&&u.type==="quantitative"&&!(u.field in e)&&(e[u.field]="number")}}return e}function oet(t){const e={};if(zn(t)&&t.component.selection)for(const n of Te(t.component.selection)){const r=t.component.selection[n];for(const i of r.project.items)!i.channel&&ZE(i.field)>1&&(e[i.field]="flatten")}return e}class si extends jt{constructor(e,n){super(e),this._parse=n}clone(){return new si(null,ut(this._parse))}hash(){return`Parse ${Ct(this._parse)}`}static makeExplicit(e,n,r){var i;let s={};const o=n.data;return!Uc(o)&&(!((i=o==null?void 0:o.format)===null||i===void 0)&&i.parse)&&(s=o.format.parse),this.makeWithAncestors(e,s,{},r)}static makeWithAncestors(e,n,r,i){for(const u of Te(r)){const a=i.getWithExplicit(u);a.value!==void 0&&(a.explicit||a.value===r[u]||a.value==="derived"||r[u]==="flatten"?delete r[u]:Re($se(u,r[u],a.value)))}for(const u of Te(n)){const a=i.get(u);a!==void 0&&(a===n[u]?delete n[u]:Re($se(u,n[u],a)))}const s=new t0(n,r);i.copyAll(s);const o={};for(const u of Te(s.combine())){const a=s.get(u);a!==null&&(o[u]=a)}return Te(o).length===0||i.parseNothing?null:new si(e,o)}get parse(){return this._parse}merge(e){this._parse=Object.assign(Object.assign({},this._parse),e.parse),e.remove()}assembleFormatParse(){const e={};for(const n of Te(this._parse)){const r=this._parse[n];ZE(n)===1&&(e[n]=r)}return e}producedFields(){return new Set(Te(this._parse))}dependentFields(){return new Set(Te(this._parse))}assembleTransforms(e=!1){return Te(this._parse).filter(n=>e?ZE(n)>1:!0).map(n=>{const r=ret(n,this._parse[n]);return r?{type:"formula",expr:r,as:ise(n)}:null}).filter(n=>n!==null)}}class Qc extends jt{clone(){return new Qc(null)}constructor(e){super(e)}dependentFields(){return new Set}producedFields(){return new Set([x3])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:x3}}}class y3 extends jt{constructor(e,n){super(e),this.params=n}clone(){return new y3(null,this.params)}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${Ct(this.params)}`}assemble(){return Object.assign({type:"graticule"},this.params===!0?{}:this.params)}}class E3 extends jt{constructor(e,n){super(e),this.params=n}clone(){return new E3(null,this.params)}dependentFields(){return new Set}producedFields(){var e;return new Set([(e=this.params.as)!==null&&e!==void 0?e:"data"])}hash(){return`Hash ${Ct(this.params)}`}assemble(){return Object.assign({type:"sequence"},this.params)}}class Rd extends jt{constructor(e){super(null),e??(e={name:"source"});let n;if(Uc(e)||(n=e.format?Object.assign({},Ao(e.format,["parse"])):{}),d3(e))this._data={values:e.values};else if(N2(e)){if(this._data={url:e.url},!n.type){let r=/(?:\.([^.]+))?$/.exec(e.url)[1];bt(["json","csv","tsv","dsv","topojson"],r)||(r="json"),n.type=r}}else $ue(e)?this._data={values:[{type:"Sphere"}]}:(Lue(e)||Uc(e))&&(this._data={});this._generator=Uc(e),e.name&&(this._name=e.name),n&&!Gt(n)&&(this._data.format=n)}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(e){this._name=e}set parent(e){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 Object.assign(Object.assign({name:this._name},this._data),{transform:[]})}}var jae=function(t,e,n,r,i){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?i.call(t,n):i?i.value=n:e.set(t,n),n},uet=function(t,e,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(t):r?r.value:e.get(t)},A3;function P7(t){return t instanceof Rd||t instanceof y3||t instanceof E3}class M7{constructor(){A3.set(this,void 0),jae(this,A3,!1,"f")}setModified(){jae(this,A3,!0,"f")}get modifiedFlag(){return uet(this,A3,"f")}}A3=new WeakMap;class Od extends M7{getNodeDepths(e,n,r){r.set(e,n);for(const i of e.children)this.getNodeDepths(i,n+1,r);return r}optimize(e){const r=[...this.getNodeDepths(e,0,new Map).entries()].sort((i,s)=>s[1]-i[1]);for(const i of r)this.run(i[0]);return this.modifiedFlag}}class j7 extends M7{optimize(e){this.run(e);for(const n of e.children)this.optimize(n);return this.modifiedFlag}}class aet extends j7{mergeNodes(e,n){const r=n.shift();for(const i of n)e.removeChild(i),i.parent=r,i.remove()}run(e){const n=e.children.map(i=>i.hash()),r={};for(let i=0;i<n.length;i++)r[n[i]]===void 0?r[n[i]]=[e.children[i]]:r[n[i]].push(e.children[i]);for(const i of Te(r))r[i].length>1&&(this.setModified(),this.mergeNodes(e,r[i]))}}class cet extends j7{constructor(e){super(),this.requiresSelectionId=e&&T7(e)}run(e){e instanceof Qc&&(this.requiresSelectionId&&(P7(e.parent)||e.parent instanceof xu||e.parent instanceof si)||(this.setModified(),e.remove()))}}class fet extends M7{optimize(e){return this.run(e,new Set),this.modifiedFlag}run(e,n){let r=new Set;e instanceof La&&(r=e.producedFields(),ese(r,n)&&(this.setModified(),e.removeFormulas(n),e.producedFields.length===0&&e.remove()));for(const i of e.children)this.run(i,new Set([...n,...r]))}}class xet extends j7{constructor(){super()}run(e){e instanceof Mi&&!e.isRequired()&&(this.setModified(),e.remove())}}class det extends Od{run(e){if(!P7(e)&&!(e.numChildren()>1)){for(const n of e.children)if(n instanceof si)if(e instanceof si)this.setModified(),e.merge(n);else{if(nse(e.producedFields(),n.dependentFields()))continue;this.setModified(),n.swapWithParent()}}}}class het extends Od{run(e){const n=[...e.children],r=e.children.filter(i=>i instanceof si);if(e.numChildren()>1&&r.length>=1){const i={},s=new Set;for(const o of r){const u=o.parse;for(const a of Te(u))a in i?i[a]!==u[a]&&s.add(a):i[a]=u[a]}for(const o of s)delete i[o];if(!Gt(i)){this.setModified();const o=new si(e,i);for(const u of n){if(u instanceof si)for(const a of Te(i))delete u.parse[a];e.removeChild(u),u.parent=o,u instanceof si&&Te(u.parse).length===0&&u.remove()}}}}}class pet extends Od{run(e){e instanceof Mi||e.numChildren()>0||e instanceof P2||e instanceof Rd||(this.setModified(),e.remove())}}class get extends Od{run(e){const n=e.children.filter(i=>i instanceof La),r=n.pop();for(const i of n)this.setModified(),r.merge(i)}}class met extends Od{run(e){const n=e.children.filter(i=>i instanceof xu),r={};for(const i of n){const s=Ct(i.groupBy);s in r||(r[s]=[]),r[s].push(i)}for(const i of Te(r)){const s=r[i];if(s.length>1){const o=s.pop();for(const u of s)o.merge(u)&&(e.removeChild(u),u.parent=o,u.remove(),this.setModified())}}}}class yet extends Od{constructor(e){super(),this.model=e}run(e){const n=!(P7(e)||e instanceof I2||e instanceof si||e instanceof Qc),r=[],i=[];for(const s of e.children)s instanceof Ia&&(n&&!nse(e.producedFields(),s.dependentFields())?r.push(s):i.push(s));if(r.length>0){const s=r.pop();for(const o of r)s.merge(o,this.model.renameSignal.bind(this.model));this.setModified(),e instanceof Ia?e.merge(s,this.model.renameSignal.bind(this.model)):s.swapWithParent()}if(i.length>1){const s=i.pop();for(const o of i)s.merge(o,this.model.renameSignal.bind(this.model));this.setModified()}}}class Eet extends Od{run(e){const n=[...e.children];if(!p2(n,o=>o instanceof Mi)||e.numChildren()<=1)return;const i=[];let s;for(const o of n)if(o instanceof Mi){let u=o;for(;u.numChildren()===1;){const[a]=u.children;if(a instanceof Mi)u=a;else break}i.push(...u.children),s?(e.removeChild(o),o.parent=s.parent,s.parent.removeChild(s),s.parent=u,this.setModified()):s=u}else i.push(o);if(i.length){this.setModified();for(const o of i)o.parent.removeChild(o),o.parent=s}}}class Nd extends jt{constructor(e,n){super(e),this.transform=n}clone(){return new Nd(null,ut(this.transform))}addDimensions(e){this.transform.groupby=ql(this.transform.groupby.concat(e),n=>n)}dependentFields(){const e=new Set;return this.transform.groupby&&this.transform.groupby.forEach(e.add,e),this.transform.joinaggregate.map(n=>n.field).filter(n=>n!==void 0).forEach(e.add,e),e}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(e){var n;return(n=e.as)!==null&&n!==void 0?n:$e(e)}hash(){return`JoinAggregateTransform ${Ct(this.transform)}`}assemble(){const e=[],n=[],r=[];for(const s of this.transform.joinaggregate)n.push(s.op),r.push(this.getDefaultName(s)),e.push(s.field===void 0?null:s.field);const i=this.transform.groupby;return Object.assign({type:"joinaggregate",as:r,ops:n,fields:e},i!==void 0?{groupby:i}:{})}}function Aet(t){return t.stack.stackBy.reduce((e,n)=>{const r=n.fieldDef,i=$e(r);return i&&e.push(i),e},[])}function vet(t){return _e(t)&&t.every(e=>je(e))&&t.length>1}class n0 extends jt{constructor(e,n){super(e),this._stack=n}clone(){return new n0(null,ut(this._stack))}static makeFromTransform(e,n){const{stack:r,groupby:i,as:s,offset:o="zero"}=n,u=[],a=[];if(n.sort!==void 0)for(const f of n.sort)u.push(f.field),a.push(nr(f.order,"ascending"));const l={field:u,order:a};let c;return vet(s)?c=s:je(s)?c=[s,`${s}_end`]:c=[`${n.stack}_start`,`${n.stack}_end`],new n0(e,{dimensionFieldDefs:[],stackField:r,groupby:i,offset:o,sort:l,facetby:[],as:c})}static makeFromEncoding(e,n){const r=n.stack,{encoding:i}=n;if(!r)return null;const{groupbyChannels:s,fieldChannel:o,offset:u,impute:a}=r,l=s.map(h=>{const p=i[h];return Da(p)}).filter(h=>!!h),c=Aet(n),f=n.encoding.order;let x;return _e(f)||Ie(f)?x=bse(f):x=c.reduce((h,p)=>(h.field.push(p),h.order.push(o==="y"?"descending":"ascending"),h),{field:[],order:[]}),new n0(e,{dimensionFieldDefs:l,stackField:n.vgField(o),facetby:[],stackby:c,sort:x,offset:u,impute:a,as:[n.vgField(o,{suffix:"start",forAs:!0}),n.vgField(o,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(e){this._stack.facetby.push(...e)}dependentFields(){const e=new Set;return e.add(this._stack.stackField),this.getGroupbyFields().forEach(e.add,e),this._stack.facetby.forEach(e.add,e),this._stack.sort.field.forEach(e.add,e),e}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${Ct(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:e,impute:n,groupby:r}=this._stack;return e.length>0?e.map(i=>i.bin?n?[$e(i,{binSuffix:"mid"})]:[$e(i,{}),$e(i,{binSuffix:"end"})]:[$e(i)]).flat():r??[]}assemble(){const e=[],{facetby:n,dimensionFieldDefs:r,stackField:i,stackby:s,sort:o,offset:u,impute:a,as:l}=this._stack;if(a)for(const c of r){const{bandPosition:f=.5,bin:x}=c;if(x){const h=$e(c,{expr:"datum"}),p=$e(c,{expr:"datum",binSuffix:"end"});e.push({type:"formula",expr:`${f}*${h}+${1-f}*${p}`,as:$e(c,{binSuffix:"mid",forAs:!0})})}e.push({type:"impute",field:i,groupby:[...s,...n],key:$e(c,{binSuffix:"mid"}),method:"value",value:0})}return e.push({type:"stack",groupby:[...this.getGroupbyFields(),...n],field:i,sort:o,as:l,offset:u}),e}}class M2 extends jt{constructor(e,n){super(e),this.transform=n}clone(){return new M2(null,ut(this.transform))}addDimensions(e){this.transform.groupby=ql(this.transform.groupby.concat(e),n=>n)}dependentFields(){var e,n;const r=new Set;return((e=this.transform.groupby)!==null&&e!==void 0?e:[]).forEach(r.add,r),((n=this.transform.sort)!==null&&n!==void 0?n:[]).forEach(i=>r.add(i.field)),this.transform.window.map(i=>i.field).filter(i=>i!==void 0).forEach(r.add,r),r}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(e){var n;return(n=e.as)!==null&&n!==void 0?n:$e(e)}hash(){return`WindowTransform ${Ct(this.transform)}`}assemble(){var e;const n=[],r=[],i=[],s=[];for(const x of this.transform.window)r.push(x.op),i.push(this.getDefaultName(x)),s.push(x.param===void 0?null:x.param),n.push(x.field===void 0?null:x.field);const o=this.transform.frame,u=this.transform.groupby;if(o&&o[0]===null&&o[1]===null&&r.every(x=>l8(x)))return Object.assign({type:"joinaggregate",as:i,ops:r,fields:n},u!==void 0?{groupby:u}:{});const a=[],l=[];if(this.transform.sort!==void 0)for(const x of this.transform.sort)a.push(x.field),l.push((e=x.order)!==null&&e!==void 0?e:"ascending");const c={field:a,order:l},f=this.transform.ignorePeers;return Object.assign(Object.assign(Object.assign({type:"window",params:s,as:i,ops:r,fields:n,sort:c},f!==void 0?{ignorePeers:f}:{}),u!==void 0?{groupby:u}:{}),o!==void 0?{frame:o}:{})}}function _et(t){function e(n){if(!(n instanceof P2)){const r=n.clone();if(r instanceof Mi){const i=q7+r.getSource();r.setSource(i),t.model.component.data.outputNodes[i]=r}else(r instanceof xu||r instanceof n0||r instanceof M2||r instanceof Nd)&&r.addDimensions(t.fields);for(const i of n.children.flatMap(e))i.parent=r;return[r]}return n.children.flatMap(e)}return e}function U7(t){if(t instanceof P2)if(t.numChildren()===1&&!(t.children[0]instanceof Mi)){const e=t.children[0];(e instanceof xu||e instanceof n0||e instanceof M2||e instanceof Nd)&&e.addDimensions(t.fields),e.swapWithParent(),U7(t)}else{const e=t.model.component.data.main;Uae(e);const n=_et(t),r=t.children.map(n).flat();for(const i of r)i.parent=e}else t.children.map(U7)}function Uae(t){if(t instanceof Mi&&t.type===Kt.Main&&t.numChildren()===1){const e=t.children[0];e instanceof P2||(e.swapWithParent(),Uae(t))}}const q7="scale_",$N=5;function H7(t){for(const e of t){for(const n of e.children)if(n.parent!==e)return!1;if(!H7(e.children))return!1}return!0}function du(t,e){let n=!1;for(const r of e)n=t.optimize(r)||n;return n}function qae(t,e,n){let r=t.sources,i=!1;return i=du(new xet,r)||i,i=du(new cet(e),r)||i,r=r.filter(s=>s.numChildren()>0),i=du(new pet,r)||i,r=r.filter(s=>s.numChildren()>0),n||(i=du(new det,r)||i,i=du(new yet(e),r)||i,i=du(new fet,r)||i,i=du(new het,r)||i,i=du(new met,r)||i,i=du(new get,r)||i,i=du(new aet,r)||i,i=du(new Eet,r)||i),t.sources=r,i}function Cet(t,e){H7(t.sources);let n=0,r=0;for(let i=0;i<$N&&qae(t,e,!0);i++)n++;t.sources.map(U7);for(let i=0;i<$N&&qae(t,e,!1);i++)r++;H7(t.sources),Math.max(n,r)===$N&&Re(`Maximum optimization runs(${$N}) reached.`)}class hs{constructor(e){Object.defineProperty(this,"signal",{enumerable:!0,get:e})}static fromName(e,n){return new hs(()=>e(n))}}var bet=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Hae(t){zn(t)?Tet(t):Ret(t)}function Tet(t){const e=t.component.scales;for(const n of Te(e)){const r=Net(t,n);if(e[n].setWithExplicit("domains",r),Fet(t,n),t.component.data.isFaceted){let s=t;for(;!hu(s)&&s.parent;)s=s.parent;if(s.component.resolve.scale[n]==="shared")for(const u of r.value)Kl(u)&&(u.data=q7+u.data.replace(q7,""))}}}function Ret(t){for(const n of t.children)Hae(n);const e=t.component.scales;for(const n of Te(e)){let r,i=null;for(const s of t.children){const o=s.component.scales[n];if(o){r===void 0?r=o.getWithExplicit("domains"):r=jc(r,o.getWithExplicit("domains"),"domains","scale",G7);const u=o.get("selectionExtent");i&&u&&i.param!==u.param&&Re(CVe),i=u}}e[n].setWithExplicit("domains",r),i&&e[n].set("selectionExtent",i,!0)}}function Oet(t,e,n,r){if(t==="unaggregated"){const{valid:i,reason:s}=zae(e,n);if(!i){Re(s);return}}else if(t===void 0&&r.useUnaggregatedDomain){const{valid:i}=zae(e,n);if(i)return"unaggregated"}return t}function Net(t,e){const n=t.getScaleComponent(e).get("type"),{encoding:r}=t,i=Oet(t.scaleDomain(e),t.typedFieldDef(e),n,t.config.scale);return i!==t.scaleDomain(e)&&(t.specifiedScales[e]=Object.assign(Object.assign({},t.specifiedScales[e]),{domain:i})),e==="x"&&rr(r.x2)?rr(r.x)?jc(Gc(n,i,t,"x"),Gc(n,i,t,"x2"),"domain","scale",G7):Gc(n,i,t,"x2"):e==="y"&&rr(r.y2)?rr(r.y)?jc(Gc(n,i,t,"y"),Gc(n,i,t,"y2"),"domain","scale",G7):Gc(n,i,t,"y2"):Gc(n,i,t,e)}function Det(t,e,n){return t.map(r=>({signal:`{data: ${hN(r,{timeUnit:n,type:e})}}`}))}function z7(t,e,n){var r;const i=(r=ki(n))===null||r===void 0?void 0:r.unit;return e==="temporal"||i?Det(t,e,i):[t]}function Gc(t,e,n,r){const{encoding:i}=n,s=rr(i[r]),{type:o}=s,u=s.timeUnit;if(YYe(e)){const f=Gc(t,void 0,n,r),x=z7(e.unionWith,o,u);return wa([...f.value,...x])}else{if(Ye(e))return wa([e]);if(e&&e!=="unaggregated"&&!ioe(e))return wa(z7(e,o,u))}const a=n.stack;if(a&&r===a.fieldChannel){if(a.offset==="normalize")return Us([[0,1]]);const f=n.requestDataName(Kt.Main);return Us([{data:f,field:n.vgField(r,{suffix:"start"})},{data:f,field:n.vgField(r,{suffix:"end"})}])}const l=Lc(r)&&Ie(s)?wet(n,r,t):void 0;if(Oa(s)){const f=z7([s.datum],o,u);return Us(f)}const c=s;if(e==="unaggregated"){const f=n.requestDataName(Kt.Main),{field:x}=s;return Us([{data:f,field:$e({field:x,aggregate:"min"})},{data:f,field:$e({field:x,aggregate:"max"})}])}else if(Xt(c.bin)){if(Ar(t))return Us(t==="bin-ordinal"?[]:[{data:PO(l)?n.requestDataName(Kt.Main):n.requestDataName(Kt.Raw),field:n.vgField(r,c3(c,r)?{binSuffix:"range"}:{}),sort:l===!0||!He(l)?{field:n.vgField(r,{}),op:"min"}:l}]);{const{bin:f}=c;if(Xt(f)){const x=k7(n,c.field,f);return Us([new hs(()=>{const h=n.getSignalName(x);return`[${h}.start, ${h}.stop]`})])}else return Us([{data:n.requestDataName(Kt.Main),field:n.vgField(r,{})}])}}else if(c.timeUnit&&bt(["time","utc"],t)&&Toe(c,zn(n)?n.encoding[Yl(r)]:void 0,n.markDef,n.config)){const f=n.requestDataName(Kt.Main);return Us([{data:f,field:n.vgField(r)},{data:f,field:n.vgField(r,{suffix:"end"})}])}else return Us(l?[{data:PO(l)?n.requestDataName(Kt.Main):n.requestDataName(Kt.Raw),field:n.vgField(r),sort:l}]:[{data:n.requestDataName(Kt.Main),field:n.vgField(r)}])}function Q7(t,e){const{op:n,field:r,order:i}=t;return Object.assign(Object.assign({op:n??(e?"sum":oN)},r?{field:ou(r)}:{}),i?{order:i}:{})}function Fet(t,e){var n;const r=t.component.scales[e],i=t.specifiedScales[e].domain,s=(n=t.fieldDef(e))===null||n===void 0?void 0:n.bin,o=ioe(i)&&i,u=yd(s)&&YO(s.extent)&&s.extent;(o||u)&&r.set("selectionExtent",o??u,!0)}function wet(t,e,n){if(!Ar(n))return;const r=t.fieldDef(e),i=r.sort;if(voe(i))return{op:"min",field:B2(r,e),order:"ascending"};const{stack:s}=t,o=s?new Set([...s.groupbyFields,...s.stackBy.map(u=>u.fieldDef.field)]):void 0;if(Ra(i)){const u=s&&!o.has(i.field);return Q7(i,u)}else if(Soe(i)){const{encoding:u,order:a}=i,l=t.fieldDef(u),{aggregate:c,field:f}=l,x=s&&!o.has(f);if(Xl(c)||Ic(c))return Q7({field:$e(l),order:a},x);if(l8(c)||!c)return Q7({op:c,field:f,order:a},x)}else{if(i==="descending")return{op:"min",field:t.vgField(e),order:"descending"};if(bt(["ascending",void 0],i))return!0}}function zae(t,e){const{aggregate:n,type:r}=t;return n?je(n)&&!aVe.has(n)?{valid:!1,reason:JVe(n)}:r==="quantitative"&&e==="log"?{valid:!1,reason:ZVe(t)}:{valid:!0}:{valid:!1,reason:KVe(t)}}function G7(t,e,n,r){return t.explicit&&e.explicit&&Re(iYe(n,r,t.value,e.value)),{explicit:t.explicit,value:[...t.value,...e.value]}}function Let(t){const e=ql(t.map(o=>Kl(o)?bet(o,["sort"]):o),Ct),n=ql(t.map(o=>{if(Kl(o)){const u=o.sort;return u!==void 0&&!PO(u)&&("op"in u&&u.op==="count"&&delete u.field,u.order==="ascending"&&delete u.order),u}}).filter(o=>o!==void 0),Ct);if(e.length===0)return;if(e.length===1){const o=t[0];if(Kl(o)&&n.length>0){let u=n[0];if(n.length>1)Re(Use),u=!0;else if(He(u)&&"field"in u){const a=u.field;o.field===a&&(u=u.order?{order:u.order}:!0)}return Object.assign(Object.assign({},o),{sort:u})}return o}const r=ql(n.map(o=>PO(o)||!("op"in o)||je(o.op)&&o.op in iVe?o:(Re(oYe(o)),!0)),Ct);let i;r.length===1?i=r[0]:r.length>1&&(Re(Use),i=!0);const s=ql(t.map(o=>Kl(o)?o.data:null),o=>o);return s.length===1&&s[0]!==null?Object.assign({data:s[0],fields:e.map(u=>u.field)},i?{sort:i}:{}):Object.assign({fields:e},i?{sort:i}:{})}function W7(t){if(Kl(t)&&je(t.field))return t.field;if(cVe(t)){let e;for(const n of t.fields)if(Kl(n)&&je(n.field)){if(!e)e=n.field;else if(e!==n.field)return Re(uYe),e}return Re(aYe),e}else if(fVe(t)){Re(lYe);const e=t.fields[0];return je(e)?e:void 0}}function BN(t,e){const r=t.component.scales[e].get("domains").map(i=>(Kl(i)&&(i.data=t.lookupDataSource(i.data)),i));return Let(r)}var Iet=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Qae(t){return j2(t)||X7(t)?t.children.reduce((e,n)=>e.concat(Qae(n)),Gae(t)):Gae(t)}function Gae(t){return Te(t.component.scales).reduce((e,n)=>{const r=t.component.scales[n];if(r.merged)return e;const i=r.combine(),{name:s,type:o,selectionExtent:u,domains:a,range:l,reverse:c}=i,f=Iet(i,["name","type","selectionExtent","domains","range","reverse"]),x=$et(i.range,s,n,t),h=BN(t,n),p=u?_Je(t,u,r,h):null;return e.push(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:s,type:o},h?{domain:h}:{}),p?{domainRaw:p}:{}),{range:x}),c!==void 0?{reverse:c}:{}),f)),e},[])}function $et(t,e,n,r){if(Ir(n)){if(Bc(t))return{step:{signal:`${e}_step`}}}else if(He(t)&&Kl(t))return Object.assign(Object.assign({},t),{data:r.lookupDataSource(t.data)});return t}class Wae extends t0{constructor(e,n){super({},{name:e}),this.merged=!1,this.setWithExplicit("type",n)}domainDefinitelyIncludesZero(){return this.get("zero")!==!1?!0:p2(this.get("domains"),e=>_e(e)&&e.length===2&&e[0]<=0&&e[1]>=0)}}const Bet=["range","scheme"];function ket(t){const e=t.component.scales;for(const n of VO){const r=e[n];if(!r)continue;const i=Pet(n,t);r.setWithExplicit("range",i)}}function Vae(t,e){const n=t.fieldDef(e);if(n!=null&&n.bin){const{bin:r,field:i}=n,s=fs(e),o=t.getName(s);if(He(r)&&r.binned&&r.step!==void 0)return new hs(()=>{const u=t.scaleName(e),a=`(domain("${u}")[1] - domain("${u}")[0]) / ${r.step}`;return`${t.getSignalName(o)} / (${a})`});if(Xt(r)){const u=k7(t,i,r);return new hs(()=>{const a=t.getSignalName(u),l=`(${a}.stop - ${a}.start) / ${a}.step`;return`${t.getSignalName(o)} / (${l})`})}}}function Pet(t,e){const n=e.specifiedScales[t],{size:r}=e,s=e.getScaleComponent(t).get("type");for(const f of Bet)if(n[f]!==void 0){const x=F8(s,f),h=soe(t,f);if(!x)Re(Mse(s,f,t));else if(h)Re(h);else switch(f){case"range":{const p=n.range;if(_e(p)){if(Ir(t))return wa(p.map(m=>{if(m==="width"||m==="height"){const g=e.getName(m),y=e.getSignalName.bind(e);return hs.fromName(y,g)}return m}))}else if(He(p))return wa({data:e.requestDataName(Kt.Main),field:p.field,sort:{op:"min",field:e.vgField(t)}});return wa(p)}case"scheme":return wa(Met(n[f]))}}const o=t===mn||t==="xOffset"?"width":"height",u=r[o];if(Fa(u)){if(Ir(t))if(Ar(s)){const f=Yae(u,e,t);if(f)return wa({step:f})}else Re(jse(o));else if(E2(t)){const f=t===Rc?"x":"y";if(e.getScaleComponent(f).get("type")==="band"){const p=Xae(u,s);if(p)return wa(p)}}}const{rangeMin:a,rangeMax:l}=n,c=jet(t,e);return(a!==void 0||l!==void 0)&&F8(s,"rangeMin")&&_e(c)&&c.length===2?wa([a??c[0],l??c[1]]):Us(c)}function Met(t){return VYe(t)?Object.assign({scheme:t.name},Ao(t,["name"])):{scheme:t}}function jet(t,e){const{size:n,config:r,mark:i,encoding:s}=e,o=e.getSignalName.bind(e),{type:u}=rr(s[t]),l=e.getScaleComponent(t).get("type"),{domain:c,domainMid:f}=e.specifiedScales[t];switch(t){case mn:case Er:{if(bt(["point","band"],l)){const p=Kae(t,n,r.view);if(Fa(p))return{step:Yae(p,e,t)}}const x=fs(t),h=e.getName(x);return t===Er&&js(l)?[hs.fromName(o,h),0]:[0,hs.fromName(o,h)]}case Rc:case m2:return Uet(t,e,l);case Wl:{const x=e.component.scales[t].get("zero"),h=Jae(i,x,r),p=zet(i,n,e,r);return _2(l)?Het(h,p,qet(l,r,c,t)):[h,p]}case au:return[0,Math.PI*2];case pd:return[0,360];case Ea:return[0,new hs(()=>{const x=e.getSignalName("width"),h=e.getSignalName("height");return`min(${x},${h})/2`})];case Dc:return[r.scale.minStrokeWidth,r.scale.maxStrokeWidth];case Fc:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case cs:return"symbol";case ls:case va:case _a:return l==="ordinal"?u==="nominal"?"category":"ordinal":f!==void 0?"diverging":i==="rect"||i==="geoshape"?"heatmap":"ramp";case Vl:case Oc:case Nc:return[r.scale.minOpacity,r.scale.maxOpacity]}}function Yae(t,e,n){var r,i,s,o,u;const{encoding:a}=e,l=e.getScaleComponent(n),c=cse(n),f=a[c];if(oue({step:t,offsetIsDiscrete:st(f)&&Jse(f.type)})==="offset"&&Moe(a,c)){const h=e.getScaleComponent(c);let m=`domain('${e.scaleName(c)}').length`;if(h.get("type")==="band"){const y=(i=(r=h.get("paddingInner"))!==null&&r!==void 0?r:h.get("padding"))!==null&&i!==void 0?i:0,E=(o=(s=h.get("paddingOuter"))!==null&&s!==void 0?s:h.get("padding"))!==null&&o!==void 0?o:0;m=`bandspace(${m}, ${y}, ${E})`}const g=(u=l.get("paddingInner"))!==null&&u!==void 0?u:l.get("padding");return{signal:`${t.step} * ${m} / (1-${hVe(g)})`}}else return t.step}function Xae(t,e){if(oue({step:t,offsetIsDiscrete:Ar(e)})==="offset")return{step:t.step}}function Uet(t,e,n){const r=t===Rc?"x":"y",s=e.getScaleComponent(r).get("type"),o=e.scaleName(r);if(s==="band"){const u=Kae(r,e.size,e.config.view);if(Fa(u)){const a=Xae(u,n);if(a)return a}return[0,{signal:`bandwidth('${o}')`}]}else return OWe(`Cannot use ${t} scale if ${r} scale is not discrete.`)}function Kae(t,e,n){const r=t===mn?"width":"height",i=e[r];return i||vN(n,r)}function qet(t,e,n,r){switch(t){case"quantile":return e.scale.quantileCount;case"quantize":return e.scale.quantizeCount;case"threshold":return n!==void 0&&_e(n)?n.length+1:(Re(yYe(r)),3)}}function Het(t,e,n){const r=()=>{const i=Jl(e),s=Jl(t),o=`(${i} - ${s}) / (${n} - 1)`;return`sequence(${s}, ${i} + ${o}, ${o})`};return Ye(e)?new hs(r):{signal:r()}}function Jae(t,e,n){if(e)return Ye(e)?{signal:`${e.signal} ? 0 : ${Jae(t,!1,n)}`}:0;switch(t){case"bar":case"tick":return n.scale.minBandSize;case"line":case"trail":case"rule":return n.scale.minStrokeWidth;case"text":return n.scale.minFontSize;case"point":case"square":case"circle":return n.scale.minSize}throw new Error(KO("size",t))}const Zae=.95;function zet(t,e,n,r){const i={x:Vae(n,"x"),y:Vae(n,"y")};switch(t){case"bar":case"tick":{if(r.scale.maxBandSize!==void 0)return r.scale.maxBandSize;const s=ele(e,i,r.view);return tn(s)?s-1:new hs(()=>`${s.signal} - 1`)}case"line":case"trail":case"rule":return r.scale.maxStrokeWidth;case"text":return r.scale.maxFontSize;case"point":case"square":case"circle":{if(r.scale.maxSize)return r.scale.maxSize;const s=ele(e,i,r.view);return tn(s)?Math.pow(Zae*s,2):new hs(()=>`pow(${Zae} * ${s.signal}, 2)`)}}throw new Error(KO("size",t))}function ele(t,e,n){const r=Fa(t.width)?t.width.step:SN(n,"width"),i=Fa(t.height)?t.height.step:SN(n,"height");return e.x||e.y?new hs(()=>`min(${[e.x?e.x.signal:r,e.y?e.y.signal:i].join(", ")})`):Math.min(r,i)}function tle(t,e){zn(t)?Qet(t,e):ile(t,e)}function Qet(t,e){const n=t.component.scales,{config:r,encoding:i,markDef:s,specifiedScales:o}=t;for(const u of Te(n)){const a=o[u],l=n[u],c=t.getScaleComponent(u),f=rr(i[u]),x=a[e],h=c.get("type"),p=c.get("padding"),m=c.get("paddingInner"),g=F8(h,e),y=soe(u,e);if(x!==void 0&&(g?y&&Re(y):Re(Mse(h,e,u))),g&&y===void 0)if(x!==void 0){const E=f.timeUnit,A=f.type;switch(e){case"domainMax":case"domainMin":Ad(a[e])||A==="temporal"||E?l.set(e,{signal:hN(a[e],{type:A,timeUnit:E})},!0):l.set(e,a[e],!0);break;default:l.copyKeyFromObject(e,a)}}else{const E=e in nle?nle[e]({model:t,channel:u,fieldOrDatumDef:f,scaleType:h,scalePadding:p,scalePaddingInner:m,domain:a.domain,domainMin:a.domainMin,domainMax:a.domainMax,markDef:s,config:r,hasNestedOffsetScale:Y8(i,u)}):r.scale[e];E!==void 0&&l.set(e,E,!1)}}}const nle={bins:({model:t,fieldOrDatumDef:e})=>Ie(e)?Get(t,e):void 0,interpolate:({channel:t,fieldOrDatumDef:e})=>Wet(t,e.type),nice:({scaleType:t,channel:e,domain:n,domainMin:r,domainMax:i,fieldOrDatumDef:s})=>Vet(t,e,n,r,i,s),padding:({channel:t,scaleType:e,fieldOrDatumDef:n,markDef:r,config:i})=>Yet(t,e,i.scale,n,r,i.bar),paddingInner:({scalePadding:t,channel:e,markDef:n,scaleType:r,config:i,hasNestedOffsetScale:s})=>Xet(t,e,n.type,r,i.scale,s),paddingOuter:({scalePadding:t,channel:e,scaleType:n,scalePaddingInner:r,config:i,hasNestedOffsetScale:s})=>Ket(t,e,n,r,i.scale,s),reverse:({fieldOrDatumDef:t,scaleType:e,channel:n,config:r})=>{const i=Ie(t)?t.sort:void 0;return Jet(e,i,n,r.scale)},zero:({channel:t,fieldOrDatumDef:e,domain:n,markDef:r,scaleType:i})=>Zet(t,e,n,r,i)};function rle(t){zn(t)?ket(t):ile(t,"range")}function ile(t,e){const n=t.component.scales;for(const r of t.children)e==="range"?rle(r):tle(r,e);for(const r of Te(n)){let i;for(const s of t.children){const o=s.component.scales[r];if(o){const u=o.getWithExplicit(e);i=jc(i,u,e,"scale",wue((a,l)=>{switch(e){case"range":return a.step&&l.step?a.step-l.step:0}return 0}))}}n[r].setWithExplicit(e,i)}}function Get(t,e){const n=e.bin;if(Xt(n)){const r=k7(t,e.field,n);return new hs(()=>t.getSignalName(r))}else if(Bi(n)&&yd(n)&&n.step!==void 0)return{step:n.step}}function Wet(t,e){if(bt([ls,va,_a],t)&&e!=="nominal")return"hcl"}function Vet(t,e,n,r,i,s){var o;if(!(!((o=Da(s))===null||o===void 0)&&o.bin||_e(n)||i!=null||r!=null||bt([ds.TIME,ds.UTC],t)))return Ir(e)?!0:void 0}function Yet(t,e,n,r,i,s){if(Ir(t)){if(cu(e)){if(n.continuousPadding!==void 0)return n.continuousPadding;const{type:o,orient:u}=i;if(o==="bar"&&!(Ie(r)&&(r.bin||r.timeUnit))&&(u==="vertical"&&t==="x"||u==="horizontal"&&t==="y"))return s.continuousBandSize}if(e===ds.POINT)return n.pointPadding}}function Xet(t,e,n,r,i,s=!1){if(t===void 0){if(Ir(e)){const{bandPaddingInner:o,barBandPaddingInner:u,rectBandPaddingInner:a,bandWithNestedOffsetPaddingInner:l}=i;return s?l:nr(o,n==="bar"?u:a)}else if(E2(e)&&r===ds.BAND)return i.offsetBandPaddingInner}}function Ket(t,e,n,r,i,s=!1){if(t===void 0){if(Ir(e)){const{bandPaddingOuter:o,bandWithNestedOffsetPaddingOuter:u}=i;if(s)return u;if(n===ds.BAND)return nr(o,Ye(r)?{signal:`${r.signal}/2`}:r/2)}else if(E2(e)){if(n===ds.POINT)return .5;if(n===ds.BAND)return i.offsetBandPaddingOuter}}}function Jet(t,e,n,r){if(n==="x"&&r.xReverse!==void 0)return js(t)&&e==="descending"?Ye(r.xReverse)?{signal:`!${r.xReverse.signal}`}:!r.xReverse:r.xReverse;if(js(t)&&e==="descending")return!0}function Zet(t,e,n,r,i){if(!!n&&n!=="unaggregated"&&js(i)){if(_e(n)){const o=n[0],u=n[n.length-1];if(o<=0&&u>=0)return!0}return!1}if(t==="size"&&e.type==="quantitative"&&!_2(i))return!0;if(!(Ie(e)&&e.bin)&&bt([...Ca,...XWe],t)){const{orient:o,type:u}=r;return!(bt(["bar","area","line","trail"],u)&&(o==="horizontal"&&t==="y"||o==="vertical"&&t==="x"))}return!1}function ett(t,e,n,r,i=!1){const s=ttt(e,n,r,i),{type:o}=t;return Lc(e)?o!==void 0?eXe(e,o)?Ie(n)&&!ZYe(o,n.type)?(Re(nYe(o,s)),s):o:(Re(tYe(e,o,s)),s):s:null}function ttt(t,e,n,r){var i;switch(e.type){case"nominal":case"ordinal":{if(y2(t)||a8(t)==="discrete")return t==="shape"&&e.type==="ordinal"&&Re(p8(t,"ordinal")),"ordinal";if(Ir(t)||E2(t)){if(bt(["rect","bar","image","rule"],n.type)||r)return"band"}else if(n.type==="arc"&&t in u8)return"band";const s=n[fs(t)];return C2(s)||Q8(e)&&(!((i=e.axis)===null||i===void 0)&&i.tickBand)?"band":"point"}case"temporal":return y2(t)?"time":a8(t)==="discrete"?(Re(p8(t,"temporal")),"ordinal"):Ie(e)&&e.timeUnit&&ki(e.timeUnit).utc?"utc":"time";case"quantitative":return y2(t)?Ie(e)&&Xt(e.bin)?"bin-ordinal":"linear":a8(t)==="discrete"?(Re(p8(t,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(kse(e.type))}function ntt(t,{ignoreRange:e}={}){sle(t),Hae(t);for(const n of JYe)tle(t,n);e||rle(t)}function sle(t){zn(t)?t.component.scales=rtt(t):t.component.scales=stt(t)}function rtt(t){const{encoding:e,mark:n,markDef:r}=t,i={};for(const s of VO){const o=rr(e[s]);if(o&&n===aoe&&s===cs&&o.type===v2)continue;let u=o&&o.scale;if(E2(s)){const a=fse(s);if(!Y8(e,a)){u&&Re(UVe(s));continue}}if(o&&u!==null&&u!==!1){u??(u={});const a=Y8(e,s),l=ett(u,s,o,r,a);i[s]=new Wae(t.scaleName(`${s}`,!0),{value:l,explicit:u.type===l})}}return i}const itt=wue((t,e)=>Zse(t)-Zse(e));function stt(t){var e,n;const r=t.component.scales={},i={},s=t.component.resolve;for(const o of t.children){sle(o);for(const u of Te(o.component.scales))if((e=(n=s.scale)[u])!==null&&e!==void 0||(n[u]=_ae(u,t)),s.scale[u]==="shared"){const a=i[u],l=o.component.scales[u].getWithExplicit("type");a?HYe(a.value,l.value)?i[u]=jc(a,l,"type","scale",itt):(s.scale[u]="independent",delete i[u]):i[u]=l}}for(const o of Te(i)){const u=t.scaleName(o,!0),a=i[o];r[o]=new Wae(u,a);for(const l of t.children){const c=l.component.scales[o];c&&(l.renameScale(c.get("name"),u),c.merged=!0)}}return r}var V7=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class Y7{constructor(){this.nameMap={}}rename(e,n){this.nameMap[e]=n}has(e){return this.nameMap[e]!==void 0}get(e){for(;this.nameMap[e]&&e!==this.nameMap[e];)e=this.nameMap[e];return e}}function zn(t){return(t==null?void 0:t.type)==="unit"}function hu(t){return(t==null?void 0:t.type)==="facet"}function X7(t){return(t==null?void 0:t.type)==="concat"}function j2(t){return(t==null?void 0:t.type)==="layer"}class K7{constructor(e,n,r,i,s,o,u){var a,l;this.type=n,this.parent=r,this.config=s,this.correctDataNames=c=>{var f,x,h;return!((f=c.from)===null||f===void 0)&&f.data&&(c.from.data=this.lookupDataSource(c.from.data)),!((h=(x=c.from)===null||x===void 0?void 0:x.facet)===null||h===void 0)&&h.data&&(c.from.facet.data=this.lookupDataSource(c.from.facet.data)),c},this.parent=r,this.config=s,this.view=xs(u),this.name=(a=e.name)!==null&&a!==void 0?a:i,this.title=$c(e.title)?{text:e.title}:e.title?xs(e.title):void 0,this.scaleNameMap=r?r.scaleNameMap:new Y7,this.projectionNameMap=r?r.projectionNameMap:new Y7,this.signalNameMap=r?r.signalNameMap:new Y7,this.data=e.data,this.description=e.description,this.transforms=sJe((l=e.transform)!==null&&l!==void 0?l:[]),this.layout=n==="layer"||n==="unit"?{}:xKe(e,n,s),this.component={data:{sources:r?r.component.data.sources:[],outputNodes:r?r.component.data.outputNodes:{},outputNodeRefCounts:r?r.component.data.outputNodeRefCounts:{},isFaceted:uN(e)||(r==null?void 0:r.component.data.isFaceted)&&e.data===void 0},layoutSize:new t0,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:Object.assign({scale:{},axis:{},legend:{}},o?ut(o):{}),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(){ntt(this)}parseProjection(){Bae(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){Fae(this)}assembleEncodeFromView(e){const n=V7(e,["style"]),r={};for(const i of Te(n)){const s=n[i];s!==void 0&&(r[i]=sn(s))}return r}assembleGroupEncodeEntry(e){let n={};return this.view&&(n=this.assembleEncodeFromView(this.view)),!e&&(this.description&&(n.description=sn(this.description)),this.type==="unit"||this.type==="layer")?Object.assign({width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height")},n??{}):Gt(n)?void 0:n}assembleLayout(){if(!this.layout)return;const e=this.layout,{spacing:n}=e,r=V7(e,["spacing"]),{component:i,config:s}=this,o=AZe(i.layoutHeaders,s);return Object.assign(Object.assign(Object.assign({padding:n},this.assembleDefaultLayout()),r),o?{titleBand:o}:{})}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:e}=this.component;let n=[];for(const r of vo)e[r].title&&n.push(hZe(this,r));for(const r of F7)n=n.concat(pZe(this,r));return n}assembleAxes(){return nZe(this.component.axes,this.config)}assembleLegends(){return Lae(this)}assembleProjections(){return zZe(this)}assembleTitle(){var e,n,r;const i=(e=this.title)!==null&&e!==void 0?e:{},{encoding:s}=i,o=V7(i,["encoding"]),u=Object.assign(Object.assign(Object.assign({},Ese(this.config.title).nonMarkTitleProperties),o),s?{encode:{update:s}}:{});if(u.text)return bt(["unit","layer"],this.type)?bt(["middle",void 0],u.anchor)&&((n=u.frame)!==null&&n!==void 0||(u.frame="group")):(r=u.anchor)!==null&&r!==void 0||(u.anchor="start"),Gt(u)?void 0:u}assembleGroup(e=[]){const n={};e=e.concat(this.assembleSignals()),e.length>0&&(n.signals=e);const r=this.assembleLayout();r&&(n.layout=r),n.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||hu(this.parent)?Qae(this):[];i.length>0&&(n.scales=i);const s=this.assembleAxes();s.length>0&&(n.axes=s);const o=this.assembleLegends();return o.length>0&&(n.legends=o),n}getName(e){return gn((this.name?`${this.name}_`:"")+e)}getDataName(e){return this.getName(Kt[e].toLowerCase())}requestDataName(e){const n=this.getDataName(e),r=this.component.data.outputNodeRefCounts;return r[n]=(r[n]||0)+1,n}getSizeSignalRef(e){if(hu(this.parent)){const n=Sae(e),r=WO(n),i=this.component.scales[r];if(i&&!i.merged){const s=i.get("type"),o=i.get("range");if(Ar(s)&&Bc(o)){const u=i.get("name"),a=BN(this,r),l=W7(a);if(l){const c=$e({aggregate:"distinct",field:l},{expr:"datum"});return{signal:Aae(u,i,c)}}else return Re(d8(r)),null}}}return{signal:this.signalNameMap.get(this.getName(e))}}lookupDataSource(e){const n=this.component.data.outputNodes[e];return n?n.getSource():e}getSignalName(e){return this.signalNameMap.get(e)}renameSignal(e,n){this.signalNameMap.rename(e,n)}renameScale(e,n){this.scaleNameMap.rename(e,n)}renameProjection(e,n){this.projectionNameMap.rename(e,n)}scaleName(e,n){if(n)return this.getName(e);if(ase(e)&&Lc(e)&&this.component.scales[e]||this.scaleNameMap.has(this.getName(e)))return this.scaleNameMap.get(this.getName(e))}projectionName(e){if(e)return this.getName("projection");if(this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection")))return this.projectionNameMap.get(this.getName("projection"))}getScaleComponent(e){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const n=this.component.scales[e];return n&&!n.merged?n:this.parent?this.parent.getScaleComponent(e):void 0}getSelectionComponent(e,n){let r=this.component.selection[e];if(!r&&this.parent&&(r=this.parent.getSelectionComponent(e,n)),!r)throw new Error(EVe(n));return r}hasAxisOrientSignalRef(){var e,n;return((e=this.component.axes.x)===null||e===void 0?void 0:e.some(r=>r.hasOrientSignalRef()))||((n=this.component.axes.y)===null||n===void 0?void 0:n.some(r=>r.hasOrientSignalRef()))}}class ole extends K7{vgField(e,n={}){const r=this.fieldDef(e);if(r)return $e(r,n)}reduceFieldDef(e,n){return qXe(this.getMapping(),(r,i,s)=>{const o=Da(i);return o?e(r,o,s):r},n)}forEachFieldDef(e,n){K8(this.getMapping(),(r,i)=>{const s=Da(r);s&&e(s,i)},n)}}var ott=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class kN extends jt{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"value",(s=o[1])!==null&&s!==void 0?s:"density"]}clone(){return new kN(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.density,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${Ct(this.transform)}`}assemble(){const e=this.transform,{density:n}=e,r=ott(e,["density"]);return Object.assign({type:"kde",field:n},r)}}class S3 extends jt{constructor(e,n){super(e),this.filter=n}clone(){return new S3(null,Object.assign({},this.filter))}static make(e,n){const{config:r,mark:i,markDef:s}=n;if($t("invalid",s,r)!=="filter")return null;const u=n.reduceFieldDef((a,l,c)=>{const f=Lc(c)&&n.getScaleComponent(c);if(f){const x=f.get("type");js(x)&&l.aggregate!=="count"&&!kc(i)&&(a[l.field]=l)}return a},{});return Te(u).length?new S3(e,u):null}dependentFields(){return new Set(Te(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${Ct(this.filter)}`}assemble(){const e=Te(this.filter).reduce((n,r)=>{const i=this.filter[r],s=$e(i,{expr:"datum"});return i!==null&&(i.type==="temporal"?n.push(`(isDate(${s}) || (isValid(${s}) && isFinite(+${s})))`):i.type==="quantitative"&&(n.push(`isValid(${s})`),n.push(`isFinite(+${s})`))),n},[]);return e.length>0?{type:"filter",expr:e.join(" && ")}:null}}class PN extends jt{constructor(e,n){super(e),this.transform=n,this.transform=ut(n);const{flatten:r,as:i=[]}=this.transform;this.transform.as=r.map((s,o)=>{var u;return(u=i[o])!==null&&u!==void 0?u:s})}clone(){return new PN(this.parent,ut(this.transform))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${Ct(this.transform)}`}assemble(){const{flatten:e,as:n}=this.transform;return{type:"flatten",fields:e,as:n}}}class MN extends jt{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"key",(s=o[1])!==null&&s!==void 0?s:"value"]}clone(){return new MN(null,ut(this.transform))}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${Ct(this.transform)}`}assemble(){const{fold:e,as:n}=this.transform;return{type:"fold",fields:e,as:n}}}class U2 extends jt{constructor(e,n,r,i){super(e),this.fields=n,this.geojson=r,this.signal=i}clone(){return new U2(null,ut(this.fields),this.geojson,this.signal)}static parseAll(e,n){if(n.component.projection&&!n.component.projection.isFit)return e;let r=0;for(const i of[[Sa,Aa],[So,lu]]){const s=i.map(o=>{const u=rr(n.encoding[o]);return Ie(u)?u.field:Oa(u)?{expr:`${u.datum}`}:fu(u)?{expr:`${u.value}`}:void 0});(s[0]||s[1])&&(e=new U2(e,s,null,n.getName(`geojson_${r++}`)))}if(n.channelHasField(cs)){const i=n.typedFieldDef(cs);i.type===v2&&(e=new U2(e,null,i.field,n.getName(`geojson_${r++}`)))}return e}dependentFields(){var e;const n=((e=this.fields)!==null&&e!==void 0?e:[]).filter(je);return new Set([...this.geojson?[this.geojson]:[],...n])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${Ct(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],Object.assign(Object.assign(Object.assign({type:"geojson"},this.fields?{fields:this.fields}:{}),this.geojson?{geojson:this.geojson}:{}),{signal:this.signal})]}}class v3 extends jt{constructor(e,n,r,i){super(e),this.projection=n,this.fields=r,this.as=i}clone(){return new v3(null,this.projection,ut(this.fields),ut(this.as))}static parseAll(e,n){if(!n.projectionName())return e;for(const r of[[Sa,Aa],[So,lu]]){const i=r.map(o=>{const u=rr(n.encoding[o]);return Ie(u)?u.field:Oa(u)?{expr:`${u.datum}`}:fu(u)?{expr:`${u.value}`}:void 0}),s=r[0]===So?"2":"";(i[0]||i[1])&&(e=new v3(e,n.projectionName(),i,[n.getName(`x${s}`),n.getName(`y${s}`)]))}return e}dependentFields(){return new Set(this.fields.filter(je))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${Ct(this.fields)} ${Ct(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class Dd extends jt{constructor(e,n){super(e),this.transform=n}clone(){return new Dd(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.impute,this.transform.key,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set([this.transform.impute])}processSequence(e){const{start:n=0,stop:r,step:i}=e;return{signal:`sequence(${[n,r,...i?[i]:[]].join(",")})`}}static makeFromTransform(e,n){return new Dd(e,n)}static makeFromEncoding(e,n){const r=n.encoding,i=r.x,s=r.y;if(Ie(i)&&Ie(s)){const o=i.impute?i:s.impute?s:void 0;if(o===void 0)return;const u=i.impute?s:s.impute?i:void 0,{method:a,value:l,frame:c,keyvals:f}=o.impute,x=Uoe(n.mark,r);return new Dd(e,Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({impute:o.field,key:u.field},a?{method:a}:{}),l!==void 0?{value:l}:{}),c?{frame:c}:{}),f!==void 0?{keyvals:f}:{}),x.length?{groupby:x}:{}))}return null}hash(){return`Impute ${Ct(this.transform)}`}assemble(){const{impute:e,key:n,keyvals:r,method:i,groupby:s,value:o,frame:u=[null,null]}=this.transform,a=Object.assign(Object.assign(Object.assign(Object.assign({type:"impute",field:e,key:n},r?{keyvals:UKe(r)?this.processSequence(r):r}:{}),{method:"value"}),s?{groupby:s}:{}),{value:!i||i==="value"?o:null});if(i&&i!=="value"){const l=Object.assign({type:"window",as:[`imputed_${e}_value`],ops:[i],fields:[e],frame:u,ignorePeers:!1},s?{groupby:s}:{}),c={type:"formula",expr:`datum.${e} === null ? datum.imputed_${e}_value : datum.${e}`,as:e};return[a,l,c]}else return[a]}}var utt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class jN extends jt{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:n.on,(s=o[1])!==null&&s!==void 0?s:n.loess]}clone(){return new jN(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.loess,this.transform.on,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${Ct(this.transform)}`}assemble(){const e=this.transform,{loess:n,on:r}=e,i=utt(e,["loess","on"]);return Object.assign({type:"loess",x:r,y:n},i)}}class _3 extends jt{constructor(e,n,r){super(e),this.transform=n,this.secondary=r}clone(){return new _3(null,ut(this.transform),this.secondary)}static make(e,n,r,i){const s=n.component.data.sources,{from:o}=r;let u=null;if(qKe(o)){let a=cle(o.data,s);a||(a=new Rd(o.data),s.push(a));const l=n.getName(`lookup_${i}`);u=new Mi(a,l,Kt.Lookup,n.component.data.outputNodeRefCounts),n.component.data.outputNodes[l]=u}else if(HKe(o)){const a=o.param;r=Object.assign({as:a},r);let l;try{l=n.getSelectionComponent(gn(a),a)}catch{throw new Error(vVe(a))}if(u=l.materialized,!u)throw new Error(_Ve(a))}return new _3(e,r,u.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?Pe(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${Ct({transform:this.transform,secondary:this.secondary})}`}assemble(){let e;if(this.transform.from.fields)e=Object.assign({values:this.transform.from.fields},this.transform.as?{as:Pe(this.transform.as)}:{});else{let n=this.transform.as;je(n)||(Re(FVe),n="_lookup"),e={as:[n]}}return Object.assign(Object.assign({type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup]},e),this.transform.default?{default:this.transform.default}:{})}}var att=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class UN extends jt{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"prob",(s=o[1])!==null&&s!==void 0?s:"value"]}clone(){return new UN(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.quantile,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${Ct(this.transform)}`}assemble(){const e=this.transform,{quantile:n}=e,r=att(e,["quantile"]);return Object.assign({type:"quantile",field:n},r)}}var ltt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class qN extends jt{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:n.on,(s=o[1])!==null&&s!==void 0?s:n.regression]}clone(){return new qN(null,ut(this.transform))}dependentFields(){var e;return new Set([this.transform.regression,this.transform.on,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${Ct(this.transform)}`}assemble(){const e=this.transform,{regression:n,on:r}=e,i=ltt(e,["regression","on"]);return Object.assign({type:"regression",x:r,y:n},i)}}class HN extends jt{constructor(e,n){super(e),this.transform=n}clone(){return new HN(null,ut(this.transform))}addDimensions(e){var n;this.transform.groupby=ql(((n=this.transform.groupby)!==null&&n!==void 0?n:[]).concat(e),r=>r)}producedFields(){}dependentFields(){var e;return new Set([this.transform.pivot,this.transform.value,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}hash(){return`PivotTransform ${Ct(this.transform)}`}assemble(){const{pivot:e,value:n,groupby:r,limit:i,op:s}=this.transform;return Object.assign(Object.assign(Object.assign({type:"pivot",field:e,value:n},i!==void 0?{limit:i}:{}),s!==void 0?{op:s}:{}),r!==void 0?{groupby:r}:{})}}class zN extends jt{constructor(e,n){super(e),this.transform=n}clone(){return new zN(null,ut(this.transform))}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${Ct(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function ule(t){let e=0;function n(r,i){var s;if(r instanceof Rd&&!r.isGenerator&&!N2(r.data)&&(t.push(i),i={name:null,source:i.name,transform:[]}),r instanceof si&&(r.parent instanceof Rd&&!i.source?(i.format=Object.assign(Object.assign({},(s=i.format)!==null&&s!==void 0?s:{}),{parse:r.assembleFormatParse()}),i.transform.push(...r.assembleTransforms(!0))):i.transform.push(...r.assembleTransforms())),r instanceof P2){i.name||(i.name=`data_${e++}`),!i.source||i.transform.length>0?(t.push(i),r.data=i.name):r.data=i.source,t.push(...r.assemble());return}switch((r instanceof y3||r instanceof E3||r instanceof S3||r instanceof I2||r instanceof $2||r instanceof v3||r instanceof xu||r instanceof _3||r instanceof M2||r instanceof Nd||r instanceof MN||r instanceof PN||r instanceof kN||r instanceof jN||r instanceof UN||r instanceof qN||r instanceof Qc||r instanceof zN||r instanceof HN)&&i.transform.push(r.assemble()),(r instanceof Ia||r instanceof La||r instanceof Dd||r instanceof n0||r instanceof U2)&&i.transform.push(...r.assemble()),r instanceof Mi&&(i.source&&i.transform.length===0?r.setSource(i.source):r.parent instanceof Mi?r.setSource(i.name):(i.name||(i.name=`data_${e++}`),r.setSource(i.name),r.numChildren()===1&&(t.push(i),i={name:null,source:i.name,transform:[]}))),r.numChildren()){case 0:r instanceof Mi&&(!i.source||i.transform.length>0)&&t.push(i);break;case 1:n(r.children[0],i);break;default:{i.name||(i.name=`data_${e++}`);let o=i.name;!i.source||i.transform.length>0?t.push(i):o=i.source;for(const u of r.children)n(u,{name:null,source:o,transform:[]});break}}}return n}function ctt(t){const e=[],n=ule(e);for(const r of t.children)n(r,{source:t.name,name:null,transform:[]});return e}function ftt(t,e){var n,r;const i=[],s=ule(i);let o=0;for(const a of t.sources){a.hasName()||(a.dataName=`source_${o++}`);const l=a.assemble();s(a,l)}for(const a of i)a.transform.length===0&&delete a.transform;let u=0;for(const[a,l]of i.entries())((n=l.transform)!==null&&n!==void 0?n:[]).length===0&&!l.source&&i.splice(u++,0,i.splice(a,1)[0]);for(const a of i)for(const l of(r=a.transform)!==null&&r!==void 0?r:[])l.type==="lookup"&&(l.from=t.outputNodes[l.from].getSource());for(const a of i)a.name in e&&(a.values=e[a.name]);return i}function xtt(t){return t==="top"||t==="left"||Ye(t)?"header":"footer"}function dtt(t){for(const e of vo)htt(t,e);lle(t,"x"),lle(t,"y")}function htt(t,e){var n;const{facet:r,config:i,child:s,component:o}=t;if(t.channelHasField(e)){const u=r[e],a=k2("title",null,i,e);let l=b2(u,i,{allowDisabling:!0,includeDefault:a===void 0||!!a});s.component.layoutHeaders[e].title&&(l=_e(l)?l.join(", "):l,l+=` / ${s.component.layoutHeaders[e].title}`,s.component.layoutHeaders[e].title=null);const c=k2("labelOrient",u.header,i,e),f=u.header!==null?nr((n=u.header)===null||n===void 0?void 0:n.labels,i.header.labels,!0):!1,x=bt(["bottom","right"],c)?"footer":"header";o.layoutHeaders[e]={title:u.header!==null?l:null,facetFieldDef:u,[x]:e==="facet"?[]:[ale(t,e,f)]}}}function ale(t,e,n){const r=e==="row"?"height":"width";return{labels:n,sizeSignal:t.child.component.layoutSize.get(r)?t.child.getSizeSignalRef(r):void 0,axes:[]}}function lle(t,e){var n;const{child:r}=t;if(r.component.axes[e]){const{layoutHeaders:i,resolve:s}=t.component;if(s.axis[e]=$7(s,e),s.axis[e]==="shared"){const o=e==="x"?"column":"row",u=i[o];for(const a of r.component.axes[e]){const l=xtt(a.get("orient"));(n=u[l])!==null&&n!==void 0||(u[l]=[ale(t,o,!1)]);const c=m3(a,"main",t.config,{header:!0});c&&u[l][0].axes.push(c),a.mainExtracted=!0}}}}function ptt(t){J7(t),QN(t,"width"),QN(t,"height")}function gtt(t){J7(t);const e=t.layout.columns===1?"width":"childWidth",n=t.layout.columns===void 0?"height":"childHeight";QN(t,e),QN(t,n)}function J7(t){for(const e of t.children)e.parseLayoutSize()}function QN(t,e){var n;const r=Sae(e),i=WO(r),s=t.component.resolve,o=t.component.layoutSize;let u;for(const a of t.children){const l=a.component.layoutSize.getWithExplicit(r),c=(n=s.scale[i])!==null&&n!==void 0?n:_ae(i,t);if(c==="independent"&&l.value==="step"){u=void 0;break}if(u){if(c==="independent"&&u.value!==l.value){u=void 0;break}u=jc(u,l,r,"")}else u=l}if(u){for(const a of t.children)t.renameSignal(a.getName(r),t.getName(e)),a.component.layoutSize.set(r,"merged",!1);o.setWithExplicit(e,u)}else o.setWithExplicit(e,{explicit:!1,value:void 0})}function mtt(t){const{size:e,component:n}=t;for(const r of Ca){const i=fs(r);if(e[i]){const s=e[i];n.layoutSize.set(i,Fa(s)?"step":s,!0)}else{const s=ytt(t,i);n.layoutSize.set(i,s,!1)}}}function ytt(t,e){const n=e==="width"?"x":"y",r=t.config,i=t.getScaleComponent(n);if(i){const s=i.get("type"),o=i.get("range");if(Ar(s)){const u=vN(r.view,e);return Bc(o)||Fa(u)?"step":u}else return l7(r.view,e)}else{if(t.hasProjection||t.mark==="arc")return l7(r.view,e);{const s=vN(r.view,e);return Fa(s)?s.step:s}}}function Z7(t,e,n){return $e(e,Object.assign({suffix:`by_${$e(t)}`},n??{}))}class C3 extends ole{constructor(e,n,r,i){super(e,"facet",n,r,i,e.resolve),this.child=iP(e.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(e.facet)}initFacet(e){if(!a3(e))return{facet:this.initFacetFieldDef(e,"facet")};const n=Te(e),r={};for(const i of n){if(![Hl,zl].includes(i)){Re(KO(i,"facet"));break}const s=e[i];if(s.field===void 0){Re(h8(s,i));break}r[i]=this.initFacetFieldDef(s,i)}return r}initFacetFieldDef(e,n){const r=V8(e,n);return r.header?r.header=xs(r.header):r.header===null&&(r.header=null),r}channelHasField(e){return!!this.facet[e]}fieldDef(e){return this.facet[e]}parseData(){this.component.data=GN(this),this.child.parseData()}parseLayoutSize(){J7(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),dtt(this)}assembleSelectionTopLevelSignals(e){return this.child.assembleSelectionTopLevelSignals(e)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(e){return this.child.assembleSelectionData(e)}getHeaderLayoutMixins(){var e,n,r;const i={};for(const s of vo)for(const o of w7){const u=this.component.layoutHeaders[s],a=u[o],{facetFieldDef:l}=u;if(l){const c=k2("titleOrient",l.header,this.config,s);if(["right","bottom"].includes(c)){const f=wN(s,c);(e=i.titleAnchor)!==null&&e!==void 0||(i.titleAnchor={}),i.titleAnchor[f]="end"}}if(a!=null&&a[0]){const c=s==="row"?"height":"width",f=o==="header"?"headerBand":"footerBand";s!=="facet"&&!this.child.component.layoutSize.get(c)&&((n=i[f])!==null&&n!==void 0||(i[f]={}),i[f][s]=.5),u.title&&((r=i.offset)!==null&&r!==void 0||(i.offset={}),i.offset[s==="row"?"rowTitle":"columnTitle"]=10)}}return i}assembleDefaultLayout(){const{column:e,row:n}=this.facet,r=e?this.columnDistinctSignal():n?1:void 0;let i="all";return(!n&&this.component.resolve.scale.x==="independent"||!e&&this.component.resolve.scale.y==="independent")&&(i="none"),Object.assign(Object.assign(Object.assign({},this.getHeaderLayoutMixins()),r?{columns:r}:{}),{bounds:"full",align:i})}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof C3))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(e){return this.parent&&this.parent instanceof C3?Object.assign(Object.assign({},this.channelHasField("column")?{encode:{update:{columns:{field:$e(this.facet.column,{prefix:"distinct"})}}}}:{}),super.assembleGroup(e)):super.assembleGroup(e)}getCardinalityAggregateForChild(){const e=[],n=[],r=[];if(this.child instanceof C3){if(this.child.channelHasField("column")){const i=$e(this.child.facet.column);e.push(i),n.push("distinct"),r.push(`distinct_${i}`)}}else for(const i of Ca){const s=this.child.component.scales[i];if(s&&!s.merged){const o=s.get("type"),u=s.get("range");if(Ar(o)&&Bc(u)){const a=BN(this.child,i),l=W7(a);l?(e.push(l),n.push("distinct"),r.push(`distinct_${l}`)):Re(d8(i))}}}return{fields:e,ops:n,as:r}}assembleFacet(){const{name:e,data:n}=this.component.data.facetRoot,{row:r,column:i}=this.facet,{fields:s,ops:o,as:u}=this.getCardinalityAggregateForChild(),a=[];for(const c of vo){const f=this.facet[c];if(f){a.push($e(f));const{bin:x,sort:h}=f;if(Xt(x)&&a.push($e(f,{binSuffix:"end"})),Ra(h)){const{field:p,op:m=oN}=h,g=Z7(f,h);r&&i?(s.push(g),o.push("max"),u.push(g)):(s.push(p),o.push(m),u.push(g))}else if(_e(h)){const p=B2(f,c);s.push(p),o.push("max"),u.push(p)}}}const l=!!r&&!!i;return Object.assign({name:e,data:n,groupby:a},l||s.length>0?{aggregate:Object.assign(Object.assign({},l?{cross:l}:{}),s.length?{fields:s,ops:o,as:u}:{})}:{})}facetSortFields(e){const{facet:n}=this,r=n[e];return r?Ra(r.sort)?[Z7(r,r.sort,{expr:"datum"})]:_e(r.sort)?[B2(r,e,{expr:"datum"})]:[$e(r,{expr:"datum"})]:[]}facetSortOrder(e){const{facet:n}=this,r=n[e];if(r){const{sort:i}=r;return[(Ra(i)?i.order:!_e(i)&&i)||"ascending"]}return[]}assembleLabelTitle(){var e;const{facet:n,config:r}=this;if(n.facet)return L7(n.facet,"facet",r);const i={row:["top","bottom"],column:["left","right"]};for(const s of F7)if(n[s]){const o=k2("labelOrient",(e=n[s])===null||e===void 0?void 0:e.header,r,s);if(i[s].includes(o))return L7(n[s],s,r)}}assembleMarks(){const{child:e}=this,n=this.component.data.facetRoot,r=ctt(n),i=e.assembleGroupEncodeEntry(!1),s=this.assembleLabelTitle()||e.assembleTitle(),o=e.assembleGroupStyle();return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:this.getName("cell"),type:"group"},s?{title:s}:{}),o?{style:o}:{}),{from:{facet:this.assembleFacet()},sort:{field:vo.map(a=>this.facetSortFields(a)).flat(),order:vo.map(a=>this.facetSortOrder(a)).flat()}}),r.length>0?{data:r}:{}),i?{encode:{update:i}}:{}),e.assembleGroup(EJe(this,[])))]}getMapping(){return this.facet}}function Ett(t,e){const{row:n,column:r}=e;if(n&&r){let i=null;for(const s of[n,r])if(Ra(s.sort)){const{field:o,op:u=oN}=s.sort;t=i=new Nd(t,{joinaggregate:[{op:u,field:o,as:Z7(s,s.sort,{forAs:!0})}],groupby:[$e(s)]})}return i}return null}function cle(t,e){var n,r,i,s;for(const o of e){const u=o.data;if(t.name&&o.hasName()&&t.name!==o.dataName)continue;const a=(n=t.format)===null||n===void 0?void 0:n.mesh,l=(r=u.format)===null||r===void 0?void 0:r.feature;if(a&&l)continue;const c=(i=t.format)===null||i===void 0?void 0:i.feature;if((c||l)&&c!==l)continue;const f=(s=u.format)===null||s===void 0?void 0:s.mesh;if(!((a||f)&&a!==f)){if(d3(t)&&d3(u)){if(Ul(t.values,u.values))return o}else if(N2(t)&&N2(u)){if(t.url===u.url)return o}else if(Lue(t)&&t.name===o.dataName)return o}}return null}function Att(t,e){if(t.data||!t.parent){if(t.data===null){const r=new Rd({values:[]});return e.push(r),r}const n=cle(t.data,e);if(n)return Uc(t.data)||(n.data.format=NWe({},t.data.format,n.data.format)),!n.hasName()&&t.data.name&&(n.dataName=t.data.name),n;{const r=new Rd(t.data);return e.push(r),r}}else return t.parent.component.data.facetRoot?t.parent.component.data.facetRoot:t.parent.component.data.main}function Stt(t,e,n){var r,i;let s=0;for(const o of e.transforms){let u,a;if(ZKe(o))a=t=new $2(t,o),u="derived";else if(h7(o)){const l=iet(o);a=t=(r=si.makeWithAncestors(t,{},l,n))!==null&&r!==void 0?r:t,t=new I2(t,e,o.filter)}else if(bue(o))a=t=Ia.makeFromTransform(t,o,e),u="number";else if(tJe(o))u="date",n.getWithExplicit(o.field).value===void 0&&(t=new si(t,{[o.field]:u}),n.set(o.field,u,!1)),a=t=La.makeFromTransform(t,o);else if(nJe(o))a=t=xu.makeFromTransform(t,o),u="number",T7(e)&&(t=new Qc(t));else if(Cue(o))a=t=_3.make(t,e,o,s++),u="derived";else if(XKe(o))a=t=new M2(t,o),u="number";else if(KKe(o))a=t=new Nd(t,o),u="number";else if(rJe(o))a=t=n0.makeFromTransform(t,o),u="derived";else if(iJe(o))a=t=new MN(t,o),u="derived";else if(JKe(o))a=t=new PN(t,o),u="derived";else if(zKe(o))a=t=new HN(t,o),u="derived";else if(YKe(o))t=new zN(t,o);else if(eJe(o))a=t=Dd.makeFromTransform(t,o),u="derived";else if(QKe(o))a=t=new kN(t,o),u="derived";else if(GKe(o))a=t=new UN(t,o),u="derived";else if(WKe(o))a=t=new qN(t,o),u="derived";else if(VKe(o))a=t=new jN(t,o),u="derived";else{Re(DVe(o));continue}if(a&&u!==void 0)for(const l of(i=a.producedFields())!==null&&i!==void 0?i:[])n.set(l,u,!1)}return t}function GN(t){var e,n,r,i,s,o,u,a,l,c;let f=Att(t,t.component.data.sources);const{outputNodes:x,outputNodeRefCounts:h}=t.component.data,p=t.data,g=!(p&&(Uc(p)||N2(p)||d3(p)))&&t.parent?t.parent.component.data.ancestorParse.clone():new gJe;Uc(p)?(Iue(p)?f=new E3(f,p.sequence):m7(p)&&(f=new y3(f,p.graticule)),g.parseNothing=!0):((e=p==null?void 0:p.format)===null||e===void 0?void 0:e.parse)===null&&(g.parseNothing=!0),f=(n=si.makeExplicit(f,t,g))!==null&&n!==void 0?n:f,f=new Qc(f);const y=t.parent&&j2(t.parent);(zn(t)||hu(t))&&y&&(f=(r=Ia.makeFromEncoding(f,t))!==null&&r!==void 0?r:f),t.transforms.length>0&&(f=Stt(f,t,g));const E=oet(t),A=set(t);f=(i=si.makeWithAncestors(f,{},Object.assign(Object.assign({},E),A),g))!==null&&i!==void 0?i:f,zn(t)&&(f=U2.parseAll(f,t),f=v3.parseAll(f,t)),(zn(t)||hu(t))&&(y||(f=(s=Ia.makeFromEncoding(f,t))!==null&&s!==void 0?s:f),f=(o=La.makeFromEncoding(f,t))!==null&&o!==void 0?o:f,f=$2.parseAllForSortIndex(f,t));const S=t.getDataName(Kt.Raw),v=new Mi(f,S,Kt.Raw,h);if(x[S]=v,f=v,zn(t)){const R=xu.makeFromEncoding(f,t);R&&(f=R,T7(t)&&(f=new Qc(f))),f=(u=Dd.makeFromEncoding(f,t))!==null&&u!==void 0?u:f,f=(a=n0.makeFromEncoding(f,t))!==null&&a!==void 0?a:f}zn(t)&&(f=(l=S3.make(f,t))!==null&&l!==void 0?l:f);const _=t.getDataName(Kt.Main),C=new Mi(f,_,Kt.Main,h);x[_]=C,f=C,zn(t)&&eZe(t,C);let b=null;if(hu(t)){const R=t.getName("facet");f=(c=Ett(f,t.facet))!==null&&c!==void 0?c:f,b=new P2(f,t,R,C.getSource()),x[R]=b}return Object.assign(Object.assign({},t.component.data),{outputNodes:x,outputNodeRefCounts:h,raw:v,main:C,facetRoot:b,ancestorParse:g})}class vtt extends K7{constructor(e,n,r,i){var s,o,u,a;super(e,"concat",n,r,i,e.resolve),(((o=(s=e.resolve)===null||s===void 0?void 0:s.axis)===null||o===void 0?void 0:o.x)==="shared"||((a=(u=e.resolve)===null||u===void 0?void 0:u.axis)===null||a===void 0?void 0:a.y)==="shared")&&Re(RVe),this.children=this.getChildren(e).map((l,c)=>iP(l,this,this.getName(`concat_${c}`),void 0,i))}parseData(){this.component.data=GN(this);for(const e of this.children)e.parseData()}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const n of Te(e.component.selection))this.component.selection[n]=e.component.selection[n]}}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){for(const e of this.children)e.parseAxesAndHeaders()}getChildren(e){return AN(e)?e.vconcat:a7(e)?e.hconcat:e.concat}parseLayoutSize(){gtt(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(e){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),e)}assembleSignals(){return this.children.forEach(e=>e.assembleSignals()),[]}assembleLayoutSignals(){const e=I7(this);for(const n of this.children)e.push(...n.assembleLayoutSignals());return e}assembleSelectionData(e){return this.children.reduce((n,r)=>r.assembleSelectionData(n),e)}assembleMarks(){return this.children.map(e=>{const n=e.assembleTitle(),r=e.assembleGroupStyle(),i=e.assembleGroupEncodeEntry(!1);return Object.assign(Object.assign(Object.assign(Object.assign({type:"group",name:e.getName("group")},n?{title:n}:{}),r?{style:r}:{}),i?{encode:{update:i}}:{}),e.assembleGroup())})}assembleGroupStyle(){}assembleDefaultLayout(){const e=this.layout.columns;return Object.assign(Object.assign({},e!=null?{columns:e}:{}),{bounds:"full",align:"each"})}}function _tt(t){return t===!1||t===null}const Ctt=Object.assign(Object.assign({disable:1,gridScale:1,scale:1},Boe),{labelExpr:1,encode:1}),fle=Te(Ctt);class eP extends t0{constructor(e={},n={},r=!1){super(),this.explicit=e,this.implicit=n,this.mainExtracted=r}clone(){return new eP(ut(this.explicit),ut(this.implicit),this.mainExtracted)}hasAxisPart(e){return e==="axis"?!0:e==="grid"||e==="title"?!!this.get(e):!_tt(this.get(e))}hasOrientSignalRef(){return Ye(this.explicit.orient)}}function btt(t,e,n){var r;const{encoding:i,config:s}=t,o=(r=rr(i[e]))!==null&&r!==void 0?r:rr(i[Yl(e)]),u=t.axis(e)||{},{format:a,formatType:l}=u;return _d(l)?Object.assign({text:M8({fieldOrDatumDef:o,field:"datum.value",format:a,formatType:l,config:s})},n):n}function Ttt(t){return Ca.reduce((e,n)=>(t.component.scales[n]&&(e[n]=[Ltt(n,t)]),e),{})}const Rtt={bottom:"top",top:"bottom",left:"right",right:"left"};function Ott(t){var e;const{axes:n,resolve:r}=t.component,i={top:0,bottom:0,right:0,left:0};for(const s of t.children){s.parseAxesAndHeaders();for(const o of Te(s.component.axes))r.axis[o]=$7(t.component.resolve,o),r.axis[o]==="shared"&&(n[o]=Ntt(n[o],s.component.axes[o]),n[o]||(r.axis[o]="independent",delete n[o]))}for(const s of Ca){for(const o of t.children)if(o.component.axes[s]){if(r.axis[s]==="independent"){n[s]=((e=n[s])!==null&&e!==void 0?e:[]).concat(o.component.axes[s]);for(const u of o.component.axes[s]){const{value:a,explicit:l}=u.getWithExplicit("orient");if(!Ye(a)){if(i[a]>0&&!l){const c=Rtt[a];i[a]>i[c]&&u.set("orient",c,!1)}i[a]++}}}delete o.component.axes[s]}if(r.axis[s]==="independent"&&n[s]&&n[s].length>1)for(const o of n[s])o.get("grid")&&!o.explicit.grid&&(o.implicit.grid=!1)}}function Ntt(t,e){if(t){if(t.length!==e.length)return;const n=t.length;for(let r=0;r<n;r++){const i=t[r],s=e[r];if(!!i!=!!s)return;if(i&&s){const o=i.getWithExplicit("orient"),u=s.getWithExplicit("orient");if(o.explicit&&u.explicit&&o.value!==u.value)return;t[r]=Dtt(i,s)}}}else return e.map(n=>n.clone());return t}function Dtt(t,e){for(const n of fle){const r=jc(t.getWithExplicit(n),e.getWithExplicit(n),n,"axis",(i,s)=>{switch(n){case"title":return Ose(i,s);case"gridScale":return{explicit:i.explicit,value:nr(i.value,s.value)}}return CN(i,s,n,"axis")});t.setWithExplicit(n,r)}return t}function Ftt(t,e,n,r,i){if(e==="disable")return n!==void 0;switch(n=n||{},e){case"titleAngle":case"labelAngle":return t===(Ye(n.labelAngle)?n.labelAngle:UO(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(t===pae(r,i))return!0}return t===n[e]}const wtt=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function Ltt(t,e){var n,r,i;let s=e.axis(t);const o=new eP,u=rr(e.encoding[t]),{mark:a,config:l}=e,c=(s==null?void 0:s.orient)||((n=l[t==="x"?"axisX":"axisY"])===null||n===void 0?void 0:n.orient)||((r=l.axis)===null||r===void 0?void 0:r.orient)||cZe(t),f=e.getScaleComponent(t).get("type"),x=rZe(t,f,c,e.config),h=s!==void 0?!s:N7("disable",l.style,s==null?void 0:s.style,x).configValue;if(o.set("disable",h,s!==void 0),h)return o;s=s||{};const p=uZe(u,s,t,l.style,x),m={fieldOrDatumDef:u,axis:s,channel:t,model:e,scaleType:f,orient:c,labelAngle:p,mark:a,config:l};for(const E of fle){const A=E in xae?xae[E](m):koe(E)?s[E]:void 0,S=A!==void 0,v=Ftt(A,E,s,e,t);if(S&&v)o.set(E,A,v);else{const{configValue:_=void 0,configFrom:C=void 0}=koe(E)&&E!=="values"?N7(E,l.style,s.style,x):{},b=_!==void 0;S&&!b?o.set(E,A,v):(C!=="vgAxisConfig"||wtt.has(E)&&b||f3(_)||Ye(_))&&o.set(E,_,!1)}}const g=(i=s.encoding)!==null&&i!==void 0?i:{},y=$oe.reduce((E,A)=>{var S;if(!o.hasAxisPart(A))return E;const v=vae((S=g[A])!==null&&S!==void 0?S:{},e),_=A==="labels"?btt(e,t,v):v;return _!==void 0&&!Gt(_)&&(E[A]={update:_}),E},{});return Gt(y)||o.set("encode",y,!!s.encoding||s.labelAngle!==void 0),o}function Itt({encoding:t,size:e}){for(const n of Ca){const r=fs(n);Fa(e[r])&&Na(t[n])&&(delete e[r],Re(jse(r)))}return e}function $tt(t,e,n){const r=xs(t),i=$t("orient",r,n);if(r.orient=Mtt(r.type,e,i),i!==void 0&&i!==r.orient&&Re(VVe(r.orient,i)),r.type==="bar"&&r.orient){const u=$t("cornerRadiusEnd",r,n);if(u!==void 0){const a=r.orient==="horizontal"&&e.x2||r.orient==="vertical"&&e.y2?["cornerRadius"]:cXe[r.orient];for(const l of a)r[l]=u;r.cornerRadiusEnd!==void 0&&delete r.cornerRadiusEnd}}return $t("opacity",r,n)===void 0&&(r.opacity=ktt(r.type,e)),$t("cursor",r,n)===void 0&&(r.cursor=Btt(r,e,n)),r}function Btt(t,e,n){return e.href||t.href||$t("href",t,n)?"pointer":t.cursor}function ktt(t,e){if(bt([nN,w8,L8,I8],t)&&!X8(e))return .7}function Ptt(t,e,{graticule:n}){if(n)return!1;const r=Ed("filled",t,e),i=t.type;return nr(r,i!==nN&&i!==tN&&i!==rN)}function Mtt(t,e,n){switch(t){case nN:case L8:case I8:case uoe:case nXe:case tXe:return}const{x:r,y:i,x2:s,y2:o}=e;switch(t){case eN:if(Ie(r)&&(Bi(r.bin)||Ie(i)&&i.aggregate&&!r.aggregate))return"vertical";if(Ie(i)&&(Bi(i.bin)||Ie(r)&&r.aggregate&&!i.aggregate))return"horizontal";if(o||s){if(n)return n;if(!s&&(Ie(r)&&r.type===Sd&&!Xt(r.bin)||z8(r)))return"horizontal";if(!o&&(Ie(i)&&i.type===Sd&&!Xt(i.bin)||z8(i)))return"vertical"}case rN:if(s&&!(Ie(r)&&Bi(r.bin))&&o&&!(Ie(i)&&Bi(i.bin)))return;case ZO:if(o)return Ie(i)&&Bi(i.bin)?"horizontal":"vertical";if(s)return Ie(r)&&Bi(r.bin)?"vertical":"horizontal";if(t===rN){if(r&&!i)return"vertical";if(i&&!r)return"horizontal"}case tN:case w8:{const u=Na(r),a=Na(i);if(n)return n;if(u&&!a)return t!=="tick"?"horizontal":"vertical";if(!u&&a)return t!=="tick"?"vertical":"horizontal";if(u&&a){const l=r,c=i,f=l.type===S2,x=c.type===S2;return f&&!x?t!=="tick"?"vertical":"horizontal":!f&&x?t!=="tick"?"horizontal":"vertical":!l.aggregate&&c.aggregate?t!=="tick"?"vertical":"horizontal":l.aggregate&&!c.aggregate&&t!=="tick"?"horizontal":"vertical"}else return}}return"vertical"}const jtt={vgMark:"arc",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),ii("x",t,{defaultPos:"mid"})),ii("y",t,{defaultPos:"mid"})),Hc(t,"radius")),Hc(t,"theta"))},Utt={vgMark:"area",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"})),TN("x",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="horizontal"})),TN("y",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="vertical"})),C7(t))},qtt={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Hc(t,"x")),Hc(t,"y"))},Htt={vgMark:"shape",encodeEntry:t=>Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),postEncodingTransform:t=>{const{encoding:e}=t,n=e.shape;return[Object.assign({type:"geoshape",projection:t.projectionName()},n&&Ie(n)&&n.type===v2?{field:$e(n,{expr:"datum"})}:{})]}},ztt={vgMark:"image",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"})),Hc(t,"x")),Hc(t,"y")),v7(t,"url"))},Qtt={vgMark:"line",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),ii("x",t,{defaultPos:"mid"})),ii("y",t,{defaultPos:"mid"})),Sr("size",t,{vgChannel:"strokeWidth"})),C7(t))},Gtt={vgMark:"trail",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),ii("x",t,{defaultPos:"mid"})),ii("y",t,{defaultPos:"mid"})),Sr("size",t)),C7(t))};function tP(t,e){const{config:n}=t;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),ii("x",t,{defaultPos:"mid"})),ii("y",t,{defaultPos:"mid"})),Sr("size",t)),Sr("angle",t)),Wtt(t,n,e))}function Wtt(t,e,n){return n?{shape:{value:n}}:Sr("shape",t)}const Vtt={vgMark:"symbol",encodeEntry:t=>tP(t)},Ytt={vgMark:"symbol",encodeEntry:t=>tP(t,"circle")},Xtt={vgMark:"symbol",encodeEntry:t=>tP(t,"square")},Ktt={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Hc(t,"x")),Hc(t,"y"))},Jtt={vgMark:"rule",encodeEntry:t=>{const{markDef:e}=t,n=e.orient;return!t.encoding.x&&!t.encoding.y&&!t.encoding.latitude&&!t.encoding.longitude?{}:Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),TN("x",t,{defaultPos:n==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="vertical"})),TN("y",t,{defaultPos:n==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="horizontal"})),Sr("size",t,{vgChannel:"strokeWidth"}))}},Ztt={vgMark:"text",encodeEntry:t=>{const{config:e,encoding:n}=t;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"})),ii("x",t,{defaultPos:"mid"})),ii("y",t,{defaultPos:"mid"})),v7(t)),Sr("size",t,{vgChannel:"fontSize"})),Sr("angle",t)),Wue("align",ent(t.markDef,n,e))),Wue("baseline",tnt(t.markDef,n,e))),ii("radius",t,{defaultPos:null})),ii("theta",t,{defaultPos:null}))}};function ent(t,e,n){if($t("align",t,n)===void 0)return"center"}function tnt(t,e,n){if($t("baseline",t,n)===void 0)return"middle"}const nnt={vgMark:"rect",encodeEntry:t=>{const{config:e,markDef:n}=t,r=n.orient,i=r==="horizontal"?"width":"height",s=r==="horizontal"?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Co(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),ii("x",t,{defaultPos:"mid",vgChannel:"xc"})),ii("y",t,{defaultPos:"mid",vgChannel:"yc"})),Sr("size",t,{defaultValue:rnt(t),vgChannel:i})),{[s]:sn($t("thickness",n,e))})}};function rnt(t){var e;const{config:n,markDef:r}=t,{orient:i}=r,s=i==="horizontal"?"width":"height",o=t.getScaleComponent(i==="horizontal"?"x":"y"),u=(e=$t("size",r,n,{vgChannel:s}))!==null&&e!==void 0?e:n.tick.bandSize;if(u!==void 0)return u;{const a=o?o.get("range"):void 0;return a&&Bc(a)&&tn(a.step)?a.step*3/4:SN(n.view,s)*3/4}}const WN={arc:jtt,area:Utt,bar:qtt,circle:Ytt,geoshape:Htt,image:ztt,line:Qtt,point:Vtt,rect:Ktt,rule:Jtt,square:Xtt,text:Ztt,tick:nnt,trail:Gtt};function int(t){if(bt([tN,ZO,rXe],t.mark)){const e=Uoe(t.mark,t.encoding);if(e.length>0)return snt(t,e)}else if(t.mark===eN){const e=c8.some(n=>$t(n,t.markDef,t.config));if(t.stack&&!t.fieldDef("size")&&e)return ont(t)}return nP(t)}const xle="faceted_path_";function snt(t,e){return[{name:t.getName("pathgroup"),type:"group",from:{facet:{name:xle+t.requestDataName(Kt.Main),data:t.requestDataName(Kt.Main),groupby:e}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:nP(t,{fromPrefix:xle})}]}const dle="stack_group_";function ont(t){var e;const[n]=nP(t,{fromPrefix:dle}),r=t.scaleName(t.stack.fieldChannel),i=(c={})=>t.vgField(t.stack.fieldChannel,c),s=(c,f)=>{const x=[i({prefix:"min",suffix:"start",expr:f}),i({prefix:"max",suffix:"start",expr:f}),i({prefix:"min",suffix:"end",expr:f}),i({prefix:"max",suffix:"end",expr:f})];return`${c}(${x.map(h=>`scale('${r}',${h})`).join(",")})`};let o,u;t.stack.fieldChannel==="x"?(o=Object.assign(Object.assign({},JE(n.encode.update,["y","yc","y2","height",...c8])),{x:{signal:s("min","datum")},x2:{signal:s("max","datum")},clip:{value:!0}}),u={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},n.encode.update=Object.assign(Object.assign({},Ao(n.encode.update,["y","yc","y2"])),{height:{field:{group:"height"}}})):(o=Object.assign(Object.assign({},JE(n.encode.update,["x","xc","x2","width"])),{y:{signal:s("min","datum")},y2:{signal:s("max","datum")},clip:{value:!0}}),u={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},n.encode.update=Object.assign(Object.assign({},Ao(n.encode.update,["x","xc","x2"])),{width:{field:{group:"width"}}}));for(const c of c8){const f=Ed(c,t.markDef,t.config);n.encode.update[c]?(o[c]=n.encode.update[c],delete n.encode.update[c]):f&&(o[c]=sn(f)),f&&(n.encode.update[c]={value:0})}const a=[];if(((e=t.stack.groupbyChannels)===null||e===void 0?void 0:e.length)>0)for(const c of t.stack.groupbyChannels){const f=t.fieldDef(c),x=$e(f);x&&a.push(x),(f!=null&&f.bin||f!=null&&f.timeUnit)&&a.push($e(f,{binSuffix:"end"}))}return o=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((c,f)=>{if(n.encode.update[f])return Object.assign(Object.assign({},c),{[f]:n.encode.update[f]});{const x=Ed(f,t.markDef,t.config);return x!==void 0?Object.assign(Object.assign({},c),{[f]:sn(x)}):c}},o),o.stroke&&(o.strokeForeground={value:!0},o.strokeOffset={value:0}),[{type:"group",from:{facet:{data:t.requestDataName(Kt.Main),name:dle+t.requestDataName(Kt.Main),groupby:a,aggregate:{fields:[i({suffix:"start"}),i({suffix:"start"}),i({suffix:"end"}),i({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:o},marks:[{type:"group",encode:{update:u},marks:[n]}]}]}function unt(t){var e;const{encoding:n,stack:r,mark:i,markDef:s,config:o}=t,u=n.order;if(!(!_e(u)&&fu(u)&&Jie(u.value)||!u&&Jie($t("order",s,o)))){if((_e(u)||Ie(u))&&!r)return bse(u,{expr:"datum"});if(kc(i)){const a=s.orient==="horizontal"?"y":"x",l=n[a];if(Ie(l)){const c=l.sort;if(_e(c))return{field:$e(l,{prefix:a,suffix:"sort_index",expr:"datum"})};if(Ra(c))return{field:$e({aggregate:X8(t.encoding)?c.op:void 0,field:c.field},{expr:"datum"})};if(Soe(c)){const f=t.fieldDef(c.encoding);return{field:$e(f,{expr:"datum"}),order:c.order}}else return c===null?void 0:{field:$e(l,{binSuffix:!((e=t.stack)===null||e===void 0)&&e.impute?"mid":void 0,expr:"datum"})}}return}}}function nP(t,e={fromPrefix:""}){const{mark:n,markDef:r,encoding:i,config:s}=t,o=nr(r.clip,ant(t),lnt(t)),u=_se(r),a=i.key,l=unt(t),c=cnt(t),f=$t("aria",r,s),x=WN[n].postEncodingTransform?WN[n].postEncodingTransform(t):null;return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:t.getName("marks"),type:WN[n].vgMark},o?{clip:!0}:{}),u?{style:u}:{}),a?{key:a.field}:{}),l?{sort:l}:{}),c||{}),f===!1?{aria:f}:{}),{from:{data:e.fromPrefix+t.requestDataName(Kt.Main)},encode:{update:WN[n].encodeEntry(t)}}),x?{transform:x}:{})]}function ant(t){const e=t.getScaleComponent("x"),n=t.getScaleComponent("y");return e!=null&&e.get("selectionExtent")||n!=null&&n.get("selectionExtent")?!0:void 0}function lnt(t){const e=t.component.projection;return e&&!e.isFit?!0:void 0}function cnt(t){if(!t.component.selection)return null;const e=Te(t.component.selection).length;let n=e,r=t.parent;for(;r&&n===0;)n=Te(r.component.selection).length,r=r.parent;return n?{interactive:e>0||!!t.encoding.tooltip}:null}class hle extends ole{constructor(e,n,r,i={},s){var o;super(e,"unit",n,r,s,void 0,uue(e)?e.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[];const u=Ta(e.mark)?Object.assign({},e.mark):{type:e.mark},a=u.type;u.filled===void 0&&(u.filled=Ptt(u,s,{graticule:e.data&&m7(e.data)}));const l=this.encoding=jXe(e.encoding||{},a,u.filled,s);this.markDef=$tt(u,l,s),this.size=Itt({encoding:l,size:uue(e)?Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{}):i}),this.stack=pue(a,l),this.specifiedScales=this.initScales(a,l),this.specifiedAxes=this.initAxes(l),this.specifiedLegends=this.initLegends(l),this.specifiedProjection=e.projection,this.selection=((o=e.params)!==null&&o!==void 0?o:[]).filter(c=>o7(c))}get hasProjection(){const{encoding:e}=this,n=this.mark===aoe,r=e&&UWe.some(i=>st(e[i]));return n||r}scaleDomain(e){const n=this.specifiedScales[e];return n?n.domain:void 0}axis(e){return this.specifiedAxes[e]}legend(e){return this.specifiedLegends[e]}initScales(e,n){return VO.reduce((r,i)=>{var s;const o=rr(n[i]);return o&&(r[i]=this.initScale((s=o.scale)!==null&&s!==void 0?s:{})),r},{})}initScale(e){const{domain:n,range:r}=e,i=xs(e);return _e(n)&&(i.domain=n.map(Ms)),_e(r)&&(i.range=r.map(Ms)),i}initAxes(e){return Ca.reduce((n,r)=>{const i=e[r];if(st(i)||r===mn&&st(e.x2)||r===Er&&st(e.y2)){const s=st(i)?i.axis:void 0;n[r]=s&&this.initAxis(Object.assign({},s))}return n},{})}initAxis(e){const n=Te(e),r={};for(const i of n){const s=e[i];r[i]=f3(s)?Ase(s):Ms(s)}return r}initLegends(e){return KWe.reduce((n,r)=>{const i=rr(e[r]);if(i&&ZWe(r)){const s=i.legend;n[r]=s&&xs(s)}return n},{})}parseData(){this.component.data=GN(this)}parseLayoutSize(){mtt(this)}parseSelections(){this.component.selection=ZJe(this,this.selection)}parseMarkGroup(){this.component.mark=int(this)}parseAxesAndHeaders(){this.component.axes=Ttt(this)}assembleSelectionTopLevelSignals(e){return AJe(this,e)}assembleSignals(){return[...cae(this),...yJe(this,[])]}assembleSelectionData(e){return SJe(this,e)}assembleLayout(){return null}assembleLayoutSignals(){return I7(this)}assembleMarks(){var e;let n=(e=this.component.mark)!==null&&e!==void 0?e:[];return(!this.parent||!j2(this.parent))&&(n=Bue(this,n)),n.map(this.correctDataNames)}assembleGroupStyle(){const{style:e}=this.view||{};if(e!==void 0)return e;if(this.encoding.x||this.encoding.y)return"cell"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(e){return bd(this.encoding,e)}fieldDef(e){const n=this.encoding[e];return Da(n)}typedFieldDef(e){const n=this.fieldDef(e);return _o(n)?n:null}}class rP extends K7{constructor(e,n,r,i,s){super(e,"layer",n,r,s,e.resolve,e.view);const o=Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{});this.children=e.layer.map((u,a)=>{if(_N(u))return new rP(u,this,this.getName(`layer_${a}`),o,s);if(Zl(u))return new hle(u,this,this.getName(`layer_${a}`),o,s);throw new Error(x8(u))})}parseData(){this.component.data=GN(this);for(const e of this.children)e.parseData()}parseLayoutSize(){ptt(this)}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const n of Te(e.component.selection))this.component.selection[n]=e.component.selection[n]}}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){Ott(this)}assembleSelectionTopLevelSignals(e){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),e)}assembleSignals(){return this.children.reduce((e,n)=>e.concat(n.assembleSignals()),cae(this))}assembleLayoutSignals(){return this.children.reduce((e,n)=>e.concat(n.assembleLayoutSignals()),I7(this))}assembleSelectionData(e){return this.children.reduce((n,r)=>r.assembleSelectionData(n),e)}assembleGroupStyle(){const e=new Set;for(const r of this.children)for(const i of Pe(r.assembleGroupStyle()))e.add(i);const n=Array.from(e);return n.length>1?n:n.length===1?n[0]:void 0}assembleTitle(){let e=super.assembleTitle();if(e)return e;for(const n of this.children)if(e=n.assembleTitle(),e)return e}assembleLayout(){return null}assembleMarks(){return vJe(this,this.children.flatMap(e=>e.assembleMarks()))}assembleLegends(){return this.children.reduce((e,n)=>e.concat(n.assembleLegends()),Lae(this))}}function iP(t,e,n,r,i){if(uN(t))return new C3(t,e,n,i);if(_N(t))return new rP(t,e,n,r,i);if(Zl(t))return new hle(t,e,n,r,i);if(cKe(t))return new vtt(t,e,n,i);throw new Error(x8(t))}var fnt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function xnt(t,e={}){e.logger&&EYe(e.logger),e.fieldTitle&&Foe(e.fieldTitle);try{const n=due(G4(e.config,t.config)),r=uJe(t,n),i=iP(r,null,"",void 0,n);return i.parse(),Cet(i.component.data,i),{spec:hnt(i,dnt(t,r.autosize,n,i),t.datasets,t.usermeta),normalized:r}}finally{e.logger&&AYe(),e.fieldTitle&&FXe()}}function dnt(t,e,n,r){const i=r.component.layoutSize.get("width"),s=r.component.layoutSize.get("height");if(e===void 0?(e={type:"pad"},r.hasAxisOrientSignalRef()&&(e.resize=!0)):je(e)&&(e={type:e}),i&&s&&dJe(e.type)){if(i==="step"&&s==="step")Re(Fse()),e.type="pad";else if(i==="step"||s==="step"){const o=i==="step"?"width":"height";Re(Fse(WO(o)));const u=o==="width"?"height":"width";e.type=hJe(u)}}return Object.assign(Object.assign(Object.assign({},Te(e).length===1&&e.type?e.type==="pad"?{}:{autosize:e.type}:{autosize:e}),Fue(n,!1)),Fue(t,!0))}function hnt(t,e,n={},r){const i=t.config?_Ke(t.config):void 0,s=[].concat(t.assembleSelectionData([]),ftt(t.component.data,n)),o=t.assembleProjections(),u=t.assembleTitle(),a=t.assembleGroupStyle(),l=t.assembleGroupEncodeEntry(!0);let c=t.assembleLayoutSignals();c=c.filter(h=>(h.name==="width"||h.name==="height")&&h.value!==void 0?(e[h.name]=+h.value,!1):!0);const{params:f}=e,x=fnt(e,["params"]);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({$schema:"https://vega.github.io/schema/vega/v5.json"},t.description?{description:t.description}:{}),x),u?{title:u}:{}),a?{style:a}:{}),l?{encode:{update:l}}:{}),{data:s}),o.length>0?{projections:o}:{}),t.assembleGroup([...c,...t.assembleSelectionTopLevelSignals([]),...sue(f)])),i?{config:i}:{}),r?{usermeta:r}:{})}var pnt=Xc("<div>");function gnt(t){let e,n=null;return nD(()=>{n&&n.finalize();const r=t.type==="vega-lite"?xnt(t.spec).spec:t.spec;n=new qre(mWe(r)).initialize(e).renderer("svg").hover(),n.run()}),nD(()=>{n&&(t.width&&n.width(t.width),t.height&&n.height(t.height),n.run())}),(()=>{var r=pnt(),i=e;return typeof i=="function"?n0e(i,r):e=r,r})()}function ple(t){const{field:e,data:n}=t,r=t.metadata.field(e).vegaChartProps,i=structuredClone(r.spec);return i.data[0].values=n,Pn(gnt,{spec:i,type:"vega",get width(){return r.plotWidth},get height(){return r.plotHeight}})}var VN=(t=>(t.Dollars="usd",t.Euros="euro",t.Pounds="pound",t))(VN||{}),r0=(t=>(t.Nanoseconds="nanoseconds",t.Microseconds="microseconds",t.Milliseconds="milliseconds",t.Seconds="seconds",t.Minutes="minutes",t.Hours="hours",t.Days="days",t))(r0||{}),gle={exports:{}};(function(t){var e={},n=function(i){i.version="0.11.2";function s(D){for(var $="",j=D.length-1;j>=0;)$+=D.charAt(j--);return $}function o(D,$){for(var j="";j.length<$;)j+=D;return j}function u(D,$){var j=""+D;return j.length>=$?j:o("0",$-j.length)+j}function a(D,$){var j=""+D;return j.length>=$?j:o(" ",$-j.length)+j}function l(D,$){var j=""+D;return j.length>=$?j:j+o(" ",$-j.length)}function c(D,$){var j=""+Math.round(D);return j.length>=$?j:o("0",$-j.length)+j}function f(D,$){var j=""+D;return j.length>=$?j:o("0",$-j.length)+j}var x=Math.pow(2,32);function h(D,$){if(D>x||D<-x)return c(D,$);var j=Math.round(D);return f(j,$)}function p(D,$){return $=$||0,D.length>=7+$&&(D.charCodeAt($)|32)===103&&(D.charCodeAt($+1)|32)===101&&(D.charCodeAt($+2)|32)===110&&(D.charCodeAt($+3)|32)===101&&(D.charCodeAt($+4)|32)===114&&(D.charCodeAt($+5)|32)===97&&(D.charCodeAt($+6)|32)===108}var m=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]],g=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function y(D){D[0]="General",D[1]="0",D[2]="0.00",D[3]="#,##0",D[4]="#,##0.00",D[9]="0%",D[10]="0.00%",D[11]="0.00E+00",D[12]="# ?/?",D[13]="# ??/??",D[14]="m/d/yy",D[15]="d-mmm-yy",D[16]="d-mmm",D[17]="mmm-yy",D[18]="h:mm AM/PM",D[19]="h:mm:ss AM/PM",D[20]="h:mm",D[21]="h:mm:ss",D[22]="m/d/yy h:mm",D[37]="#,##0 ;(#,##0)",D[38]="#,##0 ;[Red](#,##0)",D[39]="#,##0.00;(#,##0.00)",D[40]="#,##0.00;[Red](#,##0.00)",D[45]="mm:ss",D[46]="[h]:mm:ss",D[47]="mmss.0",D[48]="##0.0E+0",D[49]="@",D[56]='"上午/下午 "hh"時"mm"分"ss"秒 "'}var E={};y(E);var A=[],S=0;for(S=5;S<=8;++S)A[S]=32+S;for(S=23;S<=26;++S)A[S]=0;for(S=27;S<=31;++S)A[S]=14;for(S=50;S<=58;++S)A[S]=14;for(S=59;S<=62;++S)A[S]=S-58;for(S=67;S<=68;++S)A[S]=S-58;for(S=72;S<=75;++S)A[S]=S-58;for(S=67;S<=68;++S)A[S]=S-57;for(S=76;S<=78;++S)A[S]=S-56;for(S=79;S<=81;++S)A[S]=S-34;var v=[];v[5]=v[63]='"$"#,##0_);\\("$"#,##0\\)',v[6]=v[64]='"$"#,##0_);[Red]\\("$"#,##0\\)',v[7]=v[65]='"$"#,##0.00_);\\("$"#,##0.00\\)',v[8]=v[66]='"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',v[41]='_(* #,##0_);_(* \\(#,##0\\);_(* "-"_);_(@_)',v[42]='_("$"* #,##0_);_("$"* \\(#,##0\\);_("$"* "-"_);_(@_)',v[43]='_(* #,##0.00_);_(* \\(#,##0.00\\);_(* "-"??_);_(@_)',v[44]='_("$"* #,##0.00_);_("$"* \\(#,##0.00\\);_("$"* "-"??_);_(@_)';function _(D,$,j){for(var Q=D<0?-1:1,I=D*Q,H=0,P=1,J=0,ce=1,ue=0,Z=0,ae=Math.floor(I);ue<$&&(ae=Math.floor(I),J=ae*P+H,Z=ae*ue+ce,!(I-ae<5e-8));)I=1/(I-ae),H=P,P=J,ce=ue,ue=Z;if(Z>$&&(ue>$?(Z=ce,J=H):(Z=ue,J=P)),!j)return[0,Q*J,Z];var qe=Math.floor(Q*J/Z);return[qe,Q*J-qe*Z,Z]}function C(D,$,j){if(D>2958465||D<0)return null;var Q=D|0,I=Math.floor(86400*(D-Q)),H=0,P=[],J={D:Q,T:I,u:86400*(D-Q)-I,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(J.u)<1e-6&&(J.u=0),$&&$.date1904&&(Q+=1462),J.u>.9999&&(J.u=0,++I==86400&&(J.T=I=0,++Q,++J.D)),Q===60)P=j?[1317,10,29]:[1900,2,29],H=3;else if(Q===0)P=j?[1317,8,29]:[1900,1,0],H=6;else{Q>60&&--Q;var ce=new Date(1900,0,1);ce.setDate(ce.getDate()+Q-1),P=[ce.getFullYear(),ce.getMonth()+1,ce.getDate()],H=ce.getDay(),Q<60&&(H=(H+6)%7),j&&(H=B(ce,P))}return J.y=P[0],J.m=P[1],J.d=P[2],J.S=I%60,I=Math.floor(I/60),J.M=I%60,I=Math.floor(I/60),J.H=I,J.q=H,J}i.parse_date_code=C;var b=new Date(1899,11,31,0,0,0),R=b.getTime(),O=new Date(1900,2,1,0,0,0);function L(D,$){var j=D.getTime();return $?j-=1262304e5:D>=O&&(j+=864e5),(j-(R+(D.getTimezoneOffset()-b.getTimezoneOffset())*6e4))/864e5}function M(D){return D.toString(10)}i._general_int=M;var q=function(){var $=/(?:\.0*|(\.\d*[1-9])0+)$/;function j(ue){return ue.indexOf(".")==-1?ue:ue.replace($,"$1")}var Q=/(?:\.0*|(\.\d*[1-9])0+)[Ee]/,I=/(E[+-])(\d)$/;function H(ue){return ue.indexOf("E")==-1?ue:ue.replace(Q,"$1E").replace(I,"$10$2")}function P(ue){var Z=ue<0?12:11,ae=j(ue.toFixed(12));return ae.length<=Z||(ae=ue.toPrecision(10),ae.length<=Z)?ae:ue.toExponential(5)}function J(ue){var Z=j(ue.toFixed(11));return Z.length>(ue<0?12:11)||Z==="0"||Z==="-0"?ue.toPrecision(6):Z}function ce(ue){var Z=Math.floor(Math.log(Math.abs(ue))*Math.LOG10E),ae;return Z>=-4&&Z<=-1?ae=ue.toPrecision(10+Z):Math.abs(Z)<=9?ae=P(ue):Z===10?ae=ue.toFixed(10).substr(0,12):ae=J(ue),j(H(ae.toUpperCase()))}return ce}();i._general_num=q;function W(D,$){switch(typeof D){case"string":return D;case"boolean":return D?"TRUE":"FALSE";case"number":return(D|0)===D?D.toString(10):q(D);case"undefined":return"";case"object":if(D==null)return"";if(D instanceof Date)return Y(14,L(D,$&&$.date1904),$)}throw new Error("unsupported value in General format: "+D)}i._general=W;function B(D,$){$[0]-=581;var j=D.getDay();return D<60&&(j=(j+6)%7),j}function G(D,$,j,Q){var I="",H=0,P=0,J=j.y,ce,ue=0;switch(D){case 98:J=j.y+543;case 121:switch($.length){case 1:case 2:ce=J%100,ue=2;break;default:ce=J%1e4,ue=4;break}break;case 109:switch($.length){case 1:case 2:ce=j.m,ue=$.length;break;case 3:return g[j.m-1][1];case 5:return g[j.m-1][0];default:return g[j.m-1][2]}break;case 100:switch($.length){case 1:case 2:ce=j.d,ue=$.length;break;case 3:return m[j.q][0];default:return m[j.q][1]}break;case 104:switch($.length){case 1:case 2:ce=1+(j.H+11)%12,ue=$.length;break;default:throw"bad hour format: "+$}break;case 72:switch($.length){case 1:case 2:ce=j.H,ue=$.length;break;default:throw"bad hour format: "+$}break;case 77:switch($.length){case 1:case 2:ce=j.M,ue=$.length;break;default:throw"bad minute format: "+$}break;case 115:if($!="s"&&$!="ss"&&$!=".0"&&$!=".00"&&$!=".000")throw"bad second format: "+$;return j.u===0&&($=="s"||$=="ss")?u(j.S,$.length):(Q>=2?P=Q===3?1e3:100:P=Q===1?10:1,H=Math.round(P*(j.S+j.u)),H>=60*P&&(H=0),$==="s"?H===0?"0":""+H/P:(I=u(H,2+Q),$==="ss"?I.substr(0,2):"."+I.substr(2,$.length-1)));case 90:switch($){case"[h]":case"[hh]":ce=j.D*24+j.H;break;case"[m]":case"[mm]":ce=(j.D*24+j.H)*60+j.M;break;case"[s]":case"[ss]":ce=((j.D*24+j.H)*60+j.M)*60+Math.round(j.S+j.u);break;default:throw"bad abstime format: "+$}ue=$.length===3?1:2;break;case 101:ce=J,ue=1;break}var Z=ue>0?u(ce,ue):"";return Z}function te(D){var $=3;if(D.length<=$)return D;for(var j=D.length%$,Q=D.substr(0,j);j!=D.length;j+=$)Q+=(Q.length>0?",":"")+D.substr(j,$);return Q}var K=function(){var $=/%/g;function j(Se,ie,le){var ze=ie.replace($,""),X=ie.length-ze.length;return K(Se,ze,le*Math.pow(10,2*X))+o("%",X)}function Q(Se,ie,le){for(var ze=ie.length-1;ie.charCodeAt(ze-1)===44;)--ze;return K(Se,ie.substr(0,ze),le/Math.pow(10,3*(ie.length-ze)))}function I(Se,ie){var le,ze=Se.indexOf("E")-Se.indexOf(".")-1;if(Se.match(/^#+0.0E\+0$/)){if(ie==0)return"0.0E+0";if(ie<0)return"-"+I(Se,-ie);var X=Se.indexOf(".");X===-1&&(X=Se.indexOf("E"));var fe=Math.floor(Math.log(ie)*Math.LOG10E)%X;if(fe<0&&(fe+=X),le=(ie/Math.pow(10,fe)).toPrecision(ze+1+(X+fe)%X),le.indexOf("e")===-1){var Le=Math.floor(Math.log(ie)*Math.LOG10E);for(le.indexOf(".")===-1?le=le.charAt(0)+"."+le.substr(1)+"E+"+(Le-le.length+fe):le+="E+"+(Le-fe);le.substr(0,2)==="0.";)le=le.charAt(0)+le.substr(2,X)+"."+le.substr(2+X),le=le.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.");le=le.replace(/\+-/,"-")}le=le.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(We,at,Bt,rt){return at+Bt+rt.substr(0,(X+fe)%X)+"."+rt.substr(fe)+"E"})}else le=ie.toExponential(ze);return Se.match(/E\+00$/)&&le.match(/e[+-]\d$/)&&(le=le.substr(0,le.length-1)+"0"+le.charAt(le.length-1)),Se.match(/E\-/)&&le.match(/e\+/)&&(le=le.replace(/e\+/,"e")),le.replace("e","E")}var H=/# (\?+)( ?)\/( ?)(\d+)/;function P(Se,ie,le){var ze=parseInt(Se[4],10),X=Math.round(ie*ze),fe=Math.floor(X/ze),Le=X-fe*ze,We=ze;return le+(fe===0?"":""+fe)+" "+(Le===0?o(" ",Se[1].length+1+Se[4].length):a(Le,Se[1].length)+Se[2]+"/"+Se[3]+u(We,Se[4].length))}function J(Se,ie,le){return le+(ie===0?"":""+ie)+o(" ",Se[1].length+2+Se[4].length)}var ce=/^#*0*\.([0#]+)/,ue=/\).*[0#]/,Z=/\(###\) ###\\?-####/;function ae(Se){for(var ie="",le,ze=0;ze!=Se.length;++ze)switch(le=Se.charCodeAt(ze)){case 35:break;case 63:ie+=" ";break;case 48:ie+="0";break;default:ie+=String.fromCharCode(le)}return ie}function qe(Se,ie){var le=Math.pow(10,ie);return""+Math.round(Se*le)/le}function se(Se,ie){var le=Se-Math.floor(Se),ze=Math.pow(10,ie);return ie<(""+Math.round(le*ze)).length?0:Math.round(le*ze)}function xe(Se,ie){return ie<(""+Math.round((Se-Math.floor(Se))*Math.pow(10,ie))).length?1:0}function Ce(Se){return Se<2147483647&&Se>-2147483648?""+(Se>=0?Se|0:Se-1|0):""+Math.floor(Se)}function Oe(Se,ie,le){if(Se.charCodeAt(0)===40&&!ie.match(ue)){var ze=ie.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return le>=0?Oe("n",ze,le):"("+Oe("n",ze,-le)+")"}if(ie.charCodeAt(ie.length-1)===44)return Q(Se,ie,le);if(ie.indexOf("%")!==-1)return j(Se,ie,le);if(ie.indexOf("E")!==-1)return I(ie,le);if(ie.charCodeAt(0)===36)return"$"+Oe(Se,ie.substr(ie.charAt(1)==" "?2:1),le);var X,fe,Le,We,at=Math.abs(le),Bt=le<0?"-":"";if(ie.match(/^00+$/))return Bt+h(at,ie.length);if(ie.match(/^[#?]+$/))return X=h(le,0),X==="0"&&(X=""),X.length>ie.length?X:ae(ie.substr(0,ie.length-X.length))+X;if(fe=ie.match(H))return P(fe,at,Bt);if(ie.match(/^#+0+$/))return Bt+h(at,ie.length-ie.indexOf("0"));if(fe=ie.match(ce))return X=qe(le,fe[1].length).replace(/^([^\.]+)$/,"$1."+ae(fe[1])).replace(/\.$/,"."+ae(fe[1])).replace(/\.(\d*)$/,function(qs,R3){return"."+R3+o("0",ae(fe[1]).length-R3.length)}),ie.indexOf("0.")!==-1?X:X.replace(/^0\./,".");if(ie=ie.replace(/^#+([0.])/,"$1"),fe=ie.match(/^(0*)\.(#*)$/))return Bt+qe(at,fe[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,fe[1].length?"0.":".");if(fe=ie.match(/^#{1,3},##0(\.?)$/))return Bt+te(h(at,0));if(fe=ie.match(/^#,##0\.([#0]*0)$/))return le<0?"-"+Oe(Se,ie,-le):te(""+(Math.floor(le)+xe(le,fe[1].length)))+"."+u(se(le,fe[1].length),fe[1].length);if(fe=ie.match(/^#,#*,#0/))return Oe(Se,ie.replace(/^#,#*,/,""),le);if(fe=ie.match(/^([0#]+)(\\?-([0#]+))+$/))return X=s(Oe(Se,ie.replace(/[\\-]/g,""),le)),Le=0,s(s(ie.replace(/\\/g,"")).replace(/[0#]/g,function(qs){return Le<X.length?X.charAt(Le++):qs==="0"?"0":""}));if(ie.match(Z))return X=Oe(Se,"##########",le),"("+X.substr(0,3)+") "+X.substr(3,3)+"-"+X.substr(6);var rt="";if(fe=ie.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))return Le=Math.min(fe[4].length,7),We=_(at,Math.pow(10,Le)-1,!1),X=""+Bt,rt=K("n",fe[1],We[1]),rt.charAt(rt.length-1)==" "&&(rt=rt.substr(0,rt.length-1)+"0"),X+=rt+fe[2]+"/"+fe[3],rt=l(We[2],Le),rt.length<fe[4].length&&(rt=ae(fe[4].substr(fe[4].length-rt.length))+rt),X+=rt,X;if(fe=ie.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/))return Le=Math.min(Math.max(fe[1].length,fe[4].length),7),We=_(at,Math.pow(10,Le)-1,!0),Bt+(We[0]||(We[1]?"":"0"))+" "+(We[1]?a(We[1],Le)+fe[2]+"/"+fe[3]+l(We[2],Le):o(" ",2*Le+1+fe[2].length+fe[3].length));if(fe=ie.match(/^[#0?]+$/))return X=h(le,0),ie.length<=X.length?X:ae(ie.substr(0,ie.length-X.length))+X;if(fe=ie.match(/^([#0?]+)\.([#0]+)$/)){X=""+le.toFixed(Math.min(fe[2].length,10)).replace(/([^0])0+$/,"$1"),Le=X.indexOf(".");var vr=ie.indexOf(".")-Le,Wc=ie.length-X.length-vr;return ae(ie.substr(0,vr)+X+ie.substr(ie.length-Wc))}if(fe=ie.match(/^00,000\.([#0]*0)$/))return Le=se(le,fe[1].length),le<0?"-"+Oe(Se,ie,-le):te(Ce(le)).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,function(qs){return"00,"+(qs.length<3?u(0,3-qs.length):"")+qs})+"."+u(Le,fe[1].length);switch(ie){case"###,##0.00":return Oe(Se,"#,##0.00",le);case"###,###":case"##,###":case"#,###":var T3=te(h(at,0));return T3!=="0"?Bt+T3:"";case"###,###.00":return Oe(Se,"###,##0.00",le).replace(/^0\./,".");case"#,###.00":return Oe(Se,"#,##0.00",le).replace(/^0\./,".")}throw new Error("unsupported format |"+ie+"|")}function Me(Se,ie,le){for(var ze=ie.length-1;ie.charCodeAt(ze-1)===44;)--ze;return K(Se,ie.substr(0,ze),le/Math.pow(10,3*(ie.length-ze)))}function it(Se,ie,le){var ze=ie.replace($,""),X=ie.length-ze.length;return K(Se,ze,le*Math.pow(10,2*X))+o("%",X)}function et(Se,ie){var le,ze=Se.indexOf("E")-Se.indexOf(".")-1;if(Se.match(/^#+0.0E\+0$/)){if(ie==0)return"0.0E+0";if(ie<0)return"-"+et(Se,-ie);var X=Se.indexOf(".");X===-1&&(X=Se.indexOf("E"));var fe=Math.floor(Math.log(ie)*Math.LOG10E)%X;if(fe<0&&(fe+=X),le=(ie/Math.pow(10,fe)).toPrecision(ze+1+(X+fe)%X),!le.match(/[Ee]/)){var Le=Math.floor(Math.log(ie)*Math.LOG10E);le.indexOf(".")===-1?le=le.charAt(0)+"."+le.substr(1)+"E+"+(Le-le.length+fe):le+="E+"+(Le-fe),le=le.replace(/\+-/,"-")}le=le.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(We,at,Bt,rt){return at+Bt+rt.substr(0,(X+fe)%X)+"."+rt.substr(fe)+"E"})}else le=ie.toExponential(ze);return Se.match(/E\+00$/)&&le.match(/e[+-]\d$/)&&(le=le.substr(0,le.length-1)+"0"+le.charAt(le.length-1)),Se.match(/E\-/)&&le.match(/e\+/)&&(le=le.replace(/e\+/,"e")),le.replace("e","E")}function Be(Se,ie,le){if(Se.charCodeAt(0)===40&&!ie.match(ue)){var ze=ie.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return le>=0?Be("n",ze,le):"("+Be("n",ze,-le)+")"}if(ie.charCodeAt(ie.length-1)===44)return Me(Se,ie,le);if(ie.indexOf("%")!==-1)return it(Se,ie,le);if(ie.indexOf("E")!==-1)return et(ie,le);if(ie.charCodeAt(0)===36)return"$"+Be(Se,ie.substr(ie.charAt(1)==" "?2:1),le);var X,fe,Le,We,at=Math.abs(le),Bt=le<0?"-":"";if(ie.match(/^00+$/))return Bt+u(at,ie.length);if(ie.match(/^[#?]+$/))return X=""+le,le===0&&(X=""),X.length>ie.length?X:ae(ie.substr(0,ie.length-X.length))+X;if(fe=ie.match(H))return J(fe,at,Bt);if(ie.match(/^#+0+$/))return Bt+u(at,ie.length-ie.indexOf("0"));if(fe=ie.match(ce))return X=(""+le).replace(/^([^\.]+)$/,"$1."+ae(fe[1])).replace(/\.$/,"."+ae(fe[1])),X=X.replace(/\.(\d*)$/,function(qs,R3){return"."+R3+o("0",ae(fe[1]).length-R3.length)}),ie.indexOf("0.")!==-1?X:X.replace(/^0\./,".");if(ie=ie.replace(/^#+([0.])/,"$1"),fe=ie.match(/^(0*)\.(#*)$/))return Bt+(""+at).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,fe[1].length?"0.":".");if(fe=ie.match(/^#{1,3},##0(\.?)$/))return Bt+te(""+at);if(fe=ie.match(/^#,##0\.([#0]*0)$/))return le<0?"-"+Be(Se,ie,-le):te(""+le)+"."+o("0",fe[1].length);if(fe=ie.match(/^#,#*,#0/))return Be(Se,ie.replace(/^#,#*,/,""),le);if(fe=ie.match(/^([0#]+)(\\?-([0#]+))+$/))return X=s(Be(Se,ie.replace(/[\\-]/g,""),le)),Le=0,s(s(ie.replace(/\\/g,"")).replace(/[0#]/g,function(qs){return Le<X.length?X.charAt(Le++):qs==="0"?"0":""}));if(ie.match(Z))return X=Be(Se,"##########",le),"("+X.substr(0,3)+") "+X.substr(3,3)+"-"+X.substr(6);var rt="";if(fe=ie.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))return Le=Math.min(fe[4].length,7),We=_(at,Math.pow(10,Le)-1,!1),X=""+Bt,rt=K("n",fe[1],We[1]),rt.charAt(rt.length-1)==" "&&(rt=rt.substr(0,rt.length-1)+"0"),X+=rt+fe[2]+"/"+fe[3],rt=l(We[2],Le),rt.length<fe[4].length&&(rt=ae(fe[4].substr(fe[4].length-rt.length))+rt),X+=rt,X;if(fe=ie.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/))return Le=Math.min(Math.max(fe[1].length,fe[4].length),7),We=_(at,Math.pow(10,Le)-1,!0),Bt+(We[0]||(We[1]?"":"0"))+" "+(We[1]?a(We[1],Le)+fe[2]+"/"+fe[3]+l(We[2],Le):o(" ",2*Le+1+fe[2].length+fe[3].length));if(fe=ie.match(/^[#0?]+$/))return X=""+le,ie.length<=X.length?X:ae(ie.substr(0,ie.length-X.length))+X;if(fe=ie.match(/^([#0]+)\.([#0]+)$/)){X=""+le.toFixed(Math.min(fe[2].length,10)).replace(/([^0])0+$/,"$1"),Le=X.indexOf(".");var vr=ie.indexOf(".")-Le,Wc=ie.length-X.length-vr;return ae(ie.substr(0,vr)+X+ie.substr(ie.length-Wc))}if(fe=ie.match(/^00,000\.([#0]*0)$/))return le<0?"-"+Be(Se,ie,-le):te(""+le).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,function(qs){return"00,"+(qs.length<3?u(0,3-qs.length):"")+qs})+"."+u(0,fe[1].length);switch(ie){case"###,###":case"##,###":case"#,###":var T3=te(""+at);return T3!=="0"?Bt+T3:"";default:if(ie.match(/\.[0#?]*$/))return Be(Se,ie.slice(0,ie.lastIndexOf(".")),le)+ae(ie.slice(ie.lastIndexOf(".")))}throw new Error("unsupported format |"+ie+"|")}return function(ie,le,ze){return(ze|0)===ze?Be(ie,le,ze):Oe(ie,le,ze)}}();function de(D){for(var $=[],j=!1,Q=0,I=0;Q<D.length;++Q)switch(D.charCodeAt(Q)){case 34:j=!j;break;case 95:case 42:case 92:++Q;break;case 59:$[$.length]=D.substr(I,Q-I),I=Q+1}if($[$.length]=D.substr(I),j===!0)throw new Error("Format |"+D+"| unterminated string ");return $}i._split=de;var be=/\[[HhMmSs\u0E0A\u0E19\u0E17]*\]/;function ee(D){for(var $=0,j="",Q="";$<D.length;)switch(j=D.charAt($)){case"G":p(D,$)&&($+=6),$++;break;case'"':for(;D.charCodeAt(++$)!==34&&$<D.length;);++$;break;case"\\":$+=2;break;case"_":$+=2;break;case"@":++$;break;case"B":case"b":if(D.charAt($+1)==="1"||D.charAt($+1)==="2")return!0;case"M":case"D":case"Y":case"H":case"S":case"E":case"m":case"d":case"y":case"h":case"s":case"e":case"g":return!0;case"A":case"a":case"上":if(D.substr($,3).toUpperCase()==="A/P"||D.substr($,5).toUpperCase()==="AM/PM"||D.substr($,5).toUpperCase()==="上午/下午")return!0;++$;break;case"[":for(Q=j;D.charAt($++)!=="]"&&$<D.length;)Q+=D.charAt($);if(Q.match(be))return!0;break;case".":case"0":case"#":for(;$<D.length&&("0#?.,E+-%".indexOf(j=D.charAt(++$))>-1||j=="\\"&&D.charAt($+1)=="-"&&"0#".indexOf(D.charAt($+2))>-1););break;case"?":for(;D.charAt(++$)===j;);break;case"*":++$,(D.charAt($)==" "||D.charAt($)=="*")&&++$;break;case"(":case")":++$;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;$<D.length&&"0123456789".indexOf(D.charAt(++$))>-1;);break;case" ":++$;break;default:++$;break}return!1}i.is_date=ee;function U(D,$,j,Q){for(var I=[],H="",P=0,J="",ce="t",ue,Z,ae,qe="H";P<D.length;)switch(J=D.charAt(P)){case"G":if(!p(D,P))throw new Error("unrecognized character "+J+" in "+D);I[I.length]={t:"G",v:"General"},P+=7;break;case'"':for(H="";(ae=D.charCodeAt(++P))!==34&&P<D.length;)H+=String.fromCharCode(ae);I[I.length]={t:"t",v:H},++P;break;case"\\":var se=D.charAt(++P),xe=se==="("||se===")"?se:"t";I[I.length]={t:xe,v:se},++P;break;case"_":I[I.length]={t:"t",v:" "},P+=2;break;case"@":I[I.length]={t:"T",v:$},++P;break;case"B":case"b":if(D.charAt(P+1)==="1"||D.charAt(P+1)==="2"){if(ue==null&&(ue=C($,j,D.charAt(P+1)==="2"),ue==null))return"";I[I.length]={t:"X",v:D.substr(P,2)},ce=J,P+=2;break}case"M":case"D":case"Y":case"H":case"S":case"E":J=J.toLowerCase();case"m":case"d":case"y":case"h":case"s":case"e":case"g":if($<0||ue==null&&(ue=C($,j),ue==null))return"";for(H=J;++P<D.length&&D.charAt(P).toLowerCase()===J;)H+=J;J==="m"&&ce.toLowerCase()==="h"&&(J="M"),J==="h"&&(J=qe),I[I.length]={t:J,v:H},ce=J;break;case"A":case"a":case"上":var Ce={t:J,v:J};if(ue==null&&(ue=C($,j)),D.substr(P,3).toUpperCase()==="A/P"?(ue!=null&&(Ce.v=ue.H>=12?"P":"A"),Ce.t="T",qe="h",P+=3):D.substr(P,5).toUpperCase()==="AM/PM"?(ue!=null&&(Ce.v=ue.H>=12?"PM":"AM"),Ce.t="T",P+=5,qe="h"):D.substr(P,5).toUpperCase()==="上午/下午"?(ue!=null&&(Ce.v=ue.H>=12?"下午":"上午"),Ce.t="T",P+=5,qe="h"):(Ce.t="t",++P),ue==null&&Ce.t==="T")return"";I[I.length]=Ce,ce=J;break;case"[":for(H=J;D.charAt(P++)!=="]"&&P<D.length;)H+=D.charAt(P);if(H.slice(-1)!=="]")throw'unterminated "[" block: |'+H+"|";if(H.match(be)){if(ue==null&&(ue=C($,j),ue==null))return"";I[I.length]={t:"Z",v:H.toLowerCase()},ce=H.charAt(1)}else H.indexOf("$")>-1&&(H=(H.match(/\$([^-\[\]]*)/)||[])[1]||"$",ee(D)||(I[I.length]={t:"t",v:H}));break;case".":if(ue!=null){for(H=J;++P<D.length&&(J=D.charAt(P))==="0";)H+=J;I[I.length]={t:"s",v:H};break}case"0":case"#":for(H=J;++P<D.length&&"0#?.,E+-%".indexOf(J=D.charAt(P))>-1;)H+=J;I[I.length]={t:"n",v:H};break;case"?":for(H=J;D.charAt(++P)===J;)H+=J;I[I.length]={t:J,v:H},ce=J;break;case"*":++P,(D.charAt(P)==" "||D.charAt(P)=="*")&&++P;break;case"(":case")":I[I.length]={t:Q===1?"t":J,v:J},++P;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(H=J;P<D.length&&"0123456789".indexOf(D.charAt(++P))>-1;)H+=D.charAt(P);I[I.length]={t:"D",v:H};break;case" ":I[I.length]={t:J,v:J},++P;break;case"$":I[I.length]={t:"t",v:"$"},++P;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(J)===-1)throw new Error("unrecognized character "+J+" in "+D);I[I.length]={t:"t",v:J},++P;break}var Oe=0,Me=0,it;for(P=I.length-1,ce="t";P>=0;--P)switch(I[P].t){case"h":case"H":I[P].t=qe,ce="h",Oe<1&&(Oe=1);break;case"s":(it=I[P].v.match(/\.0+$/))&&(Me=Math.max(Me,it[0].length-1)),Oe<3&&(Oe=3);case"d":case"y":case"M":case"e":ce=I[P].t;break;case"m":ce==="s"&&(I[P].t="M",Oe<2&&(Oe=2));break;case"X":break;case"Z":Oe<1&&I[P].v.match(/[Hh]/)&&(Oe=1),Oe<2&&I[P].v.match(/[Mm]/)&&(Oe=2),Oe<3&&I[P].v.match(/[Ss]/)&&(Oe=3)}switch(Oe){case 0:break;case 1:ue.u>=.5&&(ue.u=0,++ue.S),ue.S>=60&&(ue.S=0,++ue.M),ue.M>=60&&(ue.M=0,++ue.H);break;case 2:ue.u>=.5&&(ue.u=0,++ue.S),ue.S>=60&&(ue.S=0,++ue.M);break}var et="",Be;for(P=0;P<I.length;++P)switch(I[P].t){case"t":case"T":case" ":case"D":break;case"X":I[P].v="",I[P].t=";";break;case"d":case"m":case"y":case"h":case"H":case"M":case"s":case"e":case"b":case"Z":I[P].v=G(I[P].t.charCodeAt(0),I[P].v,ue,Me),I[P].t="t";break;case"n":case"?":for(Be=P+1;I[Be]!=null&&((J=I[Be].t)==="?"||J==="D"||(J===" "||J==="t")&&I[Be+1]!=null&&(I[Be+1].t==="?"||I[Be+1].t==="t"&&I[Be+1].v==="/")||I[P].t==="("&&(J===" "||J==="n"||J===")")||J==="t"&&(I[Be].v==="/"||I[Be].v===" "&&I[Be+1]!=null&&I[Be+1].t=="?"));)I[P].v+=I[Be].v,I[Be]={v:"",t:";"},++Be;et+=I[P].v,P=Be-1;break;case"G":I[P].t="t",I[P].v=W($,j);break}var Se="",ie,le;if(et.length>0){et.charCodeAt(0)==40?(ie=$<0&&et.charCodeAt(0)===45?-$:$,le=K("n",et,ie)):(ie=$<0&&Q>1?-$:$,le=K("n",et,ie),ie<0&&I[0]&&I[0].t=="t"&&(le=le.substr(1),I[0].v="-"+I[0].v)),Be=le.length-1;var ze=I.length;for(P=0;P<I.length;++P)if(I[P]!=null&&I[P].t!="t"&&I[P].v.indexOf(".")>-1){ze=P;break}var X=I.length;if(ze===I.length&&le.indexOf("E")===-1){for(P=I.length-1;P>=0;--P)I[P]==null||"n?".indexOf(I[P].t)===-1||(Be>=I[P].v.length-1?(Be-=I[P].v.length,I[P].v=le.substr(Be+1,I[P].v.length)):Be<0?I[P].v="":(I[P].v=le.substr(0,Be+1),Be=-1),I[P].t="t",X=P);Be>=0&&X<I.length&&(I[X].v=le.substr(0,Be+1)+I[X].v)}else if(ze!==I.length&&le.indexOf("E")===-1){for(Be=le.indexOf(".")-1,P=ze;P>=0;--P)if(!(I[P]==null||"n?".indexOf(I[P].t)===-1)){for(Z=I[P].v.indexOf(".")>-1&&P===ze?I[P].v.indexOf(".")-1:I[P].v.length-1,Se=I[P].v.substr(Z+1);Z>=0;--Z)Be>=0&&(I[P].v.charAt(Z)==="0"||I[P].v.charAt(Z)==="#")&&(Se=le.charAt(Be--)+Se);I[P].v=Se,I[P].t="t",X=P}for(Be>=0&&X<I.length&&(I[X].v=le.substr(0,Be+1)+I[X].v),Be=le.indexOf(".")+1,P=ze;P<I.length;++P)if(!(I[P]==null||"n?(".indexOf(I[P].t)===-1&&P!==ze)){for(Z=I[P].v.indexOf(".")>-1&&P===ze?I[P].v.indexOf(".")+1:0,Se=I[P].v.substr(0,Z);Z<I[P].v.length;++Z)Be<le.length&&(Se+=le.charAt(Be++));I[P].v=Se,I[P].t="t",X=P}}}for(P=0;P<I.length;++P)I[P]!=null&&"n?".indexOf(I[P].t)>-1&&(ie=Q>1&&$<0&&P>0&&I[P-1].v==="-"?-$:$,I[P].v=K(I[P].t,I[P].v,ie),I[P].t="t");var fe="";for(P=0;P!==I.length;++P)I[P]!=null&&(fe+=I[P].v);return fe}i._eval=U;var T=/\[[=<>]/,w=/\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;function k(D,$){if($==null)return!1;var j=parseFloat($[2]);switch($[1]){case"=":if(D==j)return!0;break;case">":if(D>j)return!0;break;case"<":if(D<j)return!0;break;case"<>":if(D!=j)return!0;break;case">=":if(D>=j)return!0;break;case"<=":if(D<=j)return!0;break}return!1}function z(D,$){var j=de(D),Q=j.length,I=j[Q-1].indexOf("@");if(Q<4&&I>-1&&--Q,j.length>4)throw new Error("cannot find right format for |"+j.join("|")+"|");if(typeof $!="number")return[4,j.length===4||I>-1?j[j.length-1]:"@"];switch(j.length){case 1:j=I>-1?["General","General","General",j[0]]:[j[0],j[0],j[0],"@"];break;case 2:j=I>-1?[j[0],j[0],j[0],j[1]]:[j[0],j[1],j[0],"@"];break;case 3:j=I>-1?[j[0],j[1],j[0],j[2]]:[j[0],j[1],j[2],"@"];break}var H=$>0?j[0]:$<0?j[1]:j[2];if(j[0].indexOf("[")===-1&&j[1].indexOf("[")===-1)return[Q,H];if(j[0].match(T)!=null||j[1].match(T)!=null){var P=j[0].match(w),J=j[1].match(w);return k($,P)?[Q,j[0]]:k($,J)?[Q,j[1]]:[Q,j[P!=null&&J!=null?2:1]]}return[Q,H]}function Y(D,$,j){j==null&&(j={});var Q="";switch(typeof D){case"string":D=="m/d/yy"&&j.dateNF?Q=j.dateNF:Q=D;break;case"number":D==14&&j.dateNF?Q=j.dateNF:Q=(j.table!=null?j.table:E)[D],Q==null&&(Q=j.table&&j.table[A[D]]||E[A[D]]),Q==null&&(Q=v[D]||"General");break}if(p(Q,0))return W($,j);$ instanceof Date&&($=L($,j.date1904));var I=z(Q,$);if(p(I[1]))return W($,j);if($===!0)$="TRUE";else if($===!1)$="FALSE";else if($===""||$==null)return"";return U(I[1],$,j,I[0])}function V(D,$){if(typeof $!="number"){$=+$||-1;for(var j=0;j<392;++j){if(E[j]==null){$<0&&($=j);continue}if(E[j]==D){$=j;break}}$<0&&($=391)}return E[$]=D,$}i.load=V,i._table=E,i.get_table=function(){return E},i.load_table=function($){for(var j=0;j!=392;++j)$[j]!==void 0&&V($[j],j)},i.init_table=y,i.format=Y};n(e),typeof DO_NOT_EXPORT_SSF>"u"&&(t.exports=e)})(gle);var sP=gle.exports;const mnt=new Map([[r0.Nanoseconds,1e3],[r0.Microseconds,1e3],[r0.Milliseconds,1e3],[r0.Seconds,60],[r0.Minutes,60],[r0.Hours,24],[r0.Days,Number.MAX_VALUE]]);function mle(t,e){let n=e.toString();return t===1&&(n=n.substring(0,n.length-1)),`${t} ${n}`}function yle(t,e){let n=e;const{tag:r}=t.tagParse();if(r.has("currency")){let i="$";switch(r.text("currency")){case VN.Euros:i="€";break;case VN.Pounds:i="£";break;case VN.Dollars:break}n=sP.format(`${i}#,##0.00`,e)}else if(r.has("percent"))n=sP.format("#,##0.00%",e);else if(r.has("duration")){const s=r.text("duration")??r0.Seconds;let o=e,u=0,a=[],l=!1;for(const[c,f]of mnt)if(c===s&&(l=!0),!!l&&(u=o%f,o=Math.floor(o/=f),u>0&&(a=[mle(u,c),...a]),o===0))break;a.length>0?n=a.slice(0,2).join(" "):n=mle(0,s)}else r.has("number")?n=sP.format(r.text("number"),e):n=e.toLocaleString();return n}const ynt=32,Ent=384,Ele=12,Ant=28;function Snt(t){const e={};for(const[n,r]of Object.entries(t.fields)){const i=r.field,s={metadata:r,width:i.isExplore()?0:vnt(i,t),height:null},{tag:o}=i.tagParse();H4(o,"bar","bar_chart")&&i.isExploreField()?(s.width=r.vegaChartProps.totalWidth,s.height=r.vegaChartProps.totalHeight):!i.isExplore()&&i.isAtomicField()&&(s.height=Ant),e[n]=s}return e}function vnt(t,e){const n=Ex(t),r=e.fields[n];let i=0;if(t.isAtomicField()){const s="12px Inter, sans-serif",o=ey(t.name,s);if(t.isAtomicField()&&t.isString())i=Math.max(ey(r.maxString,s),o)+Ele;else if(t.isAtomicField()&&t.isNumber()){const u=r.max===null?"∅":yle(t,r.max);i=Math.max(ey(u,s),o)+Ele}else i=130;i=lDe(ynt,Ent,i)}return i}const Ale=gP(),b3=()=>rD(Ale);var _nt=Xc("<div class=cell-wrapper><div class=cell-gutter></div><div class=cell-content></div><div class=cell-gutter>"),Cnt=Xc("<th class=column-cell>"),bnt=Xc("<td class=column-cell>"),Tnt=Xc("<div class=sticky-header><div class=sticky-header-content>"),Rnt=Xc("<div class=malloy-table><table><thead><tr></tr></thead><tbody>"),Ont=Xc("<tr>");const Sle=t=>{const e=()=>{const n=b3().layout,r=n[Ex(t.field)].width,i=n[Ex(t.field)].height;let s="";return t.isHeader||typeof r<"u"&&(s+=`width: ${r}px; min-width: ${r}px; max-width: ${r}px;`,typeof i=="number"&&(s+=`height: ${i}px;`)),s};return(()=>{var n=_nt(),r=n.firstChild,i=r.nextSibling,s=i.nextSibling;return Ba(i,()=>t.value),s0(o=>{var u=!!t.hideStartGutter,a=!!t.isHeader,l=e(),c=!!t.hideEndGutter;return u!==o.e&&r.classList.toggle("hide-gutter-border",o.e=u),a!==o.t&&i.classList.toggle("header",o.t=a),o.a=t0e(i,l,o.a),c!==o.o&&s.classList.toggle("hide-gutter-border",o.o=c),o},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()},Nnt=t=>{const e=Q4(t.field),n=Q4(t.field.parentExplore),r=!t.field.parentExplore.isExploreField(),i=e&&(n||r),s=z4(t.field),o=z4(t.field.parentExplore),u=s&&(o||r);return(()=>{var a=Cnt();return Ba(a,Pn(Sle,{get field(){return t.field},get value(){return t.field.name},hideStartGutter:i,hideEndGutter:u,isHeader:!0})),s0(()=>a.classList.toggle("numeric",!!(t.field.isAtomicField()&&t.field.isNumber()))),a})()},Dnt=t=>{const e=b3(),n=_W(t.field);let r="";if(e.pinnedHeader)r="";else if(n==="cell"){const i=t.row.cell(t.field).value;SW(t.field,i)?r=yle(t.field,i):i===null?r="∅":vW(t.field,i)&&(r=i)}else if(n==="chart"){const i=Xie();r=Pn(ple,{get field(){return t.field},get data(){return i.getData(t.row.cell(t.field))},metadata:i})}return(()=>{var i=bnt();return Ba(i,Pn(TP,{get children(){return[Pn(uD,{when:n==="table",get children(){return Pn(oP,{get data(){return t.row.cell(t.field)},get pinnedHeader(){return e.pinnedHeader},get rowLimit(){return e.pinnedHeader?1:1/0}})}}),Pn(uD,{when:!0,get children(){return Pn(Sle,{get field(){return t.field},value:r,get hideStartGutter(){return Q4(t.field)},get hideEndGutter(){return z4(t.field)}})}})]}})),s0(()=>i.classList.toggle("numeric",!!(t.field.isAtomicField()&&t.field.isNumber()))),i})()},Fnt=t=>{const e=Xle({rowLimit:1/0,pinnedHeader:!1},t),n=b3(),[r,i]=tD(!1),s=u=>{const a=u.target;i(a.scrollTop>0)},o=Qs(()=>{const u=[];let a=0;for(const l of e.data){if(a>=e.rowLimit)break;u.push(l),a++}return u});return(()=>{var u=Rnt(),a=u.firstChild,l=a.firstChild,c=l.firstChild,f=l.nextSibling;return u.addEventListener("scroll",s),Ba(u,Pn(Jle,{get when(){return n.root},get children(){var x=Tnt(),h=x.firstChild;return Ba(h,Pn(oP,{get data(){return e.data},rowLimit:1,pinnedHeader:!0})),x}}),a),Ba(c,()=>e.data.field.allFields.map(x=>Pn(Nnt,{field:x}))),Ba(f,Pn(Kle,{get each(){return o()},children:x=>(()=>{var h=Ont();return Ba(h,()=>e.data.field.allFields.map(p=>Pn(Dnt,{field:p,row:x}))),h})()})),s0(x=>{var h=!!n.root,p=!!n.pinnedHeader,m=!!r();return h!==x.e&&u.classList.toggle("root",x.e=h),p!==x.t&&u.classList.toggle("pinned-header",x.t=p),m!==x.a&&u.classList.toggle("scrolled",x.a=m),x},{e:void 0,t:void 0,a:void 0}),u})()},oP=t=>{const e=Xie(),n=!!b3(),r=Qs(()=>{if(n){const i=b3();return{root:!1,pinnedHeader:t.pinnedHeader??i.pinnedHeader,layout:i.layout}}return{root:!0,pinnedHeader:t.pinnedHeader??!1,layout:Snt(e)}});return Pn(Ale.Provider,{get value(){return r()},get children(){return Pn(Fnt,t)}})};function wnt(t,{element:e}){const n=Qs(()=>{if(t.result)return t.result;if(t.queryResult&&t.modelDef)return new OP.Result(t.queryResult,t.modelDef);throw Error("MalloyRender: Must provide either a result or a queryResult and modelDef.")}),r=Qs(()=>vWe(n())),i=()=>{const o=n().modelTag,u=n().tagParse().tag,a=o.tag("theme"),l=u.tag("theme");return{modelTag:o,resultTag:u,modelTheme:a,localTheme:l}};nD(()=>{if(e){const o=Lnt(i().modelTheme,i().localTheme);for(const[u,a]of Object.entries(o))e.style.setProperty(u,a)}});const s=()=>{const o=i().resultTag,u=n().resultExplore;return _W(u,o)};return Pn(Yie.Provider,{get value(){return r()},get children(){return Pn(TP,{get fallback(){return Pn(oP,{get data(){return n().data}})},get children(){return Pn(uD,{get when(){return s()==="chart"},get children(){return Pn(ple,{get field(){return n().resultExplore},get data(){return r().getData(n().data)},get metadata(){return r()}})}})}})}})}function bo(t,...e){let n;for(const r of e)if(n=r==null?void 0:r.text(t),typeof n<"u")break;return n??`var(--malloy-theme--${t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()})`}function Lnt(t,e){const n={},r=bo("tableRowHeight",e,t),i=bo("tableBodyColor",e,t),s=bo("tableFontSize",e,t),o=bo("tableHeaderColor",e,t),u=bo("tableHeaderWeight",e,t),a=bo("tableBodyWeight",e,t),l=bo("tableBorder",e,t),c=bo("tableBackground",e,t),f=bo("tableGutterSize",e,t),x=bo("tablePinnedBackground",e,t),h=bo("tablePinnedBorder",e,t),p=bo("fontFamily",e,t);return n["--malloy-render--table-row-height"]=r,n["--malloy-render--table-body-color"]=i,n["--malloy-render--table-font-size"]=s,n["--malloy-render--font-family"]=p,n["--malloy-render--table-header-color"]=o,n["--malloy-render--table-header-weight"]=u,n["--malloy-render--table-body-weight"]=a,n["--malloy-render--table-border"]=l,n["--malloy-render--table-background"]=c,n["--malloy-render--table-gutter-size"]=f,n["--malloy-render--table-pinned-background"]=x,n["--malloy-render--table-pinned-border"]=h,n}const Int=`:host {
|
|
1320
1320
|
--malloy-theme--table-row-height: 28px;
|
|
1321
1321
|
--malloy-theme--table-font-size: 12px;
|
|
1322
1322
|
--malloy-theme--table-header-color: #5d626b;
|