diff --git a/404.html b/404.html index a57ff6a5..b1f1d0ff 100644 --- a/404.html +++ b/404.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } - + diff --git a/advancement/index.html b/advancement/index.html index b017fa6f..5fa9d1d3 100644 --- a/advancement/index.html +++ b/advancement/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } - + diff --git a/assets/blockstate/index.html b/assets/blockstate/index.html index d9a63437..94f7ef99 100644 --- a/assets/blockstate/index.html +++ b/assets/blockstate/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } - + diff --git a/assets/deepslate.esm.27c793ac.js b/assets/deepslate.esm.662720d7.js similarity index 99% rename from assets/deepslate.esm.27c793ac.js rename to assets/deepslate.esm.662720d7.js index 4023c208..211562c1 100644 --- a/assets/deepslate.esm.27c793ac.js +++ b/assets/deepslate.esm.662720d7.js @@ -1,4 +1,4 @@ -import{p as Se,c as et,i as zt,t as nt,r as De,a as Me,s as Ee,f as bt,b as Oe,d as jt,n as Le,e as Ue,g as Ge,h as Ye,j as He,k as Ve,l as he,m as ze,o as je}from"./vec3.7a0b0b73.js";import{e as Ie}from"./index.2a99a61a.js";var F;(function(a){a.UP="up",a.DOWN="down",a.NORTH="north",a.EAST="east",a.SOUTH="south",a.WEST="west"})(F||(F={}));const Je={[F.UP]:[0,1,0],[F.DOWN]:[0,-1,0],[F.NORTH]:[0,0,-1],[F.EAST]:[1,0,0],[F.SOUTH]:[0,0,1],[F.WEST]:[-1,0,0]};var rt;(function(a){a.ALL=[a.UP,a.DOWN,a.NORTH,a.EAST,a.SOUTH,a.WEST],a.normal=function(t){return Je[t]}})(F||(F={})),function(a){a.create=function(t,e,s){return[t,e,s]},a.offset=function(t,e,s,i){return[t[0]+e,t[1]+s,t[2]+i]},a.towards=function(t,e){return a.offset(t,...F.normal(e))}}(rt||(rt={}));const ut={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},ue=["end","byte","short","int","long","float","double","byteArray","string","list","compound","intArray","longArray"];class Xe{constructor(t,e=!1){this.byte=this.readNum.bind(this,"getInt8",1),this.short=this.readNum.bind(this,"getInt16",2),this.int=this.readNum.bind(this,"getInt32",4),this.float=this.readNum.bind(this,"getFloat32",4),this.double=this.readNum.bind(this,"getFloat64",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const s=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,s}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let s=0;s=e)return;let s=this.buffer.byteLength;for(;sthis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=i,this.dataView=new DataView(i),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,s){this.accommodate(e),this.dataView[t](this.offset,s,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e>6),r.push(128|63&n)):n<65536?(r.push(224|n>>12),r.push(128|n>>6&63),r.push(128|63&n)):(r.push(240|n>>18&7),r.push(128|n>>12&63),r.push(128|n>>6&63),r.push(128|63&n));return r}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(ut[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),s.setInt16(r+1,65535&i),s.setInt8(r+3,o),s.setInt32(r+4096,n.timestamp);const h=4096*i;s.setInt32(h,n.data.length+1),s.setInt8(h+4,n.compression),e.set(n.data,h+5),i+=o}return e}function bs(a,t,e,s){const i=Ne(a,t,e);switch(i.compression){case 1:i.data=Jt(s);break;case 2:i.data=Jt(s,!1,!0);break;case 3:i.data=ne(s);break;default:throw new Error(`Invalid compression mode ${i.compression}`)}return i}function Ne(a,t,e){const s=a.find(i=>i.x===t&&i.z===e);if(s===void 0)throw new Error(`Cannot find chunk [${t}, ${e}]`);return s}function st(a,t,e){if(!a[t])throw new Error(`Missing ${t} tag`);if(a[t].type!==e)throw new Error(`Expected ${t} to be of type ${e}, but found ${a[t].type}`);return a[t].value}function vt(a,t,e,s){const i=st(a,t,"list");if(i.type!==e)throw new Error(`Expected ${t} to be a list of ${e}s, but found ${i.type}s`);if(s&&i.value.length!==s)throw new Error(`Expected ${t} to be a list of length ${s}, but found length ${i.value.length}`);return i.value}function Ae(a,t){try{return a()}catch{return t}}var p,H,Xt,it,ct;(function(a){function t(e){return typeof e=="object"&&e!==null?e:void 0}a.readNumber=function(e){return typeof e=="number"?e:void 0},a.readInt=function(e){return typeof e=="number"?Math.floor(e):void 0},a.readString=function(e){return typeof e=="string"?e:void 0},a.readBoolean=function(e){return typeof e=="boolean"?e:void 0},a.readObject=t,a.readArray=function(e,s){if(Array.isArray(e))return e.map(i=>s(i))},a.readMap=function(e,s){var i;const n=(i=t(e))!==null&&i!==void 0?i:{};return Object.fromEntries(Object.entries(n).map(([r,o])=>[r,s(o)]))},a.compose=function(e,s,i){const n=s(e);return n?i(n):void 0}})(p||(p={}));class M{constructor(t,e={}){this.name=t,this.properties=e}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return this.name==="minecraft:water"||this.name==="minecraft:lava"}equals(t){return this.name===t.name&&Object.keys(this.properties).every(e=>t.properties[e]===this.properties[e])}toString(){return Object.keys(this.properties).length===0?this.name:`${this.name}[${Object.entries(this.properties).map(([t,e])=>t+"="+e).join(",")}]`}static fromNbt(t){const e=st(t.value,"Name","string"),s=Ae(()=>st(t.value,"Properties","compound"),{}),i=Object.keys(s).reduce((n,r)=>Object.assign(Object.assign({},n),{[r]:st(s,r,"string")}),{});return new M(e,i)}static fromJson(t){var e,s;const i=(e=p.readObject(t))!==null&&e!==void 0?e:{},n=(s=p.readString(i.Name))!==null&&s!==void 0?s:"minecraft:stone",r=p.readMap(i.Properties,o=>{var h;return(h=p.readString(o))!==null&&h!==void 0?h:""});return new M(n,r)}}M.AIR=new M("minecraft:air");class ${constructor(t){this.minY=t,this.storage=Array($.SIZE),this.palette=[M.AIR]}get minBlockY(){return this.minY<<4}index(t,e,s){return(t<<8)+(e<<4)+s}getBlockState(t,e,s){var i;const n=this.storage[this.index(t,e,s)];return(i=this.palette[n])!==null&&i!==void 0?i:M.AIR}setBlockState(t,e,s,i){let n=this.palette.findIndex(r=>r.equals(i));n===-1&&(n=this.palette.length,this.palette.push(i)),this.storage[this.index(t,e,s)]=n}}$.WIDTH=16,$.SIZE=$.WIDTH*$.WIDTH*$.WIDTH;class Ss{constructor(t,e,s){this.minY=t,this.height=e,this.pos=s,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[s,i,n]=t,r=this.sections[this.getSectionIndex(i)];return(e=r==null?void 0:r.getBlockState(15&s,15&i,15&n))!==null&&e!==void 0?e:M.AIR}setBlockState(t,e){const[s,i,n]=t,r=this.getSectionIndex(i);let o=this.sections[r];if(o===null){if(e.equals(M.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&s,15&i,15&n,e)}getOrCreateSection(t){return this.sections[t]==null&&(this.sections[t]=new $(this.minSection+t)),this.sections[t]}}(function(a){function t(e,s){return BigInt(4294967295&e)|BigInt(4294967295&s)<>4,e[2]>>4]},a.fromLong=function(e){return[4294967295&Number(e),Number(e>>BigInt(32))]},a.toLong=function(e){return t(e[0],e[1])},a.asLong=t,a.minBlockX=function(e){return e[0]<<4},a.minBlockZ=function(e){return e[1]<<4},a.maxBlockX=function(e){return 15+(e[0]<<4)},a.maxBlockZ=function(e){return 15+(e[1]<<4)}})(H||(H={}));class ye{constructor(t,e=[],s=[]){this.size=t,this.palette=e,this.blocks=s,this.blocksMap=[],s.forEach(i=>{if(!this.isInside(i.pos))throw new Error(`Found block at ${i.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[i.pos[0]*t[1]*t[2]+i.pos[1]*t[2]+i.pos[2]]=i})}getSize(){return this.size}addBlock(t,e,s,i){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new M(e,s);let r=this.palette.findIndex(o=>o.equals(n));return r===-1&&(r=this.palette.length,this.palette.push(n)),this.blocks.push({pos:t,state:r,nbt:i}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:i},this}getBlocks(){return this.blocks.map(t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt}))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];return e?{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}:null}isInside(t){return t[0]>=0&&t[0]=0&&t[1]=0&&t[2]M.fromNbt({name:"",value:n})),i=vt(t.value,"blocks","compound").map(n=>({pos:vt(n,"pos","int",3),state:st(n,"state","int"),nbt:Ae(()=>st(n,"nbt","compound"),void 0)}));return new ye(e,s,i)}}function Lt(a){let t=null;return()=>(t==null&&(t=a()),t)}function re(a,t,e){const s=a.get(t);if(s)return s;const i=e(t);return a.set(t,i),i}function j(a){return a*a}function Z(a,t,e){return Math.max(t,Math.min(e,a))}function k(a,t,e){return t+a*(e-t)}function Zt(a,t,e,s,i,n){return k(t,k(a,e,s),k(a,i,n))}function We(a,t,e,s,i,n,r,o,h,c,l){return k(e,Zt(a,t,s,i,n,r),Zt(a,t,o,h,c,l))}function ft(a,t,e){return e<0?a:e>1?t:k(e,a,t)}function Pe(a,t,e){return(a-t)/(e-t)}function Ut(a){return a*a*a*(a*(6*a-15)+10)}function W(a,t,e,s,i){return k(Pe(a,t,e),s,i)}function $e(a,t,e,s,i){return ft(s,i,Pe(a,t,e))}function qe(a,t,e){let s=t-a;for(;s>0;){const i=Math.floor(s/2),n=a+i;e(n)?s=i:(a=n+1,s-=i+1)}return a}function Fe(a,t,e){let s=BigInt(3129871*a)^BigInt(e)*BigInt(116129781)^BigInt(t);return s=s*s*BigInt(42317861)+s*BigInt(11),s>>BigInt(16)}function Wt(a,t,e,s,i,n,r,o){return BigInt(a)<>BigInt(R.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(t===void 0)return this.next(32);if((t&t-1)==0)return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,s;for(;(e=this.next(31))-(s=e%t)+(t-1)<0;);return s}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt("-4658895280553007687")&BigInt("0xFFFFFFFFFFFFFFFF"))^t>>BigInt(27))*BigInt("-7723592293110705685")&BigInt("0xFFFFFFFFFFFFFFFF"))^t>>BigInt(31))&BigInt("0xFFFFFFFFFFFFFFFF")}static upgradeSeedTo128bit(t){t<0&&(t+=BigInt("0x10000000000000000"));const e=t^P.SILVER_RATIO_64,s=e+P.GOLDEN_RATIO_64&BigInt("0xFFFFFFFFFFFFFFFF");return[P.mixStafford13(e),P.mixStafford13(s)]}static rotateLeft(t,e){return t<>BigInt(64)-e}setSeed(t){this.seed=P.upgradeSeedTo128bit(t)}fork(){return new P([this.next(),this.next()])}forkPositional(){return new Ke(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const s=P.rotateLeft(t+e&BigInt("0xFFFFFFFFFFFFFFFF"),BigInt(17))+t&BigInt("0xFFFFFFFFFFFFFFFF");return e^=t,this.seed=[P.rotateLeft(t,BigInt(49))^e^e<BigInt("0x8000000000000000")&&(t-=BigInt("0x10000000000000000")),t}consume(t){let e=this.seed[0],s=this.seed[1];for(let i=0;i>BigInt(64-t)}nextInt(t){let e=this.next()&BigInt(4294967295);if(t){const s=BigInt(t);let i=e*s,n=i&BigInt(4294967295);if(n>BigInt(32);return Number(r)}{let s=Number(e);return s>=2147483648&&(s-=4294967296),s}}nextFloat(){return Number(this.nextBits(24))*P.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*P.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}}P.SILVER_RATIO_64=BigInt("7640891576956012809"),P.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),P.FLOAT_MULTIPLIER=1/Math.pow(2,24),P.DOUBLE_MULTIPLIER=11102230246251565e-32;class Ke{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,s){const i=Fe(t,e,s)^this.seedLo;return new P([i,this.seedHi])}fromHashOf(t){const e=Ie(t,{asBytes:!0}),s=Wt(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]),i=Wt(e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]);return new P([s^this.seedLo,i^this.seedHi])}}class x{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let e=0;e<256;e+=1)this.p[e]=e;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),i=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=i}}sample2D(t,e){let s,i,n;const r=(t+e)*x.F2,o=Math.floor(t+r),h=t-(o-(s=(o+(i=Math.floor(e+r)))*x.G2));let c,l;h>(n=e-(i-s))?(c=1,l=0):(c=0,l=1);const u=h-c+x.G2,d=n-l+x.G2,f=h-1+2*x.G2,g=n-1+2*x.G2,m=255&o,b=255&i,E=this.P(m+this.P(b))%12,I=this.P(m+c+this.P(b+l))%12,N=this.P(m+1+this.P(b+1))%12;return 70*(this.getCornerNoise3D(E,h,n,0,.5)+this.getCornerNoise3D(I,u,d,0,.5)+this.getCornerNoise3D(N,f,g,0,.5))}sample(t,e,s){const i=.3333333333333333*(t+e+s),n=Math.floor(t+i),r=Math.floor(e+i),o=Math.floor(s+i),h=.16666666666666666*(n+r+o),c=t-(n-h),l=e-(r-h),u=s-(o-h);let d,f,g,m,b,E;c>=l?l>=u?(d=1,f=0,g=0,m=1,b=1,E=0):c>=u?(d=1,f=0,g=0,m=1,b=0,E=1):(d=0,f=0,g=1,m=1,b=0,E=1):l127?e-256:e;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),i=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=i}}sample(t,e,s,i=0,n=0){const r=t+this.xo,o=e+this.yo,h=s+this.zo,c=Math.floor(r),l=Math.floor(o),u=Math.floor(h),d=r-c,f=o-l,g=h-u;let m=0;if(i!==0){const b=n>=0&&n=0;i-=1)i0&&(i=this.maxLimitNoise.getOctaveNoise(c))&&(h+=i.sample(d,f,g,u,e*u)/r),r/=2}return ft(o/512,h/512,n)/128}}(function(a){a.fromJson=function(t){var e,s,i,n,r;const o=(e=p.readObject(t))!==null&&e!==void 0?e:{};return{xzScale:(s=p.readNumber(o.xz_scale))!==null&&s!==void 0?s:1,yScale:(i=p.readNumber(o.y_scale))!==null&&i!==void 0?i:1,xzFactor:(n=p.readNumber(o.xz_factor))!==null&&n!==void 0?n:80,yFactor:(r=p.readNumber(o.y_factor))!==null&&r!==void 0?r:80}}})(Xt||(Xt={}));class J{constructor(t,{firstOctave:e,amplitudes:s}){this.first=new L(t,e,s),this.second=new L(t,e,s);let i=1/0,n=-1/0;for(let o=0;o{var o;return(o=p.readNumber(r))!==null&&o!==void 0?o:0}))!==null&&i!==void 0?i:[]}}}(it||(it={}));class Es{constructor(t,e){const s=e[e.length-1],i=-e[0]+s+1,n=new Set(e),r=new x(t);this.noiseLevels=Array(i),s>=0&&s=0&&n.has(s-o)?this.noiseLevels[o]=new x(t):t.consume(262);if(s>0)throw new Error("Positive octaves are not allowed");this.highestFreqInputFactor=Math.pow(2,s),this.highestFreqValueFactor=1/(Math.pow(2,i)-1)}sample(t,e,s){let i=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o{var u;return(u=p.readObject(l))!==null&&u!==void 0?u:{}}))!==null&&i!==void 0?i:[];if(c.length===0)return new $t(0);for(const l of c){const u=(n=p.readNumber(l.location))!==null&&n!==void 0?n:0,d=a.fromJson(l.value,e),f=(r=p.readNumber(l.derivative))!==null&&r!==void 0?r:0;h.addPoint(u,d,f)}return h}})(ct||(ct={}));class $t{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class _{constructor(t,e=[],s=[],i=[]){this.coordinate=t,this.locations=e,this.values=s,this.derivatives=i}apply(t){const e=this.coordinate.apply(t),s=qe(0,this.locations.length,g=>e({location:t,value:this.values[e].toJson(),derivative:this.derivatives[e]}))}}}const ot=a=>[(a>>16&255)/256,(a>>8&255)/256,(255&a)/256],q=[124/256,189/256,107/256],ts=ot(6396257),es=ot(8431445),ht=ot(4764952),Gt=ot(4159204),fe=ot(8431445),ss=ot(2129968),ge=a=>[a/8,1-a/32,64*a],pe={large_fern:()=>q,tall_grass:()=>q,grass_block:()=>q,fern:()=>q,grass:()=>q,potted_fern:()=>q,spruce_leaves:()=>ts,birch_leaves:()=>es,oak_leaves:()=>ht,jungle_leaves:()=>ht,acacia_leaves:()=>ht,dark_oak_leaves:()=>ht,vine:()=>ht,water:()=>Gt,bubble_column:()=>Gt,cauldron:()=>Gt,redstone_wire:a=>{var t;return(e=>{const s=e/15;return[.6*s+(s>0?.4:.3),Z(s*s*.7-.5,0,1),Z(s*s*.6-.7,0,1)]})(parseInt((t=a.power)!==null&&t!==void 0?t:"0"))},sugar_cane:()=>q,attached_melon_stem:()=>fe,attached_pumpkin_stem:()=>fe,melon_stem:a=>{var t;return ge(parseInt((t=a.age)!==null&&t!==void 0?t:"0"))},pumpkin_stem:a=>{var t;return ge(parseInt((t=a.age)!==null&&t!==void 0?t:"0"))},lily_pad:()=>ss};var qt;function Et(...a){let t=0;for(const i of a)t+=i.length;const e=new Float32Array(t);let s=0;for(const i of a)e.set(i,s),s+=i.length;return e}function It(a,t){const e=He();for(let s=0;sthis.matchesVariant(i,t));if(e.length===0)return[];const s=this.variants[e[0]];return[Array.isArray(s)?s[0]:s]}return this.multipart?this.multipart.filter(e=>!e.when||this.matchesCase(e.when,t)).map(e=>Array.isArray(e.apply)?e.apply[0]:e.apply):[]}getBuffers(t,e,s,i,n,r){var o,h,c,l;const u=this.getModelVariants(e),d=[],f=[],g=[],m=[];for(const I of u){const N=qt.rotate(r,(o=I.x)!==null&&o!==void 0?o:0,(h=I.y)!==null&&h!==void 0?h:0),w=i.getBlockModel(I.model).getBuffers(t,e,s,n,N);if(I.x||I.y){const S=et();zt(S),nt(S,S,[8,8,8]),De(S,S,-jt((c=I.y)!==null&&c!==void 0?c:0)),Me(S,S,-jt((l=I.x)!==null&&l!==void 0?l:0)),nt(S,S,[-8,-8,-8]),It(w.position,S)}d.push(w.position),f.push(...w.texCoord),g.push(...w.tintColor),m.push(...w.index),n+=w.texCoord.length/2}const b=et();zt(b),Ee(b,b,[.0625,.0625,.0625]);const E=Et(...d);return It(E,b),{position:E,texCoord:f,tintColor:g,index:m}}matchesVariant(t,e){return t.split(",").every(s=>{const[i,n]=s.split("=");return e[i]===n})}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some(i=>this.matchesCase(i,e));const s=t;return Object.keys(s).every(i=>s[i].split("|").includes(e[i]))}static fromJson(t,e){return new oe(t,e.variants,e.multipart)}}const is={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},ns={x:[1,0,0],y:[0,1,0],z:[0,0,1]},K=1.41421356237,rs={x:[1,K,K],y:[K,1,K],z:[K,K,1]};class Nt{constructor(t,e,s,i){this.id=t,this.parent=e,this.textures=s,this.elements=i,this.flattened=!1}getBuffers(t,e,s,i,n){var r;const o=[],h=[],c=[],l=[];for(const u of(r=this.elements)!==null&&r!==void 0?r:[]){const d=this.getElementBuffers(t,e,u,i,s,n);o.push(d.position),h.push(...d.texCoord),c.push(...d.tintColor),l.push(...d.index),i+=d.texCoord.length/2}return{position:Et(...o),texCoord:h,tintColor:c,index:l}}getElementBuffers(t,e,s,i,n,r){var o,h,c,l,u,d,f,g,m,b,E,I;const N=s.from[0],w=s.from[1],S=s.from[2],A=s.to[0],y=s.to[1],T=s.to[2],Q=[],V=[],Y=[],z=[],G=(U,D,Ce)=>{var At,yt,Pt,Ft,Rt,Bt,xt,Tt,Ct,_t,kt,Dt;const[at,lt,_e,ke]=n.getTextureUV(this.getTexture(U.texture)),Mt=(_e-at)/16,Ot=(ke-lt)/16,ae=Mt/16,le=Ot/16;D[0]=((yt=(At=U.uv)===null||At===void 0?void 0:At[0])!==null&&yt!==void 0?yt:D[0])*Mt+ae,D[1]=((Ft=(Pt=U.uv)===null||Pt===void 0?void 0:Pt[1])!==null&&Ft!==void 0?Ft:D[1])*Ot+le,D[2]=((Bt=(Rt=U.uv)===null||Rt===void 0?void 0:Rt[2])!==null&&Bt!==void 0?Bt:D[2])*Mt-ae,D[3]=((Tt=(xt=U.uv)===null||xt===void 0?void 0:xt[3])!==null&&Tt!==void 0?Tt:D[3])*Ot-le;const X=is[(Ct=U.rotation)!==null&&Ct!==void 0?Ct:0];V.push(at+D[X[0]],lt+D[X[1]],at+D[X[2]],lt+D[X[3]],at+D[X[4]],lt+D[X[5]],at+D[X[6]],lt+D[X[7]]);const mt=((_t=U.tintindex)!==null&&_t!==void 0?_t:-1)>=0&&(Dt=(kt=pe[t.slice(10)])===null||kt===void 0?void 0:kt.call(pe,e))!==null&&Dt!==void 0?Dt:[1,1,1];Y.push(...mt,...mt,...mt,...mt),Q.push(...Ce),z.push(i,i+1,i+2,i,i+2,i+3),i+=4};!(!((h=(o=s.faces)===null||o===void 0?void 0:o.up)===null||h===void 0)&&h.texture)||s.faces.up.cullface&&r[s.faces.up.cullface]||G(s.faces.up,[N,16-T,A,16-S],[N,y,T,A,y,T,A,y,S,N,y,S]),!(!((l=(c=s.faces)===null||c===void 0?void 0:c.down)===null||l===void 0)&&l.texture)||s.faces.down.cullface&&r[s.faces.down.cullface]||G(s.faces.down,[16-T,16-A,16-S,16-N],[N,w,S,A,w,S,A,w,T,N,w,T]),!(!((d=(u=s.faces)===null||u===void 0?void 0:u.south)===null||d===void 0)&&d.texture)||s.faces.south.cullface&&r[s.faces.south.cullface]||G(s.faces.south,[N,16-y,A,16-w],[N,w,T,A,w,T,A,y,T,N,y,T]),!(!((g=(f=s.faces)===null||f===void 0?void 0:f.north)===null||g===void 0)&&g.texture)||s.faces.north.cullface&&r[s.faces.north.cullface]||G(s.faces.north,[16-A,16-y,16-N,16-w],[A,w,S,N,w,S,N,y,S,A,y,S]),!(!((b=(m=s.faces)===null||m===void 0?void 0:m.east)===null||b===void 0)&&b.texture)||s.faces.east.cullface&&r[s.faces.east.cullface]||G(s.faces.east,[16-T,16-y,16-S,16-w],[A,w,T,A,w,S,A,y,S,A,y,T]),!(!((I=(E=s.faces)===null||E===void 0?void 0:E.west)===null||I===void 0)&&I.texture)||s.faces.west.cullface&&r[s.faces.west.cullface]||G(s.faces.west,[S,16-y,T,16-w],[N,w,S,N,w,T,N,y,T,N,y,S]);const O=et();if(zt(O),s.rotation){const U=bt(...s.rotation.origin);nt(O,O,U),Oe(O,O,jt(s.rotation.angle),ns[s.rotation.axis]),s.rotation.rescale&&Ee(O,O,rs[s.rotation.axis]),Le(U,U),nt(O,O,U)}const pt=new Float32Array(Q);return It(pt,O),{position:pt,texCoord:V,tintColor:Y,index:z}}getTexture(t){for(var e,s;t.startsWith("#");)t=(s=(e=this.textures)===null||e===void 0?void 0:e[t.slice(1)])!==null&&s!==void 0?s:"";return t.startsWith("minecraft:")||(t="minecraft:"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const s=t.getBlockModel(this.parent);if(!s)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);s.flatten(t),this.elements||(this.elements=s.elements),this.textures||(this.textures={}),Object.keys((e=s.textures)!==null&&e!==void 0?e:{}).forEach(i=>{this.textures[i]||(this.textures[i]=s.textures[i])}),this.flattened=!0}}static fromJson(t,e){let s=e.parent;return s&&!s.startsWith("minecraft:")&&(s="minecraft:"+s),new Nt(t,s,e.textures,e.elements)}}class Yt{constructor(t,e,s){this.gl=t,this.program=this.initShaderProgram(e,s)}getProgram(){return this.program}initShaderProgram(t,e){const s=this.loadShader(this.gl.VERTEX_SHADER,t),i=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,s),this.gl.attachShader(n,i),this.gl.linkProgram(n),!this.gl.getProgramParameter(n,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(n)}`);return n}loadShader(t,e){const s=this.gl.createShader(t);if(this.gl.shaderSource(s,e),this.gl.compileShader(s),!this.gl.getShaderParameter(s,this.gl.COMPILE_STATUS)){const i=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?"vertex":"fragment"} shader: ${this.gl.getShaderInfoLog(s)}`);throw this.gl.deleteShader(s),i}return s}}function Re(a,t,e,s,i){const n=new oe("",{"":{model:""}},void 0),r={getBlockModel:()=>i};return i.flatten(r),n.getBuffers(a,{},t,r,e,s)}function me(a,t,e,s,i,n){const r=i.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][e];return Re(`minecraft:${a}`,s,t,i,new Nt("","",{still:`minecraft:block/${a}_still`,flow:`minecraft:block/${a}_flow`},[{from:[0,0,0],to:[16,r,16],faces:{up:{texture:"#still",tintindex:n,cullface:F.UP},down:{texture:"#still",tintindex:n,cullface:F.DOWN},north:{texture:"#flow",tintindex:n,cullface:F.NORTH},east:{texture:"#flow",tintindex:n,cullface:F.EAST},south:{texture:"#flow",tintindex:n,cullface:F.SOUTH},west:{texture:"#flow",tintindex:n,cullface:F.WEST}}}]))}const Be={"minecraft:water":(a,t,e,s)=>me("water",a,parseInt(t.level),e,s,0),"minecraft:lava":(a,t,e,s)=>me("lava",a,parseInt(t.level),e,s),"minecraft:chest":(a,t,e)=>function(s,i,n,r){return Re("minecraft:chest",r,s,{},new Nt("","",{0:"minecraft:block/chest"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:"#0"},down:{texture:"#0"},north:{texture:"#0"},east:{texture:"#0"},south:{texture:"#0"},west:{texture:"#0"}}}]))}(a,t.facing,t.type,e)},os=new Set(Object.keys(Be));class Is{constructor(t,e,s,i){var n,r;this.gl=t,this.structure=e,this.resources=s,this.chunks=[],i!=null&&i.facesPerBuffer&&console.warn("webgl render warning: facesPerBuffer option has been removed in favor of chunkSize"),this.chunkSize=(n=i==null?void 0:i.chunkSize)!==null&&n!==void 0?n:16,this.useInvisibleBlockBuffer=(r=i==null?void 0:i.useInvisibleBlockBuffer)===null||r===void 0||r,this.shaderProgram=new Yt(t,` +import{p as Se,c as et,i as zt,t as nt,r as De,a as Me,s as Ee,f as bt,b as Oe,d as jt,n as Le,e as Ue,g as Ge,h as Ye,j as He,k as Ve,l as he,m as ze,o as je}from"./vec3.7a0b0b73.js";import{e as Ie}from"./index.ece3de28.js";var F;(function(a){a.UP="up",a.DOWN="down",a.NORTH="north",a.EAST="east",a.SOUTH="south",a.WEST="west"})(F||(F={}));const Je={[F.UP]:[0,1,0],[F.DOWN]:[0,-1,0],[F.NORTH]:[0,0,-1],[F.EAST]:[1,0,0],[F.SOUTH]:[0,0,1],[F.WEST]:[-1,0,0]};var rt;(function(a){a.ALL=[a.UP,a.DOWN,a.NORTH,a.EAST,a.SOUTH,a.WEST],a.normal=function(t){return Je[t]}})(F||(F={})),function(a){a.create=function(t,e,s){return[t,e,s]},a.offset=function(t,e,s,i){return[t[0]+e,t[1]+s,t[2]+i]},a.towards=function(t,e){return a.offset(t,...F.normal(e))}}(rt||(rt={}));const ut={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},ue=["end","byte","short","int","long","float","double","byteArray","string","list","compound","intArray","longArray"];class Xe{constructor(t,e=!1){this.byte=this.readNum.bind(this,"getInt8",1),this.short=this.readNum.bind(this,"getInt16",2),this.int=this.readNum.bind(this,"getInt32",4),this.float=this.readNum.bind(this,"getFloat32",4),this.double=this.readNum.bind(this,"getFloat64",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const s=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,s}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let s=0;s=e)return;let s=this.buffer.byteLength;for(;sthis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=i,this.dataView=new DataView(i),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,s){this.accommodate(e),this.dataView[t](this.offset,s,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e>6),r.push(128|63&n)):n<65536?(r.push(224|n>>12),r.push(128|n>>6&63),r.push(128|63&n)):(r.push(240|n>>18&7),r.push(128|n>>12&63),r.push(128|n>>6&63),r.push(128|63&n));return r}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(ut[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),s.setInt16(r+1,65535&i),s.setInt8(r+3,o),s.setInt32(r+4096,n.timestamp);const h=4096*i;s.setInt32(h,n.data.length+1),s.setInt8(h+4,n.compression),e.set(n.data,h+5),i+=o}return e}function bs(a,t,e,s){const i=Ne(a,t,e);switch(i.compression){case 1:i.data=Jt(s);break;case 2:i.data=Jt(s,!1,!0);break;case 3:i.data=ne(s);break;default:throw new Error(`Invalid compression mode ${i.compression}`)}return i}function Ne(a,t,e){const s=a.find(i=>i.x===t&&i.z===e);if(s===void 0)throw new Error(`Cannot find chunk [${t}, ${e}]`);return s}function st(a,t,e){if(!a[t])throw new Error(`Missing ${t} tag`);if(a[t].type!==e)throw new Error(`Expected ${t} to be of type ${e}, but found ${a[t].type}`);return a[t].value}function vt(a,t,e,s){const i=st(a,t,"list");if(i.type!==e)throw new Error(`Expected ${t} to be a list of ${e}s, but found ${i.type}s`);if(s&&i.value.length!==s)throw new Error(`Expected ${t} to be a list of length ${s}, but found length ${i.value.length}`);return i.value}function Ae(a,t){try{return a()}catch{return t}}var p,H,Xt,it,ct;(function(a){function t(e){return typeof e=="object"&&e!==null?e:void 0}a.readNumber=function(e){return typeof e=="number"?e:void 0},a.readInt=function(e){return typeof e=="number"?Math.floor(e):void 0},a.readString=function(e){return typeof e=="string"?e:void 0},a.readBoolean=function(e){return typeof e=="boolean"?e:void 0},a.readObject=t,a.readArray=function(e,s){if(Array.isArray(e))return e.map(i=>s(i))},a.readMap=function(e,s){var i;const n=(i=t(e))!==null&&i!==void 0?i:{};return Object.fromEntries(Object.entries(n).map(([r,o])=>[r,s(o)]))},a.compose=function(e,s,i){const n=s(e);return n?i(n):void 0}})(p||(p={}));class M{constructor(t,e={}){this.name=t,this.properties=e}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return this.name==="minecraft:water"||this.name==="minecraft:lava"}equals(t){return this.name===t.name&&Object.keys(this.properties).every(e=>t.properties[e]===this.properties[e])}toString(){return Object.keys(this.properties).length===0?this.name:`${this.name}[${Object.entries(this.properties).map(([t,e])=>t+"="+e).join(",")}]`}static fromNbt(t){const e=st(t.value,"Name","string"),s=Ae(()=>st(t.value,"Properties","compound"),{}),i=Object.keys(s).reduce((n,r)=>Object.assign(Object.assign({},n),{[r]:st(s,r,"string")}),{});return new M(e,i)}static fromJson(t){var e,s;const i=(e=p.readObject(t))!==null&&e!==void 0?e:{},n=(s=p.readString(i.Name))!==null&&s!==void 0?s:"minecraft:stone",r=p.readMap(i.Properties,o=>{var h;return(h=p.readString(o))!==null&&h!==void 0?h:""});return new M(n,r)}}M.AIR=new M("minecraft:air");class ${constructor(t){this.minY=t,this.storage=Array($.SIZE),this.palette=[M.AIR]}get minBlockY(){return this.minY<<4}index(t,e,s){return(t<<8)+(e<<4)+s}getBlockState(t,e,s){var i;const n=this.storage[this.index(t,e,s)];return(i=this.palette[n])!==null&&i!==void 0?i:M.AIR}setBlockState(t,e,s,i){let n=this.palette.findIndex(r=>r.equals(i));n===-1&&(n=this.palette.length,this.palette.push(i)),this.storage[this.index(t,e,s)]=n}}$.WIDTH=16,$.SIZE=$.WIDTH*$.WIDTH*$.WIDTH;class Ss{constructor(t,e,s){this.minY=t,this.height=e,this.pos=s,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[s,i,n]=t,r=this.sections[this.getSectionIndex(i)];return(e=r==null?void 0:r.getBlockState(15&s,15&i,15&n))!==null&&e!==void 0?e:M.AIR}setBlockState(t,e){const[s,i,n]=t,r=this.getSectionIndex(i);let o=this.sections[r];if(o===null){if(e.equals(M.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&s,15&i,15&n,e)}getOrCreateSection(t){return this.sections[t]==null&&(this.sections[t]=new $(this.minSection+t)),this.sections[t]}}(function(a){function t(e,s){return BigInt(4294967295&e)|BigInt(4294967295&s)<>4,e[2]>>4]},a.fromLong=function(e){return[4294967295&Number(e),Number(e>>BigInt(32))]},a.toLong=function(e){return t(e[0],e[1])},a.asLong=t,a.minBlockX=function(e){return e[0]<<4},a.minBlockZ=function(e){return e[1]<<4},a.maxBlockX=function(e){return 15+(e[0]<<4)},a.maxBlockZ=function(e){return 15+(e[1]<<4)}})(H||(H={}));class ye{constructor(t,e=[],s=[]){this.size=t,this.palette=e,this.blocks=s,this.blocksMap=[],s.forEach(i=>{if(!this.isInside(i.pos))throw new Error(`Found block at ${i.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[i.pos[0]*t[1]*t[2]+i.pos[1]*t[2]+i.pos[2]]=i})}getSize(){return this.size}addBlock(t,e,s,i){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new M(e,s);let r=this.palette.findIndex(o=>o.equals(n));return r===-1&&(r=this.palette.length,this.palette.push(n)),this.blocks.push({pos:t,state:r,nbt:i}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:i},this}getBlocks(){return this.blocks.map(t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt}))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];return e?{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}:null}isInside(t){return t[0]>=0&&t[0]=0&&t[1]=0&&t[2]M.fromNbt({name:"",value:n})),i=vt(t.value,"blocks","compound").map(n=>({pos:vt(n,"pos","int",3),state:st(n,"state","int"),nbt:Ae(()=>st(n,"nbt","compound"),void 0)}));return new ye(e,s,i)}}function Lt(a){let t=null;return()=>(t==null&&(t=a()),t)}function re(a,t,e){const s=a.get(t);if(s)return s;const i=e(t);return a.set(t,i),i}function j(a){return a*a}function Z(a,t,e){return Math.max(t,Math.min(e,a))}function k(a,t,e){return t+a*(e-t)}function Zt(a,t,e,s,i,n){return k(t,k(a,e,s),k(a,i,n))}function We(a,t,e,s,i,n,r,o,h,c,l){return k(e,Zt(a,t,s,i,n,r),Zt(a,t,o,h,c,l))}function ft(a,t,e){return e<0?a:e>1?t:k(e,a,t)}function Pe(a,t,e){return(a-t)/(e-t)}function Ut(a){return a*a*a*(a*(6*a-15)+10)}function W(a,t,e,s,i){return k(Pe(a,t,e),s,i)}function $e(a,t,e,s,i){return ft(s,i,Pe(a,t,e))}function qe(a,t,e){let s=t-a;for(;s>0;){const i=Math.floor(s/2),n=a+i;e(n)?s=i:(a=n+1,s-=i+1)}return a}function Fe(a,t,e){let s=BigInt(3129871*a)^BigInt(e)*BigInt(116129781)^BigInt(t);return s=s*s*BigInt(42317861)+s*BigInt(11),s>>BigInt(16)}function Wt(a,t,e,s,i,n,r,o){return BigInt(a)<>BigInt(R.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(t===void 0)return this.next(32);if((t&t-1)==0)return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,s;for(;(e=this.next(31))-(s=e%t)+(t-1)<0;);return s}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt("-4658895280553007687")&BigInt("0xFFFFFFFFFFFFFFFF"))^t>>BigInt(27))*BigInt("-7723592293110705685")&BigInt("0xFFFFFFFFFFFFFFFF"))^t>>BigInt(31))&BigInt("0xFFFFFFFFFFFFFFFF")}static upgradeSeedTo128bit(t){t<0&&(t+=BigInt("0x10000000000000000"));const e=t^P.SILVER_RATIO_64,s=e+P.GOLDEN_RATIO_64&BigInt("0xFFFFFFFFFFFFFFFF");return[P.mixStafford13(e),P.mixStafford13(s)]}static rotateLeft(t,e){return t<>BigInt(64)-e}setSeed(t){this.seed=P.upgradeSeedTo128bit(t)}fork(){return new P([this.next(),this.next()])}forkPositional(){return new Ke(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const s=P.rotateLeft(t+e&BigInt("0xFFFFFFFFFFFFFFFF"),BigInt(17))+t&BigInt("0xFFFFFFFFFFFFFFFF");return e^=t,this.seed=[P.rotateLeft(t,BigInt(49))^e^e<BigInt("0x8000000000000000")&&(t-=BigInt("0x10000000000000000")),t}consume(t){let e=this.seed[0],s=this.seed[1];for(let i=0;i>BigInt(64-t)}nextInt(t){let e=this.next()&BigInt(4294967295);if(t){const s=BigInt(t);let i=e*s,n=i&BigInt(4294967295);if(n>BigInt(32);return Number(r)}{let s=Number(e);return s>=2147483648&&(s-=4294967296),s}}nextFloat(){return Number(this.nextBits(24))*P.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*P.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}}P.SILVER_RATIO_64=BigInt("7640891576956012809"),P.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),P.FLOAT_MULTIPLIER=1/Math.pow(2,24),P.DOUBLE_MULTIPLIER=11102230246251565e-32;class Ke{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,s){const i=Fe(t,e,s)^this.seedLo;return new P([i,this.seedHi])}fromHashOf(t){const e=Ie(t,{asBytes:!0}),s=Wt(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]),i=Wt(e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]);return new P([s^this.seedLo,i^this.seedHi])}}class x{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let e=0;e<256;e+=1)this.p[e]=e;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),i=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=i}}sample2D(t,e){let s,i,n;const r=(t+e)*x.F2,o=Math.floor(t+r),h=t-(o-(s=(o+(i=Math.floor(e+r)))*x.G2));let c,l;h>(n=e-(i-s))?(c=1,l=0):(c=0,l=1);const u=h-c+x.G2,d=n-l+x.G2,f=h-1+2*x.G2,g=n-1+2*x.G2,m=255&o,b=255&i,E=this.P(m+this.P(b))%12,I=this.P(m+c+this.P(b+l))%12,N=this.P(m+1+this.P(b+1))%12;return 70*(this.getCornerNoise3D(E,h,n,0,.5)+this.getCornerNoise3D(I,u,d,0,.5)+this.getCornerNoise3D(N,f,g,0,.5))}sample(t,e,s){const i=.3333333333333333*(t+e+s),n=Math.floor(t+i),r=Math.floor(e+i),o=Math.floor(s+i),h=.16666666666666666*(n+r+o),c=t-(n-h),l=e-(r-h),u=s-(o-h);let d,f,g,m,b,E;c>=l?l>=u?(d=1,f=0,g=0,m=1,b=1,E=0):c>=u?(d=1,f=0,g=0,m=1,b=0,E=1):(d=0,f=0,g=1,m=1,b=0,E=1):l127?e-256:e;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),i=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=i}}sample(t,e,s,i=0,n=0){const r=t+this.xo,o=e+this.yo,h=s+this.zo,c=Math.floor(r),l=Math.floor(o),u=Math.floor(h),d=r-c,f=o-l,g=h-u;let m=0;if(i!==0){const b=n>=0&&n=0;i-=1)i0&&(i=this.maxLimitNoise.getOctaveNoise(c))&&(h+=i.sample(d,f,g,u,e*u)/r),r/=2}return ft(o/512,h/512,n)/128}}(function(a){a.fromJson=function(t){var e,s,i,n,r;const o=(e=p.readObject(t))!==null&&e!==void 0?e:{};return{xzScale:(s=p.readNumber(o.xz_scale))!==null&&s!==void 0?s:1,yScale:(i=p.readNumber(o.y_scale))!==null&&i!==void 0?i:1,xzFactor:(n=p.readNumber(o.xz_factor))!==null&&n!==void 0?n:80,yFactor:(r=p.readNumber(o.y_factor))!==null&&r!==void 0?r:80}}})(Xt||(Xt={}));class J{constructor(t,{firstOctave:e,amplitudes:s}){this.first=new L(t,e,s),this.second=new L(t,e,s);let i=1/0,n=-1/0;for(let o=0;o{var o;return(o=p.readNumber(r))!==null&&o!==void 0?o:0}))!==null&&i!==void 0?i:[]}}}(it||(it={}));class Es{constructor(t,e){const s=e[e.length-1],i=-e[0]+s+1,n=new Set(e),r=new x(t);this.noiseLevels=Array(i),s>=0&&s=0&&n.has(s-o)?this.noiseLevels[o]=new x(t):t.consume(262);if(s>0)throw new Error("Positive octaves are not allowed");this.highestFreqInputFactor=Math.pow(2,s),this.highestFreqValueFactor=1/(Math.pow(2,i)-1)}sample(t,e,s){let i=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o{var u;return(u=p.readObject(l))!==null&&u!==void 0?u:{}}))!==null&&i!==void 0?i:[];if(c.length===0)return new $t(0);for(const l of c){const u=(n=p.readNumber(l.location))!==null&&n!==void 0?n:0,d=a.fromJson(l.value,e),f=(r=p.readNumber(l.derivative))!==null&&r!==void 0?r:0;h.addPoint(u,d,f)}return h}})(ct||(ct={}));class $t{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class _{constructor(t,e=[],s=[],i=[]){this.coordinate=t,this.locations=e,this.values=s,this.derivatives=i}apply(t){const e=this.coordinate.apply(t),s=qe(0,this.locations.length,g=>e({location:t,value:this.values[e].toJson(),derivative:this.derivatives[e]}))}}}const ot=a=>[(a>>16&255)/256,(a>>8&255)/256,(255&a)/256],q=[124/256,189/256,107/256],ts=ot(6396257),es=ot(8431445),ht=ot(4764952),Gt=ot(4159204),fe=ot(8431445),ss=ot(2129968),ge=a=>[a/8,1-a/32,64*a],pe={large_fern:()=>q,tall_grass:()=>q,grass_block:()=>q,fern:()=>q,grass:()=>q,potted_fern:()=>q,spruce_leaves:()=>ts,birch_leaves:()=>es,oak_leaves:()=>ht,jungle_leaves:()=>ht,acacia_leaves:()=>ht,dark_oak_leaves:()=>ht,vine:()=>ht,water:()=>Gt,bubble_column:()=>Gt,cauldron:()=>Gt,redstone_wire:a=>{var t;return(e=>{const s=e/15;return[.6*s+(s>0?.4:.3),Z(s*s*.7-.5,0,1),Z(s*s*.6-.7,0,1)]})(parseInt((t=a.power)!==null&&t!==void 0?t:"0"))},sugar_cane:()=>q,attached_melon_stem:()=>fe,attached_pumpkin_stem:()=>fe,melon_stem:a=>{var t;return ge(parseInt((t=a.age)!==null&&t!==void 0?t:"0"))},pumpkin_stem:a=>{var t;return ge(parseInt((t=a.age)!==null&&t!==void 0?t:"0"))},lily_pad:()=>ss};var qt;function Et(...a){let t=0;for(const i of a)t+=i.length;const e=new Float32Array(t);let s=0;for(const i of a)e.set(i,s),s+=i.length;return e}function It(a,t){const e=He();for(let s=0;sthis.matchesVariant(i,t));if(e.length===0)return[];const s=this.variants[e[0]];return[Array.isArray(s)?s[0]:s]}return this.multipart?this.multipart.filter(e=>!e.when||this.matchesCase(e.when,t)).map(e=>Array.isArray(e.apply)?e.apply[0]:e.apply):[]}getBuffers(t,e,s,i,n,r){var o,h,c,l;const u=this.getModelVariants(e),d=[],f=[],g=[],m=[];for(const I of u){const N=qt.rotate(r,(o=I.x)!==null&&o!==void 0?o:0,(h=I.y)!==null&&h!==void 0?h:0),w=i.getBlockModel(I.model).getBuffers(t,e,s,n,N);if(I.x||I.y){const S=et();zt(S),nt(S,S,[8,8,8]),De(S,S,-jt((c=I.y)!==null&&c!==void 0?c:0)),Me(S,S,-jt((l=I.x)!==null&&l!==void 0?l:0)),nt(S,S,[-8,-8,-8]),It(w.position,S)}d.push(w.position),f.push(...w.texCoord),g.push(...w.tintColor),m.push(...w.index),n+=w.texCoord.length/2}const b=et();zt(b),Ee(b,b,[.0625,.0625,.0625]);const E=Et(...d);return It(E,b),{position:E,texCoord:f,tintColor:g,index:m}}matchesVariant(t,e){return t.split(",").every(s=>{const[i,n]=s.split("=");return e[i]===n})}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some(i=>this.matchesCase(i,e));const s=t;return Object.keys(s).every(i=>s[i].split("|").includes(e[i]))}static fromJson(t,e){return new oe(t,e.variants,e.multipart)}}const is={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},ns={x:[1,0,0],y:[0,1,0],z:[0,0,1]},K=1.41421356237,rs={x:[1,K,K],y:[K,1,K],z:[K,K,1]};class Nt{constructor(t,e,s,i){this.id=t,this.parent=e,this.textures=s,this.elements=i,this.flattened=!1}getBuffers(t,e,s,i,n){var r;const o=[],h=[],c=[],l=[];for(const u of(r=this.elements)!==null&&r!==void 0?r:[]){const d=this.getElementBuffers(t,e,u,i,s,n);o.push(d.position),h.push(...d.texCoord),c.push(...d.tintColor),l.push(...d.index),i+=d.texCoord.length/2}return{position:Et(...o),texCoord:h,tintColor:c,index:l}}getElementBuffers(t,e,s,i,n,r){var o,h,c,l,u,d,f,g,m,b,E,I;const N=s.from[0],w=s.from[1],S=s.from[2],A=s.to[0],y=s.to[1],T=s.to[2],Q=[],V=[],Y=[],z=[],G=(U,D,Ce)=>{var At,yt,Pt,Ft,Rt,Bt,xt,Tt,Ct,_t,kt,Dt;const[at,lt,_e,ke]=n.getTextureUV(this.getTexture(U.texture)),Mt=(_e-at)/16,Ot=(ke-lt)/16,ae=Mt/16,le=Ot/16;D[0]=((yt=(At=U.uv)===null||At===void 0?void 0:At[0])!==null&&yt!==void 0?yt:D[0])*Mt+ae,D[1]=((Ft=(Pt=U.uv)===null||Pt===void 0?void 0:Pt[1])!==null&&Ft!==void 0?Ft:D[1])*Ot+le,D[2]=((Bt=(Rt=U.uv)===null||Rt===void 0?void 0:Rt[2])!==null&&Bt!==void 0?Bt:D[2])*Mt-ae,D[3]=((Tt=(xt=U.uv)===null||xt===void 0?void 0:xt[3])!==null&&Tt!==void 0?Tt:D[3])*Ot-le;const X=is[(Ct=U.rotation)!==null&&Ct!==void 0?Ct:0];V.push(at+D[X[0]],lt+D[X[1]],at+D[X[2]],lt+D[X[3]],at+D[X[4]],lt+D[X[5]],at+D[X[6]],lt+D[X[7]]);const mt=((_t=U.tintindex)!==null&&_t!==void 0?_t:-1)>=0&&(Dt=(kt=pe[t.slice(10)])===null||kt===void 0?void 0:kt.call(pe,e))!==null&&Dt!==void 0?Dt:[1,1,1];Y.push(...mt,...mt,...mt,...mt),Q.push(...Ce),z.push(i,i+1,i+2,i,i+2,i+3),i+=4};!(!((h=(o=s.faces)===null||o===void 0?void 0:o.up)===null||h===void 0)&&h.texture)||s.faces.up.cullface&&r[s.faces.up.cullface]||G(s.faces.up,[N,16-T,A,16-S],[N,y,T,A,y,T,A,y,S,N,y,S]),!(!((l=(c=s.faces)===null||c===void 0?void 0:c.down)===null||l===void 0)&&l.texture)||s.faces.down.cullface&&r[s.faces.down.cullface]||G(s.faces.down,[16-T,16-A,16-S,16-N],[N,w,S,A,w,S,A,w,T,N,w,T]),!(!((d=(u=s.faces)===null||u===void 0?void 0:u.south)===null||d===void 0)&&d.texture)||s.faces.south.cullface&&r[s.faces.south.cullface]||G(s.faces.south,[N,16-y,A,16-w],[N,w,T,A,w,T,A,y,T,N,y,T]),!(!((g=(f=s.faces)===null||f===void 0?void 0:f.north)===null||g===void 0)&&g.texture)||s.faces.north.cullface&&r[s.faces.north.cullface]||G(s.faces.north,[16-A,16-y,16-N,16-w],[A,w,S,N,w,S,N,y,S,A,y,S]),!(!((b=(m=s.faces)===null||m===void 0?void 0:m.east)===null||b===void 0)&&b.texture)||s.faces.east.cullface&&r[s.faces.east.cullface]||G(s.faces.east,[16-T,16-y,16-S,16-w],[A,w,T,A,w,S,A,y,S,A,y,T]),!(!((I=(E=s.faces)===null||E===void 0?void 0:E.west)===null||I===void 0)&&I.texture)||s.faces.west.cullface&&r[s.faces.west.cullface]||G(s.faces.west,[S,16-y,T,16-w],[N,w,S,N,w,T,N,y,T,N,y,S]);const O=et();if(zt(O),s.rotation){const U=bt(...s.rotation.origin);nt(O,O,U),Oe(O,O,jt(s.rotation.angle),ns[s.rotation.axis]),s.rotation.rescale&&Ee(O,O,rs[s.rotation.axis]),Le(U,U),nt(O,O,U)}const pt=new Float32Array(Q);return It(pt,O),{position:pt,texCoord:V,tintColor:Y,index:z}}getTexture(t){for(var e,s;t.startsWith("#");)t=(s=(e=this.textures)===null||e===void 0?void 0:e[t.slice(1)])!==null&&s!==void 0?s:"";return t.startsWith("minecraft:")||(t="minecraft:"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const s=t.getBlockModel(this.parent);if(!s)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);s.flatten(t),this.elements||(this.elements=s.elements),this.textures||(this.textures={}),Object.keys((e=s.textures)!==null&&e!==void 0?e:{}).forEach(i=>{this.textures[i]||(this.textures[i]=s.textures[i])}),this.flattened=!0}}static fromJson(t,e){let s=e.parent;return s&&!s.startsWith("minecraft:")&&(s="minecraft:"+s),new Nt(t,s,e.textures,e.elements)}}class Yt{constructor(t,e,s){this.gl=t,this.program=this.initShaderProgram(e,s)}getProgram(){return this.program}initShaderProgram(t,e){const s=this.loadShader(this.gl.VERTEX_SHADER,t),i=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,s),this.gl.attachShader(n,i),this.gl.linkProgram(n),!this.gl.getProgramParameter(n,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(n)}`);return n}loadShader(t,e){const s=this.gl.createShader(t);if(this.gl.shaderSource(s,e),this.gl.compileShader(s),!this.gl.getShaderParameter(s,this.gl.COMPILE_STATUS)){const i=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?"vertex":"fragment"} shader: ${this.gl.getShaderInfoLog(s)}`);throw this.gl.deleteShader(s),i}return s}}function Re(a,t,e,s,i){const n=new oe("",{"":{model:""}},void 0),r={getBlockModel:()=>i};return i.flatten(r),n.getBuffers(a,{},t,r,e,s)}function me(a,t,e,s,i,n){const r=i.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][e];return Re(`minecraft:${a}`,s,t,i,new Nt("","",{still:`minecraft:block/${a}_still`,flow:`minecraft:block/${a}_flow`},[{from:[0,0,0],to:[16,r,16],faces:{up:{texture:"#still",tintindex:n,cullface:F.UP},down:{texture:"#still",tintindex:n,cullface:F.DOWN},north:{texture:"#flow",tintindex:n,cullface:F.NORTH},east:{texture:"#flow",tintindex:n,cullface:F.EAST},south:{texture:"#flow",tintindex:n,cullface:F.SOUTH},west:{texture:"#flow",tintindex:n,cullface:F.WEST}}}]))}const Be={"minecraft:water":(a,t,e,s)=>me("water",a,parseInt(t.level),e,s,0),"minecraft:lava":(a,t,e,s)=>me("lava",a,parseInt(t.level),e,s),"minecraft:chest":(a,t,e)=>function(s,i,n,r){return Re("minecraft:chest",r,s,{},new Nt("","",{0:"minecraft:block/chest"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:"#0"},down:{texture:"#0"},north:{texture:"#0"},east:{texture:"#0"},south:{texture:"#0"},west:{texture:"#0"}}}]))}(a,t.facing,t.type,e)},os=new Set(Object.keys(Be));class Is{constructor(t,e,s,i){var n,r;this.gl=t,this.structure=e,this.resources=s,this.chunks=[],i!=null&&i.facesPerBuffer&&console.warn("webgl render warning: facesPerBuffer option has been removed in favor of chunkSize"),this.chunkSize=(n=i==null?void 0:i.chunkSize)!==null&&n!==void 0?n:16,this.useInvisibleBlockBuffer=(r=i==null?void 0:i.useInvisibleBlockBuffer)===null||r===void 0||r,this.shaderProgram=new Yt(t,` attribute vec4 vertPos; attribute vec2 texCoord; attribute vec3 tintColor; @@ -84,4 +84,4 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */function ve(a,t,e,s){return new(e||(e=Promise))(function(i,n){function r(c){try{h(s.next(c))}catch(l){n(l)}}function o(c){try{h(s.throw(c))}catch(l){n(l)}}function h(c){var l;c.done?i(c.value):(l=c.value,l instanceof e?l:new e(function(u){u(l)})).then(r,o)}h((s=s.apply(a,t||[])).next())})}class St{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return(e=this.idMap[t])!==null&&e!==void 0?e:[0,0,this.part,this.part]}static fromBlobs(t){return ve(this,void 0,void 0,function*(){const e=Math.sqrt(Object.keys(t).length+1),s=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),i=16*s,n=1/s,r=document.createElement("canvas");r.width=i,r.height=i;const o=r.getContext("2d");this.drawInvalidTexture(o);const h={};let c=1;return yield Promise.all(Object.keys(t).map(l=>ve(this,void 0,void 0,function*(){const u=c%s,d=Math.floor(c/s);c+=1,h[l]=[n*u,n*d,n*u+n,n*d+n];const f=yield createImageBitmap(t[l]);o.drawImage(f,0,0,16,16,16*u,16*d,16,16)}))),new St(o.getImageData(0,0,i,i),h)})}static empty(){const t=document.createElement("canvas");t.width=16,t.height=16;const e=t.getContext("2d");return St.drawInvalidTexture(e),new St(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle="black",t.fillRect(0,0,16,16),t.fillStyle="magenta",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}var gt,Qt,B,tt,Kt,v,te,dt,ee,se,Ht,be,Vt;(function(a){function t(c,l){return typeof c=="number"?new e(c,l!=null?l:c):c}a.target=function(c,l,u,d,f,g){return new i(c,l,u,d,f,g)},a.parameters=function(c,l,u,d,f,g,m){return new s(t(c),t(l),t(u),t(d),t(f),t(g),m)},a.param=t;class e{constructor(l,u){this.min=l,this.max=u}distance(l){const u=(typeof l=="number"?l:l.min)-this.max,d=this.min-(typeof l=="number"?l:l.max);return u>0?u:Math.max(d,0)}union(l){return new e(Math.min(this.min,l.min),Math.max(this.max,l.max))}static fromJson(l){var u;if(typeof l=="number")return new e(l,l);const[d,f]=(u=p.readArray(l,g=>p.readNumber(g)))!==null&&u!==void 0?u:[];return new e(d!=null?d:0,f!=null?f:0)}}a.Param=e;class s{constructor(l,u,d,f,g,m,b){this.temperature=l,this.humidity=u,this.continentalness=d,this.erosion=f,this.depth=g,this.weirdness=m,this.offset=b}fittness(l){return j(this.temperature.distance(l.temperature))+j(this.humidity.distance(l.humidity))+j(this.continentalness.distance(l.continentalness))+j(this.erosion.distance(l.erosion))+j(this.depth.distance(l.depth))+j(this.weirdness.distance(l.weirdness))+j(this.offset-l.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new e(this.offset,this.offset)]}static fromJson(l){var u,d;const f=(u=p.readObject(l))!==null&&u!==void 0?u:{};return new s(e.fromJson(f.temperature),e.fromJson(f.humidity),e.fromJson(f.continentalness),e.fromJson(f.erosion),e.fromJson(f.depth),e.fromJson(f.weirdness),(d=p.readInt(f.offset))!==null&&d!==void 0?d:0)}}a.ParamPoint=s;class i{constructor(l,u,d,f,g,m){this.temperature=l,this.humidity=u,this.continentalness=d,this.erosion=f,this.depth=g,this.weirdness=m}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}a.TargetPoint=i,a.Parameters=class{constructor(c){this.things=c,this.index=new n(c)}find(c){return this.index.search(c,(l,u)=>l.distance(u))}};class n{constructor(l){this.root=n.build(l.map(([u,d])=>new h(u,d)))}static build(l){if(l.length===1)return l[0];if(l.length<=n.CHILDREN_PER_NODE){const g=l.map(m=>{let b=0;for(let E=0;E<7;E+=1){const I=m.space[E];b+=Math.abs((I.min+I.max)/2)}return{key:b,node:m}}).sort((m,b)=>m.key-b.key).map(({node:m})=>m);return new o(g)}let u=1/0,d=-1,f=[];for(let g=0;g<7;++g){l=n.sort(l,g,!1),f=n.bucketize(l);let m=0;for(const b of f)m+=n.area(b.space);u>m&&(u=m,d=g)}return l=n.sort(l,d,!1),f=n.bucketize(l),f=n.sort(f,d,!0),new o(f.map(g=>n.build(g.children)))}static sort(l,u,d){return l.map(f=>{const g=f.space[u],m=(g.min+g.max)/2;return{key:d?Math.abs(m):m,node:f}}).sort((f,g)=>f.key-g.key).map(({node:f})=>f)}static bucketize(l){const u=[];let d=[];const f=Math.pow(10,Math.floor(Math.log(l.length-.01)/Math.log(10)));for(const g of l)d.push(g),d.lengthnew e(1/0,-1/0));for(const d of l)u=[...Array(7)].map((f,g)=>u[g].union(d.space[g]));return u}search(l,u){let d=1/0,f=null;for(const g of this.children){const m=u(g,l);if(d<=m)continue;const b=g.search(l,u),E=g==b?m:u(b,l);d<=E||(d=E,f=b)}return f}}a.RSubTree=o;class h extends r{constructor(l,u){super(l.space()),this.thing=u}search(){return this}}a.RLeaf=h})(gt||(gt={}));class xe{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,s;const i=(e=p.readObject(t))!==null&&e!==void 0?e:{},n=(s=p.readString(i.biome))!==null&&s!==void 0?s:"minecraft:the_void";return new xe(n)}}class Te{constructor(t){this.parameters=t}getBiome(t,e,s,i){const n=i(t,e,s);return this.parameters.find(n)}static fromJson(t){var e,s;const i=(e=p.readObject(t))!==null&&e!==void 0?e:{},n=((s=p.readArray(i.biomes,r=>{var o;return(h=>{var c;return{biome:(c=p.readString(h.biome))!==null&&c!==void 0?c:"minecraft:the_void",parameters:gt.ParamPoint.fromJson(h.parameters)}})((o=p.readObject(r))!==null&&o!==void 0?o:{})}))!==null&&s!==void 0?s:[]).map(r=>[r.parameters,()=>r.biome]);return new Te(new gt.Parameters(n))}}class C{constructor(t,e,s){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=s}static extractor(t){return{apply:e=>e[t],toJson:()=>t}}static fromJson(t){var e;const s=(e=p.readObject(t))!==null&&e!==void 0?e:{};return new C(ct.fromJson(s.offset,this.EXTRACTOR),ct.fromJson(s.factor,this.EXTRACTOR),ct.fromJson(s.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(t){return this.offsetSampler.apply(t)+C.GLOBAL_OFFSET}factor(t){return this.factorSampler.apply(t)}jaggedness(t){return this.jaggednessSampler.apply(t)}static point(t,e,s){return{continents:t,erosion:e,weirdness:s,ridges:this.peaksAndValleys(s)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}static overworld(){const t=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),e=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),s=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),i=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),n=new _(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,t).addPoint(-.15,t).addPoint(-.1,e).addPoint(.25,s).addPoint(1,i),r=new _(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),o=new _(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new C(n,r,o)}static getErosionFactor(t,e){const s=new _(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,t),i=new _(this.EROSION).addPoint(-.6,s).addPoint(-.5,new _(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,s).addPoint(-.25,s).addPoint(-.1,new _(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,s);if(e){const n=new _(this.WEIRDNESS).addPoint(0,t).addPoint(.1,.625),r=new _(this.RIDGES).addPoint(-.9,t).addPoint(-.69,n);i.addPoint(.35,t).addPoint(.45,r).addPoint(.55,r).addPoint(.62,t)}else{const n=new _(this.RIDGES).addPoint(-.7,s).addPoint(-.15,1.37),r=new _(this.RIDGES).addPoint(.45,s).addPoint(.7,1.56);i.addPoint(.05,r).addPoint(.4,r).addPoint(.45,n).addPoint(.55,n).addPoint(.58,t)}return i}static buildErosionOffsetSpline(t,e,s,i,n,r,o,h){const c=this.buildMountainRidgeSplineWithPoints(k(i,.6,1.5),h),l=this.buildMountainRidgeSplineWithPoints(k(i,.6,1),h),u=this.buildMountainRidgeSplineWithPoints(i,h),d=this.ridgeSpline(t-.15,.5*i,k(.5,.5,.5)*i,.5*i,.6*i,.5),f=this.ridgeSpline(t,n*i,e*i,.5*i,.6*i,.5),g=this.ridgeSpline(t,n,n,e,s,.5),m=this.ridgeSpline(t,n,n,e,s,.5),b=new _(this.RIDGES).addPoint(-1,t).addPoint(-.4,g).addPoint(0,s+.07),E=this.ridgeSpline(-.02,r,r,e,s,0),I=new _(this.EROSION).addPoint(-.85,c).addPoint(-.7,l).addPoint(-.4,u).addPoint(-.35,d).addPoint(-.1,f).addPoint(.2,g);return o&&I.addPoint(.4,m).addPoint(.45,b).addPoint(.55,b).addPoint(.58,m),I.addPoint(.7,E),I}static buildMountainRidgeSplineWithPoints(t,e){const s=new _(this.RIDGES),i=this.mountainContinentalness(-1,t,-.7),n=this.mountainContinentalness(1,t,-.7),r=this.calculateMountainRidgeZeroContinentalnessPoint(t);if(-.650?this.buildWeirdnessJaggednessSpline(e):0).addPoint(1,t>0?this.buildWeirdnessJaggednessSpline(t):0)}static buildWeirdnessJaggednessSpline(t){return new _(C.WEIRDNESS).addPoint(-.01,.63*t).addPoint(.01,.3*t)}}C.GLOBAL_OFFSET=-.50375,C.EXTRACTOR=a=>{var t;const e=(t=p.readString(a))!==null&&t!==void 0?t:"continents";return C.extractor(e)},C.CONTINENTS=C.extractor("continents"),C.EROSION=C.extractor("erosion"),C.WEIRDNESS=C.extractor("weirdness"),C.RIDGES=C.extractor("ridges"),function(a){a.fromList=function(t){return(e,s,i,n)=>{for(const r of t){const o=r(e,s,i,n);if(o)return o}return null}}}(Qt||(Qt={})),function(a){function t(e){return e.ySize<<2}a.fromJson=function(e){var s,i,n,r,o,h,c,l;const u=(s=p.readObject(e))!==null&&s!==void 0?s:{};return{minY:(i=p.readInt(u.min_y))!==null&&i!==void 0?i:0,height:(n=p.readInt(u.height))!==null&&n!==void 0?n:256,xzSize:(r=p.readInt(u.size_horizontal))!==null&&r!==void 0?r:1,ySize:(o=p.readInt(u.size_vertical))!==null&&o!==void 0?o:1,sampling:Xt.fromJson(u.sampling),topSlide:tt.fromJson(u.top_slide),bottomSlide:tt.fromJson(u.bottom_slide),terrainShaper:C.fromJson(u.terrain_shaper),islandNoiseOverride:(h=p.readBoolean(u.island_noise_override))!==null&&h!==void 0&&h,isAmplified:(c=p.readBoolean(u.amplified))!==null&&c!==void 0&&c,hasLargeBiomes:(l=p.readBoolean(u.large_biomes))!==null&&l!==void 0&&l}},a.cellHeight=t,a.cellWidth=function(e){return e.xzSize<<2},a.cellCountY=function(e){return e.height/t(e)},a.minCellY=function(e){return Math.floor(e.minY/t(e))}}(B||(B={})),function(a){a.fromJson=function(t){var e,s,i,n;const r=(e=p.readObject(t))!==null&&e!==void 0?e:{};return{target:(s=p.readNumber(r.target))!==null&&s!==void 0?s:0,size:(i=p.readInt(r.size))!==null&&i!==void 0?i:0,offset:(n=p.readInt(r.offset))!==null&&n!==void 0?n:0}},a.apply=function(t,e,s){if(t.size<=0)return e;const i=(s-t.offset)/t.size;return ft(t.target,e,i)}}(tt||(tt={}));class wt{constructor(t,e){this.chunk=t,this.filler=e,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=wt.allocateSlice(t.cellCountY,t.cellCountXZ),this.slice1=wt.allocateSlice(t.cellCountY,t.cellCountXZ)}static allocateSlice(t,e){const s=Array(e+1);for(let i=0;i>2,this.firstNoiseZ=r>>2,this.interpolators=[];const l=t*c>>2;this.noiseData=Array(l+1);for(let u=0;u<=l;u+=1){const d=this.firstNoiseX+u;this.noiseData[u]=Array(l+1);for(let f=0;f<=l;f+=1){const g=this.firstNoiseZ+f;this.noiseData[u][f]=i.noiseData(d,g)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=i.makeBaseNoiseFiller(this,o,h.noodleCavesEnabled)}getNoiseData(t,e){return this.noiseData[t-this.firstNoiseX][e-this.firstNoiseZ]}getPreliminarySurfaceLevel(t,e){return re(this.preliminarySurfaceLevel,H.asLong(t,e),()=>{const s=t-this.firstNoiseX,i=e-this.firstNoiseZ,n=this.noiseData.length,r=s>=0&&i>=0&&st.initializeForFirstCellX())}advanceCellX(t){this.interpolators.forEach(e=>e.advanceCellX(t))}selectCellYZ(t,e){this.interpolators.forEach(s=>s.selectCellYZ(t,e))}updateForY(t){this.interpolators.forEach(e=>e.updateForY(t))}updateForX(t){this.interpolators.forEach(e=>e.updateForX(t))}updateForZ(t){this.interpolators.forEach(e=>e.updateForZ(t))}swapSlices(){this.interpolators.forEach(t=>t.swapSlices())}updateNoiseAndGenerateBaseState(t,e,s){return this.baseNoise(t,e,s)}}(function(a){a.create=function(t,e,s){return{offset:t,factor:e,jaggedness:s}}})(Kt||(Kt={})),function(a){const t=new Map;function e(s,i,n){const r=Object.assign({name:`minecraft:${s}`},it.create(i,n));return t.set(s,r),r}a.TEMPERATURE=e("temperature",-10,[1.5,0,1,0,0,0]),a.VEGETATION=e("vegetation",-8,[1,1,0,0,0,0]),a.CONTINENTALNESS=e("continentalness",-9,[1,1,2,2,2,1,1,1,1]),a.EROSION=e("erosion",-9,[1,1,0,1,1]),a.TEMPERATURE_LARGE=e("temperature_large",-12,[1.5,0,1,0,0,0]),a.VEGETATION_LARGE=e("vegetation_large",-10,[1,1,0,0,0,0]),a.CONTINENTALNESS_LARGE=e("continentalness_large",-11,[1,1,2,2,2,1,1,1,1]),a.EROSION_LARGE=e("erosion_large",-11,[1,1,0,1,1]),a.RIDGE=e("ridge",-7,[1,2,1,0,0,0]),a.SHIFT=e("offset",-3,[1,1,1,0]),a.PILLAR=e("pillar",-7,[1,1]),a.PILLAR_RARENESS=e("pillar_rareness",-8,[1]),a.PILLAR_THICKNESS=e("pillar_thickness",-8,[1]),a.SPAGHETTI_2D=e("spaghetti_2d",-8,[1]),a.SPAGHETTI_2D_ELEVATION=e("spaghetti_2d_elevation",-8,[1]),a.SPAGHETTI_2D_MODULATOR=e("spaghetti_2d_modulator",-8,[1]),a.SPAGHETTI_2D_THICKNESS=e("spaghetti_2d_thickness",-8,[1]),a.SPAGHETTI_3D_1=e("spaghetti_3d_1",-8,[1]),a.SPAGHETTI_3D_2=e("spaghetti_3d_2",-8,[1]),a.SPAGHETTI_3D_RARITY=e("spaghetti_3d_rarity",-8,[1]),a.SPAGHETTI_3D_THICKNESS=e("spaghetti_3d_thickness",-8,[1]),a.SPAGHETTI_ROUGHNESS=e("spaghetti_roughness",-8,[1]),a.SPAGHETTI_ROUGHNESS_MODULATOR=e("spaghetti_roughness_modulator",-8,[1]),a.CAVE_ENTRANCE=e("cave_entrance",-7,[.4,.5,1]),a.CAVE_LAYER=e("cave_layer",-8,[1]),a.CAVE_CHEESE=e("cave_cheese",-8,[.5,1,2,1,2,1,0,2,0]),a.NOODLE=e("noodle",-8,[1]),a.NOODLE_THICKNESS=e("noodle_thickness",-8,[1]),a.NOODLE_RIDGE_A=e("noodle_ridge_a",-7,[1]),a.NOODLE_RIDGE_B=e("noodle_ridge_b",-7,[1]),a.JAGGED=e("jagged",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),a.SURFACE=e("surface",-6,[1,1,1]),a.SURFACE_SECONDARY=e("surface_secondary",-6,[1,1,0,1]),a.instantiate=function(s,i){return new J(s.fromHashOf(i.name),i)}}(v||(v={}));class ls{constructor(t,e,s,i=!1){this.settings=t,this.isNoiseCavesEnabled=e;const n=t.hasLargeBiomes,r=(i?new R(s):P.create(s)).forkPositional();i?(this.blendedNoise=new de(new R(s),t.sampling,B.cellWidth(t),B.cellHeight(t)),this.temperatureNoise=new J(new R(s),it.create(-7,[1,1])),this.humidityNoise=new J(new R(s+BigInt(1)),it.create(-7,[1,1])),this.offsetNoise=new J(new R(s+BigInt(5)),it.create(0,[0]))):(this.blendedNoise=new de(r.fromHashOf("minecraft:terrain"),t.sampling,B.cellWidth(t),B.cellHeight(t)),this.temperatureNoise=v.instantiate(r,n?v.TEMPERATURE_LARGE:v.TEMPERATURE),this.humidityNoise=v.instantiate(r,n?v.VEGETATION_LARGE:v.VEGETATION),this.offsetNoise=v.instantiate(r,v.SHIFT)),this.continentalnessNoise=v.instantiate(r,n?v.CONTINENTALNESS_LARGE:v.CONTINENTALNESS),this.erosionNoise=v.instantiate(r,n?v.EROSION_LARGE:v.EROSION),this.weirdnessNoise=v.instantiate(r,v.RIDGE),this.pillarNoise=v.instantiate(r,v.PILLAR),this.pillarRarenessModulator=v.instantiate(r,v.PILLAR_RARENESS),this.pillarThicknessModulator=v.instantiate(r,v.PILLAR_THICKNESS),this.spaghetti2DNoise=v.instantiate(r,v.SPAGHETTI_2D),this.spaghetti2DElevationModulator=v.instantiate(r,v.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=v.instantiate(r,v.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=v.instantiate(r,v.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=v.instantiate(r,v.SPAGHETTI_3D_1),this.spaghetti3DNoise2=v.instantiate(r,v.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=v.instantiate(r,v.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=v.instantiate(r,v.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=v.instantiate(r,v.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=v.instantiate(r,v.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=v.instantiate(r,v.CAVE_ENTRANCE),this.layerNoise=v.instantiate(r,v.CAVE_LAYER),this.cheeseNoise=v.instantiate(r,v.CAVE_CHEESE);const o=t.minY+4,h=o+t.height;this.noodleToggleNoise=this.yLimitedInterpolatable(v.instantiate(r,v.NOODLE),o,h,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(v.instantiate(r,v.NOODLE_THICKNESS),o,h,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(v.instantiate(r,v.NOODLE_RIDGE_A),o,h,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(v.instantiate(r,v.NOODLE_RIDGE_B),o,h,0,8/3),this.jaggedNoise=v.instantiate(r,v.JAGGED),this.shaper=t.terrainShaper,this.baseNoise=c=>c.createNoiseInterpolator((l,u,d)=>this.calculateBlendedBaseNoise(l,u,d,c.getNoiseData(l>>2,d>>2).terrainInfo))}yLimitedInterpolatable(t,e,s,i,n){const r=(o,h,c)=>h>s||ho.createNoiseInterpolator(r)}noiseData(t,e){const s=t+this.getOffset(t,0,e),i=e+this.getOffset(e,t,0),n=this.getContinentalness(s,i),r=this.getErosion(s,i),o=this.getWeirdness(s,i),h=this.terrainInfo(n,r,o);return te.create(s,i,n,r,o,h)}sample(t,e,s){return this.target(t,e,s,this.noiseData(t,s))}target(t,e,s,i){const n=i.shiftedX,r=e+this.getOffset(e,s,t),o=i.shiftedZ,h=this.getTemperature(n,r,o),c=this.getHumidity(n,r,o),l=this.computeDimensionDensity(e<<2,i.terrainInfo);return gt.target(h,c,i.continentalness,i.erosion,l,i.weirdness)}terrainInfo(t,e,s){const i=C.point(t,e,s),n=this.shaper.offset(i),r=this.shaper.factor(i),o=this.shaper.jaggedness(i);return Kt.create(n,r,o)}getOffset(t,e,s){return 4*this.offsetNoise.sample(t,e,s)}getTemperature(t,e,s){return this.temperatureNoise.sample(t,e,s)}getHumidity(t,e,s){return this.humidityNoise.sample(t,e,s)}getContinentalness(t,e){return this.continentalnessNoise.sample(t,0,e)}getErosion(t,e){return this.erosionNoise.sample(t,0,e)}getWeirdness(t,e){return this.weirdnessNoise.sample(t,0,e)}makeBaseNoiseFiller(t,e,s){const i=this.baseNoise(t),n=s?this.noodleToggleNoise(t):()=>-1,r=s?this.noodleThicknessNoise(t):()=>0,o=s?this.noodleRidgeANoise(t):()=>0,h=s?this.noodleRidgeBNoise(t):()=>0;return(c,l,u)=>{let d=i();if(d=Z(.64*d,-1,1),d=d/2-d*d*d/24,n()>=0){const f=$e(r(),-1,1,.05,.1),g=Math.abs(1.5*o())-f,m=Math.abs(1.5*h())-f;d=Math.min(d,Math.max(g,m))}return d+=e(c,l,u),d>0?null:M.AIR}}calculateBlendedBaseNoise(t,e,s,i){const n=this.blendedNoise.sample(t,e,s);return this.calculateBaseNoise(t,e,s,i,n,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(t,e,s,i,n,r,o){if(!this.settings.islandNoiseOverride){const l=o?this.sampleJaggedNoise(i.jaggedness,t,s):0,u=this.computeDimensionDensity(e,i),d=i.factor*(l+u);n+=d>0?4*d:d}let h=-64,c=64;if(!r&&n>=-64){const l=n-1.5625,u=this.getBigEntrances(t,e,s),d=this.getSpaghettiRoughness(t,e,s),f=this.getSpaghetti3D(t,e,s),g=Math.min(u,f+d);if(l<0)c=g;else{const m=this.getLayerizedCaverns(t,e,s);m>64?n=64:n=this.getCheese(t,e,s)+m+ft(.5,0,1.28*l);const b=this.getSpaghetti2D(t,e,s);h=this.getPillars(t,e,s),c=Math.min(g,b+d)}}return n=Z(n,h,c),n=Z(n=this.applySlide(n,e/B.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(t,e,s){if(t===0)return 0;const i=this.jaggedNoise.sample(1500*e,0,1500*s);return i>0?t*i:t/2*i}computeDimensionDensity(t,e){return 1-t/128+e.offset}getBigEntrances(t,e,s){return this.bigEntranceNoise.sample(.75*t,.5*e,.75*s)+.37+ft(.3,0,(e+10)/40)}getSpaghettiRoughness(t,e,s){const i=this.spaghettiRoughnessNoise.sample(t,e,s),n=W(this.spaghettiRoughnessModulator.sample(t,e,s),-1,1,0,1);return(.4-Math.abs(i))*n}getSpaghetti2D(t,e,s){const i=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*t,e,2*s)),n=W(this.spaghetti2DThicknessModulator.sample(2*t,e,2*s),-1,1,.6,1.3),r=this.sampleWithRarity(this.spaghetti2DNoise,t,e,s,i),o=Math.abs(i*r)-.083*n,h=B.minCellY(this.settings),c=W(this.spaghetti2DElevationModulator.sample(t,0,s),-1,1,h,8),l=Math.abs(c-e/8)-1*n;return Z(Math.max(l,o),-1,1)}getSpaghetti3D(t,e,s){const i=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*t,e,2*s)),n=W(this.spaghetti3DThicknessModulator.sample(t,e,s),-1,1,.065,.088),r=this.sampleWithRarity(this.spaghetti3DNoise1,t,e,s,i),o=Math.abs(i*r)-n,h=this.sampleWithRarity(this.spaghetti3DNoise2,t,e,s,i),c=Math.abs(i*h)-n;return Z(Math.max(o,c),-1,1)}quantizeSpaghettiRarity2D(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}quantizeSpaghettiRarity3D(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}sampleWithRarity(t,e,s,i,n){return t.sample(e/n,s/n,i/n)}getLayerizedCaverns(t,e,s){return 4*j(this.layerNoise.sample(t,8*e,s))}getCheese(t,e,s){return Z(this.cheeseNoise.sample(t,e/1.5,s)+.27,-1,1)}getPillars(t,e,s){const i=W(this.pillarRarenessModulator.sample(t,e,s),-1,1,0,2),n=W(this.pillarThicknessModulator.sample(t,e,s),-1,1,0,1.1),r=this.pillarNoise.sample(25*t,.3*e,25*s),o=Math.pow(n,3)*(2*r-i);return o<=.03?Number.MIN_SAFE_INTEGER:o}applySlide(t,e){const s=e-B.minCellY(this.settings);return t=tt.apply(this.settings.topSlide,t,B.cellCountY(this.settings)-s),t=tt.apply(this.settings.bottomSlide,t,s)}getPreliminarySurfaceLevel(t,e,s){const i=B.minCellY(this.settings)+B.cellCountY(this.settings),n=B.minCellY(this.settings),r=B.cellHeight(this.settings);for(let o=i;o>=n;o-=1){const h=o*r;if(this.calculateBaseNoise(t,h,e,s,-.703125,!0,!1)>=.390625)return h}return Number.MAX_SAFE_INTEGER}}(function(a){a.create=function(t,e,s,i,n,r){return{shiftedX:t,shiftedZ:e,continentalness:s,weirdness:i,erosion:n,terrainInfo:r}}})(te||(te={})),function(a){a.fromJson=function(t){var e,s,i,n;const r=(e=p.readObject(t))!==null&&e!==void 0?e:{};return r.absolute!==void 0?(o=(s=p.readNumber(r.absolute))!==null&&s!==void 0?s:0,()=>o):r.above_bottom!==void 0?function(h){return c=>c.minY+h}((i=p.readNumber(r.above_bottom))!==null&&i!==void 0?i:0):r.below_top!==void 0?function(h){return c=>c.maxY-h}((n=p.readNumber(r.below_top))!==null&&n!==void 0?n:0):()=>0;var o}}(dt||(dt={})),function(a){a.create=function(t,e){return{minY:t,height:e,maxY:t+e-1}}}(ee||(ee={}));class hs{constructor(t,e,s){this.rule=t,this.defaultBlock=e,this.random=P.create(s).forkPositional(),this.surfaceNoise=v.instantiate(this.random,v.SURFACE),this.surfaceSecondaryNoise=v.instantiate(this.random,v.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,s,i){const n=H.minBlockX(t.pos),r=H.minBlockZ(t.pos),o=new us(this,t,e,s,i),h=this.rule(o);for(let c=0;c<16;c+=1){const l=n+c;for(let u=0;u<1;u+=1){const d=r+u;o.updateXZ(l,d);let f=0,g=Number.MIN_SAFE_INTEGER,m=Number.MAX_SAFE_INTEGER;for(let b=t.maxY;b>=t.minY;b-=1){const E=rt.create(l,b,d),I=t.getBlockState(E);if(I.equals(M.AIR)){f=0,g=Number.MIN_SAFE_INTEGER;continue}if(I.isFluid()){g===Number.MIN_SAFE_INTEGER&&(g=b+1);continue}if(m>=b){m=Number.MIN_SAFE_INTEGER;for(let S=b-1;S>=t.minY;S-=1){const A=t.getBlockState(rt.create(l,S,d));if(A.equals(M.AIR)||A.isFluid()){m=S+1;break}}}f+=1;const N=b-m+1;if(!I.equals(this.defaultBlock))continue;o.updateY(f,N,g,b);const w=h(l,b,d);w&&t.setBlockState(E,w)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return re(this.positionalRandoms,t,()=>this.random.fromHashOf(t))}}class us{constructor(t,e,s,i,n){this.system=t,this.chunk=e,this.noiseChunk=s,this.context=i,this.getBiome=n,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>"",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=Lt(()=>this.system.getSurfaceSecondary(t,e)),this.minSurfaceLevel=Lt(()=>this.calculateMinSurfaceLevel(t,e))}updateY(t,e,s,i){this.blockY=i,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=s,this.biome=Lt(()=>this.getBiome(rt.create(this.blockX,this.blockY,this.blockZ)))}calculateMinSurfaceLevel(t,e){const s=t>>4,i=e>>4,n=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,i<<4),r=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,i<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,i+1<<4),h=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,i+1<<4);return Math.floor(Zt((15&t)/16,(15&e)/16,n,r,o,h))+this.surfaceDepth-8}}(function(a){function t(i){return()=>()=>i}function e(i){return n=>{const r=i.map(o=>o(n));return(o,h,c)=>{for(const l of r){const u=l(o,h,c);if(u)return u}}}}function s(i,n){return r=>(o,h,c)=>{if(i(r))return n(r)(o,h,c)}}a.NOOP=()=>()=>{},a.fromJson=function(i){var n,r,o;const h=(n=p.readObject(i))!==null&&n!==void 0?n:{};switch((r=p.readString(h.type))===null||r===void 0?void 0:r.replace(/^minecraft:/,"")){case"block":return t(M.fromJson(h.result_state));case"sequence":return e((o=p.readArray(h.sequence,a.fromJson))!==null&&o!==void 0?o:[]);case"condition":return s(Ht.fromJson(h.if_true),a.fromJson(h.then_run))}return a.NOOP},a.block=t,a.sequence=e,a.condition=s})(se||(se={})),function(a){function t(){return h=>h.blockY>=h.minSurfaceLevel()}function e(h){const c=new Set(h);return l=>c.has(l.biome())}function s(h){return c=>!h(c)}function i(h,c,l,u){return d=>{const f=u?d.stoneDepthBelow:d.stoneDepthAbove,g=c?d.surfaceDepth:0,m=l===0?0:W(d.surfaceSecondary(),-1,1,0,l);return f<=1+h+g+m}}function n(h,c,l){return u=>{const d=c(u.context),f=l(u.context);if(u.blockY<=d)return!0;if(u.blockY>=f)return!1;const g=u.system.getRandom(h),m=W(u.blockY,d,f,1,0);return g.nextFloat(){if(u.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const d=l?u.stoneDepthAbove:0;return u.blockY+d>=u.waterHeight+h+u.surfaceDepth*c}}function o(h,c,l){return u=>{const d=l?u.stoneDepthAbove:0;return u.blockY+d>=h(u.context)+u.surfaceDepth*c}}a.FALSE=()=>!1,a.TRUE=()=>!0,a.fromJson=function(h){var c,l,u,d,f,g,m,b,E,I,N,w;const S=(c=p.readObject(h))!==null&&c!==void 0?c:{};switch((l=p.readString(S.type))===null||l===void 0?void 0:l.replace(/^minecraft:/,"")){case"above_preliminary_surface":return A=>A.blockY>=A.minSurfaceLevel();case"biome":return e((u=p.readArray(S.biome_is,A=>{var y;return(y=p.readString(A))!==null&&y!==void 0?y:""}))!==null&&u!==void 0?u:[]);case"not":return s(a.fromJson(S.invert));case"stone_depth":return i((d=p.readInt(S.offset))!==null&&d!==void 0?d:0,(f=p.readBoolean(S.add_surface_depth))!==null&&f!==void 0&&f,(g=p.readInt(S.secondary_depth_range))!==null&&g!==void 0?g:0,p.readString(S.surface_type)==="ceiling");case"vertical_gradient":return n((m=p.readString(S.random_name))!==null&&m!==void 0?m:"",dt.fromJson(S.true_at_and_below),dt.fromJson(S.false_at_and_above));case"water":return r((b=p.readInt(S.offset))!==null&&b!==void 0?b:0,(E=p.readInt(S.surface_depth_multiplier))!==null&&E!==void 0?E:0,(I=p.readBoolean(S.add_surface_depth))!==null&&I!==void 0&&I);case"y_above":return o(dt.fromJson(S.anchor),(N=p.readInt(S.surface_depth_multiplier))!==null&&N!==void 0?N:0,(w=p.readBoolean(S.add_surface_depth))!==null&&w!==void 0&&w)}return a.FALSE},a.abovePreliminarySurface=t,a.biome=e,a.not=s,a.stoneDepth=i,a.verticalGradient=n,a.water=r,a.yAbove=o}(Ht||(Ht={}));class ws{constructor(t,e,s){this.biomeSource=e,this.settings=s,this.sampler=new ls(s.noise,s.noiseCavesEnabled,t,s.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=Qt.fromList([(i,n,r,o)=>i.updateNoiseAndGenerateBaseState(n,r,o)]),this.surfaceSystem=new hs(s.surfaceRule,s.defaultBlock,t)}fill(t){var e;const s=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),n=B.cellWidth(this.settings.noise),r=B.cellHeight(this.settings.noise),o=Math.floor(16/n),h=Math.floor(s/r),c=Math.floor((i-s)/r),l=H.minBlockX(t.pos),u=H.minBlockZ(t.pos),d=this.getNoiseChunk(t);d.initializeForFirstCellX();for(let f=0;f=0;b-=1){d.selectCellYZ(b,g);for(let E=r-1;E>=0;E-=1){const I=(h+b)*r+E,N=15&I,w=t.getSectionIndex(I);t.getSectionIndex(m.minBlockY)!==w&&(m=t.getOrCreateSection(w));const S=E/r;d.updateForY(S);for(let A=0;Ae)}getNoiseChunk(t){return re(this.noiseChunkCache,H.toLong(t.pos),()=>{const e=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),i=B.cellWidth(this.settings.noise),n=B.cellHeight(this.settings.noise),r=Math.floor(16/i),o=Math.floor(e/n),h=Math.floor((s-e)/n),c=H.minBlockX(t.pos),l=H.minBlockZ(t.pos);return new as(r,h,o,this.sampler,c,l,()=>0,this.settings)})}}(function(a){a.fromJson=function(t){var e,s,i,n,r,o,h,c,l,u,d;const f=(e=p.readObject(t))!==null&&e!==void 0?e:{};return{structures:Vt.fromJson(f.structures),surfaceRule:se.fromJson(f.surface_rule),noise:B.fromJson(f.noise),defaultBlock:M.fromJson(f.default_block),defaultFluid:M.fromJson(f.default_fluid),bedrockRoofPosition:(s=p.readInt(f.bedrock_roof_position))!==null&&s!==void 0?s:0,bedrockFloorPosition:(i=p.readInt(f.bedrock_floor_position))!==null&&i!==void 0?i:0,seaLevel:(n=p.readInt(f.sea_level))!==null&&n!==void 0?n:0,disableMobGeneration:(r=p.readBoolean(f.disable_mob_generation))!==null&&r!==void 0&&r,aquifersEnabled:(o=p.readBoolean(f.aquifers_enabled))!==null&&o!==void 0&&o,noiseCavesEnabled:(h=p.readBoolean(f.noise_caves_enabled))!==null&&h!==void 0&&h,deepslateEnabled:(c=p.readBoolean(f.deepslate_enabled))!==null&&c!==void 0&&c,oreVeinsEnabled:(l=p.readBoolean(f.ore_veins_enabled))!==null&&l!==void 0&&l,noodleCavesEnabled:(u=p.readBoolean(f.noodle_caves_enabled))!==null&&u!==void 0&&u,legacyRandomSource:(d=p.readBoolean(f.legacy_random_source))!==null&&d!==void 0&&d}}})(be||(be={})),function(a){a.fromJson=function(t){var e;const s=(e=p.readObject(t))!==null&&e!==void 0?e:{};return{stronghold:p.compose(s.stronghold,p.readObject,i=>{var n,r,o;return{distance:(n=p.readInt(i.distance))!==null&&n!==void 0?n:0,spread:(r=p.readInt(i.spread))!==null&&r!==void 0?r:0,count:(o=p.readInt(i.count))!==null&&o!==void 0?o:0}}),structures:p.readMap(s.structures,i=>{var n;return(r=>{var o,h,c;return{spacing:(o=p.readInt(r.spacing))!==null&&o!==void 0?o:0,separation:(h=p.readInt(r.separation))!==null&&h!==void 0?h:0,salt:(c=p.readInt(r.salt))!==null&&c!==void 0?c:0}})((n=p.readObject(i))!==null&&n!==void 0?n:{})})}}}(Vt||(Vt={}));export{de as BlendedNoise,pe as BlockColors,oe as BlockDefinition,Nt as BlockModel,rt as BlockPos,M as BlockState,Ss as Chunk,H as ChunkPos,$ as ChunkSection,gt as Climate,$t as ConstantProvider,F as Direction,xe as FixedBiome,te as FlatNoiseData,ce as ImprovedNoise,p as Json,Qe as LegacyPositionalRandom,R as LegacyRandom,Qt as MaterialRule,Te as MultiNoise,Xe as NbtReader,Ze as NbtWriter,as as NoiseChunk,ws as NoiseChunkGenerator,be as NoiseGeneratorSettings,wt as NoiseInterpolator,it as NoiseParameters,ls as NoiseSampler,Xt as NoiseSamplingSettings,B as NoiseSettings,tt as NoiseSlideSettings,v as Noises,J as NormalNoise,ct as NumberProvider,L as PerlinNoise,Es as PerlinSimplexNoise,x as SimplexNoise,_ as Spline,ye as Structure,Is as StructureRenderer,Vt as StructureSettings,Ht as SurfaceCondition,us as SurfaceContext,se as SurfaceRule,hs as SurfaceSystem,Kt as TerrainInfo,C as TerrainShaper,St as TextureAtlas,dt as VerticalAnchor,ee as WorldgenContext,Ke as XoroshiroPositionalRandom,P as XoroshiroRandom,qe as binarySearch,Z as clamp,ft as clampedLerp,$e as clampedMap,re as computeIfAbsent,vt as getListTag,Ae as getOptional,Fe as getSeed,st as getTag,Pe as inverseLerp,Lt as lazy,k as lerp,Zt as lerp2,We as lerp3,Wt as longfromBytes,W as map,fs as read,ps as readChunk,we as readCompressed,gs as readRegion,ie as readUncompressed,Ut as smoothstep,j as square,ue as tagNames,ut as tagTypes,ms as write,bs as writeChunk,Jt as writeCompressed,vs as writeRegion,ne as writeUncompressed}; -//# sourceMappingURL=deepslate.esm.27c793ac.js.map +//# sourceMappingURL=deepslate.esm.662720d7.js.map diff --git a/assets/deepslate.esm.27c793ac.js.map b/assets/deepslate.esm.662720d7.js.map similarity index 99% rename from assets/deepslate.esm.27c793ac.js.map rename to assets/deepslate.esm.662720d7.js.map index a2fecfee..36513d8f 100644 --- a/assets/deepslate.esm.27c793ac.js.map +++ b/assets/deepslate.esm.662720d7.js.map @@ -1 +1 @@ -{"version":3,"file":"deepslate.esm.27c793ac.js","sources":["../../node_modules/deepslate-1.18/dist/deepslate.esm.js"],"sourcesContent":["import t from\"pako\";import e from\"md5\";import{vec3 as i,mat4 as s,glMatrix as n}from\"gl-matrix\";var r;!function(t){t.UP=\"up\",t.DOWN=\"down\",t.NORTH=\"north\",t.EAST=\"east\",t.SOUTH=\"south\",t.WEST=\"west\"}(r||(r={}));const o={[r.UP]:[0,1,0],[r.DOWN]:[0,-1,0],[r.NORTH]:[0,0,-1],[r.EAST]:[1,0,0],[r.SOUTH]:[0,0,1],[r.WEST]:[-1,0,0]};var a;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return o[t]}}(r||(r={})),function(t){t.create=function(t,e,i){return[t,e,i]},t.offset=function(t,e,i,s){return[t[0]+e,t[1]+i,t[2]+s]},t.towards=function(e,i){return t.offset(e,...r.normal(i))}}(a||(a={}));const l={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},h=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class u{constructor(t,e=!1){this.byte=this.readNum.bind(this,\"getInt8\",1),this.short=this.readNum.bind(this,\"getInt16\",2),this.int=this.readNum.bind(this,\"getInt32\",4),this.float=this.readNum.bind(this,\"getFloat32\",4),this.double=this.readNum.bind(this,\"getFloat64\",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const i=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,i}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let i=0;i=e)return;let i=this.buffer.byteLength;for(;ithis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=s,this.dataView=new DataView(s),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,i){this.accommodate(e),this.dataView[t](this.offset,i,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e>6),s.push(128|63&i)):i<65536?(s.push(224|i>>12),s.push(128|i>>6&63),s.push(128|63&i)):(s.push(240|i>>18&7),s.push(128|i>>12&63),s.push(128|i>>6&63),s.push(128|63&i));return s}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(l[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),s.setInt16(t+1,65535&n),s.setInt8(t+3,r),s.setInt32(t+4096,e.timestamp);const o=4096*n;s.setInt32(o,e.data.length+1),s.setInt8(o+4,e.compression),i.set(e.data,o+5),n+=r}return i}function I(t,e,i,s){const n=w(t,e,i);switch(n.compression){case 1:n.data=b(s);break;case 2:n.data=b(s,!1,!0);break;case 3:n.data=v(s);break;default:throw new Error(`Invalid compression mode ${n.compression}`)}return n}function w(t,e,i){const s=t.find((t=>t.x===e&&t.z===i));if(void 0===s)throw new Error(`Cannot find chunk [${e}, ${i}]`);return s}function A(t,e,i){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==i)throw new Error(`Expected ${e} to be of type ${i}, but found ${t[e].type}`);return t[e].value}function N(t,e,i,s){const n=A(t,e,\"list\");if(n.type!==i)throw new Error(`Expected ${e} to be a list of ${i}s, but found ${n.type}s`);if(s&&n.value.length!==s)throw new Error(`Expected ${e} to be a list of length ${s}, but found length ${n.value.length}`);return n.value}function F(t,e){try{return t()}catch(t){return e}}var _,y,P,R,B;!function(t){function e(t){return\"object\"==typeof t&&null!==t?t:void 0}t.readNumber=function(t){return\"number\"==typeof t?t:void 0},t.readInt=function(t){return\"number\"==typeof t?Math.floor(t):void 0},t.readString=function(t){return\"string\"==typeof t?t:void 0},t.readBoolean=function(t){return\"boolean\"==typeof t?t:void 0},t.readObject=e,t.readArray=function(t,e){if(Array.isArray(t))return t.map((t=>e(t)))},t.readMap=function(t,i){var s;const n=null!==(s=e(t))&&void 0!==s?s:{};return Object.fromEntries(Object.entries(n).map((([t,e])=>[t,i(e)])))},t.compose=function(t,e,i){const s=e(t);return s?i(s):void 0}}(_||(_={}));class x{constructor(t,e={}){this.name=t,this.properties=e}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return\"minecraft:water\"===this.name||\"minecraft:lava\"===this.name}equals(t){return this.name===t.name&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}toString(){return 0===Object.keys(this.properties).length?this.name:`${this.name}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=A(t.value,\"Name\",\"string\"),i=F((()=>A(t.value,\"Properties\",\"compound\")),{}),s=Object.keys(i).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:A(i,e,\"string\")})),{});return new x(e,s)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.Name))&&void 0!==i?i:\"minecraft:stone\",r=_.readMap(s.Properties,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"}));return new x(n,r)}}x.AIR=new x(\"minecraft:air\");class T{constructor(t){this.minY=t,this.storage=Array(T.SIZE),this.palette=[x.AIR]}get minBlockY(){return this.minY<<4}index(t,e,i){return(t<<8)+(e<<4)+i}getBlockState(t,e,i){var s;const n=this.storage[this.index(t,e,i)];return null!==(s=this.palette[n])&&void 0!==s?s:x.AIR}setBlockState(t,e,i,s){let n=this.palette.findIndex((t=>t.equals(s)));-1===n&&(n=this.palette.length,this.palette.push(s)),this.storage[this.index(t,e,i)]=n}}T.WIDTH=16,T.SIZE=T.WIDTH*T.WIDTH*T.WIDTH;class C{constructor(t,e,i){this.minY=t,this.height=e,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[i,s,n]=t,r=this.sections[this.getSectionIndex(s)];return null!==(e=null==r?void 0:r.getBlockState(15&i,15&s,15&n))&&void 0!==e?e:x.AIR}setBlockState(t,e){const[i,s,n]=t,r=this.getSectionIndex(s);let o=this.sections[r];if(null===o){if(e.equals(x.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&i,15&s,15&n,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new T(this.minSection+t)),this.sections[t]}}!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(y||(y={}));class k{constructor(t,e=[],i=[]){this.size=t,this.palette=e,this.blocks=i,this.blocksMap=[],i.forEach((e=>{if(!this.isInside(e.pos))throw new Error(`Found block at ${e.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[e.pos[0]*t[1]*t[2]+e.pos[1]*t[2]+e.pos[2]]=e}))}getSize(){return this.size}addBlock(t,e,i,s){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new x(e,i);let r=this.palette.findIndex((t=>t.equals(n)));return-1===r&&(r=this.palette.length,this.palette.push(n)),this.blocks.push({pos:t,state:r,nbt:s}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:s},this}getBlocks(){return this.blocks.map((t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt})))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];if(!e)return null;return{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}}isInside(t){return t[0]>=0&&t[0]=0&&t[1]=0&&t[2]x.fromNbt({name:\"\",value:t}))),s=N(t.value,\"blocks\",\"compound\").map((t=>({pos:N(t,\"pos\",\"int\",3),state:A(t,\"state\",\"int\"),nbt:F((()=>A(t,\"nbt\",\"compound\")),void 0)})));return new k(e,i,s)}}function D(t){let e=null;return()=>(null==e&&(e=t()),e)}function M(t,e,i){const s=t.get(e);if(s)return s;const n=i(e);return t.set(e,n),n}function O(t){return t*t}function L(t,e,i){return Math.max(e,Math.min(i,t))}function U(t,e,i){return e+t*(i-e)}function Y(t,e,i,s,n,r){return U(e,U(t,i,s),U(t,n,r))}function G(t,e,i,s,n,r,o,a,l,h,u){return U(i,Y(t,e,s,n,r,o),Y(t,e,a,l,h,u))}function H(t,e,i){return i<0?t:i>1?e:U(i,t,e)}function V(t,e,i){return(t-e)/(i-e)}function z(t){return t*t*t*(t*(6*t-15)+10)}function j(t,e,i,s,n){return U(V(t,e,i),s,n)}function J(t,e,i,s,n){return H(s,n,V(t,e,i))}function X(t,e,i){let s=e-t;for(;s>0;){const e=Math.floor(s/2),n=t+e;i(n)?s=e:(t=n+1,s-=e+1)}return t}function Z(t,e,i){let s=BigInt(3129871*t)^BigInt(i)*BigInt(116129781)^BigInt(e);return s=s*s*BigInt(42317861)+s*BigInt(11),s>>BigInt(16)}function W(t,e,i,s,n,r,o,a){return BigInt(t)<>BigInt(q.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(void 0===t)return this.next(32);if(0==(t&t-1))return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,i;for(;(e=this.next(31))-(i=e%t)+(t-1)<0;);return i}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt(\"-4658895280553007687\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(27))*BigInt(\"-7723592293110705685\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(31))&BigInt(\"0xFFFFFFFFFFFFFFFF\")}static upgradeSeedTo128bit(t){t<0&&(t+=BigInt(\"0x10000000000000000\"));const e=t^K.SILVER_RATIO_64,i=e+K.GOLDEN_RATIO_64&BigInt(\"0xFFFFFFFFFFFFFFFF\");return[K.mixStafford13(e),K.mixStafford13(i)]}static rotateLeft(t,e){return t<>BigInt(64)-e}setSeed(t){this.seed=K.upgradeSeedTo128bit(t)}fork(){return new K([this.next(),this.next()])}forkPositional(){return new Q(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const i=K.rotateLeft(t+e&BigInt(\"0xFFFFFFFFFFFFFFFF\"),BigInt(17))+t&BigInt(\"0xFFFFFFFFFFFFFFFF\");return e^=t,this.seed=[K.rotateLeft(t,BigInt(49))^e^e<BigInt(\"0x8000000000000000\")&&(t-=BigInt(\"0x10000000000000000\")),t}consume(t){let e=this.seed[0],i=this.seed[1];for(let s=0;s>BigInt(64-t)}nextInt(t){let e=this.next()&BigInt(4294967295);if(t){const i=BigInt(t);let s=e*i,n=s&BigInt(4294967295);if(n>BigInt(32);return Number(r)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*K.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*K.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}}K.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),K.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),K.FLOAT_MULTIPLIER=1/Math.pow(2,24),K.DOUBLE_MULTIPLIER=11102230246251565e-32;class Q{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,i){const s=Z(t,e,i)^this.seedLo;return new K([s,this.seedHi])}fromHashOf(t){const i=e(t,{asBytes:!0}),s=W(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]),n=W(i[8],i[9],i[10],i[11],i[12],i[13],i[14],i[15]);return new K([s^this.seedLo,n^this.seedHi])}}class tt{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample2D(t,e){let i,s,n;const r=(t+e)*tt.F2,o=Math.floor(t+r),a=t-(o-(i=(o+(s=Math.floor(e+r)))*tt.G2));let l,h;a>(n=e-(s-i))?(l=1,h=0):(l=0,h=1);const u=a-l+tt.G2,c=n-h+tt.G2,d=a-1+2*tt.G2,f=n-1+2*tt.G2,g=255&o,p=255&s,m=this.P(g+this.P(p))%12,v=this.P(g+l+this.P(p+h))%12,b=this.P(g+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(m,a,n,0,.5)+this.getCornerNoise3D(v,u,c,0,.5)+this.getCornerNoise3D(b,d,f,0,.5))}sample(t,e,i){const s=.3333333333333333*(t+e+i),n=Math.floor(t+s),r=Math.floor(e+s),o=Math.floor(i+s),a=.16666666666666666*(n+r+o),l=t-(n-a),h=e-(r-a),u=i-(o-a);let c,d,f,g,p,m;l>=h?h>=u?(c=1,d=0,f=0,g=1,p=1,m=0):l>=u?(c=1,d=0,f=0,g=1,p=0,m=1):(c=0,d=0,f=1,g=1,p=0,m=1):h127?t-256:t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample(t,e,i,s=0,n=0){const r=t+this.xo,o=e+this.yo,a=i+this.zo,l=Math.floor(r),h=Math.floor(o),u=Math.floor(a),c=r-l,d=o-h,f=a-u;let g=0;if(0!==s){const t=n>=0&&n=0;s-=1)s0&&(s=this.maxLimitNoise.getOctaveNoise(l))&&(a+=s.sample(c,d,f,u,e*u)/r),r/=2}return H(o/512,a/512,n)/128}}!function(t){t.fromJson=function(t){var e,i,s,n,r;const o=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{xzScale:null!==(i=_.readNumber(o.xz_scale))&&void 0!==i?i:1,yScale:null!==(s=_.readNumber(o.y_scale))&&void 0!==s?s:1,xzFactor:null!==(n=_.readNumber(o.xz_factor))&&void 0!==n?n:80,yFactor:null!==(r=_.readNumber(o.y_factor))&&void 0!==r?r:80}}}(P||(P={}));class nt{constructor(t,{firstOctave:e,amplitudes:i}){this.first=new it(t,e,i),this.second=new it(t,e,i);let s=1/0,n=-1/0;for(let t=0;t{var e;return null!==(e=_.readNumber(t))&&void 0!==e?e:0})))&&void 0!==s?s:[]}}}(R||(R={}));class rt{constructor(t,e){const i=e[e.length-1],s=-e[0]+i+1,n=new Set(e),r=new tt(t);this.noiseLevels=Array(s),i>=0&&i=0&&n.has(i-e)?this.noiseLevels[e]=new tt(t):t.consume(262);if(i>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,i),this.highestFreqValueFactor=1/(Math.pow(2,s)-1)}sample(t,e,i){let s=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o{var e;return null!==(e=_.readObject(t))&&void 0!==e?e:{}})))&&void 0!==n?n:[];if(0===h.length)return new ot(0);for(const e of h){const s=null!==(r=_.readNumber(e.location))&&void 0!==r?r:0,n=t.fromJson(e.value,i),a=null!==(o=_.readNumber(e.derivative))&&void 0!==o?o:0;l.addPoint(s,n,a)}return l}}(B||(B={}));class ot{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class at{constructor(t,e=[],i=[],s=[]){this.coordinate=t,this.locations=e,this.values=i,this.derivatives=s}apply(t){const e=this.coordinate.apply(t),i=X(0,this.locations.length,(t=>e({location:t,value:this.values[e].toJson(),derivative:this.derivatives[e]})))}}}const lt=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],ht=[124/256,189/256,107/256],ut=lt(6396257),ct=lt(8431445),dt=lt(4764952),ft=lt(4159204),gt=lt(8431445),pt=lt(2129968),mt=t=>[t/8,1-t/32,64*t],vt={large_fern:()=>ht,tall_grass:()=>ht,grass_block:()=>ht,fern:()=>ht,grass:()=>ht,potted_fern:()=>ht,spruce_leaves:()=>ut,birch_leaves:()=>ct,oak_leaves:()=>dt,jungle_leaves:()=>dt,acacia_leaves:()=>dt,dark_oak_leaves:()=>dt,vine:()=>dt,water:()=>ft,bubble_column:()=>ft,cauldron:()=>ft,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),L(e*e*.7-.5,0,1),L(e*e*.6-.7,0,1)]})(parseInt(null!==(e=t.power)&&void 0!==e?e:\"0\"))},sugar_cane:()=>ht,attached_melon_stem:()=>gt,attached_pumpkin_stem:()=>gt,melon_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},pumpkin_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},lily_pad:()=>pt};var bt;function St(...t){let e=0;for(const i of t)e+=i.length;const i=new Float32Array(e);let s=0;for(const e of t)i.set(e,s),s+=e.length;return i}function Et(t,e){const s=i.create();for(let n=0;nthis.matchesVariant(e,t)));if(0===e.length)return[];const i=this.variants[e[0]];return[Array.isArray(i)?i[0]:i]}if(this.multipart){return this.multipart.filter((e=>!e.when||this.matchesCase(e.when,t))).map((t=>Array.isArray(t.apply)?t.apply[0]:t.apply))}return[]}getBuffers(t,e,i,r,o,a){var l,h,u,c;const d=this.getModelVariants(e),f=[],g=[],p=[],m=[];for(const v of d){const d=bt.rotate(a,null!==(l=v.x)&&void 0!==l?l:0,null!==(h=v.y)&&void 0!==h?h:0),b=r.getBlockModel(v.model).getBuffers(t,e,i,o,d);if(v.x||v.y){const t=s.create();s.identity(t),s.translate(t,t,[8,8,8]),s.rotateY(t,t,-n.toRadian(null!==(u=v.y)&&void 0!==u?u:0)),s.rotateX(t,t,-n.toRadian(null!==(c=v.x)&&void 0!==c?c:0)),s.translate(t,t,[-8,-8,-8]),Et(b.position,t)}f.push(b.position),g.push(...b.texCoord),p.push(...b.tintColor),m.push(...b.index),o+=b.texCoord.length/2}const v=s.create();s.identity(v),s.scale(v,v,[.0625,.0625,.0625]);const b=St(...f);return Et(b,v),{position:b,texCoord:g,tintColor:p,index:m}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[i,s]=t.split(\"=\");return e[i]===s}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const i=t;return Object.keys(i).every((t=>i[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new It(t,e.variants,e.multipart)}}const wt={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},At={x:[1,0,0],y:[0,1,0],z:[0,0,1]},Nt=1.41421356237,Ft={x:[1,Nt,Nt],y:[Nt,1,Nt],z:[Nt,Nt,1]};class _t{constructor(t,e,i,s){this.id=t,this.parent=e,this.textures=i,this.elements=s,this.flattened=!1}getBuffers(t,e,i,s,n){var r;const o=[],a=[],l=[],h=[];for(const u of null!==(r=this.elements)&&void 0!==r?r:[]){const r=this.getElementBuffers(t,e,u,s,i,n);o.push(r.position),a.push(...r.texCoord),l.push(...r.tintColor),h.push(...r.index),s+=r.texCoord.length/2}return{position:St(...o),texCoord:a,tintColor:l,index:h}}getElementBuffers(t,e,r,o,a,l){var h,u,c,d,f,g,p,m,v,b,S,E;const I=r.from[0],w=r.from[1],A=r.from[2],N=r.to[0],F=r.to[1],_=r.to[2],y=[],P=[],R=[],B=[],x=(i,s,n)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[S,E,I,w]=a.getTextureUV(this.getTexture(i.texture)),A=(I-S)/16,N=(w-E)/16,F=A/16,_=N/16;s[0]=(null!==(l=null===(r=i.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*A+F,s[1]=(null!==(u=null===(h=i.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*N+_,s[2]=(null!==(d=null===(c=i.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*A-F,s[3]=(null!==(g=null===(f=i.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*N-_;const x=wt[null!==(p=i.rotation)&&void 0!==p?p:0];P.push(S+s[x[0]],E+s[x[1]],S+s[x[2]],E+s[x[3]],S+s[x[4]],E+s[x[5]],S+s[x[6]],E+s[x[7]]);const T=(null!==(m=i.tintindex)&&void 0!==m?m:-1)>=0&&null!==(b=null===(v=vt[t.slice(10)])||void 0===v?void 0:v.call(vt,e))&&void 0!==b?b:[1,1,1];R.push(...T,...T,...T,...T),y.push(...n),B.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null===(u=null===(h=r.faces)||void 0===h?void 0:h.up)||void 0===u?void 0:u.texture)||r.faces.up.cullface&&l[r.faces.up.cullface]||x(r.faces.up,[I,16-_,N,16-A],[I,F,_,N,F,_,N,F,A,I,F,A]),!(null===(d=null===(c=r.faces)||void 0===c?void 0:c.down)||void 0===d?void 0:d.texture)||r.faces.down.cullface&&l[r.faces.down.cullface]||x(r.faces.down,[16-_,16-N,16-A,16-I],[I,w,A,N,w,A,N,w,_,I,w,_]),!(null===(g=null===(f=r.faces)||void 0===f?void 0:f.south)||void 0===g?void 0:g.texture)||r.faces.south.cullface&&l[r.faces.south.cullface]||x(r.faces.south,[I,16-F,N,16-w],[I,w,_,N,w,_,N,F,_,I,F,_]),!(null===(m=null===(p=r.faces)||void 0===p?void 0:p.north)||void 0===m?void 0:m.texture)||r.faces.north.cullface&&l[r.faces.north.cullface]||x(r.faces.north,[16-N,16-F,16-I,16-w],[N,w,A,I,w,A,I,F,A,N,F,A]),!(null===(b=null===(v=r.faces)||void 0===v?void 0:v.east)||void 0===b?void 0:b.texture)||r.faces.east.cullface&&l[r.faces.east.cullface]||x(r.faces.east,[16-_,16-F,16-A,16-w],[N,w,_,N,w,A,N,F,A,N,F,_]),!(null===(E=null===(S=r.faces)||void 0===S?void 0:S.west)||void 0===E?void 0:E.texture)||r.faces.west.cullface&&l[r.faces.west.cullface]||x(r.faces.west,[A,16-F,_,16-w],[I,w,A,I,w,_,I,F,_,I,F,A]);const T=s.create();if(s.identity(T),r.rotation){const t=i.fromValues(...r.rotation.origin);s.translate(T,T,t),s.rotate(T,T,n.toRadian(r.rotation.angle),At[r.rotation.axis]),r.rotation.rescale&&s.scale(T,T,Ft[r.rotation.axis]),i.negate(t,t),s.translate(T,T,t)}const C=new Float32Array(y);return Et(C,T),{position:C,texCoord:P,tintColor:R,index:B}}getTexture(t){for(var e,i;t.startsWith(\"#\");)t=null!==(i=null===(e=this.textures)||void 0===e?void 0:e[t.slice(1)])&&void 0!==i?i:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const i=t.getBlockModel(this.parent);if(!i)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);i.flatten(t),this.elements||(this.elements=i.elements),this.textures||(this.textures={}),Object.keys(null!==(e=i.textures)&&void 0!==e?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=i.textures[t])})),this.flattened=!0}}static fromJson(t,e){let i=e.parent;return i&&!i.startsWith(\"minecraft:\")&&(i=\"minecraft:\"+i),new _t(t,i,e.textures,e.elements)}}class yt{constructor(t,e,i){this.gl=t,this.program=this.initShaderProgram(e,i)}getProgram(){return this.program}initShaderProgram(t,e){const i=this.loadShader(this.gl.VERTEX_SHADER,t),s=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,i),this.gl.attachShader(n,s),this.gl.linkProgram(n),!this.gl.getProgramParameter(n,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(n)}`);return n}loadShader(t,e){const i=this.gl.createShader(t);if(this.gl.shaderSource(i,e),this.gl.compileShader(i),!this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(i)}`);throw this.gl.deleteShader(i),e}return i}}function Pt(t,e,i,s,n){const r=new It(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>n};return n.flatten(o),r.getBuffers(t,{},e,o,i,s)}function Rt(t,e,i,s,n,o){const a=n.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][i];return Pt(`minecraft:${t}`,s,e,n,new _t(\"\",\"\",{still:`minecraft:block/${t}_still`,flow:`minecraft:block/${t}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:\"#still\",tintindex:o,cullface:r.UP},down:{texture:\"#still\",tintindex:o,cullface:r.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:r.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:r.EAST},south:{texture:\"#flow\",tintindex:o,cullface:r.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:r.WEST}}}]))}const Bt={\"minecraft:water\":(t,e,i,s)=>Rt(\"water\",t,parseInt(e.level),i,s,0),\"minecraft:lava\":(t,e,i,s)=>Rt(\"lava\",t,parseInt(e.level),i,s),\"minecraft:chest\":(t,e,i)=>function(t,e,i,s){return Pt(\"minecraft:chest\",s,t,{},new _t(\"\",\"\",{0:\"minecraft:block/chest\"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:\"#0\"},down:{texture:\"#0\"},north:{texture:\"#0\"},east:{texture:\"#0\"},south:{texture:\"#0\"},west:{texture:\"#0\"}}}]))}(t,e.facing,e.type,i)},xt=new Set(Object.keys(Bt));class Tt{constructor(t,e,i,s){var n,r;this.gl=t,this.structure=e,this.resources=i,this.chunks=[],(null==s?void 0:s.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!==(n=null==s?void 0:s.chunkSize)&&void 0!==n?n:16,this.useInvisibleBlockBuffer=null===(r=null==s?void 0:s.useInvisibleBlockBuffer)||void 0===r||r,this.shaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec2 texCoord;\\n attribute vec3 tintColor;\\n attribute vec3 normal;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vTexCoord = texCoord;\\n vTintColor = tintColor;\\n vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n uniform sampler2D sampler;\\n\\n void main(void) {\\n vec4 texColor = texture2D(sampler, vTexCoord);\\n if(texColor.a < 0.01) discard;\\n gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\\n }\\n\").getProgram(),this.gridShaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 vertColor;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = vertColor;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.colorShaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 blockPos;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = blockPos / 256.0;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(t){this.structure=t,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),t}getPerspective(){const t=70*Math.PI/180,e=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,i=s.create();return s.perspective(i,t,e,.1,500),i}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),i=2*Math.abs(t[1])+(t[1]<0?1:0),s=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][i]||(this.chunks[e][i]=[]),this.chunks[e][i][s]||(this.chunks[e][i][s]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][i][s]}updateStructureBuffers(t){var e;const n=(t,e,n)=>{const r=s.create();s.translate(r,r,e),Et(t.position,r),n.positions.push(t.position),n.textureCoordinates.push(...t.texCoord),n.tintColors.push(...t.tintColor);for(let e=0;e{t.positions=[],t.textureCoordinates=[],t.tintColors=[],t.blockPositions=[],t.normals=[],t.indices=[],t.indexOffset=0},a=t=>{t.buffer?(this.updateBuffer(t.buffer.position,this.gl.ARRAY_BUFFER,St(...t.positions)),this.updateBuffer(t.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),this.updateBuffer(t.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),this.updateBuffer(t.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),this.updateBuffer(t.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),this.updateBuffer(t.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),t.buffer.length=t.indices.length):t.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,St(...t.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),length:t.indices.length}};let l;t?t.forEach((t=>{const e=this.getChunk(t);o(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{o(t)}))))));for(const s of this.structure.getBlocks()){const o=s.state.getName(),a=s.state.getProperties(),h=null!==(e=this.resources.getDefaultBlockProperties(o))&&void 0!==e?e:{};Object.entries(h).forEach((([t,e])=>{a[t]||(a[t]=e)}));const u=[Math.floor(s.pos[0]/this.chunkSize),Math.floor(s.pos[1]/this.chunkSize),Math.floor(s.pos[2]/this.chunkSize)];if(t&&!t.some((t=>i.equals(t,u))))continue;const c=this.getChunk(u);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(s,r.UP),down:this.needsCull(s,r.DOWN),west:this.needsCull(s,r.WEST),east:this.needsCull(s,r.EAST),north:this.needsCull(s,r.NORTH),south:this.needsCull(s,r.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),n(l,s.pos,c)),xt.has(o)&&(l=Bt[o](c.indexOffset,a,this.resources,e),n(l,s.pos,c))}catch(t){console.error(`Error rendering block ${o}`,t)}}t?t.forEach((t=>{const e=this.getChunk(t);a(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{a(t)}))))))}needsCull(t,e){var i,s;const n=null===(i=this.structure.getBlock(a.towards(t.pos,e)))||void 0===i?void 0:i.state;return!!n&&((null===(s=this.resources.getBlockFlags(n.getName()))||void 0===s?void 0:s.opaque)?!(e===r.UP&&t.state.isFluid()):t.state.isFluid()&&n.isFluid())}getGridBuffers(){const[t,e,i]=this.structure.getSize(),s=[],n=[];s.push(0,0,0,t,0,0),n.push(1,0,0,1,0,0),s.push(0,0,0,0,0,i),n.push(0,0,1,0,0,1),s.push(0,0,0,0,e,0),s.push(t,0,0,t,e,0),s.push(0,0,i,0,e,i),s.push(t,0,i,t,e,i),s.push(0,e,0,0,e,i),s.push(t,e,0,t,e,i),s.push(0,e,0,t,e,0),s.push(0,e,i,t,e,i);for(let e=1;e<=t;e+=1)s.push(e,0,0,e,0,i);for(let e=1;e<=i;e+=1)s.push(0,0,e,t,0,e);for(let e=0;e<8+t+i;e+=1)n.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(s)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(n)),length:s.length/3}}getOutlineBuffers(){const t=[],e=[];return this.addCube(t,e,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),length:t.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const t=this.structure.getSize(),e=[],i=[];for(let s=0;s{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"texCoord\",2,t.buffer.texCoord),this.setVertexAttr(\"tintColor\",3,t.buffer.tintColor),this.setVertexAttr(\"normal\",3,t.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawColoredStructure(t){this.setShader(this.colorShaderProgram),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.chunks.forEach((t=>{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"blockPos\",3,t.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawOutline(t,e){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.outlineBuffers.position),this.setVertexAttr(\"vertColor\",3,this.outlineBuffers.color);const i=s.create();s.copy(i,t),s.translate(i,i,e),this.setUniform(\"mView\",i),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,i,s){this.gl.viewport(t,e,i,s),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,i){const s=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,i),this.gl.vertexAttribPointer(s,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(s)}setUniform(t,e){const i=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(i,!1,e)}}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function Ct(t,e,i,s){return new(i||(i=Promise))((function(n,r){function o(t){try{l(s.next(t))}catch(t){r(t)}}function a(t){try{l(s.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?n(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(o,a)}l((s=s.apply(t,e||[])).next())}))}class kt{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return null!==(e=this.idMap[t])&&void 0!==e?e:[0,0,this.part,this.part]}static fromBlobs(t){return Ct(this,void 0,void 0,(function*(){const e=Math.sqrt(Object.keys(t).length+1),i=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),s=16*i,n=1/i,r=document.createElement(\"canvas\");r.width=s,r.height=s;const o=r.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>Ct(this,void 0,void 0,(function*(){const s=l%i,r=Math.floor(l/i);l+=1,a[e]=[n*s,n*r,n*s+n,n*r+n];const h=yield createImageBitmap(t[e]);o.drawImage(h,0,0,16,16,16*s,16*r,16,16)}))))),new kt(o.getImageData(0,0,s,s),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return kt.drawInvalidTexture(e),new kt(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle=\"black\",t.fillRect(0,0,16,16),t.fillStyle=\"magenta\",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}var Dt,Mt,Ot,Lt,Ut,Yt,Gt,Ht,Vt,zt,jt,Jt,Xt;!function(t){function e(t,e){return\"number\"==typeof t?new i(t,null!=e?e:t):t}t.target=function(t,e,i,s,r,o){return new n(t,e,i,s,r,o)},t.parameters=function(t,i,n,r,o,a,l){return new s(e(t),e(i),e(n),e(r),e(o),e(a),l)},t.param=e;class i{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,i=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(i,0)}union(t){return new i(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new i(t,t);const[s,n]=null!==(e=_.readArray(t,(t=>_.readNumber(t))))&&void 0!==e?e:[];return new i(null!=s?s:0,null!=n?n:0)}}t.Param=i;class s{constructor(t,e,i,s,n,r,o){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r,this.offset=o}fittness(t){return O(this.temperature.distance(t.temperature))+O(this.humidity.distance(t.humidity))+O(this.continentalness.distance(t.continentalness))+O(this.erosion.distance(t.erosion))+O(this.depth.distance(t.depth))+O(this.weirdness.distance(t.weirdness))+O(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new i(this.offset,this.offset)]}static fromJson(t){var e,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return new s(i.fromJson(r.temperature),i.fromJson(r.humidity),i.fromJson(r.continentalness),i.fromJson(r.erosion),i.fromJson(r.depth),i.fromJson(r.weirdness),null!==(n=_.readInt(r.offset))&&void 0!==n?n:0)}}t.ParamPoint=s;class n{constructor(t,e,i,s,n,r){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=n;t.Parameters=class{constructor(t){this.things=t,this.index=new r(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};class r{constructor(t){this.root=r.build(t.map((([t,e])=>new l(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=r.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let i=0;i<7;i+=1){const s=t.space[i];e+=Math.abs((s.min+s.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new a(e)}let e=1/0,i=-1,s=[];for(let n=0;n<7;++n){t=r.sort(t,n,!1),s=r.bucketize(t);let o=0;for(const t of s)o+=r.area(t.space);e>o&&(e=o,i=n)}return t=r.sort(t,i,!1),s=r.bucketize(t),s=r.sort(s,i,!0),new a(s.map((t=>r.build(t.children))))}static sort(t,e,i){return t.map((t=>{const s=t.space[e],n=(s.min+s.max)/2;return{key:i?Math.abs(n):n,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let i=[];const s=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const n of t)i.push(n),i.lengthnew i(1/0,-1/0)));for(const i of t)e=[...Array(7)].map(((t,s)=>e[s].union(i.space[s])));return e}search(t,e){let i=1/0,s=null;for(const n of this.children){const r=e(n,t);if(i<=r)continue;const o=n.search(t,e),a=n==o?r:e(o,t);i<=a||(i=a,s=o)}return s}}t.RSubTree=a;class l extends o{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=l}(Dt||(Dt={}));class Zt{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.biome))&&void 0!==i?i:\"minecraft:the_void\";return new Zt(n)}}class Wt{constructor(t){this.parameters=t}getBiome(t,e,i,s){const n=s(t,e,i);return this.parameters.find(n)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=(null!==(i=_.readArray(s.biomes,(t=>{var e;return(t=>{var e;return{biome:null!==(e=_.readString(t.biome))&&void 0!==e?e:\"minecraft:the_void\",parameters:Dt.ParamPoint.fromJson(t.parameters)}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})})))&&void 0!==i?i:[]).map((t=>[t.parameters,()=>t.biome]));return new Wt(new Dt.Parameters(n))}}class qt{constructor(t,e,i){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=i}static extractor(t){return{apply:e=>e[t],toJson:()=>t}}static fromJson(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return new qt(B.fromJson(i.offset,this.EXTRACTOR),B.fromJson(i.factor,this.EXTRACTOR),B.fromJson(i.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(t){return this.offsetSampler.apply(t)+qt.GLOBAL_OFFSET}factor(t){return this.factorSampler.apply(t)}jaggedness(t){return this.jaggednessSampler.apply(t)}static point(t,e,i){return{continents:t,erosion:e,weirdness:i,ridges:this.peaksAndValleys(i)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}static overworld(){const t=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),e=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),i=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),s=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),n=new at(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,t).addPoint(-.15,t).addPoint(-.1,e).addPoint(.25,i).addPoint(1,s),r=new at(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),o=new at(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new qt(n,r,o)}static getErosionFactor(t,e){const i=new at(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,t),s=new at(this.EROSION).addPoint(-.6,i).addPoint(-.5,new at(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new at(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(e){const e=new at(this.WEIRDNESS).addPoint(0,t).addPoint(.1,.625),i=new at(this.RIDGES).addPoint(-.9,t).addPoint(-.69,e);s.addPoint(.35,t).addPoint(.45,i).addPoint(.55,i).addPoint(.62,t)}else{const e=new at(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),n=new at(this.RIDGES).addPoint(.45,i).addPoint(.7,1.56);s.addPoint(.05,n).addPoint(.4,n).addPoint(.45,e).addPoint(.55,e).addPoint(.58,t)}return s}static buildErosionOffsetSpline(t,e,i,s,n,r,o,a){const l=this.buildMountainRidgeSplineWithPoints(U(s,.6,1.5),a),h=this.buildMountainRidgeSplineWithPoints(U(s,.6,1),a),u=this.buildMountainRidgeSplineWithPoints(s,a),c=this.ridgeSpline(t-.15,.5*s,U(.5,.5,.5)*s,.5*s,.6*s,.5),d=this.ridgeSpline(t,n*s,e*s,.5*s,.6*s,.5),f=this.ridgeSpline(t,n,n,e,i,.5),g=this.ridgeSpline(t,n,n,e,i,.5),p=new at(this.RIDGES).addPoint(-1,t).addPoint(-.4,f).addPoint(0,i+.07),m=this.ridgeSpline(-.02,r,r,e,i,0),v=new at(this.EROSION).addPoint(-.85,l).addPoint(-.7,h).addPoint(-.4,u).addPoint(-.35,c).addPoint(-.1,d).addPoint(.2,f);return o&&v.addPoint(.4,g).addPoint(.45,p).addPoint(.55,p).addPoint(.58,g),v.addPoint(.7,m),v}static buildMountainRidgeSplineWithPoints(t,e){const i=new at(this.RIDGES),s=this.mountainContinentalness(-1,t,-.7),n=this.mountainContinentalness(1,t,-.7),r=this.calculateMountainRidgeZeroContinentalnessPoint(t);if(-.650?this.buildWeirdnessJaggednessSpline(e):0).addPoint(1,t>0?this.buildWeirdnessJaggednessSpline(t):0)}static buildWeirdnessJaggednessSpline(t){return new at(qt.WEIRDNESS).addPoint(-.01,.63*t).addPoint(.01,.3*t)}}qt.GLOBAL_OFFSET=-.50375,qt.EXTRACTOR=t=>{var e;const i=null!==(e=_.readString(t))&&void 0!==e?e:\"continents\";return qt.extractor(i)},qt.CONTINENTS=qt.extractor(\"continents\"),qt.EROSION=qt.extractor(\"erosion\"),qt.WEIRDNESS=qt.extractor(\"weirdness\"),qt.RIDGES=qt.extractor(\"ridges\"),function(t){t.fromList=function(t){return(e,i,s,n)=>{for(const r of t){const t=r(e,i,s,n);if(t)return t}return null}}}(Mt||(Mt={})),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,i,s,n,r,o,a,l;const h=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{minY:null!==(i=_.readInt(h.min_y))&&void 0!==i?i:0,height:null!==(s=_.readInt(h.height))&&void 0!==s?s:256,xzSize:null!==(n=_.readInt(h.size_horizontal))&&void 0!==n?n:1,ySize:null!==(r=_.readInt(h.size_vertical))&&void 0!==r?r:1,sampling:P.fromJson(h.sampling),topSlide:Lt.fromJson(h.top_slide),bottomSlide:Lt.fromJson(h.bottom_slide),terrainShaper:qt.fromJson(h.terrain_shaper),islandNoiseOverride:null!==(o=_.readBoolean(h.island_noise_override))&&void 0!==o&&o,isAmplified:null!==(a=_.readBoolean(h.amplified))&&void 0!==a&&a,hasLargeBiomes:null!==(l=_.readBoolean(h.large_biomes))&&void 0!==l&&l}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))}}(Ot||(Ot={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{target:null!==(i=_.readNumber(r.target))&&void 0!==i?i:0,size:null!==(s=_.readInt(r.size))&&void 0!==s?s:0,offset:null!==(n=_.readInt(r.offset))&&void 0!==n?n:0}},t.apply=function(t,e,i){if(t.size<=0)return e;const s=(i-t.offset)/t.size;return H(t.target,e,s)}}(Lt||(Lt={}));class $t{constructor(t,e){this.chunk=t,this.filler=e,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=$t.allocateSlice(t.cellCountY,t.cellCountXZ),this.slice1=$t.allocateSlice(t.cellCountY,t.cellCountXZ)}static allocateSlice(t,e){const i=Array(e+1);for(let s=0;s>2,this.firstNoiseZ=r>>2,this.interpolators=[];const h=t*l>>2;this.noiseData=Array(h+1);for(let t=0;t<=h;t+=1){const e=this.firstNoiseX+t;this.noiseData[t]=Array(h+1);for(let i=0;i<=h;i+=1){const n=this.firstNoiseZ+i;this.noiseData[t][i]=s.noiseData(e,n)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=s.makeBaseNoiseFiller(this,o,a.noodleCavesEnabled)}getNoiseData(t,e){return this.noiseData[t-this.firstNoiseX][e-this.firstNoiseZ]}getPreliminarySurfaceLevel(t,e){return M(this.preliminarySurfaceLevel,y.asLong(t,e),(()=>{const i=t-this.firstNoiseX,s=e-this.firstNoiseZ,n=this.noiseData.length,r=i>=0&&s>=0&&it.initializeForFirstCellX()))}advanceCellX(t){this.interpolators.forEach((e=>e.advanceCellX(t)))}selectCellYZ(t,e){this.interpolators.forEach((i=>i.selectCellYZ(t,e)))}updateForY(t){this.interpolators.forEach((e=>e.updateForY(t)))}updateForX(t){this.interpolators.forEach((e=>e.updateForX(t)))}updateForZ(t){this.interpolators.forEach((e=>e.updateForZ(t)))}swapSlices(){this.interpolators.forEach((t=>t.swapSlices()))}updateNoiseAndGenerateBaseState(t,e,i){return this.baseNoise(t,e,i)}}!function(t){t.create=function(t,e,i){return{offset:t,factor:e,jaggedness:i}}}(Ut||(Ut={})),function(t){const e=new Map;function i(t,i,s){const n=Object.assign({name:`minecraft:${t}`},R.create(i,s));return e.set(t,n),n}t.TEMPERATURE=i(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=i(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=i(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=i(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=i(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=i(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=i(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=i(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=i(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=i(\"offset\",-3,[1,1,1,0]),t.PILLAR=i(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=i(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=i(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=i(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=i(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=i(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=i(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=i(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=i(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=i(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=i(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=i(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=i(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=i(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=i(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=i(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=i(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=i(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=i(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=i(\"noodle_ridge_b\",-7,[1]),t.JAGGED=i(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=i(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=i(\"surface_secondary\",-6,[1,1,0,1]),t.instantiate=function(t,e){return new nt(t.fromHashOf(e.name),e)}}(Yt||(Yt={}));class Qt{constructor(t,e,i,s=!1){this.settings=t,this.isNoiseCavesEnabled=e;const n=t.hasLargeBiomes,r=(s?new q(i):K.create(i)).forkPositional();s?(this.blendedNoise=new st(new q(i),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=new nt(new q(i),R.create(-7,[1,1])),this.humidityNoise=new nt(new q(i+BigInt(1)),R.create(-7,[1,1])),this.offsetNoise=new nt(new q(i+BigInt(5)),R.create(0,[0]))):(this.blendedNoise=new st(r.fromHashOf(\"minecraft:terrain\"),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=Yt.instantiate(r,n?Yt.TEMPERATURE_LARGE:Yt.TEMPERATURE),this.humidityNoise=Yt.instantiate(r,n?Yt.VEGETATION_LARGE:Yt.VEGETATION),this.offsetNoise=Yt.instantiate(r,Yt.SHIFT)),this.continentalnessNoise=Yt.instantiate(r,n?Yt.CONTINENTALNESS_LARGE:Yt.CONTINENTALNESS),this.erosionNoise=Yt.instantiate(r,n?Yt.EROSION_LARGE:Yt.EROSION),this.weirdnessNoise=Yt.instantiate(r,Yt.RIDGE),this.pillarNoise=Yt.instantiate(r,Yt.PILLAR),this.pillarRarenessModulator=Yt.instantiate(r,Yt.PILLAR_RARENESS),this.pillarThicknessModulator=Yt.instantiate(r,Yt.PILLAR_THICKNESS),this.spaghetti2DNoise=Yt.instantiate(r,Yt.SPAGHETTI_2D),this.spaghetti2DElevationModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=Yt.instantiate(r,Yt.SPAGHETTI_3D_1),this.spaghetti3DNoise2=Yt.instantiate(r,Yt.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=Yt.instantiate(r,Yt.CAVE_ENTRANCE),this.layerNoise=Yt.instantiate(r,Yt.CAVE_LAYER),this.cheeseNoise=Yt.instantiate(r,Yt.CAVE_CHEESE);const o=t.minY+4,a=o+t.height;this.noodleToggleNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE),o,a,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_THICKNESS),o,a,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_A),o,a,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_B),o,a,0,8/3),this.jaggedNoise=Yt.instantiate(r,Yt.JAGGED),this.shaper=t.terrainShaper,this.baseNoise=t=>t.createNoiseInterpolator(((e,i,s)=>this.calculateBlendedBaseNoise(e,i,s,t.getNoiseData(e>>2,s>>2).terrainInfo)))}yLimitedInterpolatable(t,e,i,s,n){const r=(r,o,a)=>o>i||ot.createNoiseInterpolator(r)}noiseData(t,e){const i=t+this.getOffset(t,0,e),s=e+this.getOffset(e,t,0),n=this.getContinentalness(i,s),r=this.getErosion(i,s),o=this.getWeirdness(i,s),a=this.terrainInfo(n,r,o);return Gt.create(i,s,n,r,o,a)}sample(t,e,i){return this.target(t,e,i,this.noiseData(t,i))}target(t,e,i,s){const n=s.shiftedX,r=e+this.getOffset(e,i,t),o=s.shiftedZ,a=this.getTemperature(n,r,o),l=this.getHumidity(n,r,o),h=this.computeDimensionDensity(e<<2,s.terrainInfo);return Dt.target(a,l,s.continentalness,s.erosion,h,s.weirdness)}terrainInfo(t,e,i){const s=qt.point(t,e,i),n=this.shaper.offset(s),r=this.shaper.factor(s),o=this.shaper.jaggedness(s);return Ut.create(n,r,o)}getOffset(t,e,i){return 4*this.offsetNoise.sample(t,e,i)}getTemperature(t,e,i){return this.temperatureNoise.sample(t,e,i)}getHumidity(t,e,i){return this.humidityNoise.sample(t,e,i)}getContinentalness(t,e){return this.continentalnessNoise.sample(t,0,e)}getErosion(t,e){return this.erosionNoise.sample(t,0,e)}getWeirdness(t,e){return this.weirdnessNoise.sample(t,0,e)}makeBaseNoiseFiller(t,e,i){const s=this.baseNoise(t),n=i?this.noodleToggleNoise(t):()=>-1,r=i?this.noodleThicknessNoise(t):()=>0,o=i?this.noodleRidgeANoise(t):()=>0,a=i?this.noodleRidgeBNoise(t):()=>0;return(t,i,l)=>{let h=s();if(h=L(.64*h,-1,1),h=h/2-h*h*h/24,n()>=0){const t=J(r(),-1,1,.05,.1),e=Math.abs(1.5*o())-t,i=Math.abs(1.5*a())-t;h=Math.min(h,Math.max(e,i))}return h+=e(t,i,l),h>0?null:x.AIR}}calculateBlendedBaseNoise(t,e,i,s){const n=this.blendedNoise.sample(t,e,i);return this.calculateBaseNoise(t,e,i,s,n,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(t,e,i,s,n,r,o){if(!this.settings.islandNoiseOverride){const r=o?this.sampleJaggedNoise(s.jaggedness,t,i):0,a=this.computeDimensionDensity(e,s),l=s.factor*(r+a);n+=l>0?4*l:l}let a=-64,l=64;if(!r&&n>=-64){const s=n-1.5625,r=this.getBigEntrances(t,e,i),o=this.getSpaghettiRoughness(t,e,i),h=this.getSpaghetti3D(t,e,i),u=Math.min(r,h+o);if(s<0)l=u;else{const r=this.getLayerizedCaverns(t,e,i);if(r>64)n=64;else{n=this.getCheese(t,e,i)+r+H(.5,0,1.28*s)}const h=this.getSpaghetti2D(t,e,i);a=this.getPillars(t,e,i),l=Math.min(u,h+o)}}return n=L(n,a,l),n=L(n=this.applySlide(n,e/Ot.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(t,e,i){if(0===t)return 0;const s=this.jaggedNoise.sample(1500*e,0,1500*i);return s>0?t*s:t/2*s}computeDimensionDensity(t,e){return 1-t/128+e.offset}getBigEntrances(t,e,i){return this.bigEntranceNoise.sample(.75*t,.5*e,.75*i)+.37+H(.3,0,(e+10)/40)}getSpaghettiRoughness(t,e,i){const s=this.spaghettiRoughnessNoise.sample(t,e,i),n=j(this.spaghettiRoughnessModulator.sample(t,e,i),-1,1,0,1);return(.4-Math.abs(s))*n}getSpaghetti2D(t,e,i){const s=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti2DThicknessModulator.sample(2*t,e,2*i),-1,1,.6,1.3),r=this.sampleWithRarity(this.spaghetti2DNoise,t,e,i,s),o=Math.abs(s*r)-.083*n,a=Ot.minCellY(this.settings),l=j(this.spaghetti2DElevationModulator.sample(t,0,i),-1,1,a,8),h=Math.abs(l-e/8)-1*n;return L(Math.max(h,o),-1,1)}getSpaghetti3D(t,e,i){const s=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti3DThicknessModulator.sample(t,e,i),-1,1,.065,.088),r=this.sampleWithRarity(this.spaghetti3DNoise1,t,e,i,s),o=Math.abs(s*r)-n,a=this.sampleWithRarity(this.spaghetti3DNoise2,t,e,i,s),l=Math.abs(s*a)-n;return L(Math.max(o,l),-1,1)}quantizeSpaghettiRarity2D(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}quantizeSpaghettiRarity3D(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}sampleWithRarity(t,e,i,s,n){return t.sample(e/n,i/n,s/n)}getLayerizedCaverns(t,e,i){return 4*O(this.layerNoise.sample(t,8*e,i))}getCheese(t,e,i){return L(this.cheeseNoise.sample(t,e/1.5,i)+.27,-1,1)}getPillars(t,e,i){const s=j(this.pillarRarenessModulator.sample(t,e,i),-1,1,0,2),n=j(this.pillarThicknessModulator.sample(t,e,i),-1,1,0,1.1),r=this.pillarNoise.sample(25*t,.3*e,25*i),o=Math.pow(n,3)*(2*r-s);return o<=.03?Number.MIN_SAFE_INTEGER:o}applySlide(t,e){const i=e-Ot.minCellY(this.settings);return t=Lt.apply(this.settings.topSlide,t,Ot.cellCountY(this.settings)-i),t=Lt.apply(this.settings.bottomSlide,t,i)}getPreliminarySurfaceLevel(t,e,i){const s=Ot.minCellY(this.settings)+Ot.cellCountY(this.settings),n=Ot.minCellY(this.settings),r=Ot.cellHeight(this.settings);for(let o=s;o>=n;o-=1){const s=o*r;if(this.calculateBaseNoise(t,s,e,i,-.703125,!0,!1)>=.390625)return s}return Number.MAX_SAFE_INTEGER}}!function(t){t.create=function(t,e,i,s,n,r){return{shiftedX:t,shiftedZ:e,continentalness:i,weirdness:s,erosion:n,terrainInfo:r}}}(Gt||(Gt={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return void 0!==r.absolute?(o=null!==(i=_.readNumber(r.absolute))&&void 0!==i?i:0,()=>o):void 0!==r.above_bottom?function(t){return e=>e.minY+t}(null!==(s=_.readNumber(r.above_bottom))&&void 0!==s?s:0):void 0!==r.below_top?function(t){return e=>e.maxY-t}(null!==(n=_.readNumber(r.below_top))&&void 0!==n?n:0):()=>0;var o}}(Ht||(Ht={})),function(t){t.create=function(t,e){return{minY:t,height:e,maxY:t+e-1}}}(Vt||(Vt={}));class te{constructor(t,e,i){this.rule=t,this.defaultBlock=e,this.random=K.create(i).forkPositional(),this.surfaceNoise=Yt.instantiate(this.random,Yt.SURFACE),this.surfaceSecondaryNoise=Yt.instantiate(this.random,Yt.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,i,s){const n=y.minBlockX(t.pos),r=y.minBlockZ(t.pos),o=new ee(this,t,e,i,s),l=this.rule(o);for(let e=0;e<16;e+=1){const i=n+e;for(let e=0;e<1;e+=1){const s=r+e;o.updateXZ(i,s);let n=0,h=Number.MIN_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const r=a.create(i,e,s),c=t.getBlockState(r);if(c.equals(x.AIR)){n=0,h=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){h===Number.MIN_SAFE_INTEGER&&(h=e+1);continue}if(u>=e){u=Number.MIN_SAFE_INTEGER;for(let n=e-1;n>=t.minY;n-=1){const e=t.getBlockState(a.create(i,n,s));if(e.equals(x.AIR)||e.isFluid()){u=n+1;break}}}n+=1;const d=e-u+1;if(!c.equals(this.defaultBlock))continue;o.updateY(n,d,h,e);const f=l(i,e,s);f&&t.setBlockState(r,f)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return M(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class ee{constructor(t,e,i,s,n){this.system=t,this.chunk=e,this.noiseChunk=i,this.context=s,this.getBiome=n,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=D((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=D((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,i,s){this.blockY=s,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=i,this.biome=D((()=>this.getBiome(a.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const i=t>>4,s=e>>4,n=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s<<4),r=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s+1<<4);return Math.floor(Y((15&t)/16,(15&e)/16,n,r,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function i(t){return e=>{const i=t.map((t=>t(e)));return(t,e,s)=>{for(const n of i){const i=n(t,e,s);if(i)return i}}}}function s(t,e){return i=>(s,n,r)=>{if(t(i))return e(i)(s,n,r)}}t.NOOP=()=>()=>{},t.fromJson=function(n){var r,o,a;const l=null!==(r=_.readObject(n))&&void 0!==r?r:{};switch(null===(o=_.readString(l.type))||void 0===o?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(x.fromJson(l.result_state));case\"sequence\":return i(null!==(a=_.readArray(l.sequence,t.fromJson))&&void 0!==a?a:[]);case\"condition\":return s(jt.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=i,t.condition=s}(zt||(zt={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function i(t){const e=new Set(t);return t=>e.has(t.biome())}function s(t){return e=>!t(e)}function n(t,e,i,s){return n=>{const r=s?n.stoneDepthBelow:n.stoneDepthAbove,o=e?n.surfaceDepth:0,a=0===i?0:j(n.surfaceSecondary(),-1,1,0,i);return r<=1+t+o+a}}function r(t,e,i){return s=>{const n=e(s.context),r=i(s.context);if(s.blockY<=n)return!0;if(s.blockY>=r)return!1;const o=s.system.getRandom(t),a=j(s.blockY,n,r,1,0);return o.nextFloat(){if(s.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const n=i?s.stoneDepthAbove:0;return s.blockY+n>=s.waterHeight+t+s.surfaceDepth*e}}function a(t,e,i){return s=>{const n=i?s.stoneDepthAbove:0;return s.blockY+n>=t(s.context)+s.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,h,u,c,d,f,g,p,m,v,b,S;const E=null!==(l=_.readObject(e))&&void 0!==l?l:{};switch(null===(h=_.readString(E.type))||void 0===h?void 0:h.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return i(null!==(u=_.readArray(E.biome_is,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"})))&&void 0!==u?u:[]);case\"not\":return s(t.fromJson(E.invert));case\"stone_depth\":return n(null!==(c=_.readInt(E.offset))&&void 0!==c?c:0,null!==(d=_.readBoolean(E.add_surface_depth))&&void 0!==d&&d,null!==(f=_.readInt(E.secondary_depth_range))&&void 0!==f?f:0,\"ceiling\"===_.readString(E.surface_type));case\"vertical_gradient\":return r(null!==(g=_.readString(E.random_name))&&void 0!==g?g:\"\",Ht.fromJson(E.true_at_and_below),Ht.fromJson(E.false_at_and_above));case\"water\":return o(null!==(p=_.readInt(E.offset))&&void 0!==p?p:0,null!==(m=_.readInt(E.surface_depth_multiplier))&&void 0!==m?m:0,null!==(v=_.readBoolean(E.add_surface_depth))&&void 0!==v&&v);case\"y_above\":return a(Ht.fromJson(E.anchor),null!==(b=_.readInt(E.surface_depth_multiplier))&&void 0!==b?b:0,null!==(S=_.readBoolean(E.add_surface_depth))&&void 0!==S&&S)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=i,t.not=s,t.stoneDepth=n,t.verticalGradient=r,t.water=o,t.yAbove=a}(jt||(jt={}));class ie{constructor(t,e,i){this.biomeSource=e,this.settings=i,this.sampler=new Qt(i.noise,i.noiseCavesEnabled,t,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=Mt.fromList([(t,e,i,s)=>t.updateNoiseAndGenerateBaseState(e,i,s)]),this.surfaceSystem=new te(i.surfaceRule,i.defaultBlock,t)}fill(t){var e;const i=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),n=Ot.cellWidth(this.settings.noise),r=Ot.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(i/r),l=Math.floor((s-i)/r),h=y.minBlockX(t.pos),u=y.minBlockZ(t.pos),c=this.getNoiseChunk(t);c.initializeForFirstCellX();for(let i=0;i=0;d-=1){c.selectCellYZ(d,s);for(let l=r-1;l>=0;l-=1){const f=(a+d)*r+l,g=15&f,p=t.getSectionIndex(f);t.getSectionIndex(o.minBlockY)!==p&&(o=t.getOrCreateSection(p));const m=l/r;c.updateForY(m);for(let t=0;te))}getNoiseChunk(t){return M(this.noiseChunkCache,y.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),s=Ot.cellWidth(this.settings.noise),n=Ot.cellHeight(this.settings.noise),r=Math.floor(16/s),o=Math.floor(e/n),a=Math.floor((i-e)/n),l=y.minBlockX(t.pos),h=y.minBlockZ(t.pos);return new Kt(r,a,o,this.sampler,l,h,(()=>0),this.settings)}))}}!function(t){t.fromJson=function(t){var e,i,s,n,r,o,a,l,h,u,c;const d=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{structures:Xt.fromJson(d.structures),surfaceRule:zt.fromJson(d.surface_rule),noise:Ot.fromJson(d.noise),defaultBlock:x.fromJson(d.default_block),defaultFluid:x.fromJson(d.default_fluid),bedrockRoofPosition:null!==(i=_.readInt(d.bedrock_roof_position))&&void 0!==i?i:0,bedrockFloorPosition:null!==(s=_.readInt(d.bedrock_floor_position))&&void 0!==s?s:0,seaLevel:null!==(n=_.readInt(d.sea_level))&&void 0!==n?n:0,disableMobGeneration:null!==(r=_.readBoolean(d.disable_mob_generation))&&void 0!==r&&r,aquifersEnabled:null!==(o=_.readBoolean(d.aquifers_enabled))&&void 0!==o&&o,noiseCavesEnabled:null!==(a=_.readBoolean(d.noise_caves_enabled))&&void 0!==a&&a,deepslateEnabled:null!==(l=_.readBoolean(d.deepslate_enabled))&&void 0!==l&&l,oreVeinsEnabled:null!==(h=_.readBoolean(d.ore_veins_enabled))&&void 0!==h&&h,noodleCavesEnabled:null!==(u=_.readBoolean(d.noodle_caves_enabled))&&void 0!==u&&u,legacyRandomSource:null!==(c=_.readBoolean(d.legacy_random_source))&&void 0!==c&&c}}}(Jt||(Jt={})),function(t){t.fromJson=function(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{stronghold:_.compose(i.stronghold,_.readObject,(t=>{var e,i,s;return{distance:null!==(e=_.readInt(t.distance))&&void 0!==e?e:0,spread:null!==(i=_.readInt(t.spread))&&void 0!==i?i:0,count:null!==(s=_.readInt(t.count))&&void 0!==s?s:0}})),structures:_.readMap(i.structures,(t=>{var e;return(t=>{var e,i,s;return{spacing:null!==(e=_.readInt(t.spacing))&&void 0!==e?e:0,separation:null!==(i=_.readInt(t.separation))&&void 0!==i?i:0,salt:null!==(s=_.readInt(t.salt))&&void 0!==s?s:0}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})}))}}}(Xt||(Xt={}));export{st as BlendedNoise,vt as BlockColors,It as BlockDefinition,_t as BlockModel,a as BlockPos,x as BlockState,C as Chunk,y as ChunkPos,T as ChunkSection,Dt as Climate,ot as ConstantProvider,r as Direction,Zt as FixedBiome,Gt as FlatNoiseData,et as ImprovedNoise,_ as Json,$ as LegacyPositionalRandom,q as LegacyRandom,Mt as MaterialRule,Wt as MultiNoise,u as NbtReader,c as NbtWriter,Kt as NoiseChunk,ie as NoiseChunkGenerator,Jt as NoiseGeneratorSettings,$t as NoiseInterpolator,R as NoiseParameters,Qt as NoiseSampler,P as NoiseSamplingSettings,Ot as NoiseSettings,Lt as NoiseSlideSettings,Yt as Noises,nt as NormalNoise,B as NumberProvider,it as PerlinNoise,rt as PerlinSimplexNoise,tt as SimplexNoise,at as Spline,k as Structure,Tt as StructureRenderer,Xt as StructureSettings,jt as SurfaceCondition,ee as SurfaceContext,zt as SurfaceRule,te as SurfaceSystem,Ut as TerrainInfo,qt as TerrainShaper,kt as TextureAtlas,Ht as VerticalAnchor,Vt as WorldgenContext,Q as XoroshiroPositionalRandom,K as XoroshiroRandom,X as binarySearch,L as clamp,H as clampedLerp,J as clampedMap,M as computeIfAbsent,N as getListTag,F as getOptional,Z as getSeed,A as getTag,V as inverseLerp,D as lazy,U as lerp,Y as lerp2,G as lerp3,W as longfromBytes,j as map,g as read,m as readChunk,f as readCompressed,p as readRegion,d as readUncompressed,z as smoothstep,O as square,h as tagNames,l as tagTypes,S as write,I as writeChunk,b as writeCompressed,E as writeRegion,v as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n"],"names":["t","i.create","i.transformMat4","s.create","s.identity","s.translate","s.rotateY","n.toRadian","s.rotateX","s.scale","i.fromValues","s.rotate","i.negate","s.perspective","i.subtract","i.cross","i.normalize","i.equals","s.copy"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"deepslate.esm.662720d7.js","sources":["../../node_modules/deepslate-1.18/dist/deepslate.esm.js"],"sourcesContent":["import t from\"pako\";import e from\"md5\";import{vec3 as i,mat4 as s,glMatrix as n}from\"gl-matrix\";var r;!function(t){t.UP=\"up\",t.DOWN=\"down\",t.NORTH=\"north\",t.EAST=\"east\",t.SOUTH=\"south\",t.WEST=\"west\"}(r||(r={}));const o={[r.UP]:[0,1,0],[r.DOWN]:[0,-1,0],[r.NORTH]:[0,0,-1],[r.EAST]:[1,0,0],[r.SOUTH]:[0,0,1],[r.WEST]:[-1,0,0]};var a;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return o[t]}}(r||(r={})),function(t){t.create=function(t,e,i){return[t,e,i]},t.offset=function(t,e,i,s){return[t[0]+e,t[1]+i,t[2]+s]},t.towards=function(e,i){return t.offset(e,...r.normal(i))}}(a||(a={}));const l={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},h=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class u{constructor(t,e=!1){this.byte=this.readNum.bind(this,\"getInt8\",1),this.short=this.readNum.bind(this,\"getInt16\",2),this.int=this.readNum.bind(this,\"getInt32\",4),this.float=this.readNum.bind(this,\"getFloat32\",4),this.double=this.readNum.bind(this,\"getFloat64\",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const i=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,i}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let i=0;i=e)return;let i=this.buffer.byteLength;for(;ithis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=s,this.dataView=new DataView(s),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,i){this.accommodate(e),this.dataView[t](this.offset,i,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e>6),s.push(128|63&i)):i<65536?(s.push(224|i>>12),s.push(128|i>>6&63),s.push(128|63&i)):(s.push(240|i>>18&7),s.push(128|i>>12&63),s.push(128|i>>6&63),s.push(128|63&i));return s}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(l[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),s.setInt16(t+1,65535&n),s.setInt8(t+3,r),s.setInt32(t+4096,e.timestamp);const o=4096*n;s.setInt32(o,e.data.length+1),s.setInt8(o+4,e.compression),i.set(e.data,o+5),n+=r}return i}function I(t,e,i,s){const n=w(t,e,i);switch(n.compression){case 1:n.data=b(s);break;case 2:n.data=b(s,!1,!0);break;case 3:n.data=v(s);break;default:throw new Error(`Invalid compression mode ${n.compression}`)}return n}function w(t,e,i){const s=t.find((t=>t.x===e&&t.z===i));if(void 0===s)throw new Error(`Cannot find chunk [${e}, ${i}]`);return s}function A(t,e,i){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==i)throw new Error(`Expected ${e} to be of type ${i}, but found ${t[e].type}`);return t[e].value}function N(t,e,i,s){const n=A(t,e,\"list\");if(n.type!==i)throw new Error(`Expected ${e} to be a list of ${i}s, but found ${n.type}s`);if(s&&n.value.length!==s)throw new Error(`Expected ${e} to be a list of length ${s}, but found length ${n.value.length}`);return n.value}function F(t,e){try{return t()}catch(t){return e}}var _,y,P,R,B;!function(t){function e(t){return\"object\"==typeof t&&null!==t?t:void 0}t.readNumber=function(t){return\"number\"==typeof t?t:void 0},t.readInt=function(t){return\"number\"==typeof t?Math.floor(t):void 0},t.readString=function(t){return\"string\"==typeof t?t:void 0},t.readBoolean=function(t){return\"boolean\"==typeof t?t:void 0},t.readObject=e,t.readArray=function(t,e){if(Array.isArray(t))return t.map((t=>e(t)))},t.readMap=function(t,i){var s;const n=null!==(s=e(t))&&void 0!==s?s:{};return Object.fromEntries(Object.entries(n).map((([t,e])=>[t,i(e)])))},t.compose=function(t,e,i){const s=e(t);return s?i(s):void 0}}(_||(_={}));class x{constructor(t,e={}){this.name=t,this.properties=e}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return\"minecraft:water\"===this.name||\"minecraft:lava\"===this.name}equals(t){return this.name===t.name&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}toString(){return 0===Object.keys(this.properties).length?this.name:`${this.name}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=A(t.value,\"Name\",\"string\"),i=F((()=>A(t.value,\"Properties\",\"compound\")),{}),s=Object.keys(i).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:A(i,e,\"string\")})),{});return new x(e,s)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.Name))&&void 0!==i?i:\"minecraft:stone\",r=_.readMap(s.Properties,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"}));return new x(n,r)}}x.AIR=new x(\"minecraft:air\");class T{constructor(t){this.minY=t,this.storage=Array(T.SIZE),this.palette=[x.AIR]}get minBlockY(){return this.minY<<4}index(t,e,i){return(t<<8)+(e<<4)+i}getBlockState(t,e,i){var s;const n=this.storage[this.index(t,e,i)];return null!==(s=this.palette[n])&&void 0!==s?s:x.AIR}setBlockState(t,e,i,s){let n=this.palette.findIndex((t=>t.equals(s)));-1===n&&(n=this.palette.length,this.palette.push(s)),this.storage[this.index(t,e,i)]=n}}T.WIDTH=16,T.SIZE=T.WIDTH*T.WIDTH*T.WIDTH;class C{constructor(t,e,i){this.minY=t,this.height=e,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[i,s,n]=t,r=this.sections[this.getSectionIndex(s)];return null!==(e=null==r?void 0:r.getBlockState(15&i,15&s,15&n))&&void 0!==e?e:x.AIR}setBlockState(t,e){const[i,s,n]=t,r=this.getSectionIndex(s);let o=this.sections[r];if(null===o){if(e.equals(x.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&i,15&s,15&n,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new T(this.minSection+t)),this.sections[t]}}!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(y||(y={}));class k{constructor(t,e=[],i=[]){this.size=t,this.palette=e,this.blocks=i,this.blocksMap=[],i.forEach((e=>{if(!this.isInside(e.pos))throw new Error(`Found block at ${e.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[e.pos[0]*t[1]*t[2]+e.pos[1]*t[2]+e.pos[2]]=e}))}getSize(){return this.size}addBlock(t,e,i,s){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new x(e,i);let r=this.palette.findIndex((t=>t.equals(n)));return-1===r&&(r=this.palette.length,this.palette.push(n)),this.blocks.push({pos:t,state:r,nbt:s}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:s},this}getBlocks(){return this.blocks.map((t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt})))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];if(!e)return null;return{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}}isInside(t){return t[0]>=0&&t[0]=0&&t[1]=0&&t[2]x.fromNbt({name:\"\",value:t}))),s=N(t.value,\"blocks\",\"compound\").map((t=>({pos:N(t,\"pos\",\"int\",3),state:A(t,\"state\",\"int\"),nbt:F((()=>A(t,\"nbt\",\"compound\")),void 0)})));return new k(e,i,s)}}function D(t){let e=null;return()=>(null==e&&(e=t()),e)}function M(t,e,i){const s=t.get(e);if(s)return s;const n=i(e);return t.set(e,n),n}function O(t){return t*t}function L(t,e,i){return Math.max(e,Math.min(i,t))}function U(t,e,i){return e+t*(i-e)}function Y(t,e,i,s,n,r){return U(e,U(t,i,s),U(t,n,r))}function G(t,e,i,s,n,r,o,a,l,h,u){return U(i,Y(t,e,s,n,r,o),Y(t,e,a,l,h,u))}function H(t,e,i){return i<0?t:i>1?e:U(i,t,e)}function V(t,e,i){return(t-e)/(i-e)}function z(t){return t*t*t*(t*(6*t-15)+10)}function j(t,e,i,s,n){return U(V(t,e,i),s,n)}function J(t,e,i,s,n){return H(s,n,V(t,e,i))}function X(t,e,i){let s=e-t;for(;s>0;){const e=Math.floor(s/2),n=t+e;i(n)?s=e:(t=n+1,s-=e+1)}return t}function Z(t,e,i){let s=BigInt(3129871*t)^BigInt(i)*BigInt(116129781)^BigInt(e);return s=s*s*BigInt(42317861)+s*BigInt(11),s>>BigInt(16)}function W(t,e,i,s,n,r,o,a){return BigInt(t)<>BigInt(q.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(void 0===t)return this.next(32);if(0==(t&t-1))return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,i;for(;(e=this.next(31))-(i=e%t)+(t-1)<0;);return i}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt(\"-4658895280553007687\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(27))*BigInt(\"-7723592293110705685\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(31))&BigInt(\"0xFFFFFFFFFFFFFFFF\")}static upgradeSeedTo128bit(t){t<0&&(t+=BigInt(\"0x10000000000000000\"));const e=t^K.SILVER_RATIO_64,i=e+K.GOLDEN_RATIO_64&BigInt(\"0xFFFFFFFFFFFFFFFF\");return[K.mixStafford13(e),K.mixStafford13(i)]}static rotateLeft(t,e){return t<>BigInt(64)-e}setSeed(t){this.seed=K.upgradeSeedTo128bit(t)}fork(){return new K([this.next(),this.next()])}forkPositional(){return new Q(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const i=K.rotateLeft(t+e&BigInt(\"0xFFFFFFFFFFFFFFFF\"),BigInt(17))+t&BigInt(\"0xFFFFFFFFFFFFFFFF\");return e^=t,this.seed=[K.rotateLeft(t,BigInt(49))^e^e<BigInt(\"0x8000000000000000\")&&(t-=BigInt(\"0x10000000000000000\")),t}consume(t){let e=this.seed[0],i=this.seed[1];for(let s=0;s>BigInt(64-t)}nextInt(t){let e=this.next()&BigInt(4294967295);if(t){const i=BigInt(t);let s=e*i,n=s&BigInt(4294967295);if(n>BigInt(32);return Number(r)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*K.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*K.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}}K.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),K.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),K.FLOAT_MULTIPLIER=1/Math.pow(2,24),K.DOUBLE_MULTIPLIER=11102230246251565e-32;class Q{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,i){const s=Z(t,e,i)^this.seedLo;return new K([s,this.seedHi])}fromHashOf(t){const i=e(t,{asBytes:!0}),s=W(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]),n=W(i[8],i[9],i[10],i[11],i[12],i[13],i[14],i[15]);return new K([s^this.seedLo,n^this.seedHi])}}class tt{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample2D(t,e){let i,s,n;const r=(t+e)*tt.F2,o=Math.floor(t+r),a=t-(o-(i=(o+(s=Math.floor(e+r)))*tt.G2));let l,h;a>(n=e-(s-i))?(l=1,h=0):(l=0,h=1);const u=a-l+tt.G2,c=n-h+tt.G2,d=a-1+2*tt.G2,f=n-1+2*tt.G2,g=255&o,p=255&s,m=this.P(g+this.P(p))%12,v=this.P(g+l+this.P(p+h))%12,b=this.P(g+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(m,a,n,0,.5)+this.getCornerNoise3D(v,u,c,0,.5)+this.getCornerNoise3D(b,d,f,0,.5))}sample(t,e,i){const s=.3333333333333333*(t+e+i),n=Math.floor(t+s),r=Math.floor(e+s),o=Math.floor(i+s),a=.16666666666666666*(n+r+o),l=t-(n-a),h=e-(r-a),u=i-(o-a);let c,d,f,g,p,m;l>=h?h>=u?(c=1,d=0,f=0,g=1,p=1,m=0):l>=u?(c=1,d=0,f=0,g=1,p=0,m=1):(c=0,d=0,f=1,g=1,p=0,m=1):h127?t-256:t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample(t,e,i,s=0,n=0){const r=t+this.xo,o=e+this.yo,a=i+this.zo,l=Math.floor(r),h=Math.floor(o),u=Math.floor(a),c=r-l,d=o-h,f=a-u;let g=0;if(0!==s){const t=n>=0&&n=0;s-=1)s0&&(s=this.maxLimitNoise.getOctaveNoise(l))&&(a+=s.sample(c,d,f,u,e*u)/r),r/=2}return H(o/512,a/512,n)/128}}!function(t){t.fromJson=function(t){var e,i,s,n,r;const o=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{xzScale:null!==(i=_.readNumber(o.xz_scale))&&void 0!==i?i:1,yScale:null!==(s=_.readNumber(o.y_scale))&&void 0!==s?s:1,xzFactor:null!==(n=_.readNumber(o.xz_factor))&&void 0!==n?n:80,yFactor:null!==(r=_.readNumber(o.y_factor))&&void 0!==r?r:80}}}(P||(P={}));class nt{constructor(t,{firstOctave:e,amplitudes:i}){this.first=new it(t,e,i),this.second=new it(t,e,i);let s=1/0,n=-1/0;for(let t=0;t{var e;return null!==(e=_.readNumber(t))&&void 0!==e?e:0})))&&void 0!==s?s:[]}}}(R||(R={}));class rt{constructor(t,e){const i=e[e.length-1],s=-e[0]+i+1,n=new Set(e),r=new tt(t);this.noiseLevels=Array(s),i>=0&&i=0&&n.has(i-e)?this.noiseLevels[e]=new tt(t):t.consume(262);if(i>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,i),this.highestFreqValueFactor=1/(Math.pow(2,s)-1)}sample(t,e,i){let s=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o{var e;return null!==(e=_.readObject(t))&&void 0!==e?e:{}})))&&void 0!==n?n:[];if(0===h.length)return new ot(0);for(const e of h){const s=null!==(r=_.readNumber(e.location))&&void 0!==r?r:0,n=t.fromJson(e.value,i),a=null!==(o=_.readNumber(e.derivative))&&void 0!==o?o:0;l.addPoint(s,n,a)}return l}}(B||(B={}));class ot{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class at{constructor(t,e=[],i=[],s=[]){this.coordinate=t,this.locations=e,this.values=i,this.derivatives=s}apply(t){const e=this.coordinate.apply(t),i=X(0,this.locations.length,(t=>e({location:t,value:this.values[e].toJson(),derivative:this.derivatives[e]})))}}}const lt=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],ht=[124/256,189/256,107/256],ut=lt(6396257),ct=lt(8431445),dt=lt(4764952),ft=lt(4159204),gt=lt(8431445),pt=lt(2129968),mt=t=>[t/8,1-t/32,64*t],vt={large_fern:()=>ht,tall_grass:()=>ht,grass_block:()=>ht,fern:()=>ht,grass:()=>ht,potted_fern:()=>ht,spruce_leaves:()=>ut,birch_leaves:()=>ct,oak_leaves:()=>dt,jungle_leaves:()=>dt,acacia_leaves:()=>dt,dark_oak_leaves:()=>dt,vine:()=>dt,water:()=>ft,bubble_column:()=>ft,cauldron:()=>ft,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),L(e*e*.7-.5,0,1),L(e*e*.6-.7,0,1)]})(parseInt(null!==(e=t.power)&&void 0!==e?e:\"0\"))},sugar_cane:()=>ht,attached_melon_stem:()=>gt,attached_pumpkin_stem:()=>gt,melon_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},pumpkin_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},lily_pad:()=>pt};var bt;function St(...t){let e=0;for(const i of t)e+=i.length;const i=new Float32Array(e);let s=0;for(const e of t)i.set(e,s),s+=e.length;return i}function Et(t,e){const s=i.create();for(let n=0;nthis.matchesVariant(e,t)));if(0===e.length)return[];const i=this.variants[e[0]];return[Array.isArray(i)?i[0]:i]}if(this.multipart){return this.multipart.filter((e=>!e.when||this.matchesCase(e.when,t))).map((t=>Array.isArray(t.apply)?t.apply[0]:t.apply))}return[]}getBuffers(t,e,i,r,o,a){var l,h,u,c;const d=this.getModelVariants(e),f=[],g=[],p=[],m=[];for(const v of d){const d=bt.rotate(a,null!==(l=v.x)&&void 0!==l?l:0,null!==(h=v.y)&&void 0!==h?h:0),b=r.getBlockModel(v.model).getBuffers(t,e,i,o,d);if(v.x||v.y){const t=s.create();s.identity(t),s.translate(t,t,[8,8,8]),s.rotateY(t,t,-n.toRadian(null!==(u=v.y)&&void 0!==u?u:0)),s.rotateX(t,t,-n.toRadian(null!==(c=v.x)&&void 0!==c?c:0)),s.translate(t,t,[-8,-8,-8]),Et(b.position,t)}f.push(b.position),g.push(...b.texCoord),p.push(...b.tintColor),m.push(...b.index),o+=b.texCoord.length/2}const v=s.create();s.identity(v),s.scale(v,v,[.0625,.0625,.0625]);const b=St(...f);return Et(b,v),{position:b,texCoord:g,tintColor:p,index:m}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[i,s]=t.split(\"=\");return e[i]===s}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const i=t;return Object.keys(i).every((t=>i[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new It(t,e.variants,e.multipart)}}const wt={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},At={x:[1,0,0],y:[0,1,0],z:[0,0,1]},Nt=1.41421356237,Ft={x:[1,Nt,Nt],y:[Nt,1,Nt],z:[Nt,Nt,1]};class _t{constructor(t,e,i,s){this.id=t,this.parent=e,this.textures=i,this.elements=s,this.flattened=!1}getBuffers(t,e,i,s,n){var r;const o=[],a=[],l=[],h=[];for(const u of null!==(r=this.elements)&&void 0!==r?r:[]){const r=this.getElementBuffers(t,e,u,s,i,n);o.push(r.position),a.push(...r.texCoord),l.push(...r.tintColor),h.push(...r.index),s+=r.texCoord.length/2}return{position:St(...o),texCoord:a,tintColor:l,index:h}}getElementBuffers(t,e,r,o,a,l){var h,u,c,d,f,g,p,m,v,b,S,E;const I=r.from[0],w=r.from[1],A=r.from[2],N=r.to[0],F=r.to[1],_=r.to[2],y=[],P=[],R=[],B=[],x=(i,s,n)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[S,E,I,w]=a.getTextureUV(this.getTexture(i.texture)),A=(I-S)/16,N=(w-E)/16,F=A/16,_=N/16;s[0]=(null!==(l=null===(r=i.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*A+F,s[1]=(null!==(u=null===(h=i.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*N+_,s[2]=(null!==(d=null===(c=i.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*A-F,s[3]=(null!==(g=null===(f=i.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*N-_;const x=wt[null!==(p=i.rotation)&&void 0!==p?p:0];P.push(S+s[x[0]],E+s[x[1]],S+s[x[2]],E+s[x[3]],S+s[x[4]],E+s[x[5]],S+s[x[6]],E+s[x[7]]);const T=(null!==(m=i.tintindex)&&void 0!==m?m:-1)>=0&&null!==(b=null===(v=vt[t.slice(10)])||void 0===v?void 0:v.call(vt,e))&&void 0!==b?b:[1,1,1];R.push(...T,...T,...T,...T),y.push(...n),B.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null===(u=null===(h=r.faces)||void 0===h?void 0:h.up)||void 0===u?void 0:u.texture)||r.faces.up.cullface&&l[r.faces.up.cullface]||x(r.faces.up,[I,16-_,N,16-A],[I,F,_,N,F,_,N,F,A,I,F,A]),!(null===(d=null===(c=r.faces)||void 0===c?void 0:c.down)||void 0===d?void 0:d.texture)||r.faces.down.cullface&&l[r.faces.down.cullface]||x(r.faces.down,[16-_,16-N,16-A,16-I],[I,w,A,N,w,A,N,w,_,I,w,_]),!(null===(g=null===(f=r.faces)||void 0===f?void 0:f.south)||void 0===g?void 0:g.texture)||r.faces.south.cullface&&l[r.faces.south.cullface]||x(r.faces.south,[I,16-F,N,16-w],[I,w,_,N,w,_,N,F,_,I,F,_]),!(null===(m=null===(p=r.faces)||void 0===p?void 0:p.north)||void 0===m?void 0:m.texture)||r.faces.north.cullface&&l[r.faces.north.cullface]||x(r.faces.north,[16-N,16-F,16-I,16-w],[N,w,A,I,w,A,I,F,A,N,F,A]),!(null===(b=null===(v=r.faces)||void 0===v?void 0:v.east)||void 0===b?void 0:b.texture)||r.faces.east.cullface&&l[r.faces.east.cullface]||x(r.faces.east,[16-_,16-F,16-A,16-w],[N,w,_,N,w,A,N,F,A,N,F,_]),!(null===(E=null===(S=r.faces)||void 0===S?void 0:S.west)||void 0===E?void 0:E.texture)||r.faces.west.cullface&&l[r.faces.west.cullface]||x(r.faces.west,[A,16-F,_,16-w],[I,w,A,I,w,_,I,F,_,I,F,A]);const T=s.create();if(s.identity(T),r.rotation){const t=i.fromValues(...r.rotation.origin);s.translate(T,T,t),s.rotate(T,T,n.toRadian(r.rotation.angle),At[r.rotation.axis]),r.rotation.rescale&&s.scale(T,T,Ft[r.rotation.axis]),i.negate(t,t),s.translate(T,T,t)}const C=new Float32Array(y);return Et(C,T),{position:C,texCoord:P,tintColor:R,index:B}}getTexture(t){for(var e,i;t.startsWith(\"#\");)t=null!==(i=null===(e=this.textures)||void 0===e?void 0:e[t.slice(1)])&&void 0!==i?i:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const i=t.getBlockModel(this.parent);if(!i)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);i.flatten(t),this.elements||(this.elements=i.elements),this.textures||(this.textures={}),Object.keys(null!==(e=i.textures)&&void 0!==e?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=i.textures[t])})),this.flattened=!0}}static fromJson(t,e){let i=e.parent;return i&&!i.startsWith(\"minecraft:\")&&(i=\"minecraft:\"+i),new _t(t,i,e.textures,e.elements)}}class yt{constructor(t,e,i){this.gl=t,this.program=this.initShaderProgram(e,i)}getProgram(){return this.program}initShaderProgram(t,e){const i=this.loadShader(this.gl.VERTEX_SHADER,t),s=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,i),this.gl.attachShader(n,s),this.gl.linkProgram(n),!this.gl.getProgramParameter(n,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(n)}`);return n}loadShader(t,e){const i=this.gl.createShader(t);if(this.gl.shaderSource(i,e),this.gl.compileShader(i),!this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(i)}`);throw this.gl.deleteShader(i),e}return i}}function Pt(t,e,i,s,n){const r=new It(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>n};return n.flatten(o),r.getBuffers(t,{},e,o,i,s)}function Rt(t,e,i,s,n,o){const a=n.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][i];return Pt(`minecraft:${t}`,s,e,n,new _t(\"\",\"\",{still:`minecraft:block/${t}_still`,flow:`minecraft:block/${t}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:\"#still\",tintindex:o,cullface:r.UP},down:{texture:\"#still\",tintindex:o,cullface:r.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:r.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:r.EAST},south:{texture:\"#flow\",tintindex:o,cullface:r.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:r.WEST}}}]))}const Bt={\"minecraft:water\":(t,e,i,s)=>Rt(\"water\",t,parseInt(e.level),i,s,0),\"minecraft:lava\":(t,e,i,s)=>Rt(\"lava\",t,parseInt(e.level),i,s),\"minecraft:chest\":(t,e,i)=>function(t,e,i,s){return Pt(\"minecraft:chest\",s,t,{},new _t(\"\",\"\",{0:\"minecraft:block/chest\"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:\"#0\"},down:{texture:\"#0\"},north:{texture:\"#0\"},east:{texture:\"#0\"},south:{texture:\"#0\"},west:{texture:\"#0\"}}}]))}(t,e.facing,e.type,i)},xt=new Set(Object.keys(Bt));class Tt{constructor(t,e,i,s){var n,r;this.gl=t,this.structure=e,this.resources=i,this.chunks=[],(null==s?void 0:s.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!==(n=null==s?void 0:s.chunkSize)&&void 0!==n?n:16,this.useInvisibleBlockBuffer=null===(r=null==s?void 0:s.useInvisibleBlockBuffer)||void 0===r||r,this.shaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec2 texCoord;\\n attribute vec3 tintColor;\\n attribute vec3 normal;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vTexCoord = texCoord;\\n vTintColor = tintColor;\\n vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n uniform sampler2D sampler;\\n\\n void main(void) {\\n vec4 texColor = texture2D(sampler, vTexCoord);\\n if(texColor.a < 0.01) discard;\\n gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\\n }\\n\").getProgram(),this.gridShaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 vertColor;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = vertColor;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.colorShaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 blockPos;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = blockPos / 256.0;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(t){this.structure=t,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),t}getPerspective(){const t=70*Math.PI/180,e=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,i=s.create();return s.perspective(i,t,e,.1,500),i}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),i=2*Math.abs(t[1])+(t[1]<0?1:0),s=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][i]||(this.chunks[e][i]=[]),this.chunks[e][i][s]||(this.chunks[e][i][s]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][i][s]}updateStructureBuffers(t){var e;const n=(t,e,n)=>{const r=s.create();s.translate(r,r,e),Et(t.position,r),n.positions.push(t.position),n.textureCoordinates.push(...t.texCoord),n.tintColors.push(...t.tintColor);for(let e=0;e{t.positions=[],t.textureCoordinates=[],t.tintColors=[],t.blockPositions=[],t.normals=[],t.indices=[],t.indexOffset=0},a=t=>{t.buffer?(this.updateBuffer(t.buffer.position,this.gl.ARRAY_BUFFER,St(...t.positions)),this.updateBuffer(t.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),this.updateBuffer(t.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),this.updateBuffer(t.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),this.updateBuffer(t.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),this.updateBuffer(t.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),t.buffer.length=t.indices.length):t.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,St(...t.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),length:t.indices.length}};let l;t?t.forEach((t=>{const e=this.getChunk(t);o(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{o(t)}))))));for(const s of this.structure.getBlocks()){const o=s.state.getName(),a=s.state.getProperties(),h=null!==(e=this.resources.getDefaultBlockProperties(o))&&void 0!==e?e:{};Object.entries(h).forEach((([t,e])=>{a[t]||(a[t]=e)}));const u=[Math.floor(s.pos[0]/this.chunkSize),Math.floor(s.pos[1]/this.chunkSize),Math.floor(s.pos[2]/this.chunkSize)];if(t&&!t.some((t=>i.equals(t,u))))continue;const c=this.getChunk(u);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(s,r.UP),down:this.needsCull(s,r.DOWN),west:this.needsCull(s,r.WEST),east:this.needsCull(s,r.EAST),north:this.needsCull(s,r.NORTH),south:this.needsCull(s,r.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),n(l,s.pos,c)),xt.has(o)&&(l=Bt[o](c.indexOffset,a,this.resources,e),n(l,s.pos,c))}catch(t){console.error(`Error rendering block ${o}`,t)}}t?t.forEach((t=>{const e=this.getChunk(t);a(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{a(t)}))))))}needsCull(t,e){var i,s;const n=null===(i=this.structure.getBlock(a.towards(t.pos,e)))||void 0===i?void 0:i.state;return!!n&&((null===(s=this.resources.getBlockFlags(n.getName()))||void 0===s?void 0:s.opaque)?!(e===r.UP&&t.state.isFluid()):t.state.isFluid()&&n.isFluid())}getGridBuffers(){const[t,e,i]=this.structure.getSize(),s=[],n=[];s.push(0,0,0,t,0,0),n.push(1,0,0,1,0,0),s.push(0,0,0,0,0,i),n.push(0,0,1,0,0,1),s.push(0,0,0,0,e,0),s.push(t,0,0,t,e,0),s.push(0,0,i,0,e,i),s.push(t,0,i,t,e,i),s.push(0,e,0,0,e,i),s.push(t,e,0,t,e,i),s.push(0,e,0,t,e,0),s.push(0,e,i,t,e,i);for(let e=1;e<=t;e+=1)s.push(e,0,0,e,0,i);for(let e=1;e<=i;e+=1)s.push(0,0,e,t,0,e);for(let e=0;e<8+t+i;e+=1)n.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(s)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(n)),length:s.length/3}}getOutlineBuffers(){const t=[],e=[];return this.addCube(t,e,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),length:t.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const t=this.structure.getSize(),e=[],i=[];for(let s=0;s{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"texCoord\",2,t.buffer.texCoord),this.setVertexAttr(\"tintColor\",3,t.buffer.tintColor),this.setVertexAttr(\"normal\",3,t.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawColoredStructure(t){this.setShader(this.colorShaderProgram),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.chunks.forEach((t=>{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"blockPos\",3,t.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawOutline(t,e){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.outlineBuffers.position),this.setVertexAttr(\"vertColor\",3,this.outlineBuffers.color);const i=s.create();s.copy(i,t),s.translate(i,i,e),this.setUniform(\"mView\",i),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,i,s){this.gl.viewport(t,e,i,s),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,i){const s=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,i),this.gl.vertexAttribPointer(s,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(s)}setUniform(t,e){const i=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(i,!1,e)}}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function Ct(t,e,i,s){return new(i||(i=Promise))((function(n,r){function o(t){try{l(s.next(t))}catch(t){r(t)}}function a(t){try{l(s.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?n(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(o,a)}l((s=s.apply(t,e||[])).next())}))}class kt{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return null!==(e=this.idMap[t])&&void 0!==e?e:[0,0,this.part,this.part]}static fromBlobs(t){return Ct(this,void 0,void 0,(function*(){const e=Math.sqrt(Object.keys(t).length+1),i=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),s=16*i,n=1/i,r=document.createElement(\"canvas\");r.width=s,r.height=s;const o=r.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>Ct(this,void 0,void 0,(function*(){const s=l%i,r=Math.floor(l/i);l+=1,a[e]=[n*s,n*r,n*s+n,n*r+n];const h=yield createImageBitmap(t[e]);o.drawImage(h,0,0,16,16,16*s,16*r,16,16)}))))),new kt(o.getImageData(0,0,s,s),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return kt.drawInvalidTexture(e),new kt(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle=\"black\",t.fillRect(0,0,16,16),t.fillStyle=\"magenta\",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}var Dt,Mt,Ot,Lt,Ut,Yt,Gt,Ht,Vt,zt,jt,Jt,Xt;!function(t){function e(t,e){return\"number\"==typeof t?new i(t,null!=e?e:t):t}t.target=function(t,e,i,s,r,o){return new n(t,e,i,s,r,o)},t.parameters=function(t,i,n,r,o,a,l){return new s(e(t),e(i),e(n),e(r),e(o),e(a),l)},t.param=e;class i{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,i=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(i,0)}union(t){return new i(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new i(t,t);const[s,n]=null!==(e=_.readArray(t,(t=>_.readNumber(t))))&&void 0!==e?e:[];return new i(null!=s?s:0,null!=n?n:0)}}t.Param=i;class s{constructor(t,e,i,s,n,r,o){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r,this.offset=o}fittness(t){return O(this.temperature.distance(t.temperature))+O(this.humidity.distance(t.humidity))+O(this.continentalness.distance(t.continentalness))+O(this.erosion.distance(t.erosion))+O(this.depth.distance(t.depth))+O(this.weirdness.distance(t.weirdness))+O(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new i(this.offset,this.offset)]}static fromJson(t){var e,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return new s(i.fromJson(r.temperature),i.fromJson(r.humidity),i.fromJson(r.continentalness),i.fromJson(r.erosion),i.fromJson(r.depth),i.fromJson(r.weirdness),null!==(n=_.readInt(r.offset))&&void 0!==n?n:0)}}t.ParamPoint=s;class n{constructor(t,e,i,s,n,r){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=n;t.Parameters=class{constructor(t){this.things=t,this.index=new r(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};class r{constructor(t){this.root=r.build(t.map((([t,e])=>new l(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=r.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let i=0;i<7;i+=1){const s=t.space[i];e+=Math.abs((s.min+s.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new a(e)}let e=1/0,i=-1,s=[];for(let n=0;n<7;++n){t=r.sort(t,n,!1),s=r.bucketize(t);let o=0;for(const t of s)o+=r.area(t.space);e>o&&(e=o,i=n)}return t=r.sort(t,i,!1),s=r.bucketize(t),s=r.sort(s,i,!0),new a(s.map((t=>r.build(t.children))))}static sort(t,e,i){return t.map((t=>{const s=t.space[e],n=(s.min+s.max)/2;return{key:i?Math.abs(n):n,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let i=[];const s=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const n of t)i.push(n),i.lengthnew i(1/0,-1/0)));for(const i of t)e=[...Array(7)].map(((t,s)=>e[s].union(i.space[s])));return e}search(t,e){let i=1/0,s=null;for(const n of this.children){const r=e(n,t);if(i<=r)continue;const o=n.search(t,e),a=n==o?r:e(o,t);i<=a||(i=a,s=o)}return s}}t.RSubTree=a;class l extends o{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=l}(Dt||(Dt={}));class Zt{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.biome))&&void 0!==i?i:\"minecraft:the_void\";return new Zt(n)}}class Wt{constructor(t){this.parameters=t}getBiome(t,e,i,s){const n=s(t,e,i);return this.parameters.find(n)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=(null!==(i=_.readArray(s.biomes,(t=>{var e;return(t=>{var e;return{biome:null!==(e=_.readString(t.biome))&&void 0!==e?e:\"minecraft:the_void\",parameters:Dt.ParamPoint.fromJson(t.parameters)}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})})))&&void 0!==i?i:[]).map((t=>[t.parameters,()=>t.biome]));return new Wt(new Dt.Parameters(n))}}class qt{constructor(t,e,i){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=i}static extractor(t){return{apply:e=>e[t],toJson:()=>t}}static fromJson(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return new qt(B.fromJson(i.offset,this.EXTRACTOR),B.fromJson(i.factor,this.EXTRACTOR),B.fromJson(i.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(t){return this.offsetSampler.apply(t)+qt.GLOBAL_OFFSET}factor(t){return this.factorSampler.apply(t)}jaggedness(t){return this.jaggednessSampler.apply(t)}static point(t,e,i){return{continents:t,erosion:e,weirdness:i,ridges:this.peaksAndValleys(i)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}static overworld(){const t=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),e=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),i=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),s=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),n=new at(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,t).addPoint(-.15,t).addPoint(-.1,e).addPoint(.25,i).addPoint(1,s),r=new at(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),o=new at(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new qt(n,r,o)}static getErosionFactor(t,e){const i=new at(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,t),s=new at(this.EROSION).addPoint(-.6,i).addPoint(-.5,new at(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new at(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(e){const e=new at(this.WEIRDNESS).addPoint(0,t).addPoint(.1,.625),i=new at(this.RIDGES).addPoint(-.9,t).addPoint(-.69,e);s.addPoint(.35,t).addPoint(.45,i).addPoint(.55,i).addPoint(.62,t)}else{const e=new at(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),n=new at(this.RIDGES).addPoint(.45,i).addPoint(.7,1.56);s.addPoint(.05,n).addPoint(.4,n).addPoint(.45,e).addPoint(.55,e).addPoint(.58,t)}return s}static buildErosionOffsetSpline(t,e,i,s,n,r,o,a){const l=this.buildMountainRidgeSplineWithPoints(U(s,.6,1.5),a),h=this.buildMountainRidgeSplineWithPoints(U(s,.6,1),a),u=this.buildMountainRidgeSplineWithPoints(s,a),c=this.ridgeSpline(t-.15,.5*s,U(.5,.5,.5)*s,.5*s,.6*s,.5),d=this.ridgeSpline(t,n*s,e*s,.5*s,.6*s,.5),f=this.ridgeSpline(t,n,n,e,i,.5),g=this.ridgeSpline(t,n,n,e,i,.5),p=new at(this.RIDGES).addPoint(-1,t).addPoint(-.4,f).addPoint(0,i+.07),m=this.ridgeSpline(-.02,r,r,e,i,0),v=new at(this.EROSION).addPoint(-.85,l).addPoint(-.7,h).addPoint(-.4,u).addPoint(-.35,c).addPoint(-.1,d).addPoint(.2,f);return o&&v.addPoint(.4,g).addPoint(.45,p).addPoint(.55,p).addPoint(.58,g),v.addPoint(.7,m),v}static buildMountainRidgeSplineWithPoints(t,e){const i=new at(this.RIDGES),s=this.mountainContinentalness(-1,t,-.7),n=this.mountainContinentalness(1,t,-.7),r=this.calculateMountainRidgeZeroContinentalnessPoint(t);if(-.650?this.buildWeirdnessJaggednessSpline(e):0).addPoint(1,t>0?this.buildWeirdnessJaggednessSpline(t):0)}static buildWeirdnessJaggednessSpline(t){return new at(qt.WEIRDNESS).addPoint(-.01,.63*t).addPoint(.01,.3*t)}}qt.GLOBAL_OFFSET=-.50375,qt.EXTRACTOR=t=>{var e;const i=null!==(e=_.readString(t))&&void 0!==e?e:\"continents\";return qt.extractor(i)},qt.CONTINENTS=qt.extractor(\"continents\"),qt.EROSION=qt.extractor(\"erosion\"),qt.WEIRDNESS=qt.extractor(\"weirdness\"),qt.RIDGES=qt.extractor(\"ridges\"),function(t){t.fromList=function(t){return(e,i,s,n)=>{for(const r of t){const t=r(e,i,s,n);if(t)return t}return null}}}(Mt||(Mt={})),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,i,s,n,r,o,a,l;const h=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{minY:null!==(i=_.readInt(h.min_y))&&void 0!==i?i:0,height:null!==(s=_.readInt(h.height))&&void 0!==s?s:256,xzSize:null!==(n=_.readInt(h.size_horizontal))&&void 0!==n?n:1,ySize:null!==(r=_.readInt(h.size_vertical))&&void 0!==r?r:1,sampling:P.fromJson(h.sampling),topSlide:Lt.fromJson(h.top_slide),bottomSlide:Lt.fromJson(h.bottom_slide),terrainShaper:qt.fromJson(h.terrain_shaper),islandNoiseOverride:null!==(o=_.readBoolean(h.island_noise_override))&&void 0!==o&&o,isAmplified:null!==(a=_.readBoolean(h.amplified))&&void 0!==a&&a,hasLargeBiomes:null!==(l=_.readBoolean(h.large_biomes))&&void 0!==l&&l}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))}}(Ot||(Ot={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{target:null!==(i=_.readNumber(r.target))&&void 0!==i?i:0,size:null!==(s=_.readInt(r.size))&&void 0!==s?s:0,offset:null!==(n=_.readInt(r.offset))&&void 0!==n?n:0}},t.apply=function(t,e,i){if(t.size<=0)return e;const s=(i-t.offset)/t.size;return H(t.target,e,s)}}(Lt||(Lt={}));class $t{constructor(t,e){this.chunk=t,this.filler=e,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=$t.allocateSlice(t.cellCountY,t.cellCountXZ),this.slice1=$t.allocateSlice(t.cellCountY,t.cellCountXZ)}static allocateSlice(t,e){const i=Array(e+1);for(let s=0;s>2,this.firstNoiseZ=r>>2,this.interpolators=[];const h=t*l>>2;this.noiseData=Array(h+1);for(let t=0;t<=h;t+=1){const e=this.firstNoiseX+t;this.noiseData[t]=Array(h+1);for(let i=0;i<=h;i+=1){const n=this.firstNoiseZ+i;this.noiseData[t][i]=s.noiseData(e,n)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=s.makeBaseNoiseFiller(this,o,a.noodleCavesEnabled)}getNoiseData(t,e){return this.noiseData[t-this.firstNoiseX][e-this.firstNoiseZ]}getPreliminarySurfaceLevel(t,e){return M(this.preliminarySurfaceLevel,y.asLong(t,e),(()=>{const i=t-this.firstNoiseX,s=e-this.firstNoiseZ,n=this.noiseData.length,r=i>=0&&s>=0&&it.initializeForFirstCellX()))}advanceCellX(t){this.interpolators.forEach((e=>e.advanceCellX(t)))}selectCellYZ(t,e){this.interpolators.forEach((i=>i.selectCellYZ(t,e)))}updateForY(t){this.interpolators.forEach((e=>e.updateForY(t)))}updateForX(t){this.interpolators.forEach((e=>e.updateForX(t)))}updateForZ(t){this.interpolators.forEach((e=>e.updateForZ(t)))}swapSlices(){this.interpolators.forEach((t=>t.swapSlices()))}updateNoiseAndGenerateBaseState(t,e,i){return this.baseNoise(t,e,i)}}!function(t){t.create=function(t,e,i){return{offset:t,factor:e,jaggedness:i}}}(Ut||(Ut={})),function(t){const e=new Map;function i(t,i,s){const n=Object.assign({name:`minecraft:${t}`},R.create(i,s));return e.set(t,n),n}t.TEMPERATURE=i(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=i(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=i(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=i(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=i(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=i(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=i(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=i(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=i(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=i(\"offset\",-3,[1,1,1,0]),t.PILLAR=i(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=i(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=i(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=i(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=i(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=i(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=i(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=i(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=i(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=i(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=i(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=i(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=i(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=i(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=i(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=i(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=i(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=i(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=i(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=i(\"noodle_ridge_b\",-7,[1]),t.JAGGED=i(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=i(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=i(\"surface_secondary\",-6,[1,1,0,1]),t.instantiate=function(t,e){return new nt(t.fromHashOf(e.name),e)}}(Yt||(Yt={}));class Qt{constructor(t,e,i,s=!1){this.settings=t,this.isNoiseCavesEnabled=e;const n=t.hasLargeBiomes,r=(s?new q(i):K.create(i)).forkPositional();s?(this.blendedNoise=new st(new q(i),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=new nt(new q(i),R.create(-7,[1,1])),this.humidityNoise=new nt(new q(i+BigInt(1)),R.create(-7,[1,1])),this.offsetNoise=new nt(new q(i+BigInt(5)),R.create(0,[0]))):(this.blendedNoise=new st(r.fromHashOf(\"minecraft:terrain\"),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=Yt.instantiate(r,n?Yt.TEMPERATURE_LARGE:Yt.TEMPERATURE),this.humidityNoise=Yt.instantiate(r,n?Yt.VEGETATION_LARGE:Yt.VEGETATION),this.offsetNoise=Yt.instantiate(r,Yt.SHIFT)),this.continentalnessNoise=Yt.instantiate(r,n?Yt.CONTINENTALNESS_LARGE:Yt.CONTINENTALNESS),this.erosionNoise=Yt.instantiate(r,n?Yt.EROSION_LARGE:Yt.EROSION),this.weirdnessNoise=Yt.instantiate(r,Yt.RIDGE),this.pillarNoise=Yt.instantiate(r,Yt.PILLAR),this.pillarRarenessModulator=Yt.instantiate(r,Yt.PILLAR_RARENESS),this.pillarThicknessModulator=Yt.instantiate(r,Yt.PILLAR_THICKNESS),this.spaghetti2DNoise=Yt.instantiate(r,Yt.SPAGHETTI_2D),this.spaghetti2DElevationModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=Yt.instantiate(r,Yt.SPAGHETTI_3D_1),this.spaghetti3DNoise2=Yt.instantiate(r,Yt.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=Yt.instantiate(r,Yt.CAVE_ENTRANCE),this.layerNoise=Yt.instantiate(r,Yt.CAVE_LAYER),this.cheeseNoise=Yt.instantiate(r,Yt.CAVE_CHEESE);const o=t.minY+4,a=o+t.height;this.noodleToggleNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE),o,a,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_THICKNESS),o,a,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_A),o,a,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_B),o,a,0,8/3),this.jaggedNoise=Yt.instantiate(r,Yt.JAGGED),this.shaper=t.terrainShaper,this.baseNoise=t=>t.createNoiseInterpolator(((e,i,s)=>this.calculateBlendedBaseNoise(e,i,s,t.getNoiseData(e>>2,s>>2).terrainInfo)))}yLimitedInterpolatable(t,e,i,s,n){const r=(r,o,a)=>o>i||ot.createNoiseInterpolator(r)}noiseData(t,e){const i=t+this.getOffset(t,0,e),s=e+this.getOffset(e,t,0),n=this.getContinentalness(i,s),r=this.getErosion(i,s),o=this.getWeirdness(i,s),a=this.terrainInfo(n,r,o);return Gt.create(i,s,n,r,o,a)}sample(t,e,i){return this.target(t,e,i,this.noiseData(t,i))}target(t,e,i,s){const n=s.shiftedX,r=e+this.getOffset(e,i,t),o=s.shiftedZ,a=this.getTemperature(n,r,o),l=this.getHumidity(n,r,o),h=this.computeDimensionDensity(e<<2,s.terrainInfo);return Dt.target(a,l,s.continentalness,s.erosion,h,s.weirdness)}terrainInfo(t,e,i){const s=qt.point(t,e,i),n=this.shaper.offset(s),r=this.shaper.factor(s),o=this.shaper.jaggedness(s);return Ut.create(n,r,o)}getOffset(t,e,i){return 4*this.offsetNoise.sample(t,e,i)}getTemperature(t,e,i){return this.temperatureNoise.sample(t,e,i)}getHumidity(t,e,i){return this.humidityNoise.sample(t,e,i)}getContinentalness(t,e){return this.continentalnessNoise.sample(t,0,e)}getErosion(t,e){return this.erosionNoise.sample(t,0,e)}getWeirdness(t,e){return this.weirdnessNoise.sample(t,0,e)}makeBaseNoiseFiller(t,e,i){const s=this.baseNoise(t),n=i?this.noodleToggleNoise(t):()=>-1,r=i?this.noodleThicknessNoise(t):()=>0,o=i?this.noodleRidgeANoise(t):()=>0,a=i?this.noodleRidgeBNoise(t):()=>0;return(t,i,l)=>{let h=s();if(h=L(.64*h,-1,1),h=h/2-h*h*h/24,n()>=0){const t=J(r(),-1,1,.05,.1),e=Math.abs(1.5*o())-t,i=Math.abs(1.5*a())-t;h=Math.min(h,Math.max(e,i))}return h+=e(t,i,l),h>0?null:x.AIR}}calculateBlendedBaseNoise(t,e,i,s){const n=this.blendedNoise.sample(t,e,i);return this.calculateBaseNoise(t,e,i,s,n,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(t,e,i,s,n,r,o){if(!this.settings.islandNoiseOverride){const r=o?this.sampleJaggedNoise(s.jaggedness,t,i):0,a=this.computeDimensionDensity(e,s),l=s.factor*(r+a);n+=l>0?4*l:l}let a=-64,l=64;if(!r&&n>=-64){const s=n-1.5625,r=this.getBigEntrances(t,e,i),o=this.getSpaghettiRoughness(t,e,i),h=this.getSpaghetti3D(t,e,i),u=Math.min(r,h+o);if(s<0)l=u;else{const r=this.getLayerizedCaverns(t,e,i);if(r>64)n=64;else{n=this.getCheese(t,e,i)+r+H(.5,0,1.28*s)}const h=this.getSpaghetti2D(t,e,i);a=this.getPillars(t,e,i),l=Math.min(u,h+o)}}return n=L(n,a,l),n=L(n=this.applySlide(n,e/Ot.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(t,e,i){if(0===t)return 0;const s=this.jaggedNoise.sample(1500*e,0,1500*i);return s>0?t*s:t/2*s}computeDimensionDensity(t,e){return 1-t/128+e.offset}getBigEntrances(t,e,i){return this.bigEntranceNoise.sample(.75*t,.5*e,.75*i)+.37+H(.3,0,(e+10)/40)}getSpaghettiRoughness(t,e,i){const s=this.spaghettiRoughnessNoise.sample(t,e,i),n=j(this.spaghettiRoughnessModulator.sample(t,e,i),-1,1,0,1);return(.4-Math.abs(s))*n}getSpaghetti2D(t,e,i){const s=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti2DThicknessModulator.sample(2*t,e,2*i),-1,1,.6,1.3),r=this.sampleWithRarity(this.spaghetti2DNoise,t,e,i,s),o=Math.abs(s*r)-.083*n,a=Ot.minCellY(this.settings),l=j(this.spaghetti2DElevationModulator.sample(t,0,i),-1,1,a,8),h=Math.abs(l-e/8)-1*n;return L(Math.max(h,o),-1,1)}getSpaghetti3D(t,e,i){const s=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti3DThicknessModulator.sample(t,e,i),-1,1,.065,.088),r=this.sampleWithRarity(this.spaghetti3DNoise1,t,e,i,s),o=Math.abs(s*r)-n,a=this.sampleWithRarity(this.spaghetti3DNoise2,t,e,i,s),l=Math.abs(s*a)-n;return L(Math.max(o,l),-1,1)}quantizeSpaghettiRarity2D(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}quantizeSpaghettiRarity3D(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}sampleWithRarity(t,e,i,s,n){return t.sample(e/n,i/n,s/n)}getLayerizedCaverns(t,e,i){return 4*O(this.layerNoise.sample(t,8*e,i))}getCheese(t,e,i){return L(this.cheeseNoise.sample(t,e/1.5,i)+.27,-1,1)}getPillars(t,e,i){const s=j(this.pillarRarenessModulator.sample(t,e,i),-1,1,0,2),n=j(this.pillarThicknessModulator.sample(t,e,i),-1,1,0,1.1),r=this.pillarNoise.sample(25*t,.3*e,25*i),o=Math.pow(n,3)*(2*r-s);return o<=.03?Number.MIN_SAFE_INTEGER:o}applySlide(t,e){const i=e-Ot.minCellY(this.settings);return t=Lt.apply(this.settings.topSlide,t,Ot.cellCountY(this.settings)-i),t=Lt.apply(this.settings.bottomSlide,t,i)}getPreliminarySurfaceLevel(t,e,i){const s=Ot.minCellY(this.settings)+Ot.cellCountY(this.settings),n=Ot.minCellY(this.settings),r=Ot.cellHeight(this.settings);for(let o=s;o>=n;o-=1){const s=o*r;if(this.calculateBaseNoise(t,s,e,i,-.703125,!0,!1)>=.390625)return s}return Number.MAX_SAFE_INTEGER}}!function(t){t.create=function(t,e,i,s,n,r){return{shiftedX:t,shiftedZ:e,continentalness:i,weirdness:s,erosion:n,terrainInfo:r}}}(Gt||(Gt={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return void 0!==r.absolute?(o=null!==(i=_.readNumber(r.absolute))&&void 0!==i?i:0,()=>o):void 0!==r.above_bottom?function(t){return e=>e.minY+t}(null!==(s=_.readNumber(r.above_bottom))&&void 0!==s?s:0):void 0!==r.below_top?function(t){return e=>e.maxY-t}(null!==(n=_.readNumber(r.below_top))&&void 0!==n?n:0):()=>0;var o}}(Ht||(Ht={})),function(t){t.create=function(t,e){return{minY:t,height:e,maxY:t+e-1}}}(Vt||(Vt={}));class te{constructor(t,e,i){this.rule=t,this.defaultBlock=e,this.random=K.create(i).forkPositional(),this.surfaceNoise=Yt.instantiate(this.random,Yt.SURFACE),this.surfaceSecondaryNoise=Yt.instantiate(this.random,Yt.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,i,s){const n=y.minBlockX(t.pos),r=y.minBlockZ(t.pos),o=new ee(this,t,e,i,s),l=this.rule(o);for(let e=0;e<16;e+=1){const i=n+e;for(let e=0;e<1;e+=1){const s=r+e;o.updateXZ(i,s);let n=0,h=Number.MIN_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const r=a.create(i,e,s),c=t.getBlockState(r);if(c.equals(x.AIR)){n=0,h=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){h===Number.MIN_SAFE_INTEGER&&(h=e+1);continue}if(u>=e){u=Number.MIN_SAFE_INTEGER;for(let n=e-1;n>=t.minY;n-=1){const e=t.getBlockState(a.create(i,n,s));if(e.equals(x.AIR)||e.isFluid()){u=n+1;break}}}n+=1;const d=e-u+1;if(!c.equals(this.defaultBlock))continue;o.updateY(n,d,h,e);const f=l(i,e,s);f&&t.setBlockState(r,f)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return M(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class ee{constructor(t,e,i,s,n){this.system=t,this.chunk=e,this.noiseChunk=i,this.context=s,this.getBiome=n,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=D((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=D((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,i,s){this.blockY=s,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=i,this.biome=D((()=>this.getBiome(a.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const i=t>>4,s=e>>4,n=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s<<4),r=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s+1<<4);return Math.floor(Y((15&t)/16,(15&e)/16,n,r,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function i(t){return e=>{const i=t.map((t=>t(e)));return(t,e,s)=>{for(const n of i){const i=n(t,e,s);if(i)return i}}}}function s(t,e){return i=>(s,n,r)=>{if(t(i))return e(i)(s,n,r)}}t.NOOP=()=>()=>{},t.fromJson=function(n){var r,o,a;const l=null!==(r=_.readObject(n))&&void 0!==r?r:{};switch(null===(o=_.readString(l.type))||void 0===o?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(x.fromJson(l.result_state));case\"sequence\":return i(null!==(a=_.readArray(l.sequence,t.fromJson))&&void 0!==a?a:[]);case\"condition\":return s(jt.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=i,t.condition=s}(zt||(zt={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function i(t){const e=new Set(t);return t=>e.has(t.biome())}function s(t){return e=>!t(e)}function n(t,e,i,s){return n=>{const r=s?n.stoneDepthBelow:n.stoneDepthAbove,o=e?n.surfaceDepth:0,a=0===i?0:j(n.surfaceSecondary(),-1,1,0,i);return r<=1+t+o+a}}function r(t,e,i){return s=>{const n=e(s.context),r=i(s.context);if(s.blockY<=n)return!0;if(s.blockY>=r)return!1;const o=s.system.getRandom(t),a=j(s.blockY,n,r,1,0);return o.nextFloat(){if(s.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const n=i?s.stoneDepthAbove:0;return s.blockY+n>=s.waterHeight+t+s.surfaceDepth*e}}function a(t,e,i){return s=>{const n=i?s.stoneDepthAbove:0;return s.blockY+n>=t(s.context)+s.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,h,u,c,d,f,g,p,m,v,b,S;const E=null!==(l=_.readObject(e))&&void 0!==l?l:{};switch(null===(h=_.readString(E.type))||void 0===h?void 0:h.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return i(null!==(u=_.readArray(E.biome_is,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"})))&&void 0!==u?u:[]);case\"not\":return s(t.fromJson(E.invert));case\"stone_depth\":return n(null!==(c=_.readInt(E.offset))&&void 0!==c?c:0,null!==(d=_.readBoolean(E.add_surface_depth))&&void 0!==d&&d,null!==(f=_.readInt(E.secondary_depth_range))&&void 0!==f?f:0,\"ceiling\"===_.readString(E.surface_type));case\"vertical_gradient\":return r(null!==(g=_.readString(E.random_name))&&void 0!==g?g:\"\",Ht.fromJson(E.true_at_and_below),Ht.fromJson(E.false_at_and_above));case\"water\":return o(null!==(p=_.readInt(E.offset))&&void 0!==p?p:0,null!==(m=_.readInt(E.surface_depth_multiplier))&&void 0!==m?m:0,null!==(v=_.readBoolean(E.add_surface_depth))&&void 0!==v&&v);case\"y_above\":return a(Ht.fromJson(E.anchor),null!==(b=_.readInt(E.surface_depth_multiplier))&&void 0!==b?b:0,null!==(S=_.readBoolean(E.add_surface_depth))&&void 0!==S&&S)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=i,t.not=s,t.stoneDepth=n,t.verticalGradient=r,t.water=o,t.yAbove=a}(jt||(jt={}));class ie{constructor(t,e,i){this.biomeSource=e,this.settings=i,this.sampler=new Qt(i.noise,i.noiseCavesEnabled,t,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=Mt.fromList([(t,e,i,s)=>t.updateNoiseAndGenerateBaseState(e,i,s)]),this.surfaceSystem=new te(i.surfaceRule,i.defaultBlock,t)}fill(t){var e;const i=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),n=Ot.cellWidth(this.settings.noise),r=Ot.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(i/r),l=Math.floor((s-i)/r),h=y.minBlockX(t.pos),u=y.minBlockZ(t.pos),c=this.getNoiseChunk(t);c.initializeForFirstCellX();for(let i=0;i=0;d-=1){c.selectCellYZ(d,s);for(let l=r-1;l>=0;l-=1){const f=(a+d)*r+l,g=15&f,p=t.getSectionIndex(f);t.getSectionIndex(o.minBlockY)!==p&&(o=t.getOrCreateSection(p));const m=l/r;c.updateForY(m);for(let t=0;te))}getNoiseChunk(t){return M(this.noiseChunkCache,y.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),s=Ot.cellWidth(this.settings.noise),n=Ot.cellHeight(this.settings.noise),r=Math.floor(16/s),o=Math.floor(e/n),a=Math.floor((i-e)/n),l=y.minBlockX(t.pos),h=y.minBlockZ(t.pos);return new Kt(r,a,o,this.sampler,l,h,(()=>0),this.settings)}))}}!function(t){t.fromJson=function(t){var e,i,s,n,r,o,a,l,h,u,c;const d=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{structures:Xt.fromJson(d.structures),surfaceRule:zt.fromJson(d.surface_rule),noise:Ot.fromJson(d.noise),defaultBlock:x.fromJson(d.default_block),defaultFluid:x.fromJson(d.default_fluid),bedrockRoofPosition:null!==(i=_.readInt(d.bedrock_roof_position))&&void 0!==i?i:0,bedrockFloorPosition:null!==(s=_.readInt(d.bedrock_floor_position))&&void 0!==s?s:0,seaLevel:null!==(n=_.readInt(d.sea_level))&&void 0!==n?n:0,disableMobGeneration:null!==(r=_.readBoolean(d.disable_mob_generation))&&void 0!==r&&r,aquifersEnabled:null!==(o=_.readBoolean(d.aquifers_enabled))&&void 0!==o&&o,noiseCavesEnabled:null!==(a=_.readBoolean(d.noise_caves_enabled))&&void 0!==a&&a,deepslateEnabled:null!==(l=_.readBoolean(d.deepslate_enabled))&&void 0!==l&&l,oreVeinsEnabled:null!==(h=_.readBoolean(d.ore_veins_enabled))&&void 0!==h&&h,noodleCavesEnabled:null!==(u=_.readBoolean(d.noodle_caves_enabled))&&void 0!==u&&u,legacyRandomSource:null!==(c=_.readBoolean(d.legacy_random_source))&&void 0!==c&&c}}}(Jt||(Jt={})),function(t){t.fromJson=function(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{stronghold:_.compose(i.stronghold,_.readObject,(t=>{var e,i,s;return{distance:null!==(e=_.readInt(t.distance))&&void 0!==e?e:0,spread:null!==(i=_.readInt(t.spread))&&void 0!==i?i:0,count:null!==(s=_.readInt(t.count))&&void 0!==s?s:0}})),structures:_.readMap(i.structures,(t=>{var e;return(t=>{var e,i,s;return{spacing:null!==(e=_.readInt(t.spacing))&&void 0!==e?e:0,separation:null!==(i=_.readInt(t.separation))&&void 0!==i?i:0,salt:null!==(s=_.readInt(t.salt))&&void 0!==s?s:0}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})}))}}}(Xt||(Xt={}));export{st as BlendedNoise,vt as BlockColors,It as BlockDefinition,_t as BlockModel,a as BlockPos,x as BlockState,C as Chunk,y as ChunkPos,T as ChunkSection,Dt as Climate,ot as ConstantProvider,r as Direction,Zt as FixedBiome,Gt as FlatNoiseData,et as ImprovedNoise,_ as Json,$ as LegacyPositionalRandom,q as LegacyRandom,Mt as MaterialRule,Wt as MultiNoise,u as NbtReader,c as NbtWriter,Kt as NoiseChunk,ie as NoiseChunkGenerator,Jt as NoiseGeneratorSettings,$t as NoiseInterpolator,R as NoiseParameters,Qt as NoiseSampler,P as NoiseSamplingSettings,Ot as NoiseSettings,Lt as NoiseSlideSettings,Yt as Noises,nt as NormalNoise,B as NumberProvider,it as PerlinNoise,rt as PerlinSimplexNoise,tt as SimplexNoise,at as Spline,k as Structure,Tt as StructureRenderer,Xt as StructureSettings,jt as SurfaceCondition,ee as SurfaceContext,zt as SurfaceRule,te as SurfaceSystem,Ut as TerrainInfo,qt as TerrainShaper,kt as TextureAtlas,Ht as VerticalAnchor,Vt as WorldgenContext,Q as XoroshiroPositionalRandom,K as XoroshiroRandom,X as binarySearch,L as clamp,H as clampedLerp,J as clampedMap,M as computeIfAbsent,N as getListTag,F as getOptional,Z as getSeed,A as getTag,V as inverseLerp,D as lazy,U as lerp,Y as lerp2,G as lerp3,W as longfromBytes,j as map,g as read,m as readChunk,f as readCompressed,p as readRegion,d as readUncompressed,z as smoothstep,O as square,h as tagNames,l as tagTypes,S as write,I as writeChunk,b as writeCompressed,E as writeRegion,v as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n"],"names":["t","i.create","i.transformMat4","s.create","s.identity","s.translate","s.rotateY","n.toRadian","s.rotateX","s.scale","i.fromValues","s.rotate","i.negate","s.perspective","i.subtract","i.cross","i.normalize","i.equals","s.copy"],"mappings":"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"} \ No newline at end of file diff --git a/assets/deepslate.esm.e3d0e818.js b/assets/deepslate.esm.7bd59038.js similarity index 99% rename from assets/deepslate.esm.e3d0e818.js rename to assets/deepslate.esm.7bd59038.js index 6aab3d17..72364fd0 100644 --- a/assets/deepslate.esm.e3d0e818.js +++ b/assets/deepslate.esm.7bd59038.js @@ -1,4 +1,4 @@ -import{p as jt,c as Re,i as ft,t as Ce,r as ls,a as us,s as Zt,f as Ze,b as hs,d as mt,n as cs,e as fs,g as ms,h as ds,j as ps,k as gs,l as Tt,m as vs,o as ws}from"./vec3.7a0b0b73.js";import{e as qt}from"./index.2a99a61a.js";var F,Ee;(Ee=F||(F={})).UP="up",Ee.DOWN="down",Ee.NORTH="north",Ee.EAST="east",Ee.SOUTH="south",Ee.WEST="west";const bs={[F.UP]:[0,1,0],[F.DOWN]:[0,-1,0],[F.NORTH]:[0,0,-1],[F.EAST]:[1,0,0],[F.SOUTH]:[0,0,1],[F.WEST]:[-1,0,0]};var J,me;(function(s){s.ALL=[s.UP,s.DOWN,s.NORTH,s.EAST,s.SOUTH,s.WEST],s.normal=function(e){return bs[e]}})(F||(F={})),(me=J||(J={})).create=function(s,e,t){return[s,e,t]},me.ZERO=me.create(0,0,0),me.offset=function(s,e,t,i){return[s[0]+e,s[1]+t,s[2]+i]},me.towards=function(s,e){return me.offset(s,...F.normal(e))},me.equals=function(s,e){return s===e||s[0]===e[0]&&s[1]===e[1]&&s[2]===e[2]},me.magnitude=function(s){return s[0]*s[0]+s[1]*s[1]+s[2]*s[2]};const Ve={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},Ct=["end","byte","short","int","long","float","double","byteArray","string","list","compound","intArray","longArray"];class Ss{constructor(e,t=!1){this.byte=this.readNum.bind(this,"getInt8",1),this.short=this.readNum.bind(this,"getInt16",2),this.int=this.readNum.bind(this,"getInt32",4),this.float=this.readNum.bind(this,"getFloat32",4),this.double=this.readNum.bind(this,"getFloat64",8),this.offset=0,this.littleEndian=t,this.arrayView=e,this.dataView=new DataView(e.buffer,e.byteOffset)}end(){return null}readNum(e,t){const i=this.dataView[e](this.offset,this.littleEndian);return this.offset+=t,i}long(){return[this.int(),this.int()]}byteArray(){const e=this.int(),t=[];for(let i=0;i=t)return;let i=this.buffer.byteLength;for(;ithis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=r,this.dataView=new DataView(r),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(e){}writeNum(e,t,i){this.accommodate(t),this.dataView[e](this.offset,i,this.littleEndian),this.offset+=t}long(e){this.int(e[0]),this.int(e[1])}byteArray(e){this.int(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}intArray(e){this.int(e.length);for(let t=0;t>6),a.push(128|63&n)):n<65536?(a.push(224|n>>12),a.push(128|n>>6&63),a.push(128|63&n)):(a.push(240|n>>18&7),a.push(128|n>>12&63),a.push(128|n>>6&63),a.push(128|63&n));return a}(e);this.short(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}list(e){this.byte(Ve[e.type]),this.int(e.value.length),e.value;for(let t=0;t>16),i.setInt16(a+1,65535&r),i.setInt8(a+3,o),i.setInt32(a+4096,n.timestamp);const u=4096*r;i.setInt32(u,n.data.length+1),i.setInt8(u+4,n.compression),t.set(n.data,u+5),r+=o}return t}function ti(s,e,t,i){const r=Jt(s,e,t);switch(r.compression){case 1:r.data=dt(i);break;case 2:r.data=dt(i,!1,!0);break;case 3:r.data=It(i);break;default:throw new Error(`Invalid compression mode ${r.compression}`)}return r}function Jt(s,e,t){const i=s.find(r=>r.x===e&&r.z===t);if(i===void 0)throw new Error(`Cannot find chunk [${e}, ${t}]`);return i}function Be(s,e,t){if(!s[e])throw new Error(`Missing ${e} tag`);if(s[e].type!==t)throw new Error(`Expected ${e} to be of type ${t}, but found ${s[e].type}`);return s[e].value}function He(s,e,t,i){const r=Be(s,e,"list");if(r.type!==t)throw new Error(`Expected ${e} to be a list of ${t}s, but found ${r.type}s`);if(i&&r.value.length!==i)throw new Error(`Expected ${e} to be a list of length ${i}, but found length ${r.value.length}`);return r.value}function $t(s,e){try{return s()}catch{return e}}var v;function qe(s){let e=null;return()=>(e==null&&(e=s()),e)}function nt(s,e,t){const i=s.get(e);if(i)return i;const r=t(e);return s.set(e,r),r}(function(s){function e(t){return typeof t=="object"&&t!==null?t:void 0}s.readNumber=function(t){return typeof t=="number"?t:void 0},s.readInt=function(t){return typeof t=="number"?Math.floor(t):void 0},s.readString=function(t){return typeof t=="string"?t:void 0},s.readBoolean=function(t){return typeof t=="boolean"?t:void 0},s.readObject=e,s.readArray=function(t,i){if(Array.isArray(t))return t.map(r=>i(r))},s.readMap=function(t,i){var r;const n=(r=e(t))!=null?r:{};return Object.fromEntries(Object.entries(n).map(([a,o])=>[a,i(o)]))},s.compose=function(t,i,r){const n=i(t);return n?r(n):void 0},s.readEnum=function(t,i){return typeof t!="string"?i[0]:i.includes(t)?t:i[0]}})(v||(v={}));const We=class{constructor(s,e){if(this.namespace=s,this.path=e,!s.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${s}:${e}`);if(!e.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${s}:${e}`)}equals(s){return this===s||this.namespace===s.namespace&&this.path===s.path}toString(){return`${this.namespace}:${this.path}`}static create(s){return new We(this.DEFAULT_NAMESPACE,s)}static parse(s){const e=s.indexOf(this.SEPARATOR);if(e>=0){const t=e>=1?s.substring(0,e):this.DEFAULT_NAMESPACE,i=s.substring(e+1);return new We(t,i)}return new We(this.DEFAULT_NAMESPACE,s)}};let D=We;D.DEFAULT_NAMESPACE="minecraft",D.SEPARATOR=":";var As=Object.defineProperty,ys=Object.defineProperties,_s=Object.getOwnPropertyDescriptors,Mt=Object.getOwnPropertySymbols,Es=Object.prototype.hasOwnProperty,Is=Object.prototype.propertyIsEnumerable,kt=(s,e,t)=>e in s?As(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;const oe=class{constructor(s,e={}){this.properties=e,this.name=typeof s=="string"?D.parse(s):s}getName(){return this.name}getProperties(){return this.properties}getProperty(s){return this.properties[s]}isFluid(){return this.is(oe.WATER)||this.is(oe.LAVA)}equals(s){return!!this.name.equals(s.name)&&Object.keys(this.properties).every(e=>s.properties[e]===this.properties[e])}is(s){return this.name.equals(s.name)}toString(){return Object.keys(this.properties).length===0?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map(([s,e])=>s+"="+e).join(",")}]`}static fromNbt(s){const e=D.parse(Be(s.value,"Name","string")),t=$t(()=>Be(s.value,"Properties","compound"),{}),i=Object.keys(t).reduce((r,n)=>{return a=((u,f)=>{for(var c in f||(f={}))Es.call(f,c)&&kt(u,c,f[c]);if(Mt)for(var c of Mt(f))Is.call(f,c)&&kt(u,c,f[c]);return u})({},r),o={[n]:Be(t,n,"string")},ys(a,_s(o));var a,o},{});return new oe(e,i)}static fromJson(s){var e,t;const i=(e=v.readObject(s))!=null?e:{},r=D.parse((t=v.readString(i.Name))!=null?t:oe.STONE.name.toString()),n=v.readMap(i.Properties,a=>{var o;return(o=v.readString(a))!=null?o:""});return new oe(r,n)}};let P=oe;P.AIR=new oe(D.create("air")),P.STONE=new oe(D.create("stone")),P.WATER=new oe(D.create("water"),{level:"0"}),P.LAVA=new oe(D.create("lava"),{level:"0"});const Ue=class{constructor(s){this.minY=s,this.storage=Array(Ue.SIZE).fill(0),this.palette=[P.AIR]}get minBlockY(){return this.minY<<4}index(s,e,t){return(s<<8)+(e<<4)+t}getBlockState(s,e,t){var i;const r=this.storage[this.index(s,e,t)];return(i=this.palette[r])!=null?i:P.AIR}setBlockState(s,e,t,i){let r=this.palette.findIndex(n=>n.equals(i));r===-1&&(r=this.palette.length,this.palette.push(i)),this.storage[this.index(s,e,t)]=r}};let pt=Ue;pt.WIDTH=16,pt.SIZE=Ue.WIDTH*Ue.WIDTH*Ue.WIDTH;class si{constructor(e,t,i){this.minY=e,this.height=t,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(e){return(e>>4)-this.minSection}getBlockState(e){var t;const[i,r,n]=e,a=this.sections[this.getSectionIndex(r)];return(t=a==null?void 0:a.getBlockState(15&i,15&r,15&n))!=null?t:P.AIR}setBlockState(e,t){const[i,r,n]=e,a=this.getSectionIndex(r);let o=this.sections[a];if(o===null){if(t.equals(P.AIR))return;o=this.getOrCreateSection(a)}o.setBlockState(15&i,15&r,15&n,t)}getOrCreateSection(e){return this.sections[e]==null&&(this.sections[e]=new pt(this.minSection+e)),this.sections[e]}}var $,Me;(function(s){function e(t,i){return BigInt(4294967295&t)|BigInt(4294967295&i)<>4,t[2]>>4]},s.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},s.toLong=function(t){return e(t[0],t[1])},s.asLong=e,s.minBlockX=function(t){return t[0]<<4},s.minBlockZ=function(t){return t[1]<<4},s.maxBlockX=function(t){return 15+(t[0]<<4)},s.maxBlockZ=function(t){return 15+(t[1]<<4)}})($||($={})),function(s){function e(i){return{value:()=>i,key:()=>{}}}function t(i,r){return{value:()=>i.getOrThrow(r),key:()=>r}}s.parser=function(i,r){return n=>typeof n=="string"?t(i,D.parse(n)):e(r(n))},s.direct=e,s.reference=t}(Me||(Me={}));const Nt=class{constructor(s,e){this.key=s,this.parser=e,this.storage=new Map,this.builtin=new Map}register(s,e,t){return this.storage.set(s.toString(),e),t&&this.builtin.set(s.toString(),e),Me.reference(this,s)}keys(){return[...this.storage.keys()].map(s=>D.parse(s))}get(s){return this.storage.get(s.toString())}getOrThrow(s){const e=this.storage.get(s.toString());if(e===void 0)throw new Error(`Missing key in ${this.key.toString()}: ${s.toString()}`);return e}parse(s){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(s)}clear(){this.storage.clear();for(const[s,e]of this.builtin.entries())this.storage.set(s,e);return this}assign(s){if(!this.key.equals(s.key))throw new Error(`Cannot assign registry of type ${s.key.toString()} to registry of type ${this.key.toString()}`);for(const e of s.keys())this.storage.set(e.toString(),s.getOrThrow(e));return this}cloneEmpty(){return new Nt(this.key,this.parser)}};let gt=Nt;gt.REGISTRY=new Nt(D.create("root"));class Kt{constructor(e,t=[],i=[]){this.size=e,this.palette=t,this.blocks=i,this.blocksMap=[],i.forEach(r=>{if(!this.isInside(r.pos))throw new Error(`Found block at ${r.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[r.pos[0]*e[1]*e[2]+r.pos[1]*e[2]+r.pos[2]]=r})}getSize(){return this.size}addBlock(e,t,i,r){if(!this.isInside(e))throw new Error(`Cannot add block at ${e} outside the structure bounds ${this.size}`);const n=new P(t,i);let a=this.palette.findIndex(o=>o.equals(n));return a===-1&&(a=this.palette.length,this.palette.push(n)),this.blocks.push({pos:e,state:a,nbt:r}),this.blocksMap[e[0]*this.size[1]*this.size[2]+e[1]*this.size[2]+e[2]]={pos:e,state:a,nbt:r},this}getBlocks(){return this.blocks.map(e=>({pos:e.pos,state:this.palette[e.state],nbt:e.nbt}))}getBlock(e){if(!this.isInside(e))return null;const t=this.blocksMap[e[0]*this.size[1]*this.size[2]+e[1]*this.size[2]+e[2]];return t?{pos:t.pos,state:this.palette[t.state],nbt:t.nbt}:null}isInside(e){return e[0]>=0&&e[0]=0&&e[1]=0&&e[2]P.fromNbt({name:"",value:n})),r=He(e.value,"blocks","compound").map(n=>({pos:He(n,"pos","int",3),state:Be(n,"state","int"),nbt:$t(()=>Be(n,"nbt","compound"),void 0)}));return new Kt(t,i,r)}}function de(s){return s*s}function ve(s,e,t){return Math.max(e,Math.min(t,s))}function we(s,e,t){return e+s*(t-e)}function vt(s,e,t,i,r,n){return we(e,we(s,t,i),we(s,r,n))}function Ns(s,e,t,i,r,n,a,o,u,f,c){return we(t,vt(s,e,i,r,n,a),vt(s,e,o,u,f,c))}function Je(s,e,t){return s===0?e():s===1?t():e()+s*(t()-e())}function Ot(s,e,t,i,r,n){return Je(e,()=>Je(s,t,i),()=>Je(s,r,n))}function Rs(s,e,t,i,r,n,a,o,u,f,c){return Je(t,()=>Ot(s,e,i,r,n,a),()=>Ot(s,e,o,u,f,c))}function Rt(s,e,t){return t<0?s:t>1?e:we(t,s,e)}function Qt(s,e,t){return(s-e)/(t-e)}function lt(s){return s*s*s*(s*(6*s-15)+10)}function Qe(s,e,t,i,r){return we(Qt(s,e,t),i,r)}function es(s,e,t,i,r){return Rt(i,r,Qt(s,e,t))}function Bs(s,e,t){let i=e-s;for(;i>0;){const r=Math.floor(i/2),n=s+r;t(n)?i=r:(s=n+1,i-=r+1)}return s}function ts(s,e,t){let i=BigInt(3129871*s)^BigInt(t)*BigInt(116129781)^BigInt(e);return i=i*i*BigInt(42317861)+i*BigInt(11),i>>BigInt(16)}function wt(s,e,t,i,r,n,a,o){return BigInt(s)<{var g;return(g=v.readObject(d))!=null?g:{}}))!=null?o:[];if(m.length===0)return new e(0);for(const d of m){const g=(u=v.readNumber(d.location))!=null?u:0,w=i(d.value,n),S=(f=v.readNumber(d.derivative))!=null?f:0;h.addPoint(g,w,S)}return h};class e{constructor(r){this.value=r}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}s.Constant=e;class t{constructor(r,n=[],a=[],o=[]){this.coordinate=r,this.locations=n,this.values=a,this.derivatives=o}compute(r){const n=this.coordinate.compute(r),a=Bs(0,this.locations.length,I=>nr.min()))}max(){return Math.max(...this.values.map(r=>r.max()))}mapAll(r){return new t(r(this.coordinate),this.locations,this.values.map(n=>n.mapAll(r)),this.derivatives)}addPoint(r,n,a=0){return this.locations.push(r),this.values.push(typeof n=="number"?new s.Constant(n):n),this.derivatives.push(a),this}}s.MultiPoint=t})(Te||(Te={}));const ae=class{constructor(s){this.seed=BigInt(0),this.setSeed(s)}fork(){return new ae(this.nextLong())}forkPositional(){return new Ts(this.nextLong())}setSeed(s){this.seed=s^ae.MULTIPLIER&ae.MODULUS_MASK}advance(){this.seed=this.seed*ae.MULTIPLIER+ae.INCREMENT&ae.MODULUS_MASK}consume(s){for(let e=0;e>BigInt(ae.MODULUS_BITS-s));return e>2147483647?e-4294967296:e}nextInt(s){if(s===void 0)return this.next(32);if((s&s-1)==0)return Number(BigInt(s)*BigInt(this.next(31))>>BigInt(31));let e,t;for(;(e=this.next(31))-(t=e%s)+(s-1)<0;);return t}nextLong(){return(BigInt(this.next(32))<>N.BIGINT_30)*N.STAFFORD_1&N.MAX_ULONG)^s>>N.BIGINT_27)*N.STAFFORD_2&N.MAX_ULONG)^s>>N.BIGINT_31)&N.MAX_ULONG}static upgradeSeedTo128bit(s){s<0&&(s+=N.POW2_60);const e=s^N.SILVER_RATIO_64,t=e+N.GOLDEN_RATIO_64&N.MAX_ULONG;return[N.mixStafford13(e),N.mixStafford13(t)]}static rotateLeft(s,e){return s<>N.BIGINT_64-e}setSeed(s){this.seed=N.upgradeSeedTo128bit(s)}fork(){return new N([this.next(),this.next()])}forkPositional(){return new Cs(this.next(),this.next())}next(){const s=this.seed[0];let e=this.seed[1];const t=N.rotateLeft(s+e&N.MAX_ULONG,N.BIGINT_17)+s&N.MAX_ULONG;return e^=s,this.seed=[N.rotateLeft(s,N.BIGINT_49)^e^e<N.POW2_63&&(s-=N.POW2_60),s}consume(s){let e=this.seed[0],t=this.seed[1];for(let i=0;i>BigInt(64-s)}nextInt(s){let e=this.next()&N.MAX_UINT;if(s){const t=BigInt(s);let i=e*t,r=i&N.MAX_UINT;if(r>N.BIGINT_32;return Number(n)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*N.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*N.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}};let L=N;L.SILVER_RATIO_64=BigInt("7640891576956012809"),L.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),L.FLOAT_MULTIPLIER=1/Math.pow(2,24),L.DOUBLE_MULTIPLIER=11102230246251565e-32,L.BIGINT_1=BigInt(1),L.BIGINT_17=BigInt(17),L.BIGINT_21=BigInt(21),L.BIGINT_27=BigInt(27),L.BIGINT_28=BigInt(28),L.BIGINT_30=BigInt(30),L.BIGINT_31=BigInt(31),L.BIGINT_32=BigInt(32),L.BIGINT_49=BigInt(49),L.BIGINT_64=BigInt(64),L.STAFFORD_1=BigInt("-4658895280553007687"),L.STAFFORD_2=BigInt("-7723592293110705685"),L.MAX_ULONG=BigInt("0xFFFFFFFFFFFFFFFF"),L.POW2_60=BigInt("0x10000000000000000"),L.POW2_63=BigInt("0x8000000000000000"),L.MAX_UINT=BigInt(4294967295);class Cs{constructor(e,t){this.seedLo=e,this.seedHi=t}at(e,t,i){const r=ts(e,t,i)^this.seedLo;return new L([r,this.seedHi])}fromHashOf(e){const t=qt(e,{asBytes:!0}),i=wt(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),r=wt(t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]);return new L([i^this.seedLo,r^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const ue=class{constructor(s){this.xo=256*s.nextDouble(),this.yo=256*s.nextDouble(),this.zo=256*s.nextDouble(),this.p=Array(256);for(let e=0;e<256;e+=1)this.p[e]=e;for(let e=0;e<256;e+=1){const t=s.nextInt(256-e),i=this.p[e];this.p[e]=this.p[e+t],this.p[e+t]=i}}sample2D(s,e){let t,i,r;const n=(s+e)*ue.F2,a=Math.floor(s+n),o=s-(a-(t=(a+(i=Math.floor(e+n)))*ue.G2));let u,f;o>(r=e-(i-t))?(u=1,f=0):(u=0,f=1);const c=o-u+ue.G2,h=r-f+ue.G2,m=o-1+2*ue.G2,d=r-1+2*ue.G2,g=255&a,w=255&i,S=this.P(g+this.P(w))%12,I=this.P(g+u+this.P(w+f))%12,B=this.P(g+1+this.P(w+1))%12;return 70*(this.getCornerNoise3D(S,o,r,0,.5)+this.getCornerNoise3D(I,c,h,0,.5)+this.getCornerNoise3D(B,m,d,0,.5))}sample(s,e,t){const i=.3333333333333333*(s+e+t),r=Math.floor(s+i),n=Math.floor(e+i),a=Math.floor(t+i),o=.16666666666666666*(r+n+a),u=s-(r-o),f=e-(n-o),c=t-(a-o);let h,m,d,g,w,S;u>=f?f>=c?(h=1,m=0,d=0,g=1,w=1,S=0):u>=c?(h=1,m=0,d=0,g=1,w=0,S=1):(h=0,m=0,d=1,g=1,w=0,S=1):f127?t-256:t;for(let t=0;t<256;t+=1){const i=e.nextInt(256-t),r=this.p[t];this.p[t]=this.p[t+i],this.p[t+i]=r}}sample(e,t,i,r=0,n=0){const a=e+this.xo,o=t+this.yo,u=i+this.zo,f=Math.floor(a),c=Math.floor(o),h=Math.floor(u),m=a-f,d=o-c,g=u-h;let w=0;if(r!==0){const S=n>=0&&n=0;r-=1)r0&&(r=this.maxLimitNoise.getOctaveNoise(f))&&(u+=r.sample(m,d,g,h,t*h)/a),a/=2}return Rt(o/512,u/512,n)/128}}var bt;(bt||(bt={})).fromJson=function(s){var e,t,i,r,n;const a=(e=v.readObject(s))!=null?e:{};return{xzScale:(t=v.readNumber(a.xz_scale))!=null?t:1,yScale:(i=v.readNumber(a.y_scale))!=null?i:1,xzFactor:(r=v.readNumber(a.xz_factor))!=null?r:80,yFactor:(n=v.readNumber(a.y_factor))!=null?n:80}};const $e=class{constructor(s,{firstOctave:e,amplitudes:t}){this.first=new X(s,e,t),this.second=new X(s,e,t);let i=1/0,r=-1/0;for(let a=0;a{var a;return(a=v.readNumber(n))!=null?a:0}))!=null?i:[]}};class ii{constructor(e,t){const i=t[t.length-1],r=-t[0]+i+1,n=new Set(t),a=new te(e);this.noiseLevels=Array(r),i>=0&&i=0&&n.has(i-o)?this.noiseLevels[o]=new te(e):e.consume(262);if(i>0)throw new Error("Positive octaves are not allowed");this.highestFreqInputFactor=Math.pow(2,i),this.highestFreqValueFactor=1/(Math.pow(2,r)-1)}sample(e,t,i){let r=0,n=this.highestFreqInputFactor,a=this.highestFreqValueFactor;for(let o=0;o[(s>>16&255)/256,(s>>8&255)/256,(255&s)/256],xe=[124/256,189/256,107/256],Ms=Oe(6396257),ks=Oe(8431445),De=Oe(4764952),ut=Oe(4159204),Ft=Oe(8431445),Os=Oe(2129968),Dt=s=>[s/8,1-s/32,64*s],Ps={large_fern:()=>xe,tall_grass:()=>xe,grass_block:()=>xe,fern:()=>xe,grass:()=>xe,potted_fern:()=>xe,spruce_leaves:()=>Ms,birch_leaves:()=>ks,oak_leaves:()=>De,jungle_leaves:()=>De,acacia_leaves:()=>De,dark_oak_leaves:()=>De,vine:()=>De,water:()=>ut,bubble_column:()=>ut,cauldron:()=>ut,redstone_wire:s=>{var e;return(t=>{const i=t/15;return[.6*i+(i>0?.4:.3),ve(i*i*.7-.5,0,1),ve(i*i*.6-.7,0,1)]})(parseInt((e=s.power)!=null?e:"0"))},sugar_cane:()=>xe,attached_melon_stem:()=>Ft,attached_pumpkin_stem:()=>Ft,melon_stem:s=>{var e;return Dt(parseInt((e=s.age)!=null?e:"0"))},pumpkin_stem:s=>{var e;return Dt(parseInt((e=s.age)!=null?e:"0"))},lily_pad:()=>Os};var St;function tt(...s){let e=0;for(const r of s)e+=r.length;const t=new Float32Array(e);let i=0;for(const r of s)t.set(r,i),i+=r.length;return t}function st(s,e){const t=ps();for(let i=0;ithis.matchesVariant(r,e));if(t.length===0)return[];const i=this.variants[t[0]];return[Array.isArray(i)?i[0]:i]}return this.multipart?this.multipart.filter(t=>!t.when||this.matchesCase(t.when,e)).map(t=>Array.isArray(t.apply)?t.apply[0]:t.apply):[]}getBuffers(e,t,i,r,n,a){var o,u,f,c;const h=this.getModelVariants(t),m=[],d=[],g=[],w=[];for(const B of h){const R=St.rotate(a,(o=B.x)!=null?o:0,(u=B.y)!=null?u:0),_=r.getBlockModel(B.model).getBuffers(e,t,i,n,R);if(B.x||B.y){const x=Re();ft(x),Ce(x,x,[8,8,8]),ls(x,x,-mt((f=B.y)!=null?f:0)),us(x,x,-mt((c=B.x)!=null?c:0)),Ce(x,x,[-8,-8,-8]),st(_.position,x)}m.push(_.position),d.push(..._.texCoord),g.push(..._.tintColor),w.push(..._.index),n+=_.texCoord.length/2}const S=Re();ft(S),Zt(S,S,[.0625,.0625,.0625]);const I=tt(...m);return st(I,S),{position:I,texCoord:d,tintColor:g,index:w}}matchesVariant(e,t){return e.split(",").every(i=>{const[r,n]=i.split("=");return t[r]===n})}matchesCase(e,t){if(Array.isArray(e.OR))return e.OR.some(r=>this.matchesCase(r,t));const i=e;return Object.keys(i).every(r=>i[r].split("|").includes(t[r]))}static fromJson(e,t){return new Bt(e,t.variants,t.multipart)}}const Ls={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},Fs={x:[1,0,0],y:[0,1,0],z:[0,0,1]},Ie=1.41421356237,Ds={x:[1,Ie,Ie],y:[Ie,1,Ie],z:[Ie,Ie,1]};class at{constructor(e,t,i,r){this.id=e,this.parent=t,this.textures=i,this.elements=r,this.flattened=!1}getBuffers(e,t,i,r,n){var a;const o=[],u=[],f=[],c=[];for(const h of(a=this.elements)!=null?a:[]){const m=this.getElementBuffers(e,t,h,r,i,n);o.push(m.position),u.push(...m.texCoord),f.push(...m.tintColor),c.push(...m.index),r+=m.texCoord.length/2}return{position:tt(...o),texCoord:u,tintColor:f,index:c}}getElementBuffers(e,t,i,r,n,a){var o,u,f,c,h,m,d,g,w,S,I,B;const R=i.from[0],_=i.from[1],x=i.from[2],T=i.to[0],M=i.to[1],k=i.to[2],K=[],Y=[],H=[],Q=[],ee=(V,z,Ae)=>{var Pe,b,l,p,A,y,O,U,se,be,Z,q,W;const[ce,fe,Ye,Xe]=n.getTextureUV(this.getTexture(V.texture)),ye=(Ye-ce)/16,_e=(Xe-fe)/16,Le=ye/16,Fe=_e/16;z[0]=((b=(Pe=V.uv)==null?void 0:Pe[0])!=null?b:z[0])*ye+Le,z[1]=((p=(l=V.uv)==null?void 0:l[1])!=null?p:z[1])*_e+Fe,z[2]=((y=(A=V.uv)==null?void 0:A[2])!=null?y:z[2])*ye-Le,z[3]=((U=(O=V.uv)==null?void 0:O[3])!=null?U:z[3])*_e-Fe;const ie=Ls[(se=V.rotation)!=null?se:0];Y.push(ce+z[ie[0]],fe+z[ie[1]],ce+z[ie[2]],fe+z[ie[3]],ce+z[ie[4]],fe+z[ie[5]],ce+z[ie[6]],fe+z[ie[7]]);const Se=((be=V.tintindex)!=null?be:-1)>=0&&(W=(q=(Z=Ps)[e.path])==null?void 0:q.call(Z,t))!=null?W:[1,1,1];H.push(...Se,...Se,...Se,...Se),K.push(...Ae),Q.push(r,r+1,r+2,r,r+2,r+3),r+=4};!((u=(o=i.faces)==null?void 0:o.up)!=null&&u.texture)||i.faces.up.cullface&&a[i.faces.up.cullface]||ee(i.faces.up,[R,16-k,T,16-x],[R,M,k,T,M,k,T,M,x,R,M,x]),!((c=(f=i.faces)==null?void 0:f.down)!=null&&c.texture)||i.faces.down.cullface&&a[i.faces.down.cullface]||ee(i.faces.down,[16-k,16-T,16-x,16-R],[R,_,x,T,_,x,T,_,k,R,_,k]),!((m=(h=i.faces)==null?void 0:h.south)!=null&&m.texture)||i.faces.south.cullface&&a[i.faces.south.cullface]||ee(i.faces.south,[R,16-M,T,16-_],[R,_,k,T,_,k,T,M,k,R,M,k]),!((g=(d=i.faces)==null?void 0:d.north)!=null&&g.texture)||i.faces.north.cullface&&a[i.faces.north.cullface]||ee(i.faces.north,[16-T,16-M,16-R,16-_],[T,_,x,R,_,x,R,M,x,T,M,x]),!((S=(w=i.faces)==null?void 0:w.east)!=null&&S.texture)||i.faces.east.cullface&&a[i.faces.east.cullface]||ee(i.faces.east,[16-k,16-M,16-x,16-_],[T,_,k,T,_,x,T,M,x,T,M,k]),!((B=(I=i.faces)==null?void 0:I.west)!=null&&B.texture)||i.faces.west.cullface&&a[i.faces.west.cullface]||ee(i.faces.west,[x,16-M,k,16-_],[R,_,x,R,_,k,R,M,k,R,M,x]);const j=Re();if(ft(j),i.rotation){const V=Ze(...i.rotation.origin);Ce(j,j,V),hs(j,j,mt(i.rotation.angle),Fs[i.rotation.axis]),i.rotation.rescale&&Zt(j,j,Ds[i.rotation.axis]),cs(V,V),Ce(j,j,V)}const ne=new Float32Array(K);return st(ne,j),{position:ne,texCoord:Y,tintColor:H,index:Q}}getTexture(e){for(var t,i;e.startsWith("#");)e=(i=(t=this.textures)==null?void 0:t[e.slice(1)])!=null?i:"";return e.startsWith("minecraft:")||(e="minecraft:"+e),e}flatten(e){var t;if(!this.flattened&&this.parent){const i=e.getBlockModel(this.parent);if(!i)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);i.flatten(e),this.elements||(this.elements=i.elements),this.textures||(this.textures={}),Object.keys((t=i.textures)!=null?t:{}).forEach(r=>{this.textures[r]||(this.textures[r]=i.textures[r])}),this.flattened=!0}}static fromJson(e,t){let i=t.parent;return i&&!i.startsWith("minecraft:")&&(i="minecraft:"+i),new at(e,i,t.textures,t.elements)}}class ht{constructor(e,t,i){this.gl=e,this.program=this.initShaderProgram(t,i)}getProgram(){return this.program}initShaderProgram(e,t){const i=this.loadShader(this.gl.VERTEX_SHADER,e),r=this.loadShader(this.gl.FRAGMENT_SHADER,t),n=this.gl.createProgram();if(this.gl.attachShader(n,i),this.gl.attachShader(n,r),this.gl.linkProgram(n),!this.gl.getProgramParameter(n,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(n)}`);return n}loadShader(e,t){const i=this.gl.createShader(e);if(this.gl.shaderSource(i,t),this.gl.compileShader(i),!this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)){const r=new Error(`Compiling ${e===this.gl.VERTEX_SHADER?"vertex":"fragment"} shader: ${this.gl.getShaderInfoLog(i)}`);throw this.gl.deleteShader(i),r}return i}}function rs(s,e,t,i,r){const n=new Bt("",{"":{model:""}},void 0),a={getBlockModel:()=>r};return r.flatten(a),n.getBuffers(s,{},e,a,t,i)}function Vt(s,e,t,i,r,n){const a=r.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][t];return rs(D.create(s),i,e,r,new at("","",{still:`minecraft:block/${s}_still`,flow:`minecraft:block/${s}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:"#still",tintindex:n,cullface:F.UP},down:{texture:"#still",tintindex:n,cullface:F.DOWN},north:{texture:"#flow",tintindex:n,cullface:F.NORTH},east:{texture:"#flow",tintindex:n,cullface:F.EAST},south:{texture:"#flow",tintindex:n,cullface:F.SOUTH},west:{texture:"#flow",tintindex:n,cullface:F.WEST}}}]))}const ns={"minecraft:water":(s,e,t,i)=>Vt("water",s,parseInt(e.level),t,i,0),"minecraft:lava":(s,e,t,i)=>Vt("lava",s,parseInt(e.level),t,i),"minecraft:chest":(s,e,t)=>function(i,r,n,a){return rs(D.create("chest"),a,i,{},new at("","",{0:"minecraft:block/chest"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:"#0"},down:{texture:"#0"},north:{texture:"#0"},east:{texture:"#0"},south:{texture:"#0"},west:{texture:"#0"}}}]))}(s,e.facing,e.type,t)},Vs=new Set(Object.keys(ns));class ri{constructor(e,t,i,r){var n,a;this.gl=e,this.structure=t,this.resources=i,this.chunks=[],r!=null&&r.facesPerBuffer&&console.warn("webgl render warning: facesPerBuffer option has been removed in favor of chunkSize"),this.chunkSize=(n=r==null?void 0:r.chunkSize)!=null?n:16,this.useInvisibleBlockBuffer=(a=r==null?void 0:r.useInvisibleBlockBuffer)==null||a,this.shaderProgram=new ht(e,` +import{p as jt,c as Re,i as ft,t as Ce,r as ls,a as us,s as Zt,f as Ze,b as hs,d as mt,n as cs,e as fs,g as ms,h as ds,j as ps,k as gs,l as Tt,m as vs,o as ws}from"./vec3.7a0b0b73.js";import{e as qt}from"./index.ece3de28.js";var F,Ee;(Ee=F||(F={})).UP="up",Ee.DOWN="down",Ee.NORTH="north",Ee.EAST="east",Ee.SOUTH="south",Ee.WEST="west";const bs={[F.UP]:[0,1,0],[F.DOWN]:[0,-1,0],[F.NORTH]:[0,0,-1],[F.EAST]:[1,0,0],[F.SOUTH]:[0,0,1],[F.WEST]:[-1,0,0]};var J,me;(function(s){s.ALL=[s.UP,s.DOWN,s.NORTH,s.EAST,s.SOUTH,s.WEST],s.normal=function(e){return bs[e]}})(F||(F={})),(me=J||(J={})).create=function(s,e,t){return[s,e,t]},me.ZERO=me.create(0,0,0),me.offset=function(s,e,t,i){return[s[0]+e,s[1]+t,s[2]+i]},me.towards=function(s,e){return me.offset(s,...F.normal(e))},me.equals=function(s,e){return s===e||s[0]===e[0]&&s[1]===e[1]&&s[2]===e[2]},me.magnitude=function(s){return s[0]*s[0]+s[1]*s[1]+s[2]*s[2]};const Ve={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},Ct=["end","byte","short","int","long","float","double","byteArray","string","list","compound","intArray","longArray"];class Ss{constructor(e,t=!1){this.byte=this.readNum.bind(this,"getInt8",1),this.short=this.readNum.bind(this,"getInt16",2),this.int=this.readNum.bind(this,"getInt32",4),this.float=this.readNum.bind(this,"getFloat32",4),this.double=this.readNum.bind(this,"getFloat64",8),this.offset=0,this.littleEndian=t,this.arrayView=e,this.dataView=new DataView(e.buffer,e.byteOffset)}end(){return null}readNum(e,t){const i=this.dataView[e](this.offset,this.littleEndian);return this.offset+=t,i}long(){return[this.int(),this.int()]}byteArray(){const e=this.int(),t=[];for(let i=0;i=t)return;let i=this.buffer.byteLength;for(;ithis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=r,this.dataView=new DataView(r),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(e){}writeNum(e,t,i){this.accommodate(t),this.dataView[e](this.offset,i,this.littleEndian),this.offset+=t}long(e){this.int(e[0]),this.int(e[1])}byteArray(e){this.int(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}intArray(e){this.int(e.length);for(let t=0;t>6),a.push(128|63&n)):n<65536?(a.push(224|n>>12),a.push(128|n>>6&63),a.push(128|63&n)):(a.push(240|n>>18&7),a.push(128|n>>12&63),a.push(128|n>>6&63),a.push(128|63&n));return a}(e);this.short(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}list(e){this.byte(Ve[e.type]),this.int(e.value.length),e.value;for(let t=0;t>16),i.setInt16(a+1,65535&r),i.setInt8(a+3,o),i.setInt32(a+4096,n.timestamp);const u=4096*r;i.setInt32(u,n.data.length+1),i.setInt8(u+4,n.compression),t.set(n.data,u+5),r+=o}return t}function ti(s,e,t,i){const r=Jt(s,e,t);switch(r.compression){case 1:r.data=dt(i);break;case 2:r.data=dt(i,!1,!0);break;case 3:r.data=It(i);break;default:throw new Error(`Invalid compression mode ${r.compression}`)}return r}function Jt(s,e,t){const i=s.find(r=>r.x===e&&r.z===t);if(i===void 0)throw new Error(`Cannot find chunk [${e}, ${t}]`);return i}function Be(s,e,t){if(!s[e])throw new Error(`Missing ${e} tag`);if(s[e].type!==t)throw new Error(`Expected ${e} to be of type ${t}, but found ${s[e].type}`);return s[e].value}function He(s,e,t,i){const r=Be(s,e,"list");if(r.type!==t)throw new Error(`Expected ${e} to be a list of ${t}s, but found ${r.type}s`);if(i&&r.value.length!==i)throw new Error(`Expected ${e} to be a list of length ${i}, but found length ${r.value.length}`);return r.value}function $t(s,e){try{return s()}catch{return e}}var v;function qe(s){let e=null;return()=>(e==null&&(e=s()),e)}function nt(s,e,t){const i=s.get(e);if(i)return i;const r=t(e);return s.set(e,r),r}(function(s){function e(t){return typeof t=="object"&&t!==null?t:void 0}s.readNumber=function(t){return typeof t=="number"?t:void 0},s.readInt=function(t){return typeof t=="number"?Math.floor(t):void 0},s.readString=function(t){return typeof t=="string"?t:void 0},s.readBoolean=function(t){return typeof t=="boolean"?t:void 0},s.readObject=e,s.readArray=function(t,i){if(Array.isArray(t))return t.map(r=>i(r))},s.readMap=function(t,i){var r;const n=(r=e(t))!=null?r:{};return Object.fromEntries(Object.entries(n).map(([a,o])=>[a,i(o)]))},s.compose=function(t,i,r){const n=i(t);return n?r(n):void 0},s.readEnum=function(t,i){return typeof t!="string"?i[0]:i.includes(t)?t:i[0]}})(v||(v={}));const We=class{constructor(s,e){if(this.namespace=s,this.path=e,!s.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${s}:${e}`);if(!e.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${s}:${e}`)}equals(s){return this===s||this.namespace===s.namespace&&this.path===s.path}toString(){return`${this.namespace}:${this.path}`}static create(s){return new We(this.DEFAULT_NAMESPACE,s)}static parse(s){const e=s.indexOf(this.SEPARATOR);if(e>=0){const t=e>=1?s.substring(0,e):this.DEFAULT_NAMESPACE,i=s.substring(e+1);return new We(t,i)}return new We(this.DEFAULT_NAMESPACE,s)}};let D=We;D.DEFAULT_NAMESPACE="minecraft",D.SEPARATOR=":";var As=Object.defineProperty,ys=Object.defineProperties,_s=Object.getOwnPropertyDescriptors,Mt=Object.getOwnPropertySymbols,Es=Object.prototype.hasOwnProperty,Is=Object.prototype.propertyIsEnumerable,kt=(s,e,t)=>e in s?As(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;const oe=class{constructor(s,e={}){this.properties=e,this.name=typeof s=="string"?D.parse(s):s}getName(){return this.name}getProperties(){return this.properties}getProperty(s){return this.properties[s]}isFluid(){return this.is(oe.WATER)||this.is(oe.LAVA)}equals(s){return!!this.name.equals(s.name)&&Object.keys(this.properties).every(e=>s.properties[e]===this.properties[e])}is(s){return this.name.equals(s.name)}toString(){return Object.keys(this.properties).length===0?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map(([s,e])=>s+"="+e).join(",")}]`}static fromNbt(s){const e=D.parse(Be(s.value,"Name","string")),t=$t(()=>Be(s.value,"Properties","compound"),{}),i=Object.keys(t).reduce((r,n)=>{return a=((u,f)=>{for(var c in f||(f={}))Es.call(f,c)&&kt(u,c,f[c]);if(Mt)for(var c of Mt(f))Is.call(f,c)&&kt(u,c,f[c]);return u})({},r),o={[n]:Be(t,n,"string")},ys(a,_s(o));var a,o},{});return new oe(e,i)}static fromJson(s){var e,t;const i=(e=v.readObject(s))!=null?e:{},r=D.parse((t=v.readString(i.Name))!=null?t:oe.STONE.name.toString()),n=v.readMap(i.Properties,a=>{var o;return(o=v.readString(a))!=null?o:""});return new oe(r,n)}};let P=oe;P.AIR=new oe(D.create("air")),P.STONE=new oe(D.create("stone")),P.WATER=new oe(D.create("water"),{level:"0"}),P.LAVA=new oe(D.create("lava"),{level:"0"});const Ue=class{constructor(s){this.minY=s,this.storage=Array(Ue.SIZE).fill(0),this.palette=[P.AIR]}get minBlockY(){return this.minY<<4}index(s,e,t){return(s<<8)+(e<<4)+t}getBlockState(s,e,t){var i;const r=this.storage[this.index(s,e,t)];return(i=this.palette[r])!=null?i:P.AIR}setBlockState(s,e,t,i){let r=this.palette.findIndex(n=>n.equals(i));r===-1&&(r=this.palette.length,this.palette.push(i)),this.storage[this.index(s,e,t)]=r}};let pt=Ue;pt.WIDTH=16,pt.SIZE=Ue.WIDTH*Ue.WIDTH*Ue.WIDTH;class si{constructor(e,t,i){this.minY=e,this.height=t,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(e){return(e>>4)-this.minSection}getBlockState(e){var t;const[i,r,n]=e,a=this.sections[this.getSectionIndex(r)];return(t=a==null?void 0:a.getBlockState(15&i,15&r,15&n))!=null?t:P.AIR}setBlockState(e,t){const[i,r,n]=e,a=this.getSectionIndex(r);let o=this.sections[a];if(o===null){if(t.equals(P.AIR))return;o=this.getOrCreateSection(a)}o.setBlockState(15&i,15&r,15&n,t)}getOrCreateSection(e){return this.sections[e]==null&&(this.sections[e]=new pt(this.minSection+e)),this.sections[e]}}var $,Me;(function(s){function e(t,i){return BigInt(4294967295&t)|BigInt(4294967295&i)<>4,t[2]>>4]},s.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},s.toLong=function(t){return e(t[0],t[1])},s.asLong=e,s.minBlockX=function(t){return t[0]<<4},s.minBlockZ=function(t){return t[1]<<4},s.maxBlockX=function(t){return 15+(t[0]<<4)},s.maxBlockZ=function(t){return 15+(t[1]<<4)}})($||($={})),function(s){function e(i){return{value:()=>i,key:()=>{}}}function t(i,r){return{value:()=>i.getOrThrow(r),key:()=>r}}s.parser=function(i,r){return n=>typeof n=="string"?t(i,D.parse(n)):e(r(n))},s.direct=e,s.reference=t}(Me||(Me={}));const Nt=class{constructor(s,e){this.key=s,this.parser=e,this.storage=new Map,this.builtin=new Map}register(s,e,t){return this.storage.set(s.toString(),e),t&&this.builtin.set(s.toString(),e),Me.reference(this,s)}keys(){return[...this.storage.keys()].map(s=>D.parse(s))}get(s){return this.storage.get(s.toString())}getOrThrow(s){const e=this.storage.get(s.toString());if(e===void 0)throw new Error(`Missing key in ${this.key.toString()}: ${s.toString()}`);return e}parse(s){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(s)}clear(){this.storage.clear();for(const[s,e]of this.builtin.entries())this.storage.set(s,e);return this}assign(s){if(!this.key.equals(s.key))throw new Error(`Cannot assign registry of type ${s.key.toString()} to registry of type ${this.key.toString()}`);for(const e of s.keys())this.storage.set(e.toString(),s.getOrThrow(e));return this}cloneEmpty(){return new Nt(this.key,this.parser)}};let gt=Nt;gt.REGISTRY=new Nt(D.create("root"));class Kt{constructor(e,t=[],i=[]){this.size=e,this.palette=t,this.blocks=i,this.blocksMap=[],i.forEach(r=>{if(!this.isInside(r.pos))throw new Error(`Found block at ${r.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[r.pos[0]*e[1]*e[2]+r.pos[1]*e[2]+r.pos[2]]=r})}getSize(){return this.size}addBlock(e,t,i,r){if(!this.isInside(e))throw new Error(`Cannot add block at ${e} outside the structure bounds ${this.size}`);const n=new P(t,i);let a=this.palette.findIndex(o=>o.equals(n));return a===-1&&(a=this.palette.length,this.palette.push(n)),this.blocks.push({pos:e,state:a,nbt:r}),this.blocksMap[e[0]*this.size[1]*this.size[2]+e[1]*this.size[2]+e[2]]={pos:e,state:a,nbt:r},this}getBlocks(){return this.blocks.map(e=>({pos:e.pos,state:this.palette[e.state],nbt:e.nbt}))}getBlock(e){if(!this.isInside(e))return null;const t=this.blocksMap[e[0]*this.size[1]*this.size[2]+e[1]*this.size[2]+e[2]];return t?{pos:t.pos,state:this.palette[t.state],nbt:t.nbt}:null}isInside(e){return e[0]>=0&&e[0]=0&&e[1]=0&&e[2]P.fromNbt({name:"",value:n})),r=He(e.value,"blocks","compound").map(n=>({pos:He(n,"pos","int",3),state:Be(n,"state","int"),nbt:$t(()=>Be(n,"nbt","compound"),void 0)}));return new Kt(t,i,r)}}function de(s){return s*s}function ve(s,e,t){return Math.max(e,Math.min(t,s))}function we(s,e,t){return e+s*(t-e)}function vt(s,e,t,i,r,n){return we(e,we(s,t,i),we(s,r,n))}function Ns(s,e,t,i,r,n,a,o,u,f,c){return we(t,vt(s,e,i,r,n,a),vt(s,e,o,u,f,c))}function Je(s,e,t){return s===0?e():s===1?t():e()+s*(t()-e())}function Ot(s,e,t,i,r,n){return Je(e,()=>Je(s,t,i),()=>Je(s,r,n))}function Rs(s,e,t,i,r,n,a,o,u,f,c){return Je(t,()=>Ot(s,e,i,r,n,a),()=>Ot(s,e,o,u,f,c))}function Rt(s,e,t){return t<0?s:t>1?e:we(t,s,e)}function Qt(s,e,t){return(s-e)/(t-e)}function lt(s){return s*s*s*(s*(6*s-15)+10)}function Qe(s,e,t,i,r){return we(Qt(s,e,t),i,r)}function es(s,e,t,i,r){return Rt(i,r,Qt(s,e,t))}function Bs(s,e,t){let i=e-s;for(;i>0;){const r=Math.floor(i/2),n=s+r;t(n)?i=r:(s=n+1,i-=r+1)}return s}function ts(s,e,t){let i=BigInt(3129871*s)^BigInt(t)*BigInt(116129781)^BigInt(e);return i=i*i*BigInt(42317861)+i*BigInt(11),i>>BigInt(16)}function wt(s,e,t,i,r,n,a,o){return BigInt(s)<{var g;return(g=v.readObject(d))!=null?g:{}}))!=null?o:[];if(m.length===0)return new e(0);for(const d of m){const g=(u=v.readNumber(d.location))!=null?u:0,w=i(d.value,n),S=(f=v.readNumber(d.derivative))!=null?f:0;h.addPoint(g,w,S)}return h};class e{constructor(r){this.value=r}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}s.Constant=e;class t{constructor(r,n=[],a=[],o=[]){this.coordinate=r,this.locations=n,this.values=a,this.derivatives=o}compute(r){const n=this.coordinate.compute(r),a=Bs(0,this.locations.length,I=>nr.min()))}max(){return Math.max(...this.values.map(r=>r.max()))}mapAll(r){return new t(r(this.coordinate),this.locations,this.values.map(n=>n.mapAll(r)),this.derivatives)}addPoint(r,n,a=0){return this.locations.push(r),this.values.push(typeof n=="number"?new s.Constant(n):n),this.derivatives.push(a),this}}s.MultiPoint=t})(Te||(Te={}));const ae=class{constructor(s){this.seed=BigInt(0),this.setSeed(s)}fork(){return new ae(this.nextLong())}forkPositional(){return new Ts(this.nextLong())}setSeed(s){this.seed=s^ae.MULTIPLIER&ae.MODULUS_MASK}advance(){this.seed=this.seed*ae.MULTIPLIER+ae.INCREMENT&ae.MODULUS_MASK}consume(s){for(let e=0;e>BigInt(ae.MODULUS_BITS-s));return e>2147483647?e-4294967296:e}nextInt(s){if(s===void 0)return this.next(32);if((s&s-1)==0)return Number(BigInt(s)*BigInt(this.next(31))>>BigInt(31));let e,t;for(;(e=this.next(31))-(t=e%s)+(s-1)<0;);return t}nextLong(){return(BigInt(this.next(32))<>N.BIGINT_30)*N.STAFFORD_1&N.MAX_ULONG)^s>>N.BIGINT_27)*N.STAFFORD_2&N.MAX_ULONG)^s>>N.BIGINT_31)&N.MAX_ULONG}static upgradeSeedTo128bit(s){s<0&&(s+=N.POW2_60);const e=s^N.SILVER_RATIO_64,t=e+N.GOLDEN_RATIO_64&N.MAX_ULONG;return[N.mixStafford13(e),N.mixStafford13(t)]}static rotateLeft(s,e){return s<>N.BIGINT_64-e}setSeed(s){this.seed=N.upgradeSeedTo128bit(s)}fork(){return new N([this.next(),this.next()])}forkPositional(){return new Cs(this.next(),this.next())}next(){const s=this.seed[0];let e=this.seed[1];const t=N.rotateLeft(s+e&N.MAX_ULONG,N.BIGINT_17)+s&N.MAX_ULONG;return e^=s,this.seed=[N.rotateLeft(s,N.BIGINT_49)^e^e<N.POW2_63&&(s-=N.POW2_60),s}consume(s){let e=this.seed[0],t=this.seed[1];for(let i=0;i>BigInt(64-s)}nextInt(s){let e=this.next()&N.MAX_UINT;if(s){const t=BigInt(s);let i=e*t,r=i&N.MAX_UINT;if(r>N.BIGINT_32;return Number(n)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*N.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*N.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}};let L=N;L.SILVER_RATIO_64=BigInt("7640891576956012809"),L.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),L.FLOAT_MULTIPLIER=1/Math.pow(2,24),L.DOUBLE_MULTIPLIER=11102230246251565e-32,L.BIGINT_1=BigInt(1),L.BIGINT_17=BigInt(17),L.BIGINT_21=BigInt(21),L.BIGINT_27=BigInt(27),L.BIGINT_28=BigInt(28),L.BIGINT_30=BigInt(30),L.BIGINT_31=BigInt(31),L.BIGINT_32=BigInt(32),L.BIGINT_49=BigInt(49),L.BIGINT_64=BigInt(64),L.STAFFORD_1=BigInt("-4658895280553007687"),L.STAFFORD_2=BigInt("-7723592293110705685"),L.MAX_ULONG=BigInt("0xFFFFFFFFFFFFFFFF"),L.POW2_60=BigInt("0x10000000000000000"),L.POW2_63=BigInt("0x8000000000000000"),L.MAX_UINT=BigInt(4294967295);class Cs{constructor(e,t){this.seedLo=e,this.seedHi=t}at(e,t,i){const r=ts(e,t,i)^this.seedLo;return new L([r,this.seedHi])}fromHashOf(e){const t=qt(e,{asBytes:!0}),i=wt(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),r=wt(t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]);return new L([i^this.seedLo,r^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const ue=class{constructor(s){this.xo=256*s.nextDouble(),this.yo=256*s.nextDouble(),this.zo=256*s.nextDouble(),this.p=Array(256);for(let e=0;e<256;e+=1)this.p[e]=e;for(let e=0;e<256;e+=1){const t=s.nextInt(256-e),i=this.p[e];this.p[e]=this.p[e+t],this.p[e+t]=i}}sample2D(s,e){let t,i,r;const n=(s+e)*ue.F2,a=Math.floor(s+n),o=s-(a-(t=(a+(i=Math.floor(e+n)))*ue.G2));let u,f;o>(r=e-(i-t))?(u=1,f=0):(u=0,f=1);const c=o-u+ue.G2,h=r-f+ue.G2,m=o-1+2*ue.G2,d=r-1+2*ue.G2,g=255&a,w=255&i,S=this.P(g+this.P(w))%12,I=this.P(g+u+this.P(w+f))%12,B=this.P(g+1+this.P(w+1))%12;return 70*(this.getCornerNoise3D(S,o,r,0,.5)+this.getCornerNoise3D(I,c,h,0,.5)+this.getCornerNoise3D(B,m,d,0,.5))}sample(s,e,t){const i=.3333333333333333*(s+e+t),r=Math.floor(s+i),n=Math.floor(e+i),a=Math.floor(t+i),o=.16666666666666666*(r+n+a),u=s-(r-o),f=e-(n-o),c=t-(a-o);let h,m,d,g,w,S;u>=f?f>=c?(h=1,m=0,d=0,g=1,w=1,S=0):u>=c?(h=1,m=0,d=0,g=1,w=0,S=1):(h=0,m=0,d=1,g=1,w=0,S=1):f127?t-256:t;for(let t=0;t<256;t+=1){const i=e.nextInt(256-t),r=this.p[t];this.p[t]=this.p[t+i],this.p[t+i]=r}}sample(e,t,i,r=0,n=0){const a=e+this.xo,o=t+this.yo,u=i+this.zo,f=Math.floor(a),c=Math.floor(o),h=Math.floor(u),m=a-f,d=o-c,g=u-h;let w=0;if(r!==0){const S=n>=0&&n=0;r-=1)r0&&(r=this.maxLimitNoise.getOctaveNoise(f))&&(u+=r.sample(m,d,g,h,t*h)/a),a/=2}return Rt(o/512,u/512,n)/128}}var bt;(bt||(bt={})).fromJson=function(s){var e,t,i,r,n;const a=(e=v.readObject(s))!=null?e:{};return{xzScale:(t=v.readNumber(a.xz_scale))!=null?t:1,yScale:(i=v.readNumber(a.y_scale))!=null?i:1,xzFactor:(r=v.readNumber(a.xz_factor))!=null?r:80,yFactor:(n=v.readNumber(a.y_factor))!=null?n:80}};const $e=class{constructor(s,{firstOctave:e,amplitudes:t}){this.first=new X(s,e,t),this.second=new X(s,e,t);let i=1/0,r=-1/0;for(let a=0;a{var a;return(a=v.readNumber(n))!=null?a:0}))!=null?i:[]}};class ii{constructor(e,t){const i=t[t.length-1],r=-t[0]+i+1,n=new Set(t),a=new te(e);this.noiseLevels=Array(r),i>=0&&i=0&&n.has(i-o)?this.noiseLevels[o]=new te(e):e.consume(262);if(i>0)throw new Error("Positive octaves are not allowed");this.highestFreqInputFactor=Math.pow(2,i),this.highestFreqValueFactor=1/(Math.pow(2,r)-1)}sample(e,t,i){let r=0,n=this.highestFreqInputFactor,a=this.highestFreqValueFactor;for(let o=0;o[(s>>16&255)/256,(s>>8&255)/256,(255&s)/256],xe=[124/256,189/256,107/256],Ms=Oe(6396257),ks=Oe(8431445),De=Oe(4764952),ut=Oe(4159204),Ft=Oe(8431445),Os=Oe(2129968),Dt=s=>[s/8,1-s/32,64*s],Ps={large_fern:()=>xe,tall_grass:()=>xe,grass_block:()=>xe,fern:()=>xe,grass:()=>xe,potted_fern:()=>xe,spruce_leaves:()=>Ms,birch_leaves:()=>ks,oak_leaves:()=>De,jungle_leaves:()=>De,acacia_leaves:()=>De,dark_oak_leaves:()=>De,vine:()=>De,water:()=>ut,bubble_column:()=>ut,cauldron:()=>ut,redstone_wire:s=>{var e;return(t=>{const i=t/15;return[.6*i+(i>0?.4:.3),ve(i*i*.7-.5,0,1),ve(i*i*.6-.7,0,1)]})(parseInt((e=s.power)!=null?e:"0"))},sugar_cane:()=>xe,attached_melon_stem:()=>Ft,attached_pumpkin_stem:()=>Ft,melon_stem:s=>{var e;return Dt(parseInt((e=s.age)!=null?e:"0"))},pumpkin_stem:s=>{var e;return Dt(parseInt((e=s.age)!=null?e:"0"))},lily_pad:()=>Os};var St;function tt(...s){let e=0;for(const r of s)e+=r.length;const t=new Float32Array(e);let i=0;for(const r of s)t.set(r,i),i+=r.length;return t}function st(s,e){const t=ps();for(let i=0;ithis.matchesVariant(r,e));if(t.length===0)return[];const i=this.variants[t[0]];return[Array.isArray(i)?i[0]:i]}return this.multipart?this.multipart.filter(t=>!t.when||this.matchesCase(t.when,e)).map(t=>Array.isArray(t.apply)?t.apply[0]:t.apply):[]}getBuffers(e,t,i,r,n,a){var o,u,f,c;const h=this.getModelVariants(t),m=[],d=[],g=[],w=[];for(const B of h){const R=St.rotate(a,(o=B.x)!=null?o:0,(u=B.y)!=null?u:0),_=r.getBlockModel(B.model).getBuffers(e,t,i,n,R);if(B.x||B.y){const x=Re();ft(x),Ce(x,x,[8,8,8]),ls(x,x,-mt((f=B.y)!=null?f:0)),us(x,x,-mt((c=B.x)!=null?c:0)),Ce(x,x,[-8,-8,-8]),st(_.position,x)}m.push(_.position),d.push(..._.texCoord),g.push(..._.tintColor),w.push(..._.index),n+=_.texCoord.length/2}const S=Re();ft(S),Zt(S,S,[.0625,.0625,.0625]);const I=tt(...m);return st(I,S),{position:I,texCoord:d,tintColor:g,index:w}}matchesVariant(e,t){return e.split(",").every(i=>{const[r,n]=i.split("=");return t[r]===n})}matchesCase(e,t){if(Array.isArray(e.OR))return e.OR.some(r=>this.matchesCase(r,t));const i=e;return Object.keys(i).every(r=>i[r].split("|").includes(t[r]))}static fromJson(e,t){return new Bt(e,t.variants,t.multipart)}}const Ls={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},Fs={x:[1,0,0],y:[0,1,0],z:[0,0,1]},Ie=1.41421356237,Ds={x:[1,Ie,Ie],y:[Ie,1,Ie],z:[Ie,Ie,1]};class at{constructor(e,t,i,r){this.id=e,this.parent=t,this.textures=i,this.elements=r,this.flattened=!1}getBuffers(e,t,i,r,n){var a;const o=[],u=[],f=[],c=[];for(const h of(a=this.elements)!=null?a:[]){const m=this.getElementBuffers(e,t,h,r,i,n);o.push(m.position),u.push(...m.texCoord),f.push(...m.tintColor),c.push(...m.index),r+=m.texCoord.length/2}return{position:tt(...o),texCoord:u,tintColor:f,index:c}}getElementBuffers(e,t,i,r,n,a){var o,u,f,c,h,m,d,g,w,S,I,B;const R=i.from[0],_=i.from[1],x=i.from[2],T=i.to[0],M=i.to[1],k=i.to[2],K=[],Y=[],H=[],Q=[],ee=(V,z,Ae)=>{var Pe,b,l,p,A,y,O,U,se,be,Z,q,W;const[ce,fe,Ye,Xe]=n.getTextureUV(this.getTexture(V.texture)),ye=(Ye-ce)/16,_e=(Xe-fe)/16,Le=ye/16,Fe=_e/16;z[0]=((b=(Pe=V.uv)==null?void 0:Pe[0])!=null?b:z[0])*ye+Le,z[1]=((p=(l=V.uv)==null?void 0:l[1])!=null?p:z[1])*_e+Fe,z[2]=((y=(A=V.uv)==null?void 0:A[2])!=null?y:z[2])*ye-Le,z[3]=((U=(O=V.uv)==null?void 0:O[3])!=null?U:z[3])*_e-Fe;const ie=Ls[(se=V.rotation)!=null?se:0];Y.push(ce+z[ie[0]],fe+z[ie[1]],ce+z[ie[2]],fe+z[ie[3]],ce+z[ie[4]],fe+z[ie[5]],ce+z[ie[6]],fe+z[ie[7]]);const Se=((be=V.tintindex)!=null?be:-1)>=0&&(W=(q=(Z=Ps)[e.path])==null?void 0:q.call(Z,t))!=null?W:[1,1,1];H.push(...Se,...Se,...Se,...Se),K.push(...Ae),Q.push(r,r+1,r+2,r,r+2,r+3),r+=4};!((u=(o=i.faces)==null?void 0:o.up)!=null&&u.texture)||i.faces.up.cullface&&a[i.faces.up.cullface]||ee(i.faces.up,[R,16-k,T,16-x],[R,M,k,T,M,k,T,M,x,R,M,x]),!((c=(f=i.faces)==null?void 0:f.down)!=null&&c.texture)||i.faces.down.cullface&&a[i.faces.down.cullface]||ee(i.faces.down,[16-k,16-T,16-x,16-R],[R,_,x,T,_,x,T,_,k,R,_,k]),!((m=(h=i.faces)==null?void 0:h.south)!=null&&m.texture)||i.faces.south.cullface&&a[i.faces.south.cullface]||ee(i.faces.south,[R,16-M,T,16-_],[R,_,k,T,_,k,T,M,k,R,M,k]),!((g=(d=i.faces)==null?void 0:d.north)!=null&&g.texture)||i.faces.north.cullface&&a[i.faces.north.cullface]||ee(i.faces.north,[16-T,16-M,16-R,16-_],[T,_,x,R,_,x,R,M,x,T,M,x]),!((S=(w=i.faces)==null?void 0:w.east)!=null&&S.texture)||i.faces.east.cullface&&a[i.faces.east.cullface]||ee(i.faces.east,[16-k,16-M,16-x,16-_],[T,_,k,T,_,x,T,M,x,T,M,k]),!((B=(I=i.faces)==null?void 0:I.west)!=null&&B.texture)||i.faces.west.cullface&&a[i.faces.west.cullface]||ee(i.faces.west,[x,16-M,k,16-_],[R,_,x,R,_,k,R,M,k,R,M,x]);const j=Re();if(ft(j),i.rotation){const V=Ze(...i.rotation.origin);Ce(j,j,V),hs(j,j,mt(i.rotation.angle),Fs[i.rotation.axis]),i.rotation.rescale&&Zt(j,j,Ds[i.rotation.axis]),cs(V,V),Ce(j,j,V)}const ne=new Float32Array(K);return st(ne,j),{position:ne,texCoord:Y,tintColor:H,index:Q}}getTexture(e){for(var t,i;e.startsWith("#");)e=(i=(t=this.textures)==null?void 0:t[e.slice(1)])!=null?i:"";return e.startsWith("minecraft:")||(e="minecraft:"+e),e}flatten(e){var t;if(!this.flattened&&this.parent){const i=e.getBlockModel(this.parent);if(!i)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);i.flatten(e),this.elements||(this.elements=i.elements),this.textures||(this.textures={}),Object.keys((t=i.textures)!=null?t:{}).forEach(r=>{this.textures[r]||(this.textures[r]=i.textures[r])}),this.flattened=!0}}static fromJson(e,t){let i=t.parent;return i&&!i.startsWith("minecraft:")&&(i="minecraft:"+i),new at(e,i,t.textures,t.elements)}}class ht{constructor(e,t,i){this.gl=e,this.program=this.initShaderProgram(t,i)}getProgram(){return this.program}initShaderProgram(e,t){const i=this.loadShader(this.gl.VERTEX_SHADER,e),r=this.loadShader(this.gl.FRAGMENT_SHADER,t),n=this.gl.createProgram();if(this.gl.attachShader(n,i),this.gl.attachShader(n,r),this.gl.linkProgram(n),!this.gl.getProgramParameter(n,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(n)}`);return n}loadShader(e,t){const i=this.gl.createShader(e);if(this.gl.shaderSource(i,t),this.gl.compileShader(i),!this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)){const r=new Error(`Compiling ${e===this.gl.VERTEX_SHADER?"vertex":"fragment"} shader: ${this.gl.getShaderInfoLog(i)}`);throw this.gl.deleteShader(i),r}return i}}function rs(s,e,t,i,r){const n=new Bt("",{"":{model:""}},void 0),a={getBlockModel:()=>r};return r.flatten(a),n.getBuffers(s,{},e,a,t,i)}function Vt(s,e,t,i,r,n){const a=r.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][t];return rs(D.create(s),i,e,r,new at("","",{still:`minecraft:block/${s}_still`,flow:`minecraft:block/${s}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:"#still",tintindex:n,cullface:F.UP},down:{texture:"#still",tintindex:n,cullface:F.DOWN},north:{texture:"#flow",tintindex:n,cullface:F.NORTH},east:{texture:"#flow",tintindex:n,cullface:F.EAST},south:{texture:"#flow",tintindex:n,cullface:F.SOUTH},west:{texture:"#flow",tintindex:n,cullface:F.WEST}}}]))}const ns={"minecraft:water":(s,e,t,i)=>Vt("water",s,parseInt(e.level),t,i,0),"minecraft:lava":(s,e,t,i)=>Vt("lava",s,parseInt(e.level),t,i),"minecraft:chest":(s,e,t)=>function(i,r,n,a){return rs(D.create("chest"),a,i,{},new at("","",{0:"minecraft:block/chest"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:"#0"},down:{texture:"#0"},north:{texture:"#0"},east:{texture:"#0"},south:{texture:"#0"},west:{texture:"#0"}}}]))}(s,e.facing,e.type,t)},Vs=new Set(Object.keys(ns));class ri{constructor(e,t,i,r){var n,a;this.gl=e,this.structure=t,this.resources=i,this.chunks=[],r!=null&&r.facesPerBuffer&&console.warn("webgl render warning: facesPerBuffer option has been removed in favor of chunkSize"),this.chunkSize=(n=r==null?void 0:r.chunkSize)!=null?n:16,this.useInvisibleBlockBuffer=(a=r==null?void 0:r.useInvisibleBlockBuffer)==null||a,this.shaderProgram=new ht(e,` attribute vec4 vertPos; attribute vec2 texCoord; attribute vec3 tintColor; @@ -71,4 +71,4 @@ import{p as jt,c as Re,i as ft,t as Ce,r as ls,a as us,s as Zt,f as Ze,b as hs,d gl_FragColor = vec4(vColor, 1.0); } `).getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(e){this.structure=e,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const e=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,e),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),e}getPerspective(){const e=70*Math.PI/180,t=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,i=Re();return fs(i,e,t,.1,500),i}getChunk(e){const t=2*Math.abs(e[0])+(e[0]<0?1:0),i=2*Math.abs(e[1])+(e[1]<0?1:0),r=2*Math.abs(e[2])+(e[2]<0?1:0);return this.chunks[t]||(this.chunks[t]=[]),this.chunks[t][i]||(this.chunks[t][i]=[]),this.chunks[t][i][r]||(this.chunks[t][i][r]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[t][i][r]}updateStructureBuffers(e){var t;const i=(o,u,f)=>{const c=Re();Ce(c,c,u),st(o.position,c),f.positions.push(o.position),f.textureCoordinates.push(...o.texCoord),f.tintColors.push(...o.tintColor);for(let h=0;h{o.positions=[],o.textureCoordinates=[],o.tintColors=[],o.blockPositions=[],o.normals=[],o.indices=[],o.indexOffset=0},n=o=>{o.buffer?(this.updateBuffer(o.buffer.position,this.gl.ARRAY_BUFFER,tt(...o.positions)),this.updateBuffer(o.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(o.textureCoordinates)),this.updateBuffer(o.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(o.tintColors)),this.updateBuffer(o.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(o.normals)),this.updateBuffer(o.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(o.blockPositions)),this.updateBuffer(o.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(o.indices)),o.buffer.length=o.indices.length):o.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,tt(...o.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(o.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(o.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(o.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(o.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(o.indices)),length:o.indices.length}};let a;e?e.forEach(o=>{const u=this.getChunk(o);r(u)}):this.chunks.forEach(o=>o.forEach(u=>u.forEach(f=>{r(f)})));for(const o of this.structure.getBlocks()){const u=o.state.getName(),f=o.state.getProperties(),c=(t=this.resources.getDefaultBlockProperties(u))!=null?t:{};Object.entries(c).forEach(([d,g])=>{f[d]||(f[d]=g)});const h=[Math.floor(o.pos[0]/this.chunkSize),Math.floor(o.pos[1]/this.chunkSize),Math.floor(o.pos[2]/this.chunkSize)];if(e&&!e.some(d=>ms(d,h)))continue;const m=this.getChunk(h);try{const d=this.resources.getBlockDefinition(u),g={up:this.needsCull(o,F.UP),down:this.needsCull(o,F.DOWN),west:this.needsCull(o,F.WEST),east:this.needsCull(o,F.EAST),north:this.needsCull(o,F.NORTH),south:this.needsCull(o,F.SOUTH)};d&&(a=d.getBuffers(u,f,this.resources,this.resources,m.indexOffset,g),i(a,o.pos,m)),Vs.has(u.toString())&&(a=ns[u.toString()](m.indexOffset,f,this.resources,g),i(a,o.pos,m))}catch(d){console.error(`Error rendering block ${u}`,d)}}e?e.forEach(o=>{const u=this.getChunk(o);n(u)}):this.chunks.forEach(o=>o.forEach(u=>u.forEach(f=>{n(f)})))}needsCull(e,t){var i,r;const n=(i=this.structure.getBlock(J.towards(e.pos,t)))==null?void 0:i.state;return!!n&&((r=this.resources.getBlockFlags(n.getName()))!=null&&r.opaque?!(t===F.UP&&e.state.isFluid()):e.state.isFluid()&&n.isFluid())}getGridBuffers(){const[e,t,i]=this.structure.getSize(),r=[],n=[];r.push(0,0,0,e,0,0),n.push(1,0,0,1,0,0),r.push(0,0,0,0,0,i),n.push(0,0,1,0,0,1),r.push(0,0,0,0,t,0),r.push(e,0,0,e,t,0),r.push(0,0,i,0,t,i),r.push(e,0,i,e,t,i),r.push(0,t,0,0,t,i),r.push(e,t,0,e,t,i),r.push(0,t,0,e,t,0),r.push(0,t,i,e,t,i);for(let a=1;a<=e;a+=1)r.push(a,0,0,a,0,i);for(let a=1;a<=i;a+=1)r.push(0,0,a,e,0,a);for(let a=0;a<8+e+i;a+=1)n.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(r)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(n)),length:r.length/3}}getOutlineBuffers(){const e=[],t=[];return this.addCube(e,t,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),length:e.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const e=this.structure.getSize(),t=[],i=[];for(let r=0;r{t.forEach(i=>{i.forEach(r=>{r.buffer&&(this.setVertexAttr("vertPos",3,r.buffer.position),this.setVertexAttr("texCoord",2,r.buffer.texCoord),this.setVertexAttr("tintColor",3,r.buffer.tintColor),this.setVertexAttr("normal",3,r.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,r.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,r.buffer.length,this.gl.UNSIGNED_SHORT,0))})})})}drawColoredStructure(e){this.setShader(this.colorShaderProgram),this.setUniform("mView",e),this.setUniform("mProj",this.projMatrix),this.chunks.forEach(t=>{t.forEach(i=>{i.forEach(r=>{r.buffer&&(this.setVertexAttr("vertPos",3,r.buffer.position),this.setVertexAttr("blockPos",3,r.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,r.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,r.buffer.length,this.gl.UNSIGNED_SHORT,0))})})})}drawOutline(e,t){this.setShader(this.gridShaderProgram),this.setVertexAttr("vertPos",3,this.outlineBuffers.position),this.setVertexAttr("vertColor",3,this.outlineBuffers.color);const i=Re();ds(i,e),Ce(i,i,t),this.setUniform("mView",i),this.setUniform("mProj",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(e,t,i,r){this.gl.viewport(e,t,i,r),this.projMatrix=this.getPerspective()}setShader(e){this.gl.useProgram(e),this.activeShader=e}setVertexAttr(e,t,i){const r=this.gl.getAttribLocation(this.activeShader,e);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,i),this.gl.vertexAttribPointer(r,t,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(r)}setUniform(e,t){const i=this.gl.getUniformLocation(this.activeShader,e);this.gl.uniformMatrix4fv(i,!1,t)}}var Ut=(s,e,t)=>new Promise((i,r)=>{var n=u=>{try{o(t.next(u))}catch(f){r(f)}},a=u=>{try{o(t.throw(u))}catch(f){r(f)}},o=u=>u.done?i(u.value):Promise.resolve(u.value).then(n,a);o((t=t.apply(s,e)).next())});class Ke{constructor(e,t){this.img=e,this.idMap=t,this.part=16/e.width}getTextureAtlas(){return this.img}getTextureUV(e){var t;return(t=this.idMap[e])!=null?t:[0,0,this.part,this.part]}static fromBlobs(e){return Ut(this,null,function*(){const t=Math.sqrt(Object.keys(e).length+1),i=Math.pow(2,Math.ceil(Math.log(t)/Math.log(2))),r=16*i,n=1/i,a=document.createElement("canvas");a.width=r,a.height=r;const o=a.getContext("2d");this.drawInvalidTexture(o);const u={};let f=1;return yield Promise.all(Object.keys(e).map(c=>Ut(this,null,function*(){const h=f%i,m=Math.floor(f/i);f+=1,u[c]=[n*h,n*m,n*h+n,n*m+n];const d=yield createImageBitmap(e[c]);o.drawImage(d,0,0,16,16,16*h,16*m,16,16)}))),new Ke(o.getImageData(0,0,r,r),u)})}static empty(){const e=document.createElement("canvas");e.width=16,e.height=16;const t=e.getContext("2d");return Ke.drawInvalidTexture(t),new Ke(t.getImageData(0,0,16,16),{})}static drawInvalidTexture(e){e.fillStyle="black",e.fillRect(0,0,16,16),e.fillStyle="magenta",e.fillRect(0,0,8,8),e.fillRect(8,8,8,8)}}const ge=class{constructor(s,e,t){this.offsetSampler=s,this.factorSampler=e,this.jaggednessSampler=t}static extractor(s){return{compute:e=>e[s]}}static fromJson(s){var e;const t=(e=v.readObject(s))!=null?e:{};return new ge(Te.fromJson(t.offset,this.EXTRACTOR),Te.fromJson(t.factor,this.EXTRACTOR),Te.fromJson(t.jaggedness,this.EXTRACTOR))}offset(s){return this.offsetSampler.compute(s)+ge.GLOBAL_OFFSET}factor(s){return this.factorSampler.compute(s)}jaggedness(s){return this.jaggednessSampler.compute(s)}static point(s,e,t){return{continents:s,erosion:e,weirdness:t,ridges:this.peaksAndValleys(t)}}static peaksAndValleys(s){return 3*-(Math.abs(Math.abs(s)-.6666667)-.33333334)}};let pe=ge;var G,Ne,Gt,ke,xt;pe.GLOBAL_OFFSET=-.50375,pe.EXTRACTOR=s=>{var e;const t=(e=v.readString(s))!=null?e:"continents";return ge.extractor(t)},pe.CONTINENTS=ge.extractor("continents"),pe.EROSION=ge.extractor("erosion"),pe.WEIRDNESS=ge.extractor("weirdness"),pe.RIDGES=ge.extractor("ridges"),function(s){function e(t){return t.ySize<<2}s.fromJson=function(t){var i,r,n,a,o;const u=(i=v.readObject(t))!=null?i:{};return{minY:(r=v.readInt(u.min_y))!=null?r:0,height:(n=v.readInt(u.height))!=null?n:256,xzSize:(a=v.readInt(u.size_horizontal))!=null?a:1,ySize:(o=v.readInt(u.size_vertical))!=null?o:1,sampling:bt.fromJson(u.sampling),topSlide:Ne.fromJson(u.top_slide),bottomSlide:Ne.fromJson(u.bottom_slide),terrainShaper:pe.fromJson(u.terrain_shaper)}},s.cellHeight=e,s.cellWidth=function(t){return t.xzSize<<2},s.cellCountY=function(t){return t.height/e(t)},s.minCellY=function(t){return Math.floor(t.minY/e(t))},s.applySlides=function(t,i,r){const n=Math.floor(r/e(t))-s.minCellY(t);return i=Ne.apply(t.topSlide,i,s.cellCountY(t)-n),i=Ne.apply(t.bottomSlide,i,n)}}(G||(G={})),(Gt=Ne||(Ne={})).fromJson=function(s){var e,t,i,r;const n=(e=v.readObject(s))!=null?e:{};return{target:(t=v.readNumber(n.target))!=null?t:0,size:(i=v.readInt(n.size))!=null?i:0,offset:(r=v.readInt(n.offset))!=null?r:0}},Gt.apply=function(s,e,t){if(s.size<=0)return e;const i=(t-s.offset)/s.size;return Rt(s.target,e,i)},function(s){function e(t){const i=new gt(D.create(t));return gt.REGISTRY.register(i.key,i),i}s.NOISE=e("worldgen/noise"),s.DENSITY_FUNCTION=e("worldgen/density_function")}(ke||(ke={}));class C{minValue(){return-this.maxValue()}mapAll(e){return e.map(this)}}(function(s){s.context=function(b,l,p){return{x:b,y:l,z:p}};class e extends s{constructor(l){super(),this.input=l}compute(l){return this.transform(l,this.input.compute(l))}}const t=Me.parser(ke.NOISE,et.fromJson);s.fromJson=function b(l,p=b){var A,y,O,U,se,be,Z,q,W,ce,fe,Ye,Xe,ye,_e,Le,Fe,ie,Se;if(typeof l=="string")return new n(Me.reference(ke.DENSITY_FUNCTION,D.parse(l)));if(typeof l=="number")return new r(l);const E=(A=v.readObject(l))!=null?A:{},ot=(y=v.readString(E.type))==null?void 0:y.replace(/^minecraft:/,"");switch(ot){case"blend_alpha":return new a(1,0,1);case"blend_offset":case"beardifier":return new a(0,-1/0,1/0);case"old_blended_noise":return new o;case"flat_cache":return new f(p(E.argument));case"interpolated":return new d(p(E.argument));case"cache_2d":return new h(p(E.argument));case"cache_once":return new m(p(E.argument));case"cache_all_in_cell":return new c(p(E.argument));case"noise":return new g((O=v.readNumber(E.xz_scale))!=null?O:1,(U=v.readNumber(E.y_scale))!=null?U:1,t(E.noise));case"end_islands":return new w;case"weird_scaled_sampler":return new B(p(E.input),v.readEnum(E.rarity_value_mapper,S),t(E.noise));case"shifted_noise":return new R(p(E.shift_x),p(E.shift_y),p(E.shift_z),(se=v.readNumber(E.xz_scale))!=null?se:1,(be=v.readNumber(E.y_scale))!=null?be:1,t(E.noise));case"range_choice":return new _(p(E.input),(Z=v.readNumber(E.min_inclusive))!=null?Z:0,(q=v.readNumber(E.max_exclusive))!=null?q:1,p(E.when_in_range),p(E.when_out_of_range));case"shift_a":return new T(t(E.argument));case"shift_b":return new M(t(E.argument));case"shift":return new k(t(E.argument));case"blend_density":return new K(p(E.argument));case"clamp":return new Y(p(E.input),(W=v.readNumber(E.min))!=null?W:0,(ce=v.readNumber(E.max))!=null?ce:1);case"abs":case"square":case"cube":case"half_negative":case"quarter_negative":case"squeeze":return new Q(ot,p(E.argument));case"slide":return new ee(p(E.argument));case"add":case"mul":case"min":case"max":return new ne(v.readEnum(ot,j),p(E.argument1),p(E.argument2));case"spline":return new V(Te.fromJson(E.spline,p),(fe=v.readNumber(E.min_value))!=null?fe:0,(Ye=v.readNumber(E.max_value))!=null?Ye:1);case"terrain_shaper_spline":return new Ae(p(E.continentalness),p(E.erosion),p(E.weirdness),v.readEnum(E.spline,z),(Xe=v.readNumber(E.min_value))!=null?Xe:0,(ye=v.readNumber(E.max_value))!=null?ye:1);case"constant":return new r((_e=v.readNumber(E.argument))!=null?_e:0);case"y_clamped_gradient":return new Pe((Le=v.readInt(E.from_y))!=null?Le:-4064,(Fe=v.readInt(E.to_y))!=null?Fe:4062,(ie=v.readNumber(E.from_value))!=null?ie:-4064,(Se=v.readNumber(E.to_value))!=null?Se:4062)}return r.ZERO};const i=class extends s{constructor(b){super(),this.value=b}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let r=i;r.ZERO=new i(0),r.ONE=new i(1),s.Constant=r;class n extends s{constructor(l){super(),this.holder=l}compute(l){return this.holder.value().compute(l)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}s.HolderHolder=n;class a extends s.Constant{constructor(l,p,A){super(l),this.min=p,this.max=A}minValue(){return this.min}maxValue(){return this.max}}s.ConstantMinMax=a;class o extends s{constructor(l){super(),this.blendedNoise=l!=null?l:new ss(L.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(l){return this.blendedNoise.sample(l.x,l.y,l.z)}maxValue(){return this.blendedNoise.maxValue}}s.OldBlendedNoise=o;class u extends s{constructor(l){super(),this.wrapped=l}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class f extends u{constructor(l){super(l),this.lastValue=0}compute(l){const p=l.x>>2,A=l.z>>2;return this.lastQuartX===p&&this.lastQuartZ===A||(this.lastValue=this.wrapped.compute(s.context(p<<2,0,A<<2)),this.lastQuartX=p,this.lastQuartZ=A),this.lastValue}mapAll(l){return l.map(new f(this.wrapped.mapAll(l)))}}s.FlatCache=f;class c extends u{constructor(l){super(l)}compute(l){return this.wrapped.compute(l)}mapAll(l){return l.map(new c(this.wrapped.mapAll(l)))}}s.CacheAllInCell=c;class h extends u{constructor(l){super(l),this.lastValue=0}compute(l){const p=l.x,A=l.z;return this.lastBlockX===p&&this.lastBlockZ===A||(this.lastValue=this.wrapped.compute(l),this.lastBlockX=p,this.lastBlockZ=A),this.lastValue}mapAll(l){return l.map(new h(this.wrapped.mapAll(l)))}}s.Cache2D=h;class m extends u{constructor(l){super(l),this.lastValue=0}compute(l){const p=l.x,A=l.y,y=l.z;return this.lastBlockX===p&&this.lastBlockY===A&&this.lastBlockZ===y||(this.lastValue=this.wrapped.compute(l),this.lastBlockX=p,this.lastBlockY=A,this.lastBlockZ=y),this.lastValue}mapAll(l){return l.map(new m(this.wrapped.mapAll(l)))}}s.CacheOnce=m;class d extends u{constructor(l,p=4,A=4){super(l),this.cellWidth=p,this.cellHeight=A,this.values=new Map}compute({x:l,y:p,z:A}){const y=this.cellWidth,O=this.cellHeight,U=(l%y+y)%y/y,se=(p%O+O)%O/O,be=(A%y+y)%y/y,Z=Math.floor(l/y)*y,q=Math.floor(p/O)*O,W=Math.floor(A/y)*y;return Rs(U,se,be,()=>this.computeCorner(Z,q,W),()=>this.computeCorner(Z+y,q,W),()=>this.computeCorner(Z,q+O,W),()=>this.computeCorner(Z+y,q+O,W),()=>this.computeCorner(Z,q,W+y),()=>this.computeCorner(Z+y,q,W+y),()=>this.computeCorner(Z,q+O,W+y),()=>this.computeCorner(Z+y,q+O,W+y))}computeCorner(l,p,A){return nt(this.values,`${l} ${p} ${A}`,()=>this.wrapped.compute(s.context(l,p,A)))}mapAll(l){return l.map(new d(this.wrapped.mapAll(l)))}withCellSize(l,p){return new d(this.wrapped,l,p)}}s.Interpolated=d;class g extends s{constructor(l,p,A,y){super(),this.xzScale=l,this.yScale=p,this.noiseData=A,this.noise=y}compute(l){var p,A;return(A=(p=this.noise)==null?void 0:p.sample(l.x*this.xzScale,l.y*this.yScale,l.z*this.xzScale))!=null?A:0}maxValue(){var l,p;return(p=(l=this.noise)==null?void 0:l.maxValue)!=null?p:2}}s.Noise=g;class w extends s{compute(){return 0}minValue(){return-.84375}maxValue(){return .5625}}const S=["type_1","type_2"],I=class extends e{constructor(b,l,p,A){super(b),this.rarityValueMapper=l,this.noiseData=p,this.noise=A,this.mapper=I.ValueMapper[this.rarityValueMapper]}transform(b,l){if(!this.noise)return 0;const p=this.mapper(l);return p*Math.abs(this.noise.sample(b.x/p,b.y/p,b.z/p))}mapAll(b){return b.map(new I(this.input.mapAll(b),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return this.rarityValueMapper==="type_1"?2:3}static rarityValueMapper1(b){return b<-.5?.75:b<0?1:b<.5?1.5:2}static rarityValueMapper2(b){return b<-.75?.5:b<-.5?.75:b<.5?1:b<.75?2:3}};let B=I;B.ValueMapper={type_1:I.rarityValueMapper1,type_2:I.rarityValueMapper2},s.WeirdScaledSampler=B;class R extends g{constructor(l,p,A,y,O,U,se){super(y,O,U,se),this.shiftX=l,this.shiftY=p,this.shiftZ=A}compute(l){var p,A;const y=l.x*this.xzScale+this.shiftX.compute(l),O=l.y*this.yScale+this.shiftY.compute(l),U=l.z*this.xzScale+this.shiftZ.compute(l);return(A=(p=this.noise)==null?void 0:p.sample(y,O,U))!=null?A:0}mapAll(l){return l.map(new R(this.shiftX.mapAll(l),this.shiftY.mapAll(l),this.shiftZ.mapAll(l),this.xzScale,this.yScale,this.noiseData,this.noise))}}s.ShiftedNoise=R;class _ extends s{constructor(l,p,A,y,O){super(),this.input=l,this.minInclusive=p,this.maxExclusive=A,this.whenInRange=y,this.whenOutOfRange=O}compute(l){const p=this.input.compute(l);return this.minInclusive<=p&&pMath.abs(b),square:b=>b*b,cube:b=>b*b*b,half_negative:b=>b>0?b:.5*b,quarter_negative:b=>b>0?b:.25*b,squeeze:b=>{const l=ve(b,-1,1);return l/2-l*l*l/24}},s.Mapped=Q;class ee extends e{constructor(l,p){super(l),this.settings=p}transform(l,p){return this.settings?G.applySlides(this.settings,p,l.y):p}mapAll(l){return l.map(new ee(this.input.mapAll(l),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}s.Slide=ee;const j=["add","mul","min","max"];class ne extends s{constructor(l,p,A,y,O){super(),this.type=l,this.argument1=p,this.argument2=A,this.min=y,this.max=O}compute(l){const p=this.argument1.compute(l);switch(this.type){case"add":return p+this.argument2.compute(l);case"mul":return p===0?0:p*this.argument2.compute(l);case"min":return pthis.argument2.maxValue()?p:Math.max(p,this.argument2.compute(l))}}mapAll(l){return l.map(new ne(this.type,this.argument1.mapAll(l),this.argument2.mapAll(l)))}minValue(){var l;return(l=this.min)!=null?l:-1/0}maxValue(){var l;return(l=this.max)!=null?l:1/0}withMinMax(){const l=this.argument1.minValue(),p=this.argument2.minValue(),A=this.argument1.maxValue(),y=this.argument2.maxValue();let O,U;switch(this.type!=="min"&&this.type!=="max"||!(l>=y||p>=A)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case"add":O=l+p,U=A+y;break;case"mul":O=l>0&&p>0?l*p||0:A<0&&y<0?A*y||0:Math.min(l*y||0,p*A||0),U=l>0&&p>0?A*y||0:A<0&&y<0?l*p||0:Math.max(l*p||0,A*y||0);break;case"min":O=Math.min(l,p),U=Math.min(A,y);break;case"max":O=Math.max(l,p),U=Math.max(A,y)}return new ne(this.type,this.argument1,this.argument2,O,U)}}s.Ap2=ne;class V extends s{constructor(l,p,A){super(),this.spline=l,this.min=p,this.max=A}compute(l){return ve(this.spline.compute(l),this.min,this.max)}mapAll(l){return l.map(new V(this.spline.mapAll(p=>p instanceof s?p.mapAll(l):p),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}s.Spline=V;const z=["offset","factor","jaggedness"];class Ae extends s{constructor(l,p,A,y,O,U,se){super(),this.continentalness=l,this.erosion=p,this.weirdness=A,this.spline=y,this.min=O,this.max=U,this.shaper=se}compute(l){if(!this.shaper)return 0;const p=pe.point(this.continentalness.compute(l),this.erosion.compute(l),this.weirdness.compute(l));return ve(this.shaper[this.spline](p),this.min,this.max)}mapAll(l){return l.map(new Ae(this.continentalness.mapAll(l),this.erosion.mapAll(l),this.weirdness.mapAll(l),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}s.TerrainShaperSpline=Ae;class Pe extends s{constructor(l,p,A,y){super(),this.fromY=l,this.toY=p,this.fromValue=A,this.toValue=y}compute(l){return es(l.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}s.YClampedGradient=Pe})(C||(C={}));class it{constructor(e,t){this.level=e,this.type=t}at(e){return e0))return s(e,t,i).at(t)}}};const re=class{constructor(s,e,t,i,r,n,a,o,u,f){this.noiseChunk=s,this.barrierNoise=t,this.fluidLevelFloodednessNoise=i,this.fluidLevelSpreadNoise=r,this.lavaNoise=n,this.random=a,this.globalFluidPicker=f,this.minGridX=this.gridX($.minBlockX(e))-1,this.gridSizeX=this.gridX($.maxBlockX(e))+1-this.minGridX+1,this.minGridY=this.gridY(o)-1,this.minGridZ=this.gridZ($.minBlockZ(e))-1,this.gridSizeZ=this.gridZ($.maxBlockZ(e))+1-this.minGridZ+1;const c=this.gridY(o+u)+1-this.minGridY+1;this.gridSize=this.gridSizeX*c*this.gridSizeZ,this.aquiferCache=Array(this.gridSize).fill(void 0),this.aquiferLocationCache=Array(this.gridSize).fill(J.ZERO)}compute({x:s,y:e,z:t},i){if(i<=0){if(this.globalFluidPicker(s,e,t).at(e).is(P.LAVA))return P.LAVA;{const r=this.gridX(s-5),n=this.gridY(e+1),a=this.gridZ(t-5);let o=Number.MAX_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER,f=Number.MAX_SAFE_INTEGER,c=J.ZERO,h=J.ZERO,m=J.ZERO;for(let _=0;_<=1;_+=1)for(let x=-1;x<=1;x+=1)for(let T=0;T<=1;T+=1){const M=this.getLocation(r+_,n+x,a+T),k=J.magnitude(M);o>=k?(m=h,h=c,c=M,f=u,u=o,o=k):u>=k?(m=h,h=M,f=u,u=k):f>=k&&(m=M,f=k)}const d=this.getStatus(c),g=this.getStatus(h),w=this.getStatus(m),S=re.similarity(o,u),I=re.similarity(o,f),B=re.similarity(u,f);let R;if(d.at(e).is(P.WATER)&&this.globalFluidPicker(s,e-1,t).at(e-1).is(P.LAVA))R=1;else if(S>-1){const _=qe(()=>this.barrierNoise.compute(C.context(s,.5*e,t))),x=this.calculatePressure(e,d,g,_),T=this.calculatePressure(e,d,w,_),M=this.calculatePressure(e,g,w,_),k=Math.max(x,T*Math.max(0,I),M*Math.max(B));R=Math.max(0,2*Math.max(0,S)*k)}else R=0;if(i+R<=0)return d.at(e)}}}static similarity(s,e){return 1-Math.abs(e-s)/25}calculatePressure(s,e,t,i){const r=e.at(s),n=t.at(s);if(r.is(P.LAVA)&&n.is(P.WATER)||r.is(P.WATER)&&n.is(P.LAVA))return 1;const a=Math.abs(e.level-t.level);if(a===0)return 0;const o=s+.5-(e.level+t.level)/2,u=a/2-Math.abs(o),f=o>0?u>0?u/1.5:u/2.5:u>-3?(u+3)/3:(u+3)/10;return f<-2||f>2?f:f+i()}getStatus(s){const[e,t,i]=s,r=this.getIndex(this.gridX(e),this.gridY(t),this.gridZ(i)),n=this.aquiferCache[r];if(n!==void 0)return n;const a=this.computeStatus(e,t,i);return this.aquiferCache[r]=a,a}computeStatus(s,e,t){const i=this.globalFluidPicker(s,e,t);let r=Number.MAX_SAFE_INTEGER,n=!1;for(const[d,g]of re.SURFACE_SAMPLING){const w=s+(g<<4),S=t+(g<<4),I=this.noiseChunk.getPreliminarySurfaceLevel(w,S);r=Math.min(r,I);const B=d===0&&g===0;if(B&&e-12>I+8)return i;if(B||e+12>I+8){const R=this.globalFluidPicker(w,I+8,S);if(!R.at(I+8).is(P.AIR)){if(B)return R;n=!0}}}const a=n?es(r+8-e,0,64,1,0):0,o=ve(this.fluidLevelFloodednessNoise.compute(C.context(s,.67*e,t)),-1,1);if(o>Qe(a,1,0,-.3,.8))return i;if(o<=Qe(a,1,0,-.8,.4))return new it(Number.MIN_SAFE_INTEGER,i.type);const u=Math.floor(e/40),f=this.fluidLevelSpreadNoise.compute(C.context(Math.floor(s/16),u,Math.floor(t/16))),c=40*u+20+3*Math.floor(f/3),h=Math.min(r,c),m=this.getFluidType(s,e,t,i.type,c);return new it(h,m)}getFluidType(s,e,t,i,r){if(r<=-10){const n=this.lavaNoise.compute(C.context(Math.floor(s/64),Math.floor(e/40),Math.floor(t/64)));if(Math.abs(n)>.3)return P.LAVA}return i}getLocation(s,e,t){const i=this.getIndex(s,e,t),r=this.aquiferLocationCache[i];if(J.equals(r,J.ZERO))return r;const n=this.random.at(s,e,t),a=J.create(s*re.X_SPACING+n.nextInt(10),e*re.Y_SPACING+n.nextInt(9),t*re.Z_SPACING+n.nextInt(10));return this.aquiferLocationCache[i]=a,a}getIndex(s,e,t){const i=s-this.minGridX,r=e-this.minGridY,n=t-this.minGridZ,a=(r*this.gridSizeZ+n)*this.gridSizeX+i;if(a<0||a>=this.gridSize)throw new Error(`Invalid aquifer index at ${s} ${e} ${t}: 0 <= ${a} < ${this.gridSize}`);return a}gridX(s){return Math.floor(s/re.X_SPACING)}gridY(s){return Math.floor(s/re.Y_SPACING)}gridZ(s){return Math.floor(s/re.Z_SPACING)}};let je=re;var rt,le;je.X_SPACING=16,je.Y_SPACING=12,je.Z_SPACING=16,je.SURFACE_SAMPLING=[[-2,-1],[-1,-1],[0,-1],[1,-1],[-3,0],[-2,0],[-1,0],[0,0],[1,0],[-2,1],[-1,1],[0,1],[1,1]],function(s){function e(c,h){return typeof c=="number"?new t(c,h!=null?h:c):c}s.target=function(c,h,m,d,g,w){return new r(c,h,m,d,g,w)},s.parameters=function(c,h,m,d,g,w,S){return new i(e(c),e(h),e(m),e(d),e(g),e(w),S)},s.param=e;class t{constructor(h,m){this.min=h,this.max=m}distance(h){const m=(typeof h=="number"?h:h.min)-this.max,d=this.min-(typeof h=="number"?h:h.max);return m>0?m:Math.max(d,0)}union(h){return new t(Math.min(this.min,h.min),Math.max(this.max,h.max))}static fromJson(h){var m;if(typeof h=="number")return new t(h,h);const[d,g]=(m=v.readArray(h,w=>v.readNumber(w)))!=null?m:[];return new t(d!=null?d:0,g!=null?g:0)}}s.Param=t;class i{constructor(h,m,d,g,w,S,I){this.temperature=h,this.humidity=m,this.continentalness=d,this.erosion=g,this.depth=w,this.weirdness=S,this.offset=I}fittness(h){return de(this.temperature.distance(h.temperature))+de(this.humidity.distance(h.humidity))+de(this.continentalness.distance(h.continentalness))+de(this.erosion.distance(h.erosion))+de(this.depth.distance(h.depth))+de(this.weirdness.distance(h.weirdness))+de(this.offset-h.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new t(this.offset,this.offset)]}static fromJson(h){var m,d;const g=(m=v.readObject(h))!=null?m:{};return new i(t.fromJson(g.temperature),t.fromJson(g.humidity),t.fromJson(g.continentalness),t.fromJson(g.erosion),t.fromJson(g.depth),t.fromJson(g.weirdness),(d=v.readInt(g.offset))!=null?d:0)}}s.ParamPoint=i;class r{constructor(h,m,d,g,w,S){this.temperature=h,this.humidity=m,this.continentalness=d,this.erosion=g,this.depth=w,this.weirdness=S}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}s.TargetPoint=r,s.Parameters=class{constructor(c){this.things=c,this.index=new a(c)}find(c){return this.index.search(c,(h,m)=>h.distance(m))}},s.Sampler=class{constructor(c,h,m,d,g,w){this.temperature=c,this.humidity=h,this.continentalness=m,this.erosion=d,this.depth=g,this.weirdness=w}static fromRouter(c){return new s.Sampler(c.temperature,c.vegetation,c.continents,c.erosion,c.depth,c.ridges)}sample(c,h,m){const d=C.context(c<<2,h<<2,m<<2);return s.target(this.temperature.compute(d),this.humidity.compute(d),this.continentalness.compute(d),this.erosion.compute(d),this.depth.compute(d),this.weirdness.compute(d))}};const n=class{constructor(c){this.root=n.build(c.map(([h,m])=>new f(h,m)))}static build(c){if(c.length===1)return c[0];if(c.length<=n.CHILDREN_PER_NODE){const g=c.map(w=>{let S=0;for(let I=0;I<7;I+=1){const B=w.space[I];S+=Math.abs((B.min+B.max)/2)}return{key:S,node:w}}).sort((w,S)=>w.key-S.key).map(({node:w})=>w);return new u(g)}let h=1/0,m=-1,d=[];for(let g=0;g<7;++g){c=n.sort(c,g,!1),d=n.bucketize(c);let w=0;for(const S of d)w+=n.area(S.space);h>w&&(h=w,m=g)}return c=n.sort(c,m,!1),d=n.bucketize(c),d=n.sort(d,m,!0),new u(d.map(g=>n.build(g.children)))}static sort(c,h,m){return c.map(d=>{const g=d.space[h],w=(g.min+g.max)/2;return{key:m?Math.abs(w):w,node:d}}).sort((d,g)=>d.key-g.key).map(({node:d})=>d)}static bucketize(c){const h=[];let m=[];const d=Math.pow(10,Math.floor(Math.log(c.length-.01)/Math.log(10)));for(const g of c)m.push(g),m.lengthnew t(1/0,-1/0));for(const d of h)m=[...Array(7)].map((g,w)=>m[w].union(d.space[w]));return m}search(h,m){let d=1/0,g=null;for(const w of this.children){const S=m(w,h);if(d<=S)continue;const I=w.search(h,m),B=w==I?S:m(I,h);d<=B||(d=B,g=I)}return g}}s.RSubTree=u;class f extends o{constructor(h,m){super(h.space()),this.thing=m}search(){return this}}s.RLeaf=f}(rt||(rt={}));class as{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,i;const r=(t=v.readObject(e))!=null?t:{},n=D.parse((i=v.readString(r.biome))!=null?i:"minecraft:the_void");return new as(n)}}class os{constructor(e){this.parameters=e}getBiome(e,t,i,r){const n=r.sample(e,t,i);return this.parameters.find(n)}static fromJson(e){var t,i;const r=(t=v.readObject(e))!=null?t:{},n=((i=v.readArray(r.biomes,a=>{var o,u,f;return u=(o=v.readObject(a))!=null?o:{},{biome:D.parse((f=v.readString(u.biome))!=null?f:"minecraft:the_void"),parameters:rt.ParamPoint.fromJson(u.parameters)}}))!=null?i:[]).map(a=>[a.parameters,()=>a.biome]);return new os(new rt.Parameters(n))}}(function(s){function e(i,r,n){return ke.NOISE.register(D.create(i),et.create(r,n))}s.TEMPERATURE=e("temperature",-10,[1.5,0,1,0,0,0]),s.VEGETATION=e("vegetation",-8,[1,1,0,0,0,0]),s.CONTINENTALNESS=e("continentalness",-9,[1,1,2,2,2,1,1,1,1]),s.EROSION=e("erosion",-9,[1,1,0,1,1]),s.TEMPERATURE_LARGE=e("temperature_large",-12,[1.5,0,1,0,0,0]),s.VEGETATION_LARGE=e("vegetation_large",-10,[1,1,0,0,0,0]),s.CONTINENTALNESS_LARGE=e("continentalness_large",-11,[1,1,2,2,2,1,1,1,1]),s.EROSION_LARGE=e("erosion_large",-11,[1,1,0,1,1]),s.RIDGE=e("ridge",-7,[1,2,1,0,0,0]),s.SHIFT=e("offset",-3,[1,1,1,0]),s.AQUIFER_BARRIER=e("aquifer_barrier",-3,[1]),s.AQUIFER_FLUID_LEVEL_FLOODEDNESS=e("aquifer_fluid_level_floodedness",-7,[1]),s.AQUIFER_FLUID_LEVEL_SPREAD=e("aquifer_fluid_level_spread",-5,[1]),s.AQUIFER_LAVA=e("aquifer_lava",-1,[1]),s.PILLAR=e("pillar",-7,[1,1]),s.PILLAR_RARENESS=e("pillar_rareness",-8,[1]),s.PILLAR_THICKNESS=e("pillar_thickness",-8,[1]),s.SPAGHETTI_2D=e("spaghetti_2d",-8,[1]),s.SPAGHETTI_2D_ELEVATION=e("spaghetti_2d_elevation",-8,[1]),s.SPAGHETTI_2D_MODULATOR=e("spaghetti_2d_modulator",-8,[1]),s.SPAGHETTI_2D_THICKNESS=e("spaghetti_2d_thickness",-8,[1]),s.SPAGHETTI_3D_1=e("spaghetti_3d_1",-8,[1]),s.SPAGHETTI_3D_2=e("spaghetti_3d_2",-8,[1]),s.SPAGHETTI_3D_RARITY=e("spaghetti_3d_rarity",-8,[1]),s.SPAGHETTI_3D_THICKNESS=e("spaghetti_3d_thickness",-8,[1]),s.SPAGHETTI_ROUGHNESS=e("spaghetti_roughness",-8,[1]),s.SPAGHETTI_ROUGHNESS_MODULATOR=e("spaghetti_roughness_modulator",-8,[1]),s.CAVE_ENTRANCE=e("cave_entrance",-7,[.4,.5,1]),s.CAVE_LAYER=e("cave_layer",-8,[1]),s.CAVE_CHEESE=e("cave_cheese",-8,[.5,1,2,1,2,1,0,2,0]),s.NOODLE=e("noodle",-8,[1]),s.NOODLE_THICKNESS=e("noodle_thickness",-8,[1]),s.NOODLE_RIDGE_A=e("noodle_ridge_a",-7,[1]),s.NOODLE_RIDGE_B=e("noodle_ridge_b",-7,[1]),s.JAGGED=e("jagged",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),s.SURFACE=e("surface",-6,[1,1,1]),s.SURFACE_SECONDARY=e("surface_secondary",-6,[1,1,0,1]);const t=new Map;s.instantiate=function(i,r){var n;const a=(n=r.key())==null?void 0:n.toString();if(!a)throw new Error("Cannot instantiate noise from direct holder");const o=i.seedKey(),u=t.get(a);if(u&&u[0]===o[0]&&u[1]===o[1])return u[2];const f=new is(i.fromHashOf(a),r.value());return t.set(a,[o[0],o[1],f]),f}})(le||(le={}));var ze,At,Ge,yt,_t,ct,zt,Us=Object.defineProperty,Gs=Object.defineProperties,zs=Object.getOwnPropertyDescriptors,Yt=Object.getOwnPropertySymbols,Ys=Object.prototype.hasOwnProperty,Xs=Object.prototype.propertyIsEnumerable,Xt=(s,e,t)=>e in s?Us(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,Ht=(s,e)=>{for(var t in e||(e={}))Ys.call(e,t)&&Xt(s,t,e[t]);if(Yt)for(var t of Yt(e))Xs.call(e,t)&&Xt(s,t,e[t]);return s};(function(s){const e=i=>Me.parser(ke.DENSITY_FUNCTION,C.fromJson)(i).value();s.fromJson=function(i){var r;const n=(r=v.readObject(i))!=null?r:{};return{barrier:e(n.barrier),fluidLevelFloodedness:e(n.fluid_level_floodedness),fluidLevelSpread:e(n.fluid_level_spread),lava:e(n.lava),temperature:e(n.temperature),vegetation:e(n.vegetation),continents:e(n.continents),erosion:e(n.erosion),depth:e(n.depth),ridges:e(n.ridges),initialDensityWithoutJaggedness:e(n.initial_density_without_jaggedness),finalDensity:e(n.final_density),veinToggle:e(n.vein_toggle),veinRidged:e(n.vein_ridged),veinGap:e(n.vein_gap)}},s.create=function(i){return Ht({barrier:C.Constant.ZERO,fluidLevelFloodedness:C.Constant.ZERO,fluidLevelSpread:C.Constant.ZERO,lava:C.Constant.ZERO,temperature:C.Constant.ZERO,vegetation:C.Constant.ZERO,continents:C.Constant.ZERO,erosion:C.Constant.ZERO,depth:C.Constant.ZERO,ridges:C.Constant.ZERO,initialDensityWithoutJaggedness:C.Constant.ZERO,finalDensity:C.Constant.ZERO,veinToggle:C.Constant.ZERO,veinRidged:C.Constant.ZERO,veinGap:C.Constant.ZERO},i)},s.withSettings=function(i,r,n,a=!1){const o=(a?new he(n):L.create(n)).forkPositional(),u=new t(o,r);return f=Ht({},u.mapAll(i)),c={aquiferPositionalRandomFactory:o.fromHashOf(D.create("aquifer").toString()).forkPositional(),oreVeinsPositionalRandomFactory:o.fromHashOf(D.create("ore").toString()).forkPositional()},Gs(f,zs(c));var f,c};class t{constructor(r,n){this.random=r,this.settings=n,this.mapped=new Map}map(r){if(r instanceof C.HolderHolder){const n=r.holder.key();if(n!==void 0&&this.mapped.has(n.toString()))return this.mapped.get(n.toString());{const a=r.holder.value().mapAll(this);return n!==void 0&&this.mapped.set(n.toString(),a),a}}if(r instanceof C.Interpolated)return r.withCellSize(G.cellWidth(this.settings),G.cellHeight(this.settings));if(r instanceof C.Noise)return new C.Noise(r.xzScale,r.yScale,r.noiseData,le.instantiate(this.random,r.noiseData));if(r instanceof C.ShiftNoise)return r.withNewNoise(le.instantiate(this.random,r.noiseData));if(r instanceof C.ShiftedNoise){const n=le.instantiate(this.random,r.noiseData);return new C.ShiftedNoise(r.shiftX,r.shiftY,r.shiftZ,r.xzScale,r.yScale,r.noiseData,n)}return r instanceof C.WeirdScaledSampler?new C.WeirdScaledSampler(r.input,r.rarityValueMapper,r.noiseData,le.instantiate(this.random,r.noiseData)):r instanceof C.OldBlendedNoise?new C.OldBlendedNoise(new ss(this.random.fromHashOf(D.create("terrain").toString()),this.settings.sampling,G.cellWidth(this.settings),G.cellHeight(this.settings))):r instanceof C.Mapped||r instanceof C.Ap2?r.withMinMax():r instanceof C.TerrainShaperSpline?new C.TerrainShaperSpline(r.continentalness,r.erosion,r.weirdness,r.spline,r.min,r.max,this.settings.terrainShaper):r instanceof C.Slide?new C.Slide(r.input,this.settings):r}mapAll(r){return{barrier:r.barrier.mapAll(this),fluidLevelFloodedness:r.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:r.fluidLevelSpread.mapAll(this),lava:r.lava.mapAll(this),temperature:r.temperature.mapAll(this),vegetation:r.vegetation.mapAll(this),continents:r.continents.mapAll(this),erosion:r.erosion.mapAll(this),depth:r.depth.mapAll(this),ridges:r.ridges.mapAll(this),initialDensityWithoutJaggedness:r.initialDensityWithoutJaggedness.mapAll(this),finalDensity:r.finalDensity.mapAll(this),veinToggle:r.veinToggle.mapAll(this),veinRidged:r.veinRidged.mapAll(this),veinGap:r.veinGap.mapAll(this)}}}s.Visitor=t,s.computePreliminarySurfaceLevelScanning=function(i,r,n,a){const o=G.minCellY(i)+G.cellCountY(i),u=G.minCellY(i),f=G.cellHeight(i);for(let c=o;c>=u;c-=1){const h=c*f,m=ve(r.compute(C.context(n,h,a)),-64,64);if(G.applySlides(i,m,h)>=.390625)return h}return Number.MAX_SAFE_INTEGER}})(ze||(ze={}));class Hs{constructor(e,t,i,r,n,a,o,u,f){this.cellCountXZ=e,this.cellCountY=t,this.cellNoiseMinY=i,this.router=r,this.minX=n,this.minZ=a,this.settings=o,this.preliminarySurfaceLevel=new Map,this.cellWidth=G.cellWidth(o),this.cellHeight=G.cellHeight(o),this.firstCellX=Math.floor(n/this.cellWidth),this.firstCellZ=Math.floor(a/this.cellWidth),this.firstNoiseX=n>>2,this.firstNoiseZ=a>>2,this.noiseSizeXZ=e*this.cellWidth>>2,this.aquifer=xt.createDisabled(f);const c=this.router.finalDensity;this.materialRule=At.fromList([h=>this.aquifer.compute(h,c.compute(h))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(e,t,i){return this.materialRule({x:e,y:t,z:i})}getPreliminarySurfaceLevel(e,t){return nt(this.preliminarySurfaceLevel,$.asLong(e,t),()=>ze.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,e<<2,t<<2))}getAquifer(){return this.aquifer}}(At||(At={})).fromList=function(s){return e=>{for(const t of s){const i=t(e);if(i)return i}}},(Ge||(Ge={})).fromJson=function(s){var e,t,i,r;const n=(e=v.readObject(s))!=null?e:{};return n.absolute!==void 0?(a=(t=v.readNumber(n.absolute))!=null?t:0,()=>a):n.above_bottom!==void 0?function(o){return u=>u.minY+o}((i=v.readNumber(n.above_bottom))!=null?i:0):n.below_top!==void 0?function(o){return u=>u.maxY-o}((r=v.readNumber(n.below_top))!=null?r:0):()=>0;var a},(yt||(yt={})).create=function(s,e){return{minY:s,height:e,maxY:s+e-1}};class js{constructor(e,t,i){this.rule=e,this.defaultBlock=t,this.random=L.create(i).forkPositional(),this.surfaceNoise=le.instantiate(this.random,le.SURFACE),this.surfaceSecondaryNoise=le.instantiate(this.random,le.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(e,t,i,r){const n=$.minBlockX(e.pos),a=$.minBlockZ(e.pos),o=new Zs(this,e,t,i,r),u=this.rule(o);for(let f=0;f<16;f+=1){const c=n+f;for(let h=0;h<1;h+=1){const m=a+h;o.updateXZ(c,m);let d=0,g=Number.MIN_SAFE_INTEGER,w=Number.MAX_SAFE_INTEGER;for(let S=e.maxY;S>=e.minY;S-=1){const I=J.create(c,S,m),B=e.getBlockState(I);if(B.equals(P.AIR)){d=0,g=Number.MIN_SAFE_INTEGER;continue}if(B.isFluid()){g===Number.MIN_SAFE_INTEGER&&(g=S+1);continue}if(w>=S){w=Number.MIN_SAFE_INTEGER;for(let x=S-1;x>=e.minY;x-=1){const T=e.getBlockState(J.create(c,x,m));if(T.equals(P.AIR)||T.isFluid()){w=x+1;break}}}d+=1;const R=S-w+1;if(!B.equals(this.defaultBlock))continue;o.updateY(d,R,g,S);const _=u(c,S,m);_&&e.setBlockState(I,_)}}}}getSurfaceDepth(e,t){return 2.75*this.surfaceNoise.sample(e,0,t)+3+.25*this.random.at(e,0,t).nextDouble()}getSurfaceSecondary(e,t){return this.surfaceSecondaryNoise.sample(e,0,t)}getRandom(e){return nt(this.positionalRandoms,e,()=>this.random.fromHashOf(e))}}class Zs{constructor(e,t,i,r,n){this.system=e,this.chunk=t,this.noiseChunk=i,this.context=r,this.getBiome=n,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>"",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(e,t){this.blockX=e,this.blockZ=t,this.surfaceDepth=this.system.getSurfaceDepth(e,t),this.surfaceSecondary=qe(()=>this.system.getSurfaceSecondary(e,t)),this.minSurfaceLevel=qe(()=>this.calculateMinSurfaceLevel(e,t))}updateY(e,t,i,r){this.blockY=r,this.stoneDepthAbove=e,this.stoneDepthBelow=t,this.waterHeight=i,this.biome=qe(()=>this.getBiome(J.create(this.blockX,this.blockY,this.blockZ)))}calculateMinSurfaceLevel(e,t){const i=e>>4,r=t>>4,n=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,r<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,r<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,r+1<<4),u=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,r+1<<4);return Math.floor(vt((15&e)/16,(15&t)/16,n,a,o,u))+this.surfaceDepth-8}}(function(s){function e(r){return()=>()=>r}function t(r){return n=>{const a=r.map(o=>o(n));return(o,u,f)=>{for(const c of a){const h=c(o,u,f);if(h)return h}}}}function i(r,n){return a=>(o,u,f)=>{if(r(a))return n(a)(o,u,f)}}s.NOOP=()=>()=>{},s.fromJson=function(r){var n,a,o;const u=(n=v.readObject(r))!=null?n:{};switch((a=v.readString(u.type))==null?void 0:a.replace(/^minecraft:/,"")){case"block":return e(P.fromJson(u.result_state));case"sequence":return t((o=v.readArray(u.sequence,s.fromJson))!=null?o:[]);case"condition":return i(ct.fromJson(u.if_true),s.fromJson(u.then_run))}return s.NOOP},s.block=e,s.sequence=t,s.condition=i})(_t||(_t={})),function(s){function e(){return u=>u.blockY>=u.minSurfaceLevel()}function t(u){const f=new Set(u);return c=>f.has(c.biome())}function i(u){return f=>!u(f)}function r(u,f,c,h){return m=>{const d=h?m.stoneDepthBelow:m.stoneDepthAbove,g=f?m.surfaceDepth:0,w=c===0?0:Qe(m.surfaceSecondary(),-1,1,0,c);return d<=1+u+g+w}}function n(u,f,c){return h=>{const m=f(h.context),d=c(h.context);if(h.blockY<=m)return!0;if(h.blockY>=d)return!1;const g=h.system.getRandom(u),w=Qe(h.blockY,m,d,1,0);return g.nextFloat(){if(h.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const m=c?h.stoneDepthAbove:0;return h.blockY+m>=h.waterHeight+u+h.surfaceDepth*f}}function o(u,f,c){return h=>{const m=c?h.stoneDepthAbove:0;return h.blockY+m>=u(h.context)+h.surfaceDepth*f}}s.FALSE=()=>!1,s.TRUE=()=>!0,s.fromJson=function(u){var f,c,h,m,d,g,w,S,I,B,R,_;const x=(f=v.readObject(u))!=null?f:{};switch((c=v.readString(x.type))==null?void 0:c.replace(/^minecraft:/,"")){case"above_preliminary_surface":return T=>T.blockY>=T.minSurfaceLevel();case"biome":return t((h=v.readArray(x.biome_is,T=>{var M;return(M=v.readString(T))!=null?M:""}))!=null?h:[]);case"not":return i(s.fromJson(x.invert));case"stone_depth":return r((m=v.readInt(x.offset))!=null?m:0,(d=v.readBoolean(x.add_surface_depth))!=null&&d,(g=v.readInt(x.secondary_depth_range))!=null?g:0,v.readString(x.surface_type)==="ceiling");case"vertical_gradient":return n((w=v.readString(x.random_name))!=null?w:"",Ge.fromJson(x.true_at_and_below),Ge.fromJson(x.false_at_and_above));case"water":return a((S=v.readInt(x.offset))!=null?S:0,(I=v.readInt(x.surface_depth_multiplier))!=null?I:0,(B=v.readBoolean(x.add_surface_depth))!=null&&B);case"y_above":return o(Ge.fromJson(x.anchor),(R=v.readInt(x.surface_depth_multiplier))!=null?R:0,(_=v.readBoolean(x.add_surface_depth))!=null&&_)}return s.FALSE},s.abovePreliminarySurface=e,s.biome=t,s.not=i,s.stoneDepth=r,s.verticalGradient=n,s.water=a,s.yAbove=o}(ct||(ct={}));class ni{constructor(e,t,i){this.biomeSource=t,this.settings=i,this.router=ze.withSettings(i.noiseRouter,i.noise,e,i.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new js(i.surfaceRule,i.defaultBlock,e);const r=new it(-54,P.LAVA),n=new it(i.seaLevel,i.defaultFluid);this.globalFluidPicker=(a,o,u)=>o=0;I-=1)for(let B=o-1;B>=0;B-=1){const R=(f+I)*o+B,_=15&R,x=e.getSectionIndex(R);e.getSectionIndex(S.minBlockY)!==x&&(S=e.getOrCreateSection(x));for(let T=0;Tt)}getNoiseChunk(e){return nt(this.noiseChunkCache,$.toLong(e.pos),()=>{const t=Math.max(e.minY,this.settings.noise.minY),i=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),r=G.cellWidth(this.settings.noise),n=G.cellHeight(this.settings.noise),a=Math.floor(16/r),o=Math.floor(t/n),u=Math.floor((i-t)/n),f=$.minBlockX(e.pos),c=$.minBlockZ(e.pos);return new Hs(a,u,o,this.router,f,c,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)})}}(zt||(zt={})).fromJson=function(s){var e,t,i,r,n,a;const o=(e=v.readObject(s))!=null?e:{};return{surfaceRule:_t.fromJson(o.surface_rule),noise:G.fromJson(o.noise),defaultBlock:P.fromJson(o.default_block),defaultFluid:P.fromJson(o.default_fluid),noiseRouter:ze.fromJson(o.noise_router),seaLevel:(t=v.readInt(o.sea_level))!=null?t:0,disableMobGeneration:(i=v.readBoolean(o.disable_mob_generation))!=null&&i,aquifersEnabled:(r=v.readBoolean(o.aquifers_enabled))!=null&&r,oreVeinsEnabled:(n=v.readBoolean(o.ore_veins_enabled))!=null&&n,legacyRandomSource:(a=v.readBoolean(o.legacy_random_source))!=null&&a}};export{xt as Aquifer,ss as BlendedNoise,Ps as BlockColors,Bt as BlockDefinition,at as BlockModel,J as BlockPos,P as BlockState,si as Chunk,$ as ChunkPos,pt as ChunkSection,rt as Climate,Te as CubicSpline,C as DensityFunction,F as Direction,as as FixedBiome,it as FluidStatus,Me as Holder,D as Identifier,Pt as ImprovedNoise,Ts as LegacyPositionalRandom,he as LegacyRandom,At as MaterialRule,os as MultiNoise,Ss as NbtReader,xs as NbtWriter,je as NoiseAquifer,Hs as NoiseChunk,ni as NoiseChunkGenerator,zt as NoiseGeneratorSettings,et as NoiseParameters,ze as NoiseRouter,bt as NoiseSamplingSettings,G as NoiseSettings,Ne as NoiseSlideSettings,le as Noises,is as NormalNoise,X as PerlinNoise,ii as PerlinSimplexNoise,gt as Registry,te as SimplexNoise,Kt as Structure,ri as StructureRenderer,ct as SurfaceCondition,Zs as SurfaceContext,_t as SurfaceRule,js as SurfaceSystem,pe as TerrainShaper,Ke as TextureAtlas,Ge as VerticalAnchor,yt as WorldgenContext,ke as WorldgenRegistries,Cs as XoroshiroPositionalRandom,L as XoroshiroRandom,Bs as binarySearch,ve as clamp,Rt as clampedLerp,es as clampedMap,He as getListTag,$t as getOptional,ts as getSeed,Be as getTag,Qt as inverseLerp,Je as lazyLerp,Ot as lazyLerp2,Rs as lazyLerp3,we as lerp,vt as lerp2,Ns as lerp3,wt as longfromBytes,Qe as map,Js as read,Ks as readChunk,Wt as readCompressed,$s as readRegion,Et as readUncompressed,lt as smoothstep,de as square,Ct as tagNames,Ve as tagTypes,Qs as write,ti as writeChunk,dt as writeCompressed,ei as writeRegion,It as writeUncompressed}; -//# sourceMappingURL=deepslate.esm.e3d0e818.js.map +//# sourceMappingURL=deepslate.esm.7bd59038.js.map diff --git a/assets/deepslate.esm.e3d0e818.js.map b/assets/deepslate.esm.7bd59038.js.map similarity index 99% rename from assets/deepslate.esm.e3d0e818.js.map rename to assets/deepslate.esm.7bd59038.js.map index 5c6ca843..de1c1577 100644 --- a/assets/deepslate.esm.e3d0e818.js.map +++ b/assets/deepslate.esm.7bd59038.js.map @@ -1 +1 @@ -{"version":3,"file":"deepslate.esm.e3d0e818.js","sources":["../../node_modules/deepslate-1.18.2/dist/deepslate.esm.js"],"sourcesContent":["import t from\"pako\";import e from\"md5\";import{vec3 as s,mat4 as r,glMatrix as i}from\"gl-matrix\";var n,o;(o=n||(n={})).UP=\"up\",o.DOWN=\"down\",o.NORTH=\"north\",o.EAST=\"east\",o.SOUTH=\"south\",o.WEST=\"west\";const a={[n.UP]:[0,1,0],[n.DOWN]:[0,-1,0],[n.NORTH]:[0,0,-1],[n.EAST]:[1,0,0],[n.SOUTH]:[0,0,1],[n.WEST]:[-1,0,0]};var l,u;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return a[t]}}(n||(n={})),(u=l||(l={})).create=function(t,e,s){return[t,e,s]},u.ZERO=u.create(0,0,0),u.offset=function(t,e,s,r){return[t[0]+e,t[1]+s,t[2]+r]},u.towards=function(t,e){return u.offset(t,...n.normal(e))},u.equals=function(t,e){return t===e||t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]},u.magnitude=function(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]};const h={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},c=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class f{constructor(t,e=!1){this.byte=this.readNum.bind(this,\"getInt8\",1),this.short=this.readNum.bind(this,\"getInt16\",2),this.int=this.readNum.bind(this,\"getInt32\",4),this.float=this.readNum.bind(this,\"getFloat32\",4),this.double=this.readNum.bind(this,\"getFloat64\",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const s=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,s}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let s=0;s=e)return;let s=this.buffer.byteLength;for(;sthis.buffer.byteLength&&i.fill(0,this.buffer.byteLength,this.offset),this.buffer=r,this.dataView=new DataView(r),this.arrayView=i}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,s){this.accommodate(e),this.dataView[t](this.offset,s,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e>6),r.push(128|63&s)):s<65536?(r.push(224|s>>12),r.push(128|s>>6&63),r.push(128|63&s)):(r.push(240|s>>18&7),r.push(128|s>>12&63),r.push(128|s>>6&63),r.push(128|63&s));return r}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(h[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),r.setInt16(t+1,65535&i),r.setInt8(t+3,n),r.setInt32(t+4096,e.timestamp);const o=4096*i;r.setInt32(o,e.data.length+1),r.setInt8(o+4,e.compression),s.set(e.data,o+5),i+=n}return s}function A(t,e,s,r){const i=y(t,e,s);switch(i.compression){case 1:i.data=x(r);break;case 2:i.data=x(r,!1,!0);break;case 3:i.data=b(r);break;default:throw new Error(`Invalid compression mode ${i.compression}`)}return i}function y(t,e,s){const r=t.find((t=>t.x===e&&t.z===s));if(void 0===r)throw new Error(`Cannot find chunk [${e}, ${s}]`);return r}function E(t,e,s){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==s)throw new Error(`Expected ${e} to be of type ${s}, but found ${t[e].type}`);return t[e].value}function I(t,e,s,r){const i=E(t,e,\"list\");if(i.type!==s)throw new Error(`Expected ${e} to be a list of ${s}s, but found ${i.type}s`);if(r&&i.value.length!==r)throw new Error(`Expected ${e} to be a list of length ${r}, but found length ${i.value.length}`);return i.value}function N(t,e){try{return t()}catch(t){return e}}var B;function R(t){let e=null;return()=>(null==e&&(e=t()),e)}function T(t,e,s){const r=t.get(e);if(r)return r;const i=s(e);return t.set(e,i),i}!function(t){function e(t){return\"object\"==typeof t&&null!==t?t:void 0}t.readNumber=function(t){return\"number\"==typeof t?t:void 0},t.readInt=function(t){return\"number\"==typeof t?Math.floor(t):void 0},t.readString=function(t){return\"string\"==typeof t?t:void 0},t.readBoolean=function(t){return\"boolean\"==typeof t?t:void 0},t.readObject=e,t.readArray=function(t,e){if(Array.isArray(t))return t.map((t=>e(t)))},t.readMap=function(t,s){var r;const i=null!=(r=e(t))?r:{};return Object.fromEntries(Object.entries(i).map((([t,e])=>[t,s(e)])))},t.compose=function(t,e,s){const r=e(t);return r?s(r):void 0},t.readEnum=function(t,e){return\"string\"!=typeof t?e[0]:e.includes(t)?t:e[0]}}(B||(B={}));const M=class{constructor(t,e){if(this.namespace=t,this.path=e,!t.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${t}:${e}`);if(!e.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${t}:${e}`)}equals(t){return this===t||this.namespace===t.namespace&&this.path===t.path}toString(){return`${this.namespace}:${this.path}`}static create(t){return new M(this.DEFAULT_NAMESPACE,t)}static parse(t){const e=t.indexOf(this.SEPARATOR);if(e>=0){const s=e>=1?t.substring(0,e):this.DEFAULT_NAMESPACE,r=t.substring(e+1);return new M(s,r)}return new M(this.DEFAULT_NAMESPACE,t)}};let C=M;C.DEFAULT_NAMESPACE=\"minecraft\",C.SEPARATOR=\":\";var O=Object.defineProperty,k=Object.defineProperties,P=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,F=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable,D=(t,e,s)=>e in t?O(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;const U=class{constructor(t,e={}){this.properties=e,this.name=\"string\"==typeof t?C.parse(t):t}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return this.is(U.WATER)||this.is(U.LAVA)}equals(t){return!!this.name.equals(t.name)&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}is(t){return this.name.equals(t.name)}toString(){return 0===Object.keys(this.properties).length?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=C.parse(E(t.value,\"Name\",\"string\")),s=N((()=>E(t.value,\"Properties\",\"compound\")),{}),r=Object.keys(s).reduce(((t,e)=>{return r=((t,e)=>{for(var s in e||(e={}))F.call(e,s)&&D(t,s,e[s]);if(L)for(var s of L(e))V.call(e,s)&&D(t,s,e[s]);return t})({},t),i={[e]:E(s,e,\"string\")},k(r,P(i));var r,i}),{});return new U(e,r)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.Name))?s:U.STONE.name.toString()),n=B.readMap(r.Properties,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"}));return new U(i,n)}};let G=U;G.AIR=new U(C.create(\"air\")),G.STONE=new U(C.create(\"stone\")),G.WATER=new U(C.create(\"water\"),{level:\"0\"}),G.LAVA=new U(C.create(\"lava\"),{level:\"0\"});const z=class{constructor(t){this.minY=t,this.storage=Array(z.SIZE).fill(0),this.palette=[G.AIR]}get minBlockY(){return this.minY<<4}index(t,e,s){return(t<<8)+(e<<4)+s}getBlockState(t,e,s){var r;const i=this.storage[this.index(t,e,s)];return null!=(r=this.palette[i])?r:G.AIR}setBlockState(t,e,s,r){let i=this.palette.findIndex((t=>t.equals(r)));-1===i&&(i=this.palette.length,this.palette.push(r)),this.storage[this.index(t,e,s)]=i}};let Y=z;Y.WIDTH=16,Y.SIZE=z.WIDTH*z.WIDTH*z.WIDTH;class H{constructor(t,e,s){this.minY=t,this.height=e,this.pos=s,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[s,r,i]=t,n=this.sections[this.getSectionIndex(r)];return null!=(e=null==n?void 0:n.getBlockState(15&s,15&r,15&i))?e:G.AIR}setBlockState(t,e){const[s,r,i]=t,n=this.getSectionIndex(r);let o=this.sections[n];if(null===o){if(e.equals(G.AIR))return;o=this.getOrCreateSection(n)}o.setBlockState(15&s,15&r,15&i,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new Y(this.minSection+t)),this.sections[t]}}var X,j;!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(X||(X={})),function(t){function e(t){return{value:()=>t,key:()=>{}}}function s(t,e){return{value:()=>t.getOrThrow(e),key:()=>e}}t.parser=function(t,r){return i=>\"string\"==typeof i?s(t,C.parse(i)):e(r(i))},t.direct=e,t.reference=s}(j||(j={}));const Z=class{constructor(t,e){this.key=t,this.parser=e,this.storage=new Map,this.builtin=new Map}register(t,e,s){return this.storage.set(t.toString(),e),s&&this.builtin.set(t.toString(),e),j.reference(this,t)}keys(){return[...this.storage.keys()].map((t=>C.parse(t)))}get(t){return this.storage.get(t.toString())}getOrThrow(t){const e=this.storage.get(t.toString());if(void 0===e)throw new Error(`Missing key in ${this.key.toString()}: ${t.toString()}`);return e}parse(t){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(t)}clear(){this.storage.clear();for(const[t,e]of this.builtin.entries())this.storage.set(t,e);return this}assign(t){if(!this.key.equals(t.key))throw new Error(`Cannot assign registry of type ${t.key.toString()} to registry of type ${this.key.toString()}`);for(const e of t.keys())this.storage.set(e.toString(),t.getOrThrow(e));return this}cloneEmpty(){return new Z(this.key,this.parser)}};let q=Z;q.REGISTRY=new Z(C.create(\"root\"));class J{constructor(t,e=[],s=[]){this.size=t,this.palette=e,this.blocks=s,this.blocksMap=[],s.forEach((e=>{if(!this.isInside(e.pos))throw new Error(`Found block at ${e.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[e.pos[0]*t[1]*t[2]+e.pos[1]*t[2]+e.pos[2]]=e}))}getSize(){return this.size}addBlock(t,e,s,r){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const i=new G(e,s);let n=this.palette.findIndex((t=>t.equals(i)));return-1===n&&(n=this.palette.length,this.palette.push(i)),this.blocks.push({pos:t,state:n,nbt:r}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:n,nbt:r},this}getBlocks(){return this.blocks.map((t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt})))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];if(!e)return null;return{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}}isInside(t){return t[0]>=0&&t[0]=0&&t[1]=0&&t[2]G.fromNbt({name:\"\",value:t}))),r=I(t.value,\"blocks\",\"compound\").map((t=>({pos:I(t,\"pos\",\"int\",3),state:E(t,\"state\",\"int\"),nbt:N((()=>E(t,\"nbt\",\"compound\")),void 0)})));return new J(e,s,r)}}function W(t){return t*t}function $(t,e,s){return Math.max(e,Math.min(s,t))}function K(t,e,s){return e+t*(s-e)}function Q(t,e,s,r,i,n){return K(e,K(t,s,r),K(t,i,n))}function tt(t,e,s,r,i,n,o,a,l,u,h){return K(s,Q(t,e,r,i,n,o),Q(t,e,a,l,u,h))}function et(t,e,s){return 0===t?e():1===t?s():e()+t*(s()-e())}function st(t,e,s,r,i,n){return et(e,(()=>et(t,s,r)),(()=>et(t,i,n)))}function rt(t,e,s,r,i,n,o,a,l,u,h){return et(s,(()=>st(t,e,r,i,n,o)),(()=>st(t,e,a,l,u,h)))}function it(t,e,s){return s<0?t:s>1?e:K(s,t,e)}function nt(t,e,s){return(t-e)/(s-e)}function ot(t){return t*t*t*(t*(6*t-15)+10)}function at(t,e,s,r,i){return K(nt(t,e,s),r,i)}function lt(t,e,s,r,i){return it(r,i,nt(t,e,s))}function ut(t,e,s){let r=e-t;for(;r>0;){const e=Math.floor(r/2),i=t+e;s(i)?r=e:(t=i+1,r-=e+1)}return t}function ht(t,e,s){let r=BigInt(3129871*t)^BigInt(s)*BigInt(116129781)^BigInt(e);return r=r*r*BigInt(42317861)+r*BigInt(11),r>>BigInt(16)}function ct(t,e,s,r,i,n,o,a){return BigInt(t)<{var e;return null!=(e=B.readObject(t))?e:{}})))?o:[];if(0===c.length)return new e(0);for(const e of c){const s=null!=(a=B.readNumber(e.location))?a:0,r=t(e.value,i),n=null!=(l=B.readNumber(e.derivative))?l:0;h.addPoint(s,r,n)}return h};class e{constructor(t){this.value=t}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}t.Constant=e;class s{constructor(t,e=[],s=[],r=[]){this.coordinate=t,this.locations=e,this.values=s,this.derivatives=r}compute(t){const e=this.coordinate.compute(t),s=ut(0,this.locations.length,(t=>et.min())))}max(){return Math.max(...this.values.map((t=>t.max())))}mapAll(t){return new s(t(this.coordinate),this.locations,this.values.map((e=>e.mapAll(t))),this.derivatives)}addPoint(e,s,r=0){return this.locations.push(e),this.values.push(\"number\"==typeof s?new t.Constant(s):s),this.derivatives.push(r),this}}t.MultiPoint=s}(ft||(ft={}));const mt=class{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new mt(this.nextLong())}forkPositional(){return new pt(this.nextLong())}setSeed(t){this.seed=t^mt.MULTIPLIER&mt.MODULUS_MASK}advance(){this.seed=this.seed*mt.MULTIPLIER+mt.INCREMENT&mt.MODULUS_MASK}consume(t){for(let e=0;e>BigInt(mt.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(void 0===t)return this.next(32);if(0==(t&t-1))return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,s;for(;(e=this.next(31))-(s=e%t)+(t-1)<0;);return s}nextLong(){return(BigInt(this.next(32))<>gt.BIGINT_30)*gt.STAFFORD_1>.MAX_ULONG)^t>>gt.BIGINT_27)*gt.STAFFORD_2>.MAX_ULONG)^t>>gt.BIGINT_31)>.MAX_ULONG}static upgradeSeedTo128bit(t){t<0&&(t+=gt.POW2_60);const e=t^gt.SILVER_RATIO_64,s=e+gt.GOLDEN_RATIO_64>.MAX_ULONG;return[gt.mixStafford13(e),gt.mixStafford13(s)]}static rotateLeft(t,e){return t<>gt.BIGINT_64-e}setSeed(t){this.seed=gt.upgradeSeedTo128bit(t)}fork(){return new gt([this.next(),this.next()])}forkPositional(){return new wt(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const s=gt.rotateLeft(t+e>.MAX_ULONG,gt.BIGINT_17)+t>.MAX_ULONG;return e^=t,this.seed=[gt.rotateLeft(t,gt.BIGINT_49)^e^e<gt.POW2_63&&(t-=gt.POW2_60),t}consume(t){let e=this.seed[0],s=this.seed[1];for(let r=0;r>BigInt(64-t)}nextInt(t){let e=this.next()>.MAX_UINT;if(t){const s=BigInt(t);let r=e*s,i=r>.MAX_UINT;if(i>gt.BIGINT_32;return Number(n)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*gt.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*gt.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}};let vt=gt;vt.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),vt.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),vt.FLOAT_MULTIPLIER=1/Math.pow(2,24),vt.DOUBLE_MULTIPLIER=11102230246251565e-32,vt.BIGINT_1=BigInt(1),vt.BIGINT_17=BigInt(17),vt.BIGINT_21=BigInt(21),vt.BIGINT_27=BigInt(27),vt.BIGINT_28=BigInt(28),vt.BIGINT_30=BigInt(30),vt.BIGINT_31=BigInt(31),vt.BIGINT_32=BigInt(32),vt.BIGINT_49=BigInt(49),vt.BIGINT_64=BigInt(64),vt.STAFFORD_1=BigInt(\"-4658895280553007687\"),vt.STAFFORD_2=BigInt(\"-7723592293110705685\"),vt.MAX_ULONG=BigInt(\"0xFFFFFFFFFFFFFFFF\"),vt.POW2_60=BigInt(\"0x10000000000000000\"),vt.POW2_63=BigInt(\"0x8000000000000000\"),vt.MAX_UINT=BigInt(4294967295);class wt{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,s){const r=ht(t,e,s)^this.seedLo;return new vt([r,this.seedHi])}fromHashOf(t){const s=e(t,{asBytes:!0}),r=ct(s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7]),i=ct(s[8],s[9],s[10],s[11],s[12],s[13],s[14],s[15]);return new vt([r^this.seedLo,i^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const bt=class{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample2D(t,e){let s,r,i;const n=(t+e)*bt.F2,o=Math.floor(t+n),a=t-(o-(s=(o+(r=Math.floor(e+n)))*bt.G2));let l,u;a>(i=e-(r-s))?(l=1,u=0):(l=0,u=1);const h=a-l+bt.G2,c=i-u+bt.G2,f=a-1+2*bt.G2,m=i-1+2*bt.G2,d=255&o,p=255&r,g=this.P(d+this.P(p))%12,v=this.P(d+l+this.P(p+u))%12,w=this.P(d+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(g,a,i,0,.5)+this.getCornerNoise3D(v,h,c,0,.5)+this.getCornerNoise3D(w,f,m,0,.5))}sample(t,e,s){const r=.3333333333333333*(t+e+s),i=Math.floor(t+r),n=Math.floor(e+r),o=Math.floor(s+r),a=.16666666666666666*(i+n+o),l=t-(i-a),u=e-(n-a),h=s-(o-a);let c,f,m,d,p,g;l>=u?u>=h?(c=1,f=0,m=0,d=1,p=1,g=0):l>=h?(c=1,f=0,m=0,d=1,p=0,g=1):(c=0,f=0,m=1,d=1,p=0,g=1):u127?t-256:t;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample(t,e,s,r=0,i=0){const n=t+this.xo,o=e+this.yo,a=s+this.zo,l=Math.floor(n),u=Math.floor(o),h=Math.floor(a),c=n-l,f=o-u,m=a-h;let d=0;if(0!==r){const t=i>=0&&i=0;r-=1)r0&&(r=this.maxLimitNoise.getOctaveNoise(l))&&(a+=r.sample(c,f,m,h,e*h)/n),n/=2}return it(o/512,a/512,i)/128}}var yt;(yt||(yt={})).fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{xzScale:null!=(s=B.readNumber(o.xz_scale))?s:1,yScale:null!=(r=B.readNumber(o.y_scale))?r:1,xzFactor:null!=(i=B.readNumber(o.xz_factor))?i:80,yFactor:null!=(n=B.readNumber(o.y_factor))?n:80}};const Et=class{constructor(t,{firstOctave:e,amplitudes:s}){this.first=new _t(t,e,s),this.second=new _t(t,e,s);let r=1/0,i=-1/0;for(let t=0;t{var e;return null!=(e=B.readNumber(t))?e:0})))?r:[]}};class Rt{constructor(t,e){const s=e[e.length-1],r=-e[0]+s+1,i=new Set(e),n=new xt(t);this.noiseLevels=Array(r),s>=0&&s=0&&i.has(s-e)?this.noiseLevels[e]=new xt(t):t.consume(262);if(s>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,s),this.highestFreqValueFactor=1/(Math.pow(2,r)-1)}sample(t,e,s){let r=0,i=this.highestFreqInputFactor,n=this.highestFreqValueFactor;for(let o=0;o[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],Mt=[124/256,189/256,107/256],Ct=Tt(6396257),Ot=Tt(8431445),kt=Tt(4764952),Pt=Tt(4159204),Lt=Tt(8431445),Ft=Tt(2129968),Vt=t=>[t/8,1-t/32,64*t],Dt={large_fern:()=>Mt,tall_grass:()=>Mt,grass_block:()=>Mt,fern:()=>Mt,grass:()=>Mt,potted_fern:()=>Mt,spruce_leaves:()=>Ct,birch_leaves:()=>Ot,oak_leaves:()=>kt,jungle_leaves:()=>kt,acacia_leaves:()=>kt,dark_oak_leaves:()=>kt,vine:()=>kt,water:()=>Pt,bubble_column:()=>Pt,cauldron:()=>Pt,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),$(e*e*.7-.5,0,1),$(e*e*.6-.7,0,1)]})(parseInt(null!=(e=t.power)?e:\"0\"))},sugar_cane:()=>Mt,attached_melon_stem:()=>Lt,attached_pumpkin_stem:()=>Lt,melon_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},pumpkin_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},lily_pad:()=>Ft};var Ut;function Gt(...t){let e=0;for(const s of t)e+=s.length;const s=new Float32Array(e);let r=0;for(const e of t)s.set(e,r),r+=e.length;return s}function zt(t,e){const r=s.create();for(let i=0;ithis.matchesVariant(e,t)));if(0===e.length)return[];const s=this.variants[e[0]];return[Array.isArray(s)?s[0]:s]}if(this.multipart){return this.multipart.filter((e=>!e.when||this.matchesCase(e.when,t))).map((t=>Array.isArray(t.apply)?t.apply[0]:t.apply))}return[]}getBuffers(t,e,s,n,o,a){var l,u,h,c;const f=this.getModelVariants(e),m=[],d=[],p=[],g=[];for(const v of f){const f=Ut.rotate(a,null!=(l=v.x)?l:0,null!=(u=v.y)?u:0),w=n.getBlockModel(v.model).getBuffers(t,e,s,o,f);if(v.x||v.y){const t=r.create();r.identity(t),r.translate(t,t,[8,8,8]),r.rotateY(t,t,-i.toRadian(null!=(h=v.y)?h:0)),r.rotateX(t,t,-i.toRadian(null!=(c=v.x)?c:0)),r.translate(t,t,[-8,-8,-8]),zt(w.position,t)}m.push(w.position),d.push(...w.texCoord),p.push(...w.tintColor),g.push(...w.index),o+=w.texCoord.length/2}const v=r.create();r.identity(v),r.scale(v,v,[.0625,.0625,.0625]);const w=Gt(...m);return zt(w,v),{position:w,texCoord:d,tintColor:p,index:g}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[s,r]=t.split(\"=\");return e[s]===r}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const s=t;return Object.keys(s).every((t=>s[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new Yt(t,e.variants,e.multipart)}}const Ht={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},Xt={x:[1,0,0],y:[0,1,0],z:[0,0,1]},jt=1.41421356237,Zt={x:[1,jt,jt],y:[jt,1,jt],z:[jt,jt,1]};class qt{constructor(t,e,s,r){this.id=t,this.parent=e,this.textures=s,this.elements=r,this.flattened=!1}getBuffers(t,e,s,r,i){var n;const o=[],a=[],l=[],u=[];for(const h of null!=(n=this.elements)?n:[]){const n=this.getElementBuffers(t,e,h,r,s,i);o.push(n.position),a.push(...n.texCoord),l.push(...n.tintColor),u.push(...n.index),r+=n.texCoord.length/2}return{position:Gt(...o),texCoord:a,tintColor:l,index:u}}getElementBuffers(t,e,n,o,a,l){var u,h,c,f,m,d,p,g,v,w,b,x;const S=n.from[0],_=n.from[1],A=n.from[2],y=n.to[0],E=n.to[1],I=n.to[2],N=[],B=[],R=[],T=[],M=(s,r,i)=>{var n,l,u,h,c,f,m,d,p,g,v,w,b;const[x,S,_,A]=a.getTextureUV(this.getTexture(s.texture)),y=(_-x)/16,E=(A-S)/16,I=y/16,M=E/16;r[0]=(null!=(l=null==(n=s.uv)?void 0:n[0])?l:r[0])*y+I,r[1]=(null!=(h=null==(u=s.uv)?void 0:u[1])?h:r[1])*E+M,r[2]=(null!=(f=null==(c=s.uv)?void 0:c[2])?f:r[2])*y-I,r[3]=(null!=(d=null==(m=s.uv)?void 0:m[3])?d:r[3])*E-M;const C=Ht[null!=(p=s.rotation)?p:0];B.push(x+r[C[0]],S+r[C[1]],x+r[C[2]],S+r[C[3]],x+r[C[4]],S+r[C[5]],x+r[C[6]],S+r[C[7]]);const O=(null!=(g=s.tintindex)?g:-1)>=0&&null!=(b=null==(w=(v=Dt)[t.path])?void 0:w.call(v,e))?b:[1,1,1];R.push(...O,...O,...O,...O),N.push(...i),T.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null==(h=null==(u=n.faces)?void 0:u.up)?void 0:h.texture)||n.faces.up.cullface&&l[n.faces.up.cullface]||M(n.faces.up,[S,16-I,y,16-A],[S,E,I,y,E,I,y,E,A,S,E,A]),!(null==(f=null==(c=n.faces)?void 0:c.down)?void 0:f.texture)||n.faces.down.cullface&&l[n.faces.down.cullface]||M(n.faces.down,[16-I,16-y,16-A,16-S],[S,_,A,y,_,A,y,_,I,S,_,I]),!(null==(d=null==(m=n.faces)?void 0:m.south)?void 0:d.texture)||n.faces.south.cullface&&l[n.faces.south.cullface]||M(n.faces.south,[S,16-E,y,16-_],[S,_,I,y,_,I,y,E,I,S,E,I]),!(null==(g=null==(p=n.faces)?void 0:p.north)?void 0:g.texture)||n.faces.north.cullface&&l[n.faces.north.cullface]||M(n.faces.north,[16-y,16-E,16-S,16-_],[y,_,A,S,_,A,S,E,A,y,E,A]),!(null==(w=null==(v=n.faces)?void 0:v.east)?void 0:w.texture)||n.faces.east.cullface&&l[n.faces.east.cullface]||M(n.faces.east,[16-I,16-E,16-A,16-_],[y,_,I,y,_,A,y,E,A,y,E,I]),!(null==(x=null==(b=n.faces)?void 0:b.west)?void 0:x.texture)||n.faces.west.cullface&&l[n.faces.west.cullface]||M(n.faces.west,[A,16-E,I,16-_],[S,_,A,S,_,I,S,E,I,S,E,A]);const C=r.create();if(r.identity(C),n.rotation){const t=s.fromValues(...n.rotation.origin);r.translate(C,C,t),r.rotate(C,C,i.toRadian(n.rotation.angle),Xt[n.rotation.axis]),n.rotation.rescale&&r.scale(C,C,Zt[n.rotation.axis]),s.negate(t,t),r.translate(C,C,t)}const O=new Float32Array(N);return zt(O,C),{position:O,texCoord:B,tintColor:R,index:T}}getTexture(t){for(var e,s;t.startsWith(\"#\");)t=null!=(s=null==(e=this.textures)?void 0:e[t.slice(1)])?s:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const s=t.getBlockModel(this.parent);if(!s)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);s.flatten(t),this.elements||(this.elements=s.elements),this.textures||(this.textures={}),Object.keys(null!=(e=s.textures)?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=s.textures[t])})),this.flattened=!0}}static fromJson(t,e){let s=e.parent;return s&&!s.startsWith(\"minecraft:\")&&(s=\"minecraft:\"+s),new qt(t,s,e.textures,e.elements)}}class Jt{constructor(t,e,s){this.gl=t,this.program=this.initShaderProgram(e,s)}getProgram(){return this.program}initShaderProgram(t,e){const s=this.loadShader(this.gl.VERTEX_SHADER,t),r=this.loadShader(this.gl.FRAGMENT_SHADER,e),i=this.gl.createProgram();if(this.gl.attachShader(i,s),this.gl.attachShader(i,r),this.gl.linkProgram(i),!this.gl.getProgramParameter(i,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(i)}`);return i}loadShader(t,e){const s=this.gl.createShader(t);if(this.gl.shaderSource(s,e),this.gl.compileShader(s),!this.gl.getShaderParameter(s,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(s)}`);throw this.gl.deleteShader(s),e}return s}}function Wt(t,e,s,r,i){const n=new Yt(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>i};return i.flatten(o),n.getBuffers(t,{},e,o,s,r)}function $t(t,e,s,r,i,o){const a=i.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][s];return Wt(C.create(t),r,e,i,new qt(\"\",\"\",{still:`minecraft:block/${t}_still`,flow:`minecraft:block/${t}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:\"#still\",tintindex:o,cullface:n.UP},down:{texture:\"#still\",tintindex:o,cullface:n.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:n.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:n.EAST},south:{texture:\"#flow\",tintindex:o,cullface:n.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:n.WEST}}}]))}const Kt={\"minecraft:water\":(t,e,s,r)=>$t(\"water\",t,parseInt(e.level),s,r,0),\"minecraft:lava\":(t,e,s,r)=>$t(\"lava\",t,parseInt(e.level),s,r),\"minecraft:chest\":(t,e,s)=>function(t,e,s,r){return Wt(C.create(\"chest\"),r,t,{},new qt(\"\",\"\",{0:\"minecraft:block/chest\"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:\"#0\"},down:{texture:\"#0\"},north:{texture:\"#0\"},east:{texture:\"#0\"},south:{texture:\"#0\"},west:{texture:\"#0\"}}}]))}(t,e.facing,e.type,s)},Qt=new Set(Object.keys(Kt));class te{constructor(t,e,s,r){var i,n;this.gl=t,this.structure=e,this.resources=s,this.chunks=[],(null==r?void 0:r.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!=(i=null==r?void 0:r.chunkSize)?i:16,this.useInvisibleBlockBuffer=null==(n=null==r?void 0:r.useInvisibleBlockBuffer)||n,this.shaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec2 texCoord;\\n attribute vec3 tintColor;\\n attribute vec3 normal;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vTexCoord = texCoord;\\n vTintColor = tintColor;\\n vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n uniform sampler2D sampler;\\n\\n void main(void) {\\n vec4 texColor = texture2D(sampler, vTexCoord);\\n if(texColor.a < 0.01) discard;\\n gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\\n }\\n\").getProgram(),this.gridShaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 vertColor;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = vertColor;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.colorShaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 blockPos;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = blockPos / 256.0;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(t){this.structure=t,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),t}getPerspective(){const t=70*Math.PI/180,e=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,s=r.create();return r.perspective(s,t,e,.1,500),s}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),s=2*Math.abs(t[1])+(t[1]<0?1:0),r=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][s]||(this.chunks[e][s]=[]),this.chunks[e][s][r]||(this.chunks[e][s][r]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][s][r]}updateStructureBuffers(t){var e;const i=(t,e,i)=>{const n=r.create();r.translate(n,n,e),zt(t.position,n),i.positions.push(t.position),i.textureCoordinates.push(...t.texCoord),i.tintColors.push(...t.tintColor);for(let e=0;e{t.positions=[],t.textureCoordinates=[],t.tintColors=[],t.blockPositions=[],t.normals=[],t.indices=[],t.indexOffset=0},a=t=>{t.buffer?(this.updateBuffer(t.buffer.position,this.gl.ARRAY_BUFFER,Gt(...t.positions)),this.updateBuffer(t.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),this.updateBuffer(t.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),this.updateBuffer(t.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),this.updateBuffer(t.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),this.updateBuffer(t.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),t.buffer.length=t.indices.length):t.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,Gt(...t.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),length:t.indices.length}};let l;t?t.forEach((t=>{const e=this.getChunk(t);o(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{o(t)}))))));for(const r of this.structure.getBlocks()){const o=r.state.getName(),a=r.state.getProperties(),u=null!=(e=this.resources.getDefaultBlockProperties(o))?e:{};Object.entries(u).forEach((([t,e])=>{a[t]||(a[t]=e)}));const h=[Math.floor(r.pos[0]/this.chunkSize),Math.floor(r.pos[1]/this.chunkSize),Math.floor(r.pos[2]/this.chunkSize)];if(t&&!t.some((t=>s.equals(t,h))))continue;const c=this.getChunk(h);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(r,n.UP),down:this.needsCull(r,n.DOWN),west:this.needsCull(r,n.WEST),east:this.needsCull(r,n.EAST),north:this.needsCull(r,n.NORTH),south:this.needsCull(r,n.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),i(l,r.pos,c)),Qt.has(o.toString())&&(l=Kt[o.toString()](c.indexOffset,a,this.resources,e),i(l,r.pos,c))}catch(t){console.error(`Error rendering block ${o}`,t)}}t?t.forEach((t=>{const e=this.getChunk(t);a(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{a(t)}))))))}needsCull(t,e){var s,r;const i=null==(s=this.structure.getBlock(l.towards(t.pos,e)))?void 0:s.state;return!!i&&((null==(r=this.resources.getBlockFlags(i.getName()))?void 0:r.opaque)?!(e===n.UP&&t.state.isFluid()):t.state.isFluid()&&i.isFluid())}getGridBuffers(){const[t,e,s]=this.structure.getSize(),r=[],i=[];r.push(0,0,0,t,0,0),i.push(1,0,0,1,0,0),r.push(0,0,0,0,0,s),i.push(0,0,1,0,0,1),r.push(0,0,0,0,e,0),r.push(t,0,0,t,e,0),r.push(0,0,s,0,e,s),r.push(t,0,s,t,e,s),r.push(0,e,0,0,e,s),r.push(t,e,0,t,e,s),r.push(0,e,0,t,e,0),r.push(0,e,s,t,e,s);for(let e=1;e<=t;e+=1)r.push(e,0,0,e,0,s);for(let e=1;e<=s;e+=1)r.push(0,0,e,t,0,e);for(let e=0;e<8+t+s;e+=1)i.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(r)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i)),length:r.length/3}}getOutlineBuffers(){const t=[],e=[];return this.addCube(t,e,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),length:t.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const t=this.structure.getSize(),e=[],s=[];for(let r=0;r{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"texCoord\",2,t.buffer.texCoord),this.setVertexAttr(\"tintColor\",3,t.buffer.tintColor),this.setVertexAttr(\"normal\",3,t.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawColoredStructure(t){this.setShader(this.colorShaderProgram),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.chunks.forEach((t=>{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"blockPos\",3,t.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawOutline(t,e){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.outlineBuffers.position),this.setVertexAttr(\"vertColor\",3,this.outlineBuffers.color);const s=r.create();r.copy(s,t),r.translate(s,s,e),this.setUniform(\"mView\",s),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,s,r){this.gl.viewport(t,e,s,r),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,s){const r=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,s),this.gl.vertexAttribPointer(r,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(r)}setUniform(t,e){const s=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(s,!1,e)}}var ee=(t,e,s)=>new Promise(((r,i)=>{var n=t=>{try{a(s.next(t))}catch(t){i(t)}},o=t=>{try{a(s.throw(t))}catch(t){i(t)}},a=t=>t.done?r(t.value):Promise.resolve(t.value).then(n,o);a((s=s.apply(t,e)).next())}));class se{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return null!=(e=this.idMap[t])?e:[0,0,this.part,this.part]}static fromBlobs(t){return ee(this,null,(function*(){const e=Math.sqrt(Object.keys(t).length+1),s=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),r=16*s,i=1/s,n=document.createElement(\"canvas\");n.width=r,n.height=r;const o=n.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>ee(this,null,(function*(){const r=l%s,n=Math.floor(l/s);l+=1,a[e]=[i*r,i*n,i*r+i,i*n+i];const u=yield createImageBitmap(t[e]);o.drawImage(u,0,0,16,16,16*r,16*n,16,16)}))))),new se(o.getImageData(0,0,r,r),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return se.drawInvalidTexture(e),new se(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle=\"black\",t.fillRect(0,0,16,16),t.fillStyle=\"magenta\",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}const re=class{constructor(t,e,s){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=s}static extractor(t){return{compute:e=>e[t]}}static fromJson(t){var e;const s=null!=(e=B.readObject(t))?e:{};return new re(ft.fromJson(s.offset,this.EXTRACTOR),ft.fromJson(s.factor,this.EXTRACTOR),ft.fromJson(s.jaggedness,this.EXTRACTOR))}offset(t){return this.offsetSampler.compute(t)+re.GLOBAL_OFFSET}factor(t){return this.factorSampler.compute(t)}jaggedness(t){return this.jaggednessSampler.compute(t)}static point(t,e,s){return{continents:t,erosion:e,weirdness:s,ridges:this.peaksAndValleys(s)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}};let ie=re;var ne,oe,ae,le,ue;ie.GLOBAL_OFFSET=-.50375,ie.EXTRACTOR=t=>{var e;const s=null!=(e=B.readString(t))?e:\"continents\";return re.extractor(s)},ie.CONTINENTS=re.extractor(\"continents\"),ie.EROSION=re.extractor(\"erosion\"),ie.WEIRDNESS=re.extractor(\"weirdness\"),ie.RIDGES=re.extractor(\"ridges\"),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{minY:null!=(s=B.readInt(o.min_y))?s:0,height:null!=(r=B.readInt(o.height))?r:256,xzSize:null!=(i=B.readInt(o.size_horizontal))?i:1,ySize:null!=(n=B.readInt(o.size_vertical))?n:1,sampling:yt.fromJson(o.sampling),topSlide:oe.fromJson(o.top_slide),bottomSlide:oe.fromJson(o.bottom_slide),terrainShaper:ie.fromJson(o.terrain_shaper)}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))},t.applySlides=function(s,r,i){const n=Math.floor(i/e(s))-t.minCellY(s);return r=oe.apply(s.topSlide,r,t.cellCountY(s)-n),r=oe.apply(s.bottomSlide,r,n)}}(ne||(ne={})),(ae=oe||(oe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return{target:null!=(s=B.readNumber(n.target))?s:0,size:null!=(r=B.readInt(n.size))?r:0,offset:null!=(i=B.readInt(n.offset))?i:0}},ae.apply=function(t,e,s){if(t.size<=0)return e;const r=(s-t.offset)/t.size;return it(t.target,e,r)},function(t){function e(t){const e=new q(C.create(t));return q.REGISTRY.register(e.key,e),e}t.NOISE=e(\"worldgen/noise\"),t.DENSITY_FUNCTION=e(\"worldgen/density_function\")}(le||(le={}));class he{minValue(){return-this.maxValue()}mapAll(t){return t.map(this)}}!function(t){t.context=function(t,e,s){return{x:t,y:e,z:s}};class e extends t{constructor(t){super(),this.input=t}compute(t){return this.transform(t,this.input.compute(t))}}const s=j.parser(le.NOISE,Nt.fromJson);t.fromJson=function t(e,r=t){var l,v,S,N,T,D,U,G,z,Y,H,X,Z,q,J,W,$,K,Q;if(\"string\"==typeof e)return new n(j.reference(le.DENSITY_FUNCTION,C.parse(e)));if(\"number\"==typeof e)return new i(e);const tt=null!=(l=B.readObject(e))?l:{},et=null==(v=B.readString(tt.type))?void 0:v.replace(/^minecraft:/,\"\");switch(et){case\"blend_alpha\":return new o(1,0,1);case\"blend_offset\":case\"beardifier\":return new o(0,-1/0,1/0);case\"old_blended_noise\":return new a;case\"flat_cache\":return new u(r(tt.argument));case\"interpolated\":return new m(r(tt.argument));case\"cache_2d\":return new c(r(tt.argument));case\"cache_once\":return new f(r(tt.argument));case\"cache_all_in_cell\":return new h(r(tt.argument));case\"noise\":return new d(null!=(S=B.readNumber(tt.xz_scale))?S:1,null!=(N=B.readNumber(tt.y_scale))?N:1,s(tt.noise));case\"end_islands\":return new p;case\"weird_scaled_sampler\":return new w(r(tt.input),B.readEnum(tt.rarity_value_mapper,g),s(tt.noise));case\"shifted_noise\":return new b(r(tt.shift_x),r(tt.shift_y),r(tt.shift_z),null!=(T=B.readNumber(tt.xz_scale))?T:1,null!=(D=B.readNumber(tt.y_scale))?D:1,s(tt.noise));case\"range_choice\":return new x(r(tt.input),null!=(U=B.readNumber(tt.min_inclusive))?U:0,null!=(G=B.readNumber(tt.max_exclusive))?G:1,r(tt.when_in_range),r(tt.when_out_of_range));case\"shift_a\":return new _(s(tt.argument));case\"shift_b\":return new A(s(tt.argument));case\"shift\":return new y(s(tt.argument));case\"blend_density\":return new E(r(tt.argument));case\"clamp\":return new I(r(tt.input),null!=(z=B.readNumber(tt.min))?z:0,null!=(Y=B.readNumber(tt.max))?Y:1);case\"abs\":case\"square\":case\"cube\":case\"half_negative\":case\"quarter_negative\":case\"squeeze\":return new R(et,r(tt.argument));case\"slide\":return new M(r(tt.argument));case\"add\":case\"mul\":case\"min\":case\"max\":return new k(B.readEnum(et,O),r(tt.argument1),r(tt.argument2));case\"spline\":return new P(ft.fromJson(tt.spline,r),null!=(H=B.readNumber(tt.min_value))?H:0,null!=(X=B.readNumber(tt.max_value))?X:1);case\"terrain_shaper_spline\":return new F(r(tt.continentalness),r(tt.erosion),r(tt.weirdness),B.readEnum(tt.spline,L),null!=(Z=B.readNumber(tt.min_value))?Z:0,null!=(q=B.readNumber(tt.max_value))?q:1);case\"constant\":return new i(null!=(J=B.readNumber(tt.argument))?J:0);case\"y_clamped_gradient\":return new V(null!=(W=B.readInt(tt.from_y))?W:-4064,null!=($=B.readInt(tt.to_y))?$:4062,null!=(K=B.readNumber(tt.from_value))?K:-4064,null!=(Q=B.readNumber(tt.to_value))?Q:4062)}return i.ZERO};const r=class extends t{constructor(t){super(),this.value=t}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let i=r;i.ZERO=new r(0),i.ONE=new r(1),t.Constant=i;class n extends t{constructor(t){super(),this.holder=t}compute(t){return this.holder.value().compute(t)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}t.HolderHolder=n;class o extends t.Constant{constructor(t,e,s){super(t),this.min=e,this.max=s}minValue(){return this.min}maxValue(){return this.max}}t.ConstantMinMax=o;class a extends t{constructor(t){super(),this.blendedNoise=null!=t?t:new At(vt.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(t){return this.blendedNoise.sample(t.x,t.y,t.z)}maxValue(){return this.blendedNoise.maxValue}}t.OldBlendedNoise=a;class l extends t{constructor(t){super(),this.wrapped=t}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class u extends l{constructor(t){super(t),this.lastValue=0}compute(e){const s=e.x>>2,r=e.z>>2;return this.lastQuartX===s&&this.lastQuartZ===r||(this.lastValue=this.wrapped.compute(t.context(s<<2,0,r<<2)),this.lastQuartX=s,this.lastQuartZ=r),this.lastValue}mapAll(t){return t.map(new u(this.wrapped.mapAll(t)))}}t.FlatCache=u;class h extends l{constructor(t){super(t)}compute(t){return this.wrapped.compute(t)}mapAll(t){return t.map(new h(this.wrapped.mapAll(t)))}}t.CacheAllInCell=h;class c extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.z;return this.lastBlockX===e&&this.lastBlockZ===s||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockZ=s),this.lastValue}mapAll(t){return t.map(new c(this.wrapped.mapAll(t)))}}t.Cache2D=c;class f extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.y,r=t.z;return this.lastBlockX===e&&this.lastBlockY===s&&this.lastBlockZ===r||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockY=s,this.lastBlockZ=r),this.lastValue}mapAll(t){return t.map(new f(this.wrapped.mapAll(t)))}}t.CacheOnce=f;class m extends l{constructor(t,e=4,s=4){super(t),this.cellWidth=e,this.cellHeight=s,this.values=new Map}compute({x:t,y:e,z:s}){const r=this.cellWidth,i=this.cellHeight,n=(t%r+r)%r/r,o=(e%i+i)%i/i,a=(s%r+r)%r/r,l=Math.floor(t/r)*r,u=Math.floor(e/i)*i,h=Math.floor(s/r)*r;return rt(n,o,a,(()=>this.computeCorner(l,u,h)),(()=>this.computeCorner(l+r,u,h)),(()=>this.computeCorner(l,u+i,h)),(()=>this.computeCorner(l+r,u+i,h)),(()=>this.computeCorner(l,u,h+r)),(()=>this.computeCorner(l+r,u,h+r)),(()=>this.computeCorner(l,u+i,h+r)),(()=>this.computeCorner(l+r,u+i,h+r)))}computeCorner(e,s,r){return T(this.values,`${e} ${s} ${r}`,(()=>this.wrapped.compute(t.context(e,s,r))))}mapAll(t){return t.map(new m(this.wrapped.mapAll(t)))}withCellSize(t,e){return new m(this.wrapped,t,e)}}t.Interpolated=m;class d extends t{constructor(t,e,s,r){super(),this.xzScale=t,this.yScale=e,this.noiseData=s,this.noise=r}compute(t){var e,s;return null!=(s=null==(e=this.noise)?void 0:e.sample(t.x*this.xzScale,t.y*this.yScale,t.z*this.xzScale))?s:0}maxValue(){var t,e;return null!=(e=null==(t=this.noise)?void 0:t.maxValue)?e:2}}t.Noise=d;class p extends t{compute(){return 0}minValue(){return-.84375}maxValue(){return.5625}}const g=[\"type_1\",\"type_2\"],v=class extends e{constructor(t,e,s,r){super(t),this.rarityValueMapper=e,this.noiseData=s,this.noise=r,this.mapper=v.ValueMapper[this.rarityValueMapper]}transform(t,e){if(!this.noise)return 0;const s=this.mapper(e);return s*Math.abs(this.noise.sample(t.x/s,t.y/s,t.z/s))}mapAll(t){return t.map(new v(this.input.mapAll(t),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return\"type_1\"===this.rarityValueMapper?2:3}static rarityValueMapper1(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}static rarityValueMapper2(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}};let w=v;w.ValueMapper={type_1:v.rarityValueMapper1,type_2:v.rarityValueMapper2},t.WeirdScaledSampler=w;class b extends d{constructor(t,e,s,r,i,n,o){super(r,i,n,o),this.shiftX=t,this.shiftY=e,this.shiftZ=s}compute(t){var e,s;const r=t.x*this.xzScale+this.shiftX.compute(t),i=t.y*this.yScale+this.shiftY.compute(t),n=t.z*this.xzScale+this.shiftZ.compute(t);return null!=(s=null==(e=this.noise)?void 0:e.sample(r,i,n))?s:0}mapAll(t){return t.map(new b(this.shiftX.mapAll(t),this.shiftY.mapAll(t),this.shiftZ.mapAll(t),this.xzScale,this.yScale,this.noiseData,this.noise))}}t.ShiftedNoise=b;class x extends t{constructor(t,e,s,r,i){super(),this.input=t,this.minInclusive=e,this.maxExclusive=s,this.whenInRange=r,this.whenOutOfRange=i}compute(t){const e=this.input.compute(t);return this.minInclusive<=e&&eMath.abs(t),square:t=>t*t,cube:t=>t*t*t,half_negative:t=>t>0?t:.5*t,quarter_negative:t=>t>0?t:.25*t,squeeze:t=>{const e=$(t,-1,1);return e/2-e*e*e/24}},t.Mapped=R;class M extends e{constructor(t,e){super(t),this.settings=e}transform(t,e){return this.settings?ne.applySlides(this.settings,e,t.y):e}mapAll(t){return t.map(new M(this.input.mapAll(t),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}t.Slide=M;const O=[\"add\",\"mul\",\"min\",\"max\"];class k extends t{constructor(t,e,s,r,i){super(),this.type=t,this.argument1=e,this.argument2=s,this.min=r,this.max=i}compute(t){const e=this.argument1.compute(t);switch(this.type){case\"add\":return e+this.argument2.compute(t);case\"mul\":return 0===e?0:e*this.argument2.compute(t);case\"min\":return ethis.argument2.maxValue()?e:Math.max(e,this.argument2.compute(t))}}mapAll(t){return t.map(new k(this.type,this.argument1.mapAll(t),this.argument2.mapAll(t)))}minValue(){var t;return null!=(t=this.min)?t:-1/0}maxValue(){var t;return null!=(t=this.max)?t:1/0}withMinMax(){const t=this.argument1.minValue(),e=this.argument2.minValue(),s=this.argument1.maxValue(),r=this.argument2.maxValue();let i,n;switch(\"min\"!==this.type&&\"max\"!==this.type||!(t>=r||e>=s)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case\"add\":i=t+e,n=s+r;break;case\"mul\":i=t>0&&e>0?t*e||0:s<0&&r<0?s*r||0:Math.min(t*r||0,e*s||0),n=t>0&&e>0?s*r||0:s<0&&r<0?t*e||0:Math.max(t*e||0,s*r||0);break;case\"min\":i=Math.min(t,e),n=Math.min(s,r);break;case\"max\":i=Math.max(t,e),n=Math.max(s,r)}return new k(this.type,this.argument1,this.argument2,i,n)}}t.Ap2=k;class P extends t{constructor(t,e,s){super(),this.spline=t,this.min=e,this.max=s}compute(t){return $(this.spline.compute(t),this.min,this.max)}mapAll(e){return e.map(new P(this.spline.mapAll((s=>s instanceof t?s.mapAll(e):s)),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}t.Spline=P;const L=[\"offset\",\"factor\",\"jaggedness\"];class F extends t{constructor(t,e,s,r,i,n,o){super(),this.continentalness=t,this.erosion=e,this.weirdness=s,this.spline=r,this.min=i,this.max=n,this.shaper=o}compute(t){if(!this.shaper)return 0;const e=ie.point(this.continentalness.compute(t),this.erosion.compute(t),this.weirdness.compute(t));return $(this.shaper[this.spline](e),this.min,this.max)}mapAll(t){return t.map(new F(this.continentalness.mapAll(t),this.erosion.mapAll(t),this.weirdness.mapAll(t),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}t.TerrainShaperSpline=F;class V extends t{constructor(t,e,s,r){super(),this.fromY=t,this.toY=e,this.fromValue=s,this.toValue=r}compute(t){return lt(t.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}t.YClampedGradient=V}(he||(he={}));class ce{constructor(t,e){this.level=t,this.type=e}at(t){return t0))return t(e,s,r).at(s)}}};const fe=class{constructor(t,e,s,r,i,n,o,a,u,h){this.noiseChunk=t,this.barrierNoise=s,this.fluidLevelFloodednessNoise=r,this.fluidLevelSpreadNoise=i,this.lavaNoise=n,this.random=o,this.globalFluidPicker=h,this.minGridX=this.gridX(X.minBlockX(e))-1,this.gridSizeX=this.gridX(X.maxBlockX(e))+1-this.minGridX+1,this.minGridY=this.gridY(a)-1,this.minGridZ=this.gridZ(X.minBlockZ(e))-1,this.gridSizeZ=this.gridZ(X.maxBlockZ(e))+1-this.minGridZ+1;const c=this.gridY(a+u)+1-this.minGridY+1;this.gridSize=this.gridSizeX*c*this.gridSizeZ,this.aquiferCache=Array(this.gridSize).fill(void 0),this.aquiferLocationCache=Array(this.gridSize).fill(l.ZERO)}compute({x:t,y:e,z:s},r){if(r<=0){if(this.globalFluidPicker(t,e,s).at(e).is(G.LAVA))return G.LAVA;{const i=this.gridX(t-5),n=this.gridY(e+1),o=this.gridZ(s-5);let a=Number.MAX_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER,c=l.ZERO,f=l.ZERO,m=l.ZERO;for(let t=0;t<=1;t+=1)for(let e=-1;e<=1;e+=1)for(let s=0;s<=1;s+=1){const r=this.getLocation(i+t,n+e,o+s),d=l.magnitude(r);a>=d?(m=f,f=c,c=r,h=u,u=a,a=d):u>=d?(m=f,f=r,h=u,u=d):h>=d&&(m=r,h=d)}const d=this.getStatus(c),p=this.getStatus(f),g=this.getStatus(m),v=fe.similarity(a,u),w=fe.similarity(a,h),b=fe.similarity(u,h);let x;if(d.at(e).is(G.WATER)&&this.globalFluidPicker(t,e-1,s).at(e-1).is(G.LAVA))x=1;else if(v>-1){const r=R((()=>this.barrierNoise.compute(he.context(t,.5*e,s)))),i=this.calculatePressure(e,d,p,r),n=this.calculatePressure(e,d,g,r),o=this.calculatePressure(e,p,g,r),a=Math.max(i,n*Math.max(0,w),o*Math.max(b));x=Math.max(0,2*Math.max(0,v)*a)}else x=0;if(r+x<=0)return d.at(e)}}}static similarity(t,e){return 1-Math.abs(e-t)/25}calculatePressure(t,e,s,r){const i=e.at(t),n=s.at(t);if(i.is(G.LAVA)&&n.is(G.WATER)||i.is(G.WATER)&&n.is(G.LAVA))return 1;const o=Math.abs(e.level-s.level);if(0===o)return 0;const a=t+.5-(e.level+s.level)/2,l=o/2-Math.abs(a),u=a>0?l>0?l/1.5:l/2.5:l>-3?(l+3)/3:(l+3)/10;return u<-2||u>2?u:u+r()}getStatus(t){const[e,s,r]=t,i=this.getIndex(this.gridX(e),this.gridY(s),this.gridZ(r)),n=this.aquiferCache[i];if(void 0!==n)return n;const o=this.computeStatus(e,s,r);return this.aquiferCache[i]=o,o}computeStatus(t,e,s){const r=this.globalFluidPicker(t,e,s);let i=Number.MAX_SAFE_INTEGER,n=!1;for(const[o,a]of fe.SURFACE_SAMPLING){const l=t+(a<<4),u=s+(a<<4),h=this.noiseChunk.getPreliminarySurfaceLevel(l,u);i=Math.min(i,h);const c=0===o&&0===a;if(c&&e-12>h+8)return r;if(c||e+12>h+8){const t=this.globalFluidPicker(l,h+8,u);if(!t.at(h+8).is(G.AIR)){if(c)return t;n=!0}}}const o=n?lt(i+8-e,0,64,1,0):0,a=$(this.fluidLevelFloodednessNoise.compute(he.context(t,.67*e,s)),-1,1);if(a>at(o,1,0,-.3,.8))return r;if(a<=at(o,1,0,-.8,.4))return new ce(Number.MIN_SAFE_INTEGER,r.type);const l=Math.floor(e/40),u=this.fluidLevelSpreadNoise.compute(he.context(Math.floor(t/16),l,Math.floor(s/16))),h=40*l+20+3*Math.floor(u/3),c=Math.min(i,h),f=this.getFluidType(t,e,s,r.type,h);return new ce(c,f)}getFluidType(t,e,s,r,i){if(i<=-10){const r=this.lavaNoise.compute(he.context(Math.floor(t/64),Math.floor(e/40),Math.floor(s/64)));if(Math.abs(r)>.3)return G.LAVA}return r}getLocation(t,e,s){const r=this.getIndex(t,e,s),i=this.aquiferLocationCache[r];if(l.equals(i,l.ZERO))return i;const n=this.random.at(t,e,s),o=l.create(t*fe.X_SPACING+n.nextInt(10),e*fe.Y_SPACING+n.nextInt(9),s*fe.Z_SPACING+n.nextInt(10));return this.aquiferLocationCache[r]=o,o}getIndex(t,e,s){const r=t-this.minGridX,i=e-this.minGridY,n=s-this.minGridZ,o=(i*this.gridSizeZ+n)*this.gridSizeX+r;if(o<0||o>=this.gridSize)throw new Error(`Invalid aquifer index at ${t} ${e} ${s}: 0 <= ${o} < ${this.gridSize}`);return o}gridX(t){return Math.floor(t/fe.X_SPACING)}gridY(t){return Math.floor(t/fe.Y_SPACING)}gridZ(t){return Math.floor(t/fe.Z_SPACING)}};let me=fe;var de,pe;me.X_SPACING=16,me.Y_SPACING=12,me.Z_SPACING=16,me.SURFACE_SAMPLING=[[-2,-1],[-1,-1],[0,-1],[1,-1],[-3,0],[-2,0],[-1,0],[0,0],[1,0],[-2,1],[-1,1],[0,1],[1,1]],function(t){function e(t,e){return\"number\"==typeof t?new s(t,null!=e?e:t):t}t.target=function(t,e,s,r,n,o){return new i(t,e,s,r,n,o)},t.parameters=function(t,s,i,n,o,a,l){return new r(e(t),e(s),e(i),e(n),e(o),e(a),l)},t.param=e;class s{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,s=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(s,0)}union(t){return new s(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new s(t,t);const[r,i]=null!=(e=B.readArray(t,(t=>B.readNumber(t))))?e:[];return new s(null!=r?r:0,null!=i?i:0)}}t.Param=s;class r{constructor(t,e,s,r,i,n,o){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n,this.offset=o}fittness(t){return W(this.temperature.distance(t.temperature))+W(this.humidity.distance(t.humidity))+W(this.continentalness.distance(t.continentalness))+W(this.erosion.distance(t.erosion))+W(this.depth.distance(t.depth))+W(this.weirdness.distance(t.weirdness))+W(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new s(this.offset,this.offset)]}static fromJson(t){var e,i;const n=null!=(e=B.readObject(t))?e:{};return new r(s.fromJson(n.temperature),s.fromJson(n.humidity),s.fromJson(n.continentalness),s.fromJson(n.erosion),s.fromJson(n.depth),s.fromJson(n.weirdness),null!=(i=B.readInt(n.offset))?i:0)}}t.ParamPoint=r;class i{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=i;t.Parameters=class{constructor(t){this.things=t,this.index=new o(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};t.Sampler=class{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}static fromRouter(e){return new t.Sampler(e.temperature,e.vegetation,e.continents,e.erosion,e.depth,e.ridges)}sample(e,s,r){const i=he.context(e<<2,s<<2,r<<2);return t.target(this.temperature.compute(i),this.humidity.compute(i),this.continentalness.compute(i),this.erosion.compute(i),this.depth.compute(i),this.weirdness.compute(i))}};const n=class{constructor(t){this.root=n.build(t.map((([t,e])=>new u(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=n.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let s=0;s<7;s+=1){const r=t.space[s];e+=Math.abs((r.min+r.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new l(e)}let e=1/0,s=-1,r=[];for(let i=0;i<7;++i){t=n.sort(t,i,!1),r=n.bucketize(t);let o=0;for(const t of r)o+=n.area(t.space);e>o&&(e=o,s=i)}return t=n.sort(t,s,!1),r=n.bucketize(t),r=n.sort(r,s,!0),new l(r.map((t=>n.build(t.children))))}static sort(t,e,s){return t.map((t=>{const r=t.space[e],i=(r.min+r.max)/2;return{key:s?Math.abs(i):i,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let s=[];const r=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const i of t)s.push(i),s.lengthnew s(1/0,-1/0)));for(const s of t)e=[...Array(7)].map(((t,r)=>e[r].union(s.space[r])));return e}search(t,e){let s=1/0,r=null;for(const i of this.children){const n=e(i,t);if(s<=n)continue;const o=i.search(t,e),a=i==o?n:e(o,t);s<=a||(s=a,r=o)}return r}}t.RSubTree=l;class u extends a{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=u}(de||(de={}));class ge{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.biome))?s:\"minecraft:the_void\");return new ge(i)}}class ve{constructor(t){this.parameters=t}getBiome(t,e,s,r){const i=r.sample(t,e,s);return this.parameters.find(i)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=(null!=(s=B.readArray(r.biomes,(t=>{var e,s,r;return s=null!=(e=B.readObject(t))?e:{},{biome:C.parse(null!=(r=B.readString(s.biome))?r:\"minecraft:the_void\"),parameters:de.ParamPoint.fromJson(s.parameters)}})))?s:[]).map((t=>[t.parameters,()=>t.biome]));return new ve(new de.Parameters(i))}}!function(t){function e(t,e,s){return le.NOISE.register(C.create(t),Nt.create(e,s))}t.TEMPERATURE=e(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=e(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=e(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=e(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=e(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=e(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=e(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=e(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=e(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=e(\"offset\",-3,[1,1,1,0]),t.AQUIFER_BARRIER=e(\"aquifer_barrier\",-3,[1]),t.AQUIFER_FLUID_LEVEL_FLOODEDNESS=e(\"aquifer_fluid_level_floodedness\",-7,[1]),t.AQUIFER_FLUID_LEVEL_SPREAD=e(\"aquifer_fluid_level_spread\",-5,[1]),t.AQUIFER_LAVA=e(\"aquifer_lava\",-1,[1]),t.PILLAR=e(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=e(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=e(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=e(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=e(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=e(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=e(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=e(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=e(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=e(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=e(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=e(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=e(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=e(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=e(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=e(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=e(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=e(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=e(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=e(\"noodle_ridge_b\",-7,[1]),t.JAGGED=e(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=e(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=e(\"surface_secondary\",-6,[1,1,0,1]);const s=new Map;t.instantiate=function(t,e){var r;const i=null==(r=e.key())?void 0:r.toString();if(!i)throw new Error(\"Cannot instantiate noise from direct holder\");const n=t.seedKey(),o=s.get(i);if(o&&o[0]===n[0]&&o[1]===n[1])return o[2];const a=new It(t.fromHashOf(i),e.value());return s.set(i,[n[0],n[1],a]),a}}(pe||(pe={}));var we,be,xe,Se,_e,Ae,ye,Ee=Object.defineProperty,Ie=Object.defineProperties,Ne=Object.getOwnPropertyDescriptors,Be=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable,Me=(t,e,s)=>e in t?Ee(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Ce=(t,e)=>{for(var s in e||(e={}))Re.call(e,s)&&Me(t,s,e[s]);if(Be)for(var s of Be(e))Te.call(e,s)&&Me(t,s,e[s]);return t};!function(t){const e=t=>j.parser(le.DENSITY_FUNCTION,he.fromJson)(t).value();t.fromJson=function(t){var s;const r=null!=(s=B.readObject(t))?s:{};return{barrier:e(r.barrier),fluidLevelFloodedness:e(r.fluid_level_floodedness),fluidLevelSpread:e(r.fluid_level_spread),lava:e(r.lava),temperature:e(r.temperature),vegetation:e(r.vegetation),continents:e(r.continents),erosion:e(r.erosion),depth:e(r.depth),ridges:e(r.ridges),initialDensityWithoutJaggedness:e(r.initial_density_without_jaggedness),finalDensity:e(r.final_density),veinToggle:e(r.vein_toggle),veinRidged:e(r.vein_ridged),veinGap:e(r.vein_gap)}},t.create=function(t){return Ce({barrier:he.Constant.ZERO,fluidLevelFloodedness:he.Constant.ZERO,fluidLevelSpread:he.Constant.ZERO,lava:he.Constant.ZERO,temperature:he.Constant.ZERO,vegetation:he.Constant.ZERO,continents:he.Constant.ZERO,erosion:he.Constant.ZERO,depth:he.Constant.ZERO,ridges:he.Constant.ZERO,initialDensityWithoutJaggedness:he.Constant.ZERO,finalDensity:he.Constant.ZERO,veinToggle:he.Constant.ZERO,veinRidged:he.Constant.ZERO,veinGap:he.Constant.ZERO},t)},t.withSettings=function(t,e,r,i=!1){const n=(i?new dt(r):vt.create(r)).forkPositional(),o=new s(n,e);return a=Ce({},o.mapAll(t)),l={aquiferPositionalRandomFactory:n.fromHashOf(C.create(\"aquifer\").toString()).forkPositional(),oreVeinsPositionalRandomFactory:n.fromHashOf(C.create(\"ore\").toString()).forkPositional()},Ie(a,Ne(l));var a,l};class s{constructor(t,e){this.random=t,this.settings=e,this.mapped=new Map}map(t){if(t instanceof he.HolderHolder){const e=t.holder.key();if(void 0!==e&&this.mapped.has(e.toString()))return this.mapped.get(e.toString());{const s=t.holder.value().mapAll(this);return void 0!==e&&this.mapped.set(e.toString(),s),s}}if(t instanceof he.Interpolated)return t.withCellSize(ne.cellWidth(this.settings),ne.cellHeight(this.settings));if(t instanceof he.Noise)return new he.Noise(t.xzScale,t.yScale,t.noiseData,pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftNoise)return t.withNewNoise(pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftedNoise){const e=pe.instantiate(this.random,t.noiseData);return new he.ShiftedNoise(t.shiftX,t.shiftY,t.shiftZ,t.xzScale,t.yScale,t.noiseData,e)}return t instanceof he.WeirdScaledSampler?new he.WeirdScaledSampler(t.input,t.rarityValueMapper,t.noiseData,pe.instantiate(this.random,t.noiseData)):t instanceof he.OldBlendedNoise?new he.OldBlendedNoise(new At(this.random.fromHashOf(C.create(\"terrain\").toString()),this.settings.sampling,ne.cellWidth(this.settings),ne.cellHeight(this.settings))):t instanceof he.Mapped||t instanceof he.Ap2?t.withMinMax():t instanceof he.TerrainShaperSpline?new he.TerrainShaperSpline(t.continentalness,t.erosion,t.weirdness,t.spline,t.min,t.max,this.settings.terrainShaper):t instanceof he.Slide?new he.Slide(t.input,this.settings):t}mapAll(t){return{barrier:t.barrier.mapAll(this),fluidLevelFloodedness:t.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:t.fluidLevelSpread.mapAll(this),lava:t.lava.mapAll(this),temperature:t.temperature.mapAll(this),vegetation:t.vegetation.mapAll(this),continents:t.continents.mapAll(this),erosion:t.erosion.mapAll(this),depth:t.depth.mapAll(this),ridges:t.ridges.mapAll(this),initialDensityWithoutJaggedness:t.initialDensityWithoutJaggedness.mapAll(this),finalDensity:t.finalDensity.mapAll(this),veinToggle:t.veinToggle.mapAll(this),veinRidged:t.veinRidged.mapAll(this),veinGap:t.veinGap.mapAll(this)}}}t.Visitor=s,t.computePreliminarySurfaceLevelScanning=function(t,e,s,r){const i=ne.minCellY(t)+ne.cellCountY(t),n=ne.minCellY(t),o=ne.cellHeight(t);for(let a=i;a>=n;a-=1){const i=a*o,n=$(e.compute(he.context(s,i,r)),-64,64);if(ne.applySlides(t,n,i)>=.390625)return i}return Number.MAX_SAFE_INTEGER}}(we||(we={}));class Oe{constructor(t,e,s,r,i,n,o,a,l){this.cellCountXZ=t,this.cellCountY=e,this.cellNoiseMinY=s,this.router=r,this.minX=i,this.minZ=n,this.settings=o,this.preliminarySurfaceLevel=new Map,this.cellWidth=ne.cellWidth(o),this.cellHeight=ne.cellHeight(o),this.firstCellX=Math.floor(i/this.cellWidth),this.firstCellZ=Math.floor(n/this.cellWidth),this.firstNoiseX=i>>2,this.firstNoiseZ=n>>2,this.noiseSizeXZ=t*this.cellWidth>>2,this.aquifer=ue.createDisabled(l);const u=this.router.finalDensity;this.materialRule=be.fromList([t=>this.aquifer.compute(t,u.compute(t))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(t,e,s){return this.materialRule({x:t,y:e,z:s})}getPreliminarySurfaceLevel(t,e){return T(this.preliminarySurfaceLevel,X.asLong(t,e),(()=>we.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,t<<2,e<<2)))}getAquifer(){return this.aquifer}}(be||(be={})).fromList=function(t){return e=>{for(const s of t){const t=s(e);if(t)return t}}},(xe||(xe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return void 0!==n.absolute?(o=null!=(s=B.readNumber(n.absolute))?s:0,()=>o):void 0!==n.above_bottom?function(t){return e=>e.minY+t}(null!=(r=B.readNumber(n.above_bottom))?r:0):void 0!==n.below_top?function(t){return e=>e.maxY-t}(null!=(i=B.readNumber(n.below_top))?i:0):()=>0;var o},(Se||(Se={})).create=function(t,e){return{minY:t,height:e,maxY:t+e-1}};class ke{constructor(t,e,s){this.rule=t,this.defaultBlock=e,this.random=vt.create(s).forkPositional(),this.surfaceNoise=pe.instantiate(this.random,pe.SURFACE),this.surfaceSecondaryNoise=pe.instantiate(this.random,pe.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,s,r){const i=X.minBlockX(t.pos),n=X.minBlockZ(t.pos),o=new Pe(this,t,e,s,r),a=this.rule(o);for(let e=0;e<16;e+=1){const s=i+e;for(let e=0;e<1;e+=1){const r=n+e;o.updateXZ(s,r);let i=0,u=Number.MIN_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const n=l.create(s,e,r),c=t.getBlockState(n);if(c.equals(G.AIR)){i=0,u=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){u===Number.MIN_SAFE_INTEGER&&(u=e+1);continue}if(h>=e){h=Number.MIN_SAFE_INTEGER;for(let i=e-1;i>=t.minY;i-=1){const e=t.getBlockState(l.create(s,i,r));if(e.equals(G.AIR)||e.isFluid()){h=i+1;break}}}i+=1;const f=e-h+1;if(!c.equals(this.defaultBlock))continue;o.updateY(i,f,u,e);const m=a(s,e,r);m&&t.setBlockState(n,m)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return T(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class Pe{constructor(t,e,s,r,i){this.system=t,this.chunk=e,this.noiseChunk=s,this.context=r,this.getBiome=i,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=R((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=R((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,s,r){this.blockY=r,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=s,this.biome=R((()=>this.getBiome(l.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const s=t>>4,r=e>>4,i=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r<<4),n=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r+1<<4);return Math.floor(Q((15&t)/16,(15&e)/16,i,n,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function s(t){return e=>{const s=t.map((t=>t(e)));return(t,e,r)=>{for(const i of s){const s=i(t,e,r);if(s)return s}}}}function r(t,e){return s=>(r,i,n)=>{if(t(s))return e(s)(r,i,n)}}t.NOOP=()=>()=>{},t.fromJson=function(i){var n,o,a;const l=null!=(n=B.readObject(i))?n:{};switch(null==(o=B.readString(l.type))?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(G.fromJson(l.result_state));case\"sequence\":return s(null!=(a=B.readArray(l.sequence,t.fromJson))?a:[]);case\"condition\":return r(Ae.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=s,t.condition=r}(_e||(_e={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function s(t){const e=new Set(t);return t=>e.has(t.biome())}function r(t){return e=>!t(e)}function i(t,e,s,r){return i=>{const n=r?i.stoneDepthBelow:i.stoneDepthAbove,o=e?i.surfaceDepth:0,a=0===s?0:at(i.surfaceSecondary(),-1,1,0,s);return n<=1+t+o+a}}function n(t,e,s){return r=>{const i=e(r.context),n=s(r.context);if(r.blockY<=i)return!0;if(r.blockY>=n)return!1;const o=r.system.getRandom(t),a=at(r.blockY,i,n,1,0);return o.nextFloat(){if(r.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const i=s?r.stoneDepthAbove:0;return r.blockY+i>=r.waterHeight+t+r.surfaceDepth*e}}function a(t,e,s){return r=>{const i=s?r.stoneDepthAbove:0;return r.blockY+i>=t(r.context)+r.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,u,h,c,f,m,d,p,g,v,w,b;const x=null!=(l=B.readObject(e))?l:{};switch(null==(u=B.readString(x.type))?void 0:u.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return s(null!=(h=B.readArray(x.biome_is,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"})))?h:[]);case\"not\":return r(t.fromJson(x.invert));case\"stone_depth\":return i(null!=(c=B.readInt(x.offset))?c:0,null!=(f=B.readBoolean(x.add_surface_depth))&&f,null!=(m=B.readInt(x.secondary_depth_range))?m:0,\"ceiling\"===B.readString(x.surface_type));case\"vertical_gradient\":return n(null!=(d=B.readString(x.random_name))?d:\"\",xe.fromJson(x.true_at_and_below),xe.fromJson(x.false_at_and_above));case\"water\":return o(null!=(p=B.readInt(x.offset))?p:0,null!=(g=B.readInt(x.surface_depth_multiplier))?g:0,null!=(v=B.readBoolean(x.add_surface_depth))&&v);case\"y_above\":return a(xe.fromJson(x.anchor),null!=(w=B.readInt(x.surface_depth_multiplier))?w:0,null!=(b=B.readBoolean(x.add_surface_depth))&&b)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=s,t.not=r,t.stoneDepth=i,t.verticalGradient=n,t.water=o,t.yAbove=a}(Ae||(Ae={}));class Le{constructor(t,e,s){this.biomeSource=e,this.settings=s,this.router=we.withSettings(s.noiseRouter,s.noise,t,s.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new ke(s.surfaceRule,s.defaultBlock,t);const r=new ce(-54,G.LAVA),i=new ce(s.seaLevel,s.defaultFluid);this.globalFluidPicker=(t,e,n)=>e=0;m-=1)for(let u=o-1;u>=0;u-=1){const d=(l+m)*o+u,p=15&d,g=t.getSectionIndex(d);t.getSectionIndex(a.minBlockY)!==g&&(a=t.getOrCreateSection(g));for(let t=0;te))}getNoiseChunk(t){return T(this.noiseChunkCache,X.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),r=ne.cellWidth(this.settings.noise),i=ne.cellHeight(this.settings.noise),n=Math.floor(16/r),o=Math.floor(e/i),a=Math.floor((s-e)/i),l=X.minBlockX(t.pos),u=X.minBlockZ(t.pos);return new Oe(n,a,o,this.router,l,u,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)}))}}(ye||(ye={})).fromJson=function(t){var e,s,r,i,n,o;const a=null!=(e=B.readObject(t))?e:{};return{surfaceRule:_e.fromJson(a.surface_rule),noise:ne.fromJson(a.noise),defaultBlock:G.fromJson(a.default_block),defaultFluid:G.fromJson(a.default_fluid),noiseRouter:we.fromJson(a.noise_router),seaLevel:null!=(s=B.readInt(a.sea_level))?s:0,disableMobGeneration:null!=(r=B.readBoolean(a.disable_mob_generation))&&r,aquifersEnabled:null!=(i=B.readBoolean(a.aquifers_enabled))&&i,oreVeinsEnabled:null!=(n=B.readBoolean(a.ore_veins_enabled))&&n,legacyRandomSource:null!=(o=B.readBoolean(a.legacy_random_source))&&o}};export{ue as Aquifer,At as BlendedNoise,Dt as BlockColors,Yt as BlockDefinition,qt as BlockModel,l as BlockPos,G as BlockState,H as Chunk,X as ChunkPos,Y as ChunkSection,de as Climate,ft as CubicSpline,he as DensityFunction,n as Direction,ge as FixedBiome,ce as FluidStatus,j as Holder,C as Identifier,St as ImprovedNoise,pt as LegacyPositionalRandom,dt as LegacyRandom,be as MaterialRule,ve as MultiNoise,f as NbtReader,m as NbtWriter,me as NoiseAquifer,Oe as NoiseChunk,Le as NoiseChunkGenerator,ye as NoiseGeneratorSettings,Nt as NoiseParameters,we as NoiseRouter,yt as NoiseSamplingSettings,ne as NoiseSettings,oe as NoiseSlideSettings,pe as Noises,It as NormalNoise,_t as PerlinNoise,Rt as PerlinSimplexNoise,q as Registry,xt as SimplexNoise,J as Structure,te as StructureRenderer,Ae as SurfaceCondition,Pe as SurfaceContext,_e as SurfaceRule,ke as SurfaceSystem,ie as TerrainShaper,se as TextureAtlas,xe as VerticalAnchor,Se as WorldgenContext,le as WorldgenRegistries,wt as XoroshiroPositionalRandom,vt as XoroshiroRandom,ut as binarySearch,$ as clamp,it as clampedLerp,lt as clampedMap,I as getListTag,N as getOptional,ht as getSeed,E as getTag,nt as inverseLerp,et as lazyLerp,st as lazyLerp2,rt as lazyLerp3,K as lerp,Q as lerp2,tt as lerp3,ct as longfromBytes,at as map,g as read,w as readChunk,p as readCompressed,v as readRegion,d as readUncompressed,ot as smoothstep,W as square,c as tagNames,h as tagTypes,S as write,A as writeChunk,x as writeCompressed,_ as writeRegion,b as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n"],"names":["t","s.create","s.transformMat4","r.create","r.identity","r.translate","r.rotateY","i.toRadian","r.rotateX","r.scale","s.fromValues","r.rotate","s.negate","r.perspective","s.subtract","s.cross","s.normalize","s.equals","r.copy"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"deepslate.esm.7bd59038.js","sources":["../../node_modules/deepslate-1.18.2/dist/deepslate.esm.js"],"sourcesContent":["import t from\"pako\";import e from\"md5\";import{vec3 as s,mat4 as r,glMatrix as i}from\"gl-matrix\";var n,o;(o=n||(n={})).UP=\"up\",o.DOWN=\"down\",o.NORTH=\"north\",o.EAST=\"east\",o.SOUTH=\"south\",o.WEST=\"west\";const a={[n.UP]:[0,1,0],[n.DOWN]:[0,-1,0],[n.NORTH]:[0,0,-1],[n.EAST]:[1,0,0],[n.SOUTH]:[0,0,1],[n.WEST]:[-1,0,0]};var l,u;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return a[t]}}(n||(n={})),(u=l||(l={})).create=function(t,e,s){return[t,e,s]},u.ZERO=u.create(0,0,0),u.offset=function(t,e,s,r){return[t[0]+e,t[1]+s,t[2]+r]},u.towards=function(t,e){return u.offset(t,...n.normal(e))},u.equals=function(t,e){return t===e||t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]},u.magnitude=function(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]};const h={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},c=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class f{constructor(t,e=!1){this.byte=this.readNum.bind(this,\"getInt8\",1),this.short=this.readNum.bind(this,\"getInt16\",2),this.int=this.readNum.bind(this,\"getInt32\",4),this.float=this.readNum.bind(this,\"getFloat32\",4),this.double=this.readNum.bind(this,\"getFloat64\",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const s=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,s}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let s=0;s=e)return;let s=this.buffer.byteLength;for(;sthis.buffer.byteLength&&i.fill(0,this.buffer.byteLength,this.offset),this.buffer=r,this.dataView=new DataView(r),this.arrayView=i}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,s){this.accommodate(e),this.dataView[t](this.offset,s,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e>6),r.push(128|63&s)):s<65536?(r.push(224|s>>12),r.push(128|s>>6&63),r.push(128|63&s)):(r.push(240|s>>18&7),r.push(128|s>>12&63),r.push(128|s>>6&63),r.push(128|63&s));return r}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(h[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),r.setInt16(t+1,65535&i),r.setInt8(t+3,n),r.setInt32(t+4096,e.timestamp);const o=4096*i;r.setInt32(o,e.data.length+1),r.setInt8(o+4,e.compression),s.set(e.data,o+5),i+=n}return s}function A(t,e,s,r){const i=y(t,e,s);switch(i.compression){case 1:i.data=x(r);break;case 2:i.data=x(r,!1,!0);break;case 3:i.data=b(r);break;default:throw new Error(`Invalid compression mode ${i.compression}`)}return i}function y(t,e,s){const r=t.find((t=>t.x===e&&t.z===s));if(void 0===r)throw new Error(`Cannot find chunk [${e}, ${s}]`);return r}function E(t,e,s){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==s)throw new Error(`Expected ${e} to be of type ${s}, but found ${t[e].type}`);return t[e].value}function I(t,e,s,r){const i=E(t,e,\"list\");if(i.type!==s)throw new Error(`Expected ${e} to be a list of ${s}s, but found ${i.type}s`);if(r&&i.value.length!==r)throw new Error(`Expected ${e} to be a list of length ${r}, but found length ${i.value.length}`);return i.value}function N(t,e){try{return t()}catch(t){return e}}var B;function R(t){let e=null;return()=>(null==e&&(e=t()),e)}function T(t,e,s){const r=t.get(e);if(r)return r;const i=s(e);return t.set(e,i),i}!function(t){function e(t){return\"object\"==typeof t&&null!==t?t:void 0}t.readNumber=function(t){return\"number\"==typeof t?t:void 0},t.readInt=function(t){return\"number\"==typeof t?Math.floor(t):void 0},t.readString=function(t){return\"string\"==typeof t?t:void 0},t.readBoolean=function(t){return\"boolean\"==typeof t?t:void 0},t.readObject=e,t.readArray=function(t,e){if(Array.isArray(t))return t.map((t=>e(t)))},t.readMap=function(t,s){var r;const i=null!=(r=e(t))?r:{};return Object.fromEntries(Object.entries(i).map((([t,e])=>[t,s(e)])))},t.compose=function(t,e,s){const r=e(t);return r?s(r):void 0},t.readEnum=function(t,e){return\"string\"!=typeof t?e[0]:e.includes(t)?t:e[0]}}(B||(B={}));const M=class{constructor(t,e){if(this.namespace=t,this.path=e,!t.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${t}:${e}`);if(!e.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${t}:${e}`)}equals(t){return this===t||this.namespace===t.namespace&&this.path===t.path}toString(){return`${this.namespace}:${this.path}`}static create(t){return new M(this.DEFAULT_NAMESPACE,t)}static parse(t){const e=t.indexOf(this.SEPARATOR);if(e>=0){const s=e>=1?t.substring(0,e):this.DEFAULT_NAMESPACE,r=t.substring(e+1);return new M(s,r)}return new M(this.DEFAULT_NAMESPACE,t)}};let C=M;C.DEFAULT_NAMESPACE=\"minecraft\",C.SEPARATOR=\":\";var O=Object.defineProperty,k=Object.defineProperties,P=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,F=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable,D=(t,e,s)=>e in t?O(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;const U=class{constructor(t,e={}){this.properties=e,this.name=\"string\"==typeof t?C.parse(t):t}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return this.is(U.WATER)||this.is(U.LAVA)}equals(t){return!!this.name.equals(t.name)&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}is(t){return this.name.equals(t.name)}toString(){return 0===Object.keys(this.properties).length?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=C.parse(E(t.value,\"Name\",\"string\")),s=N((()=>E(t.value,\"Properties\",\"compound\")),{}),r=Object.keys(s).reduce(((t,e)=>{return r=((t,e)=>{for(var s in e||(e={}))F.call(e,s)&&D(t,s,e[s]);if(L)for(var s of L(e))V.call(e,s)&&D(t,s,e[s]);return t})({},t),i={[e]:E(s,e,\"string\")},k(r,P(i));var r,i}),{});return new U(e,r)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.Name))?s:U.STONE.name.toString()),n=B.readMap(r.Properties,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"}));return new U(i,n)}};let G=U;G.AIR=new U(C.create(\"air\")),G.STONE=new U(C.create(\"stone\")),G.WATER=new U(C.create(\"water\"),{level:\"0\"}),G.LAVA=new U(C.create(\"lava\"),{level:\"0\"});const z=class{constructor(t){this.minY=t,this.storage=Array(z.SIZE).fill(0),this.palette=[G.AIR]}get minBlockY(){return this.minY<<4}index(t,e,s){return(t<<8)+(e<<4)+s}getBlockState(t,e,s){var r;const i=this.storage[this.index(t,e,s)];return null!=(r=this.palette[i])?r:G.AIR}setBlockState(t,e,s,r){let i=this.palette.findIndex((t=>t.equals(r)));-1===i&&(i=this.palette.length,this.palette.push(r)),this.storage[this.index(t,e,s)]=i}};let Y=z;Y.WIDTH=16,Y.SIZE=z.WIDTH*z.WIDTH*z.WIDTH;class H{constructor(t,e,s){this.minY=t,this.height=e,this.pos=s,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[s,r,i]=t,n=this.sections[this.getSectionIndex(r)];return null!=(e=null==n?void 0:n.getBlockState(15&s,15&r,15&i))?e:G.AIR}setBlockState(t,e){const[s,r,i]=t,n=this.getSectionIndex(r);let o=this.sections[n];if(null===o){if(e.equals(G.AIR))return;o=this.getOrCreateSection(n)}o.setBlockState(15&s,15&r,15&i,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new Y(this.minSection+t)),this.sections[t]}}var X,j;!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(X||(X={})),function(t){function e(t){return{value:()=>t,key:()=>{}}}function s(t,e){return{value:()=>t.getOrThrow(e),key:()=>e}}t.parser=function(t,r){return i=>\"string\"==typeof i?s(t,C.parse(i)):e(r(i))},t.direct=e,t.reference=s}(j||(j={}));const Z=class{constructor(t,e){this.key=t,this.parser=e,this.storage=new Map,this.builtin=new Map}register(t,e,s){return this.storage.set(t.toString(),e),s&&this.builtin.set(t.toString(),e),j.reference(this,t)}keys(){return[...this.storage.keys()].map((t=>C.parse(t)))}get(t){return this.storage.get(t.toString())}getOrThrow(t){const e=this.storage.get(t.toString());if(void 0===e)throw new Error(`Missing key in ${this.key.toString()}: ${t.toString()}`);return e}parse(t){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(t)}clear(){this.storage.clear();for(const[t,e]of this.builtin.entries())this.storage.set(t,e);return this}assign(t){if(!this.key.equals(t.key))throw new Error(`Cannot assign registry of type ${t.key.toString()} to registry of type ${this.key.toString()}`);for(const e of t.keys())this.storage.set(e.toString(),t.getOrThrow(e));return this}cloneEmpty(){return new Z(this.key,this.parser)}};let q=Z;q.REGISTRY=new Z(C.create(\"root\"));class J{constructor(t,e=[],s=[]){this.size=t,this.palette=e,this.blocks=s,this.blocksMap=[],s.forEach((e=>{if(!this.isInside(e.pos))throw new Error(`Found block at ${e.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[e.pos[0]*t[1]*t[2]+e.pos[1]*t[2]+e.pos[2]]=e}))}getSize(){return this.size}addBlock(t,e,s,r){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const i=new G(e,s);let n=this.palette.findIndex((t=>t.equals(i)));return-1===n&&(n=this.palette.length,this.palette.push(i)),this.blocks.push({pos:t,state:n,nbt:r}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:n,nbt:r},this}getBlocks(){return this.blocks.map((t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt})))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];if(!e)return null;return{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}}isInside(t){return t[0]>=0&&t[0]=0&&t[1]=0&&t[2]G.fromNbt({name:\"\",value:t}))),r=I(t.value,\"blocks\",\"compound\").map((t=>({pos:I(t,\"pos\",\"int\",3),state:E(t,\"state\",\"int\"),nbt:N((()=>E(t,\"nbt\",\"compound\")),void 0)})));return new J(e,s,r)}}function W(t){return t*t}function $(t,e,s){return Math.max(e,Math.min(s,t))}function K(t,e,s){return e+t*(s-e)}function Q(t,e,s,r,i,n){return K(e,K(t,s,r),K(t,i,n))}function tt(t,e,s,r,i,n,o,a,l,u,h){return K(s,Q(t,e,r,i,n,o),Q(t,e,a,l,u,h))}function et(t,e,s){return 0===t?e():1===t?s():e()+t*(s()-e())}function st(t,e,s,r,i,n){return et(e,(()=>et(t,s,r)),(()=>et(t,i,n)))}function rt(t,e,s,r,i,n,o,a,l,u,h){return et(s,(()=>st(t,e,r,i,n,o)),(()=>st(t,e,a,l,u,h)))}function it(t,e,s){return s<0?t:s>1?e:K(s,t,e)}function nt(t,e,s){return(t-e)/(s-e)}function ot(t){return t*t*t*(t*(6*t-15)+10)}function at(t,e,s,r,i){return K(nt(t,e,s),r,i)}function lt(t,e,s,r,i){return it(r,i,nt(t,e,s))}function ut(t,e,s){let r=e-t;for(;r>0;){const e=Math.floor(r/2),i=t+e;s(i)?r=e:(t=i+1,r-=e+1)}return t}function ht(t,e,s){let r=BigInt(3129871*t)^BigInt(s)*BigInt(116129781)^BigInt(e);return r=r*r*BigInt(42317861)+r*BigInt(11),r>>BigInt(16)}function ct(t,e,s,r,i,n,o,a){return BigInt(t)<{var e;return null!=(e=B.readObject(t))?e:{}})))?o:[];if(0===c.length)return new e(0);for(const e of c){const s=null!=(a=B.readNumber(e.location))?a:0,r=t(e.value,i),n=null!=(l=B.readNumber(e.derivative))?l:0;h.addPoint(s,r,n)}return h};class e{constructor(t){this.value=t}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}t.Constant=e;class s{constructor(t,e=[],s=[],r=[]){this.coordinate=t,this.locations=e,this.values=s,this.derivatives=r}compute(t){const e=this.coordinate.compute(t),s=ut(0,this.locations.length,(t=>et.min())))}max(){return Math.max(...this.values.map((t=>t.max())))}mapAll(t){return new s(t(this.coordinate),this.locations,this.values.map((e=>e.mapAll(t))),this.derivatives)}addPoint(e,s,r=0){return this.locations.push(e),this.values.push(\"number\"==typeof s?new t.Constant(s):s),this.derivatives.push(r),this}}t.MultiPoint=s}(ft||(ft={}));const mt=class{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new mt(this.nextLong())}forkPositional(){return new pt(this.nextLong())}setSeed(t){this.seed=t^mt.MULTIPLIER&mt.MODULUS_MASK}advance(){this.seed=this.seed*mt.MULTIPLIER+mt.INCREMENT&mt.MODULUS_MASK}consume(t){for(let e=0;e>BigInt(mt.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(void 0===t)return this.next(32);if(0==(t&t-1))return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,s;for(;(e=this.next(31))-(s=e%t)+(t-1)<0;);return s}nextLong(){return(BigInt(this.next(32))<>gt.BIGINT_30)*gt.STAFFORD_1>.MAX_ULONG)^t>>gt.BIGINT_27)*gt.STAFFORD_2>.MAX_ULONG)^t>>gt.BIGINT_31)>.MAX_ULONG}static upgradeSeedTo128bit(t){t<0&&(t+=gt.POW2_60);const e=t^gt.SILVER_RATIO_64,s=e+gt.GOLDEN_RATIO_64>.MAX_ULONG;return[gt.mixStafford13(e),gt.mixStafford13(s)]}static rotateLeft(t,e){return t<>gt.BIGINT_64-e}setSeed(t){this.seed=gt.upgradeSeedTo128bit(t)}fork(){return new gt([this.next(),this.next()])}forkPositional(){return new wt(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const s=gt.rotateLeft(t+e>.MAX_ULONG,gt.BIGINT_17)+t>.MAX_ULONG;return e^=t,this.seed=[gt.rotateLeft(t,gt.BIGINT_49)^e^e<gt.POW2_63&&(t-=gt.POW2_60),t}consume(t){let e=this.seed[0],s=this.seed[1];for(let r=0;r>BigInt(64-t)}nextInt(t){let e=this.next()>.MAX_UINT;if(t){const s=BigInt(t);let r=e*s,i=r>.MAX_UINT;if(i>gt.BIGINT_32;return Number(n)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*gt.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*gt.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}};let vt=gt;vt.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),vt.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),vt.FLOAT_MULTIPLIER=1/Math.pow(2,24),vt.DOUBLE_MULTIPLIER=11102230246251565e-32,vt.BIGINT_1=BigInt(1),vt.BIGINT_17=BigInt(17),vt.BIGINT_21=BigInt(21),vt.BIGINT_27=BigInt(27),vt.BIGINT_28=BigInt(28),vt.BIGINT_30=BigInt(30),vt.BIGINT_31=BigInt(31),vt.BIGINT_32=BigInt(32),vt.BIGINT_49=BigInt(49),vt.BIGINT_64=BigInt(64),vt.STAFFORD_1=BigInt(\"-4658895280553007687\"),vt.STAFFORD_2=BigInt(\"-7723592293110705685\"),vt.MAX_ULONG=BigInt(\"0xFFFFFFFFFFFFFFFF\"),vt.POW2_60=BigInt(\"0x10000000000000000\"),vt.POW2_63=BigInt(\"0x8000000000000000\"),vt.MAX_UINT=BigInt(4294967295);class wt{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,s){const r=ht(t,e,s)^this.seedLo;return new vt([r,this.seedHi])}fromHashOf(t){const s=e(t,{asBytes:!0}),r=ct(s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7]),i=ct(s[8],s[9],s[10],s[11],s[12],s[13],s[14],s[15]);return new vt([r^this.seedLo,i^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const bt=class{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample2D(t,e){let s,r,i;const n=(t+e)*bt.F2,o=Math.floor(t+n),a=t-(o-(s=(o+(r=Math.floor(e+n)))*bt.G2));let l,u;a>(i=e-(r-s))?(l=1,u=0):(l=0,u=1);const h=a-l+bt.G2,c=i-u+bt.G2,f=a-1+2*bt.G2,m=i-1+2*bt.G2,d=255&o,p=255&r,g=this.P(d+this.P(p))%12,v=this.P(d+l+this.P(p+u))%12,w=this.P(d+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(g,a,i,0,.5)+this.getCornerNoise3D(v,h,c,0,.5)+this.getCornerNoise3D(w,f,m,0,.5))}sample(t,e,s){const r=.3333333333333333*(t+e+s),i=Math.floor(t+r),n=Math.floor(e+r),o=Math.floor(s+r),a=.16666666666666666*(i+n+o),l=t-(i-a),u=e-(n-a),h=s-(o-a);let c,f,m,d,p,g;l>=u?u>=h?(c=1,f=0,m=0,d=1,p=1,g=0):l>=h?(c=1,f=0,m=0,d=1,p=0,g=1):(c=0,f=0,m=1,d=1,p=0,g=1):u127?t-256:t;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample(t,e,s,r=0,i=0){const n=t+this.xo,o=e+this.yo,a=s+this.zo,l=Math.floor(n),u=Math.floor(o),h=Math.floor(a),c=n-l,f=o-u,m=a-h;let d=0;if(0!==r){const t=i>=0&&i=0;r-=1)r0&&(r=this.maxLimitNoise.getOctaveNoise(l))&&(a+=r.sample(c,f,m,h,e*h)/n),n/=2}return it(o/512,a/512,i)/128}}var yt;(yt||(yt={})).fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{xzScale:null!=(s=B.readNumber(o.xz_scale))?s:1,yScale:null!=(r=B.readNumber(o.y_scale))?r:1,xzFactor:null!=(i=B.readNumber(o.xz_factor))?i:80,yFactor:null!=(n=B.readNumber(o.y_factor))?n:80}};const Et=class{constructor(t,{firstOctave:e,amplitudes:s}){this.first=new _t(t,e,s),this.second=new _t(t,e,s);let r=1/0,i=-1/0;for(let t=0;t{var e;return null!=(e=B.readNumber(t))?e:0})))?r:[]}};class Rt{constructor(t,e){const s=e[e.length-1],r=-e[0]+s+1,i=new Set(e),n=new xt(t);this.noiseLevels=Array(r),s>=0&&s=0&&i.has(s-e)?this.noiseLevels[e]=new xt(t):t.consume(262);if(s>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,s),this.highestFreqValueFactor=1/(Math.pow(2,r)-1)}sample(t,e,s){let r=0,i=this.highestFreqInputFactor,n=this.highestFreqValueFactor;for(let o=0;o[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],Mt=[124/256,189/256,107/256],Ct=Tt(6396257),Ot=Tt(8431445),kt=Tt(4764952),Pt=Tt(4159204),Lt=Tt(8431445),Ft=Tt(2129968),Vt=t=>[t/8,1-t/32,64*t],Dt={large_fern:()=>Mt,tall_grass:()=>Mt,grass_block:()=>Mt,fern:()=>Mt,grass:()=>Mt,potted_fern:()=>Mt,spruce_leaves:()=>Ct,birch_leaves:()=>Ot,oak_leaves:()=>kt,jungle_leaves:()=>kt,acacia_leaves:()=>kt,dark_oak_leaves:()=>kt,vine:()=>kt,water:()=>Pt,bubble_column:()=>Pt,cauldron:()=>Pt,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),$(e*e*.7-.5,0,1),$(e*e*.6-.7,0,1)]})(parseInt(null!=(e=t.power)?e:\"0\"))},sugar_cane:()=>Mt,attached_melon_stem:()=>Lt,attached_pumpkin_stem:()=>Lt,melon_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},pumpkin_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},lily_pad:()=>Ft};var Ut;function Gt(...t){let e=0;for(const s of t)e+=s.length;const s=new Float32Array(e);let r=0;for(const e of t)s.set(e,r),r+=e.length;return s}function zt(t,e){const r=s.create();for(let i=0;ithis.matchesVariant(e,t)));if(0===e.length)return[];const s=this.variants[e[0]];return[Array.isArray(s)?s[0]:s]}if(this.multipart){return this.multipart.filter((e=>!e.when||this.matchesCase(e.when,t))).map((t=>Array.isArray(t.apply)?t.apply[0]:t.apply))}return[]}getBuffers(t,e,s,n,o,a){var l,u,h,c;const f=this.getModelVariants(e),m=[],d=[],p=[],g=[];for(const v of f){const f=Ut.rotate(a,null!=(l=v.x)?l:0,null!=(u=v.y)?u:0),w=n.getBlockModel(v.model).getBuffers(t,e,s,o,f);if(v.x||v.y){const t=r.create();r.identity(t),r.translate(t,t,[8,8,8]),r.rotateY(t,t,-i.toRadian(null!=(h=v.y)?h:0)),r.rotateX(t,t,-i.toRadian(null!=(c=v.x)?c:0)),r.translate(t,t,[-8,-8,-8]),zt(w.position,t)}m.push(w.position),d.push(...w.texCoord),p.push(...w.tintColor),g.push(...w.index),o+=w.texCoord.length/2}const v=r.create();r.identity(v),r.scale(v,v,[.0625,.0625,.0625]);const w=Gt(...m);return zt(w,v),{position:w,texCoord:d,tintColor:p,index:g}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[s,r]=t.split(\"=\");return e[s]===r}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const s=t;return Object.keys(s).every((t=>s[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new Yt(t,e.variants,e.multipart)}}const Ht={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},Xt={x:[1,0,0],y:[0,1,0],z:[0,0,1]},jt=1.41421356237,Zt={x:[1,jt,jt],y:[jt,1,jt],z:[jt,jt,1]};class qt{constructor(t,e,s,r){this.id=t,this.parent=e,this.textures=s,this.elements=r,this.flattened=!1}getBuffers(t,e,s,r,i){var n;const o=[],a=[],l=[],u=[];for(const h of null!=(n=this.elements)?n:[]){const n=this.getElementBuffers(t,e,h,r,s,i);o.push(n.position),a.push(...n.texCoord),l.push(...n.tintColor),u.push(...n.index),r+=n.texCoord.length/2}return{position:Gt(...o),texCoord:a,tintColor:l,index:u}}getElementBuffers(t,e,n,o,a,l){var u,h,c,f,m,d,p,g,v,w,b,x;const S=n.from[0],_=n.from[1],A=n.from[2],y=n.to[0],E=n.to[1],I=n.to[2],N=[],B=[],R=[],T=[],M=(s,r,i)=>{var n,l,u,h,c,f,m,d,p,g,v,w,b;const[x,S,_,A]=a.getTextureUV(this.getTexture(s.texture)),y=(_-x)/16,E=(A-S)/16,I=y/16,M=E/16;r[0]=(null!=(l=null==(n=s.uv)?void 0:n[0])?l:r[0])*y+I,r[1]=(null!=(h=null==(u=s.uv)?void 0:u[1])?h:r[1])*E+M,r[2]=(null!=(f=null==(c=s.uv)?void 0:c[2])?f:r[2])*y-I,r[3]=(null!=(d=null==(m=s.uv)?void 0:m[3])?d:r[3])*E-M;const C=Ht[null!=(p=s.rotation)?p:0];B.push(x+r[C[0]],S+r[C[1]],x+r[C[2]],S+r[C[3]],x+r[C[4]],S+r[C[5]],x+r[C[6]],S+r[C[7]]);const O=(null!=(g=s.tintindex)?g:-1)>=0&&null!=(b=null==(w=(v=Dt)[t.path])?void 0:w.call(v,e))?b:[1,1,1];R.push(...O,...O,...O,...O),N.push(...i),T.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null==(h=null==(u=n.faces)?void 0:u.up)?void 0:h.texture)||n.faces.up.cullface&&l[n.faces.up.cullface]||M(n.faces.up,[S,16-I,y,16-A],[S,E,I,y,E,I,y,E,A,S,E,A]),!(null==(f=null==(c=n.faces)?void 0:c.down)?void 0:f.texture)||n.faces.down.cullface&&l[n.faces.down.cullface]||M(n.faces.down,[16-I,16-y,16-A,16-S],[S,_,A,y,_,A,y,_,I,S,_,I]),!(null==(d=null==(m=n.faces)?void 0:m.south)?void 0:d.texture)||n.faces.south.cullface&&l[n.faces.south.cullface]||M(n.faces.south,[S,16-E,y,16-_],[S,_,I,y,_,I,y,E,I,S,E,I]),!(null==(g=null==(p=n.faces)?void 0:p.north)?void 0:g.texture)||n.faces.north.cullface&&l[n.faces.north.cullface]||M(n.faces.north,[16-y,16-E,16-S,16-_],[y,_,A,S,_,A,S,E,A,y,E,A]),!(null==(w=null==(v=n.faces)?void 0:v.east)?void 0:w.texture)||n.faces.east.cullface&&l[n.faces.east.cullface]||M(n.faces.east,[16-I,16-E,16-A,16-_],[y,_,I,y,_,A,y,E,A,y,E,I]),!(null==(x=null==(b=n.faces)?void 0:b.west)?void 0:x.texture)||n.faces.west.cullface&&l[n.faces.west.cullface]||M(n.faces.west,[A,16-E,I,16-_],[S,_,A,S,_,I,S,E,I,S,E,A]);const C=r.create();if(r.identity(C),n.rotation){const t=s.fromValues(...n.rotation.origin);r.translate(C,C,t),r.rotate(C,C,i.toRadian(n.rotation.angle),Xt[n.rotation.axis]),n.rotation.rescale&&r.scale(C,C,Zt[n.rotation.axis]),s.negate(t,t),r.translate(C,C,t)}const O=new Float32Array(N);return zt(O,C),{position:O,texCoord:B,tintColor:R,index:T}}getTexture(t){for(var e,s;t.startsWith(\"#\");)t=null!=(s=null==(e=this.textures)?void 0:e[t.slice(1)])?s:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const s=t.getBlockModel(this.parent);if(!s)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);s.flatten(t),this.elements||(this.elements=s.elements),this.textures||(this.textures={}),Object.keys(null!=(e=s.textures)?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=s.textures[t])})),this.flattened=!0}}static fromJson(t,e){let s=e.parent;return s&&!s.startsWith(\"minecraft:\")&&(s=\"minecraft:\"+s),new qt(t,s,e.textures,e.elements)}}class Jt{constructor(t,e,s){this.gl=t,this.program=this.initShaderProgram(e,s)}getProgram(){return this.program}initShaderProgram(t,e){const s=this.loadShader(this.gl.VERTEX_SHADER,t),r=this.loadShader(this.gl.FRAGMENT_SHADER,e),i=this.gl.createProgram();if(this.gl.attachShader(i,s),this.gl.attachShader(i,r),this.gl.linkProgram(i),!this.gl.getProgramParameter(i,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(i)}`);return i}loadShader(t,e){const s=this.gl.createShader(t);if(this.gl.shaderSource(s,e),this.gl.compileShader(s),!this.gl.getShaderParameter(s,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(s)}`);throw this.gl.deleteShader(s),e}return s}}function Wt(t,e,s,r,i){const n=new Yt(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>i};return i.flatten(o),n.getBuffers(t,{},e,o,s,r)}function $t(t,e,s,r,i,o){const a=i.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][s];return Wt(C.create(t),r,e,i,new qt(\"\",\"\",{still:`minecraft:block/${t}_still`,flow:`minecraft:block/${t}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:\"#still\",tintindex:o,cullface:n.UP},down:{texture:\"#still\",tintindex:o,cullface:n.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:n.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:n.EAST},south:{texture:\"#flow\",tintindex:o,cullface:n.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:n.WEST}}}]))}const Kt={\"minecraft:water\":(t,e,s,r)=>$t(\"water\",t,parseInt(e.level),s,r,0),\"minecraft:lava\":(t,e,s,r)=>$t(\"lava\",t,parseInt(e.level),s,r),\"minecraft:chest\":(t,e,s)=>function(t,e,s,r){return Wt(C.create(\"chest\"),r,t,{},new qt(\"\",\"\",{0:\"minecraft:block/chest\"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:\"#0\"},down:{texture:\"#0\"},north:{texture:\"#0\"},east:{texture:\"#0\"},south:{texture:\"#0\"},west:{texture:\"#0\"}}}]))}(t,e.facing,e.type,s)},Qt=new Set(Object.keys(Kt));class te{constructor(t,e,s,r){var i,n;this.gl=t,this.structure=e,this.resources=s,this.chunks=[],(null==r?void 0:r.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!=(i=null==r?void 0:r.chunkSize)?i:16,this.useInvisibleBlockBuffer=null==(n=null==r?void 0:r.useInvisibleBlockBuffer)||n,this.shaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec2 texCoord;\\n attribute vec3 tintColor;\\n attribute vec3 normal;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vTexCoord = texCoord;\\n vTintColor = tintColor;\\n vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n uniform sampler2D sampler;\\n\\n void main(void) {\\n vec4 texColor = texture2D(sampler, vTexCoord);\\n if(texColor.a < 0.01) discard;\\n gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\\n }\\n\").getProgram(),this.gridShaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 vertColor;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = vertColor;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.colorShaderProgram=new Jt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 blockPos;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = blockPos / 256.0;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(t){this.structure=t,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),t}getPerspective(){const t=70*Math.PI/180,e=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,s=r.create();return r.perspective(s,t,e,.1,500),s}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),s=2*Math.abs(t[1])+(t[1]<0?1:0),r=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][s]||(this.chunks[e][s]=[]),this.chunks[e][s][r]||(this.chunks[e][s][r]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][s][r]}updateStructureBuffers(t){var e;const i=(t,e,i)=>{const n=r.create();r.translate(n,n,e),zt(t.position,n),i.positions.push(t.position),i.textureCoordinates.push(...t.texCoord),i.tintColors.push(...t.tintColor);for(let e=0;e{t.positions=[],t.textureCoordinates=[],t.tintColors=[],t.blockPositions=[],t.normals=[],t.indices=[],t.indexOffset=0},a=t=>{t.buffer?(this.updateBuffer(t.buffer.position,this.gl.ARRAY_BUFFER,Gt(...t.positions)),this.updateBuffer(t.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),this.updateBuffer(t.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),this.updateBuffer(t.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),this.updateBuffer(t.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),this.updateBuffer(t.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),t.buffer.length=t.indices.length):t.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,Gt(...t.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),length:t.indices.length}};let l;t?t.forEach((t=>{const e=this.getChunk(t);o(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{o(t)}))))));for(const r of this.structure.getBlocks()){const o=r.state.getName(),a=r.state.getProperties(),u=null!=(e=this.resources.getDefaultBlockProperties(o))?e:{};Object.entries(u).forEach((([t,e])=>{a[t]||(a[t]=e)}));const h=[Math.floor(r.pos[0]/this.chunkSize),Math.floor(r.pos[1]/this.chunkSize),Math.floor(r.pos[2]/this.chunkSize)];if(t&&!t.some((t=>s.equals(t,h))))continue;const c=this.getChunk(h);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(r,n.UP),down:this.needsCull(r,n.DOWN),west:this.needsCull(r,n.WEST),east:this.needsCull(r,n.EAST),north:this.needsCull(r,n.NORTH),south:this.needsCull(r,n.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),i(l,r.pos,c)),Qt.has(o.toString())&&(l=Kt[o.toString()](c.indexOffset,a,this.resources,e),i(l,r.pos,c))}catch(t){console.error(`Error rendering block ${o}`,t)}}t?t.forEach((t=>{const e=this.getChunk(t);a(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{a(t)}))))))}needsCull(t,e){var s,r;const i=null==(s=this.structure.getBlock(l.towards(t.pos,e)))?void 0:s.state;return!!i&&((null==(r=this.resources.getBlockFlags(i.getName()))?void 0:r.opaque)?!(e===n.UP&&t.state.isFluid()):t.state.isFluid()&&i.isFluid())}getGridBuffers(){const[t,e,s]=this.structure.getSize(),r=[],i=[];r.push(0,0,0,t,0,0),i.push(1,0,0,1,0,0),r.push(0,0,0,0,0,s),i.push(0,0,1,0,0,1),r.push(0,0,0,0,e,0),r.push(t,0,0,t,e,0),r.push(0,0,s,0,e,s),r.push(t,0,s,t,e,s),r.push(0,e,0,0,e,s),r.push(t,e,0,t,e,s),r.push(0,e,0,t,e,0),r.push(0,e,s,t,e,s);for(let e=1;e<=t;e+=1)r.push(e,0,0,e,0,s);for(let e=1;e<=s;e+=1)r.push(0,0,e,t,0,e);for(let e=0;e<8+t+s;e+=1)i.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(r)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i)),length:r.length/3}}getOutlineBuffers(){const t=[],e=[];return this.addCube(t,e,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),length:t.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const t=this.structure.getSize(),e=[],s=[];for(let r=0;r{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"texCoord\",2,t.buffer.texCoord),this.setVertexAttr(\"tintColor\",3,t.buffer.tintColor),this.setVertexAttr(\"normal\",3,t.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawColoredStructure(t){this.setShader(this.colorShaderProgram),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.chunks.forEach((t=>{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"blockPos\",3,t.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawOutline(t,e){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.outlineBuffers.position),this.setVertexAttr(\"vertColor\",3,this.outlineBuffers.color);const s=r.create();r.copy(s,t),r.translate(s,s,e),this.setUniform(\"mView\",s),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,s,r){this.gl.viewport(t,e,s,r),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,s){const r=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,s),this.gl.vertexAttribPointer(r,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(r)}setUniform(t,e){const s=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(s,!1,e)}}var ee=(t,e,s)=>new Promise(((r,i)=>{var n=t=>{try{a(s.next(t))}catch(t){i(t)}},o=t=>{try{a(s.throw(t))}catch(t){i(t)}},a=t=>t.done?r(t.value):Promise.resolve(t.value).then(n,o);a((s=s.apply(t,e)).next())}));class se{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return null!=(e=this.idMap[t])?e:[0,0,this.part,this.part]}static fromBlobs(t){return ee(this,null,(function*(){const e=Math.sqrt(Object.keys(t).length+1),s=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),r=16*s,i=1/s,n=document.createElement(\"canvas\");n.width=r,n.height=r;const o=n.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>ee(this,null,(function*(){const r=l%s,n=Math.floor(l/s);l+=1,a[e]=[i*r,i*n,i*r+i,i*n+i];const u=yield createImageBitmap(t[e]);o.drawImage(u,0,0,16,16,16*r,16*n,16,16)}))))),new se(o.getImageData(0,0,r,r),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return se.drawInvalidTexture(e),new se(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle=\"black\",t.fillRect(0,0,16,16),t.fillStyle=\"magenta\",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}const re=class{constructor(t,e,s){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=s}static extractor(t){return{compute:e=>e[t]}}static fromJson(t){var e;const s=null!=(e=B.readObject(t))?e:{};return new re(ft.fromJson(s.offset,this.EXTRACTOR),ft.fromJson(s.factor,this.EXTRACTOR),ft.fromJson(s.jaggedness,this.EXTRACTOR))}offset(t){return this.offsetSampler.compute(t)+re.GLOBAL_OFFSET}factor(t){return this.factorSampler.compute(t)}jaggedness(t){return this.jaggednessSampler.compute(t)}static point(t,e,s){return{continents:t,erosion:e,weirdness:s,ridges:this.peaksAndValleys(s)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}};let ie=re;var ne,oe,ae,le,ue;ie.GLOBAL_OFFSET=-.50375,ie.EXTRACTOR=t=>{var e;const s=null!=(e=B.readString(t))?e:\"continents\";return re.extractor(s)},ie.CONTINENTS=re.extractor(\"continents\"),ie.EROSION=re.extractor(\"erosion\"),ie.WEIRDNESS=re.extractor(\"weirdness\"),ie.RIDGES=re.extractor(\"ridges\"),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{minY:null!=(s=B.readInt(o.min_y))?s:0,height:null!=(r=B.readInt(o.height))?r:256,xzSize:null!=(i=B.readInt(o.size_horizontal))?i:1,ySize:null!=(n=B.readInt(o.size_vertical))?n:1,sampling:yt.fromJson(o.sampling),topSlide:oe.fromJson(o.top_slide),bottomSlide:oe.fromJson(o.bottom_slide),terrainShaper:ie.fromJson(o.terrain_shaper)}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))},t.applySlides=function(s,r,i){const n=Math.floor(i/e(s))-t.minCellY(s);return r=oe.apply(s.topSlide,r,t.cellCountY(s)-n),r=oe.apply(s.bottomSlide,r,n)}}(ne||(ne={})),(ae=oe||(oe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return{target:null!=(s=B.readNumber(n.target))?s:0,size:null!=(r=B.readInt(n.size))?r:0,offset:null!=(i=B.readInt(n.offset))?i:0}},ae.apply=function(t,e,s){if(t.size<=0)return e;const r=(s-t.offset)/t.size;return it(t.target,e,r)},function(t){function e(t){const e=new q(C.create(t));return q.REGISTRY.register(e.key,e),e}t.NOISE=e(\"worldgen/noise\"),t.DENSITY_FUNCTION=e(\"worldgen/density_function\")}(le||(le={}));class he{minValue(){return-this.maxValue()}mapAll(t){return t.map(this)}}!function(t){t.context=function(t,e,s){return{x:t,y:e,z:s}};class e extends t{constructor(t){super(),this.input=t}compute(t){return this.transform(t,this.input.compute(t))}}const s=j.parser(le.NOISE,Nt.fromJson);t.fromJson=function t(e,r=t){var l,v,S,N,T,D,U,G,z,Y,H,X,Z,q,J,W,$,K,Q;if(\"string\"==typeof e)return new n(j.reference(le.DENSITY_FUNCTION,C.parse(e)));if(\"number\"==typeof e)return new i(e);const tt=null!=(l=B.readObject(e))?l:{},et=null==(v=B.readString(tt.type))?void 0:v.replace(/^minecraft:/,\"\");switch(et){case\"blend_alpha\":return new o(1,0,1);case\"blend_offset\":case\"beardifier\":return new o(0,-1/0,1/0);case\"old_blended_noise\":return new a;case\"flat_cache\":return new u(r(tt.argument));case\"interpolated\":return new m(r(tt.argument));case\"cache_2d\":return new c(r(tt.argument));case\"cache_once\":return new f(r(tt.argument));case\"cache_all_in_cell\":return new h(r(tt.argument));case\"noise\":return new d(null!=(S=B.readNumber(tt.xz_scale))?S:1,null!=(N=B.readNumber(tt.y_scale))?N:1,s(tt.noise));case\"end_islands\":return new p;case\"weird_scaled_sampler\":return new w(r(tt.input),B.readEnum(tt.rarity_value_mapper,g),s(tt.noise));case\"shifted_noise\":return new b(r(tt.shift_x),r(tt.shift_y),r(tt.shift_z),null!=(T=B.readNumber(tt.xz_scale))?T:1,null!=(D=B.readNumber(tt.y_scale))?D:1,s(tt.noise));case\"range_choice\":return new x(r(tt.input),null!=(U=B.readNumber(tt.min_inclusive))?U:0,null!=(G=B.readNumber(tt.max_exclusive))?G:1,r(tt.when_in_range),r(tt.when_out_of_range));case\"shift_a\":return new _(s(tt.argument));case\"shift_b\":return new A(s(tt.argument));case\"shift\":return new y(s(tt.argument));case\"blend_density\":return new E(r(tt.argument));case\"clamp\":return new I(r(tt.input),null!=(z=B.readNumber(tt.min))?z:0,null!=(Y=B.readNumber(tt.max))?Y:1);case\"abs\":case\"square\":case\"cube\":case\"half_negative\":case\"quarter_negative\":case\"squeeze\":return new R(et,r(tt.argument));case\"slide\":return new M(r(tt.argument));case\"add\":case\"mul\":case\"min\":case\"max\":return new k(B.readEnum(et,O),r(tt.argument1),r(tt.argument2));case\"spline\":return new P(ft.fromJson(tt.spline,r),null!=(H=B.readNumber(tt.min_value))?H:0,null!=(X=B.readNumber(tt.max_value))?X:1);case\"terrain_shaper_spline\":return new F(r(tt.continentalness),r(tt.erosion),r(tt.weirdness),B.readEnum(tt.spline,L),null!=(Z=B.readNumber(tt.min_value))?Z:0,null!=(q=B.readNumber(tt.max_value))?q:1);case\"constant\":return new i(null!=(J=B.readNumber(tt.argument))?J:0);case\"y_clamped_gradient\":return new V(null!=(W=B.readInt(tt.from_y))?W:-4064,null!=($=B.readInt(tt.to_y))?$:4062,null!=(K=B.readNumber(tt.from_value))?K:-4064,null!=(Q=B.readNumber(tt.to_value))?Q:4062)}return i.ZERO};const r=class extends t{constructor(t){super(),this.value=t}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let i=r;i.ZERO=new r(0),i.ONE=new r(1),t.Constant=i;class n extends t{constructor(t){super(),this.holder=t}compute(t){return this.holder.value().compute(t)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}t.HolderHolder=n;class o extends t.Constant{constructor(t,e,s){super(t),this.min=e,this.max=s}minValue(){return this.min}maxValue(){return this.max}}t.ConstantMinMax=o;class a extends t{constructor(t){super(),this.blendedNoise=null!=t?t:new At(vt.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(t){return this.blendedNoise.sample(t.x,t.y,t.z)}maxValue(){return this.blendedNoise.maxValue}}t.OldBlendedNoise=a;class l extends t{constructor(t){super(),this.wrapped=t}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class u extends l{constructor(t){super(t),this.lastValue=0}compute(e){const s=e.x>>2,r=e.z>>2;return this.lastQuartX===s&&this.lastQuartZ===r||(this.lastValue=this.wrapped.compute(t.context(s<<2,0,r<<2)),this.lastQuartX=s,this.lastQuartZ=r),this.lastValue}mapAll(t){return t.map(new u(this.wrapped.mapAll(t)))}}t.FlatCache=u;class h extends l{constructor(t){super(t)}compute(t){return this.wrapped.compute(t)}mapAll(t){return t.map(new h(this.wrapped.mapAll(t)))}}t.CacheAllInCell=h;class c extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.z;return this.lastBlockX===e&&this.lastBlockZ===s||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockZ=s),this.lastValue}mapAll(t){return t.map(new c(this.wrapped.mapAll(t)))}}t.Cache2D=c;class f extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.y,r=t.z;return this.lastBlockX===e&&this.lastBlockY===s&&this.lastBlockZ===r||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockY=s,this.lastBlockZ=r),this.lastValue}mapAll(t){return t.map(new f(this.wrapped.mapAll(t)))}}t.CacheOnce=f;class m extends l{constructor(t,e=4,s=4){super(t),this.cellWidth=e,this.cellHeight=s,this.values=new Map}compute({x:t,y:e,z:s}){const r=this.cellWidth,i=this.cellHeight,n=(t%r+r)%r/r,o=(e%i+i)%i/i,a=(s%r+r)%r/r,l=Math.floor(t/r)*r,u=Math.floor(e/i)*i,h=Math.floor(s/r)*r;return rt(n,o,a,(()=>this.computeCorner(l,u,h)),(()=>this.computeCorner(l+r,u,h)),(()=>this.computeCorner(l,u+i,h)),(()=>this.computeCorner(l+r,u+i,h)),(()=>this.computeCorner(l,u,h+r)),(()=>this.computeCorner(l+r,u,h+r)),(()=>this.computeCorner(l,u+i,h+r)),(()=>this.computeCorner(l+r,u+i,h+r)))}computeCorner(e,s,r){return T(this.values,`${e} ${s} ${r}`,(()=>this.wrapped.compute(t.context(e,s,r))))}mapAll(t){return t.map(new m(this.wrapped.mapAll(t)))}withCellSize(t,e){return new m(this.wrapped,t,e)}}t.Interpolated=m;class d extends t{constructor(t,e,s,r){super(),this.xzScale=t,this.yScale=e,this.noiseData=s,this.noise=r}compute(t){var e,s;return null!=(s=null==(e=this.noise)?void 0:e.sample(t.x*this.xzScale,t.y*this.yScale,t.z*this.xzScale))?s:0}maxValue(){var t,e;return null!=(e=null==(t=this.noise)?void 0:t.maxValue)?e:2}}t.Noise=d;class p extends t{compute(){return 0}minValue(){return-.84375}maxValue(){return.5625}}const g=[\"type_1\",\"type_2\"],v=class extends e{constructor(t,e,s,r){super(t),this.rarityValueMapper=e,this.noiseData=s,this.noise=r,this.mapper=v.ValueMapper[this.rarityValueMapper]}transform(t,e){if(!this.noise)return 0;const s=this.mapper(e);return s*Math.abs(this.noise.sample(t.x/s,t.y/s,t.z/s))}mapAll(t){return t.map(new v(this.input.mapAll(t),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return\"type_1\"===this.rarityValueMapper?2:3}static rarityValueMapper1(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}static rarityValueMapper2(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}};let w=v;w.ValueMapper={type_1:v.rarityValueMapper1,type_2:v.rarityValueMapper2},t.WeirdScaledSampler=w;class b extends d{constructor(t,e,s,r,i,n,o){super(r,i,n,o),this.shiftX=t,this.shiftY=e,this.shiftZ=s}compute(t){var e,s;const r=t.x*this.xzScale+this.shiftX.compute(t),i=t.y*this.yScale+this.shiftY.compute(t),n=t.z*this.xzScale+this.shiftZ.compute(t);return null!=(s=null==(e=this.noise)?void 0:e.sample(r,i,n))?s:0}mapAll(t){return t.map(new b(this.shiftX.mapAll(t),this.shiftY.mapAll(t),this.shiftZ.mapAll(t),this.xzScale,this.yScale,this.noiseData,this.noise))}}t.ShiftedNoise=b;class x extends t{constructor(t,e,s,r,i){super(),this.input=t,this.minInclusive=e,this.maxExclusive=s,this.whenInRange=r,this.whenOutOfRange=i}compute(t){const e=this.input.compute(t);return this.minInclusive<=e&&eMath.abs(t),square:t=>t*t,cube:t=>t*t*t,half_negative:t=>t>0?t:.5*t,quarter_negative:t=>t>0?t:.25*t,squeeze:t=>{const e=$(t,-1,1);return e/2-e*e*e/24}},t.Mapped=R;class M extends e{constructor(t,e){super(t),this.settings=e}transform(t,e){return this.settings?ne.applySlides(this.settings,e,t.y):e}mapAll(t){return t.map(new M(this.input.mapAll(t),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}t.Slide=M;const O=[\"add\",\"mul\",\"min\",\"max\"];class k extends t{constructor(t,e,s,r,i){super(),this.type=t,this.argument1=e,this.argument2=s,this.min=r,this.max=i}compute(t){const e=this.argument1.compute(t);switch(this.type){case\"add\":return e+this.argument2.compute(t);case\"mul\":return 0===e?0:e*this.argument2.compute(t);case\"min\":return ethis.argument2.maxValue()?e:Math.max(e,this.argument2.compute(t))}}mapAll(t){return t.map(new k(this.type,this.argument1.mapAll(t),this.argument2.mapAll(t)))}minValue(){var t;return null!=(t=this.min)?t:-1/0}maxValue(){var t;return null!=(t=this.max)?t:1/0}withMinMax(){const t=this.argument1.minValue(),e=this.argument2.minValue(),s=this.argument1.maxValue(),r=this.argument2.maxValue();let i,n;switch(\"min\"!==this.type&&\"max\"!==this.type||!(t>=r||e>=s)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case\"add\":i=t+e,n=s+r;break;case\"mul\":i=t>0&&e>0?t*e||0:s<0&&r<0?s*r||0:Math.min(t*r||0,e*s||0),n=t>0&&e>0?s*r||0:s<0&&r<0?t*e||0:Math.max(t*e||0,s*r||0);break;case\"min\":i=Math.min(t,e),n=Math.min(s,r);break;case\"max\":i=Math.max(t,e),n=Math.max(s,r)}return new k(this.type,this.argument1,this.argument2,i,n)}}t.Ap2=k;class P extends t{constructor(t,e,s){super(),this.spline=t,this.min=e,this.max=s}compute(t){return $(this.spline.compute(t),this.min,this.max)}mapAll(e){return e.map(new P(this.spline.mapAll((s=>s instanceof t?s.mapAll(e):s)),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}t.Spline=P;const L=[\"offset\",\"factor\",\"jaggedness\"];class F extends t{constructor(t,e,s,r,i,n,o){super(),this.continentalness=t,this.erosion=e,this.weirdness=s,this.spline=r,this.min=i,this.max=n,this.shaper=o}compute(t){if(!this.shaper)return 0;const e=ie.point(this.continentalness.compute(t),this.erosion.compute(t),this.weirdness.compute(t));return $(this.shaper[this.spline](e),this.min,this.max)}mapAll(t){return t.map(new F(this.continentalness.mapAll(t),this.erosion.mapAll(t),this.weirdness.mapAll(t),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}t.TerrainShaperSpline=F;class V extends t{constructor(t,e,s,r){super(),this.fromY=t,this.toY=e,this.fromValue=s,this.toValue=r}compute(t){return lt(t.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}t.YClampedGradient=V}(he||(he={}));class ce{constructor(t,e){this.level=t,this.type=e}at(t){return t0))return t(e,s,r).at(s)}}};const fe=class{constructor(t,e,s,r,i,n,o,a,u,h){this.noiseChunk=t,this.barrierNoise=s,this.fluidLevelFloodednessNoise=r,this.fluidLevelSpreadNoise=i,this.lavaNoise=n,this.random=o,this.globalFluidPicker=h,this.minGridX=this.gridX(X.minBlockX(e))-1,this.gridSizeX=this.gridX(X.maxBlockX(e))+1-this.minGridX+1,this.minGridY=this.gridY(a)-1,this.minGridZ=this.gridZ(X.minBlockZ(e))-1,this.gridSizeZ=this.gridZ(X.maxBlockZ(e))+1-this.minGridZ+1;const c=this.gridY(a+u)+1-this.minGridY+1;this.gridSize=this.gridSizeX*c*this.gridSizeZ,this.aquiferCache=Array(this.gridSize).fill(void 0),this.aquiferLocationCache=Array(this.gridSize).fill(l.ZERO)}compute({x:t,y:e,z:s},r){if(r<=0){if(this.globalFluidPicker(t,e,s).at(e).is(G.LAVA))return G.LAVA;{const i=this.gridX(t-5),n=this.gridY(e+1),o=this.gridZ(s-5);let a=Number.MAX_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER,c=l.ZERO,f=l.ZERO,m=l.ZERO;for(let t=0;t<=1;t+=1)for(let e=-1;e<=1;e+=1)for(let s=0;s<=1;s+=1){const r=this.getLocation(i+t,n+e,o+s),d=l.magnitude(r);a>=d?(m=f,f=c,c=r,h=u,u=a,a=d):u>=d?(m=f,f=r,h=u,u=d):h>=d&&(m=r,h=d)}const d=this.getStatus(c),p=this.getStatus(f),g=this.getStatus(m),v=fe.similarity(a,u),w=fe.similarity(a,h),b=fe.similarity(u,h);let x;if(d.at(e).is(G.WATER)&&this.globalFluidPicker(t,e-1,s).at(e-1).is(G.LAVA))x=1;else if(v>-1){const r=R((()=>this.barrierNoise.compute(he.context(t,.5*e,s)))),i=this.calculatePressure(e,d,p,r),n=this.calculatePressure(e,d,g,r),o=this.calculatePressure(e,p,g,r),a=Math.max(i,n*Math.max(0,w),o*Math.max(b));x=Math.max(0,2*Math.max(0,v)*a)}else x=0;if(r+x<=0)return d.at(e)}}}static similarity(t,e){return 1-Math.abs(e-t)/25}calculatePressure(t,e,s,r){const i=e.at(t),n=s.at(t);if(i.is(G.LAVA)&&n.is(G.WATER)||i.is(G.WATER)&&n.is(G.LAVA))return 1;const o=Math.abs(e.level-s.level);if(0===o)return 0;const a=t+.5-(e.level+s.level)/2,l=o/2-Math.abs(a),u=a>0?l>0?l/1.5:l/2.5:l>-3?(l+3)/3:(l+3)/10;return u<-2||u>2?u:u+r()}getStatus(t){const[e,s,r]=t,i=this.getIndex(this.gridX(e),this.gridY(s),this.gridZ(r)),n=this.aquiferCache[i];if(void 0!==n)return n;const o=this.computeStatus(e,s,r);return this.aquiferCache[i]=o,o}computeStatus(t,e,s){const r=this.globalFluidPicker(t,e,s);let i=Number.MAX_SAFE_INTEGER,n=!1;for(const[o,a]of fe.SURFACE_SAMPLING){const l=t+(a<<4),u=s+(a<<4),h=this.noiseChunk.getPreliminarySurfaceLevel(l,u);i=Math.min(i,h);const c=0===o&&0===a;if(c&&e-12>h+8)return r;if(c||e+12>h+8){const t=this.globalFluidPicker(l,h+8,u);if(!t.at(h+8).is(G.AIR)){if(c)return t;n=!0}}}const o=n?lt(i+8-e,0,64,1,0):0,a=$(this.fluidLevelFloodednessNoise.compute(he.context(t,.67*e,s)),-1,1);if(a>at(o,1,0,-.3,.8))return r;if(a<=at(o,1,0,-.8,.4))return new ce(Number.MIN_SAFE_INTEGER,r.type);const l=Math.floor(e/40),u=this.fluidLevelSpreadNoise.compute(he.context(Math.floor(t/16),l,Math.floor(s/16))),h=40*l+20+3*Math.floor(u/3),c=Math.min(i,h),f=this.getFluidType(t,e,s,r.type,h);return new ce(c,f)}getFluidType(t,e,s,r,i){if(i<=-10){const r=this.lavaNoise.compute(he.context(Math.floor(t/64),Math.floor(e/40),Math.floor(s/64)));if(Math.abs(r)>.3)return G.LAVA}return r}getLocation(t,e,s){const r=this.getIndex(t,e,s),i=this.aquiferLocationCache[r];if(l.equals(i,l.ZERO))return i;const n=this.random.at(t,e,s),o=l.create(t*fe.X_SPACING+n.nextInt(10),e*fe.Y_SPACING+n.nextInt(9),s*fe.Z_SPACING+n.nextInt(10));return this.aquiferLocationCache[r]=o,o}getIndex(t,e,s){const r=t-this.minGridX,i=e-this.minGridY,n=s-this.minGridZ,o=(i*this.gridSizeZ+n)*this.gridSizeX+r;if(o<0||o>=this.gridSize)throw new Error(`Invalid aquifer index at ${t} ${e} ${s}: 0 <= ${o} < ${this.gridSize}`);return o}gridX(t){return Math.floor(t/fe.X_SPACING)}gridY(t){return Math.floor(t/fe.Y_SPACING)}gridZ(t){return Math.floor(t/fe.Z_SPACING)}};let me=fe;var de,pe;me.X_SPACING=16,me.Y_SPACING=12,me.Z_SPACING=16,me.SURFACE_SAMPLING=[[-2,-1],[-1,-1],[0,-1],[1,-1],[-3,0],[-2,0],[-1,0],[0,0],[1,0],[-2,1],[-1,1],[0,1],[1,1]],function(t){function e(t,e){return\"number\"==typeof t?new s(t,null!=e?e:t):t}t.target=function(t,e,s,r,n,o){return new i(t,e,s,r,n,o)},t.parameters=function(t,s,i,n,o,a,l){return new r(e(t),e(s),e(i),e(n),e(o),e(a),l)},t.param=e;class s{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,s=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(s,0)}union(t){return new s(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new s(t,t);const[r,i]=null!=(e=B.readArray(t,(t=>B.readNumber(t))))?e:[];return new s(null!=r?r:0,null!=i?i:0)}}t.Param=s;class r{constructor(t,e,s,r,i,n,o){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n,this.offset=o}fittness(t){return W(this.temperature.distance(t.temperature))+W(this.humidity.distance(t.humidity))+W(this.continentalness.distance(t.continentalness))+W(this.erosion.distance(t.erosion))+W(this.depth.distance(t.depth))+W(this.weirdness.distance(t.weirdness))+W(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new s(this.offset,this.offset)]}static fromJson(t){var e,i;const n=null!=(e=B.readObject(t))?e:{};return new r(s.fromJson(n.temperature),s.fromJson(n.humidity),s.fromJson(n.continentalness),s.fromJson(n.erosion),s.fromJson(n.depth),s.fromJson(n.weirdness),null!=(i=B.readInt(n.offset))?i:0)}}t.ParamPoint=r;class i{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=i;t.Parameters=class{constructor(t){this.things=t,this.index=new o(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};t.Sampler=class{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}static fromRouter(e){return new t.Sampler(e.temperature,e.vegetation,e.continents,e.erosion,e.depth,e.ridges)}sample(e,s,r){const i=he.context(e<<2,s<<2,r<<2);return t.target(this.temperature.compute(i),this.humidity.compute(i),this.continentalness.compute(i),this.erosion.compute(i),this.depth.compute(i),this.weirdness.compute(i))}};const n=class{constructor(t){this.root=n.build(t.map((([t,e])=>new u(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=n.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let s=0;s<7;s+=1){const r=t.space[s];e+=Math.abs((r.min+r.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new l(e)}let e=1/0,s=-1,r=[];for(let i=0;i<7;++i){t=n.sort(t,i,!1),r=n.bucketize(t);let o=0;for(const t of r)o+=n.area(t.space);e>o&&(e=o,s=i)}return t=n.sort(t,s,!1),r=n.bucketize(t),r=n.sort(r,s,!0),new l(r.map((t=>n.build(t.children))))}static sort(t,e,s){return t.map((t=>{const r=t.space[e],i=(r.min+r.max)/2;return{key:s?Math.abs(i):i,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let s=[];const r=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const i of t)s.push(i),s.lengthnew s(1/0,-1/0)));for(const s of t)e=[...Array(7)].map(((t,r)=>e[r].union(s.space[r])));return e}search(t,e){let s=1/0,r=null;for(const i of this.children){const n=e(i,t);if(s<=n)continue;const o=i.search(t,e),a=i==o?n:e(o,t);s<=a||(s=a,r=o)}return r}}t.RSubTree=l;class u extends a{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=u}(de||(de={}));class ge{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.biome))?s:\"minecraft:the_void\");return new ge(i)}}class ve{constructor(t){this.parameters=t}getBiome(t,e,s,r){const i=r.sample(t,e,s);return this.parameters.find(i)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=(null!=(s=B.readArray(r.biomes,(t=>{var e,s,r;return s=null!=(e=B.readObject(t))?e:{},{biome:C.parse(null!=(r=B.readString(s.biome))?r:\"minecraft:the_void\"),parameters:de.ParamPoint.fromJson(s.parameters)}})))?s:[]).map((t=>[t.parameters,()=>t.biome]));return new ve(new de.Parameters(i))}}!function(t){function e(t,e,s){return le.NOISE.register(C.create(t),Nt.create(e,s))}t.TEMPERATURE=e(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=e(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=e(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=e(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=e(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=e(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=e(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=e(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=e(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=e(\"offset\",-3,[1,1,1,0]),t.AQUIFER_BARRIER=e(\"aquifer_barrier\",-3,[1]),t.AQUIFER_FLUID_LEVEL_FLOODEDNESS=e(\"aquifer_fluid_level_floodedness\",-7,[1]),t.AQUIFER_FLUID_LEVEL_SPREAD=e(\"aquifer_fluid_level_spread\",-5,[1]),t.AQUIFER_LAVA=e(\"aquifer_lava\",-1,[1]),t.PILLAR=e(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=e(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=e(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=e(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=e(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=e(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=e(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=e(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=e(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=e(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=e(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=e(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=e(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=e(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=e(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=e(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=e(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=e(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=e(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=e(\"noodle_ridge_b\",-7,[1]),t.JAGGED=e(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=e(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=e(\"surface_secondary\",-6,[1,1,0,1]);const s=new Map;t.instantiate=function(t,e){var r;const i=null==(r=e.key())?void 0:r.toString();if(!i)throw new Error(\"Cannot instantiate noise from direct holder\");const n=t.seedKey(),o=s.get(i);if(o&&o[0]===n[0]&&o[1]===n[1])return o[2];const a=new It(t.fromHashOf(i),e.value());return s.set(i,[n[0],n[1],a]),a}}(pe||(pe={}));var we,be,xe,Se,_e,Ae,ye,Ee=Object.defineProperty,Ie=Object.defineProperties,Ne=Object.getOwnPropertyDescriptors,Be=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable,Me=(t,e,s)=>e in t?Ee(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Ce=(t,e)=>{for(var s in e||(e={}))Re.call(e,s)&&Me(t,s,e[s]);if(Be)for(var s of Be(e))Te.call(e,s)&&Me(t,s,e[s]);return t};!function(t){const e=t=>j.parser(le.DENSITY_FUNCTION,he.fromJson)(t).value();t.fromJson=function(t){var s;const r=null!=(s=B.readObject(t))?s:{};return{barrier:e(r.barrier),fluidLevelFloodedness:e(r.fluid_level_floodedness),fluidLevelSpread:e(r.fluid_level_spread),lava:e(r.lava),temperature:e(r.temperature),vegetation:e(r.vegetation),continents:e(r.continents),erosion:e(r.erosion),depth:e(r.depth),ridges:e(r.ridges),initialDensityWithoutJaggedness:e(r.initial_density_without_jaggedness),finalDensity:e(r.final_density),veinToggle:e(r.vein_toggle),veinRidged:e(r.vein_ridged),veinGap:e(r.vein_gap)}},t.create=function(t){return Ce({barrier:he.Constant.ZERO,fluidLevelFloodedness:he.Constant.ZERO,fluidLevelSpread:he.Constant.ZERO,lava:he.Constant.ZERO,temperature:he.Constant.ZERO,vegetation:he.Constant.ZERO,continents:he.Constant.ZERO,erosion:he.Constant.ZERO,depth:he.Constant.ZERO,ridges:he.Constant.ZERO,initialDensityWithoutJaggedness:he.Constant.ZERO,finalDensity:he.Constant.ZERO,veinToggle:he.Constant.ZERO,veinRidged:he.Constant.ZERO,veinGap:he.Constant.ZERO},t)},t.withSettings=function(t,e,r,i=!1){const n=(i?new dt(r):vt.create(r)).forkPositional(),o=new s(n,e);return a=Ce({},o.mapAll(t)),l={aquiferPositionalRandomFactory:n.fromHashOf(C.create(\"aquifer\").toString()).forkPositional(),oreVeinsPositionalRandomFactory:n.fromHashOf(C.create(\"ore\").toString()).forkPositional()},Ie(a,Ne(l));var a,l};class s{constructor(t,e){this.random=t,this.settings=e,this.mapped=new Map}map(t){if(t instanceof he.HolderHolder){const e=t.holder.key();if(void 0!==e&&this.mapped.has(e.toString()))return this.mapped.get(e.toString());{const s=t.holder.value().mapAll(this);return void 0!==e&&this.mapped.set(e.toString(),s),s}}if(t instanceof he.Interpolated)return t.withCellSize(ne.cellWidth(this.settings),ne.cellHeight(this.settings));if(t instanceof he.Noise)return new he.Noise(t.xzScale,t.yScale,t.noiseData,pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftNoise)return t.withNewNoise(pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftedNoise){const e=pe.instantiate(this.random,t.noiseData);return new he.ShiftedNoise(t.shiftX,t.shiftY,t.shiftZ,t.xzScale,t.yScale,t.noiseData,e)}return t instanceof he.WeirdScaledSampler?new he.WeirdScaledSampler(t.input,t.rarityValueMapper,t.noiseData,pe.instantiate(this.random,t.noiseData)):t instanceof he.OldBlendedNoise?new he.OldBlendedNoise(new At(this.random.fromHashOf(C.create(\"terrain\").toString()),this.settings.sampling,ne.cellWidth(this.settings),ne.cellHeight(this.settings))):t instanceof he.Mapped||t instanceof he.Ap2?t.withMinMax():t instanceof he.TerrainShaperSpline?new he.TerrainShaperSpline(t.continentalness,t.erosion,t.weirdness,t.spline,t.min,t.max,this.settings.terrainShaper):t instanceof he.Slide?new he.Slide(t.input,this.settings):t}mapAll(t){return{barrier:t.barrier.mapAll(this),fluidLevelFloodedness:t.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:t.fluidLevelSpread.mapAll(this),lava:t.lava.mapAll(this),temperature:t.temperature.mapAll(this),vegetation:t.vegetation.mapAll(this),continents:t.continents.mapAll(this),erosion:t.erosion.mapAll(this),depth:t.depth.mapAll(this),ridges:t.ridges.mapAll(this),initialDensityWithoutJaggedness:t.initialDensityWithoutJaggedness.mapAll(this),finalDensity:t.finalDensity.mapAll(this),veinToggle:t.veinToggle.mapAll(this),veinRidged:t.veinRidged.mapAll(this),veinGap:t.veinGap.mapAll(this)}}}t.Visitor=s,t.computePreliminarySurfaceLevelScanning=function(t,e,s,r){const i=ne.minCellY(t)+ne.cellCountY(t),n=ne.minCellY(t),o=ne.cellHeight(t);for(let a=i;a>=n;a-=1){const i=a*o,n=$(e.compute(he.context(s,i,r)),-64,64);if(ne.applySlides(t,n,i)>=.390625)return i}return Number.MAX_SAFE_INTEGER}}(we||(we={}));class Oe{constructor(t,e,s,r,i,n,o,a,l){this.cellCountXZ=t,this.cellCountY=e,this.cellNoiseMinY=s,this.router=r,this.minX=i,this.minZ=n,this.settings=o,this.preliminarySurfaceLevel=new Map,this.cellWidth=ne.cellWidth(o),this.cellHeight=ne.cellHeight(o),this.firstCellX=Math.floor(i/this.cellWidth),this.firstCellZ=Math.floor(n/this.cellWidth),this.firstNoiseX=i>>2,this.firstNoiseZ=n>>2,this.noiseSizeXZ=t*this.cellWidth>>2,this.aquifer=ue.createDisabled(l);const u=this.router.finalDensity;this.materialRule=be.fromList([t=>this.aquifer.compute(t,u.compute(t))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(t,e,s){return this.materialRule({x:t,y:e,z:s})}getPreliminarySurfaceLevel(t,e){return T(this.preliminarySurfaceLevel,X.asLong(t,e),(()=>we.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,t<<2,e<<2)))}getAquifer(){return this.aquifer}}(be||(be={})).fromList=function(t){return e=>{for(const s of t){const t=s(e);if(t)return t}}},(xe||(xe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return void 0!==n.absolute?(o=null!=(s=B.readNumber(n.absolute))?s:0,()=>o):void 0!==n.above_bottom?function(t){return e=>e.minY+t}(null!=(r=B.readNumber(n.above_bottom))?r:0):void 0!==n.below_top?function(t){return e=>e.maxY-t}(null!=(i=B.readNumber(n.below_top))?i:0):()=>0;var o},(Se||(Se={})).create=function(t,e){return{minY:t,height:e,maxY:t+e-1}};class ke{constructor(t,e,s){this.rule=t,this.defaultBlock=e,this.random=vt.create(s).forkPositional(),this.surfaceNoise=pe.instantiate(this.random,pe.SURFACE),this.surfaceSecondaryNoise=pe.instantiate(this.random,pe.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,s,r){const i=X.minBlockX(t.pos),n=X.minBlockZ(t.pos),o=new Pe(this,t,e,s,r),a=this.rule(o);for(let e=0;e<16;e+=1){const s=i+e;for(let e=0;e<1;e+=1){const r=n+e;o.updateXZ(s,r);let i=0,u=Number.MIN_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const n=l.create(s,e,r),c=t.getBlockState(n);if(c.equals(G.AIR)){i=0,u=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){u===Number.MIN_SAFE_INTEGER&&(u=e+1);continue}if(h>=e){h=Number.MIN_SAFE_INTEGER;for(let i=e-1;i>=t.minY;i-=1){const e=t.getBlockState(l.create(s,i,r));if(e.equals(G.AIR)||e.isFluid()){h=i+1;break}}}i+=1;const f=e-h+1;if(!c.equals(this.defaultBlock))continue;o.updateY(i,f,u,e);const m=a(s,e,r);m&&t.setBlockState(n,m)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return T(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class Pe{constructor(t,e,s,r,i){this.system=t,this.chunk=e,this.noiseChunk=s,this.context=r,this.getBiome=i,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=R((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=R((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,s,r){this.blockY=r,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=s,this.biome=R((()=>this.getBiome(l.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const s=t>>4,r=e>>4,i=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r<<4),n=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r+1<<4);return Math.floor(Q((15&t)/16,(15&e)/16,i,n,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function s(t){return e=>{const s=t.map((t=>t(e)));return(t,e,r)=>{for(const i of s){const s=i(t,e,r);if(s)return s}}}}function r(t,e){return s=>(r,i,n)=>{if(t(s))return e(s)(r,i,n)}}t.NOOP=()=>()=>{},t.fromJson=function(i){var n,o,a;const l=null!=(n=B.readObject(i))?n:{};switch(null==(o=B.readString(l.type))?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(G.fromJson(l.result_state));case\"sequence\":return s(null!=(a=B.readArray(l.sequence,t.fromJson))?a:[]);case\"condition\":return r(Ae.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=s,t.condition=r}(_e||(_e={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function s(t){const e=new Set(t);return t=>e.has(t.biome())}function r(t){return e=>!t(e)}function i(t,e,s,r){return i=>{const n=r?i.stoneDepthBelow:i.stoneDepthAbove,o=e?i.surfaceDepth:0,a=0===s?0:at(i.surfaceSecondary(),-1,1,0,s);return n<=1+t+o+a}}function n(t,e,s){return r=>{const i=e(r.context),n=s(r.context);if(r.blockY<=i)return!0;if(r.blockY>=n)return!1;const o=r.system.getRandom(t),a=at(r.blockY,i,n,1,0);return o.nextFloat(){if(r.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const i=s?r.stoneDepthAbove:0;return r.blockY+i>=r.waterHeight+t+r.surfaceDepth*e}}function a(t,e,s){return r=>{const i=s?r.stoneDepthAbove:0;return r.blockY+i>=t(r.context)+r.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,u,h,c,f,m,d,p,g,v,w,b;const x=null!=(l=B.readObject(e))?l:{};switch(null==(u=B.readString(x.type))?void 0:u.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return s(null!=(h=B.readArray(x.biome_is,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"})))?h:[]);case\"not\":return r(t.fromJson(x.invert));case\"stone_depth\":return i(null!=(c=B.readInt(x.offset))?c:0,null!=(f=B.readBoolean(x.add_surface_depth))&&f,null!=(m=B.readInt(x.secondary_depth_range))?m:0,\"ceiling\"===B.readString(x.surface_type));case\"vertical_gradient\":return n(null!=(d=B.readString(x.random_name))?d:\"\",xe.fromJson(x.true_at_and_below),xe.fromJson(x.false_at_and_above));case\"water\":return o(null!=(p=B.readInt(x.offset))?p:0,null!=(g=B.readInt(x.surface_depth_multiplier))?g:0,null!=(v=B.readBoolean(x.add_surface_depth))&&v);case\"y_above\":return a(xe.fromJson(x.anchor),null!=(w=B.readInt(x.surface_depth_multiplier))?w:0,null!=(b=B.readBoolean(x.add_surface_depth))&&b)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=s,t.not=r,t.stoneDepth=i,t.verticalGradient=n,t.water=o,t.yAbove=a}(Ae||(Ae={}));class Le{constructor(t,e,s){this.biomeSource=e,this.settings=s,this.router=we.withSettings(s.noiseRouter,s.noise,t,s.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new ke(s.surfaceRule,s.defaultBlock,t);const r=new ce(-54,G.LAVA),i=new ce(s.seaLevel,s.defaultFluid);this.globalFluidPicker=(t,e,n)=>e=0;m-=1)for(let u=o-1;u>=0;u-=1){const d=(l+m)*o+u,p=15&d,g=t.getSectionIndex(d);t.getSectionIndex(a.minBlockY)!==g&&(a=t.getOrCreateSection(g));for(let t=0;te))}getNoiseChunk(t){return T(this.noiseChunkCache,X.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),r=ne.cellWidth(this.settings.noise),i=ne.cellHeight(this.settings.noise),n=Math.floor(16/r),o=Math.floor(e/i),a=Math.floor((s-e)/i),l=X.minBlockX(t.pos),u=X.minBlockZ(t.pos);return new Oe(n,a,o,this.router,l,u,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)}))}}(ye||(ye={})).fromJson=function(t){var e,s,r,i,n,o;const a=null!=(e=B.readObject(t))?e:{};return{surfaceRule:_e.fromJson(a.surface_rule),noise:ne.fromJson(a.noise),defaultBlock:G.fromJson(a.default_block),defaultFluid:G.fromJson(a.default_fluid),noiseRouter:we.fromJson(a.noise_router),seaLevel:null!=(s=B.readInt(a.sea_level))?s:0,disableMobGeneration:null!=(r=B.readBoolean(a.disable_mob_generation))&&r,aquifersEnabled:null!=(i=B.readBoolean(a.aquifers_enabled))&&i,oreVeinsEnabled:null!=(n=B.readBoolean(a.ore_veins_enabled))&&n,legacyRandomSource:null!=(o=B.readBoolean(a.legacy_random_source))&&o}};export{ue as Aquifer,At as BlendedNoise,Dt as BlockColors,Yt as BlockDefinition,qt as BlockModel,l as BlockPos,G as BlockState,H as Chunk,X as ChunkPos,Y as ChunkSection,de as Climate,ft as CubicSpline,he as DensityFunction,n as Direction,ge as FixedBiome,ce as FluidStatus,j as Holder,C as Identifier,St as ImprovedNoise,pt as LegacyPositionalRandom,dt as LegacyRandom,be as MaterialRule,ve as MultiNoise,f as NbtReader,m as NbtWriter,me as NoiseAquifer,Oe as NoiseChunk,Le as NoiseChunkGenerator,ye as NoiseGeneratorSettings,Nt as NoiseParameters,we as NoiseRouter,yt as NoiseSamplingSettings,ne as NoiseSettings,oe as NoiseSlideSettings,pe as Noises,It as NormalNoise,_t as PerlinNoise,Rt as PerlinSimplexNoise,q as Registry,xt as SimplexNoise,J as Structure,te as StructureRenderer,Ae as SurfaceCondition,Pe as SurfaceContext,_e as SurfaceRule,ke as SurfaceSystem,ie as TerrainShaper,se as TextureAtlas,xe as VerticalAnchor,Se as WorldgenContext,le as WorldgenRegistries,wt as XoroshiroPositionalRandom,vt as XoroshiroRandom,ut as binarySearch,$ as clamp,it as clampedLerp,lt as clampedMap,I as getListTag,N as getOptional,ht as getSeed,E as getTag,nt as inverseLerp,et as lazyLerp,st as lazyLerp2,rt as lazyLerp3,K as lerp,Q as lerp2,tt as lerp3,ct as longfromBytes,at as map,g as read,w as readChunk,p as readCompressed,v as readRegion,d as readUncompressed,ot as smoothstep,W as square,c as tagNames,h as tagTypes,S as write,A as writeChunk,x as writeCompressed,_ as writeRegion,b as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n"],"names":["t","s.create","s.transformMat4","r.create","r.identity","r.translate","r.rotateY","i.toRadian","r.rotateX","r.scale","s.fromValues","r.rotate","s.negate","r.perspective","s.subtract","s.cross","s.normalize","s.equals","r.copy"],"mappings":"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"} \ No newline at end of file diff --git a/assets/en.4ab98cb7.js b/assets/en.4ab98cb7.js deleted file mode 100644 index f70195d9..00000000 --- a/assets/en.4ab98cb7.js +++ /dev/null @@ -1,2 +0,0 @@ -var e=JSON.parse(`{"advancement.criteria":"Criteria","advancement.display":"Display","advancement.display.announce_to_chat":"Announce to chat","advancement.display.background":"Background","advancement.display.description":"Description","advancement.display.frame":"Frame","advancement.display.frame.challenge":"Challenge","advancement.display.frame.goal":"Goal","advancement.display.frame.task":"Task","advancement.display.help":"If present, advancement will be visible in the advancement tabs.","advancement.display.hidden":"Hidden","advancement.display.icon":"Icon","advancement.display.icon.item":"Icon item","advancement.display.icon.nbt":"Icon NBT","advancement.display.show_toast":"Show toast","advancement.display.title":"Title","advancement.parent":"Parent advancement","advancement.rewards":"Rewards","advancement.rewards.experience":"Experience","advancement.rewards.function":"Function","advancement.rewards.loot":"Loot tables","advancement.rewards.recipes":"Recipes","advancement_trigger.bee_nest_destroyed":"Bee nest destroyed","advancement_trigger.bred_animals":"Bred animals","advancement_trigger.brewed_potion":"Brewed potion","advancement_trigger.changed_dimension":"Changed dimension","advancement_trigger.channeled_lightning":"Channeled lightning","advancement_trigger.construct_beacon":"Construct beacon","advancement_trigger.consume_item":"Consume item","advancement_trigger.cured_zombie_villager":"Cured zombie villager","advancement_trigger.effects_changed":"Effects changed","advancement_trigger.enchanted_item":"Enchanted item","advancement_trigger.enter_block":"Enter block","advancement_trigger.entity_hurt_player":"Entity hurt player","advancement_trigger.entity_killed_player":"Entity killed player","advancement_trigger.fall_from_height":"Fall from height","advancement_trigger.filled_bucket":"Filled bucket","advancement_trigger.fishing_rod_hooked":"Fishing rod hooked","advancement_trigger.hero_of_the_village":"Hero of the village","advancement_trigger.impossible":"Impossible","advancement_trigger.inventory_changed":"Inventory changed","advancement_trigger.item_durability_changed":"Item durability changed","advancement_trigger.item_used_on_block":"Item used on block","advancement_trigger.killed_by_crossbow":"Killed by crossbow","advancement_trigger.levitation":"Levitation","advancement_trigger.location":"Location","advancement_trigger.nether_travel":"Nether travel","advancement_trigger.placed_block":"Placed block","advancement_trigger.player_generates_container_loot":"Player generates container loot","advancement_trigger.player_hurt_entity":"Player hurt entity","advancement_trigger.player_killed_entity":"Player killed entity","advancement_trigger.recipe_unlocked":"Recipe unlocked","advancement_trigger.ride_entity_in_lava":"Ride entity in lava","advancement_trigger.safely_harvest_honey":"Safely harvest honey","advancement_trigger.shot_crossbow":"Shot crossbow","advancement_trigger.slept_in_bed":"Slept in bed","advancement_trigger.slide_down_block":"Slide down block","advancement_trigger.summoned_entity":"Summoned entity","advancement_trigger.tame_animal":"Tame animal","advancement_trigger.target_hit":"Target hit","advancement_trigger.thrown_item_picked_up_by_entity":"Thrown item picked up by entity","advancement_trigger.tick":"Tick","advancement_trigger.used_ender_eye":"Used ender eye","advancement_trigger.used_totem":"Used totem","advancement_trigger.villager_trade":"Villager trade","advancement_trigger.voluntary_exile":"Voluntary exile","attribute.generic_armor":"Armor","attribute.generic_armor_toughness":"Armor toughness","attribute.generic_attack_damage":"Attack damage","attribute.generic_attack_knockback":"Attack knockback","attribute.generic_attack_speed":"Attack speed","attribute.generic_flying_speed":"Flying speed","attribute.generic_follow_range":"Follow range","attribute.generic_knockback_resistance":"Knockback resistance","attribute.generic_luck":"Luck","attribute.generic_max_health":"Max health","attribute.generic_movement_speed":"Movement speed","attribute.horse.jump_strength":"Jump strength","attribute.zombie.spawn_reinforcements":"Spawn reinforcements","attribute_modifier.amount":"Amount","attribute_modifier.attribute":"Attribute","attribute_modifier.name":"Name","attribute_modifier.operation":"Operation","attribute_modifier.operation.addition":"Addition","attribute_modifier.operation.multiply_base":"Multiply base","attribute_modifier.operation.multiply_total":"Multiply total","attribute_modifier.slot":"Slots","attribute_modifier.slot.list":"Multiple","attribute_modifier.slot.string":"Single","axis.x":"X","axis.y":"Y","axis.z":"Z","badge.experimental":"Experimental","badge.unstable":"Unstable","biome.carvers":"Carvers","biome.carvers.air":"Air","biome.carvers.liquid":"Liquid","biome.category":"Category","biome.creature_spawn_probability":"Creature spawn probability","biome.depth":"Depth","biome.depth.help":"Raises or lowers the terrain. Positive values are considered land and negative are oceans.","biome.downfall":"Downfall","biome.effects":"Effects","biome.effects.additions_sound":"Additions sound","biome.effects.additions_sound.sound":"Sound","biome.effects.additions_sound.tick_chance":"Tick chance","biome.effects.ambient_sound":"Ambient sound","biome.effects.fog_color":"Fog color","biome.effects.foliage_color":"Foliage color","biome.effects.grass_color":"Grass color","biome.effects.grass_color_modifier":"Grass color modifier","biome.effects.grass_color_modifier.dark_forest":"Dark forest","biome.effects.grass_color_modifier.none":"None","biome.effects.grass_color_modifier.swamp":"Swamp","biome.effects.mood_sound":"Mood sound","biome.effects.mood_sound.block_search_extent":"Block search extent","biome.effects.mood_sound.offset":"Offset","biome.effects.mood_sound.sound":"Sound","biome.effects.mood_sound.tick_delay":"Tick delay","biome.effects.music":"Music","biome.effects.music.max_delay":"Max delay","biome.effects.music.min_delay":"Min delay","biome.effects.music.replace_current_music":"Replace current music","biome.effects.music.sound":"Sound","biome.effects.particle":"Particle","biome.effects.particle.options":"Options","biome.effects.particle.options.type":"Particle type","biome.effects.particle.probability":"Probability","biome.effects.sky_color":"Sky color","biome.effects.water_color":"Water color","biome.effects.water_fog_color":"Water fog color","biome.features":"Placed features","biome.features.entry":"Step %0%","biome.features.entry.entry":"Feature","biome.player_spawn_friendly":"Player spawn friendly","biome.player_spawn_friendly.help":"If true, the world spawn will be preferred in this biome.","biome.precipitation":"Precipitation","biome.precipitation.none":"None","biome.precipitation.rain":"Rain","biome.precipitation.snow":"Snow","biome.scale":"Scale","biome.scale.help":"Vertically stretches the terrain. Lower values produce flatter terrain.","biome.spawn_costs":"Spawn costs","biome.spawn_costs.charge":"Charge","biome.spawn_costs.energy_budget":"Energy budget","biome.spawners":"Spawners","biome.spawners.ambient":"Ambient","biome.spawners.creature":"Creature","biome.spawners.entry":"Spawn","biome.spawners.entry.maxCount":"Max count","biome.spawners.entry.minCount":"Min count","biome.spawners.entry.type":"Type","biome.spawners.entry.weight":"Weight","biome.spawners.misc":"Miscellaneous","biome.spawners.monster":"Monster","biome.spawners.water_ambient":"Water ambient","biome.spawners.water_creature":"Water creature","biome.starts":"Structure starts","biome.starts.entry":"Structure","biome.starts.help":"List of configured structure features.","biome.surface_builder":"Surface builder","biome.temperature":"Temperature","biome.temperature_modifier":"Temperature modifier","biome.temperature_modifier.frozen":"Frozen","biome.temperature_modifier.none":"None","block.block":"Block ID","block.nbt":"NBT","block.state":"Block state","block.tag":"Block tag","block_definition.multipart":"Multipart","block_definition.variants":"Variants","block_definition.multipart.entry":"Part","block_definition.multipart.entry.when":"When","block_definition.multipart.entry.apply":"Apply","block_placer.column_placer.extra_size":"Extra size","block_placer.column_placer.min_size":"Min size","block_placer.type":"Type","block_predicate.type":"Type","block_predicate.all_of.predicates":"Predicates","block_predicate.any_of.predicates":"Predicates","block_predicate.inside_world_bounds.offset":"Offset","block_predicate.matching_blocks.offset":"Offset","block_predicate.matching_blocks.blocks":"Blocks","block_predicate.matching_blocks.blocks.entry":"Block","block_predicate.matching_fluids.offset":"Offset","block_predicate.matching_fluids.fluids":"Fluids","block_predicate.matching_fluids.fluids.entry":"Fluid","block_predicate.would_survive.offset":"Offset","block_predicate.would_survive.state":"State","block_predicate_type.all_of":"All of","block_predicate_type.any_of":"Any of","block_predicate_type.inside_world_bounds":"Inside world bounds","block_predicate_type.matching_blocks":"Matching blocks","block_predicate_type.matching_fluids":"Matching fluids","block_predicate_type.not":"Not","block_predicate_type.replaceable":"Replaceable","block_predicate_type.solid":"Solid","block_predicate_type.true":"True","block_predicate_type.would_survive":"Would survive","block_predicate.not.predicate":"Predicate","block_state.Name":"Name","block_state.Properties":"Properties","block_state_provider.dual_noise_provider.seed":"Seed","block_state_provider.dual_noise_provider.noise":"Noise","block_state_provider.dual_noise_provider.scale":"Scale","block_state_provider.dual_noise_provider.variety":"Variety","block_state_provider.dual_noise_provider.slow_noise":"Slow noise","block_state_provider.dual_noise_provider.slow_scale":"Slow scale","block_state_provider.fallback":"Fallback","block_state_provider.dual_noise_provider.states":"States","block_state_provider.noise_threshold_provider.seed":"Seed","block_state_provider.noise_threshold_provider.noise":"Noise","block_state_provider.noise_threshold_provider.scale":"Scale","block_state_provider.noise_threshold_provider.threshold":"Threshold","block_state_provider.noise_threshold_provider.high_chance":"High chance","block_state_provider.noise_threshold_provider.default_state":"Default state","block_state_provider.noise_threshold_provider.low_states":"Low states","block_state_provider.noise_threshold_provider.high_states":"High states","block_state_provider.noise_provider.seed":"Seed","block_state_provider.noise_provider.noise":"Noise","block_state_provider.noise_provider.scale":"Scale","block_state_provider.noise_provider.states":"States","block_state_provider.randomized_int_state_provider.property":"Property","block_state_provider.randomized_int_state_provider.values":"Values","block_state_provider.randomized_int_state_provider.source":"Source","block_state_provider.rotated_block_provider.state":"State","block_state_provider.rules":"Rules","block_state_provider.rules.entry":"Rule","block_state_provider.rules.entry.if_true":"If true","block_state_provider.rules.entry.then":"Then","block_state_provider.simple_state_provider.state":"State","block_state_provider.type":"Type","block_state_provider.weighted_state_provider.entries":"Entries","block_state_provider.weighted_state_provider.entries.entry.data":"State","block_state_provider.weighted_state_provider.entries.entry.weight":"Weight","carver.config":"Config","carver.config.aquifers_enabled":"Aquifers enabled","carver.config.canyon.bottom_inclusive":"Bottom inclusive","carver.config.canyon.top_inclusive":"Top inclusive","carver.config.canyon.vertical_rotation":"Vertical rotation","carver.config.canyon.shape":"Shape","carver.config.canyon.shape.distance_factor":"Distance factor","carver.config.canyon.shape.thickness":"Thickness","carver.config.canyon.shape.width_smoothness":"Width smoothness","carver.config.canyon.shape.horizontal_radius_factor":"Horizontal radius factor","carver.config.canyon.shape.vertical_radius_default_factor":"Vertical radius default factor","carver.config.canyon.shape.vertical_radius_center_factor":"Vertical radius center factor","carver.config.cave.horizontal_radius_multiplier":"Horizontal radius multiplier","carver.config.cave.vertical_radius_multiplier":"Vertical radius multiplier","carver.config.cave.floor_level":"Floor level","carver.config.debug_settings":"Debug settings","carver.config.debug_settings.debug_mode":"Debug mode","carver.config.debug_settings.air_state":"Air state","carver.config.debug_settings.water_state":"Water state","carver.config.debug_settings.lava_state":"Lava state","carver.config.debug_settings.barrier_state":"Barrier state","carver.config.lava_level":"Lava level","carver.config.probability":"Probability","carver.config.replaceable":"Replaceable","carver.config.y":"Y","carver.config.yScale":"Y scale","carver.type":"Type","cat_texture.textures/entity/cat/tabby.png":"Tabby","cat_texture.textures/entity/cat/black.png":"Black","cat_texture.textures/entity/cat/red.png":"Red","cat_texture.textures/entity/cat/siamese.png":"Siamese","cat_texture.textures/entity/cat/british_shorthair.png":"British","cat_texture.textures/entity/cat/calico.png":"Calico","cat_texture.textures/entity/cat/persian.png":"Persian","cat_texture.textures/entity/cat/ragdoll.png":"Ragdoll","cat_texture.textures/entity/cat/white.png":"White","cat_texture.textures/entity/cat/jellie.png":"Jellie","cat_texture.textures/entity/cat/all_black.png":"All black","cat_variant.tabby":"Tabby","cat_variant.black":"Black","cat_variant.red":"Red","cat_variant.siamese":"Siamese","cat_variant.british":"British","cat_variant.calico":"Calico","cat_variant.persian":"Persian","cat_variant.ragdoll":"Ragdoll","cat_variant.white":"White","cat_variant.jellie":"Jellie","cat_variant.all_black":"All black","cave_surface.ceiling":"Ceiling","cave_surface.floor":"Floor","chat_type.chat":"Chat","chat_type.chat.decoration":"Decoration","chat_type.overlay":"Overlay","chat_type.overlay.help":"Displays on the actionbar","chat_type.overlay.decoration":"Decoration","chat_type.narration":"Narration","chat_type.narration.decoration":"Decoration","chat_type.narration.priority":"Priority","children":"Children","children.entry":"Entry","condition.alternative.terms":"Terms","condition.block_state_property.block":"Block","condition.block_state_property.properties":"Block state","condition.condition":"Condition","condition.damage_source":"Damage source","condition.entity_properties.entity":"Entity","condition.entity_scores.entity":"Entity","condition.entity_scores.scores":"Scores","condition.entry":"Predicate","condition.inverted.term":"Term","condition.item":"Item","condition.killed_by_player.inverse":"Inverted","condition.list":"Multiple","condition.location":"Location","condition.location_check.offsetX":"X offset","condition.location_check.offsetY":"Y offset","condition.location_check.offsetZ":"Z offset","condition.object":"Single","condition.random_chance.chance":"Chance","condition.random_chance_with_looting.chance":"Chance","condition.random_chance_with_looting.looting_multiplier":"Looting multiplier","condition.reference.name":"Predicate name","condition.table_bonus.chances":"Chances","condition.table_bonus.chances.entry":"Chance","condition.table_bonus.enchantment":"Enchantment","condition.time_check.period":"Period","condition.time_check.period.help":"If present, time will be modulo-divided by this value. For example, if set to 24000, value will operate on a time period of days.","condition.time_check.value":"Value","condition.value_check.range":"Range","condition.value_check.value":"Value","condition.weather_check.raining":"Raining","condition.weather_check.thundering":"Thundering","conditions":"Conditions","conditions.entry":"Condition","conditions.list":"Conditions","conditions.object":"Legacy","copy_source.block_entity":"Block entity","copy_source.direct_killer":"Direct killer","copy_source.killer":"Killer","copy_source.killer_player":"Killer player","copy_source.this":"This","criterion.allay_drop_item_on_block.item":"Item","criterion.allay_drop_item_on_block.block":"Block","criterion.bee_nest_destroyed.block":"Block","criterion.bee_nest_destroyed.num_bees_inside":"Number of bees inside","criterion.bred_animals.child":"Child","criterion.bred_animals.parent":"Parent","criterion.bred_animals.partner":"Partner","criterion.brewed_potion.potion":"Potion","criterion.changed_dimension.from":"From","criterion.changed_dimension.to":"To","criterion.channeled_lightning.victims":"Victims","criterion.channeled_lightning.victims.entry":"Entity","criterion.conditions":"Conditions","criterion.construct_beacon.beacon_level":"Pyramid level","criterion.consume_item.item":"Item","criterion.cured_zombie_villager.villager":"Villager","criterion.cured_zombie_villager.zombie":"Zombie","criterion.effects_changed.effects":"Effects","criterion.enchanted_item.item":"Item","criterion.enchanted_item.levels":"XP level","criterion.enter_block.block":"Block","criterion.enter_block.state":"States","criterion.entity_hurt_player.damage":"Damage","criterion.entity_killed_player.entity":"Source entity","criterion.entity_killed_player.killing_blow":"Killing blow","criterion.fall_from_height.distance":"Distance","criterion.fall_from_height.start_position":"Start position","criterion.filled_bucket.item":"Item","criterion.fishing_rod_hooked.entity":"Pulled entity","criterion.fishing_rod_hooked.item":"Item","criterion.hero_of_the_village.location":"Location","criterion.inventory_changed.items":"Items","criterion.inventory_changed.items.entry":"Item","criterion.inventory_changed.slots":"Slots","criterion.inventory_changed.slots.empty":"Slots empty","criterion.inventory_changed.slots.full":"Slots full","criterion.inventory_changed.slots.occupied":"Slots occupied","criterion.item_durability_changed.delta":"Delta","criterion.item_durability_changed.durability":"Durability","criterion.item_durability_changed.item":"Item","criterion.item_used_on_block.item":"Item","criterion.item_used_on_block.location":"Location","criterion.kill_mob_near_sculk_catalyst.entity":"Entity","criterion.kill_mob_near_sculk_catalyst.killing_blow":"Killing blow","criterion.killed_by_crossbow.unique_entity_types":"Amount of unique entity types","criterion.killed_by_crossbow.victims":"Victims","criterion.killed_by_crossbow.victims.entry":"Entity","criterion.levitation.distance":"Distance","criterion.levitation.duration":"Duration","criterion.location.location":"Location","criterion.nether_travel.distance":"Distance","criterion.nether_travel.entered":"Entered location","criterion.nether_travel.exited":"Exited location","criterion.nether_travel.start_position":"Start position","criterion.placed_block.block":"Block","criterion.placed_block.item":"Item","criterion.placed_block.location":"Location","criterion.placed_block.state":"States","criterion.player":"Player","criterion.player_generates_container_loot.loot_table":"Loot table","criterion.player_hurt_entity.damage":"Damage","criterion.player_hurt_entity.entity":"Victim entity","criterion.player_killed_entity.entity":"Victim entity","criterion.player_killed_entity.killing_blow":"Killing blow","criterion.recipe_unlocked.recipe":"Recipe","criterion.ride_entity_in_lava.distance":"Distance","criterion.ride_entity_in_lava.start_position":"Start position","criterion.rod":"Rod","criterion.safely_harvest_honey.block":"Block","criterion.safely_harvest_honey.item":"Item","criterion.shot_crossbow.item":"Item","criterion.slept_in_bed.location":"Location","criterion.slide_down_block.block":"Block","criterion.summoned_entity.entity":"Entity","criterion.tame_animal.entity":"Animal","criterion.target_hit.projectile":"Projectile","criterion.target_hit.shooter":"Shooter","criterion.target_hit.signal_strength":"Signal strength","criterion.thrown_item_picked_up_by_entity.entity":"Entity","criterion.thrown_item_picked_up_by_entity.item":"Item","criterion.thrown_item_picked_up_by_player.entity":"Thrower entity","criterion.thrown_item_picked_up_by_player.item":"Item","criterion.trigger":"Trigger","criterion.used_ender_eye.distance":"Distance","criterion.used_totem.item":"Totem item","criterion.villager_trade.item":"Purchased item","criterion.villager_trade.villager":"Villager","criterion.voluntary_exile.location":"Location","damage.blocked":"Blocked","damage.dealt":"Damage dealt","damage.source_entity":"Source entity","damage.taken":"Damage taken","damage.type":"Damage type","damage_source.bypasses_armor":"Bypass armor","damage_source.bypasses_invulnerability":"Void","damage_source.bypasses_magic":"Starvation","damage_source.direct_entity":"Direct entity","damage_source.is_explosion":"Explosion","damage_source.is_fire":"Fire","damage_source.is_lightning":"Lightning","damage_source.is_magic":"Magic","damage_source.is_projectile":"Projectile","damage_source.source_entity":"Source entity","decoration_step.raw_generation":"Raw generation","decoration_step.lakes":"Lakes","decoration_step.local_modifications":"Local modifications","decoration_step.underground_structures":"Underground structures","decoration_step.strongholds":"Strongholds","decoration_step.underground_ores":"Underground ores","decoration_step.underground_decoration":"Underground decoration","decoration_step.fluid_springs":"Fluid springs","decoration_step.vegetal_decoration":"Vegetal decoration","decoration_step.top_layer_modification":"Top layer modification","decorator.block_predicate_filter.predicate":"Predicate","decorator.carving_mask.step":"Step","decorator.cave_surface.surface":"Surface","decorator.cave_surface.floor_to_ceiling_search_range":"Search range","decorator.cave_surface.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","decorator.cave_surface.allow_water":"Allow water","decorator.chance.chance":"Chance","decorator.config":"Config","decorator.count.count":"Count","decorator.count_extra.count":"Count","decorator.count_extra.extra_chance":"Extra chance","decorator.count_extra.extra_count":"Extra count","decorator.count_multilayer.count":"Count","decorator.count_on_every_layer.count":"Count","decorator.count_noise.above_noise":"Above noise","decorator.count_noise.below_noise":"Below noise","decorator.count_noise.noise_level":"Noise level","decorator.noise_threshold_count.above_noise":"Above noise","decorator.noise_threshold_count.below_noise":"Below noise","decorator.noise_threshold_count.noise_level":"Noise level","decorator.count_noise_biased.noise_factor":"Noise factor","decorator.count_noise_biased.noise_offset":"Noise offset","decorator.count_noise_biased.noise_to_count_ratio":"Noise to count ratio","decorator.noise_based_count.noise_factor":"Noise factor","decorator.noise_based_count.noise_offset":"Noise offset","decorator.noise_based_count.noise_to_count_ratio":"Noise to count ratio","decorator.decorated.inner":"Inner","decorator.decorated.outer":"Outer","decorator.depth_average.baseline":"Baseline","decorator.depth_average.spread":"Spread","decorator.environment_scan.direction_of_search":"Direction","decorator.environment_scan.max_steps":"Max steps","decorator.environment_scan.target_condition":"Target condition","decorator.glowstone.count":"Count","decorator.heightmap.heightmap":"Heightmap","decorator.heightmap_spread_double.heightmap":"Heightmap","decorator.lava_lake.chance":"Chance","decorator.range.bottom_inclusive":"Bottom inclusive","decorator.range.top_inclusive":"Top inclusive","decorator.range_biased_to_bottom.bottom_inclusive":"Bottom inclusive","decorator.range_biased_to_bottom.top_inclusive":"Top inclusive","decorator.range_biased_to_bottom.cutoff":"Cutoff","decorator.range_very_biased_to_bottom.bottom_inclusive":"Bottom inclusive","decorator.range_very_biased_to_bottom.top_inclusive":"Top inclusive","decorator.range_very_biased_to_bottom.cutoff":"Cutoff","decorator.range.height":"Height","decorator.height_range.height":"Height","decorator.random_offset.xz_spread":"XZ spread","decorator.random_offset.y_spread":"Y spread","decorator.surface_relative_threshold_filter.heightmap":"Heightmap","decorator.surface_relative_threshold_filter.min_inclusive":"Min inclusive","decorator.surface_relative_threshold_filter.max_inclusive":"Max inclusive","decorator.water_depth_threshold.max_water_depth":"Max water depth","decorator.surface_water_depth_filter.max_water_depth":"Max water depth","decorator.type":"Type","density_function.string":"Reference","density_function.number":"Constant","density_function.object":"Inline","density_function.type":"Type","density_function.argument":"Argument","density_function.argument1":"Argument 1","density_function.argument2":"Argument 2","density_function.input":"Input","density_function.min":"Min","density_function.max":"Max","density_function.xz_scale":"XZ scale","density_function.y_scale":"Y scale","density_function.xz_factor":"XZ factor","density_function.y_factor":"Y factor","density_function.smear_scale_multiplier":"Smear scale multiplier","density_function.min_inclusive":"Min inclusive","density_function.when_in_range":"When in range","density_function.when_out_of_range":"When out of range","density_function.noise":"Noise parameters","density_function.shift_x":"Shift X","density_function.shift_y":"Shift Y","density_function.shift_z":"Shift Z","density_function.spline":"Spline","density_function.min_value":"Min value","density_function.max_value":"Max value","density_function.continentalness":"Continentalness","density_function.erosion":"Erosion","density_function.weirdness":"Weirdness","density_function.rarity_value_mapper":"Rarity value mapper","density_function.from_y":"From Y","density_function.to_y":"To Y","density_function.from_value":"From value","density_function.to_value":"To value","dimension":"Dimension","dimension.generator":"Generator","dimension.generator.biome_source":"Biome source","dimension.overworld":"Overworld","dimension.the_end":"The end","dimension.the_nether":"The nether","dimension.type":"Dimension type","dimension.type.object":"Inline","dimension.type.string":"Reference","dimension_type.ambient_light":"Ambient light","dimension_type.ambient_light.help":"How much ambient light there is. Should be a value between 0.0 and 1.0.","dimension_type.bed_works":"Bed works","dimension_type.bed_works.help":"If true, players can use beds to set their spawn and advance time. If false, beds will blow up when used.","dimension_type.coordinate_scale":"Coordinate scale","dimension_type.coordinate_scale.help":"Multiplier applied to coordinates when traveling between dimensions using a nether portal or /execute in.","dimension_type.effects":"Effects","dimension_type.effects.help":"Sky effects","dimension_type.effects.overworld":"Overworld","dimension_type.effects.the_end":"The end","dimension_type.effects.the_nether":"The nether","dimension_type.fixed_time":"Fixed time","dimension_type.fixed_time.help":"Setting this value will keep the sun in a fixed position.","dimension_type.has_ceiling":"Has ceiling","dimension_type.has_ceiling.help":"Affects the weather, map items and respawning rules.","dimension_type.has_raids":"Has raids","dimension_type.has_raids.help":"If true, players with the Bad Omen effect can cause a raid.","dimension_type.has_skylight":"Has skylight","dimension_type.has_skylight.help":"Affects the weather, lighting engine and respawning rules.","dimension_type.height":"Height","dimension_type.height.help":"The total height in which blocks can exist. Max Y = Min Y + Height.","dimension_type.infiniburn":"Infiniburn","dimension_type.infiniburn.help":"Block tag defining what blocks keep fire infinitely burning.","dimension_type.logical_height":"Logical height","dimension_type.logical_height.help":"Portals can't spawn and chorus fruit can't teleport players above this height.","dimension_type.min_y":"Min Y","dimension_type.min_y.help":"The minimum height in which blocks can exist.","dimension_type.name":"Name","dimension_type.natural":"Natural","dimension_type.natural.help":"If true, portals will spawn zombified piglins. If false, compasses and clocks spin randomly.","dimension_type.piglin_safe":"Piglin safe","dimension_type.piglin_safe.help":"If false, piglins will shake and convert to zombified piglins.","dimension_type.respawn_anchor_works":"Respawn anchor works","dimension_type.respawn_anchor_works.help":"If true, players can charge and use respawn anchors to set their spawn. If false, respawn anchors will blow up when used.","dimension_type.ultrawarm":"Ultrawarm","dimension_type.ultrawarm.help":"If true, water will evaporate and sponges will dry.","direction.up":"Up","direction.down":"Down","direction.north":"North","direction.east":"East","direction.south":"South","direction.west":"West","display_position.firstperson_righthand":"Firstperson righthand","display_position.firstperson_lefthand":"Firstperson lefthand","display_position.thirdperson_righthand":"Thirdperson righthand","display_position.thirdperson_lefthand":"Thirdperson lefthand","display_position.gui":"GUI","display_position.head":"Head","display_position.ground":"Ground","display_position.fixed":"Fixed","distance.absolute":"Absolute","distance.horizontal":"Horizontal","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"Aqua affinity","enchantment.bane_of_arthropods":"Bane of arthropods","enchantment.binding_curse":"Curse of binding","enchantment.blast_protection":"Blast protection","enchantment.channeling":"Channeling","enchantment.depth_strider":"Depth strider","enchantment.efficiency":"Efficiency","enchantment.enchantment":"Enchantment","enchantment.feather_falling":"Feather falling","enchantment.fire_aspect":"Fire aspect","enchantment.fire_protection":"Fire protection","enchantment.flame":"Flame","enchantment.fortune":"Fortune","enchantment.frost_walker":"Frost walker","enchantment.impaling":"Impaling","enchantment.infinity":"Infinity","enchantment.knockback":"Knockback","enchantment.levels":"Levels","enchantment.looting":"Looting","enchantment.loyalty":"Loyalty","enchantment.luck_of_the_sea":"Luck of the sea","enchantment.lure":"Lure","enchantment.mending":"Mending","enchantment.multishot":"Multishot","enchantment.piercing":"Piercing","enchantment.power":"Power","enchantment.projectile_protection":"Projectile protection","enchantment.protection":"Protection","enchantment.punch":"Punch","enchantment.quick_charge":"Quick charge","enchantment.respiration":"Respiration","enchantment.riptide":"Riptide","enchantment.sharpness":"Sharpness","enchantment.silk_touch":"Silk touch","enchantment.smite":"Smite","enchantment.sweeping":"Sweeping edge","enchantment.thorns":"Thorns","enchantment.unbreaking":"Unbreaking","enchantment.vanishing_curse":"Curse of vanishing","entity.catType":"Cat type","entity.distance":"Distance","entity.effects":"Effects","entity.equipment":"Equipment","entity.fishing_hook":"Fishing hook","entity.fishing_hook.in_open_water":"In open water","entity.flags":"Flags","entity.flags.is_baby":"Baby","entity.flags.is_on_fire":"On fire","entity.flags.is_sneaking":"Sneaking","entity.flags.is_sprinting":"Sprinting","entity.flags.is_swimming":"Swimming","entity.lightning_bolt":"Lightning bolt","entity.lightning_bolt.blocks_set_on_fire":"Blocks set on fire","entity.lightning_bolt.entity_struck":"Entity struck","entity.location":"Location","entity.nbt":"NBT","entity.passenger":"Passenger","entity.player":"Player","entity.stepping_on":"Stepping on","entity.targeted_entity":"Targeted entity","entity.team":"Team","entity.type":"Entity type","entity.type_specific":"Type specific","entity.type_specific.type":"Type","entity.type_specific.any":"Any","entity.type_specific.cat":"Cat","entity.type_specific.fishing_hook":"Fishing hook","entity.type_specific.frog":"Frog","entity.type_specific.lightning":"Lightning","entity.type_specific.player":"Player","entity.type_specific.slime":"Slime","entity.type_specific.cat.variant":"Variant","entity.type_specific.fishing_hook.in_open_water":"In open water","entity.type_specific.frog.variant":"Variant","entity.type_specific.lightning.blocks_set_on_fire":"Blocks set on fire","entity.type_specific.lightning.entity_struck":"Entity struck","entity.type_specific.slime.size":"Size","entity.vehicle":"Vehicle","entity_source.direct_killer":"Direct killer","entity_source.killer":"Killer","entity_source.killer_player":"Killer player","entity_source.this":"This","entry":"Entry","error":"Error","error.disallowed_tag_prefix":"Tags cannot start with \\"#\\" here","error.disallowed_tag":"Tags aren't allowed here","error.expected_boolean":"Expected a boolean","error.expected_integer":"Expected an integer","error.expected_json":"Expected JSON","error.expected_list":"Expected an array","error.expected_number":"Expected a number","error.expected_object":"Expected an object","error.expected_range":"Expected a range","error.expected_string":"Expected a string","error.expected_uniform_int":"Expected a uniform int","error.expected_tag":"Expected a tag starting with \\"#\\"","error.height_multiple":"Height has to be multiple of %0%","error.invalid_empty_list":"Array cannot be empty","error.invalid_enum_option":"Invalid option \\"%0%\\"","error.invalid_list_range.exact":"Expected a list with length %1%","error.invalid_list_range.larger":"List length %0% is larger than maximum %1%","error.invalid_list_range.smaller":"List length %0% is smaller than minimum %1%","error.invalid_number_range.between":"Expected a number between %1% and %2%","error.invalid_number_range.larger":"Value %0% is larger than maximum %1%","error.invalid_number_range.smaller":"Value %0% is smaller than minimum %1%","error.invalid_number_enum":"Expected one of %0%","error.invalid_resource_location":"Resource location contains invalid characters","error.logical_height":"Logical height cannot be higher than height","error.min_y_multiple":"Min Y has to be a multiple of %0%","error.min_y_plus_height":"Min Y + height cannot be higher than %0%","error.recipe.invalid_key":"only single character is allowed as a key","error.separation_smaller_spacing":"Separation has to be smaller than spacing","false":"False","feature.bamboo.probability":"Probability","feature.basalt_columns.height":"Height","feature.basalt_columns.reach":"Reach","feature.block_column.direction":"Direction","feature.block_column.allowed_placement":"Allowed placement","feature.block_column.prioritize_tip":"Prioritize tip","feature.block_column.layers":"Layers","feature.block_column.layers.entry.height":"Height","feature.block_column.layers.entry.state":"State","feature.block_pile.state_provider":"State provider","feature.config":"Config","feature.decorated.decorator":"Decorator","feature.decorated.feature":"Feature","feature.delta_feature.contents":"Contents","feature.delta_feature.rim":"Rim","feature.delta_feature.rim_size":"Rim size","feature.delta_feature.size":"Size","feature.disk.half_height":"Half height","feature.disk.radius":"Radius","feature.disk.state":"State","feature.disk.state_provider":"State provider","feature.disk.target":"Target","feature.disk.targets":"Targets","feature.disk.targets.entry":"State","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center":"Far dripstone chance","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center.help":"Chance of a dripstone column at the max distance from the center.","feature.dripstone_cluster.density":"Density","feature.dripstone_cluster.dripstone_block_layer_thickness":"Block layer thickness","feature.dripstone_cluster.floor_to_ceiling_search_range":"Search range","feature.dripstone_cluster.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","feature.dripstone_cluster.height":"Height","feature.dripstone_cluster.height_deviation":"Height deviation","feature.dripstone_cluster.max_distance_from_edge_affecting_chance_of_dripstone_column":"Column chance distance","feature.dripstone_cluster.max_distance_from_edge_affecting_chance_of_dripstone_column.help":"Max distance from the edge affecting the chance of dripstone columns.","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias":"Height bias distance","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias.help":"Max distance from the center affecting the height bias.","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff":"Max height difference","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff.help":"Max height difference between the stalagmite and stalactite.","feature.dripstone_cluster.radius":"Radius","feature.dripstone_cluster.wetness":"Wetness","feature.dripstone_cluster.wetness_deviation":"Wetness deviation","feature.dripstone_cluster.wetness_mean":"Wetness mean","feature.emerald_ore.state":"State","feature.emerald_ore.target":"Target","feature.end_gateway.exact":"Exact","feature.end_gateway.exit":"Exit","feature.end_spike.crystal_beam_target":"Crystal beam target","feature.end_spike.crystal_invulnerable":"Crystal invulnerable","feature.end_spike.spikes":"Spikes","feature.end_spike.spikes.entry":"Spike","feature.end_spike.spikes.entry.centerX":"Center X","feature.end_spike.spikes.entry.centerZ":"Center Z","feature.end_spike.spikes.entry.guarded":"Guarded","feature.end_spike.spikes.entry.height":"Height","feature.end_spike.spikes.entry.radius":"Radius","feature.fill_layer.height":"Height","feature.fill_layer.state":"State","feature.flower.blacklist":"Blacklist","feature.flower.block_placer":"Block placer","feature.flower.can_replace":"Can replace","feature.flower.need_water":"Need water","feature.flower.feature":"Placed feature","feature.flower.project":"Project","feature.flower.state_provider":"State provider","feature.flower.tries":"Tries","feature.flower.whitelist":"Whitelist","feature.flower.xspread":"X spread","feature.flower.xz_spread":"XZ spread","feature.flower.yspread":"Y spread","feature.flower.y_spread":"Y spread","feature.flower.zspread":"Z spread","feature.forest_rock.state":"State","feature.fossil.max_empty_corners_allowed":"Max empty corners","feature.fossil.max_empty_corners_allowed.help":"If more corners are exposed to air, feature placement is cancelled.","feature.fossil.fossil_structures":"Fossil structures","feature.fossil.overlay_structures":"Overlay structures","feature.fossil.fossil_processors":"Fossil processors","feature.fossil.fossil_processors.string":"Reference","feature.fossil.fossil_processors.object":"Inline","feature.fossil.overlay_processors":"Overlay processors","feature.fossil.overlay_processors.string":"Reference","feature.fossil.overlay_processors.object":"Inline","feature.geode.blocks":"Blocks","feature.geode.blocks.filling_provider":"Filling","feature.geode.blocks.inner_layer_provider":"Inner layer","feature.geode.blocks.alternate_inner_layer_provider":"Alternate inner layer","feature.geode.blocks.middle_layer_provider":"Middle layer","feature.geode.blocks.outer_layer_provider":"Outer layer","feature.geode.blocks.inner_placements":"Inner placements","feature.geode.blocks.cannot_replace":"Cannot replace","feature.geode.blocks.cannot_replace.help":"Blocks that will not be replaced by the geode.","feature.geode.blocks.invalid_blocks":"Invalid blocks","feature.geode.blocks.invalid_blocks.help":"When encountering an invalid block, feature placement is cancelled.","feature.geode.layers":"Layers","feature.geode.layers.filling":"Filling","feature.geode.layers.inner_layer":"Inner layer","feature.geode.layers.middle_layer":"Middle layer","feature.geode.layers.outer_layer":"Outer layer","feature.geode.crack":"Crack","feature.geode.crack.generate_crack_chance":"Crack chance","feature.geode.crack.base_crack_size":"Crack size","feature.geode.crack.crack_point_offset":"Crack point offset","feature.geode.noise_multiplier":"Noise multiplier","feature.geode.use_potential_placements_chance":"Inner placements chance","feature.geode.use_alternate_layer0_chance":"Alternate inner layer chance","feature.geode.placements_require_layer0_alternate":"Placements require alternate layer","feature.geode.outer_wall_distance":"Outer wall distance","feature.geode.distribution_points":"Distribution points","feature.geode.point_offset":"Point offset","feature.geode.min_gen_offset":"Min gen offset","feature.geode.max_gen_offset":"Max gen offset","feature.geode.invalid_blocks_threshold":"Invalid blocks threshold","feature.glow_lichen.can_be_placed_on":"Can be placed on","feature.glow_lichen.can_be_placed_on.entry":"Block state","feature.glow_lichen.can_place_on_ceiling":"Can place on ceiling","feature.glow_lichen.can_place_on_floor":"Can place on floor","feature.glow_lichen.can_place_on_wall":"Can place on wall","feature.glow_lichen.chance_of_spreading":"Chance of spreading","feature.glow_lichen.search_range":"Search range","feature.growing_plant.direction":"Direction","feature.growing_plant.allow_water":"Allow water","feature.growing_plant.height_distribution":"Height distribution","feature.growing_plant.body_provider":"Body provider","feature.growing_plant.head_provider":"Head provider","feature.huge_brown_mushroom.cap_provider":"Cap provider","feature.huge_brown_mushroom.foliage_radius":"Foliage radius","feature.huge_brown_mushroom.stem_provider":"Stem provider","feature.huge_fungus.decor_state":"Decoration","feature.huge_fungus.hat_state":"Hat","feature.huge_fungus.planted":"Planted","feature.huge_fungus.stem_state":"Stem","feature.huge_fungus.valid_base_block":"Valid base","feature.huge_red_mushroom.cap_provider":"Cap provider","feature.huge_red_mushroom.foliage_radius":"Foliage radius","feature.huge_red_mushroom.stem_provider":"Stem provider","feature.ice_patch.can_origin_replace":"Can origin replace","feature.ice_patch.half_height":"Half height","feature.ice_patch.radius":"Radius","feature.ice_patch.state":"State","feature.ice_patch.targets":"Targets","feature.ice_patch.targets.entry":"State","feature.iceberg.state":"State","feature.lake.state":"State","feature.lake.fluid":"Fluid","feature.lake.barrier":"Barrier","feature.large_dripstone.column_radius":"Column radius","feature.large_dripstone.floor_to_ceiling_search_range":"Search range","feature.large_dripstone.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","feature.large_dripstone.height_scale":"Height scale","feature.large_dripstone.max_column_radius_to_cave_height_ratio":"Radius to cave height ratio","feature.large_dripstone.min_bluntness_for_wind":"Min bluntness for wind","feature.large_dripstone.min_radius_for_wind":"Min radius for wind","feature.large_dripstone.stalactite_bluntness":"Stalactite bluntness","feature.large_dripstone.stalagmite_bluntness":"Stalagmite bluntness","feature.large_dripstone.wind_speed":"Wind speed","feature.multiface_growth.can_be_placed_on":"Can be placed on","feature.multiface_growth.can_be_placed_on.entry":"Block state","feature.multiface_growth.can_place_on_ceiling":"Can place on ceiling","feature.multiface_growth.can_place_on_floor":"Can place on floor","feature.multiface_growth.can_place_on_wall":"Can place on wall","feature.multiface_growth.chance_of_spreading":"Chance of spreading","feature.multiface_growth.search_range":"Search range","feature.nether_forest_vegetation.state_provider":"State provider","feature.nether_forest_vegetation.spread_width":"Spread width","feature.nether_forest_vegetation.spread_height":"Spread height","feature.netherrack_replace_blobs.radius":"Radius","feature.netherrack_replace_blobs.state":"State","feature.netherrack_replace_blobs.target":"Target","feature.no_bonemeal_flower.allowed_on":"Allowed on","feature.no_bonemeal_flower.blacklist":"Blacklist","feature.no_bonemeal_flower.block_placer":"Block placer","feature.no_bonemeal_flower.can_replace":"Can replace","feature.no_bonemeal_flower.disallowed_on":"Disallowed on","feature.no_bonemeal_flower.need_water":"Need water","feature.no_bonemeal_flower.feature":"Placed feature","feature.no_bonemeal_flower.only_in_air":"Only in air","feature.no_bonemeal_flower.project":"Project","feature.no_bonemeal_flower.state_provider":"State provider","feature.no_bonemeal_flower.tries":"Tries","feature.no_bonemeal_flower.whitelist":"Whitelist","feature.no_bonemeal_flower.xspread":"X spread","feature.no_bonemeal_flower.xz_spread":"XZ spread","feature.no_bonemeal_flower.yspread":"Y spread","feature.no_bonemeal_flower.y_spread":"Y spread","feature.no_bonemeal_flower.zspread":"Z spread","feature.no_surface_ore.size":"Size","feature.no_surface_ore.state":"State","feature.no_surface_ore.target":"Target","feature.object":"Inline","feature.ore.discard_chance_on_air_exposure":"Discard on exposure chance","feature.ore.discard_chance_on_air_exposure.help":"The chance that feature placement will be discarded if the ore is exposed to air blocks.","feature.ore.size":"Size","feature.ore.state":"State","feature.ore.target":"Target","feature.ore.targets":"Targets","feature.ore.targets.entry.target":"Target","feature.ore.targets.entry.state":"State","feature.scattered_ore.discard_chance_on_air_exposure":"Discard on exposure chance","feature.scattered_ore.discard_chance_on_air_exposure.help":"The chance that feature placement will be discarded if the ore is exposed to air blocks.","feature.scattered_ore.size":"Size","feature.scattered_ore.targets":"Targets","feature.scattered_ore.targets.entry.target":"Target","feature.scattered_ore.targets.entry.state":"State","feature.sculk_patch.charge_count":"Charge count","feature.sculk_patch.amount_per_charge":"Amount per charge","feature.sculk_patch.spread_attempts":"Spread attempts","feature.sculk_patch.growth_rounds":"Growth rounds","feature.sculk_patch.spread_rounds ":"Spread rounds","feature.sculk_patch.extra_rare_growths":"Extra rare growths","feature.sculk_patch.catalyst_chance":"Catalyst chance","feature.surface_disk.can_origin_replace":"Can origin replace","feature.surface_disk.half_height":"Half height","feature.surface_disk.radius":"Radius","feature.surface_disk.state":"State","feature.surface_disk.targets":"Targets","feature.surface_disk.targets.entry":"State","feature.pointed_dripstone.chance_of_taller_dripstone":"Chance of taller dripstone","feature.pointed_dripstone.chance_of_directional_spread":"Chance of directional spread","feature.pointed_dripstone.chance_of_spread_radius2":"Chance of spread radius 2","feature.pointed_dripstone.chance_of_spread_radius3":"Chance of spread radius 3","feature.random_boolean_selector.feature_false":"Placed feature 1","feature.random_boolean_selector.feature_true":"Placed feature 2","feature.random_patch.allowed_on":"Allowed on","feature.random_patch.blacklist":"Blacklist","feature.random_patch.block_placer":"Block placer","feature.random_patch.can_replace":"Can replace","feature.random_patch.disallowed_on":"Disallowed on","feature.random_patch.need_water":"Need water","feature.random_patch.feature":"Placed feature","feature.random_patch.only_in_air":"Only in air","feature.random_patch.project":"Project","feature.random_patch.state_provider":"State provider","feature.random_patch.tries":"Tries","feature.random_patch.whitelist":"Whitelist","feature.random_patch.xspread":"X spread","feature.random_patch.xz_spread":"XZ spread","feature.random_patch.yspread":"Y spread","feature.random_patch.y_spread":"Y spread","feature.random_patch.zspread":"Z spread","feature.random_selector.default":"Default","feature.random_selector.features":"Features","feature.random_selector.features.entry":"Feature","feature.random_selector.features.entry.chance":"Chance","feature.random_selector.features.entry.feature":"Placed feature","feature.replace_single_block.targets":"Targets","feature.replace_single_block.targets.entry.target":"Target","feature.replace_single_block.targets.entry.state":"State","feature.root_system.required_vertical_space_for_tree":"Required vertical tree space","feature.root_system.root_radius":"Root radius","feature.root_system.root_placement_attempts":"Root placement attempts","feature.root_system.root_column_max_height":"Root max height","feature.root_system.hanging_root_radius":"Hanging roots radius","feature.root_system.hanging_roots_vertical_span":"Hanging roots vertical span","feature.root_system.hanging_root_placement_attempts":"Hanging roots attempts","feature.root_system.allowed_vertical_water_for_tree":"Max water depth","feature.root_system.root_replaceable":"Root replaceable","feature.root_system.root_state_provider":"Root","feature.root_system.hanging_root_state_provider":"Hanging roots","feature.root_system.allowed_tree_position":"Allowed tree position","feature.root_system.feature":"Tree feature","feature.sea_pickle.count":"Count","feature.seagrass.probability":"Probability","feature.simple_block.place_in":"Place in","feature.simple_block.place_in.entry":"State","feature.simple_block.place_on":"Place on","feature.simple_block.place_on.entry":"State","feature.simple_block.place_under":"Place under","feature.simple_block.place_under.entry":"State","feature.simple_block.to_place":"To place","feature.simple_random_selector.features":"Features","feature.simple_random_selector.features.entry":"Placed feature","feature.small_dripstone.chance_of_taller_dripstone":"Chance of taller dripstone","feature.small_dripstone.empty_space_search_radius":"Empty space search radius","feature.small_dripstone.max_offset_from_origin":"Max offset from origin","feature.small_dripstone.max_placements":"Max placements","feature.spring_feature.hole_count":"Hole count","feature.spring_feature.required_block_below":"Required block below","feature.spring_feature.rock_count":"Rock count","feature.spring_feature.state":"State","feature.spring_feature.valid_blocks":"Valid blocks","feature.string":"Reference","feature.tree.decorators":"Decorators","feature.tree.decorators.entry":"Tree decorator","feature.tree.foliage_placer":"Foliage placer","feature.tree.heightmap":"Heightmap","feature.tree.ignore_vines":"Ignore vines","feature.tree.leaves_provider":"Leaves provider","feature.tree.foliage_provider":"Foliage provider","feature.tree.force_dirt":"Force dirt","feature.tree.dirt_provider":"Dirt provider","feature.tree.sapling_provider":"Sapling provider","feature.tree.max_water_depth":"Max water depth","feature.tree.minimum_size":"Minimum size","feature.tree.minimum_size.limit":"Limit","feature.tree.minimum_size.lower_size":"Lower size","feature.tree.minimum_size.middle_size":"Middle size","feature.tree.minimum_size.min_clipped_height":"Min clipped height","feature.tree.minimum_size.type":"Minimum size","feature.tree.minimum_size.upper_limit":"Upper limit","feature.tree.minimum_size.upper_size":"Upper size","feature.tree.root_placer":"Root placer","feature.tree.trunk_placer":"Trunk placer","feature.tree.trunk_provider":"Trunk provider","feature.twisting_vines.spread_width":"Spread width","feature.twisting_vines.spread_height":"Spread height","feature.twisting_vines.max_height":"Max height","feature.type":"Type","feature.underwater_magma.floor_search_range":"Floor search range","feature.underwater_magma.placement_radius_around_floor":"Placement radius","feature.underwater_magma.placement_probability_per_valid_position":"Probability","feature.underwater_magma.placement_probability_per_valid_position.help":"The probability of placing magma per valid position.","feature.vegetation_patch.depth":"Depth","feature.vegetation_patch.extra_bottom_block_chance":"Extra bottom block chance","feature.vegetation_patch.extra_edge_column_chance":"Extra edge column chance","feature.vegetation_patch.ground_state":"Ground state","feature.vegetation_patch.replaceable":"Replaceable","feature.vegetation_patch.surface":"Surface","feature.vegetation_patch.vegetation_chance":"Vegetation chance","feature.vegetation_patch.vegetation_feature":"Vegetation feature","feature.vegetation_patch.vertical_range":"Vertical range","feature.vegetation_patch.xz_radius":"XZ radius","feature.waterlogged_vegetation_patch.depth":"Depth","feature.waterlogged_vegetation_patch.extra_bottom_block_chance":"Extra bottom block chance","feature.waterlogged_vegetation_patch.extra_edge_column_chance":"Extra edge column chance","feature.waterlogged_vegetation_patch.ground_state":"Ground state","feature.waterlogged_vegetation_patch.replaceable":"Replaceable","feature.waterlogged_vegetation_patch.surface":"Surface","feature.waterlogged_vegetation_patch.vegetation_chance":"Vegetation chance","feature.waterlogged_vegetation_patch.vegetation_feature":"Vegetation feature","feature.waterlogged_vegetation_patch.vertical_range":"Vertical range","feature.waterlogged_vegetation_patch.xz_radius":"XZ radius","float_provider.value.deviation":"Deviation","float_provider.value.mean":"Mean","float_provider.value.min":"Min","float_provider.value.min_inclusive":"Min exclusive","float_provider.value.max":"Max","float_provider.value.max_exclusive":"Max exclusive","float_provider.value.plateau":"Plateau","float_provider.type.number":"Constant","float_provider.type.constant":"Constant+","float_provider.type.uniform":"Uniform","float_provider.type.clamped_normal":"Clamped normal","float_provider.type.trapezoid":"Trapezoid","float_provider.value":"Value","fluid.fluid":"Fluid ID","fluid.state":"Fluid state","fluid.tag":"Fluid tag","fluid_state.Name":"Name","fluid_state.Properties":"Properties","foliage_placer.crown_height":"Crown height","foliage_placer.height":"Height","foliage_placer.offset":"Offset","foliage_placer.radius":"Radius","foliage_placer.trunk_height":"Trunk height","foliage_placer.type":"Type","foliage_placer.foliage_height":"Foliage height","foliage_placer.leaf_placement_attempts":"Leaf placement attempts","frog_variant.cold":"Cold","frog_variant.temperate":"Temperate","frog_variant.warm":"Warm","function.apply_bonus.enchantment":"Enchantment","function.apply_bonus.formula":"Formula","function.apply_bonus.formula.binomial_with_bonus_count":"Binomial with bonus count","function.apply_bonus.formula.ore_drops":"Ore drops","function.apply_bonus.formula.uniform_bonus_count":"Uniform bonus count","function.apply_bonus.parameters":"Parameters","function.apply_bonus.parameters.bonusMultiplier":"Multiplier","function.apply_bonus.parameters.extra":"Extra","function.apply_bonus.parameters.probability":"Probability","function.copy_name.source":"Source","function.copy_nbt.ops":"NBT operations","function.copy_nbt.ops.entry":"Operation","function.copy_nbt.source":"Source","function.copy_state.block":"Block","function.copy_state.properties":"Properties","function.copy_state.properties.entry":"Property","function.enchant_randomly.enchantments":"Optional enchantments","function.enchant_randomly.enchantments.entry":"Enchantment","function.enchant_with_levels.levels":"Levels","function.enchant_with_levels.treasure":"Treasure","function.exploration_map.decoration":"Decoration","function.exploration_map.destination":"Destination","function.exploration_map.search_radius":"Search radius (Chunks)","function.exploration_map.skip_existing_chunks":"Skip existing chunks","function.exploration_map.zoom":"Zoom","function.fill_player_head.entity":"Entity","function.function":"Function","function.limit_count.limit":"Limit","function.list":"Multiple","function.looting_enchant.count":"Count","function.looting_enchant.limit":"Limit","function.object":"Single","function.set_attributes.modifiers":"Modifiers","function.set_attributes.modifiers.entry":"Modifier","function.set_banner_pattern.append":"Append","function.set_banner_pattern.patterns":"Patterns","function.set_contents.entries":"Contents","function.set_contents.entries.entry":"Entry","function.set_contents.type":"Type","function.set_count.add":"Add","function.set_count.add.help":"If true, change will be relative to current item count","function.set_count.count":"Count","function.set_damage.add":"Add","function.set_damage.add.help":"If true, change will be relative to current damage","function.set_damage.damage":"Damage","function.set_data.data":"Data","function.set_enchantments.add":"Add","function.set_enchantments.add.help":"If true, change will be relative to current level","function.set_enchantments.enchantments":"Enchantments","function.set_instrument.options":"Instruments","function.set_loot_table.name":"Loot table name","function.set_loot_table.seed":"Seed","function.set_loot_table.type":"Type","function.set_lore.entity":"Entity","function.set_lore.lore":"Lore","function.set_lore.lore.entry":"Line","function.set_lore.replace":"Replace","function.set_name.entity":"Entity","function.set_name.name":"Name","function.set_nbt.tag":"NBT","function.set_potion.id":"Potion","function.set_stew_effect.effects":"Effects","function.set_stew_effect.effects.entry":"Effect","function.set_stew_effect.effects.entry.duration":"Duration","function.set_stew_effect.effects.entry.type":"Type","functions":"Functions","functions.entry":"Function","gamemode.adventure":"Adventure","gamemode.creative":"Creative","gamemode.spectator":"Spectator","gamemode.survival":"Survival","generation_step.air":"Air","generation_step.liquid":"Liquid","generator.biome_source.altitude_noise":"Altitude noise","generator.biome_source.biome":"Biome","generator.biome_source.biomes":"Biomes","generator.biome_source.humidity_noise":"Humidity noise","generator.biome_source.large_biomes":"Large biomes","generator.biome_source.legacy_biome_init_layer":"Legacy biome init layer","generator.biome_source.preset":"Biomes preset","generator.biome_source.preset.nether":"Nether","generator.biome_source.scale":"Scale","generator.biome_source.seed":"Biomes seed","generator.biome_source.temperature_noise":"Temperature noise","generator.biome_source.type":"Biome source","generator.biome_source.weirdness_noise":"Weirdness noise","generator.seed":"Dimension seed","generator.settings":"Generator settings","generator.settings.biome":"Biome","generator.settings.lakes":"Lakes","generator.settings.layers":"Layers","generator.settings.layers.entry":"Layer","generator.settings.layers.entry.block":"Block ID","generator.settings.layers.entry.height":"Height","generator.settings.structure_overrides":"Structure overrides","generator.settings.structure_overrides.entry":"Structure set","generator.settings.object":"Inline","generator.settings.presets.amplified":"Amplified","generator.settings.presets.caves":"Caves","generator.settings.presets.end":"End","generator.settings.presets.floating_islands":"Floating islands","generator.settings.presets.nether":"Nether","generator.settings.presets.overworld":"Overworld","generator.settings.string":"Reference","generator.settings.structures":"Structures","generator.settings.structures.stronghold":"Stronghold","generator.settings.structures.stronghold.count":"Count","generator.settings.structures.stronghold.distance":"Distance","generator.settings.structures.stronghold.spread":"Spread","generator.settings.structures.structures":"Structures","generator.type":"Generator type","generator_biome.biome":"Biome","generator_biome.parameters":"Parameters","generator_biome.parameters.altitude":"Altitude","generator_biome.parameters.help":"These parameters determine the placement of the biome. Every biome must have a unique combination of them. Biomes with similar values will generate next to each other.","generator_biome.parameters.humidity":"Humidity","generator_biome.parameters.offset":"Offset","generator_biome.parameters.temperature":"Temperature","generator_biome.parameters.weirdness":"Weirdness","generator_biome.parameters.continentalness":"Continentalness","generator_biome.parameters.erosion":"Erosion","generator_biome.parameters.depth":"Depth","generator_biome_noise.amplitudes":"Amplitudes","generator_biome_noise.amplitudes.entry":"Octave %0%","generator_biome_noise.firstOctave":"First octave","generator_structure.salt":"Salt","generator_structure.separation":"Separation","generator_structure.separation.help":"The minumum distance in chunks between two structures of this type.","generator_structure.spacing":"Spacing","generator_structure.spacing.help":"The average distance in chunks between two structures of this type.","height_provider.inner":"Inner","height_provider.min_inclusive":"Min inclusive","height_provider.max_inclusive":"Max inclusive","height_provider.plateau":"Plateau","height_provider.value":"Value","height_provider.distribution":"Distribution","height_provider.distribution.entry.weight":"Weight","height_provider.distribution.entry.data":"Data","height_provider.type.number":"Constant","height_provider.type.constant":"Constant+","height_provider.type.uniform":"Uniform","height_provider.type.biased_to_bottom":"Biased to bottom","height_provider.type.very_biased_to_bottom":"Very biased to bottom","height_provider.type.trapezoid":"Trapezoid","height_provider.type.weighted_list":"Weighted list","heightmap_type.MOTION_BLOCKING":"Motion blocking","heightmap_type.MOTION_BLOCKING_NO_LEAVES":"Motion blocking (Ignore Leaves)","heightmap_type.OCEAN_FLOOR":"Ocean floor","heightmap_type.OCEAN_FLOOR_WG":"Ocean floor (World Gen)","heightmap_type.WORLD_SURFACE":"World surface","heightmap_type.WORLD_SURFACE_IGNORE_SNOW":"World surface (Ignore Snow)","heightmap_type.WORLD_SURFACE_WG":"World surface (World Gen)","hide_source":"Hide source","int_provider.value":"Value","int_provider.value.deviation":"Deviation","int_provider.value.mean":"Mean","int_provider.value.min_inclusive":"Min inclusive","int_provider.value.max_inclusive":"Max inclusive","int_provider.value.source":"Source","int_provider.distribution":"Distribution","int_provider.distribution.entry.weight":"Weight","int_provider.distribution.entry.data":"Provider","int_provider.type.number":"Constant","int_provider.type.constant":"Constant+","int_provider.type.uniform":"Uniform","int_provider.type.biased_to_bottom":"Biased to bottom","int_provider.type.clamped":"Clamped","int_provider.type.clamped_normal":"Clamped normal","int_provider.type.weighted_list":"Weighted list","item.count":"Count","item.durability":"Durability","item.enchantments":"Enchantments","item.enchantments.entry":"Enchantment","item.item":"Item ID","item.nbt":"NBT","item.potion":"Potion","item.tag":"Item tag","item_model_predicates.angle":"Angle","item_model_predicates.blocking":"Blocking","item_model_predicates.broken":"Broken","item_model_predicates.cast":"Cast","item_model_predicates.charged":"Charged","item_model_predicates.cooldown":"Cooldown","item_model_predicates.custom_model_data":"Custom model data","item_model_predicates.damage":"Damage","item_model_predicates.damaged":"Damaged","item_model_predicates.firework":"Firework","item_model_predicates.lefthanded":"Lefthanded","item_model_predicates.pull":"Pull","item_model_predicates.pulling":"Pulling","item_model_predicates.throwing":"Throwing","item_model_predicates.time":"Time","item_transform.rotation":"Rotation","item_transform.translation":"Translation","item_transform.scale":"Scale","key.advancements":"Advancements","key.attack":"Attack/destroy","key.back":"Walk backwards","key.chat":"Open chat","key.command":"Open command","key.drop":"Drop selected item","key.forward":"Walk forwards","key.fullscreen":"Toggle fullscreen","key.hotbar.1":"Hotbar slot 1","key.hotbar.2":"Hotbar slot 2","key.hotbar.3":"Hotbar slot 3","key.hotbar.4":"Hotbar slot 4","key.hotbar.5":"Hotbar slot 5","key.hotbar.6":"Hotbar slot 6","key.hotbar.7":"Hotbar slot 7","key.hotbar.8":"Hotbar slot 8","key.hotbar.9":"Hotbar slot 9","key.inventory":"Open/close inventory","key.jump":"Jump","key.left":"Strafe left","key.loadToolbarActivator":"Load toolbar activator","key.pickItem":"Pick block","key.playerlist":"List players","key.right":"Strafe right","key.saveToolbarActivator":"Save toolbar activator","key.screenshot":"Take screenshot","key.smoothCamera":"Toggle cinematic camera","key.sneak":"Sneak","key.spectatorOutlines":"Highlight players (Spectators)","key.sprint":"Sprint","key.swapOffhand":"Swap item with offhand","key.togglePerspective":"Toggle perspective","key.use":"Use item/place block","location.biome":"Biome","location.block":"Block","location.dimension":"Dimension","location.feature":"Structure feature","location.structure":"Structure","location.fluid":"Fluid","location.light":"Light","location.light.light":"Visible light level","location.position":"Position","location.position.x":"X","location.position.y":"Y","location.position.z":"Z","location.smokey":"Smokey","loot_condition_type.alternative":"Alternative","loot_condition_type.block_state_property":"Block state properties","loot_condition_type.damage_source_properties":"Damage source properties","loot_condition_type.entity_properties":"Entity properties","loot_condition_type.entity_scores":"Entity scores","loot_condition_type.inverted":"Inverted","loot_condition_type.killed_by_player":"Killed by player","loot_condition_type.location_check":"Location check","loot_condition_type.match_tool":"Match tool","loot_condition_type.random_chance":"Random chance","loot_condition_type.random_chance_with_looting":"Random chance with looting","loot_condition_type.reference":"Reference","loot_condition_type.survives_explosion":"Survives explosion","loot_condition_type.table_bonus":"Table bonus","loot_condition_type.time_check":"Time check","loot_condition_type.value_check":"Value check","loot_condition_type.weather_check":"Weather check","loot_entry.dynamic.name":"Name","loot_entry.item.name":"Name","loot_entry.loot_table.name":"Loot table name","loot_entry.quality":"Quality","loot_entry.tag.expand":"Expand","loot_entry.tag.expand.help":"If false, entry will return all contents of tag, otherwise entry will behave as multiple item entries.","loot_entry.tag.name":"Item tag name","loot_entry.type":"Type","loot_entry.weight":"Weight","loot_entry.functions":"Functions","loot_entry.functions.entry":"Function","loot_function_type.apply_bonus":"Apply bonus","loot_function_type.copy_name":"Copy name","loot_function_type.copy_nbt":"Copy NBT","loot_function_type.copy_state":"Copy block states","loot_function_type.enchant_randomly":"Enchant randomly","loot_function_type.enchant_with_levels":"Enchant with levels","loot_function_type.exploration_map":"Exploration map properties","loot_function_type.explosion_decay":"Explosion decay","loot_function_type.fill_player_head":"Fill player head","loot_function_type.furnace_smelt":"Furnace smelt","loot_function_type.limit_count":"Limit count","loot_function_type.looting_enchant":"Looting enchant","loot_function_type.set_attributes":"Set attributes","loot_function_type.set_banner_pattern":"Set banner pattern","loot_function_type.set_contents":"Set contents","loot_function_type.set_count":"Set count","loot_function_type.set_damage":"Set damage","loot_function_type.set_data":"Set data","loot_function_type.set_enchantments":"Set enchantments","loot_function_type.set_instrument":"Set instrument","loot_function_type.set_loot_table":"Set loot table","loot_function_type.set_lore":"Set lore","loot_function_type.set_name":"Set name","loot_function_type.set_nbt":"Set NBT","loot_function_type.set_potion":"Set potion","loot_function_type.set_stew_effect":"Set stew effect","loot_pool.bonus_rolls":"Bonus rolls","loot_pool.entries":"Entries","loot_pool.entries.entry":"Entry","loot_pool.rolls":"Rolls","loot_pool.rolls.help":"The amount of entries that are randomly chosen.","loot_pool_entry_type.alternatives":"Alternatives","loot_pool_entry_type.alternatives.help":"Tests conditions of the child entries and executes the first that can run.","loot_pool_entry_type.dynamic":"Dynamic","loot_pool_entry_type.dynamic.help":"Gets block specific drops.","loot_pool_entry_type.empty":"Empty","loot_pool_entry_type.empty.help":"Adds nothing to the pool.","loot_pool_entry_type.group":"Group","loot_pool_entry_type.group.help":"Executes all child entries when own conditions pass.","loot_pool_entry_type.item":"Item","loot_pool_entry_type.item.help":"Adds a single item.","loot_pool_entry_type.loot_table":"Loot table","loot_pool_entry_type.loot_table.help":"Adds the contents of another loot table.","loot_pool_entry_type.sequence":"Sequence","loot_pool_entry_type.sequence.help":"Executes child entries until the first one that can't run due to conditions.","loot_pool_entry_type.tag":"Item tag","loot_pool_entry_type.tag.help":"Adds the contents of an item tag.","loot_table.pools":"Pools","loot_table.pools.entry":"Pool","loot_table.type":"Type","luck_based":"Luck-based","material_condition.biome.biome_is":"Biome","material_condition.noise_threshold.noise":"Noise","material_condition.noise_threshold.min_threshold":"Min threshold","material_condition.noise_threshold.max_threshold":"Max threshold","material_condition.not.invert":"Invert","material_condition.stone_depth.offset":"Offset","material_condition.stone_depth.surface_type":"Surface","material_condition.stone_depth.add_surface_depth":"Add surface depth","material_condition.stone_depth.add_surface_secondary_depth":"Add surface secondary depth","material_condition.stone_depth.secondary_depth_range":"Secondary depth range","material_condition.vertical_gradient.random_name":"Random name","material_condition.vertical_gradient.true_at_and_below":"True at and below","material_condition.vertical_gradient.false_at_and_above":"False at and above","material_condition.water.offset":"Offset","material_condition.water.surface_depth_multiplier":"Surface depth multiplier","material_condition.water.add_stone_depth":"Add stone depth","material_condition.y_above.anchor":"Anchor","material_condition.y_above.surface_depth_multiplier":"Surface depth multiplier","material_condition.y_above.add_stone_depth":"Add stone depth","material_rule.condition.if_true":"If true","material_rule.condition.then_run":"Then run","material_rule.block.result_state":"Result state","material_rule.sequence.sequence":"Sequence","material_rule.sequence.sequence.entry":"Rule","mob_category.monster":"Monster","mob_category.creature":"Creature","mob_category.ambient":"Ambient","mob_category.axolotls":"Axolotls","mob_category.underground_water_creature":"Underground water creature","mob_category.water_creature":"Water creature","mob_category.water_ambient":"Water ambient","mob_category.misc":"Misc","model.parent":"Parent","model.ambientocclusion":"Ambient occlusion","model.gui_light":"GUI light","model.textures":"Textures","model.elements":"Elements","model.elements.entry":"Element","model_element.from":"From","model_element.to":"To","model_element.rotation":"Rotation","model_element.rotation.origin":"Origin","model_element.rotation.axis":"Axis","model_element.rotation.angle":"Angle","model_element.rotation.rescale":"Rescale","model_element.shade":"Shade","model_element.faces":"Faces","model_element.faces.texture":"Texture","model_element.faces.uv":"UV","model_element.faces.cullface":"Cullface","model_element.faces.rotation":"Rotation","model_element.faces.tintindex":"Tint index","model.display":"Display","model.overrides":"Overrides","model.overrides.entry":"Override","model_override.predicate":"Predicate","model_override.model":"Model","model_variant.object":"Single","model_variant.list":"Multiple","model_variant.model":"Model","model_variant.x":"X rotation","model_variant.y":"Y rotation","model_variant.uvlock":"UV lock","model_variant.weight":"Weight","multipart_condition.OR":"Or","multipart_condition.object":"Condition","multipart_condition.or":"Or","multipart_condition.OR.entry":"Condition","nbt_operation.op":"Operation","nbt_operation.op.append":"Append","nbt_operation.op.merge":"Merge","nbt_operation.op.replace":"Replace","nbt_operation.source":"Source","nbt_operation.target":"Target","nbt_provider.source":"Source","nbt_provider.target":"Target","nbt_provider.type":"Type","nbt_provider.type.context":"Context+","nbt_provider.type.storage":"Storage","nbt_provider.type.string":"Context","noise_parameters.string":"Reference","noise_parameters.object":"Inline","noise_parameters.amplitudes":"Amplitudes","noise_parameters.amplitudes.entry":"Octave %0%","noise_parameters.firstOctave":"First octave","noise_settings.aquifers_enabled":"Aquifers enabled","noise_settings.bedrock_floor_position":"Bedrock floor position","noise_settings.bedrock_floor_position.help":"Position of the bedrock floor. Higher numbers move the floor up.","noise_settings.bedrock_roof_position":"Bedrock roof position","noise_settings.bedrock_roof_position.help":"Relative position of the bedrock roof starting at the world height. Higher numbers move the roof down.","noise_settings.biome":"Biome","noise_settings.deepslate_enabled":"Deepslate enabled","noise_settings.default_block":"Default block","noise_settings.default_fluid":"Default fluid","noise_settings.disable_mob_generation":"Disable mob generation","noise_settings.disable_mob_generation.help":"If true, mobs will not spawn during generation.","noise_settings.legacy_random_source":"Legacy random source","noise_settings.min_surface_level":"Min surface level","noise_settings.name":"Name","noise_settings.noise":"Noise options","noise_settings.noise_caves_enabled":"Noise caves enabled","noise_settings.noise.amplified":"Amplified","noise_settings.noise.bottom_slide":"Bottom slide","noise_settings.noise.bottom_slide.help":"Adds or removes terrain at the bottom of the world. Does nothing when size is 0.","noise_settings.noise.bottom_slide.offset":"Offset","noise_settings.noise.bottom_slide.offset.help":"Defines an range of 'Offset * Size vertical * 4' blocks at the bottom of the world where the density is set to the target.","noise_settings.noise.bottom_slide.size":"Size","noise_settings.noise.bottom_slide.size.help":"Defines a range of 'Size * Size vertical * 4' blocks where the existing density and target are interpolated.","noise_settings.noise.bottom_slide.target":"Target","noise_settings.noise.bottom_slide.target.help":"The target density. Positive values add terrain and negative values remove terrain.","noise_settings.noise.density_factor":"Density factor","noise_settings.noise.density_factor.help":"Determines how much the height influences the terrain. Positive values produce land at the bottom. Values close to 0 produce uniform cave-like terrain.","noise_settings.noise.density_offset":"Density offset","noise_settings.noise.density_offset.help":"Affects the average terrain height. A value of 0 produces terrain land height at half the height. Positive values raise the height.","noise_settings.noise.height":"Height","noise_settings.noise.height.help":"The total height where blocks can generate. Max Y = Min Y + Height.","noise_settings.noise.island_noise_override":"Island noise override","noise_settings.noise.island_noise_override.help":"If true, terrain will be shaped like islands similar to the end.","noise_settings.noise.large_biomes":"Large biomes","noise_settings.noise.min_y":"Min Y","noise_settings.noise.min_y.help":"The minimum height where blocks start generating.","noise_settings.noise.random_density_offset":"Random density offset","noise_settings.noise.sampling":"Sampling","noise_settings.noise.sampling.xz_factor":"XZ factor","noise_settings.noise.sampling.xz_scale":"XZ scale","noise_settings.noise.sampling.y_factor":"Y factor","noise_settings.noise.sampling.y_scale":"Y scale","noise_settings.noise.simplex_surface_noise":"Simplex surface noise","noise_settings.noise.size_horizontal":"Size horizontal","noise_settings.noise.size_vertical":"Size vertical","noise_settings.noise.top_slide":"Top slide","noise_settings.noise.top_slide.help":"Adds or removes terrain at the top of the world. Does nothing when size is 0.","noise_settings.noise.top_slide.offset":"Offset","noise_settings.noise.top_slide.offset.help":"Defines an range of 'Offset * Size Vertical * 4' blocks at the top of the world where the density is set to the target.","noise_settings.noise.top_slide.size":"Size","noise_settings.noise.top_slide.size.help":"Defines a range of 'Size * Size Vertical * 4' blocks where the existing density and target are interpolated.","noise_settings.noise.top_slide.target":"Target","noise_settings.noise.top_slide.target.help":"The target density. Positive values add terrain and negative values remove terrain.","noise_settings.noise.terrain_shaper":"Terrain shaper","noise_settings.noodle_caves_enabled":"Noodle caves enabled","noise_settings.ore_veins_enabled":"Ore veins enabled","noise_settings.sea_level":"Sea level","noise_settings.spawn_target":"Spawn Target","noise_settings.spawn_target.entry.temperature":"Temperature","noise_settings.spawn_target.entry.humidity":"Humidity","noise_settings.spawn_target.entry.continentalness":"Continentalness","noise_settings.spawn_target.entry.erosion":"Erosion","noise_settings.spawn_target.entry.weirdness":"Weirdness","noise_settings.spawn_target.entry.depth":"Depth","noise_settings.spawn_target.entry.offset":"Offset","noise_settings.structures":"Structures","noise_settings.structures.stronghold":"Stronghold","noise_settings.structures.stronghold.count":"Count","noise_settings.structures.stronghold.distance":"Distance","noise_settings.structures.stronghold.spread":"Spread","noise_settings.structures.structures":"Structures","noise_settings.surface_rule":"Surface rule","noise_settings.noise_router":"Noise router","noise_settings.noise_router.barrier":"Barrier","noise_settings.noise_router.fluid_level_floodedness":"Fluid level floodedness","noise_settings.noise_router.fluid_level_spread":"Fluid level spread","noise_settings.noise_router.lava":"Lava","noise_settings.noise_router.temperature":"Temperature","noise_settings.noise_router.vegetation":"Vegetation","noise_settings.noise_router.continents":"Continents","noise_settings.noise_router.erosion":"Erosion","noise_settings.noise_router.depth":"Depth","noise_settings.noise_router.ridges":"Ridges","noise_settings.noise_router.initial_density_without_jaggedness":"Initial density without jaggedness","noise_settings.noise_router.final_density":"Final density","noise_settings.noise_router.vein_toggle":"Vein toggle","noise_settings.noise_router.vein_ridged":"Vein ridged","noise_settings.noise_router.vein_gap":"Vein gap","number_provider.max":"Max","number_provider.min":"Min","number_provider.n":"N","number_provider.p":"P","number_provider.scale":"Scale","number_provider.score":"Objective","number_provider.target":"Target","number_provider.type":"Type","number_provider.type.binomial":"Binomial","number_provider.type.constant":"Constant+","number_provider.type.number":"Constant","number_provider.type.object":"Uniform","number_provider.type.score":"Score","number_provider.type.uniform":"Uniform+","number_provider.value":"Number","placed_feature.string":"Reference","placed_feature.object":"Inline","placed_feature.feature":"Configured feature","placed_feature.placement":"Placement","placed_feature.placement.entry":"Modifier","player.advancements":"Advancements","player.advancements.entry":"Advancement","player.gamemode":"Game mode","player.level":"XP level","player.recipes":"Recipes","player.stats":"Statistics","player.stats.entry":"Statistic","player.stats.looking_at":"Looking at","pos_rule_test.always_true":"Always true","pos_rule_test.axis":"Axis","pos_rule_test.axis.x":"X","pos_rule_test.axis.y":"Y","pos_rule_test.axis.z":"Z","pos_rule_test.axis_aligned_linear_pos":"Axis aligned linear pos","pos_rule_test.linear_pos":"Linear pos","pos_rule_test.max_chance":"Max chance","pos_rule_test.max_dist":"Max dist","pos_rule_test.min_chance":"Min chance","pos_rule_test.min_dist":"Min dist","pos_rule_test.predicate_type":"Type","processor.block_age.mossiness":"Mossiness","processor.block_ignore.blocks":"Blocks","processor.block_ignore.blocks.entry":"State","processor.block_rot.integrity":"Integrity","processor.block_rot.rottable_blocks":"Rottable blocks","processor.gravity.heightmap":"Heightmap","processor.gravity.offset":"Offset","processor.processor_type":"Type","processor.rule.rules":"Rules","processor.rule.rules.entry":"Rule","processor_list.processors":"Processors","processor_list.processors.entry":"Processor","processor_rule.input_predicate":"Input predicate","processor_rule.location_predicate":"Location predicate","processor_rule.output_nbt":"Output NBT","processor_rule.output_state":"Output state","processor_rule.position_predicate":"Position predicate","processors.object":"Inline","processors.string":"Reference","range.binomial":"Binomial","range.max":"Max","range.min":"Min","range.n":"N","range.number":"Exact","range.object":"Range","range.p":"P","range.type":"Type","range.uniform":"Uniform","recipe.type":"Type","recipe.group":"Group","recipe.group.help":"Identifier to group multiple recipes in the recipe book.","recipe.ingredients":"Ingredients","recipe.ingredient":"Ingredient","recipe.ingredient.item":"Item","recipe.ingredient.tag":"Item tag","recipe.pattern":"Pattern","recipe.pattern.entry":"Row","recipe.key":"Key","recipe.key.item":"Item","recipe.key.tag":"Item tag","recipe.result":"Result","recipe.result.item":"Item","recipe.result.count":"Count","recipe.experience":"Experience","recipe.cookingtime":"Cooking time","recipe.count":"Count","recipe.base":"Base","recipe.base.item":"Item","recipe.base.tag":"Item tag","recipe.addition":"Addition","recipe.addition.item":"Item","recipe.addition.tag":"Item tag","advancement.requirements":"Requirements","root_placer.root_provider":"Root provider","root_placer.trunk_offset_y":"Trunk offset Y","root_placer.above_root_placement":"Above root placement","root_placer.above_root_placement.above_root_placement_chance":"Chance","root_placer.above_root_placement.above_root_provider":"Above root provider","root_placer.mangrove_root_placer.mangrove_root_placement":"Mangrove root placement","root_placer.mangrove_root_placer.mangrove_root_placement.can_grow_through":"Can grow through","root_placer.mangrove_root_placer.mangrove_root_placement.muddy_roots_in":"Muddy roots in","root_placer.mangrove_root_placer.mangrove_root_placement.muddy_roots_provider":"Muddy roots provider","root_placer.mangrove_root_placer.mangrove_root_placement.max_root_width":"Max root width","root_placer.mangrove_root_placer.mangrove_root_placement.max_root_length":"Max root length","root_placer.mangrove_root_placer.mangrove_root_placement.random_skew_chance":"Random skew chance","rule_test.always_true":"Always true","rule_test.block":"Block","rule_test.block_match":"Block match","rule_test.block_state":"State","rule_test.blockstate_match":"Block state match","rule_test.predicate_type":"Type","rule_test.probability":"Probability","rule_test.random_block_match":"Random block match","rule_test.random_blockstate_match":"Random block state match","rule_test.tag":"Tag","rule_test.tag_match":"Tag match","score_provider.name":"Name","score_provider.target":"Target","score_provider.type":"Type","score_provider.type.context":"Context+","score_provider.type.fixed":"Fixed","score_provider.type.string":"Context","slot.chest":"Chest","slot.feet":"Feet","slot.head":"Head","slot.legs":"Legs","slot.mainhand":"Mainhand","slot.offhand":"Offhand","statistic.stat":"Statistic","statistic.type":"Type","statistic.type.broken":"Broken","statistic.type.crafted":"Crafted","statistic.type.custom":"Custom","statistic.type.dropped":"Dropped","statistic.type.killed":"Killed","statistic.type.killedByTeam":"Killed by team","statistic.type.killed_by":"Killed by","statistic.type.mined":"Mined","statistic.type.picked_up":"Picked up","statistic.type.teamkill":"Killed team","statistic.type.used":"Used","statistic.value":"Value","status_effect.ambient":"Ambient","status_effect.amplifier":"Amplifier","status_effect.duration":"Duration","status_effect.visible":"Visible","structure_feature.biome_temp":"Biome temperature","structure_feature.biome_temp.cold":"Cold","structure_feature.biome_temp.warm":"Warm","structure_feature.cluster_probability":"Cluster probability","structure_feature.config":"Config","structure_feature.is_beached":"Is beached","structure_feature.shipwreck.is_beached":"Is beached","structure_feature.large_probability":"Large probability","structure_feature.portal_type":"Portal type","structure_feature.portal_type.desert":"Desert","structure_feature.portal_type.jungle":"Jungle","structure_feature.portal_type.mountain":"Mountain","structure_feature.portal_type.nether":"Nether","structure_feature.portal_type.ocean":"Ocean","structure_feature.portal_type.standard":"Standard","structure_feature.portal_type.swamp":"Swamp","structure_feature.probability":"Probability","structure_feature.size":"Size","structure_feature.start_pool":"Start pool","structure_feature.type":"Type","structure_feature.type.mesa":"Mesa","structure_feature.type.normal":"Normal","structure_feature.biomes":"Biomes","structure_feature.biomes.entry":"Biome","structure_feature.adapt_noise":"Adapt noise","structure_feature.adapt_noise.help":"Whether it should add extra terrain below the structure.","structure_feature.terrain_adaptation":"Terrain adaptation","structure_feature.spawn_overrides":"Spawn overrides","structure_feature.spawn_overrides.bounding_box":"Bounding box","structure_feature.spawn_overrides.bounding_box.piece":"Piece","structure_feature.spawn_overrides.bounding_box.full":"Full","structure_feature.spawn_overrides.spawns":"Spawns","structure_feature.spawn_overrides.spawns.entry":"Spawn","structure_feature.spawn_overrides.spawns.entry.type":"Type","structure_feature.spawn_overrides.spawns.entry.weight":"Weight","structure_feature.spawn_overrides.spawns.entry.minCount":"Min count","structure_feature.spawn_overrides.spawns.entry.maxCount":"Max count","structure_feature.ruined_portal.setups":"Setups","structure_feature.ruined_portal.setups.entry":"Setup","structure_feature.ruined_portal.setups.entry.placement":"Placement","structure_feature.ruined_portal.setups.entry.air_pocket_probability":"Air pocket probability","structure_feature.ruined_portal.setups.entry.mossiness":"Mossiness","structure_feature.ruined_portal.setups.entry.overgrown":"Overgrown","structure_feature.ruined_portal.setups.entry.vines":"Vines","structure_feature.ruined_portal.setups.entry.can_be_cold":"Can be cold","structure_feature.ruined_portal.setups.entry.replace_with_blackstone":"Replace with blackstone","structure_feature.ruined_portal.setups.entry.weight":"Weight","structure_feature.jigsaw.start_pool":"Start pool","structure_feature.jigsaw.size":"Size","structure_feature.jigsaw.start_height":"Start height","structure_feature.jigsaw.start_jigsaw_name":"Start jigsaw name","structure_feature.jigsaw.project_start_to_heightmap":"Project start to heightmap","structure_feature.jigsaw.max_distance_from_center":"Max distance from center","structure_feature.jigsaw.use_expansion_hack":"Use expansion hack","structure_feature.mineshaft.mineshaft_type":"Mineshaft type","structure_feature.nether_fossil.height":"Height","structure_feature.step":"Generation step","structure_placement.type":"Type","structure_placement.salt":"Salt","structure_placement.locate_offset":"Locate offset","structure_placement.exclusion_zone":"Exclusion zone","structure_placement.exclusion_zone.other_set":"Other set","structure_placement.exclusion_zone.chunk_count":"Chunk count","structure_placement.frequency":"Frequency","structure_placement.frequency_reduction_method":"Frequency reduction method","structure_placement.frequency_reduction_method.default":"Default","structure_placement.frequency_reduction_method.legacy_type_1":"Legacy 1","structure_placement.frequency_reduction_method.legacy_type_2":"Legacy 2","structure_placement.frequency_reduction_method.legacy_type_3":"Legacy 3","structure_placement.concentric_rings.distance":"Distance","structure_placement.concentric_rings.spread":"Spread","structure_placement.concentric_rings.count":"Count","structure_placement.concentric_rings.preferred_biomes":"Preferred biomes","structure_placement.random_spread.spread_type":"Spread type","structure_placement.random_spread.spread_type.linear":"Linear","structure_placement.random_spread.spread_type.triangular":"Triangular","structure_placement.random_spread.spacing":"Spacing","structure_placement.random_spread.spacing.help":"The average distance in chunks between two structures of this type.","structure_placement.random_spread.separation":"Separation","structure_placement.random_spread.separation.help":"The minumum distance in chunks between two structures of this type.","structure_placement.random_spread.salt":"Salt","structure_placement.random_spread.locate_offset":"Locate offset","structure_set.string":"Reference","structure_set.object":"Inline","structure_set.structures":"Structures","structure_set.structures.entry":"Structure","structure_set.structures.entry.structure":"Structure feature","structure_set.structures.entry.weight":"Weight","structure_set.placement":"Placement","surface_builder.config":"Config","surface_builder.top_material":"Top material","surface_builder.type":"Type","surface_builder.under_material":"Under material","surface_builder.underwater_material":"Underwater material","table.type":"Type","table.type.block":"Block","table.type.chest":"Chest","table.type.empty":"Empty","table.type.entity":"Entity","table.type.fishing":"Fishing","table.type.generic":"Generic","tag.string":"Single","tag.list":"Multiple","tag.list.string":"Reference","tag.list.object":"Inline","tag.replace":"Replace","tag.values":"Values","terrain_shaper.offset":"Offset","terrain_shaper.factor":"Factor","terrain_shaper.jaggedness":"Jaggedness","terrain_spline.number":"Constant","terrain_spline.object":"Spline","terrain_spline.coordinate":"Coordinate","terrain_spline.coordinate.continents":"Continents","terrain_spline.coordinate.erosion":"Erosion","terrain_spline.coordinate.weirdness":"Weirdness","terrain_spline.coordinate.ridges":"Ridges","terrain_spline.points":"Points","terrain_spline.points.entry":"Point","terrain_spline.points.entry.location":"Location","terrain_spline.points.entry.value":"Value","terrain_spline.points.entry.derivative":"Derivative","template_element.element_type":"Type","template_element.elements":"Elements","template_element.feature":"Placed feature","template_element.location":"Location","template_element.processors":"Processors","template_element.projection":"Projection","template_element.projection.rigid":"Rigid","template_element.projection.terrain_matching":"Terrain matching","template_pool.elements":"Elements","template_pool.elements.entry":"Element","template_pool.elements.entry.element":"Element","template_pool.elements.entry.weight":"Weight","template_pool.fallback":"Fallback","template_pool.name":"Name","text_component":"Text component","text_component.boolean":"Boolean","text_component.list":"Array","text_component.number":"Number","text_component.object":"Object","text_component.object.text":"Plain text","text_component.object.translation":"Translated text","text_component.object.score":"Score value","text_component.object.selector":"Entity name","text_component.object.keybind":"Keybind","text_component.object.nbt":"NBT value","text_component.string":"String","text_component_object.block":"Block","text_component_object.bold":"Bold","text_component_object.clickEvent":"Click event","text_component_object.clickEvent.action":"Action","text_component_object.clickEvent.action.change_page":"Change page","text_component_object.clickEvent.action.copy_to_clipboard":"Copy to clipboard","text_component_object.clickEvent.action.open_file":"Open file","text_component_object.clickEvent.action.open_url":"Open url","text_component_object.clickEvent.action.run_command":"Run command","text_component_object.clickEvent.action.suggest_command":"Suggest command","text_component_object.clickEvent.value":"Value","text_component_object.color":"Color","text_component_object.entity":"Entity","text_component_object.extra":"Extra","text_component_object.font":"Font","text_component_object.hoverEvent":"Hover event","text_component_object.hoverEvent.action":"Action","text_component_object.hoverEvent.action.show_entity":"Show entity","text_component_object.hoverEvent.action.show_item":"Show item","text_component_object.hoverEvent.action.show_text":"Show text","text_component_object.hoverEvent.contents":"Contents","text_component_object.hoverEvent.value":"Value","text_component_object.insertion":"Insertion","text_component_object.interpret":"Interpret","text_component_object.italic":"Italic","text_component_object.keybind":"Keybind","text_component_object.nbt":"NBT","text_component_object.obfuscated":"Obfuscated","text_component_object.score":"Score","text_component_object.score.name":"Name","text_component_object.score.objective":"Objective","text_component_object.score.value":"Value","text_component_object.selector":"Selector","text_component_object.storage":"Storage","text_component_object.strikethrough":"Strikethrough","text_component_object.text":"Text","text_component_object.translate":"Translate","text_component_object.underlined":"Underlined","text_component_object.with":"With","text_decoration.translation_key":"Translation key","text_decoration.parameters":"Parameters","text_decoration.style":"Style","texture.alias":"Alias","texture.reference":"Reference","tree_decorator.attached_to_leaves.probability":"Probability","tree_decorator.attached_to_leaves.exclusion_radius_xz":"Exclusion radius XZ","tree_decorator.attached_to_leaves.exclusion_radius_y":"Exclusion radius Y","tree_decorator.attached_to_leaves.required_empty_blocks":"Probability","tree_decorator.attached_to_leaves.block_provider":"Block provider","tree_decorator.attached_to_leaves.directions":"Directions","tree_decorator.attached_to_leaves.directions.entry":"Direction","tree_decorator.alter_ground.provider":"Block provider","tree_decorator.beehive.probability":"Probability","tree_decorator.cocoa.probability":"Probability","tree_decorator.leave_vine.probability":"Probability","tree_decorator.type":"Type","true":"True","trunk_placer.base_height":"Base height","trunk_placer.height_rand_a":"Height random A","trunk_placer.height_rand_b":"Height random B","trunk_placer.bending_trunk_placer.bend_length":"Bend length","trunk_placer.bending_trunk_placer.min_height_for_leaves":"Min height for leaves","trunk_placer.upwards_branching_trunk_placer.can_grow_through":"Can grow through","trunk_placer.upwards_branching_trunk_placer.extra_branch_steps":"Extra branch steps","trunk_placer.upwards_branching_trunk_placer.extra_branch_length":"Extra branch length","trunk_placer.upwards_branching_trunk_placer.place_branch_per_log_probability":"Place branch per log probability","trunk_placer.type":"Type","uniform_int.base":"Base","uniform_int.number":"Constant","uniform_int.object":"Uniform","uniform_int.spread":"Spread","unset":"Unset","update.pack_format":"Update the pack_format to %0%","vertical_anchor.absolute":"Absolute","vertical_anchor.above_bottom":"Above bottom","vertical_anchor.below_top":"Below top","world.bonus_chest":"Spawn bonus chest","world.generate_features":"Generate features","world.seed":"Seed","world_preset.dimensions":"Dimensions","world_settings.bonus_chest":"Spawn bonus chest","world_settings.dimensions":"Dimensions","world_settings.generate_features":"Generate features","world_settings.seed":"World seed","worldgen.warning":"This feature is highly experimental and unstable. It can change in future versions. Expect the game to crash when creating worlds.","worldgen/biome_source.checkerboard":"Checkerboard","worldgen/biome_source.checkerboard.help":"Biomes generate in a checkerboard chunk pattern.","worldgen/biome_source.fixed":"Fixed","worldgen/biome_source.fixed.help":"One biome for the whole world.","worldgen/biome_source.multi_noise":"Multi noise","worldgen/biome_source.multi_noise.help":"Custom biome distribution with configurable parameters.","worldgen/biome_source.the_end":"The end","worldgen/biome_source.the_end.help":"Biome distribution for the End.","worldgen/biome_source.vanilla_layered":"Vanilla layered","worldgen/biome_source.vanilla_layered.help":"Biome distribution for the Overworld.","worldgen/block_placer_type.column_placer":"Column","worldgen/block_placer_type.double_plant_placer":"Double plant","worldgen/block_placer_type.simple_block_placer":"Simple","worldgen/block_state_provider_type.dual_noise_provider":"Dual noise provider","worldgen/block_state_provider_type.forest_flower_provider":"Flower forest","worldgen/block_state_provider_type.noise_threshold_provider":"Noise threshold provider","worldgen/block_state_provider_type.noise_provider":"Noise provider","worldgen/block_state_provider_type.plain_flower_provider":"Plain flower","worldgen/block_state_provider_type.randomized_int_state_provider":"Randomized int","worldgen/block_state_provider_type.rotated_block_provider":"Rotated block","worldgen/block_state_provider_type.simple_state_provider":"Simple state","worldgen/block_state_provider_type.weighted_state_provider":"Weighted state","worldgen/carver.canyon":"Canyon","worldgen/carver.cave":"Cave","worldgen/carver.nether_cave":"Nether cave","worldgen/carver.underwater_canyon":"Underwater canyon","worldgen/carver.underwater_cave":"Underwater cave","worldgen/chunk_generator.debug":"Debug world","worldgen/chunk_generator.flat":"Superflat","worldgen/chunk_generator.noise":"Default","worldgen/decorator.carving_mask":"Carving mask","worldgen/decorator.cave_surface":"Cave surface","worldgen/decorator.chance":"Chance","worldgen/decorator.count":"Count","worldgen/decorator.count_extra":"Count extra","worldgen/decorator.count_multilayer":"Count multilayer","worldgen/decorator.count_noise":"Count noise","worldgen/decorator.count_noise_biased":"Count noise biased","worldgen/decorator.dark_oak_tree":"Dark oak tree","worldgen/decorator.decorated":"Decorated","worldgen/decorator.end_gateway":"End gateway","worldgen/decorator.heightmap":"Heightmap","worldgen/decorator.heightmap_spread_double":"Heightmap spread double","worldgen/decorator.iceberg":"Iceberg","worldgen/decorator.lava_lake":"Lava lake","worldgen/decorator.nope":"Nothing","worldgen/decorator.range":"Range","worldgen/decorator.spread_32_above":"Spread 32 above","worldgen/decorator.square":"Square","worldgen/decorator.water_depth_threshold":"Water depth threshold","worldgen/density_function_type.abs":"Abs","worldgen/density_function_type.add":"Add","worldgen/density_function_type.beardifier":"Beardifier","worldgen/density_function_type.blend_alpha":"Blend alpha","worldgen/density_function_type.blend_density":"Blend density","worldgen/density_function_type.blend_offset":"Blend offset","worldgen/density_function_type.cache_2d":"Cache 2D","worldgen/density_function_type.cache_all_in_cell":"Cache all in cell","worldgen/density_function_type.cache_once":"Cache once","worldgen/density_function_type.clamp":"Clamp","worldgen/density_function_type.constant":"Constant","worldgen/density_function_type.cube":"Cube","worldgen/density_function_type.end_islands":"End islands","worldgen/density_function_type.flat_cache":"Flat cache","worldgen/density_function_type.half_negative":"Half negative","worldgen/density_function_type.interpolated":"Interpolated","worldgen/density_function_type.max":"Max","worldgen/density_function_type.min":"Min","worldgen/density_function_type.mul":"Mul","worldgen/density_function_type.noise":"Noise","worldgen/density_function_type.old_blended_noise":"Old blended noise","worldgen/density_function_type.quarter_negative":"Quarter negative","worldgen/density_function_type.range_choice":"Range Choice","worldgen/density_function_type.shift":"Shift","worldgen/density_function_type.shift_a":"Shift A","worldgen/density_function_type.shift_b":"Shift B","worldgen/density_function_type.shifted_noise":"Shifted noise","worldgen/density_function_type.slide":"Slide","worldgen/density_function_type.spline":"Spline","worldgen/density_function_type.square":"Square","worldgen/density_function_type.squeeze":"Squeeze","worldgen/density_function_type.terrain_shaper_spline":"Terrain shaper spline","worldgen/density_function_type.weird_scaled_sampler":"Weird scaled sampler","worldgen/density_function_type.y_clamped_gradient":"Y clamped gradient","worldgen/feature.bamboo":"Bamboo","worldgen/feature.basalt_columns":"Basalt columns","worldgen/feature.basalt_pillar":"Basalt pillar","worldgen/feature.block_column":"Block column","worldgen/feature.block_pile":"Block pile","worldgen/feature.blue_ice":"Blue ice","worldgen/feature.bonus_chest":"Bonus chest","worldgen/feature.chorus_plant":"Chorus plant","worldgen/feature.coral_claw":"Coral claw","worldgen/feature.coral_mushroom":"Coral mushroom","worldgen/feature.coral_tree":"Coral tree","worldgen/feature.decorated":"Decorated","worldgen/feature.delta_feature":"Delta feature","worldgen/feature.desert_well":"Desert well","worldgen/feature.disk":"Disk","worldgen/feature.dripstone_cluster":"Dripstone cluster","worldgen/feature.end_gateway":"End gateway","worldgen/feature.end_island":"End island","worldgen/feature.end_spike":"End spike","worldgen/feature.fill_layer":"Fill layer","worldgen/feature.flower":"Flower","worldgen/feature.forest_rock":"Forest rock","worldgen/feature.fossil":"Fossil","worldgen/feature.freeze_top_layer":"Freeze top layer","worldgen/feature.geode":"Geode","worldgen/feature.glow_lichen":"Glow lichen","worldgen/feature.glowstone_blob":"Glowstone blob","worldgen/feature.growing_plant":"Growing plant","worldgen/feature.huge_brown_mushroom":"Huge brown mushroom","worldgen/feature.huge_fungus":"Huge fungus","worldgen/feature.huge_red_mushroom":"Huge red mushroom","worldgen/feature.ice_patch":"Ice patch","worldgen/feature.ice_spike":"Ice spike","worldgen/feature.iceberg":"Iceberg","worldgen/feature.kelp":"Kelp","worldgen/feature.lake":"Lake","worldgen/feature.large_dripstone":"Large dripstone","worldgen/feature.monster_room":"Monster room","worldgen/feature.multiface_growth":"Multiface growth","worldgen/feature.nether_forest_vegetation":"Nether forest vegetation","worldgen/feature.netherrack_replace_blobs":"Netherrack replace blobs","worldgen/feature.no_bonemeal_flower":"No bonemeal flower","worldgen/feature.no_op":"Nothing","worldgen/feature.ore":"Ore","worldgen/feature.pointed_dripstone":"Pointed dripstone","worldgen/feature.random_boolean_selector":"Random boolean selector","worldgen/feature.random_patch":"Random patch","worldgen/feature.random_selector":"Random selector","worldgen/feature.replace_single_block":"Replace single block","worldgen/feature.root_system":"Root system","worldgen/feature.scattered_ore":"Scattered ore","worldgen/feature.sculk_patch":"Sculk patch","worldgen/feature.sea_pickle":"Sea pickle","worldgen/feature.seagrass":"Seagrass","worldgen/feature.simple_block":"Simple block","worldgen/feature.simple_random_selector":"Simple random selector","worldgen/feature.small_dripstone":"Small dripstone","worldgen/feature.spring_feature":"Spring feature","worldgen/feature.tree":"Tree","worldgen/feature.twisting_vines":"Twisting vines","worldgen/feature.underwater_magma":"Underwater magma","worldgen/feature.vegetation_patch":"Vegetation patch","worldgen/feature.vines":"Vines","worldgen/feature.void_start_platform":"Void start platform","worldgen/feature.waterlogged_vegetation_patch":"Waterlogged vegetation patch","worldgen/feature.weeping_vines":"Weeping vines","worldgen/feature_size_type.three_layers_feature_size":"Three layers","worldgen/feature_size_type.two_layers_feature_size":"Two layers","worldgen/foliage_placer_type.acacia_foliage_placer":"Acacia","worldgen/foliage_placer_type.blob_foliage_placer":"Blob","worldgen/foliage_placer_type.bush_foliage_placer":"Bush","worldgen/foliage_placer_type.dark_oak_foliage_placer":"Dark oak","worldgen/foliage_placer_type.fancy_foliage_placer":"Fancy","worldgen/foliage_placer_type.jungle_foliage_placer":"Jungle","worldgen/foliage_placer_type.mega_pine_foliage_placer":"Mega pine","worldgen/foliage_placer_type.random_spread_foliage_placer":"Random spread","worldgen/foliage_placer_type.pine_foliage_placer":"Pine","worldgen/foliage_placer_type.spruce_foliage_placer":"Spruce","worldgen/material_condition.above_preliminary_surface":"Above preliminary surface","worldgen/material_condition.biome":"Biome","worldgen/material_condition.hole":"Hole","worldgen/material_condition.noise_threshold":"Noise threshold","worldgen/material_condition.not":"Not","worldgen/material_condition.steep":"Steep","worldgen/material_condition.stone_depth":"Stone depth","worldgen/material_condition.temperature":"Temperature","worldgen/material_condition.vertical_gradient":"Vertical gradient","worldgen/material_condition.water":"Water","worldgen/material_condition.y_above":"Y above","worldgen/material_rule.bandlands":"Bandlands","worldgen/material_rule.block":"Block","worldgen/material_rule.condition":"Condition","worldgen/material_rule.sequence":"Sequence","worldgen/placement_modifier_type.biome":"Biome","worldgen/placement_modifier_type.block_predicate_filter":"Block predicate filter","worldgen/placement_modifier_type.carving_mask":"Carving mask","worldgen/placement_modifier_type.count":"Count","worldgen/placement_modifier_type.count_on_every_layer":"Count on every layer","worldgen/placement_modifier_type.environment_scan":"Environment scan","worldgen/placement_modifier_type.height_range":"Height range","worldgen/placement_modifier_type.heightmap":"Heightmap","worldgen/placement_modifier_type.in_square":"In square","worldgen/placement_modifier_type.noise_based_count":"Noise based count","worldgen/placement_modifier_type.noise_threshold_count":"Noise threshold count","worldgen/placement_modifier_type.random_offset":"Random offset","worldgen/placement_modifier_type.rarity_filter":"Rarity filter","worldgen/placement_modifier_type.surface_relative_threshold_filter":"Surface relative threshold filter","worldgen/placement_modifier_type.surface_water_depth_filter":"Surface water depth filter","worldgen/root_placer_type.mangrove_root_placer":"Mangrove","worldgen/structure_placement.concentric_rings":"Concentric rings","worldgen/structure_placement.random_spread":"Random spread","worldgen/structure_pool_element.empty_pool_element":"Empty","worldgen/structure_pool_element.feature_pool_element":"Feature","worldgen/structure_pool_element.legacy_single_pool_element":"Legacy single","worldgen/structure_pool_element.list_pool_element":"List","worldgen/structure_pool_element.single_pool_element":"Single","worldgen/structure_processor.blackstone_replace":"Blackstone replace","worldgen/structure_processor.block_age":"Block age","worldgen/structure_processor.block_ignore":"Block ignore","worldgen/structure_processor.block_rot":"Block rot","worldgen/structure_processor.gravity":"Gravity","worldgen/structure_processor.jigsaw_replacement":"Jigsaw replacement","worldgen/structure_processor.lava_submerged_block":"Lava submerged block","worldgen/structure_processor.nop":"Nothing","worldgen/structure_processor.rule":"Rule","worldgen/tree_decorator_type.alter_ground":"Alter ground","worldgen/tree_decorator_type.attached_to_leaves":"Attached to leaves","worldgen/tree_decorator_type.beehive":"Beehive","worldgen/tree_decorator_type.cocoa":"Cocoa","worldgen/tree_decorator_type.leave_vine":"Leave vine","worldgen/tree_decorator_type.trunk_vine":"Trunk vine","worldgen/trunk_placer_type.bending_trunk_placer":"Bending","worldgen/trunk_placer_type.dark_oak_trunk_placer":"Dark oak","worldgen/trunk_placer_type.fancy_trunk_placer":"Fancy","worldgen/trunk_placer_type.forking_trunk_placer":"Forking","worldgen/trunk_placer_type.giant_trunk_placer":"Giant","worldgen/trunk_placer_type.mega_jungle_trunk_placer":"Mega jungle","worldgen/trunk_placer_type.straight_trunk_placer":"Straight","worldgen/trunk_placer_type.upwards_branching_trunk_placer":"Upwards branching"}`);export{e as default}; -//# sourceMappingURL=en.4ab98cb7.js.map diff --git a/assets/en.4ab98cb7.js.map b/assets/en.4ab98cb7.js.map deleted file mode 100644 index b5136c67..00000000 --- a/assets/en.4ab98cb7.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"en.4ab98cb7.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/assets/en.bbf62323.js b/assets/en.bbf62323.js new file mode 100644 index 00000000..043d49b8 --- /dev/null +++ b/assets/en.bbf62323.js @@ -0,0 +1,2 @@ +var e=JSON.parse(`{"advancement.criteria":"Criteria","advancement.display":"Display","advancement.display.announce_to_chat":"Announce to chat","advancement.display.background":"Background","advancement.display.description":"Description","advancement.display.frame":"Frame","advancement.display.frame.challenge":"Challenge","advancement.display.frame.goal":"Goal","advancement.display.frame.task":"Task","advancement.display.help":"If present, advancement will be visible in the advancement tabs.","advancement.display.hidden":"Hidden","advancement.display.icon":"Icon","advancement.display.icon.item":"Icon item","advancement.display.icon.nbt":"Icon NBT","advancement.display.show_toast":"Show toast","advancement.display.title":"Title","advancement.parent":"Parent advancement","advancement.rewards":"Rewards","advancement.rewards.experience":"Experience","advancement.rewards.function":"Function","advancement.rewards.loot":"Loot tables","advancement.rewards.recipes":"Recipes","advancement_trigger.bee_nest_destroyed":"Bee nest destroyed","advancement_trigger.bred_animals":"Bred animals","advancement_trigger.brewed_potion":"Brewed potion","advancement_trigger.changed_dimension":"Changed dimension","advancement_trigger.channeled_lightning":"Channeled lightning","advancement_trigger.construct_beacon":"Construct beacon","advancement_trigger.consume_item":"Consume item","advancement_trigger.cured_zombie_villager":"Cured zombie villager","advancement_trigger.effects_changed":"Effects changed","advancement_trigger.enchanted_item":"Enchanted item","advancement_trigger.enter_block":"Enter block","advancement_trigger.entity_hurt_player":"Entity hurt player","advancement_trigger.entity_killed_player":"Entity killed player","advancement_trigger.fall_from_height":"Fall from height","advancement_trigger.filled_bucket":"Filled bucket","advancement_trigger.fishing_rod_hooked":"Fishing rod hooked","advancement_trigger.hero_of_the_village":"Hero of the village","advancement_trigger.impossible":"Impossible","advancement_trigger.inventory_changed":"Inventory changed","advancement_trigger.item_durability_changed":"Item durability changed","advancement_trigger.item_used_on_block":"Item used on block","advancement_trigger.killed_by_crossbow":"Killed by crossbow","advancement_trigger.levitation":"Levitation","advancement_trigger.location":"Location","advancement_trigger.nether_travel":"Nether travel","advancement_trigger.placed_block":"Placed block","advancement_trigger.player_generates_container_loot":"Player generates container loot","advancement_trigger.player_hurt_entity":"Player hurt entity","advancement_trigger.player_killed_entity":"Player killed entity","advancement_trigger.recipe_unlocked":"Recipe unlocked","advancement_trigger.ride_entity_in_lava":"Ride entity in lava","advancement_trigger.safely_harvest_honey":"Safely harvest honey","advancement_trigger.shot_crossbow":"Shot crossbow","advancement_trigger.slept_in_bed":"Slept in bed","advancement_trigger.slide_down_block":"Slide down block","advancement_trigger.summoned_entity":"Summoned entity","advancement_trigger.tame_animal":"Tame animal","advancement_trigger.target_hit":"Target hit","advancement_trigger.thrown_item_picked_up_by_entity":"Thrown item picked up by entity","advancement_trigger.tick":"Tick","advancement_trigger.used_ender_eye":"Used ender eye","advancement_trigger.used_totem":"Used totem","advancement_trigger.villager_trade":"Villager trade","advancement_trigger.voluntary_exile":"Voluntary exile","attribute.generic_armor":"Armor","attribute.generic_armor_toughness":"Armor toughness","attribute.generic_attack_damage":"Attack damage","attribute.generic_attack_knockback":"Attack knockback","attribute.generic_attack_speed":"Attack speed","attribute.generic_flying_speed":"Flying speed","attribute.generic_follow_range":"Follow range","attribute.generic_knockback_resistance":"Knockback resistance","attribute.generic_luck":"Luck","attribute.generic_max_health":"Max health","attribute.generic_movement_speed":"Movement speed","attribute.horse.jump_strength":"Jump strength","attribute.zombie.spawn_reinforcements":"Spawn reinforcements","attribute_modifier.amount":"Amount","attribute_modifier.attribute":"Attribute","attribute_modifier.name":"Name","attribute_modifier.operation":"Operation","attribute_modifier.operation.addition":"Addition","attribute_modifier.operation.multiply_base":"Multiply base","attribute_modifier.operation.multiply_total":"Multiply total","attribute_modifier.id":"UUID","attribute_modifier.slot":"Slots","attribute_modifier.slot.list":"Multiple","attribute_modifier.slot.string":"Single","axis.x":"X","axis.y":"Y","axis.z":"Z","badge.experimental":"Experimental","badge.unstable":"Unstable","biome.carvers":"Carvers","biome.carvers.air":"Air","biome.carvers.liquid":"Liquid","biome.category":"Category","biome.creature_spawn_probability":"Creature spawn probability","biome.depth":"Depth","biome.depth.help":"Raises or lowers the terrain. Positive values are considered land and negative are oceans.","biome.downfall":"Downfall","biome.effects":"Effects","biome.effects.additions_sound":"Additions sound","biome.effects.additions_sound.sound":"Sound","biome.effects.additions_sound.tick_chance":"Tick chance","biome.effects.ambient_sound":"Ambient sound","biome.effects.fog_color":"Fog color","biome.effects.foliage_color":"Foliage color","biome.effects.grass_color":"Grass color","biome.effects.grass_color_modifier":"Grass color modifier","biome.effects.grass_color_modifier.dark_forest":"Dark forest","biome.effects.grass_color_modifier.none":"None","biome.effects.grass_color_modifier.swamp":"Swamp","biome.effects.mood_sound":"Mood sound","biome.effects.mood_sound.block_search_extent":"Block search extent","biome.effects.mood_sound.offset":"Offset","biome.effects.mood_sound.sound":"Sound","biome.effects.mood_sound.tick_delay":"Tick delay","biome.effects.music":"Music","biome.effects.music.max_delay":"Max delay","biome.effects.music.min_delay":"Min delay","biome.effects.music.replace_current_music":"Replace current music","biome.effects.music.sound":"Sound","biome.effects.particle":"Particle","biome.effects.particle.options":"Options","biome.effects.particle.options.type":"Particle type","biome.effects.particle.probability":"Probability","biome.effects.sky_color":"Sky color","biome.effects.water_color":"Water color","biome.effects.water_fog_color":"Water fog color","biome.features":"Placed features","biome.features.entry":"Step %0%","biome.features.entry.entry":"Feature","biome.player_spawn_friendly":"Player spawn friendly","biome.player_spawn_friendly.help":"If true, the world spawn will be preferred in this biome.","biome.precipitation":"Precipitation","biome.precipitation.none":"None","biome.precipitation.rain":"Rain","biome.precipitation.snow":"Snow","biome.scale":"Scale","biome.scale.help":"Vertically stretches the terrain. Lower values produce flatter terrain.","biome.spawn_costs":"Spawn costs","biome.spawn_costs.charge":"Charge","biome.spawn_costs.energy_budget":"Energy budget","biome.spawners":"Spawners","biome.spawners.ambient":"Ambient","biome.spawners.creature":"Creature","biome.spawners.entry":"Spawn","biome.spawners.entry.maxCount":"Max count","biome.spawners.entry.minCount":"Min count","biome.spawners.entry.type":"Type","biome.spawners.entry.weight":"Weight","biome.spawners.misc":"Miscellaneous","biome.spawners.monster":"Monster","biome.spawners.water_ambient":"Water ambient","biome.spawners.water_creature":"Water creature","biome.starts":"Structure starts","biome.starts.entry":"Structure","biome.starts.help":"List of configured structure features.","biome.surface_builder":"Surface builder","biome.temperature":"Temperature","biome.temperature_modifier":"Temperature modifier","biome.temperature_modifier.frozen":"Frozen","biome.temperature_modifier.none":"None","block.block":"Block ID","block.nbt":"NBT","block.state":"Block state","block.tag":"Block tag","block_definition.multipart":"Multipart","block_definition.variants":"Variants","block_definition.multipart.entry":"Part","block_definition.multipart.entry.when":"When","block_definition.multipart.entry.apply":"Apply","block_placer.column_placer.extra_size":"Extra size","block_placer.column_placer.min_size":"Min size","block_placer.type":"Type","block_predicate.type":"Type","block_predicate.all_of.predicates":"Predicates","block_predicate.any_of.predicates":"Predicates","block_predicate.inside_world_bounds.offset":"Offset","block_predicate.matching_blocks.offset":"Offset","block_predicate.matching_blocks.blocks":"Blocks","block_predicate.matching_blocks.blocks.entry":"Block","block_predicate.matching_fluids.offset":"Offset","block_predicate.matching_fluids.fluids":"Fluids","block_predicate.matching_fluids.fluids.entry":"Fluid","block_predicate.would_survive.offset":"Offset","block_predicate.would_survive.state":"State","block_predicate_type.all_of":"All of","block_predicate_type.any_of":"Any of","block_predicate_type.inside_world_bounds":"Inside world bounds","block_predicate_type.matching_blocks":"Matching blocks","block_predicate_type.matching_fluids":"Matching fluids","block_predicate_type.not":"Not","block_predicate_type.replaceable":"Replaceable","block_predicate_type.solid":"Solid","block_predicate_type.true":"True","block_predicate_type.would_survive":"Would survive","block_predicate.not.predicate":"Predicate","block_state.Name":"Name","block_state.Properties":"Properties","block_state_provider.dual_noise_provider.seed":"Seed","block_state_provider.dual_noise_provider.noise":"Noise","block_state_provider.dual_noise_provider.scale":"Scale","block_state_provider.dual_noise_provider.variety":"Variety","block_state_provider.dual_noise_provider.slow_noise":"Slow noise","block_state_provider.dual_noise_provider.slow_scale":"Slow scale","block_state_provider.fallback":"Fallback","block_state_provider.dual_noise_provider.states":"States","block_state_provider.noise_threshold_provider.seed":"Seed","block_state_provider.noise_threshold_provider.noise":"Noise","block_state_provider.noise_threshold_provider.scale":"Scale","block_state_provider.noise_threshold_provider.threshold":"Threshold","block_state_provider.noise_threshold_provider.high_chance":"High chance","block_state_provider.noise_threshold_provider.default_state":"Default state","block_state_provider.noise_threshold_provider.low_states":"Low states","block_state_provider.noise_threshold_provider.high_states":"High states","block_state_provider.noise_provider.seed":"Seed","block_state_provider.noise_provider.noise":"Noise","block_state_provider.noise_provider.scale":"Scale","block_state_provider.noise_provider.states":"States","block_state_provider.randomized_int_state_provider.property":"Property","block_state_provider.randomized_int_state_provider.values":"Values","block_state_provider.randomized_int_state_provider.source":"Source","block_state_provider.rotated_block_provider.state":"State","block_state_provider.rules":"Rules","block_state_provider.rules.entry":"Rule","block_state_provider.rules.entry.if_true":"If true","block_state_provider.rules.entry.then":"Then","block_state_provider.simple_state_provider.state":"State","block_state_provider.type":"Type","block_state_provider.weighted_state_provider.entries":"Entries","block_state_provider.weighted_state_provider.entries.entry.data":"State","block_state_provider.weighted_state_provider.entries.entry.weight":"Weight","carver.config":"Config","carver.config.aquifers_enabled":"Aquifers enabled","carver.config.canyon.bottom_inclusive":"Bottom inclusive","carver.config.canyon.top_inclusive":"Top inclusive","carver.config.canyon.vertical_rotation":"Vertical rotation","carver.config.canyon.shape":"Shape","carver.config.canyon.shape.distance_factor":"Distance factor","carver.config.canyon.shape.thickness":"Thickness","carver.config.canyon.shape.width_smoothness":"Width smoothness","carver.config.canyon.shape.horizontal_radius_factor":"Horizontal radius factor","carver.config.canyon.shape.vertical_radius_default_factor":"Vertical radius default factor","carver.config.canyon.shape.vertical_radius_center_factor":"Vertical radius center factor","carver.config.cave.horizontal_radius_multiplier":"Horizontal radius multiplier","carver.config.cave.vertical_radius_multiplier":"Vertical radius multiplier","carver.config.cave.floor_level":"Floor level","carver.config.debug_settings":"Debug settings","carver.config.debug_settings.debug_mode":"Debug mode","carver.config.debug_settings.air_state":"Air state","carver.config.debug_settings.water_state":"Water state","carver.config.debug_settings.lava_state":"Lava state","carver.config.debug_settings.barrier_state":"Barrier state","carver.config.lava_level":"Lava level","carver.config.probability":"Probability","carver.config.replaceable":"Replaceable","carver.config.y":"Y","carver.config.yScale":"Y scale","carver.type":"Type","cat_texture.textures/entity/cat/tabby.png":"Tabby","cat_texture.textures/entity/cat/black.png":"Black","cat_texture.textures/entity/cat/red.png":"Red","cat_texture.textures/entity/cat/siamese.png":"Siamese","cat_texture.textures/entity/cat/british_shorthair.png":"British","cat_texture.textures/entity/cat/calico.png":"Calico","cat_texture.textures/entity/cat/persian.png":"Persian","cat_texture.textures/entity/cat/ragdoll.png":"Ragdoll","cat_texture.textures/entity/cat/white.png":"White","cat_texture.textures/entity/cat/jellie.png":"Jellie","cat_texture.textures/entity/cat/all_black.png":"All black","cat_variant.tabby":"Tabby","cat_variant.black":"Black","cat_variant.red":"Red","cat_variant.siamese":"Siamese","cat_variant.british":"British","cat_variant.calico":"Calico","cat_variant.persian":"Persian","cat_variant.ragdoll":"Ragdoll","cat_variant.white":"White","cat_variant.jellie":"Jellie","cat_variant.all_black":"All black","cave_surface.ceiling":"Ceiling","cave_surface.floor":"Floor","chat_type.chat":"Chat","chat_type.chat.decoration":"Decoration","chat_type.overlay":"Overlay","chat_type.overlay.help":"Displays on the actionbar","chat_type.overlay.decoration":"Decoration","chat_type.narration":"Narration","chat_type.narration.decoration":"Decoration","chat_type.narration.priority":"Priority","children":"Children","children.entry":"Entry","condition.alternative.terms":"Terms","condition.block_state_property.block":"Block","condition.block_state_property.properties":"Block state","condition.condition":"Condition","condition.damage_source":"Damage source","condition.entity_properties.entity":"Entity","condition.entity_scores.entity":"Entity","condition.entity_scores.scores":"Scores","condition.entry":"Predicate","condition.inverted.term":"Term","condition.item":"Item","condition.killed_by_player.inverse":"Inverted","condition.list":"Multiple","condition.location":"Location","condition.location_check.offsetX":"X offset","condition.location_check.offsetY":"Y offset","condition.location_check.offsetZ":"Z offset","condition.object":"Single","condition.random_chance.chance":"Chance","condition.random_chance_with_looting.chance":"Chance","condition.random_chance_with_looting.looting_multiplier":"Looting multiplier","condition.reference.name":"Predicate name","condition.table_bonus.chances":"Chances","condition.table_bonus.chances.entry":"Chance","condition.table_bonus.enchantment":"Enchantment","condition.time_check.period":"Period","condition.time_check.period.help":"If present, time will be modulo-divided by this value. For example, if set to 24000, value will operate on a time period of days.","condition.time_check.value":"Value","condition.value_check.range":"Range","condition.value_check.value":"Value","condition.weather_check.raining":"Raining","condition.weather_check.thundering":"Thundering","conditions":"Conditions","conditions.entry":"Condition","conditions.list":"Conditions","conditions.object":"Legacy","copy_source.block_entity":"Block entity","copy_source.direct_killer":"Direct killer","copy_source.killer":"Killer","copy_source.killer_player":"Killer player","copy_source.this":"This","criterion.allay_drop_item_on_block.item":"Item","criterion.allay_drop_item_on_block.block":"Block","criterion.bee_nest_destroyed.block":"Block","criterion.bee_nest_destroyed.num_bees_inside":"Number of bees inside","criterion.bred_animals.child":"Child","criterion.bred_animals.parent":"Parent","criterion.bred_animals.partner":"Partner","criterion.brewed_potion.potion":"Potion","criterion.changed_dimension.from":"From","criterion.changed_dimension.to":"To","criterion.channeled_lightning.victims":"Victims","criterion.channeled_lightning.victims.entry":"Entity","criterion.conditions":"Conditions","criterion.construct_beacon.beacon_level":"Pyramid level","criterion.consume_item.item":"Item","criterion.cured_zombie_villager.villager":"Villager","criterion.cured_zombie_villager.zombie":"Zombie","criterion.effects_changed.effects":"Effects","criterion.enchanted_item.item":"Item","criterion.enchanted_item.levels":"XP level","criterion.enter_block.block":"Block","criterion.enter_block.state":"States","criterion.entity_hurt_player.damage":"Damage","criterion.entity_killed_player.entity":"Source entity","criterion.entity_killed_player.killing_blow":"Killing blow","criterion.fall_from_height.distance":"Distance","criterion.fall_from_height.start_position":"Start position","criterion.filled_bucket.item":"Item","criterion.fishing_rod_hooked.entity":"Pulled entity","criterion.fishing_rod_hooked.item":"Item","criterion.hero_of_the_village.location":"Location","criterion.inventory_changed.items":"Items","criterion.inventory_changed.items.entry":"Item","criterion.inventory_changed.slots":"Slots","criterion.inventory_changed.slots.empty":"Slots empty","criterion.inventory_changed.slots.full":"Slots full","criterion.inventory_changed.slots.occupied":"Slots occupied","criterion.item_durability_changed.delta":"Delta","criterion.item_durability_changed.durability":"Durability","criterion.item_durability_changed.item":"Item","criterion.item_used_on_block.item":"Item","criterion.item_used_on_block.location":"Location","criterion.kill_mob_near_sculk_catalyst.entity":"Entity","criterion.kill_mob_near_sculk_catalyst.killing_blow":"Killing blow","criterion.killed_by_crossbow.unique_entity_types":"Amount of unique entity types","criterion.killed_by_crossbow.victims":"Victims","criterion.killed_by_crossbow.victims.entry":"Entity","criterion.levitation.distance":"Distance","criterion.levitation.duration":"Duration","criterion.location.location":"Location","criterion.nether_travel.distance":"Distance","criterion.nether_travel.entered":"Entered location","criterion.nether_travel.exited":"Exited location","criterion.nether_travel.start_position":"Start position","criterion.placed_block.block":"Block","criterion.placed_block.item":"Item","criterion.placed_block.location":"Location","criterion.placed_block.state":"States","criterion.player":"Player","criterion.player_generates_container_loot.loot_table":"Loot table","criterion.player_hurt_entity.damage":"Damage","criterion.player_hurt_entity.entity":"Victim entity","criterion.player_killed_entity.entity":"Victim entity","criterion.player_killed_entity.killing_blow":"Killing blow","criterion.recipe_unlocked.recipe":"Recipe","criterion.ride_entity_in_lava.distance":"Distance","criterion.ride_entity_in_lava.start_position":"Start position","criterion.rod":"Rod","criterion.safely_harvest_honey.block":"Block","criterion.safely_harvest_honey.item":"Item","criterion.shot_crossbow.item":"Item","criterion.slept_in_bed.location":"Location","criterion.slide_down_block.block":"Block","criterion.summoned_entity.entity":"Entity","criterion.tame_animal.entity":"Animal","criterion.target_hit.projectile":"Projectile","criterion.target_hit.shooter":"Shooter","criterion.target_hit.signal_strength":"Signal strength","criterion.thrown_item_picked_up_by_entity.entity":"Entity","criterion.thrown_item_picked_up_by_entity.item":"Item","criterion.thrown_item_picked_up_by_player.entity":"Thrower entity","criterion.thrown_item_picked_up_by_player.item":"Item","criterion.trigger":"Trigger","criterion.used_ender_eye.distance":"Distance","criterion.used_totem.item":"Totem item","criterion.villager_trade.item":"Purchased item","criterion.villager_trade.villager":"Villager","criterion.voluntary_exile.location":"Location","damage.blocked":"Blocked","damage.dealt":"Damage dealt","damage.source_entity":"Source entity","damage.taken":"Damage taken","damage.type":"Damage type","damage_source.bypasses_armor":"Bypass armor","damage_source.bypasses_invulnerability":"Void","damage_source.bypasses_magic":"Starvation","damage_source.direct_entity":"Direct entity","damage_source.is_explosion":"Explosion","damage_source.is_fire":"Fire","damage_source.is_lightning":"Lightning","damage_source.is_magic":"Magic","damage_source.is_projectile":"Projectile","damage_source.source_entity":"Source entity","decoration_step.raw_generation":"Raw generation","decoration_step.lakes":"Lakes","decoration_step.local_modifications":"Local modifications","decoration_step.underground_structures":"Underground structures","decoration_step.strongholds":"Strongholds","decoration_step.underground_ores":"Underground ores","decoration_step.underground_decoration":"Underground decoration","decoration_step.fluid_springs":"Fluid springs","decoration_step.vegetal_decoration":"Vegetal decoration","decoration_step.top_layer_modification":"Top layer modification","decorator.block_predicate_filter.predicate":"Predicate","decorator.carving_mask.step":"Step","decorator.cave_surface.surface":"Surface","decorator.cave_surface.floor_to_ceiling_search_range":"Search range","decorator.cave_surface.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","decorator.cave_surface.allow_water":"Allow water","decorator.chance.chance":"Chance","decorator.config":"Config","decorator.count.count":"Count","decorator.count_extra.count":"Count","decorator.count_extra.extra_chance":"Extra chance","decorator.count_extra.extra_count":"Extra count","decorator.count_multilayer.count":"Count","decorator.count_on_every_layer.count":"Count","decorator.count_noise.above_noise":"Above noise","decorator.count_noise.below_noise":"Below noise","decorator.count_noise.noise_level":"Noise level","decorator.noise_threshold_count.above_noise":"Above noise","decorator.noise_threshold_count.below_noise":"Below noise","decorator.noise_threshold_count.noise_level":"Noise level","decorator.count_noise_biased.noise_factor":"Noise factor","decorator.count_noise_biased.noise_offset":"Noise offset","decorator.count_noise_biased.noise_to_count_ratio":"Noise to count ratio","decorator.noise_based_count.noise_factor":"Noise factor","decorator.noise_based_count.noise_offset":"Noise offset","decorator.noise_based_count.noise_to_count_ratio":"Noise to count ratio","decorator.decorated.inner":"Inner","decorator.decorated.outer":"Outer","decorator.depth_average.baseline":"Baseline","decorator.depth_average.spread":"Spread","decorator.environment_scan.direction_of_search":"Direction","decorator.environment_scan.max_steps":"Max steps","decorator.environment_scan.target_condition":"Target condition","decorator.glowstone.count":"Count","decorator.heightmap.heightmap":"Heightmap","decorator.heightmap_spread_double.heightmap":"Heightmap","decorator.lava_lake.chance":"Chance","decorator.range.bottom_inclusive":"Bottom inclusive","decorator.range.top_inclusive":"Top inclusive","decorator.range_biased_to_bottom.bottom_inclusive":"Bottom inclusive","decorator.range_biased_to_bottom.top_inclusive":"Top inclusive","decorator.range_biased_to_bottom.cutoff":"Cutoff","decorator.range_very_biased_to_bottom.bottom_inclusive":"Bottom inclusive","decorator.range_very_biased_to_bottom.top_inclusive":"Top inclusive","decorator.range_very_biased_to_bottom.cutoff":"Cutoff","decorator.range.height":"Height","decorator.height_range.height":"Height","decorator.random_offset.xz_spread":"XZ spread","decorator.random_offset.y_spread":"Y spread","decorator.surface_relative_threshold_filter.heightmap":"Heightmap","decorator.surface_relative_threshold_filter.min_inclusive":"Min inclusive","decorator.surface_relative_threshold_filter.max_inclusive":"Max inclusive","decorator.water_depth_threshold.max_water_depth":"Max water depth","decorator.surface_water_depth_filter.max_water_depth":"Max water depth","decorator.type":"Type","density_function.string":"Reference","density_function.number":"Constant","density_function.object":"Inline","density_function.type":"Type","density_function.argument":"Argument","density_function.argument1":"Argument 1","density_function.argument2":"Argument 2","density_function.input":"Input","density_function.min":"Min","density_function.max":"Max","density_function.xz_scale":"XZ scale","density_function.y_scale":"Y scale","density_function.xz_factor":"XZ factor","density_function.y_factor":"Y factor","density_function.smear_scale_multiplier":"Smear scale multiplier","density_function.min_inclusive":"Min inclusive","density_function.when_in_range":"When in range","density_function.when_out_of_range":"When out of range","density_function.noise":"Noise parameters","density_function.shift_x":"Shift X","density_function.shift_y":"Shift Y","density_function.shift_z":"Shift Z","density_function.spline":"Spline","density_function.min_value":"Min value","density_function.max_value":"Max value","density_function.continentalness":"Continentalness","density_function.erosion":"Erosion","density_function.weirdness":"Weirdness","density_function.rarity_value_mapper":"Rarity value mapper","density_function.from_y":"From Y","density_function.to_y":"To Y","density_function.from_value":"From value","density_function.to_value":"To value","dimension":"Dimension","dimension.generator":"Generator","dimension.generator.biome_source":"Biome source","dimension.overworld":"Overworld","dimension.the_end":"The end","dimension.the_nether":"The nether","dimension.type":"Dimension type","dimension.type.object":"Inline","dimension.type.string":"Reference","dimension_type.ambient_light":"Ambient light","dimension_type.ambient_light.help":"How much ambient light there is. Should be a value between 0.0 and 1.0.","dimension_type.bed_works":"Bed works","dimension_type.bed_works.help":"If true, players can use beds to set their spawn and advance time. If false, beds will blow up when used.","dimension_type.coordinate_scale":"Coordinate scale","dimension_type.coordinate_scale.help":"Multiplier applied to coordinates when traveling between dimensions using a nether portal or /execute in.","dimension_type.effects":"Effects","dimension_type.effects.help":"Sky effects","dimension_type.effects.overworld":"Overworld","dimension_type.effects.the_end":"The end","dimension_type.effects.the_nether":"The nether","dimension_type.fixed_time":"Fixed time","dimension_type.fixed_time.help":"Setting this value will keep the sun in a fixed position.","dimension_type.has_ceiling":"Has ceiling","dimension_type.has_ceiling.help":"Affects the weather, map items and respawning rules.","dimension_type.has_raids":"Has raids","dimension_type.has_raids.help":"If true, players with the Bad Omen effect can cause a raid.","dimension_type.has_skylight":"Has skylight","dimension_type.has_skylight.help":"Affects the weather, lighting engine and respawning rules.","dimension_type.height":"Height","dimension_type.height.help":"The total height in which blocks can exist. Max Y = Min Y + Height.","dimension_type.infiniburn":"Infiniburn","dimension_type.infiniburn.help":"Block tag defining what blocks keep fire infinitely burning.","dimension_type.logical_height":"Logical height","dimension_type.logical_height.help":"Portals can't spawn and chorus fruit can't teleport players above this height.","dimension_type.min_y":"Min Y","dimension_type.min_y.help":"The minimum height in which blocks can exist.","dimension_type.name":"Name","dimension_type.natural":"Natural","dimension_type.natural.help":"If true, portals will spawn zombified piglins. If false, compasses and clocks spin randomly.","dimension_type.piglin_safe":"Piglin safe","dimension_type.piglin_safe.help":"If false, piglins will shake and convert to zombified piglins.","dimension_type.respawn_anchor_works":"Respawn anchor works","dimension_type.respawn_anchor_works.help":"If true, players can charge and use respawn anchors to set their spawn. If false, respawn anchors will blow up when used.","dimension_type.ultrawarm":"Ultrawarm","dimension_type.ultrawarm.help":"If true, water will evaporate and sponges will dry.","direction.up":"Up","direction.down":"Down","direction.north":"North","direction.east":"East","direction.south":"South","direction.west":"West","display_position.firstperson_righthand":"Firstperson righthand","display_position.firstperson_lefthand":"Firstperson lefthand","display_position.thirdperson_righthand":"Thirdperson righthand","display_position.thirdperson_lefthand":"Thirdperson lefthand","display_position.gui":"GUI","display_position.head":"Head","display_position.ground":"Ground","display_position.fixed":"Fixed","distance.absolute":"Absolute","distance.horizontal":"Horizontal","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"Aqua affinity","enchantment.bane_of_arthropods":"Bane of arthropods","enchantment.binding_curse":"Curse of binding","enchantment.blast_protection":"Blast protection","enchantment.channeling":"Channeling","enchantment.depth_strider":"Depth strider","enchantment.efficiency":"Efficiency","enchantment.enchantment":"Enchantment","enchantment.feather_falling":"Feather falling","enchantment.fire_aspect":"Fire aspect","enchantment.fire_protection":"Fire protection","enchantment.flame":"Flame","enchantment.fortune":"Fortune","enchantment.frost_walker":"Frost walker","enchantment.impaling":"Impaling","enchantment.infinity":"Infinity","enchantment.knockback":"Knockback","enchantment.levels":"Levels","enchantment.looting":"Looting","enchantment.loyalty":"Loyalty","enchantment.luck_of_the_sea":"Luck of the sea","enchantment.lure":"Lure","enchantment.mending":"Mending","enchantment.multishot":"Multishot","enchantment.piercing":"Piercing","enchantment.power":"Power","enchantment.projectile_protection":"Projectile protection","enchantment.protection":"Protection","enchantment.punch":"Punch","enchantment.quick_charge":"Quick charge","enchantment.respiration":"Respiration","enchantment.riptide":"Riptide","enchantment.sharpness":"Sharpness","enchantment.silk_touch":"Silk touch","enchantment.smite":"Smite","enchantment.sweeping":"Sweeping edge","enchantment.thorns":"Thorns","enchantment.unbreaking":"Unbreaking","enchantment.vanishing_curse":"Curse of vanishing","entity.catType":"Cat type","entity.distance":"Distance","entity.effects":"Effects","entity.equipment":"Equipment","entity.fishing_hook":"Fishing hook","entity.fishing_hook.in_open_water":"In open water","entity.flags":"Flags","entity.flags.is_baby":"Baby","entity.flags.is_on_fire":"On fire","entity.flags.is_sneaking":"Sneaking","entity.flags.is_sprinting":"Sprinting","entity.flags.is_swimming":"Swimming","entity.lightning_bolt":"Lightning bolt","entity.lightning_bolt.blocks_set_on_fire":"Blocks set on fire","entity.lightning_bolt.entity_struck":"Entity struck","entity.location":"Location","entity.nbt":"NBT","entity.passenger":"Passenger","entity.player":"Player","entity.stepping_on":"Stepping on","entity.targeted_entity":"Targeted entity","entity.team":"Team","entity.type":"Entity type","entity.type_specific":"Type specific","entity.type_specific.type":"Type","entity.type_specific.any":"Any","entity.type_specific.cat":"Cat","entity.type_specific.fishing_hook":"Fishing hook","entity.type_specific.frog":"Frog","entity.type_specific.lightning":"Lightning","entity.type_specific.player":"Player","entity.type_specific.slime":"Slime","entity.type_specific.cat.variant":"Variant","entity.type_specific.fishing_hook.in_open_water":"In open water","entity.type_specific.frog.variant":"Variant","entity.type_specific.lightning.blocks_set_on_fire":"Blocks set on fire","entity.type_specific.lightning.entity_struck":"Entity struck","entity.type_specific.slime.size":"Size","entity.vehicle":"Vehicle","entity_source.direct_killer":"Direct killer","entity_source.killer":"Killer","entity_source.killer_player":"Killer player","entity_source.this":"This","entry":"Entry","error":"Error","error.disallowed_tag_prefix":"Tags cannot start with \\"#\\" here","error.disallowed_tag":"Tags aren't allowed here","error.expected_boolean":"Expected a boolean","error.expected_integer":"Expected an integer","error.expected_json":"Expected JSON","error.expected_list":"Expected an array","error.expected_number":"Expected a number","error.expected_object":"Expected an object","error.expected_range":"Expected a range","error.expected_string":"Expected a string","error.expected_uniform_int":"Expected a uniform int","error.expected_tag":"Expected a tag starting with \\"#\\"","error.height_multiple":"Height has to be multiple of %0%","error.invalid_empty_list":"Array cannot be empty","error.invalid_enum_option":"Invalid option \\"%0%\\"","error.invalid_list_range.exact":"Expected a list with length %1%","error.invalid_list_range.larger":"List length %0% is larger than maximum %1%","error.invalid_list_range.smaller":"List length %0% is smaller than minimum %1%","error.invalid_number_range.between":"Expected a number between %1% and %2%","error.invalid_number_range.larger":"Value %0% is larger than maximum %1%","error.invalid_number_range.smaller":"Value %0% is smaller than minimum %1%","error.invalid_number_enum":"Expected one of %0%","error.invalid_resource_location":"Resource location contains invalid characters","error.logical_height":"Logical height cannot be higher than height","error.min_y_multiple":"Min Y has to be a multiple of %0%","error.min_y_plus_height":"Min Y + height cannot be higher than %0%","error.recipe.invalid_key":"only single character is allowed as a key","error.separation_smaller_spacing":"Separation has to be smaller than spacing","false":"False","feature.bamboo.probability":"Probability","feature.basalt_columns.height":"Height","feature.basalt_columns.reach":"Reach","feature.block_column.direction":"Direction","feature.block_column.allowed_placement":"Allowed placement","feature.block_column.prioritize_tip":"Prioritize tip","feature.block_column.layers":"Layers","feature.block_column.layers.entry.height":"Height","feature.block_column.layers.entry.state":"State","feature.block_pile.state_provider":"State provider","feature.config":"Config","feature.decorated.decorator":"Decorator","feature.decorated.feature":"Feature","feature.delta_feature.contents":"Contents","feature.delta_feature.rim":"Rim","feature.delta_feature.rim_size":"Rim size","feature.delta_feature.size":"Size","feature.disk.half_height":"Half height","feature.disk.radius":"Radius","feature.disk.state":"State","feature.disk.state_provider":"State provider","feature.disk.target":"Target","feature.disk.targets":"Targets","feature.disk.targets.entry":"State","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center":"Far dripstone chance","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center.help":"Chance of a dripstone column at the max distance from the center.","feature.dripstone_cluster.density":"Density","feature.dripstone_cluster.dripstone_block_layer_thickness":"Block layer thickness","feature.dripstone_cluster.floor_to_ceiling_search_range":"Search range","feature.dripstone_cluster.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","feature.dripstone_cluster.height":"Height","feature.dripstone_cluster.height_deviation":"Height deviation","feature.dripstone_cluster.max_distance_from_edge_affecting_chance_of_dripstone_column":"Column chance distance","feature.dripstone_cluster.max_distance_from_edge_affecting_chance_of_dripstone_column.help":"Max distance from the edge affecting the chance of dripstone columns.","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias":"Height bias distance","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias.help":"Max distance from the center affecting the height bias.","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff":"Max height difference","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff.help":"Max height difference between the stalagmite and stalactite.","feature.dripstone_cluster.radius":"Radius","feature.dripstone_cluster.wetness":"Wetness","feature.dripstone_cluster.wetness_deviation":"Wetness deviation","feature.dripstone_cluster.wetness_mean":"Wetness mean","feature.emerald_ore.state":"State","feature.emerald_ore.target":"Target","feature.end_gateway.exact":"Exact","feature.end_gateway.exit":"Exit","feature.end_spike.crystal_beam_target":"Crystal beam target","feature.end_spike.crystal_invulnerable":"Crystal invulnerable","feature.end_spike.spikes":"Spikes","feature.end_spike.spikes.entry":"Spike","feature.end_spike.spikes.entry.centerX":"Center X","feature.end_spike.spikes.entry.centerZ":"Center Z","feature.end_spike.spikes.entry.guarded":"Guarded","feature.end_spike.spikes.entry.height":"Height","feature.end_spike.spikes.entry.radius":"Radius","feature.fill_layer.height":"Height","feature.fill_layer.state":"State","feature.flower.blacklist":"Blacklist","feature.flower.block_placer":"Block placer","feature.flower.can_replace":"Can replace","feature.flower.need_water":"Need water","feature.flower.feature":"Placed feature","feature.flower.project":"Project","feature.flower.state_provider":"State provider","feature.flower.tries":"Tries","feature.flower.whitelist":"Whitelist","feature.flower.xspread":"X spread","feature.flower.xz_spread":"XZ spread","feature.flower.yspread":"Y spread","feature.flower.y_spread":"Y spread","feature.flower.zspread":"Z spread","feature.forest_rock.state":"State","feature.fossil.max_empty_corners_allowed":"Max empty corners","feature.fossil.max_empty_corners_allowed.help":"If more corners are exposed to air, feature placement is cancelled.","feature.fossil.fossil_structures":"Fossil structures","feature.fossil.overlay_structures":"Overlay structures","feature.fossil.fossil_processors":"Fossil processors","feature.fossil.fossil_processors.string":"Reference","feature.fossil.fossil_processors.object":"Inline","feature.fossil.overlay_processors":"Overlay processors","feature.fossil.overlay_processors.string":"Reference","feature.fossil.overlay_processors.object":"Inline","feature.geode.blocks":"Blocks","feature.geode.blocks.filling_provider":"Filling","feature.geode.blocks.inner_layer_provider":"Inner layer","feature.geode.blocks.alternate_inner_layer_provider":"Alternate inner layer","feature.geode.blocks.middle_layer_provider":"Middle layer","feature.geode.blocks.outer_layer_provider":"Outer layer","feature.geode.blocks.inner_placements":"Inner placements","feature.geode.blocks.cannot_replace":"Cannot replace","feature.geode.blocks.cannot_replace.help":"Blocks that will not be replaced by the geode.","feature.geode.blocks.invalid_blocks":"Invalid blocks","feature.geode.blocks.invalid_blocks.help":"When encountering an invalid block, feature placement is cancelled.","feature.geode.layers":"Layers","feature.geode.layers.filling":"Filling","feature.geode.layers.inner_layer":"Inner layer","feature.geode.layers.middle_layer":"Middle layer","feature.geode.layers.outer_layer":"Outer layer","feature.geode.crack":"Crack","feature.geode.crack.generate_crack_chance":"Crack chance","feature.geode.crack.base_crack_size":"Crack size","feature.geode.crack.crack_point_offset":"Crack point offset","feature.geode.noise_multiplier":"Noise multiplier","feature.geode.use_potential_placements_chance":"Inner placements chance","feature.geode.use_alternate_layer0_chance":"Alternate inner layer chance","feature.geode.placements_require_layer0_alternate":"Placements require alternate layer","feature.geode.outer_wall_distance":"Outer wall distance","feature.geode.distribution_points":"Distribution points","feature.geode.point_offset":"Point offset","feature.geode.min_gen_offset":"Min gen offset","feature.geode.max_gen_offset":"Max gen offset","feature.geode.invalid_blocks_threshold":"Invalid blocks threshold","feature.glow_lichen.can_be_placed_on":"Can be placed on","feature.glow_lichen.can_be_placed_on.entry":"Block state","feature.glow_lichen.can_place_on_ceiling":"Can place on ceiling","feature.glow_lichen.can_place_on_floor":"Can place on floor","feature.glow_lichen.can_place_on_wall":"Can place on wall","feature.glow_lichen.chance_of_spreading":"Chance of spreading","feature.glow_lichen.search_range":"Search range","feature.growing_plant.direction":"Direction","feature.growing_plant.allow_water":"Allow water","feature.growing_plant.height_distribution":"Height distribution","feature.growing_plant.body_provider":"Body provider","feature.growing_plant.head_provider":"Head provider","feature.huge_brown_mushroom.cap_provider":"Cap provider","feature.huge_brown_mushroom.foliage_radius":"Foliage radius","feature.huge_brown_mushroom.stem_provider":"Stem provider","feature.huge_fungus.decor_state":"Decoration","feature.huge_fungus.hat_state":"Hat","feature.huge_fungus.planted":"Planted","feature.huge_fungus.stem_state":"Stem","feature.huge_fungus.valid_base_block":"Valid base","feature.huge_red_mushroom.cap_provider":"Cap provider","feature.huge_red_mushroom.foliage_radius":"Foliage radius","feature.huge_red_mushroom.stem_provider":"Stem provider","feature.ice_patch.can_origin_replace":"Can origin replace","feature.ice_patch.half_height":"Half height","feature.ice_patch.radius":"Radius","feature.ice_patch.state":"State","feature.ice_patch.targets":"Targets","feature.ice_patch.targets.entry":"State","feature.iceberg.state":"State","feature.lake.state":"State","feature.lake.fluid":"Fluid","feature.lake.barrier":"Barrier","feature.large_dripstone.column_radius":"Column radius","feature.large_dripstone.floor_to_ceiling_search_range":"Search range","feature.large_dripstone.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","feature.large_dripstone.height_scale":"Height scale","feature.large_dripstone.max_column_radius_to_cave_height_ratio":"Radius to cave height ratio","feature.large_dripstone.min_bluntness_for_wind":"Min bluntness for wind","feature.large_dripstone.min_radius_for_wind":"Min radius for wind","feature.large_dripstone.stalactite_bluntness":"Stalactite bluntness","feature.large_dripstone.stalagmite_bluntness":"Stalagmite bluntness","feature.large_dripstone.wind_speed":"Wind speed","feature.multiface_growth.can_be_placed_on":"Can be placed on","feature.multiface_growth.can_be_placed_on.entry":"Block state","feature.multiface_growth.can_place_on_ceiling":"Can place on ceiling","feature.multiface_growth.can_place_on_floor":"Can place on floor","feature.multiface_growth.can_place_on_wall":"Can place on wall","feature.multiface_growth.chance_of_spreading":"Chance of spreading","feature.multiface_growth.search_range":"Search range","feature.nether_forest_vegetation.state_provider":"State provider","feature.nether_forest_vegetation.spread_width":"Spread width","feature.nether_forest_vegetation.spread_height":"Spread height","feature.netherrack_replace_blobs.radius":"Radius","feature.netherrack_replace_blobs.state":"State","feature.netherrack_replace_blobs.target":"Target","feature.no_bonemeal_flower.allowed_on":"Allowed on","feature.no_bonemeal_flower.blacklist":"Blacklist","feature.no_bonemeal_flower.block_placer":"Block placer","feature.no_bonemeal_flower.can_replace":"Can replace","feature.no_bonemeal_flower.disallowed_on":"Disallowed on","feature.no_bonemeal_flower.need_water":"Need water","feature.no_bonemeal_flower.feature":"Placed feature","feature.no_bonemeal_flower.only_in_air":"Only in air","feature.no_bonemeal_flower.project":"Project","feature.no_bonemeal_flower.state_provider":"State provider","feature.no_bonemeal_flower.tries":"Tries","feature.no_bonemeal_flower.whitelist":"Whitelist","feature.no_bonemeal_flower.xspread":"X spread","feature.no_bonemeal_flower.xz_spread":"XZ spread","feature.no_bonemeal_flower.yspread":"Y spread","feature.no_bonemeal_flower.y_spread":"Y spread","feature.no_bonemeal_flower.zspread":"Z spread","feature.no_surface_ore.size":"Size","feature.no_surface_ore.state":"State","feature.no_surface_ore.target":"Target","feature.object":"Inline","feature.ore.discard_chance_on_air_exposure":"Discard on exposure chance","feature.ore.discard_chance_on_air_exposure.help":"The chance that feature placement will be discarded if the ore is exposed to air blocks.","feature.ore.size":"Size","feature.ore.state":"State","feature.ore.target":"Target","feature.ore.targets":"Targets","feature.ore.targets.entry.target":"Target","feature.ore.targets.entry.state":"State","feature.scattered_ore.discard_chance_on_air_exposure":"Discard on exposure chance","feature.scattered_ore.discard_chance_on_air_exposure.help":"The chance that feature placement will be discarded if the ore is exposed to air blocks.","feature.scattered_ore.size":"Size","feature.scattered_ore.targets":"Targets","feature.scattered_ore.targets.entry.target":"Target","feature.scattered_ore.targets.entry.state":"State","feature.sculk_patch.charge_count":"Charge count","feature.sculk_patch.amount_per_charge":"Amount per charge","feature.sculk_patch.spread_attempts":"Spread attempts","feature.sculk_patch.growth_rounds":"Growth rounds","feature.sculk_patch.spread_rounds ":"Spread rounds","feature.sculk_patch.extra_rare_growths":"Extra rare growths","feature.sculk_patch.catalyst_chance":"Catalyst chance","feature.surface_disk.can_origin_replace":"Can origin replace","feature.surface_disk.half_height":"Half height","feature.surface_disk.radius":"Radius","feature.surface_disk.state":"State","feature.surface_disk.targets":"Targets","feature.surface_disk.targets.entry":"State","feature.pointed_dripstone.chance_of_taller_dripstone":"Chance of taller dripstone","feature.pointed_dripstone.chance_of_directional_spread":"Chance of directional spread","feature.pointed_dripstone.chance_of_spread_radius2":"Chance of spread radius 2","feature.pointed_dripstone.chance_of_spread_radius3":"Chance of spread radius 3","feature.random_boolean_selector.feature_false":"Placed feature 1","feature.random_boolean_selector.feature_true":"Placed feature 2","feature.random_patch.allowed_on":"Allowed on","feature.random_patch.blacklist":"Blacklist","feature.random_patch.block_placer":"Block placer","feature.random_patch.can_replace":"Can replace","feature.random_patch.disallowed_on":"Disallowed on","feature.random_patch.need_water":"Need water","feature.random_patch.feature":"Placed feature","feature.random_patch.only_in_air":"Only in air","feature.random_patch.project":"Project","feature.random_patch.state_provider":"State provider","feature.random_patch.tries":"Tries","feature.random_patch.whitelist":"Whitelist","feature.random_patch.xspread":"X spread","feature.random_patch.xz_spread":"XZ spread","feature.random_patch.yspread":"Y spread","feature.random_patch.y_spread":"Y spread","feature.random_patch.zspread":"Z spread","feature.random_selector.default":"Default","feature.random_selector.features":"Features","feature.random_selector.features.entry":"Feature","feature.random_selector.features.entry.chance":"Chance","feature.random_selector.features.entry.feature":"Placed feature","feature.replace_single_block.targets":"Targets","feature.replace_single_block.targets.entry.target":"Target","feature.replace_single_block.targets.entry.state":"State","feature.root_system.required_vertical_space_for_tree":"Required vertical tree space","feature.root_system.root_radius":"Root radius","feature.root_system.root_placement_attempts":"Root placement attempts","feature.root_system.root_column_max_height":"Root max height","feature.root_system.hanging_root_radius":"Hanging roots radius","feature.root_system.hanging_roots_vertical_span":"Hanging roots vertical span","feature.root_system.hanging_root_placement_attempts":"Hanging roots attempts","feature.root_system.allowed_vertical_water_for_tree":"Max water depth","feature.root_system.root_replaceable":"Root replaceable","feature.root_system.root_state_provider":"Root","feature.root_system.hanging_root_state_provider":"Hanging roots","feature.root_system.allowed_tree_position":"Allowed tree position","feature.root_system.feature":"Tree feature","feature.sea_pickle.count":"Count","feature.seagrass.probability":"Probability","feature.simple_block.place_in":"Place in","feature.simple_block.place_in.entry":"State","feature.simple_block.place_on":"Place on","feature.simple_block.place_on.entry":"State","feature.simple_block.place_under":"Place under","feature.simple_block.place_under.entry":"State","feature.simple_block.to_place":"To place","feature.simple_random_selector.features":"Features","feature.simple_random_selector.features.entry":"Placed feature","feature.small_dripstone.chance_of_taller_dripstone":"Chance of taller dripstone","feature.small_dripstone.empty_space_search_radius":"Empty space search radius","feature.small_dripstone.max_offset_from_origin":"Max offset from origin","feature.small_dripstone.max_placements":"Max placements","feature.spring_feature.hole_count":"Hole count","feature.spring_feature.required_block_below":"Required block below","feature.spring_feature.rock_count":"Rock count","feature.spring_feature.state":"State","feature.spring_feature.valid_blocks":"Valid blocks","feature.string":"Reference","feature.tree.decorators":"Decorators","feature.tree.decorators.entry":"Tree decorator","feature.tree.foliage_placer":"Foliage placer","feature.tree.heightmap":"Heightmap","feature.tree.ignore_vines":"Ignore vines","feature.tree.leaves_provider":"Leaves provider","feature.tree.foliage_provider":"Foliage provider","feature.tree.force_dirt":"Force dirt","feature.tree.dirt_provider":"Dirt provider","feature.tree.sapling_provider":"Sapling provider","feature.tree.max_water_depth":"Max water depth","feature.tree.minimum_size":"Minimum size","feature.tree.minimum_size.limit":"Limit","feature.tree.minimum_size.lower_size":"Lower size","feature.tree.minimum_size.middle_size":"Middle size","feature.tree.minimum_size.min_clipped_height":"Min clipped height","feature.tree.minimum_size.type":"Minimum size","feature.tree.minimum_size.upper_limit":"Upper limit","feature.tree.minimum_size.upper_size":"Upper size","feature.tree.root_placer":"Root placer","feature.tree.trunk_placer":"Trunk placer","feature.tree.trunk_provider":"Trunk provider","feature.twisting_vines.spread_width":"Spread width","feature.twisting_vines.spread_height":"Spread height","feature.twisting_vines.max_height":"Max height","feature.type":"Type","feature.underwater_magma.floor_search_range":"Floor search range","feature.underwater_magma.placement_radius_around_floor":"Placement radius","feature.underwater_magma.placement_probability_per_valid_position":"Probability","feature.underwater_magma.placement_probability_per_valid_position.help":"The probability of placing magma per valid position.","feature.vegetation_patch.depth":"Depth","feature.vegetation_patch.extra_bottom_block_chance":"Extra bottom block chance","feature.vegetation_patch.extra_edge_column_chance":"Extra edge column chance","feature.vegetation_patch.ground_state":"Ground state","feature.vegetation_patch.replaceable":"Replaceable","feature.vegetation_patch.surface":"Surface","feature.vegetation_patch.vegetation_chance":"Vegetation chance","feature.vegetation_patch.vegetation_feature":"Vegetation feature","feature.vegetation_patch.vertical_range":"Vertical range","feature.vegetation_patch.xz_radius":"XZ radius","feature.waterlogged_vegetation_patch.depth":"Depth","feature.waterlogged_vegetation_patch.extra_bottom_block_chance":"Extra bottom block chance","feature.waterlogged_vegetation_patch.extra_edge_column_chance":"Extra edge column chance","feature.waterlogged_vegetation_patch.ground_state":"Ground state","feature.waterlogged_vegetation_patch.replaceable":"Replaceable","feature.waterlogged_vegetation_patch.surface":"Surface","feature.waterlogged_vegetation_patch.vegetation_chance":"Vegetation chance","feature.waterlogged_vegetation_patch.vegetation_feature":"Vegetation feature","feature.waterlogged_vegetation_patch.vertical_range":"Vertical range","feature.waterlogged_vegetation_patch.xz_radius":"XZ radius","float_provider.value.deviation":"Deviation","float_provider.value.mean":"Mean","float_provider.value.min":"Min","float_provider.value.min_inclusive":"Min exclusive","float_provider.value.max":"Max","float_provider.value.max_exclusive":"Max exclusive","float_provider.value.plateau":"Plateau","float_provider.type.number":"Constant","float_provider.type.constant":"Constant+","float_provider.type.uniform":"Uniform","float_provider.type.clamped_normal":"Clamped normal","float_provider.type.trapezoid":"Trapezoid","float_provider.value":"Value","fluid.fluid":"Fluid ID","fluid.state":"Fluid state","fluid.tag":"Fluid tag","fluid_state.Name":"Name","fluid_state.Properties":"Properties","foliage_placer.crown_height":"Crown height","foliage_placer.height":"Height","foliage_placer.offset":"Offset","foliage_placer.radius":"Radius","foliage_placer.trunk_height":"Trunk height","foliage_placer.type":"Type","foliage_placer.foliage_height":"Foliage height","foliage_placer.leaf_placement_attempts":"Leaf placement attempts","frog_variant.cold":"Cold","frog_variant.temperate":"Temperate","frog_variant.warm":"Warm","function.apply_bonus.enchantment":"Enchantment","function.apply_bonus.formula":"Formula","function.apply_bonus.formula.binomial_with_bonus_count":"Binomial with bonus count","function.apply_bonus.formula.ore_drops":"Ore drops","function.apply_bonus.formula.uniform_bonus_count":"Uniform bonus count","function.apply_bonus.parameters":"Parameters","function.apply_bonus.parameters.bonusMultiplier":"Multiplier","function.apply_bonus.parameters.extra":"Extra","function.apply_bonus.parameters.probability":"Probability","function.copy_name.source":"Source","function.copy_nbt.ops":"NBT operations","function.copy_nbt.ops.entry":"Operation","function.copy_nbt.source":"Source","function.copy_state.block":"Block","function.copy_state.properties":"Properties","function.copy_state.properties.entry":"Property","function.enchant_randomly.enchantments":"Optional enchantments","function.enchant_randomly.enchantments.entry":"Enchantment","function.enchant_with_levels.levels":"Levels","function.enchant_with_levels.treasure":"Treasure","function.exploration_map.decoration":"Decoration","function.exploration_map.destination":"Destination","function.exploration_map.search_radius":"Search radius (Chunks)","function.exploration_map.skip_existing_chunks":"Skip existing chunks","function.exploration_map.zoom":"Zoom","function.fill_player_head.entity":"Entity","function.function":"Function","function.limit_count.limit":"Limit","function.list":"Multiple","function.looting_enchant.count":"Count","function.looting_enchant.limit":"Limit","function.object":"Single","function.set_attributes.modifiers":"Modifiers","function.set_attributes.modifiers.entry":"Modifier","function.set_banner_pattern.append":"Append","function.set_banner_pattern.patterns":"Patterns","function.set_contents.entries":"Contents","function.set_contents.entries.entry":"Entry","function.set_contents.type":"Type","function.set_count.add":"Add","function.set_count.add.help":"If true, change will be relative to current item count","function.set_count.count":"Count","function.set_damage.add":"Add","function.set_damage.add.help":"If true, change will be relative to current damage","function.set_damage.damage":"Damage","function.set_data.data":"Data","function.set_enchantments.add":"Add","function.set_enchantments.add.help":"If true, change will be relative to current level","function.set_enchantments.enchantments":"Enchantments","function.set_instrument.options":"Instruments","function.set_loot_table.name":"Loot table name","function.set_loot_table.seed":"Seed","function.set_loot_table.type":"Type","function.set_lore.entity":"Entity","function.set_lore.lore":"Lore","function.set_lore.lore.entry":"Line","function.set_lore.replace":"Replace","function.set_name.entity":"Entity","function.set_name.name":"Name","function.set_nbt.tag":"NBT","function.set_potion.id":"Potion","function.set_stew_effect.effects":"Effects","function.set_stew_effect.effects.entry":"Effect","function.set_stew_effect.effects.entry.duration":"Duration","function.set_stew_effect.effects.entry.type":"Type","functions":"Functions","functions.entry":"Function","gamemode.adventure":"Adventure","gamemode.creative":"Creative","gamemode.spectator":"Spectator","gamemode.survival":"Survival","generation_step.air":"Air","generation_step.liquid":"Liquid","generator.biome_source.altitude_noise":"Altitude noise","generator.biome_source.biome":"Biome","generator.biome_source.biomes":"Biomes","generator.biome_source.humidity_noise":"Humidity noise","generator.biome_source.large_biomes":"Large biomes","generator.biome_source.legacy_biome_init_layer":"Legacy biome init layer","generator.biome_source.preset":"Biomes preset","generator.biome_source.preset.nether":"Nether","generator.biome_source.scale":"Scale","generator.biome_source.seed":"Biomes seed","generator.biome_source.temperature_noise":"Temperature noise","generator.biome_source.type":"Biome source","generator.biome_source.weirdness_noise":"Weirdness noise","generator.seed":"Dimension seed","generator.settings":"Generator settings","generator.settings.biome":"Biome","generator.settings.lakes":"Lakes","generator.settings.layers":"Layers","generator.settings.layers.entry":"Layer","generator.settings.layers.entry.block":"Block ID","generator.settings.layers.entry.height":"Height","generator.settings.structure_overrides":"Structure overrides","generator.settings.structure_overrides.entry":"Structure set","generator.settings.object":"Inline","generator.settings.presets.amplified":"Amplified","generator.settings.presets.caves":"Caves","generator.settings.presets.end":"End","generator.settings.presets.floating_islands":"Floating islands","generator.settings.presets.nether":"Nether","generator.settings.presets.overworld":"Overworld","generator.settings.string":"Reference","generator.settings.structures":"Structures","generator.settings.structures.stronghold":"Stronghold","generator.settings.structures.stronghold.count":"Count","generator.settings.structures.stronghold.distance":"Distance","generator.settings.structures.stronghold.spread":"Spread","generator.settings.structures.structures":"Structures","generator.type":"Generator type","generator_biome.biome":"Biome","generator_biome.parameters":"Parameters","generator_biome.parameters.altitude":"Altitude","generator_biome.parameters.help":"These parameters determine the placement of the biome. Every biome must have a unique combination of them. Biomes with similar values will generate next to each other.","generator_biome.parameters.humidity":"Humidity","generator_biome.parameters.offset":"Offset","generator_biome.parameters.temperature":"Temperature","generator_biome.parameters.weirdness":"Weirdness","generator_biome.parameters.continentalness":"Continentalness","generator_biome.parameters.erosion":"Erosion","generator_biome.parameters.depth":"Depth","generator_biome_noise.amplitudes":"Amplitudes","generator_biome_noise.amplitudes.entry":"Octave %0%","generator_biome_noise.firstOctave":"First octave","generator_structure.salt":"Salt","generator_structure.separation":"Separation","generator_structure.separation.help":"The minumum distance in chunks between two structures of this type.","generator_structure.spacing":"Spacing","generator_structure.spacing.help":"The average distance in chunks between two structures of this type.","height_provider.inner":"Inner","height_provider.min_inclusive":"Min inclusive","height_provider.max_inclusive":"Max inclusive","height_provider.plateau":"Plateau","height_provider.value":"Value","height_provider.distribution":"Distribution","height_provider.distribution.entry.weight":"Weight","height_provider.distribution.entry.data":"Data","height_provider.type.number":"Constant","height_provider.type.constant":"Constant+","height_provider.type.uniform":"Uniform","height_provider.type.biased_to_bottom":"Biased to bottom","height_provider.type.very_biased_to_bottom":"Very biased to bottom","height_provider.type.trapezoid":"Trapezoid","height_provider.type.weighted_list":"Weighted list","heightmap_type.MOTION_BLOCKING":"Motion blocking","heightmap_type.MOTION_BLOCKING_NO_LEAVES":"Motion blocking (Ignore Leaves)","heightmap_type.OCEAN_FLOOR":"Ocean floor","heightmap_type.OCEAN_FLOOR_WG":"Ocean floor (World Gen)","heightmap_type.WORLD_SURFACE":"World surface","heightmap_type.WORLD_SURFACE_IGNORE_SNOW":"World surface (Ignore Snow)","heightmap_type.WORLD_SURFACE_WG":"World surface (World Gen)","hide_source":"Hide source","int_provider.value":"Value","int_provider.value.deviation":"Deviation","int_provider.value.mean":"Mean","int_provider.value.min_inclusive":"Min inclusive","int_provider.value.max_inclusive":"Max inclusive","int_provider.value.source":"Source","int_provider.distribution":"Distribution","int_provider.distribution.entry.weight":"Weight","int_provider.distribution.entry.data":"Provider","int_provider.type.number":"Constant","int_provider.type.constant":"Constant+","int_provider.type.uniform":"Uniform","int_provider.type.biased_to_bottom":"Biased to bottom","int_provider.type.clamped":"Clamped","int_provider.type.clamped_normal":"Clamped normal","int_provider.type.weighted_list":"Weighted list","item.count":"Count","item.durability":"Durability","item.enchantments":"Enchantments","item.enchantments.entry":"Enchantment","item.item":"Item ID","item.nbt":"NBT","item.potion":"Potion","item.tag":"Item tag","item_model_predicates.angle":"Angle","item_model_predicates.blocking":"Blocking","item_model_predicates.broken":"Broken","item_model_predicates.cast":"Cast","item_model_predicates.charged":"Charged","item_model_predicates.cooldown":"Cooldown","item_model_predicates.custom_model_data":"Custom model data","item_model_predicates.damage":"Damage","item_model_predicates.damaged":"Damaged","item_model_predicates.firework":"Firework","item_model_predicates.lefthanded":"Lefthanded","item_model_predicates.pull":"Pull","item_model_predicates.pulling":"Pulling","item_model_predicates.throwing":"Throwing","item_model_predicates.time":"Time","item_transform.rotation":"Rotation","item_transform.translation":"Translation","item_transform.scale":"Scale","key.advancements":"Advancements","key.attack":"Attack/destroy","key.back":"Walk backwards","key.chat":"Open chat","key.command":"Open command","key.drop":"Drop selected item","key.forward":"Walk forwards","key.fullscreen":"Toggle fullscreen","key.hotbar.1":"Hotbar slot 1","key.hotbar.2":"Hotbar slot 2","key.hotbar.3":"Hotbar slot 3","key.hotbar.4":"Hotbar slot 4","key.hotbar.5":"Hotbar slot 5","key.hotbar.6":"Hotbar slot 6","key.hotbar.7":"Hotbar slot 7","key.hotbar.8":"Hotbar slot 8","key.hotbar.9":"Hotbar slot 9","key.inventory":"Open/close inventory","key.jump":"Jump","key.left":"Strafe left","key.loadToolbarActivator":"Load toolbar activator","key.pickItem":"Pick block","key.playerlist":"List players","key.right":"Strafe right","key.saveToolbarActivator":"Save toolbar activator","key.screenshot":"Take screenshot","key.smoothCamera":"Toggle cinematic camera","key.sneak":"Sneak","key.spectatorOutlines":"Highlight players (Spectators)","key.sprint":"Sprint","key.swapOffhand":"Swap item with offhand","key.togglePerspective":"Toggle perspective","key.use":"Use item/place block","location.biome":"Biome","location.block":"Block","location.dimension":"Dimension","location.feature":"Structure feature","location.structure":"Structure","location.fluid":"Fluid","location.light":"Light","location.light.light":"Visible light level","location.position":"Position","location.position.x":"X","location.position.y":"Y","location.position.z":"Z","location.smokey":"Smokey","loot_condition_type.alternative":"Alternative","loot_condition_type.block_state_property":"Block state properties","loot_condition_type.damage_source_properties":"Damage source properties","loot_condition_type.entity_properties":"Entity properties","loot_condition_type.entity_scores":"Entity scores","loot_condition_type.inverted":"Inverted","loot_condition_type.killed_by_player":"Killed by player","loot_condition_type.location_check":"Location check","loot_condition_type.match_tool":"Match tool","loot_condition_type.random_chance":"Random chance","loot_condition_type.random_chance_with_looting":"Random chance with looting","loot_condition_type.reference":"Reference","loot_condition_type.survives_explosion":"Survives explosion","loot_condition_type.table_bonus":"Table bonus","loot_condition_type.time_check":"Time check","loot_condition_type.value_check":"Value check","loot_condition_type.weather_check":"Weather check","loot_entry.dynamic.name":"Name","loot_entry.item.name":"Name","loot_entry.loot_table.name":"Loot table name","loot_entry.quality":"Quality","loot_entry.tag.expand":"Expand","loot_entry.tag.expand.help":"If false, entry will return all contents of tag, otherwise entry will behave as multiple item entries.","loot_entry.tag.name":"Item tag name","loot_entry.type":"Type","loot_entry.weight":"Weight","loot_entry.functions":"Functions","loot_entry.functions.entry":"Function","loot_function_type.apply_bonus":"Apply bonus","loot_function_type.copy_name":"Copy name","loot_function_type.copy_nbt":"Copy NBT","loot_function_type.copy_state":"Copy block states","loot_function_type.enchant_randomly":"Enchant randomly","loot_function_type.enchant_with_levels":"Enchant with levels","loot_function_type.exploration_map":"Exploration map properties","loot_function_type.explosion_decay":"Explosion decay","loot_function_type.fill_player_head":"Fill player head","loot_function_type.furnace_smelt":"Furnace smelt","loot_function_type.limit_count":"Limit count","loot_function_type.looting_enchant":"Looting enchant","loot_function_type.set_attributes":"Set attributes","loot_function_type.set_banner_pattern":"Set banner pattern","loot_function_type.set_contents":"Set contents","loot_function_type.set_count":"Set count","loot_function_type.set_damage":"Set damage","loot_function_type.set_data":"Set data","loot_function_type.set_enchantments":"Set enchantments","loot_function_type.set_instrument":"Set instrument","loot_function_type.set_loot_table":"Set loot table","loot_function_type.set_lore":"Set lore","loot_function_type.set_name":"Set name","loot_function_type.set_nbt":"Set NBT","loot_function_type.set_potion":"Set potion","loot_function_type.set_stew_effect":"Set stew effect","loot_pool.bonus_rolls":"Bonus rolls","loot_pool.entries":"Entries","loot_pool.entries.entry":"Entry","loot_pool.rolls":"Rolls","loot_pool.rolls.help":"The amount of entries that are randomly chosen.","loot_pool_entry_type.alternatives":"Alternatives","loot_pool_entry_type.alternatives.help":"Tests conditions of the child entries and executes the first that can run.","loot_pool_entry_type.dynamic":"Dynamic","loot_pool_entry_type.dynamic.help":"Gets block specific drops.","loot_pool_entry_type.empty":"Empty","loot_pool_entry_type.empty.help":"Adds nothing to the pool.","loot_pool_entry_type.group":"Group","loot_pool_entry_type.group.help":"Executes all child entries when own conditions pass.","loot_pool_entry_type.item":"Item","loot_pool_entry_type.item.help":"Adds a single item.","loot_pool_entry_type.loot_table":"Loot table","loot_pool_entry_type.loot_table.help":"Adds the contents of another loot table.","loot_pool_entry_type.sequence":"Sequence","loot_pool_entry_type.sequence.help":"Executes child entries until the first one that can't run due to conditions.","loot_pool_entry_type.tag":"Item tag","loot_pool_entry_type.tag.help":"Adds the contents of an item tag.","loot_table.pools":"Pools","loot_table.pools.entry":"Pool","loot_table.type":"Type","luck_based":"Luck-based","material_condition.biome.biome_is":"Biome","material_condition.noise_threshold.noise":"Noise","material_condition.noise_threshold.min_threshold":"Min threshold","material_condition.noise_threshold.max_threshold":"Max threshold","material_condition.not.invert":"Invert","material_condition.stone_depth.offset":"Offset","material_condition.stone_depth.surface_type":"Surface","material_condition.stone_depth.add_surface_depth":"Add surface depth","material_condition.stone_depth.add_surface_secondary_depth":"Add surface secondary depth","material_condition.stone_depth.secondary_depth_range":"Secondary depth range","material_condition.vertical_gradient.random_name":"Random name","material_condition.vertical_gradient.true_at_and_below":"True at and below","material_condition.vertical_gradient.false_at_and_above":"False at and above","material_condition.water.offset":"Offset","material_condition.water.surface_depth_multiplier":"Surface depth multiplier","material_condition.water.add_stone_depth":"Add stone depth","material_condition.y_above.anchor":"Anchor","material_condition.y_above.surface_depth_multiplier":"Surface depth multiplier","material_condition.y_above.add_stone_depth":"Add stone depth","material_rule.condition.if_true":"If true","material_rule.condition.then_run":"Then run","material_rule.block.result_state":"Result state","material_rule.sequence.sequence":"Sequence","material_rule.sequence.sequence.entry":"Rule","mob_category.monster":"Monster","mob_category.creature":"Creature","mob_category.ambient":"Ambient","mob_category.axolotls":"Axolotls","mob_category.underground_water_creature":"Underground water creature","mob_category.water_creature":"Water creature","mob_category.water_ambient":"Water ambient","mob_category.misc":"Misc","model.parent":"Parent","model.ambientocclusion":"Ambient occlusion","model.gui_light":"GUI light","model.textures":"Textures","model.elements":"Elements","model.elements.entry":"Element","model_element.from":"From","model_element.to":"To","model_element.rotation":"Rotation","model_element.rotation.origin":"Origin","model_element.rotation.axis":"Axis","model_element.rotation.angle":"Angle","model_element.rotation.rescale":"Rescale","model_element.shade":"Shade","model_element.faces":"Faces","model_element.faces.texture":"Texture","model_element.faces.uv":"UV","model_element.faces.cullface":"Cullface","model_element.faces.rotation":"Rotation","model_element.faces.tintindex":"Tint index","model.display":"Display","model.overrides":"Overrides","model.overrides.entry":"Override","model_override.predicate":"Predicate","model_override.model":"Model","model_variant.object":"Single","model_variant.list":"Multiple","model_variant.model":"Model","model_variant.x":"X rotation","model_variant.y":"Y rotation","model_variant.uvlock":"UV lock","model_variant.weight":"Weight","multipart_condition.OR":"Or","multipart_condition.object":"Condition","multipart_condition.or":"Or","multipart_condition.OR.entry":"Condition","nbt_operation.op":"Operation","nbt_operation.op.append":"Append","nbt_operation.op.merge":"Merge","nbt_operation.op.replace":"Replace","nbt_operation.source":"Source","nbt_operation.target":"Target","nbt_provider.source":"Source","nbt_provider.target":"Target","nbt_provider.type":"Type","nbt_provider.type.context":"Context+","nbt_provider.type.storage":"Storage","nbt_provider.type.string":"Context","noise_parameters.string":"Reference","noise_parameters.object":"Inline","noise_parameters.amplitudes":"Amplitudes","noise_parameters.amplitudes.entry":"Octave %0%","noise_parameters.firstOctave":"First octave","noise_settings.aquifers_enabled":"Aquifers enabled","noise_settings.bedrock_floor_position":"Bedrock floor position","noise_settings.bedrock_floor_position.help":"Position of the bedrock floor. Higher numbers move the floor up.","noise_settings.bedrock_roof_position":"Bedrock roof position","noise_settings.bedrock_roof_position.help":"Relative position of the bedrock roof starting at the world height. Higher numbers move the roof down.","noise_settings.biome":"Biome","noise_settings.deepslate_enabled":"Deepslate enabled","noise_settings.default_block":"Default block","noise_settings.default_fluid":"Default fluid","noise_settings.disable_mob_generation":"Disable mob generation","noise_settings.disable_mob_generation.help":"If true, mobs will not spawn during generation.","noise_settings.legacy_random_source":"Legacy random source","noise_settings.min_surface_level":"Min surface level","noise_settings.name":"Name","noise_settings.noise":"Noise options","noise_settings.noise_caves_enabled":"Noise caves enabled","noise_settings.noise.amplified":"Amplified","noise_settings.noise.bottom_slide":"Bottom slide","noise_settings.noise.bottom_slide.help":"Adds or removes terrain at the bottom of the world. Does nothing when size is 0.","noise_settings.noise.bottom_slide.offset":"Offset","noise_settings.noise.bottom_slide.offset.help":"Defines an range of 'Offset * Size vertical * 4' blocks at the bottom of the world where the density is set to the target.","noise_settings.noise.bottom_slide.size":"Size","noise_settings.noise.bottom_slide.size.help":"Defines a range of 'Size * Size vertical * 4' blocks where the existing density and target are interpolated.","noise_settings.noise.bottom_slide.target":"Target","noise_settings.noise.bottom_slide.target.help":"The target density. Positive values add terrain and negative values remove terrain.","noise_settings.noise.density_factor":"Density factor","noise_settings.noise.density_factor.help":"Determines how much the height influences the terrain. Positive values produce land at the bottom. Values close to 0 produce uniform cave-like terrain.","noise_settings.noise.density_offset":"Density offset","noise_settings.noise.density_offset.help":"Affects the average terrain height. A value of 0 produces terrain land height at half the height. Positive values raise the height.","noise_settings.noise.height":"Height","noise_settings.noise.height.help":"The total height where blocks can generate. Max Y = Min Y + Height.","noise_settings.noise.island_noise_override":"Island noise override","noise_settings.noise.island_noise_override.help":"If true, terrain will be shaped like islands similar to the end.","noise_settings.noise.large_biomes":"Large biomes","noise_settings.noise.min_y":"Min Y","noise_settings.noise.min_y.help":"The minimum height where blocks start generating.","noise_settings.noise.random_density_offset":"Random density offset","noise_settings.noise.sampling":"Sampling","noise_settings.noise.sampling.xz_factor":"XZ factor","noise_settings.noise.sampling.xz_scale":"XZ scale","noise_settings.noise.sampling.y_factor":"Y factor","noise_settings.noise.sampling.y_scale":"Y scale","noise_settings.noise.simplex_surface_noise":"Simplex surface noise","noise_settings.noise.size_horizontal":"Size horizontal","noise_settings.noise.size_vertical":"Size vertical","noise_settings.noise.top_slide":"Top slide","noise_settings.noise.top_slide.help":"Adds or removes terrain at the top of the world. Does nothing when size is 0.","noise_settings.noise.top_slide.offset":"Offset","noise_settings.noise.top_slide.offset.help":"Defines an range of 'Offset * Size Vertical * 4' blocks at the top of the world where the density is set to the target.","noise_settings.noise.top_slide.size":"Size","noise_settings.noise.top_slide.size.help":"Defines a range of 'Size * Size Vertical * 4' blocks where the existing density and target are interpolated.","noise_settings.noise.top_slide.target":"Target","noise_settings.noise.top_slide.target.help":"The target density. Positive values add terrain and negative values remove terrain.","noise_settings.noise.terrain_shaper":"Terrain shaper","noise_settings.noodle_caves_enabled":"Noodle caves enabled","noise_settings.ore_veins_enabled":"Ore veins enabled","noise_settings.sea_level":"Sea level","noise_settings.spawn_target":"Spawn Target","noise_settings.spawn_target.entry.temperature":"Temperature","noise_settings.spawn_target.entry.humidity":"Humidity","noise_settings.spawn_target.entry.continentalness":"Continentalness","noise_settings.spawn_target.entry.erosion":"Erosion","noise_settings.spawn_target.entry.weirdness":"Weirdness","noise_settings.spawn_target.entry.depth":"Depth","noise_settings.spawn_target.entry.offset":"Offset","noise_settings.structures":"Structures","noise_settings.structures.stronghold":"Stronghold","noise_settings.structures.stronghold.count":"Count","noise_settings.structures.stronghold.distance":"Distance","noise_settings.structures.stronghold.spread":"Spread","noise_settings.structures.structures":"Structures","noise_settings.surface_rule":"Surface rule","noise_settings.noise_router":"Noise router","noise_settings.noise_router.barrier":"Barrier","noise_settings.noise_router.fluid_level_floodedness":"Fluid level floodedness","noise_settings.noise_router.fluid_level_spread":"Fluid level spread","noise_settings.noise_router.lava":"Lava","noise_settings.noise_router.temperature":"Temperature","noise_settings.noise_router.vegetation":"Vegetation","noise_settings.noise_router.continents":"Continents","noise_settings.noise_router.erosion":"Erosion","noise_settings.noise_router.depth":"Depth","noise_settings.noise_router.ridges":"Ridges","noise_settings.noise_router.initial_density_without_jaggedness":"Initial density without jaggedness","noise_settings.noise_router.final_density":"Final density","noise_settings.noise_router.vein_toggle":"Vein toggle","noise_settings.noise_router.vein_ridged":"Vein ridged","noise_settings.noise_router.vein_gap":"Vein gap","number_provider.max":"Max","number_provider.min":"Min","number_provider.n":"N","number_provider.p":"P","number_provider.scale":"Scale","number_provider.score":"Objective","number_provider.target":"Target","number_provider.type":"Type","number_provider.type.binomial":"Binomial","number_provider.type.constant":"Constant+","number_provider.type.number":"Constant","number_provider.type.object":"Uniform","number_provider.type.score":"Score","number_provider.type.uniform":"Uniform+","number_provider.value":"Number","placed_feature.string":"Reference","placed_feature.object":"Inline","placed_feature.feature":"Configured feature","placed_feature.placement":"Placement","placed_feature.placement.entry":"Modifier","player.advancements":"Advancements","player.advancements.entry":"Advancement","player.gamemode":"Game mode","player.level":"XP level","player.recipes":"Recipes","player.stats":"Statistics","player.stats.entry":"Statistic","player.stats.looking_at":"Looking at","pos_rule_test.always_true":"Always true","pos_rule_test.axis":"Axis","pos_rule_test.axis.x":"X","pos_rule_test.axis.y":"Y","pos_rule_test.axis.z":"Z","pos_rule_test.axis_aligned_linear_pos":"Axis aligned linear pos","pos_rule_test.linear_pos":"Linear pos","pos_rule_test.max_chance":"Max chance","pos_rule_test.max_dist":"Max dist","pos_rule_test.min_chance":"Min chance","pos_rule_test.min_dist":"Min dist","pos_rule_test.predicate_type":"Type","processor.block_age.mossiness":"Mossiness","processor.block_ignore.blocks":"Blocks","processor.block_ignore.blocks.entry":"State","processor.block_rot.integrity":"Integrity","processor.block_rot.rottable_blocks":"Rottable blocks","processor.gravity.heightmap":"Heightmap","processor.gravity.offset":"Offset","processor.processor_type":"Type","processor.rule.rules":"Rules","processor.rule.rules.entry":"Rule","processor_list.processors":"Processors","processor_list.processors.entry":"Processor","processor_rule.input_predicate":"Input predicate","processor_rule.location_predicate":"Location predicate","processor_rule.output_nbt":"Output NBT","processor_rule.output_state":"Output state","processor_rule.position_predicate":"Position predicate","processors.object":"Inline","processors.string":"Reference","range.binomial":"Binomial","range.max":"Max","range.min":"Min","range.n":"N","range.number":"Exact","range.object":"Range","range.p":"P","range.type":"Type","range.uniform":"Uniform","recipe.type":"Type","recipe.group":"Group","recipe.group.help":"Identifier to group multiple recipes in the recipe book.","recipe.ingredients":"Ingredients","recipe.ingredient":"Ingredient","recipe.ingredient.item":"Item","recipe.ingredient.tag":"Item tag","recipe.pattern":"Pattern","recipe.pattern.entry":"Row","recipe.key":"Key","recipe.key.item":"Item","recipe.key.tag":"Item tag","recipe.result":"Result","recipe.result.item":"Item","recipe.result.count":"Count","recipe.experience":"Experience","recipe.cookingtime":"Cooking time","recipe.count":"Count","recipe.base":"Base","recipe.base.item":"Item","recipe.base.tag":"Item tag","recipe.addition":"Addition","recipe.addition.item":"Item","recipe.addition.tag":"Item tag","advancement.requirements":"Requirements","root_placer.root_provider":"Root provider","root_placer.trunk_offset_y":"Trunk offset Y","root_placer.above_root_placement":"Above root placement","root_placer.above_root_placement.above_root_placement_chance":"Chance","root_placer.above_root_placement.above_root_provider":"Above root provider","root_placer.mangrove_root_placer.mangrove_root_placement":"Mangrove root placement","root_placer.mangrove_root_placer.mangrove_root_placement.can_grow_through":"Can grow through","root_placer.mangrove_root_placer.mangrove_root_placement.muddy_roots_in":"Muddy roots in","root_placer.mangrove_root_placer.mangrove_root_placement.muddy_roots_provider":"Muddy roots provider","root_placer.mangrove_root_placer.mangrove_root_placement.max_root_width":"Max root width","root_placer.mangrove_root_placer.mangrove_root_placement.max_root_length":"Max root length","root_placer.mangrove_root_placer.mangrove_root_placement.random_skew_chance":"Random skew chance","rule_test.always_true":"Always true","rule_test.block":"Block","rule_test.block_match":"Block match","rule_test.block_state":"State","rule_test.blockstate_match":"Block state match","rule_test.predicate_type":"Type","rule_test.probability":"Probability","rule_test.random_block_match":"Random block match","rule_test.random_blockstate_match":"Random block state match","rule_test.tag":"Tag","rule_test.tag_match":"Tag match","score_provider.name":"Name","score_provider.target":"Target","score_provider.type":"Type","score_provider.type.context":"Context+","score_provider.type.fixed":"Fixed","score_provider.type.string":"Context","slot.chest":"Chest","slot.feet":"Feet","slot.head":"Head","slot.legs":"Legs","slot.mainhand":"Mainhand","slot.offhand":"Offhand","statistic.stat":"Statistic","statistic.type":"Type","statistic.type.broken":"Broken","statistic.type.crafted":"Crafted","statistic.type.custom":"Custom","statistic.type.dropped":"Dropped","statistic.type.killed":"Killed","statistic.type.killedByTeam":"Killed by team","statistic.type.killed_by":"Killed by","statistic.type.mined":"Mined","statistic.type.picked_up":"Picked up","statistic.type.teamkill":"Killed team","statistic.type.used":"Used","statistic.value":"Value","status_effect.ambient":"Ambient","status_effect.amplifier":"Amplifier","status_effect.duration":"Duration","status_effect.visible":"Visible","structure_feature.biome_temp":"Biome temperature","structure_feature.biome_temp.cold":"Cold","structure_feature.biome_temp.warm":"Warm","structure_feature.cluster_probability":"Cluster probability","structure_feature.config":"Config","structure_feature.is_beached":"Is beached","structure_feature.shipwreck.is_beached":"Is beached","structure_feature.large_probability":"Large probability","structure_feature.portal_type":"Portal type","structure_feature.portal_type.desert":"Desert","structure_feature.portal_type.jungle":"Jungle","structure_feature.portal_type.mountain":"Mountain","structure_feature.portal_type.nether":"Nether","structure_feature.portal_type.ocean":"Ocean","structure_feature.portal_type.standard":"Standard","structure_feature.portal_type.swamp":"Swamp","structure_feature.probability":"Probability","structure_feature.size":"Size","structure_feature.start_pool":"Start pool","structure_feature.type":"Type","structure_feature.type.mesa":"Mesa","structure_feature.type.normal":"Normal","structure_feature.biomes":"Biomes","structure_feature.biomes.entry":"Biome","structure_feature.adapt_noise":"Adapt noise","structure_feature.adapt_noise.help":"Whether it should add extra terrain below the structure.","structure_feature.terrain_adaptation":"Terrain adaptation","structure_feature.spawn_overrides":"Spawn overrides","structure_feature.spawn_overrides.bounding_box":"Bounding box","structure_feature.spawn_overrides.bounding_box.piece":"Piece","structure_feature.spawn_overrides.bounding_box.full":"Full","structure_feature.spawn_overrides.spawns":"Spawns","structure_feature.spawn_overrides.spawns.entry":"Spawn","structure_feature.spawn_overrides.spawns.entry.type":"Type","structure_feature.spawn_overrides.spawns.entry.weight":"Weight","structure_feature.spawn_overrides.spawns.entry.minCount":"Min count","structure_feature.spawn_overrides.spawns.entry.maxCount":"Max count","structure_feature.ruined_portal.setups":"Setups","structure_feature.ruined_portal.setups.entry":"Setup","structure_feature.ruined_portal.setups.entry.placement":"Placement","structure_feature.ruined_portal.setups.entry.air_pocket_probability":"Air pocket probability","structure_feature.ruined_portal.setups.entry.mossiness":"Mossiness","structure_feature.ruined_portal.setups.entry.overgrown":"Overgrown","structure_feature.ruined_portal.setups.entry.vines":"Vines","structure_feature.ruined_portal.setups.entry.can_be_cold":"Can be cold","structure_feature.ruined_portal.setups.entry.replace_with_blackstone":"Replace with blackstone","structure_feature.ruined_portal.setups.entry.weight":"Weight","structure_feature.jigsaw.start_pool":"Start pool","structure_feature.jigsaw.size":"Size","structure_feature.jigsaw.start_height":"Start height","structure_feature.jigsaw.start_jigsaw_name":"Start jigsaw name","structure_feature.jigsaw.project_start_to_heightmap":"Project start to heightmap","structure_feature.jigsaw.max_distance_from_center":"Max distance from center","structure_feature.jigsaw.use_expansion_hack":"Use expansion hack","structure_feature.mineshaft.mineshaft_type":"Mineshaft type","structure_feature.nether_fossil.height":"Height","structure_feature.step":"Generation step","structure_placement.type":"Type","structure_placement.salt":"Salt","structure_placement.locate_offset":"Locate offset","structure_placement.exclusion_zone":"Exclusion zone","structure_placement.exclusion_zone.other_set":"Other set","structure_placement.exclusion_zone.chunk_count":"Chunk count","structure_placement.frequency":"Frequency","structure_placement.frequency_reduction_method":"Frequency reduction method","structure_placement.frequency_reduction_method.default":"Default","structure_placement.frequency_reduction_method.legacy_type_1":"Legacy 1","structure_placement.frequency_reduction_method.legacy_type_2":"Legacy 2","structure_placement.frequency_reduction_method.legacy_type_3":"Legacy 3","structure_placement.concentric_rings.distance":"Distance","structure_placement.concentric_rings.spread":"Spread","structure_placement.concentric_rings.count":"Count","structure_placement.concentric_rings.preferred_biomes":"Preferred biomes","structure_placement.random_spread.spread_type":"Spread type","structure_placement.random_spread.spread_type.linear":"Linear","structure_placement.random_spread.spread_type.triangular":"Triangular","structure_placement.random_spread.spacing":"Spacing","structure_placement.random_spread.spacing.help":"The average distance in chunks between two structures of this type.","structure_placement.random_spread.separation":"Separation","structure_placement.random_spread.separation.help":"The minumum distance in chunks between two structures of this type.","structure_placement.random_spread.salt":"Salt","structure_placement.random_spread.locate_offset":"Locate offset","structure_set.string":"Reference","structure_set.object":"Inline","structure_set.structures":"Structures","structure_set.structures.entry":"Structure","structure_set.structures.entry.structure":"Structure feature","structure_set.structures.entry.weight":"Weight","structure_set.placement":"Placement","surface_builder.config":"Config","surface_builder.top_material":"Top material","surface_builder.type":"Type","surface_builder.under_material":"Under material","surface_builder.underwater_material":"Underwater material","table.type":"Type","table.type.block":"Block","table.type.chest":"Chest","table.type.empty":"Empty","table.type.entity":"Entity","table.type.fishing":"Fishing","table.type.generic":"Generic","tag.string":"Single","tag.list":"Multiple","tag.list.string":"Reference","tag.list.object":"Inline","tag.replace":"Replace","tag.values":"Values","terrain_shaper.offset":"Offset","terrain_shaper.factor":"Factor","terrain_shaper.jaggedness":"Jaggedness","terrain_spline.number":"Constant","terrain_spline.object":"Spline","terrain_spline.coordinate":"Coordinate","terrain_spline.coordinate.continents":"Continents","terrain_spline.coordinate.erosion":"Erosion","terrain_spline.coordinate.weirdness":"Weirdness","terrain_spline.coordinate.ridges":"Ridges","terrain_spline.points":"Points","terrain_spline.points.entry":"Point","terrain_spline.points.entry.location":"Location","terrain_spline.points.entry.value":"Value","terrain_spline.points.entry.derivative":"Derivative","template_element.element_type":"Type","template_element.elements":"Elements","template_element.feature":"Placed feature","template_element.location":"Location","template_element.processors":"Processors","template_element.projection":"Projection","template_element.projection.rigid":"Rigid","template_element.projection.terrain_matching":"Terrain matching","template_pool.elements":"Elements","template_pool.elements.entry":"Element","template_pool.elements.entry.element":"Element","template_pool.elements.entry.weight":"Weight","template_pool.fallback":"Fallback","template_pool.name":"Name","text_component":"Text component","text_component.boolean":"Boolean","text_component.list":"Array","text_component.number":"Number","text_component.object":"Object","text_component.object.text":"Plain text","text_component.object.translation":"Translated text","text_component.object.score":"Score value","text_component.object.selector":"Entity name","text_component.object.keybind":"Keybind","text_component.object.nbt":"NBT value","text_component.string":"String","text_component_object.block":"Block","text_component_object.bold":"Bold","text_component_object.clickEvent":"Click event","text_component_object.clickEvent.action":"Action","text_component_object.clickEvent.action.change_page":"Change page","text_component_object.clickEvent.action.copy_to_clipboard":"Copy to clipboard","text_component_object.clickEvent.action.open_file":"Open file","text_component_object.clickEvent.action.open_url":"Open url","text_component_object.clickEvent.action.run_command":"Run command","text_component_object.clickEvent.action.suggest_command":"Suggest command","text_component_object.clickEvent.value":"Value","text_component_object.color":"Color","text_component_object.entity":"Entity","text_component_object.extra":"Extra","text_component_object.font":"Font","text_component_object.hoverEvent":"Hover event","text_component_object.hoverEvent.action":"Action","text_component_object.hoverEvent.action.show_entity":"Show entity","text_component_object.hoverEvent.action.show_item":"Show item","text_component_object.hoverEvent.action.show_text":"Show text","text_component_object.hoverEvent.contents":"Contents","text_component_object.hoverEvent.value":"Value","text_component_object.insertion":"Insertion","text_component_object.interpret":"Interpret","text_component_object.italic":"Italic","text_component_object.keybind":"Keybind","text_component_object.nbt":"NBT","text_component_object.obfuscated":"Obfuscated","text_component_object.score":"Score","text_component_object.score.name":"Name","text_component_object.score.objective":"Objective","text_component_object.score.value":"Value","text_component_object.selector":"Selector","text_component_object.storage":"Storage","text_component_object.strikethrough":"Strikethrough","text_component_object.text":"Text","text_component_object.translate":"Translate","text_component_object.underlined":"Underlined","text_component_object.with":"With","text_decoration.translation_key":"Translation key","text_decoration.parameters":"Parameters","text_decoration.style":"Style","texture.alias":"Alias","texture.reference":"Reference","tree_decorator.attached_to_leaves.probability":"Probability","tree_decorator.attached_to_leaves.exclusion_radius_xz":"Exclusion radius XZ","tree_decorator.attached_to_leaves.exclusion_radius_y":"Exclusion radius Y","tree_decorator.attached_to_leaves.required_empty_blocks":"Probability","tree_decorator.attached_to_leaves.block_provider":"Block provider","tree_decorator.attached_to_leaves.directions":"Directions","tree_decorator.attached_to_leaves.directions.entry":"Direction","tree_decorator.alter_ground.provider":"Block provider","tree_decorator.beehive.probability":"Probability","tree_decorator.cocoa.probability":"Probability","tree_decorator.leave_vine.probability":"Probability","tree_decorator.type":"Type","true":"True","trunk_placer.base_height":"Base height","trunk_placer.height_rand_a":"Height random A","trunk_placer.height_rand_b":"Height random B","trunk_placer.bending_trunk_placer.bend_length":"Bend length","trunk_placer.bending_trunk_placer.min_height_for_leaves":"Min height for leaves","trunk_placer.upwards_branching_trunk_placer.can_grow_through":"Can grow through","trunk_placer.upwards_branching_trunk_placer.extra_branch_steps":"Extra branch steps","trunk_placer.upwards_branching_trunk_placer.extra_branch_length":"Extra branch length","trunk_placer.upwards_branching_trunk_placer.place_branch_per_log_probability":"Place branch per log probability","trunk_placer.type":"Type","uniform_int.base":"Base","uniform_int.number":"Constant","uniform_int.object":"Uniform","uniform_int.spread":"Spread","unset":"Unset","update.pack_format":"Update the pack_format to %0%","vertical_anchor.absolute":"Absolute","vertical_anchor.above_bottom":"Above bottom","vertical_anchor.below_top":"Below top","world.bonus_chest":"Spawn bonus chest","world.generate_features":"Generate features","world.seed":"Seed","world_preset.dimensions":"Dimensions","world_settings.bonus_chest":"Spawn bonus chest","world_settings.dimensions":"Dimensions","world_settings.generate_features":"Generate features","world_settings.seed":"World seed","worldgen.warning":"This feature is highly experimental and unstable. It can change in future versions. Expect the game to crash when creating worlds.","worldgen/biome_source.checkerboard":"Checkerboard","worldgen/biome_source.checkerboard.help":"Biomes generate in a checkerboard chunk pattern.","worldgen/biome_source.fixed":"Fixed","worldgen/biome_source.fixed.help":"One biome for the whole world.","worldgen/biome_source.multi_noise":"Multi noise","worldgen/biome_source.multi_noise.help":"Custom biome distribution with configurable parameters.","worldgen/biome_source.the_end":"The end","worldgen/biome_source.the_end.help":"Biome distribution for the End.","worldgen/biome_source.vanilla_layered":"Vanilla layered","worldgen/biome_source.vanilla_layered.help":"Biome distribution for the Overworld.","worldgen/block_placer_type.column_placer":"Column","worldgen/block_placer_type.double_plant_placer":"Double plant","worldgen/block_placer_type.simple_block_placer":"Simple","worldgen/block_state_provider_type.dual_noise_provider":"Dual noise provider","worldgen/block_state_provider_type.forest_flower_provider":"Flower forest","worldgen/block_state_provider_type.noise_threshold_provider":"Noise threshold provider","worldgen/block_state_provider_type.noise_provider":"Noise provider","worldgen/block_state_provider_type.plain_flower_provider":"Plain flower","worldgen/block_state_provider_type.randomized_int_state_provider":"Randomized int","worldgen/block_state_provider_type.rotated_block_provider":"Rotated block","worldgen/block_state_provider_type.simple_state_provider":"Simple state","worldgen/block_state_provider_type.weighted_state_provider":"Weighted state","worldgen/carver.canyon":"Canyon","worldgen/carver.cave":"Cave","worldgen/carver.nether_cave":"Nether cave","worldgen/carver.underwater_canyon":"Underwater canyon","worldgen/carver.underwater_cave":"Underwater cave","worldgen/chunk_generator.debug":"Debug world","worldgen/chunk_generator.flat":"Superflat","worldgen/chunk_generator.noise":"Default","worldgen/decorator.carving_mask":"Carving mask","worldgen/decorator.cave_surface":"Cave surface","worldgen/decorator.chance":"Chance","worldgen/decorator.count":"Count","worldgen/decorator.count_extra":"Count extra","worldgen/decorator.count_multilayer":"Count multilayer","worldgen/decorator.count_noise":"Count noise","worldgen/decorator.count_noise_biased":"Count noise biased","worldgen/decorator.dark_oak_tree":"Dark oak tree","worldgen/decorator.decorated":"Decorated","worldgen/decorator.end_gateway":"End gateway","worldgen/decorator.heightmap":"Heightmap","worldgen/decorator.heightmap_spread_double":"Heightmap spread double","worldgen/decorator.iceberg":"Iceberg","worldgen/decorator.lava_lake":"Lava lake","worldgen/decorator.nope":"Nothing","worldgen/decorator.range":"Range","worldgen/decorator.spread_32_above":"Spread 32 above","worldgen/decorator.square":"Square","worldgen/decorator.water_depth_threshold":"Water depth threshold","worldgen/density_function_type.abs":"Abs","worldgen/density_function_type.add":"Add","worldgen/density_function_type.beardifier":"Beardifier","worldgen/density_function_type.blend_alpha":"Blend alpha","worldgen/density_function_type.blend_density":"Blend density","worldgen/density_function_type.blend_offset":"Blend offset","worldgen/density_function_type.cache_2d":"Cache 2D","worldgen/density_function_type.cache_all_in_cell":"Cache all in cell","worldgen/density_function_type.cache_once":"Cache once","worldgen/density_function_type.clamp":"Clamp","worldgen/density_function_type.constant":"Constant","worldgen/density_function_type.cube":"Cube","worldgen/density_function_type.end_islands":"End islands","worldgen/density_function_type.flat_cache":"Flat cache","worldgen/density_function_type.half_negative":"Half negative","worldgen/density_function_type.interpolated":"Interpolated","worldgen/density_function_type.max":"Max","worldgen/density_function_type.min":"Min","worldgen/density_function_type.mul":"Mul","worldgen/density_function_type.noise":"Noise","worldgen/density_function_type.old_blended_noise":"Old blended noise","worldgen/density_function_type.quarter_negative":"Quarter negative","worldgen/density_function_type.range_choice":"Range Choice","worldgen/density_function_type.shift":"Shift","worldgen/density_function_type.shift_a":"Shift A","worldgen/density_function_type.shift_b":"Shift B","worldgen/density_function_type.shifted_noise":"Shifted noise","worldgen/density_function_type.slide":"Slide","worldgen/density_function_type.spline":"Spline","worldgen/density_function_type.square":"Square","worldgen/density_function_type.squeeze":"Squeeze","worldgen/density_function_type.terrain_shaper_spline":"Terrain shaper spline","worldgen/density_function_type.weird_scaled_sampler":"Weird scaled sampler","worldgen/density_function_type.y_clamped_gradient":"Y clamped gradient","worldgen/feature.bamboo":"Bamboo","worldgen/feature.basalt_columns":"Basalt columns","worldgen/feature.basalt_pillar":"Basalt pillar","worldgen/feature.block_column":"Block column","worldgen/feature.block_pile":"Block pile","worldgen/feature.blue_ice":"Blue ice","worldgen/feature.bonus_chest":"Bonus chest","worldgen/feature.chorus_plant":"Chorus plant","worldgen/feature.coral_claw":"Coral claw","worldgen/feature.coral_mushroom":"Coral mushroom","worldgen/feature.coral_tree":"Coral tree","worldgen/feature.decorated":"Decorated","worldgen/feature.delta_feature":"Delta feature","worldgen/feature.desert_well":"Desert well","worldgen/feature.disk":"Disk","worldgen/feature.dripstone_cluster":"Dripstone cluster","worldgen/feature.end_gateway":"End gateway","worldgen/feature.end_island":"End island","worldgen/feature.end_spike":"End spike","worldgen/feature.fill_layer":"Fill layer","worldgen/feature.flower":"Flower","worldgen/feature.forest_rock":"Forest rock","worldgen/feature.fossil":"Fossil","worldgen/feature.freeze_top_layer":"Freeze top layer","worldgen/feature.geode":"Geode","worldgen/feature.glow_lichen":"Glow lichen","worldgen/feature.glowstone_blob":"Glowstone blob","worldgen/feature.growing_plant":"Growing plant","worldgen/feature.huge_brown_mushroom":"Huge brown mushroom","worldgen/feature.huge_fungus":"Huge fungus","worldgen/feature.huge_red_mushroom":"Huge red mushroom","worldgen/feature.ice_patch":"Ice patch","worldgen/feature.ice_spike":"Ice spike","worldgen/feature.iceberg":"Iceberg","worldgen/feature.kelp":"Kelp","worldgen/feature.lake":"Lake","worldgen/feature.large_dripstone":"Large dripstone","worldgen/feature.monster_room":"Monster room","worldgen/feature.multiface_growth":"Multiface growth","worldgen/feature.nether_forest_vegetation":"Nether forest vegetation","worldgen/feature.netherrack_replace_blobs":"Netherrack replace blobs","worldgen/feature.no_bonemeal_flower":"No bonemeal flower","worldgen/feature.no_op":"Nothing","worldgen/feature.ore":"Ore","worldgen/feature.pointed_dripstone":"Pointed dripstone","worldgen/feature.random_boolean_selector":"Random boolean selector","worldgen/feature.random_patch":"Random patch","worldgen/feature.random_selector":"Random selector","worldgen/feature.replace_single_block":"Replace single block","worldgen/feature.root_system":"Root system","worldgen/feature.scattered_ore":"Scattered ore","worldgen/feature.sculk_patch":"Sculk patch","worldgen/feature.sea_pickle":"Sea pickle","worldgen/feature.seagrass":"Seagrass","worldgen/feature.simple_block":"Simple block","worldgen/feature.simple_random_selector":"Simple random selector","worldgen/feature.small_dripstone":"Small dripstone","worldgen/feature.spring_feature":"Spring feature","worldgen/feature.tree":"Tree","worldgen/feature.twisting_vines":"Twisting vines","worldgen/feature.underwater_magma":"Underwater magma","worldgen/feature.vegetation_patch":"Vegetation patch","worldgen/feature.vines":"Vines","worldgen/feature.void_start_platform":"Void start platform","worldgen/feature.waterlogged_vegetation_patch":"Waterlogged vegetation patch","worldgen/feature.weeping_vines":"Weeping vines","worldgen/feature_size_type.three_layers_feature_size":"Three layers","worldgen/feature_size_type.two_layers_feature_size":"Two layers","worldgen/foliage_placer_type.acacia_foliage_placer":"Acacia","worldgen/foliage_placer_type.blob_foliage_placer":"Blob","worldgen/foliage_placer_type.bush_foliage_placer":"Bush","worldgen/foliage_placer_type.dark_oak_foliage_placer":"Dark oak","worldgen/foliage_placer_type.fancy_foliage_placer":"Fancy","worldgen/foliage_placer_type.jungle_foliage_placer":"Jungle","worldgen/foliage_placer_type.mega_pine_foliage_placer":"Mega pine","worldgen/foliage_placer_type.random_spread_foliage_placer":"Random spread","worldgen/foliage_placer_type.pine_foliage_placer":"Pine","worldgen/foliage_placer_type.spruce_foliage_placer":"Spruce","worldgen/material_condition.above_preliminary_surface":"Above preliminary surface","worldgen/material_condition.biome":"Biome","worldgen/material_condition.hole":"Hole","worldgen/material_condition.noise_threshold":"Noise threshold","worldgen/material_condition.not":"Not","worldgen/material_condition.steep":"Steep","worldgen/material_condition.stone_depth":"Stone depth","worldgen/material_condition.temperature":"Temperature","worldgen/material_condition.vertical_gradient":"Vertical gradient","worldgen/material_condition.water":"Water","worldgen/material_condition.y_above":"Y above","worldgen/material_rule.bandlands":"Bandlands","worldgen/material_rule.block":"Block","worldgen/material_rule.condition":"Condition","worldgen/material_rule.sequence":"Sequence","worldgen/placement_modifier_type.biome":"Biome","worldgen/placement_modifier_type.block_predicate_filter":"Block predicate filter","worldgen/placement_modifier_type.carving_mask":"Carving mask","worldgen/placement_modifier_type.count":"Count","worldgen/placement_modifier_type.count_on_every_layer":"Count on every layer","worldgen/placement_modifier_type.environment_scan":"Environment scan","worldgen/placement_modifier_type.height_range":"Height range","worldgen/placement_modifier_type.heightmap":"Heightmap","worldgen/placement_modifier_type.in_square":"In square","worldgen/placement_modifier_type.noise_based_count":"Noise based count","worldgen/placement_modifier_type.noise_threshold_count":"Noise threshold count","worldgen/placement_modifier_type.random_offset":"Random offset","worldgen/placement_modifier_type.rarity_filter":"Rarity filter","worldgen/placement_modifier_type.surface_relative_threshold_filter":"Surface relative threshold filter","worldgen/placement_modifier_type.surface_water_depth_filter":"Surface water depth filter","worldgen/root_placer_type.mangrove_root_placer":"Mangrove","worldgen/structure_placement.concentric_rings":"Concentric rings","worldgen/structure_placement.random_spread":"Random spread","worldgen/structure_pool_element.empty_pool_element":"Empty","worldgen/structure_pool_element.feature_pool_element":"Feature","worldgen/structure_pool_element.legacy_single_pool_element":"Legacy single","worldgen/structure_pool_element.list_pool_element":"List","worldgen/structure_pool_element.single_pool_element":"Single","worldgen/structure_processor.blackstone_replace":"Blackstone replace","worldgen/structure_processor.block_age":"Block age","worldgen/structure_processor.block_ignore":"Block ignore","worldgen/structure_processor.block_rot":"Block rot","worldgen/structure_processor.gravity":"Gravity","worldgen/structure_processor.jigsaw_replacement":"Jigsaw replacement","worldgen/structure_processor.lava_submerged_block":"Lava submerged block","worldgen/structure_processor.nop":"Nothing","worldgen/structure_processor.rule":"Rule","worldgen/tree_decorator_type.alter_ground":"Alter ground","worldgen/tree_decorator_type.attached_to_leaves":"Attached to leaves","worldgen/tree_decorator_type.beehive":"Beehive","worldgen/tree_decorator_type.cocoa":"Cocoa","worldgen/tree_decorator_type.leave_vine":"Leave vine","worldgen/tree_decorator_type.trunk_vine":"Trunk vine","worldgen/trunk_placer_type.bending_trunk_placer":"Bending","worldgen/trunk_placer_type.dark_oak_trunk_placer":"Dark oak","worldgen/trunk_placer_type.fancy_trunk_placer":"Fancy","worldgen/trunk_placer_type.forking_trunk_placer":"Forking","worldgen/trunk_placer_type.giant_trunk_placer":"Giant","worldgen/trunk_placer_type.mega_jungle_trunk_placer":"Mega jungle","worldgen/trunk_placer_type.straight_trunk_placer":"Straight","worldgen/trunk_placer_type.upwards_branching_trunk_placer":"Upwards branching"}`);export{e as default}; +//# sourceMappingURL=en.bbf62323.js.map diff --git a/assets/en.bbf62323.js.map b/assets/en.bbf62323.js.map new file mode 100644 index 00000000..613c1279 --- /dev/null +++ b/assets/en.bbf62323.js.map @@ -0,0 +1 @@ +{"version":3,"file":"en.bbf62323.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/assets/howler.86456981.js b/assets/howler.d37a9b52.js similarity index 99% rename from assets/howler.86456981.js rename to assets/howler.d37a9b52.js index c653c08b..29557bc6 100644 --- a/assets/howler.86456981.js +++ b/assets/howler.d37a9b52.js @@ -1,4 +1,4 @@ -import{c as S}from"./index.2a99a61a.js";function L(b,g){return g.forEach(function(r){r&&typeof r!="string"&&!Array.isArray(r)&&Object.keys(r).forEach(function(u){if(u!=="default"&&!(u in b)){var i=Object.getOwnPropertyDescriptor(r,u);Object.defineProperty(b,u,i.get?i:{enumerable:!0,get:function(){return r[u]}})}})}),Object.freeze(Object.defineProperty(b,Symbol.toStringTag,{value:"Module"}))}var O={};/*! +import{c as S}from"./index.ece3de28.js";function L(b,g){return g.forEach(function(r){r&&typeof r!="string"&&!Array.isArray(r)&&Object.keys(r).forEach(function(u){if(u!=="default"&&!(u in b)){var i=Object.getOwnPropertyDescriptor(r,u);Object.defineProperty(b,u,i.get?i:{enumerable:!0,get:function(){return r[u]}})}})}),Object.freeze(Object.defineProperty(b,Symbol.toStringTag,{value:"Module"}))}var O={};/*! * howler.js v2.2.3 * howlerjs.com * @@ -17,4 +17,4 @@ import{c as S}from"./index.2a99a61a.js";function L(b,g){return g.forEach(functio * * MIT License */(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(r){var u=this;if(!u.ctx||!u.ctx.listener)return u;for(var i=u._howls.length-1;i>=0;i--)u._howls[i].stereo(r);return u},HowlerGlobal.prototype.pos=function(r,u,i){var c=this;if(!c.ctx||!c.ctx.listener)return c;if(u=typeof u!="number"?c._pos[1]:u,i=typeof i!="number"?c._pos[2]:i,typeof r=="number")c._pos=[r,u,i],typeof c.ctx.listener.positionX!="undefined"?(c.ctx.listener.positionX.setTargetAtTime(c._pos[0],Howler.ctx.currentTime,.1),c.ctx.listener.positionY.setTargetAtTime(c._pos[1],Howler.ctx.currentTime,.1),c.ctx.listener.positionZ.setTargetAtTime(c._pos[2],Howler.ctx.currentTime,.1)):c.ctx.listener.setPosition(c._pos[0],c._pos[1],c._pos[2]);else return c._pos;return c},HowlerGlobal.prototype.orientation=function(r,u,i,c,d,h){var p=this;if(!p.ctx||!p.ctx.listener)return p;var s=p._orientation;if(u=typeof u!="number"?s[1]:u,i=typeof i!="number"?s[2]:i,c=typeof c!="number"?s[3]:c,d=typeof d!="number"?s[4]:d,h=typeof h!="number"?s[5]:h,typeof r=="number")p._orientation=[r,u,i,c,d,h],typeof p.ctx.listener.forwardX!="undefined"?(p.ctx.listener.forwardX.setTargetAtTime(r,Howler.ctx.currentTime,.1),p.ctx.listener.forwardY.setTargetAtTime(u,Howler.ctx.currentTime,.1),p.ctx.listener.forwardZ.setTargetAtTime(i,Howler.ctx.currentTime,.1),p.ctx.listener.upX.setTargetAtTime(c,Howler.ctx.currentTime,.1),p.ctx.listener.upY.setTargetAtTime(d,Howler.ctx.currentTime,.1),p.ctx.listener.upZ.setTargetAtTime(h,Howler.ctx.currentTime,.1)):p.ctx.listener.setOrientation(r,u,i,c,d,h);else return s;return p},Howl.prototype.init=function(r){return function(u){var i=this;return i._orientation=u.orientation||[1,0,0],i._stereo=u.stereo||null,i._pos=u.pos||null,i._pannerAttr={coneInnerAngle:typeof u.coneInnerAngle!="undefined"?u.coneInnerAngle:360,coneOuterAngle:typeof u.coneOuterAngle!="undefined"?u.coneOuterAngle:360,coneOuterGain:typeof u.coneOuterGain!="undefined"?u.coneOuterGain:0,distanceModel:typeof u.distanceModel!="undefined"?u.distanceModel:"inverse",maxDistance:typeof u.maxDistance!="undefined"?u.maxDistance:1e4,panningModel:typeof u.panningModel!="undefined"?u.panningModel:"HRTF",refDistance:typeof u.refDistance!="undefined"?u.refDistance:1,rolloffFactor:typeof u.rolloffFactor!="undefined"?u.rolloffFactor:1},i._onstereo=u.onstereo?[{fn:u.onstereo}]:[],i._onpos=u.onpos?[{fn:u.onpos}]:[],i._onorientation=u.onorientation?[{fn:u.onorientation}]:[],r.call(this,u)}}(Howl.prototype.init),Howl.prototype.stereo=function(r,u){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"stereo",action:function(){i.stereo(r,u)}}),i;var c=typeof Howler.ctx.createStereoPanner=="undefined"?"spatial":"stereo";if(typeof u=="undefined")if(typeof r=="number")i._stereo=r,i._pos=[r,0,0];else return i._stereo;for(var d=i._getSoundIds(u),h=0;h= 0 && vol <= 1) {\n self._volume = vol;\n\n // Don't update any of the nodes if we are muted.\n if (self._muted) {\n return self;\n }\n\n // When using Web Audio, we just need to adjust the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n }\n\n // Loop through and change volume for all HTML5 audio nodes.\n for (var i=0; i=0; i--) {\n self._howls[i].unload();\n }\n\n // Create a new AudioContext to make sure it is fully reset.\n if (self.usingWebAudio && self.ctx && typeof self.ctx.close !== 'undefined') {\n self.ctx.close();\n self.ctx = null;\n setupAudioContext();\n }\n\n return self;\n },\n\n /**\n * Check for codec support of specific extension.\n * @param {String} ext Audio file extention.\n * @return {Boolean}\n */\n codecs: function(ext) {\n return (this || Howler)._codecs[ext.replace(/^x-/, '')];\n },\n\n /**\n * Setup various state values for global tracking.\n * @return {Howler}\n */\n _setup: function() {\n var self = this || Howler;\n\n // Keeps track of the suspend/resume state of the AudioContext.\n self.state = self.ctx ? self.ctx.state || 'suspended' : 'suspended';\n\n // Automatically begin the 30-second suspend process\n self._autoSuspend();\n\n // Check if audio is available.\n if (!self.usingWebAudio) {\n // No audio is available on this system if noAudio is set to true.\n if (typeof Audio !== 'undefined') {\n try {\n var test = new Audio();\n\n // Check if the canplaythrough event is available.\n if (typeof test.oncanplaythrough === 'undefined') {\n self._canPlayEvent = 'canplay';\n }\n } catch(e) {\n self.noAudio = true;\n }\n } else {\n self.noAudio = true;\n }\n }\n\n // Test to make sure audio isn't disabled in Internet Explorer.\n try {\n var test = new Audio();\n if (test.muted) {\n self.noAudio = true;\n }\n } catch (e) {}\n\n // Check for supported codecs.\n if (!self.noAudio) {\n self._setupCodecs();\n }\n\n return self;\n },\n\n /**\n * Check for browser support for various codecs and cache the results.\n * @return {Howler}\n */\n _setupCodecs: function() {\n var self = this || Howler;\n var audioTest = null;\n\n // Must wrap in a try/catch because IE11 in server mode throws an error.\n try {\n audioTest = (typeof Audio !== 'undefined') ? new Audio() : null;\n } catch (err) {\n return self;\n }\n\n if (!audioTest || typeof audioTest.canPlayType !== 'function') {\n return self;\n }\n\n var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, '');\n\n // Opera version <33 has mixed MP3 support, so we need to check for and block it.\n var ua = self._navigator ? self._navigator.userAgent : '';\n var checkOpera = ua.match(/OPR\\/([0-6].)/g);\n var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33);\n var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1;\n var safariVersion = ua.match(/Version\\/(.*?) /);\n var isOldSafari = (checkSafari && safariVersion && parseInt(safariVersion[1], 10) < 15);\n\n self._codecs = {\n mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))),\n mpeg: !!mpegTest,\n opus: !!audioTest.canPlayType('audio/ogg; codecs=\"opus\"').replace(/^no$/, ''),\n ogg: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n oga: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n wav: !!(audioTest.canPlayType('audio/wav; codecs=\"1\"') || audioTest.canPlayType('audio/wav')).replace(/^no$/, ''),\n aac: !!audioTest.canPlayType('audio/aac;').replace(/^no$/, ''),\n caf: !!audioTest.canPlayType('audio/x-caf;').replace(/^no$/, ''),\n m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n weba: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n webm: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n dolby: !!audioTest.canPlayType('audio/mp4; codecs=\"ec-3\"').replace(/^no$/, ''),\n flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '')\n };\n\n return self;\n },\n\n /**\n * Some browsers/devices will only allow audio to be played after a user interaction.\n * Attempt to automatically unlock audio on the first user interaction.\n * Concept from: http://paulbakaus.com/tutorials/html5/web-audio-on-ios/\n * @return {Howler}\n */\n _unlockAudio: function() {\n var self = this || Howler;\n\n // Only run this if Web Audio is supported and it hasn't already been unlocked.\n if (self._audioUnlocked || !self.ctx) {\n return;\n }\n\n self._audioUnlocked = false;\n self.autoUnlock = false;\n\n // Some mobile devices/platforms have distortion issues when opening/closing tabs and/or web views.\n // Bugs in the browser (especially Mobile Safari) can cause the sampleRate to change from 44100 to 48000.\n // By calling Howler.unload(), we create a new AudioContext with the correct sampleRate.\n if (!self._mobileUnloaded && self.ctx.sampleRate !== 44100) {\n self._mobileUnloaded = true;\n self.unload();\n }\n\n // Scratch buffer for enabling iOS to dispose of web audio buffers correctly, as per:\n // http://stackoverflow.com/questions/24119684\n self._scratchBuffer = self.ctx.createBuffer(1, 1, 22050);\n\n // Call this method on touch start to create and play a buffer,\n // then check if the audio actually played to determine if\n // audio has now been unlocked on iOS, Android, etc.\n var unlock = function(e) {\n // Create a pool of unlocked HTML5 Audio objects that can\n // be used for playing sounds without user interaction. HTML5\n // Audio objects must be individually unlocked, as opposed\n // to the WebAudio API which only needs a single activation.\n // This must occur before WebAudio setup or the source.onended\n // event will not fire.\n while (self._html5AudioPool.length < self.html5PoolSize) {\n try {\n var audioNode = new Audio();\n\n // Mark this Audio object as unlocked to ensure it can get returned\n // to the unlocked pool when released.\n audioNode._unlocked = true;\n\n // Add the audio node to the pool.\n self._releaseHtml5Audio(audioNode);\n } catch (e) {\n self.noAudio = true;\n break;\n }\n }\n\n // Loop through any assigned audio nodes and unlock them.\n for (var i=0; i= 55.\n if (typeof self.ctx.resume === 'function') {\n self.ctx.resume();\n }\n\n // Setup a timeout to check that we are unlocked on the next event loop.\n source.onended = function() {\n source.disconnect(0);\n\n // Update the unlocked state and prevent this check from happening again.\n self._audioUnlocked = true;\n\n // Remove the touch start listener.\n document.removeEventListener('touchstart', unlock, true);\n document.removeEventListener('touchend', unlock, true);\n document.removeEventListener('click', unlock, true);\n document.removeEventListener('keydown', unlock, true);\n\n // Let all sounds know that audio has been unlocked.\n for (var i=0; i 0 ? sound._seek : self._sprite[sprite][0] / 1000);\n var duration = Math.max(0, ((self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000) - seek);\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n var start = self._sprite[sprite][0] / 1000;\n var stop = (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000;\n sound._sprite = sprite;\n\n // Mark the sound as ended instantly so that this async playback\n // doesn't get grabbed by another call to play while this one waits to start.\n sound._ended = false;\n\n // Update the parameters of the sound.\n var setParams = function() {\n sound._paused = false;\n sound._seek = seek;\n sound._start = start;\n sound._stop = stop;\n sound._loop = !!(sound._loop || self._sprite[sprite][2]);\n };\n\n // End the sound instantly if seek is at the end.\n if (seek >= stop) {\n self._ended(sound);\n return;\n }\n\n // Begin the actual playback.\n var node = sound._node;\n if (self._webAudio) {\n // Fire this when the sound is ready to play to begin Web Audio playback.\n var playWebAudio = function() {\n self._playLock = false;\n setParams();\n self._refreshBuffer(sound);\n\n // Setup the playback params.\n var vol = (sound._muted || self._muted) ? 0 : sound._volume;\n node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n sound._playStart = Howler.ctx.currentTime;\n\n // Play the sound using the supported method.\n if (typeof node.bufferSource.start === 'undefined') {\n sound._loop ? node.bufferSource.noteGrainOn(0, seek, 86400) : node.bufferSource.noteGrainOn(0, seek, duration);\n } else {\n sound._loop ? node.bufferSource.start(0, seek, 86400) : node.bufferSource.start(0, seek, duration);\n }\n\n // Start a new timer if none is present.\n if (timeout !== Infinity) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n if (!internal) {\n setTimeout(function() {\n self._emit('play', sound._id);\n self._loadQueue();\n }, 0);\n }\n };\n\n if (Howler.state === 'running' && Howler.ctx.state !== 'interrupted') {\n playWebAudio();\n } else {\n self._playLock = true;\n\n // Wait for the audio context to resume before playing.\n self.once('resume', playWebAudio);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n } else {\n // Fire this when the sound is ready to play to begin HTML5 Audio playback.\n var playHtml5 = function() {\n node.currentTime = seek;\n node.muted = sound._muted || self._muted || Howler._muted || node.muted;\n node.volume = sound._volume * Howler.volume();\n node.playbackRate = sound._rate;\n\n // Some browsers will throw an error if this is called without user interaction.\n try {\n var play = node.play();\n\n // Support older browsers that don't support promises, and thus don't have this issue.\n if (play && typeof Promise !== 'undefined' && (play instanceof Promise || typeof play.then === 'function')) {\n // Implements a lock to prevent DOMException: The play() request was interrupted by a call to pause().\n self._playLock = true;\n\n // Set param values immediately.\n setParams();\n\n // Releases the lock and executes queued actions.\n play\n .then(function() {\n self._playLock = false;\n node._unlocked = true;\n if (!internal) {\n self._emit('play', sound._id);\n } else {\n self._loadQueue();\n }\n })\n .catch(function() {\n self._playLock = false;\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n\n // Reset the ended and paused values.\n sound._ended = true;\n sound._paused = true;\n });\n } else if (!internal) {\n self._playLock = false;\n setParams();\n self._emit('play', sound._id);\n }\n\n // Setting rate before playing won't work in IE, so we set it again here.\n node.playbackRate = sound._rate;\n\n // If the node is still paused, then we can assume there was a playback issue.\n if (node.paused) {\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n return;\n }\n\n // Setup the end timer on sprites or listen for the ended event.\n if (sprite !== '__default' || sound._loop) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n } else {\n self._endTimers[sound._id] = function() {\n // Fire ended on this audio node.\n self._ended(sound);\n\n // Clear this listener.\n node.removeEventListener('ended', self._endTimers[sound._id], false);\n };\n node.addEventListener('ended', self._endTimers[sound._id], false);\n }\n } catch (err) {\n self._emit('playerror', sound._id, err);\n }\n };\n\n // If this is streaming audio, make sure the src is set and load again.\n if (node.src === 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') {\n node.src = self._src;\n node.load();\n }\n\n // Play immediately if ready, or wait for the 'canplaythrough'e vent.\n var loadedNoReadyState = (window && window.ejecta) || (!node.readyState && Howler._navigator.isCocoonJS);\n if (node.readyState >= 3 || loadedNoReadyState) {\n playHtml5();\n } else {\n self._playLock = true;\n self._state = 'loading';\n\n var listener = function() {\n self._state = 'loaded';\n \n // Begin playback.\n playHtml5();\n\n // Clear this listener.\n node.removeEventListener(Howler._canPlayEvent, listener, false);\n };\n node.addEventListener(Howler._canPlayEvent, listener, false);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n }\n\n return sound._id;\n },\n\n /**\n * Pause playback and save current position.\n * @param {Number} id The sound ID (empty to pause all in group).\n * @return {Howl}\n */\n pause: function(id) {\n var self = this;\n\n // If the sound hasn't loaded or a play() promise is pending, add it to the load queue to pause when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'pause',\n action: function() {\n self.pause(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be paused.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i Returns the group's volume value.\n * volume(id) -> Returns the sound id's current volume.\n * volume(vol) -> Sets the volume of all sounds in this Howl group.\n * volume(vol, id) -> Sets the volume of passed sound id.\n * @return {Howl/Number} Returns self or current volume.\n */\n volume: function() {\n var self = this;\n var args = arguments;\n var vol, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the value of the groups' volume.\n return self._volume;\n } else if (args.length === 1 || args.length === 2 && typeof args[1] === 'undefined') {\n // First check if this is an ID, and if not, assume it is a new volume.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n vol = parseFloat(args[0]);\n }\n } else if (args.length >= 2) {\n vol = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the volume or return the current volume.\n var sound;\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n // If the sound hasn't loaded, add it to the load queue to change volume when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'volume',\n action: function() {\n self.volume.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group volume.\n if (typeof id === 'undefined') {\n self._volume = vol;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i 0) ? len / steps : len);\n var lastTick = Date.now();\n\n // Store the value being faded to.\n sound._fadeTo = to;\n\n // Update the volume value on each interval tick.\n sound._interval = setInterval(function() {\n // Update the volume based on the time since the last tick.\n var tick = (Date.now() - lastTick) / len;\n lastTick = Date.now();\n vol += diff * tick;\n\n // Round to within 2 decimal points.\n vol = Math.round(vol * 100) / 100;\n\n // Make sure the volume is in the right bounds.\n if (diff < 0) {\n vol = Math.max(to, vol);\n } else {\n vol = Math.min(to, vol);\n }\n\n // Change the volume.\n if (self._webAudio) {\n sound._volume = vol;\n } else {\n self.volume(vol, sound._id, true);\n }\n\n // Set the group's volume.\n if (isGroup) {\n self._volume = vol;\n }\n\n // When the fade is complete, stop it and fire event.\n if ((to < from && vol <= to) || (to > from && vol >= to)) {\n clearInterval(sound._interval);\n sound._interval = null;\n sound._fadeTo = null;\n self.volume(to, sound._id);\n self._emit('fade', sound._id);\n }\n }, stepLen);\n },\n\n /**\n * Internal method that stops the currently playing fade when\n * a new fade starts, volume is changed or the sound is stopped.\n * @param {Number} id The sound id.\n * @return {Howl}\n */\n _stopFade: function(id) {\n var self = this;\n var sound = self._soundById(id);\n\n if (sound && sound._interval) {\n if (self._webAudio) {\n sound._node.gain.cancelScheduledValues(Howler.ctx.currentTime);\n }\n\n clearInterval(sound._interval);\n sound._interval = null;\n self.volume(sound._fadeTo, id);\n sound._fadeTo = null;\n self._emit('fade', id);\n }\n\n return self;\n },\n\n /**\n * Get/set the loop parameter on a sound. This method can optionally take 0, 1 or 2 arguments.\n * loop() -> Returns the group's loop value.\n * loop(id) -> Returns the sound id's loop value.\n * loop(loop) -> Sets the loop value for all sounds in this Howl group.\n * loop(loop, id) -> Sets the loop value of passed sound id.\n * @return {Howl/Boolean} Returns self or current loop value.\n */\n loop: function() {\n var self = this;\n var args = arguments;\n var loop, id, sound;\n\n // Determine the values for loop and id.\n if (args.length === 0) {\n // Return the grou's loop value.\n return self._loop;\n } else if (args.length === 1) {\n if (typeof args[0] === 'boolean') {\n loop = args[0];\n self._loop = loop;\n } else {\n // Return this sound's loop value.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._loop : false;\n }\n } else if (args.length === 2) {\n loop = args[0];\n id = parseInt(args[1], 10);\n }\n\n // If no id is passed, get all ID's to be looped.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current playback rate.\n * rate(id) -> Returns the sound id's current playback rate.\n * rate(rate) -> Sets the playback rate of all sounds in this Howl group.\n * rate(rate, id) -> Sets the playback rate of passed sound id.\n * @return {Howl/Number} Returns self or the current playback rate.\n */\n rate: function() {\n var self = this;\n var args = arguments;\n var rate, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current rate of the first node.\n id = self._sounds[0]._id;\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new rate value.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n rate = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n rate = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the playback rate or return the current value.\n var sound;\n if (typeof rate === 'number') {\n // If the sound hasn't loaded, add it to the load queue to change playback rate when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'rate',\n action: function() {\n self.rate.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group rate.\n if (typeof id === 'undefined') {\n self._rate = rate;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current seek position.\n * seek(id) -> Returns the sound id's current seek position.\n * seek(seek) -> Sets the seek position of the first sound node.\n * seek(seek, id) -> Sets the seek position of passed sound id.\n * @return {Howl/Number} Returns self or the current seek position.\n */\n seek: function() {\n var self = this;\n var args = arguments;\n var seek, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current position of the first node.\n if (self._sounds.length) {\n id = self._sounds[0]._id;\n }\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new seek position.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else if (self._sounds.length) {\n id = self._sounds[0]._id;\n seek = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n seek = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // If there is no ID, bail out.\n if (typeof id === 'undefined') {\n return 0;\n }\n\n // If the sound hasn't loaded, add it to the load queue to seek when capable.\n if (typeof seek === 'number' && (self._state !== 'loaded' || self._playLock)) {\n self._queue.push({\n event: 'seek',\n action: function() {\n self.seek.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Get the sound.\n var sound = self._soundById(id);\n\n if (sound) {\n if (typeof seek === 'number' && seek >= 0) {\n // Pause the sound and update position for restarting playback.\n var playing = self.playing(id);\n if (playing) {\n self.pause(id, true);\n }\n\n // Move the position of the track and cancel timer.\n sound._seek = seek;\n sound._ended = false;\n self._clearTimer(id);\n\n // Update the seek position for HTML5 Audio.\n if (!self._webAudio && sound._node && !isNaN(sound._node.duration)) {\n sound._node.currentTime = seek;\n }\n\n // Seek and emit when ready.\n var seekAndEmit = function() {\n // Restart the playback if the sound was playing.\n if (playing) {\n self.play(id, true);\n }\n\n self._emit('seek', id);\n };\n\n // Wait for the play lock to be unset before emitting (HTML5 Audio).\n if (playing && !self._webAudio) {\n var emitSeek = function() {\n if (!self._playLock) {\n seekAndEmit();\n } else {\n setTimeout(emitSeek, 0);\n }\n };\n setTimeout(emitSeek, 0);\n } else {\n seekAndEmit();\n }\n } else {\n if (self._webAudio) {\n var realTime = self.playing(id) ? Howler.ctx.currentTime - sound._playStart : 0;\n var rateSeek = sound._rateSeek ? sound._rateSeek - sound._seek : 0;\n return sound._seek + (rateSeek + realTime * Math.abs(sound._rate));\n } else {\n return sound._node.currentTime;\n }\n }\n }\n\n return self;\n },\n\n /**\n * Check if a specific sound is currently playing or not (if id is provided), or check if at least one of the sounds in the group is playing or not.\n * @param {Number} id The sound id to check. If none is passed, the whole sound group is checked.\n * @return {Boolean} True if playing and false if not.\n */\n playing: function(id) {\n var self = this;\n\n // Check the passed sound ID (if any).\n if (typeof id === 'number') {\n var sound = self._soundById(id);\n return sound ? !sound._paused : false;\n }\n\n // Otherwise, loop through all sounds and check if any are playing.\n for (var i=0; i= 0) {\n Howler._howls.splice(index, 1);\n }\n\n // Delete this sound from the cache (if no other Howl is using it).\n var remCache = true;\n for (i=0; i= 0) {\n remCache = false;\n break;\n }\n }\n\n if (cache && remCache) {\n delete cache[self._src];\n }\n\n // Clear global errors.\n Howler.noAudio = false;\n\n // Clear out `self`.\n self._state = 'unloaded';\n self._sounds = [];\n self = null;\n\n return null;\n },\n\n /**\n * Listen to a custom event.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @param {Number} once (INTERNAL) Marks event to fire only once.\n * @return {Howl}\n */\n on: function(event, fn, id, once) {\n var self = this;\n var events = self['_on' + event];\n\n if (typeof fn === 'function') {\n events.push(once ? {id: id, fn: fn, once: once} : {id: id, fn: fn});\n }\n\n return self;\n },\n\n /**\n * Remove a custom event. Call without parameters to remove all events.\n * @param {String} event Event name.\n * @param {Function} fn Listener to remove. Leave empty to remove all.\n * @param {Number} id (optional) Only remove events for this sound.\n * @return {Howl}\n */\n off: function(event, fn, id) {\n var self = this;\n var events = self['_on' + event];\n var i = 0;\n\n // Allow passing just an event and ID.\n if (typeof fn === 'number') {\n id = fn;\n fn = null;\n }\n\n if (fn || id) {\n // Loop through event store and remove the passed function.\n for (i=0; i=0; i--) {\n // Only fire the listener if the correct ID is used.\n if (!events[i].id || events[i].id === id || event === 'load') {\n setTimeout(function(fn) {\n fn.call(this, id, msg);\n }.bind(self, events[i].fn), 0);\n\n // If this event was setup with `once`, remove it.\n if (events[i].once) {\n self.off(event, events[i].fn, events[i].id);\n }\n }\n }\n\n // Pass the event type into load queue so that it can continue stepping.\n self._loadQueue(event);\n\n return self;\n },\n\n /**\n * Queue of actions initiated before the sound has loaded.\n * These will be called in sequence, with the next only firing\n * after the previous has finished executing (even if async like play).\n * @return {Howl}\n */\n _loadQueue: function(event) {\n var self = this;\n\n if (self._queue.length > 0) {\n var task = self._queue[0];\n\n // Remove this task if a matching event was passed.\n if (task.event === event) {\n self._queue.shift();\n self._loadQueue();\n }\n\n // Run the task if no event type is passed.\n if (!event) {\n task.action();\n }\n }\n\n return self;\n },\n\n /**\n * Fired when playback ends at the end of the duration.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _ended: function(sound) {\n var self = this;\n var sprite = sound._sprite;\n\n // If we are using IE and there was network latency we may be clipping\n // audio before it completes playing. Lets check the node to make sure it\n // believes it has completed, before ending the playback.\n if (!self._webAudio && sound._node && !sound._node.paused && !sound._node.ended && sound._node.currentTime < sound._stop) {\n setTimeout(self._ended.bind(self, sound), 100);\n return self;\n }\n\n // Should this sound loop?\n var loop = !!(sound._loop || self._sprite[sprite][2]);\n\n // Fire the ended event.\n self._emit('end', sound._id);\n\n // Restart the playback for HTML5 Audio loop.\n if (!self._webAudio && loop) {\n self.stop(sound._id, true).play(sound._id);\n }\n\n // Restart this timer if on a Web Audio loop.\n if (self._webAudio && loop) {\n self._emit('play', sound._id);\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._playStart = Howler.ctx.currentTime;\n\n var timeout = ((sound._stop - sound._start) * 1000) / Math.abs(sound._rate);\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n // Mark the node as paused.\n if (self._webAudio && !loop) {\n sound._paused = true;\n sound._ended = true;\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n self._clearTimer(sound._id);\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n\n // Attempt to auto-suspend AudioContext if no sounds are still playing.\n Howler._autoSuspend();\n }\n\n // When using a sprite, end the track.\n if (!self._webAudio && !loop) {\n self.stop(sound._id, true);\n }\n\n return self;\n },\n\n /**\n * Clear the end timer for a sound playback.\n * @param {Number} id The sound ID.\n * @return {Howl}\n */\n _clearTimer: function(id) {\n var self = this;\n\n if (self._endTimers[id]) {\n // Clear the timeout or remove the ended listener.\n if (typeof self._endTimers[id] !== 'function') {\n clearTimeout(self._endTimers[id]);\n } else {\n var sound = self._soundById(id);\n if (sound && sound._node) {\n sound._node.removeEventListener('ended', self._endTimers[id], false);\n }\n }\n\n delete self._endTimers[id];\n }\n\n return self;\n },\n\n /**\n * Return the sound identified by this ID, or return null.\n * @param {Number} id Sound ID\n * @return {Object} Sound object or null.\n */\n _soundById: function(id) {\n var self = this;\n\n // Loop through all sounds and find the one with this ID.\n for (var i=0; i=0; i--) {\n if (cnt <= limit) {\n return;\n }\n\n if (self._sounds[i]._ended) {\n // Disconnect the audio source when using Web Audio.\n if (self._webAudio && self._sounds[i]._node) {\n self._sounds[i]._node.disconnect(0);\n }\n\n // Remove sounds until we have the pool size.\n self._sounds.splice(i, 1);\n cnt--;\n }\n }\n },\n\n /**\n * Get all ID's from the sounds pool.\n * @param {Number} id Only return one ID if one is passed.\n * @return {Array} Array of IDs.\n */\n _getSoundIds: function(id) {\n var self = this;\n\n if (typeof id === 'undefined') {\n var ids = [];\n for (var i=0; i= 0;\n\n if (Howler._scratchBuffer && node.bufferSource) {\n node.bufferSource.onended = null;\n node.bufferSource.disconnect(0);\n if (isIOS) {\n try { node.bufferSource.buffer = Howler._scratchBuffer; } catch(e) {}\n }\n }\n node.bufferSource = null;\n\n return self;\n },\n\n /**\n * Set the source to a 0-second silence to stop any downloading (except in IE).\n * @param {Object} node Audio node to clear.\n */\n _clearSound: function(node) {\n var checkIE = /MSIE |Trident\\//.test(Howler._navigator && Howler._navigator.userAgent);\n if (!checkIE) {\n node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA';\n }\n }\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Setup the sound object, which each node attached to a Howl group is contained in.\n * @param {Object} howl The Howl parent group.\n */\n var Sound = function(howl) {\n this._parent = howl;\n this.init();\n };\n Sound.prototype = {\n /**\n * Initialize a new Sound object.\n * @return {Sound}\n */\n init: function() {\n var self = this;\n var parent = self._parent;\n\n // Setup the default parameters.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a unique ID for this sound.\n self._id = ++Howler._counter;\n\n // Add itself to the parent's pool.\n parent._sounds.push(self);\n\n // Create the new node.\n self.create();\n\n return self;\n },\n\n /**\n * Create and setup a new sound object, whether HTML5 Audio or Web Audio.\n * @return {Sound}\n */\n create: function() {\n var self = this;\n var parent = self._parent;\n var volume = (Howler._muted || self._muted || self._parent._muted) ? 0 : self._volume;\n\n if (parent._webAudio) {\n // Create the gain node for controlling volume (the source will connect to this).\n self._node = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n self._node.gain.setValueAtTime(volume, Howler.ctx.currentTime);\n self._node.paused = true;\n self._node.connect(Howler.masterGain);\n } else if (!Howler.noAudio) {\n // Get an unlocked Audio object from the pool.\n self._node = Howler._obtainHtml5Audio();\n\n // Listen for errors (http://dev.w3.org/html5/spec-author-view/spec.html#mediaerror).\n self._errorFn = self._errorListener.bind(self);\n self._node.addEventListener('error', self._errorFn, false);\n\n // Listen for 'canplaythrough' event to let us know the sound is ready.\n self._loadFn = self._loadListener.bind(self);\n self._node.addEventListener(Howler._canPlayEvent, self._loadFn, false);\n\n // Listen for the 'ended' event on the sound to account for edge-case where\n // a finite sound has a duration of Infinity.\n self._endFn = self._endListener.bind(self);\n self._node.addEventListener('ended', self._endFn, false);\n\n // Setup the new audio node.\n self._node.src = parent._src;\n self._node.preload = parent._preload === true ? 'auto' : parent._preload;\n self._node.volume = volume * Howler.volume();\n\n // Begin loading the source.\n self._node.load();\n }\n\n return self;\n },\n\n /**\n * Reset the parameters of this sound to the original state (for recycle).\n * @return {Sound}\n */\n reset: function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all of the parameters of this sound.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._rateSeek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a new ID so that it isn't confused with the previous sound.\n self._id = ++Howler._counter;\n\n return self;\n },\n\n /**\n * HTML5 Audio error listener callback.\n */\n _errorListener: function() {\n var self = this;\n\n // Fire an error event and pass back the code.\n self._parent._emit('loaderror', self._id, self._node.error ? self._node.error.code : 0);\n\n // Clear the event listener.\n self._node.removeEventListener('error', self._errorFn, false);\n },\n\n /**\n * HTML5 Audio canplaythrough listener callback.\n */\n _loadListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Setup a sprite if none is defined.\n if (Object.keys(parent._sprite).length === 0) {\n parent._sprite = {__default: [0, parent._duration * 1000]};\n }\n\n if (parent._state !== 'loaded') {\n parent._state = 'loaded';\n parent._emit('load');\n parent._loadQueue();\n }\n\n // Clear the event listener.\n self._node.removeEventListener(Howler._canPlayEvent, self._loadFn, false);\n },\n\n /**\n * HTML5 Audio ended listener callback.\n */\n _endListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Only handle the `ended`` event if the duration is Infinity.\n if (parent._duration === Infinity) {\n // Update the parent duration to match the real audio duration.\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Update the sprite that corresponds to the real duration.\n if (parent._sprite.__default[1] === Infinity) {\n parent._sprite.__default[1] = parent._duration * 1000;\n }\n\n // Run the regular ended method.\n parent._ended(self);\n }\n\n // Clear the event listener since the duration is now correct.\n self._node.removeEventListener('ended', self._endFn, false);\n }\n };\n\n /** Helper Methods **/\n /***************************************************************************/\n\n var cache = {};\n\n /**\n * Buffer a sound from URL, Data URI or cache and decode to audio source (Web Audio API).\n * @param {Howl} self\n */\n var loadBuffer = function(self) {\n var url = self._src;\n\n // Check if the buffer has already been cached and use it instead.\n if (cache[url]) {\n // Set the duration from the cache.\n self._duration = cache[url].duration;\n\n // Load the sound into this Howl.\n loadSound(self);\n\n return;\n }\n\n if (/^data:[^;]+;base64,/.test(url)) {\n // Decode the base64 data URI without XHR, since some browsers don't support it.\n var data = atob(url.split(',')[1]);\n var dataView = new Uint8Array(data.length);\n for (var i=0; i 0) {\n cache[self._src] = buffer;\n loadSound(self, buffer);\n } else {\n error();\n }\n };\n\n // Decode the buffer into an audio source.\n if (typeof Promise !== 'undefined' && Howler.ctx.decodeAudioData.length === 1) {\n Howler.ctx.decodeAudioData(arraybuffer).then(success).catch(error);\n } else {\n Howler.ctx.decodeAudioData(arraybuffer, success, error);\n }\n }\n\n /**\n * Sound is now loaded, so finish setting everything up and fire the loaded event.\n * @param {Howl} self\n * @param {Object} buffer The decoded buffer sound source.\n */\n var loadSound = function(self, buffer) {\n // Set the duration.\n if (buffer && !self._duration) {\n self._duration = buffer.duration;\n }\n\n // Setup a sprite if none is defined.\n if (Object.keys(self._sprite).length === 0) {\n self._sprite = {__default: [0, self._duration * 1000]};\n }\n\n // Fire the loaded event.\n if (self._state !== 'loaded') {\n self._state = 'loaded';\n self._emit('load');\n self._loadQueue();\n }\n };\n\n /**\n * Setup the audio context when available, or switch to HTML5 Audio mode.\n */\n var setupAudioContext = function() {\n // If we have already detected that Web Audio isn't supported, don't run this step again.\n if (!Howler.usingWebAudio) {\n return;\n }\n\n // Check if we are using Web Audio and setup the AudioContext if we are.\n try {\n if (typeof AudioContext !== 'undefined') {\n Howler.ctx = new AudioContext();\n } else if (typeof webkitAudioContext !== 'undefined') {\n Howler.ctx = new webkitAudioContext();\n } else {\n Howler.usingWebAudio = false;\n }\n } catch(e) {\n Howler.usingWebAudio = false;\n }\n\n // If the audio context creation still failed, set using web audio to false.\n if (!Howler.ctx) {\n Howler.usingWebAudio = false;\n }\n\n // Check if a webview is being used on iOS8 or earlier (rather than the browser).\n // If it is, disable Web Audio as it causes crashing.\n var iOS = (/iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform));\n var appVersion = Howler._navigator && Howler._navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n var version = appVersion ? parseInt(appVersion[1], 10) : null;\n if (iOS && version && version < 9) {\n var safari = /safari/.test(Howler._navigator && Howler._navigator.userAgent.toLowerCase());\n if (Howler._navigator && !safari) {\n Howler.usingWebAudio = false;\n }\n }\n\n // Create and expose the master GainNode when using Web Audio (useful for plugins or advanced usage).\n if (Howler.usingWebAudio) {\n Howler.masterGain = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n Howler.masterGain.gain.setValueAtTime(Howler._muted ? 0 : Howler._volume, Howler.ctx.currentTime);\n Howler.masterGain.connect(Howler.ctx.destination);\n }\n\n // Re-run the setup on Howler.\n Howler._setup();\n };\n\n // Add support for AMD (Asynchronous Module Definition) libraries such as require.js.\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return {\n Howler: Howler,\n Howl: Howl\n };\n });\n }\n\n // Add support for CommonJS libraries such as browserify.\n if (typeof exports !== 'undefined') {\n exports.Howler = Howler;\n exports.Howl = Howl;\n }\n\n // Add to global in Node.js (for testing, etc).\n if (typeof global !== 'undefined') {\n global.HowlerGlobal = HowlerGlobal;\n global.Howler = Howler;\n global.Howl = Howl;\n global.Sound = Sound;\n } else if (typeof window !== 'undefined') { // Define globally in case AMD is not available or unused.\n window.HowlerGlobal = HowlerGlobal;\n window.Howler = Howler;\n window.Howl = Howl;\n window.Sound = Sound;\n }\n})();\n\n\n/*!\n * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.\n * \n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n // Setup default properties.\n HowlerGlobal.prototype._pos = [0, 0, 0];\n HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0];\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Helper method to update the stereo panning position of all current Howls.\n * Future Howls will not use this value unless explicitly set.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @return {Howler/Number} Self or current stereo panning value.\n */\n HowlerGlobal.prototype.stereo = function(pan) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Loop through all Howls and update their stereo panning.\n for (var i=self._howls.length-1; i>=0; i--) {\n self._howls[i].stereo(pan);\n }\n\n return self;\n };\n\n /**\n * Get/set the position of the listener in 3D cartesian space. Sounds using\n * 3D position will be relative to the listener's position.\n * @param {Number} x The x-position of the listener.\n * @param {Number} y The y-position of the listener.\n * @param {Number} z The z-position of the listener.\n * @return {Howler/Array} Self or current listener position.\n */\n HowlerGlobal.prototype.pos = function(x, y, z) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._pos[1] : y;\n z = (typeof z !== 'number') ? self._pos[2] : z;\n\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n\n if (typeof self.ctx.listener.positionX !== 'undefined') {\n self.ctx.listener.positionX.setTargetAtTime(self._pos[0], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionY.setTargetAtTime(self._pos[1], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionZ.setTargetAtTime(self._pos[2], Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setPosition(self._pos[0], self._pos[1], self._pos[2]);\n }\n } else {\n return self._pos;\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the listener is pointing in the 3D cartesian space.\n * A front and up vector must be provided. The front is the direction the\n * face of the listener is pointing, and up is the direction the top of the\n * listener is pointing. Thus, these values are expected to be at right angles\n * from each other.\n * @param {Number} x The x-orientation of the listener.\n * @param {Number} y The y-orientation of the listener.\n * @param {Number} z The z-orientation of the listener.\n * @param {Number} xUp The x-orientation of the top of the listener.\n * @param {Number} yUp The y-orientation of the top of the listener.\n * @param {Number} zUp The z-orientation of the top of the listener.\n * @return {Howler/Array} Returns self or the current orientation vectors.\n */\n HowlerGlobal.prototype.orientation = function(x, y, z, xUp, yUp, zUp) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n var or = self._orientation;\n y = (typeof y !== 'number') ? or[1] : y;\n z = (typeof z !== 'number') ? or[2] : z;\n xUp = (typeof xUp !== 'number') ? or[3] : xUp;\n yUp = (typeof yUp !== 'number') ? or[4] : yUp;\n zUp = (typeof zUp !== 'number') ? or[5] : zUp;\n\n if (typeof x === 'number') {\n self._orientation = [x, y, z, xUp, yUp, zUp];\n\n if (typeof self.ctx.listener.forwardX !== 'undefined') {\n self.ctx.listener.forwardX.setTargetAtTime(x, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardY.setTargetAtTime(y, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardZ.setTargetAtTime(z, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upX.setTargetAtTime(xUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upY.setTargetAtTime(yUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upZ.setTargetAtTime(zUp, Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setOrientation(x, y, z, xUp, yUp, zUp);\n }\n } else {\n return or;\n }\n\n return self;\n };\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core init.\n * @param {Function} _super Core init method.\n * @return {Howl}\n */\n Howl.prototype.init = (function(_super) {\n return function(o) {\n var self = this;\n\n // Setup user-defined default properties.\n self._orientation = o.orientation || [1, 0, 0];\n self._stereo = o.stereo || null;\n self._pos = o.pos || null;\n self._pannerAttr = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : 360,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : 360,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : 0,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : 'inverse',\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : 10000,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : 'HRTF',\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : 1,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : 1\n };\n\n // Setup event listeners.\n self._onstereo = o.onstereo ? [{fn: o.onstereo}] : [];\n self._onpos = o.onpos ? [{fn: o.onpos}] : [];\n self._onorientation = o.onorientation ? [{fn: o.onorientation}] : [];\n\n // Complete initilization with howler.js core's init function.\n return _super.call(this, o);\n };\n })(Howl.prototype.init);\n\n /**\n * Get/set the stereo panning of the audio source for this sound or all in the group.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Number} Returns self or the current stereo panning value.\n */\n Howl.prototype.stereo = function(pan, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change stereo pan when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'stereo',\n action: function() {\n self.stereo(pan, id);\n }\n });\n\n return self;\n }\n\n // Check for PannerStereoNode support and fallback to PannerNode if it doesn't exist.\n var pannerType = (typeof Howler.ctx.createStereoPanner === 'undefined') ? 'spatial' : 'stereo';\n\n // Setup the group's stereo panning if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's stereo panning if no parameters are passed.\n if (typeof pan === 'number') {\n self._stereo = pan;\n self._pos = [pan, 0, 0];\n } else {\n return self._stereo;\n }\n }\n\n // Change the streo panning of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the group's values.\n * pannerAttr(id) -> Returns the sound id's values.\n * pannerAttr(o) -> Set's the values of all sounds in this Howl group.\n * pannerAttr(o, id) -> Set's the values of passed sound id.\n *\n * Attributes:\n * coneInnerAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * inside of which there will be no volume reduction.\n * coneOuterAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * outside of which the volume will be reduced to a constant value of `coneOuterGain`.\n * coneOuterGain - (0 by default) A parameter for directional audio sources, this is the gain outside of the\n * `coneOuterAngle`. It is a linear value in the range `[0, 1]`.\n * distanceModel - ('inverse' by default) Determines algorithm used to reduce volume as audio moves away from\n * listener. Can be `linear`, `inverse` or `exponential.\n * maxDistance - (10000 by default) The maximum distance between source and listener, after which the volume\n * will not be reduced any further.\n * refDistance - (1 by default) A reference distance for reducing volume as source moves further from the listener.\n * This is simply a variable of the distance model and has a different effect depending on which model\n * is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.\n * rolloffFactor - (1 by default) How quickly the volume reduces as source moves from listener. This is simply a\n * variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]`\n * with `inverse` and `exponential`.\n * panningModel - ('HRTF' by default) Determines which spatialization algorithm is used to position audio.\n * Can be `HRTF` or `equalpower`.\n *\n * @return {Howl/Object} Returns self or current panner attributes.\n */\n Howl.prototype.pannerAttr = function() {\n var self = this;\n var args = arguments;\n var o, id, sound;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the group's panner attribute values.\n return self._pannerAttr;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n o = args[0];\n\n // Set the grou's panner attribute values.\n if (typeof id === 'undefined') {\n if (!o.pannerAttr) {\n o.pannerAttr = {\n coneInnerAngle: o.coneInnerAngle,\n coneOuterAngle: o.coneOuterAngle,\n coneOuterGain: o.coneOuterGain,\n distanceModel: o.distanceModel,\n maxDistance: o.maxDistance,\n refDistance: o.refDistance,\n rolloffFactor: o.rolloffFactor,\n panningModel: o.panningModel\n };\n }\n\n self._pannerAttr = {\n coneInnerAngle: typeof o.pannerAttr.coneInnerAngle !== 'undefined' ? o.pannerAttr.coneInnerAngle : self._coneInnerAngle,\n coneOuterAngle: typeof o.pannerAttr.coneOuterAngle !== 'undefined' ? o.pannerAttr.coneOuterAngle : self._coneOuterAngle,\n coneOuterGain: typeof o.pannerAttr.coneOuterGain !== 'undefined' ? o.pannerAttr.coneOuterGain : self._coneOuterGain,\n distanceModel: typeof o.pannerAttr.distanceModel !== 'undefined' ? o.pannerAttr.distanceModel : self._distanceModel,\n maxDistance: typeof o.pannerAttr.maxDistance !== 'undefined' ? o.pannerAttr.maxDistance : self._maxDistance,\n refDistance: typeof o.pannerAttr.refDistance !== 'undefined' ? o.pannerAttr.refDistance : self._refDistance,\n rolloffFactor: typeof o.pannerAttr.rolloffFactor !== 'undefined' ? o.pannerAttr.rolloffFactor : self._rolloffFactor,\n panningModel: typeof o.pannerAttr.panningModel !== 'undefined' ? o.pannerAttr.panningModel : self._panningModel\n };\n }\n } else {\n // Return this sound's panner attribute values.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._pannerAttr : self._pannerAttr;\n }\n } else if (args.length === 2) {\n o = args[0];\n id = parseInt(args[1], 10);\n }\n\n // Update the values of the specified sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; i= 0 && vol <= 1) {\n self._volume = vol;\n\n // Don't update any of the nodes if we are muted.\n if (self._muted) {\n return self;\n }\n\n // When using Web Audio, we just need to adjust the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n }\n\n // Loop through and change volume for all HTML5 audio nodes.\n for (var i=0; i=0; i--) {\n self._howls[i].unload();\n }\n\n // Create a new AudioContext to make sure it is fully reset.\n if (self.usingWebAudio && self.ctx && typeof self.ctx.close !== 'undefined') {\n self.ctx.close();\n self.ctx = null;\n setupAudioContext();\n }\n\n return self;\n },\n\n /**\n * Check for codec support of specific extension.\n * @param {String} ext Audio file extention.\n * @return {Boolean}\n */\n codecs: function(ext) {\n return (this || Howler)._codecs[ext.replace(/^x-/, '')];\n },\n\n /**\n * Setup various state values for global tracking.\n * @return {Howler}\n */\n _setup: function() {\n var self = this || Howler;\n\n // Keeps track of the suspend/resume state of the AudioContext.\n self.state = self.ctx ? self.ctx.state || 'suspended' : 'suspended';\n\n // Automatically begin the 30-second suspend process\n self._autoSuspend();\n\n // Check if audio is available.\n if (!self.usingWebAudio) {\n // No audio is available on this system if noAudio is set to true.\n if (typeof Audio !== 'undefined') {\n try {\n var test = new Audio();\n\n // Check if the canplaythrough event is available.\n if (typeof test.oncanplaythrough === 'undefined') {\n self._canPlayEvent = 'canplay';\n }\n } catch(e) {\n self.noAudio = true;\n }\n } else {\n self.noAudio = true;\n }\n }\n\n // Test to make sure audio isn't disabled in Internet Explorer.\n try {\n var test = new Audio();\n if (test.muted) {\n self.noAudio = true;\n }\n } catch (e) {}\n\n // Check for supported codecs.\n if (!self.noAudio) {\n self._setupCodecs();\n }\n\n return self;\n },\n\n /**\n * Check for browser support for various codecs and cache the results.\n * @return {Howler}\n */\n _setupCodecs: function() {\n var self = this || Howler;\n var audioTest = null;\n\n // Must wrap in a try/catch because IE11 in server mode throws an error.\n try {\n audioTest = (typeof Audio !== 'undefined') ? new Audio() : null;\n } catch (err) {\n return self;\n }\n\n if (!audioTest || typeof audioTest.canPlayType !== 'function') {\n return self;\n }\n\n var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, '');\n\n // Opera version <33 has mixed MP3 support, so we need to check for and block it.\n var ua = self._navigator ? self._navigator.userAgent : '';\n var checkOpera = ua.match(/OPR\\/([0-6].)/g);\n var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33);\n var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1;\n var safariVersion = ua.match(/Version\\/(.*?) /);\n var isOldSafari = (checkSafari && safariVersion && parseInt(safariVersion[1], 10) < 15);\n\n self._codecs = {\n mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))),\n mpeg: !!mpegTest,\n opus: !!audioTest.canPlayType('audio/ogg; codecs=\"opus\"').replace(/^no$/, ''),\n ogg: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n oga: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n wav: !!(audioTest.canPlayType('audio/wav; codecs=\"1\"') || audioTest.canPlayType('audio/wav')).replace(/^no$/, ''),\n aac: !!audioTest.canPlayType('audio/aac;').replace(/^no$/, ''),\n caf: !!audioTest.canPlayType('audio/x-caf;').replace(/^no$/, ''),\n m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n weba: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n webm: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n dolby: !!audioTest.canPlayType('audio/mp4; codecs=\"ec-3\"').replace(/^no$/, ''),\n flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '')\n };\n\n return self;\n },\n\n /**\n * Some browsers/devices will only allow audio to be played after a user interaction.\n * Attempt to automatically unlock audio on the first user interaction.\n * Concept from: http://paulbakaus.com/tutorials/html5/web-audio-on-ios/\n * @return {Howler}\n */\n _unlockAudio: function() {\n var self = this || Howler;\n\n // Only run this if Web Audio is supported and it hasn't already been unlocked.\n if (self._audioUnlocked || !self.ctx) {\n return;\n }\n\n self._audioUnlocked = false;\n self.autoUnlock = false;\n\n // Some mobile devices/platforms have distortion issues when opening/closing tabs and/or web views.\n // Bugs in the browser (especially Mobile Safari) can cause the sampleRate to change from 44100 to 48000.\n // By calling Howler.unload(), we create a new AudioContext with the correct sampleRate.\n if (!self._mobileUnloaded && self.ctx.sampleRate !== 44100) {\n self._mobileUnloaded = true;\n self.unload();\n }\n\n // Scratch buffer for enabling iOS to dispose of web audio buffers correctly, as per:\n // http://stackoverflow.com/questions/24119684\n self._scratchBuffer = self.ctx.createBuffer(1, 1, 22050);\n\n // Call this method on touch start to create and play a buffer,\n // then check if the audio actually played to determine if\n // audio has now been unlocked on iOS, Android, etc.\n var unlock = function(e) {\n // Create a pool of unlocked HTML5 Audio objects that can\n // be used for playing sounds without user interaction. HTML5\n // Audio objects must be individually unlocked, as opposed\n // to the WebAudio API which only needs a single activation.\n // This must occur before WebAudio setup or the source.onended\n // event will not fire.\n while (self._html5AudioPool.length < self.html5PoolSize) {\n try {\n var audioNode = new Audio();\n\n // Mark this Audio object as unlocked to ensure it can get returned\n // to the unlocked pool when released.\n audioNode._unlocked = true;\n\n // Add the audio node to the pool.\n self._releaseHtml5Audio(audioNode);\n } catch (e) {\n self.noAudio = true;\n break;\n }\n }\n\n // Loop through any assigned audio nodes and unlock them.\n for (var i=0; i= 55.\n if (typeof self.ctx.resume === 'function') {\n self.ctx.resume();\n }\n\n // Setup a timeout to check that we are unlocked on the next event loop.\n source.onended = function() {\n source.disconnect(0);\n\n // Update the unlocked state and prevent this check from happening again.\n self._audioUnlocked = true;\n\n // Remove the touch start listener.\n document.removeEventListener('touchstart', unlock, true);\n document.removeEventListener('touchend', unlock, true);\n document.removeEventListener('click', unlock, true);\n document.removeEventListener('keydown', unlock, true);\n\n // Let all sounds know that audio has been unlocked.\n for (var i=0; i 0 ? sound._seek : self._sprite[sprite][0] / 1000);\n var duration = Math.max(0, ((self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000) - seek);\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n var start = self._sprite[sprite][0] / 1000;\n var stop = (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000;\n sound._sprite = sprite;\n\n // Mark the sound as ended instantly so that this async playback\n // doesn't get grabbed by another call to play while this one waits to start.\n sound._ended = false;\n\n // Update the parameters of the sound.\n var setParams = function() {\n sound._paused = false;\n sound._seek = seek;\n sound._start = start;\n sound._stop = stop;\n sound._loop = !!(sound._loop || self._sprite[sprite][2]);\n };\n\n // End the sound instantly if seek is at the end.\n if (seek >= stop) {\n self._ended(sound);\n return;\n }\n\n // Begin the actual playback.\n var node = sound._node;\n if (self._webAudio) {\n // Fire this when the sound is ready to play to begin Web Audio playback.\n var playWebAudio = function() {\n self._playLock = false;\n setParams();\n self._refreshBuffer(sound);\n\n // Setup the playback params.\n var vol = (sound._muted || self._muted) ? 0 : sound._volume;\n node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n sound._playStart = Howler.ctx.currentTime;\n\n // Play the sound using the supported method.\n if (typeof node.bufferSource.start === 'undefined') {\n sound._loop ? node.bufferSource.noteGrainOn(0, seek, 86400) : node.bufferSource.noteGrainOn(0, seek, duration);\n } else {\n sound._loop ? node.bufferSource.start(0, seek, 86400) : node.bufferSource.start(0, seek, duration);\n }\n\n // Start a new timer if none is present.\n if (timeout !== Infinity) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n if (!internal) {\n setTimeout(function() {\n self._emit('play', sound._id);\n self._loadQueue();\n }, 0);\n }\n };\n\n if (Howler.state === 'running' && Howler.ctx.state !== 'interrupted') {\n playWebAudio();\n } else {\n self._playLock = true;\n\n // Wait for the audio context to resume before playing.\n self.once('resume', playWebAudio);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n } else {\n // Fire this when the sound is ready to play to begin HTML5 Audio playback.\n var playHtml5 = function() {\n node.currentTime = seek;\n node.muted = sound._muted || self._muted || Howler._muted || node.muted;\n node.volume = sound._volume * Howler.volume();\n node.playbackRate = sound._rate;\n\n // Some browsers will throw an error if this is called without user interaction.\n try {\n var play = node.play();\n\n // Support older browsers that don't support promises, and thus don't have this issue.\n if (play && typeof Promise !== 'undefined' && (play instanceof Promise || typeof play.then === 'function')) {\n // Implements a lock to prevent DOMException: The play() request was interrupted by a call to pause().\n self._playLock = true;\n\n // Set param values immediately.\n setParams();\n\n // Releases the lock and executes queued actions.\n play\n .then(function() {\n self._playLock = false;\n node._unlocked = true;\n if (!internal) {\n self._emit('play', sound._id);\n } else {\n self._loadQueue();\n }\n })\n .catch(function() {\n self._playLock = false;\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n\n // Reset the ended and paused values.\n sound._ended = true;\n sound._paused = true;\n });\n } else if (!internal) {\n self._playLock = false;\n setParams();\n self._emit('play', sound._id);\n }\n\n // Setting rate before playing won't work in IE, so we set it again here.\n node.playbackRate = sound._rate;\n\n // If the node is still paused, then we can assume there was a playback issue.\n if (node.paused) {\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n return;\n }\n\n // Setup the end timer on sprites or listen for the ended event.\n if (sprite !== '__default' || sound._loop) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n } else {\n self._endTimers[sound._id] = function() {\n // Fire ended on this audio node.\n self._ended(sound);\n\n // Clear this listener.\n node.removeEventListener('ended', self._endTimers[sound._id], false);\n };\n node.addEventListener('ended', self._endTimers[sound._id], false);\n }\n } catch (err) {\n self._emit('playerror', sound._id, err);\n }\n };\n\n // If this is streaming audio, make sure the src is set and load again.\n if (node.src === 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') {\n node.src = self._src;\n node.load();\n }\n\n // Play immediately if ready, or wait for the 'canplaythrough'e vent.\n var loadedNoReadyState = (window && window.ejecta) || (!node.readyState && Howler._navigator.isCocoonJS);\n if (node.readyState >= 3 || loadedNoReadyState) {\n playHtml5();\n } else {\n self._playLock = true;\n self._state = 'loading';\n\n var listener = function() {\n self._state = 'loaded';\n \n // Begin playback.\n playHtml5();\n\n // Clear this listener.\n node.removeEventListener(Howler._canPlayEvent, listener, false);\n };\n node.addEventListener(Howler._canPlayEvent, listener, false);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n }\n\n return sound._id;\n },\n\n /**\n * Pause playback and save current position.\n * @param {Number} id The sound ID (empty to pause all in group).\n * @return {Howl}\n */\n pause: function(id) {\n var self = this;\n\n // If the sound hasn't loaded or a play() promise is pending, add it to the load queue to pause when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'pause',\n action: function() {\n self.pause(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be paused.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i Returns the group's volume value.\n * volume(id) -> Returns the sound id's current volume.\n * volume(vol) -> Sets the volume of all sounds in this Howl group.\n * volume(vol, id) -> Sets the volume of passed sound id.\n * @return {Howl/Number} Returns self or current volume.\n */\n volume: function() {\n var self = this;\n var args = arguments;\n var vol, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the value of the groups' volume.\n return self._volume;\n } else if (args.length === 1 || args.length === 2 && typeof args[1] === 'undefined') {\n // First check if this is an ID, and if not, assume it is a new volume.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n vol = parseFloat(args[0]);\n }\n } else if (args.length >= 2) {\n vol = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the volume or return the current volume.\n var sound;\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n // If the sound hasn't loaded, add it to the load queue to change volume when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'volume',\n action: function() {\n self.volume.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group volume.\n if (typeof id === 'undefined') {\n self._volume = vol;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i 0) ? len / steps : len);\n var lastTick = Date.now();\n\n // Store the value being faded to.\n sound._fadeTo = to;\n\n // Update the volume value on each interval tick.\n sound._interval = setInterval(function() {\n // Update the volume based on the time since the last tick.\n var tick = (Date.now() - lastTick) / len;\n lastTick = Date.now();\n vol += diff * tick;\n\n // Round to within 2 decimal points.\n vol = Math.round(vol * 100) / 100;\n\n // Make sure the volume is in the right bounds.\n if (diff < 0) {\n vol = Math.max(to, vol);\n } else {\n vol = Math.min(to, vol);\n }\n\n // Change the volume.\n if (self._webAudio) {\n sound._volume = vol;\n } else {\n self.volume(vol, sound._id, true);\n }\n\n // Set the group's volume.\n if (isGroup) {\n self._volume = vol;\n }\n\n // When the fade is complete, stop it and fire event.\n if ((to < from && vol <= to) || (to > from && vol >= to)) {\n clearInterval(sound._interval);\n sound._interval = null;\n sound._fadeTo = null;\n self.volume(to, sound._id);\n self._emit('fade', sound._id);\n }\n }, stepLen);\n },\n\n /**\n * Internal method that stops the currently playing fade when\n * a new fade starts, volume is changed or the sound is stopped.\n * @param {Number} id The sound id.\n * @return {Howl}\n */\n _stopFade: function(id) {\n var self = this;\n var sound = self._soundById(id);\n\n if (sound && sound._interval) {\n if (self._webAudio) {\n sound._node.gain.cancelScheduledValues(Howler.ctx.currentTime);\n }\n\n clearInterval(sound._interval);\n sound._interval = null;\n self.volume(sound._fadeTo, id);\n sound._fadeTo = null;\n self._emit('fade', id);\n }\n\n return self;\n },\n\n /**\n * Get/set the loop parameter on a sound. This method can optionally take 0, 1 or 2 arguments.\n * loop() -> Returns the group's loop value.\n * loop(id) -> Returns the sound id's loop value.\n * loop(loop) -> Sets the loop value for all sounds in this Howl group.\n * loop(loop, id) -> Sets the loop value of passed sound id.\n * @return {Howl/Boolean} Returns self or current loop value.\n */\n loop: function() {\n var self = this;\n var args = arguments;\n var loop, id, sound;\n\n // Determine the values for loop and id.\n if (args.length === 0) {\n // Return the grou's loop value.\n return self._loop;\n } else if (args.length === 1) {\n if (typeof args[0] === 'boolean') {\n loop = args[0];\n self._loop = loop;\n } else {\n // Return this sound's loop value.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._loop : false;\n }\n } else if (args.length === 2) {\n loop = args[0];\n id = parseInt(args[1], 10);\n }\n\n // If no id is passed, get all ID's to be looped.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current playback rate.\n * rate(id) -> Returns the sound id's current playback rate.\n * rate(rate) -> Sets the playback rate of all sounds in this Howl group.\n * rate(rate, id) -> Sets the playback rate of passed sound id.\n * @return {Howl/Number} Returns self or the current playback rate.\n */\n rate: function() {\n var self = this;\n var args = arguments;\n var rate, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current rate of the first node.\n id = self._sounds[0]._id;\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new rate value.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n rate = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n rate = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the playback rate or return the current value.\n var sound;\n if (typeof rate === 'number') {\n // If the sound hasn't loaded, add it to the load queue to change playback rate when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'rate',\n action: function() {\n self.rate.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group rate.\n if (typeof id === 'undefined') {\n self._rate = rate;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current seek position.\n * seek(id) -> Returns the sound id's current seek position.\n * seek(seek) -> Sets the seek position of the first sound node.\n * seek(seek, id) -> Sets the seek position of passed sound id.\n * @return {Howl/Number} Returns self or the current seek position.\n */\n seek: function() {\n var self = this;\n var args = arguments;\n var seek, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current position of the first node.\n if (self._sounds.length) {\n id = self._sounds[0]._id;\n }\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new seek position.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else if (self._sounds.length) {\n id = self._sounds[0]._id;\n seek = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n seek = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // If there is no ID, bail out.\n if (typeof id === 'undefined') {\n return 0;\n }\n\n // If the sound hasn't loaded, add it to the load queue to seek when capable.\n if (typeof seek === 'number' && (self._state !== 'loaded' || self._playLock)) {\n self._queue.push({\n event: 'seek',\n action: function() {\n self.seek.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Get the sound.\n var sound = self._soundById(id);\n\n if (sound) {\n if (typeof seek === 'number' && seek >= 0) {\n // Pause the sound and update position for restarting playback.\n var playing = self.playing(id);\n if (playing) {\n self.pause(id, true);\n }\n\n // Move the position of the track and cancel timer.\n sound._seek = seek;\n sound._ended = false;\n self._clearTimer(id);\n\n // Update the seek position for HTML5 Audio.\n if (!self._webAudio && sound._node && !isNaN(sound._node.duration)) {\n sound._node.currentTime = seek;\n }\n\n // Seek and emit when ready.\n var seekAndEmit = function() {\n // Restart the playback if the sound was playing.\n if (playing) {\n self.play(id, true);\n }\n\n self._emit('seek', id);\n };\n\n // Wait for the play lock to be unset before emitting (HTML5 Audio).\n if (playing && !self._webAudio) {\n var emitSeek = function() {\n if (!self._playLock) {\n seekAndEmit();\n } else {\n setTimeout(emitSeek, 0);\n }\n };\n setTimeout(emitSeek, 0);\n } else {\n seekAndEmit();\n }\n } else {\n if (self._webAudio) {\n var realTime = self.playing(id) ? Howler.ctx.currentTime - sound._playStart : 0;\n var rateSeek = sound._rateSeek ? sound._rateSeek - sound._seek : 0;\n return sound._seek + (rateSeek + realTime * Math.abs(sound._rate));\n } else {\n return sound._node.currentTime;\n }\n }\n }\n\n return self;\n },\n\n /**\n * Check if a specific sound is currently playing or not (if id is provided), or check if at least one of the sounds in the group is playing or not.\n * @param {Number} id The sound id to check. If none is passed, the whole sound group is checked.\n * @return {Boolean} True if playing and false if not.\n */\n playing: function(id) {\n var self = this;\n\n // Check the passed sound ID (if any).\n if (typeof id === 'number') {\n var sound = self._soundById(id);\n return sound ? !sound._paused : false;\n }\n\n // Otherwise, loop through all sounds and check if any are playing.\n for (var i=0; i= 0) {\n Howler._howls.splice(index, 1);\n }\n\n // Delete this sound from the cache (if no other Howl is using it).\n var remCache = true;\n for (i=0; i= 0) {\n remCache = false;\n break;\n }\n }\n\n if (cache && remCache) {\n delete cache[self._src];\n }\n\n // Clear global errors.\n Howler.noAudio = false;\n\n // Clear out `self`.\n self._state = 'unloaded';\n self._sounds = [];\n self = null;\n\n return null;\n },\n\n /**\n * Listen to a custom event.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @param {Number} once (INTERNAL) Marks event to fire only once.\n * @return {Howl}\n */\n on: function(event, fn, id, once) {\n var self = this;\n var events = self['_on' + event];\n\n if (typeof fn === 'function') {\n events.push(once ? {id: id, fn: fn, once: once} : {id: id, fn: fn});\n }\n\n return self;\n },\n\n /**\n * Remove a custom event. Call without parameters to remove all events.\n * @param {String} event Event name.\n * @param {Function} fn Listener to remove. Leave empty to remove all.\n * @param {Number} id (optional) Only remove events for this sound.\n * @return {Howl}\n */\n off: function(event, fn, id) {\n var self = this;\n var events = self['_on' + event];\n var i = 0;\n\n // Allow passing just an event and ID.\n if (typeof fn === 'number') {\n id = fn;\n fn = null;\n }\n\n if (fn || id) {\n // Loop through event store and remove the passed function.\n for (i=0; i=0; i--) {\n // Only fire the listener if the correct ID is used.\n if (!events[i].id || events[i].id === id || event === 'load') {\n setTimeout(function(fn) {\n fn.call(this, id, msg);\n }.bind(self, events[i].fn), 0);\n\n // If this event was setup with `once`, remove it.\n if (events[i].once) {\n self.off(event, events[i].fn, events[i].id);\n }\n }\n }\n\n // Pass the event type into load queue so that it can continue stepping.\n self._loadQueue(event);\n\n return self;\n },\n\n /**\n * Queue of actions initiated before the sound has loaded.\n * These will be called in sequence, with the next only firing\n * after the previous has finished executing (even if async like play).\n * @return {Howl}\n */\n _loadQueue: function(event) {\n var self = this;\n\n if (self._queue.length > 0) {\n var task = self._queue[0];\n\n // Remove this task if a matching event was passed.\n if (task.event === event) {\n self._queue.shift();\n self._loadQueue();\n }\n\n // Run the task if no event type is passed.\n if (!event) {\n task.action();\n }\n }\n\n return self;\n },\n\n /**\n * Fired when playback ends at the end of the duration.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _ended: function(sound) {\n var self = this;\n var sprite = sound._sprite;\n\n // If we are using IE and there was network latency we may be clipping\n // audio before it completes playing. Lets check the node to make sure it\n // believes it has completed, before ending the playback.\n if (!self._webAudio && sound._node && !sound._node.paused && !sound._node.ended && sound._node.currentTime < sound._stop) {\n setTimeout(self._ended.bind(self, sound), 100);\n return self;\n }\n\n // Should this sound loop?\n var loop = !!(sound._loop || self._sprite[sprite][2]);\n\n // Fire the ended event.\n self._emit('end', sound._id);\n\n // Restart the playback for HTML5 Audio loop.\n if (!self._webAudio && loop) {\n self.stop(sound._id, true).play(sound._id);\n }\n\n // Restart this timer if on a Web Audio loop.\n if (self._webAudio && loop) {\n self._emit('play', sound._id);\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._playStart = Howler.ctx.currentTime;\n\n var timeout = ((sound._stop - sound._start) * 1000) / Math.abs(sound._rate);\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n // Mark the node as paused.\n if (self._webAudio && !loop) {\n sound._paused = true;\n sound._ended = true;\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n self._clearTimer(sound._id);\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n\n // Attempt to auto-suspend AudioContext if no sounds are still playing.\n Howler._autoSuspend();\n }\n\n // When using a sprite, end the track.\n if (!self._webAudio && !loop) {\n self.stop(sound._id, true);\n }\n\n return self;\n },\n\n /**\n * Clear the end timer for a sound playback.\n * @param {Number} id The sound ID.\n * @return {Howl}\n */\n _clearTimer: function(id) {\n var self = this;\n\n if (self._endTimers[id]) {\n // Clear the timeout or remove the ended listener.\n if (typeof self._endTimers[id] !== 'function') {\n clearTimeout(self._endTimers[id]);\n } else {\n var sound = self._soundById(id);\n if (sound && sound._node) {\n sound._node.removeEventListener('ended', self._endTimers[id], false);\n }\n }\n\n delete self._endTimers[id];\n }\n\n return self;\n },\n\n /**\n * Return the sound identified by this ID, or return null.\n * @param {Number} id Sound ID\n * @return {Object} Sound object or null.\n */\n _soundById: function(id) {\n var self = this;\n\n // Loop through all sounds and find the one with this ID.\n for (var i=0; i=0; i--) {\n if (cnt <= limit) {\n return;\n }\n\n if (self._sounds[i]._ended) {\n // Disconnect the audio source when using Web Audio.\n if (self._webAudio && self._sounds[i]._node) {\n self._sounds[i]._node.disconnect(0);\n }\n\n // Remove sounds until we have the pool size.\n self._sounds.splice(i, 1);\n cnt--;\n }\n }\n },\n\n /**\n * Get all ID's from the sounds pool.\n * @param {Number} id Only return one ID if one is passed.\n * @return {Array} Array of IDs.\n */\n _getSoundIds: function(id) {\n var self = this;\n\n if (typeof id === 'undefined') {\n var ids = [];\n for (var i=0; i= 0;\n\n if (Howler._scratchBuffer && node.bufferSource) {\n node.bufferSource.onended = null;\n node.bufferSource.disconnect(0);\n if (isIOS) {\n try { node.bufferSource.buffer = Howler._scratchBuffer; } catch(e) {}\n }\n }\n node.bufferSource = null;\n\n return self;\n },\n\n /**\n * Set the source to a 0-second silence to stop any downloading (except in IE).\n * @param {Object} node Audio node to clear.\n */\n _clearSound: function(node) {\n var checkIE = /MSIE |Trident\\//.test(Howler._navigator && Howler._navigator.userAgent);\n if (!checkIE) {\n node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA';\n }\n }\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Setup the sound object, which each node attached to a Howl group is contained in.\n * @param {Object} howl The Howl parent group.\n */\n var Sound = function(howl) {\n this._parent = howl;\n this.init();\n };\n Sound.prototype = {\n /**\n * Initialize a new Sound object.\n * @return {Sound}\n */\n init: function() {\n var self = this;\n var parent = self._parent;\n\n // Setup the default parameters.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a unique ID for this sound.\n self._id = ++Howler._counter;\n\n // Add itself to the parent's pool.\n parent._sounds.push(self);\n\n // Create the new node.\n self.create();\n\n return self;\n },\n\n /**\n * Create and setup a new sound object, whether HTML5 Audio or Web Audio.\n * @return {Sound}\n */\n create: function() {\n var self = this;\n var parent = self._parent;\n var volume = (Howler._muted || self._muted || self._parent._muted) ? 0 : self._volume;\n\n if (parent._webAudio) {\n // Create the gain node for controlling volume (the source will connect to this).\n self._node = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n self._node.gain.setValueAtTime(volume, Howler.ctx.currentTime);\n self._node.paused = true;\n self._node.connect(Howler.masterGain);\n } else if (!Howler.noAudio) {\n // Get an unlocked Audio object from the pool.\n self._node = Howler._obtainHtml5Audio();\n\n // Listen for errors (http://dev.w3.org/html5/spec-author-view/spec.html#mediaerror).\n self._errorFn = self._errorListener.bind(self);\n self._node.addEventListener('error', self._errorFn, false);\n\n // Listen for 'canplaythrough' event to let us know the sound is ready.\n self._loadFn = self._loadListener.bind(self);\n self._node.addEventListener(Howler._canPlayEvent, self._loadFn, false);\n\n // Listen for the 'ended' event on the sound to account for edge-case where\n // a finite sound has a duration of Infinity.\n self._endFn = self._endListener.bind(self);\n self._node.addEventListener('ended', self._endFn, false);\n\n // Setup the new audio node.\n self._node.src = parent._src;\n self._node.preload = parent._preload === true ? 'auto' : parent._preload;\n self._node.volume = volume * Howler.volume();\n\n // Begin loading the source.\n self._node.load();\n }\n\n return self;\n },\n\n /**\n * Reset the parameters of this sound to the original state (for recycle).\n * @return {Sound}\n */\n reset: function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all of the parameters of this sound.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._rateSeek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a new ID so that it isn't confused with the previous sound.\n self._id = ++Howler._counter;\n\n return self;\n },\n\n /**\n * HTML5 Audio error listener callback.\n */\n _errorListener: function() {\n var self = this;\n\n // Fire an error event and pass back the code.\n self._parent._emit('loaderror', self._id, self._node.error ? self._node.error.code : 0);\n\n // Clear the event listener.\n self._node.removeEventListener('error', self._errorFn, false);\n },\n\n /**\n * HTML5 Audio canplaythrough listener callback.\n */\n _loadListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Setup a sprite if none is defined.\n if (Object.keys(parent._sprite).length === 0) {\n parent._sprite = {__default: [0, parent._duration * 1000]};\n }\n\n if (parent._state !== 'loaded') {\n parent._state = 'loaded';\n parent._emit('load');\n parent._loadQueue();\n }\n\n // Clear the event listener.\n self._node.removeEventListener(Howler._canPlayEvent, self._loadFn, false);\n },\n\n /**\n * HTML5 Audio ended listener callback.\n */\n _endListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Only handle the `ended`` event if the duration is Infinity.\n if (parent._duration === Infinity) {\n // Update the parent duration to match the real audio duration.\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Update the sprite that corresponds to the real duration.\n if (parent._sprite.__default[1] === Infinity) {\n parent._sprite.__default[1] = parent._duration * 1000;\n }\n\n // Run the regular ended method.\n parent._ended(self);\n }\n\n // Clear the event listener since the duration is now correct.\n self._node.removeEventListener('ended', self._endFn, false);\n }\n };\n\n /** Helper Methods **/\n /***************************************************************************/\n\n var cache = {};\n\n /**\n * Buffer a sound from URL, Data URI or cache and decode to audio source (Web Audio API).\n * @param {Howl} self\n */\n var loadBuffer = function(self) {\n var url = self._src;\n\n // Check if the buffer has already been cached and use it instead.\n if (cache[url]) {\n // Set the duration from the cache.\n self._duration = cache[url].duration;\n\n // Load the sound into this Howl.\n loadSound(self);\n\n return;\n }\n\n if (/^data:[^;]+;base64,/.test(url)) {\n // Decode the base64 data URI without XHR, since some browsers don't support it.\n var data = atob(url.split(',')[1]);\n var dataView = new Uint8Array(data.length);\n for (var i=0; i 0) {\n cache[self._src] = buffer;\n loadSound(self, buffer);\n } else {\n error();\n }\n };\n\n // Decode the buffer into an audio source.\n if (typeof Promise !== 'undefined' && Howler.ctx.decodeAudioData.length === 1) {\n Howler.ctx.decodeAudioData(arraybuffer).then(success).catch(error);\n } else {\n Howler.ctx.decodeAudioData(arraybuffer, success, error);\n }\n }\n\n /**\n * Sound is now loaded, so finish setting everything up and fire the loaded event.\n * @param {Howl} self\n * @param {Object} buffer The decoded buffer sound source.\n */\n var loadSound = function(self, buffer) {\n // Set the duration.\n if (buffer && !self._duration) {\n self._duration = buffer.duration;\n }\n\n // Setup a sprite if none is defined.\n if (Object.keys(self._sprite).length === 0) {\n self._sprite = {__default: [0, self._duration * 1000]};\n }\n\n // Fire the loaded event.\n if (self._state !== 'loaded') {\n self._state = 'loaded';\n self._emit('load');\n self._loadQueue();\n }\n };\n\n /**\n * Setup the audio context when available, or switch to HTML5 Audio mode.\n */\n var setupAudioContext = function() {\n // If we have already detected that Web Audio isn't supported, don't run this step again.\n if (!Howler.usingWebAudio) {\n return;\n }\n\n // Check if we are using Web Audio and setup the AudioContext if we are.\n try {\n if (typeof AudioContext !== 'undefined') {\n Howler.ctx = new AudioContext();\n } else if (typeof webkitAudioContext !== 'undefined') {\n Howler.ctx = new webkitAudioContext();\n } else {\n Howler.usingWebAudio = false;\n }\n } catch(e) {\n Howler.usingWebAudio = false;\n }\n\n // If the audio context creation still failed, set using web audio to false.\n if (!Howler.ctx) {\n Howler.usingWebAudio = false;\n }\n\n // Check if a webview is being used on iOS8 or earlier (rather than the browser).\n // If it is, disable Web Audio as it causes crashing.\n var iOS = (/iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform));\n var appVersion = Howler._navigator && Howler._navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n var version = appVersion ? parseInt(appVersion[1], 10) : null;\n if (iOS && version && version < 9) {\n var safari = /safari/.test(Howler._navigator && Howler._navigator.userAgent.toLowerCase());\n if (Howler._navigator && !safari) {\n Howler.usingWebAudio = false;\n }\n }\n\n // Create and expose the master GainNode when using Web Audio (useful for plugins or advanced usage).\n if (Howler.usingWebAudio) {\n Howler.masterGain = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n Howler.masterGain.gain.setValueAtTime(Howler._muted ? 0 : Howler._volume, Howler.ctx.currentTime);\n Howler.masterGain.connect(Howler.ctx.destination);\n }\n\n // Re-run the setup on Howler.\n Howler._setup();\n };\n\n // Add support for AMD (Asynchronous Module Definition) libraries such as require.js.\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return {\n Howler: Howler,\n Howl: Howl\n };\n });\n }\n\n // Add support for CommonJS libraries such as browserify.\n if (typeof exports !== 'undefined') {\n exports.Howler = Howler;\n exports.Howl = Howl;\n }\n\n // Add to global in Node.js (for testing, etc).\n if (typeof global !== 'undefined') {\n global.HowlerGlobal = HowlerGlobal;\n global.Howler = Howler;\n global.Howl = Howl;\n global.Sound = Sound;\n } else if (typeof window !== 'undefined') { // Define globally in case AMD is not available or unused.\n window.HowlerGlobal = HowlerGlobal;\n window.Howler = Howler;\n window.Howl = Howl;\n window.Sound = Sound;\n }\n})();\n\n\n/*!\n * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.\n * \n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n // Setup default properties.\n HowlerGlobal.prototype._pos = [0, 0, 0];\n HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0];\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Helper method to update the stereo panning position of all current Howls.\n * Future Howls will not use this value unless explicitly set.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @return {Howler/Number} Self or current stereo panning value.\n */\n HowlerGlobal.prototype.stereo = function(pan) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Loop through all Howls and update their stereo panning.\n for (var i=self._howls.length-1; i>=0; i--) {\n self._howls[i].stereo(pan);\n }\n\n return self;\n };\n\n /**\n * Get/set the position of the listener in 3D cartesian space. Sounds using\n * 3D position will be relative to the listener's position.\n * @param {Number} x The x-position of the listener.\n * @param {Number} y The y-position of the listener.\n * @param {Number} z The z-position of the listener.\n * @return {Howler/Array} Self or current listener position.\n */\n HowlerGlobal.prototype.pos = function(x, y, z) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._pos[1] : y;\n z = (typeof z !== 'number') ? self._pos[2] : z;\n\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n\n if (typeof self.ctx.listener.positionX !== 'undefined') {\n self.ctx.listener.positionX.setTargetAtTime(self._pos[0], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionY.setTargetAtTime(self._pos[1], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionZ.setTargetAtTime(self._pos[2], Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setPosition(self._pos[0], self._pos[1], self._pos[2]);\n }\n } else {\n return self._pos;\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the listener is pointing in the 3D cartesian space.\n * A front and up vector must be provided. The front is the direction the\n * face of the listener is pointing, and up is the direction the top of the\n * listener is pointing. Thus, these values are expected to be at right angles\n * from each other.\n * @param {Number} x The x-orientation of the listener.\n * @param {Number} y The y-orientation of the listener.\n * @param {Number} z The z-orientation of the listener.\n * @param {Number} xUp The x-orientation of the top of the listener.\n * @param {Number} yUp The y-orientation of the top of the listener.\n * @param {Number} zUp The z-orientation of the top of the listener.\n * @return {Howler/Array} Returns self or the current orientation vectors.\n */\n HowlerGlobal.prototype.orientation = function(x, y, z, xUp, yUp, zUp) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n var or = self._orientation;\n y = (typeof y !== 'number') ? or[1] : y;\n z = (typeof z !== 'number') ? or[2] : z;\n xUp = (typeof xUp !== 'number') ? or[3] : xUp;\n yUp = (typeof yUp !== 'number') ? or[4] : yUp;\n zUp = (typeof zUp !== 'number') ? or[5] : zUp;\n\n if (typeof x === 'number') {\n self._orientation = [x, y, z, xUp, yUp, zUp];\n\n if (typeof self.ctx.listener.forwardX !== 'undefined') {\n self.ctx.listener.forwardX.setTargetAtTime(x, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardY.setTargetAtTime(y, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardZ.setTargetAtTime(z, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upX.setTargetAtTime(xUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upY.setTargetAtTime(yUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upZ.setTargetAtTime(zUp, Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setOrientation(x, y, z, xUp, yUp, zUp);\n }\n } else {\n return or;\n }\n\n return self;\n };\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core init.\n * @param {Function} _super Core init method.\n * @return {Howl}\n */\n Howl.prototype.init = (function(_super) {\n return function(o) {\n var self = this;\n\n // Setup user-defined default properties.\n self._orientation = o.orientation || [1, 0, 0];\n self._stereo = o.stereo || null;\n self._pos = o.pos || null;\n self._pannerAttr = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : 360,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : 360,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : 0,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : 'inverse',\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : 10000,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : 'HRTF',\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : 1,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : 1\n };\n\n // Setup event listeners.\n self._onstereo = o.onstereo ? [{fn: o.onstereo}] : [];\n self._onpos = o.onpos ? [{fn: o.onpos}] : [];\n self._onorientation = o.onorientation ? [{fn: o.onorientation}] : [];\n\n // Complete initilization with howler.js core's init function.\n return _super.call(this, o);\n };\n })(Howl.prototype.init);\n\n /**\n * Get/set the stereo panning of the audio source for this sound or all in the group.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Number} Returns self or the current stereo panning value.\n */\n Howl.prototype.stereo = function(pan, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change stereo pan when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'stereo',\n action: function() {\n self.stereo(pan, id);\n }\n });\n\n return self;\n }\n\n // Check for PannerStereoNode support and fallback to PannerNode if it doesn't exist.\n var pannerType = (typeof Howler.ctx.createStereoPanner === 'undefined') ? 'spatial' : 'stereo';\n\n // Setup the group's stereo panning if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's stereo panning if no parameters are passed.\n if (typeof pan === 'number') {\n self._stereo = pan;\n self._pos = [pan, 0, 0];\n } else {\n return self._stereo;\n }\n }\n\n // Change the streo panning of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the group's values.\n * pannerAttr(id) -> Returns the sound id's values.\n * pannerAttr(o) -> Set's the values of all sounds in this Howl group.\n * pannerAttr(o, id) -> Set's the values of passed sound id.\n *\n * Attributes:\n * coneInnerAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * inside of which there will be no volume reduction.\n * coneOuterAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * outside of which the volume will be reduced to a constant value of `coneOuterGain`.\n * coneOuterGain - (0 by default) A parameter for directional audio sources, this is the gain outside of the\n * `coneOuterAngle`. It is a linear value in the range `[0, 1]`.\n * distanceModel - ('inverse' by default) Determines algorithm used to reduce volume as audio moves away from\n * listener. Can be `linear`, `inverse` or `exponential.\n * maxDistance - (10000 by default) The maximum distance between source and listener, after which the volume\n * will not be reduced any further.\n * refDistance - (1 by default) A reference distance for reducing volume as source moves further from the listener.\n * This is simply a variable of the distance model and has a different effect depending on which model\n * is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.\n * rolloffFactor - (1 by default) How quickly the volume reduces as source moves from listener. This is simply a\n * variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]`\n * with `inverse` and `exponential`.\n * panningModel - ('HRTF' by default) Determines which spatialization algorithm is used to position audio.\n * Can be `HRTF` or `equalpower`.\n *\n * @return {Howl/Object} Returns self or current panner attributes.\n */\n Howl.prototype.pannerAttr = function() {\n var self = this;\n var args = arguments;\n var o, id, sound;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the group's panner attribute values.\n return self._pannerAttr;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n o = args[0];\n\n // Set the grou's panner attribute values.\n if (typeof id === 'undefined') {\n if (!o.pannerAttr) {\n o.pannerAttr = {\n coneInnerAngle: o.coneInnerAngle,\n coneOuterAngle: o.coneOuterAngle,\n coneOuterGain: o.coneOuterGain,\n distanceModel: o.distanceModel,\n maxDistance: o.maxDistance,\n refDistance: o.refDistance,\n rolloffFactor: o.rolloffFactor,\n panningModel: o.panningModel\n };\n }\n\n self._pannerAttr = {\n coneInnerAngle: typeof o.pannerAttr.coneInnerAngle !== 'undefined' ? o.pannerAttr.coneInnerAngle : self._coneInnerAngle,\n coneOuterAngle: typeof o.pannerAttr.coneOuterAngle !== 'undefined' ? o.pannerAttr.coneOuterAngle : self._coneOuterAngle,\n coneOuterGain: typeof o.pannerAttr.coneOuterGain !== 'undefined' ? o.pannerAttr.coneOuterGain : self._coneOuterGain,\n distanceModel: typeof o.pannerAttr.distanceModel !== 'undefined' ? o.pannerAttr.distanceModel : self._distanceModel,\n maxDistance: typeof o.pannerAttr.maxDistance !== 'undefined' ? o.pannerAttr.maxDistance : self._maxDistance,\n refDistance: typeof o.pannerAttr.refDistance !== 'undefined' ? o.pannerAttr.refDistance : self._refDistance,\n rolloffFactor: typeof o.pannerAttr.rolloffFactor !== 'undefined' ? o.pannerAttr.rolloffFactor : self._rolloffFactor,\n panningModel: typeof o.pannerAttr.panningModel !== 'undefined' ? o.pannerAttr.panningModel : self._panningModel\n };\n }\n } else {\n // Return this sound's panner attribute values.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._pannerAttr : self._pannerAttr;\n }\n } else if (args.length === 2) {\n o = args[0];\n id = parseInt(args[1], 10);\n }\n\n // Update the values of the specified sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; it in o?Ee(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,g=(o,t)=>{for(var e in t||(t={}))Ve.call(t,e)&&$e(o,e,t[e]);if(Be)for(var e of Be(t))Ge.call(t,e)&&$e(o,e,t[e]);return o},D=(o,t)=>We(o,Ue(t));import{l as S,c as re}from"./index.ece3de28.js";function He(o,t){return t.forEach(function(e){e&&typeof e!="string"&&!Array.isArray(e)&&Object.keys(e).forEach(function(r){if(r!=="default"&&!(r in o)){var d=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(o,r,d.get?d:{enumerable:!0,get:function(){return e[r]}})}})}),Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var G={},ne={};Object.defineProperty(ne,"__esModule",{value:!0});ne.initCollections=void 0;function Ke(o){o.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:fall_from_height","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:ride_entity_in_lava","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),o.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),o.register("slot",["mainhand","offhand","head","chest","legs","feet"]),o.register("gamemode",["survival","creative","adventure","spectator"]),o.register("entity_source",["this","killer","direct_killer","killer_player"]),o.register("copy_source",["block_entity","this","killer","killer_player"]),o.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),o.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),o.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),o.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),o.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),o.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),o.register("generation_step",["air","liquid"]),o.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),o.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),o.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),o.register("cave_surface",["floor","ceiling"]),o.register("direction",["down","up","north","east","south","west"]),o.register("axis",["x","y","z"]),o.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),o.register("gui_light",["front","side"]),o.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),o.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}ne.initCollections=Ke;var ae={},ce={};Object.defineProperty(ce,"__esModule",{value:!0});ce.initAdvancementSchemas=void 0;const s=S;function Xe(o,t){const e=s.Reference.bind(void 0,o),r=s.StringNode.bind(void 0,t),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(e("entity_predicate")),change:n=>{var a,l;return(l=(a=n[0])===null||a===void 0?void 0:a.predicate)!==null&&l!==void 0?l:{}}},{type:"list",node:(0,s.ListNode)(e("condition")),change:n=>[{condition:"minecraft:entity_properties",predicate:n}]}],{context:"conditions"});o.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:r({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:e("text_component"),description:e("text_component"),background:(0,s.Opt)(r()),frame:(0,s.Opt)(r({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(r({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(r(),e("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(r()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(r({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(r({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(r({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),o.register("advancement_criteria",(0,s.ObjectNode)({trigger:r({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:n=>n.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(e("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(r({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(r({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(r({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:e("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(r({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate"))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(e("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,s.Opt)(e("location_predicate")),distance:(0,s.Opt)(e("distance_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:e("int_bounds"),occupied:e("int_bounds"),full:e("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(e("item_predicate")))},"minecraft:item_durability_changed":{delta:e("int_bounds"),durability:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:e("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:(0,s.Opt)(e("distance_predicate")),duration:e("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:location":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:nether_travel":{start_position:(0,s.Opt)(e("location_predicate")),distance:(0,s.Opt)(e("distance_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:r({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(e("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(e("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:r({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,s.Opt)(e("location_predicate")),distance:(0,s.Opt)(e("distance_predicate"))},"minecraft:slept_in_bed":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:e("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,s.Opt)(e("float_bounds"))},"minecraft:used_totem":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:voluntary_exile":{location:(0,s.Opt)(e("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}ce.initAdvancementSchemas=Xe;var de={},se={};Object.defineProperty(se,"__esModule",{value:!0});se.initModelSchemas=void 0;const N=S;function Ze(o,t){N.Reference.bind(void 0,o);const e=N.StringNode.bind(void 0,t),r=(n,a,l)=>(0,N.ListNode)((0,N.NumberNode)({min:a,max:l}),{minLength:n,maxLength:n}),d=(0,N.ChoiceNode)([{type:"alias",match:n=>typeof n=="string"&&n.startsWith("#"),node:e(),change:n=>typeof n=="string"?`#${n}`:"#0"},{type:"reference",match:n=>typeof n=="string",node:e({validator:"resource",params:{pool:"$texture"}}),change:n=>typeof n=="string"?n.replace(/^#/,""):""}],{choiceContext:"texture"});o.register("model",(0,N.Mod)((0,N.ObjectNode)({parent:(0,N.Opt)(e({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,N.Opt)((0,N.BooleanNode)()),gui_light:(0,N.Opt)(e({enum:"gui_light"})),textures:(0,N.Opt)((0,N.MapNode)(e(),d)),elements:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({from:r(3,-16,32),to:r(3,-16,32),rotation:(0,N.Opt)((0,N.ObjectNode)({origin:r(3),axis:e({enum:"axis"}),angle:(0,N.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,N.Opt)((0,N.BooleanNode)())})),shade:(0,N.Opt)((0,N.BooleanNode)()),faces:(0,N.MapNode)(e({enum:"direction"}),(0,N.ObjectNode)({texture:d,uv:(0,N.Opt)(r(4)),cullface:(0,N.Opt)(e({enum:"direction"})),rotation:(0,N.Opt)((0,N.NumberNode)({integer:!0})),tintindex:(0,N.Opt)((0,N.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,N.Opt)((0,N.MapNode)(e({enum:"display_position"}),(0,N.ObjectNode)({rotation:r(3),translation:r(3,-80,80),scale:r(3,-4,4)},{context:"item_transform"}))),overrides:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({predicate:(0,N.MapNode)(e({enum:"item_model_predicates"}),(0,N.NumberNode)()),model:e({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}se.initModelSchemas=Ze;var le={};Object.defineProperty(le,"__esModule",{value:!0});le.initBlockDefinitionSchemas=void 0;const x=S;function Ye(o,t){const e=x.Reference.bind(void 0,o),r=x.StringNode.bind(void 0,t);o.register("block_definition",(0,x.Mod)((0,x.ChoiceNode)([{type:"variants",match:n=>n.variants!==void 0,node:(0,x.ObjectNode)({variants:(0,x.MapNode)(r(),e("model_variant"))}),change:n=>({variants:{"":{}}})},{type:"multipart",match:n=>n.multipart!==void 0,node:(0,x.ObjectNode)({multipart:(0,x.ListNode)((0,x.ObjectNode)({when:(0,x.Opt)(e("multipart_condition")),apply:e("model_variant")}))}),change:n=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:r({validator:"resource",params:{pool:"$model"}}),x:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,x.Opt)((0,x.BooleanNode)())};o.register("model_variant",(0,x.ChoiceNode)([{type:"object",node:(0,x.ObjectNode)(d),change:n=>Array.isArray(n)&&n.length>0?n[0]:{}},{type:"list",node:(0,x.ListNode)((0,x.ObjectNode)(D(g({},d),{weight:(0,x.Opt)((0,x.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:n=>[g({weight:1},n)]}],{context:"model_variant"})),o.register("multipart_condition",(0,x.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,x.MapNode)(r(),r()),change:n=>typeof n=="object"&&Array.isArray(n==null?void 0:n.OR)&&n.OR.length>0?n.OR[0]:{}},{type:"or",match:n=>typeof n=="object"&&(n==null?void 0:n.OR)!==void 0,node:(0,x.ObjectNode)({OR:(0,x.ListNode)(e("multipart_condition"))}),change:n=>({OR:[n!=null?n:{}]})}],{context:"multipart_condition"}))}le.initBlockDefinitionSchemas=Ye;Object.defineProperty(de,"__esModule",{value:!0});de.initAssetsSchemas=void 0;const Je=se,Qe=le;function et(o,t){(0,Qe.initBlockDefinitionSchemas)(o,t),(0,Je.initModelSchemas)(o,t)}de.initAssetsSchemas=et;var F={};(function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.initCommonSchemas=o.InclusiveRange=o.IntProvider=o.FloatProvider=o.NoiseSettingsPresets=o.DefaultNoiseSettings=o.DimensionTypePresets=o.DefaultDimensionType=o.FunctionCases=o.ConditionCases=void 0;const t=S;o.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld",min_y:0,height:256};const e={"minecraft:igloo":{spacing:32,separation:8,salt:14357618},"minecraft:mansion":{spacing:80,separation:20,salt:10387319},"minecraft:jungle_pyramid":{spacing:32,separation:8,salt:14357619},"minecraft:nether_fossil":{spacing:2,separation:1,salt:14357921},"minecraft:stronghold":{spacing:1,separation:0,salt:0},"minecraft:shipwreck":{spacing:24,separation:4,salt:165745295},"minecraft:mineshaft":{spacing:1,separation:0,salt:0},"minecraft:desert_pyramid":{spacing:32,separation:8,salt:14357617},"minecraft:ruined_portal":{spacing:40,separation:15,salt:34222645},"minecraft:fortress":{spacing:27,separation:4,salt:30084232},"minecraft:pillager_outpost":{spacing:32,separation:8,salt:165745296},"minecraft:village":{spacing:32,separation:8,salt:10387312},"minecraft:endcity":{spacing:20,separation:11,salt:10387313},"minecraft:buried_treasure":{spacing:1,separation:0,salt:0},"minecraft:ocean_ruin":{spacing:20,separation:8,salt:14357621},"minecraft:bastion_remnant":{spacing:27,separation:4,salt:30084232},"minecraft:swamp_hut":{spacing:32,separation:8,salt:14357620},"minecraft:monument":{spacing:32,separation:5,salt:10387313}};o.DefaultNoiseSettings={bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:e}};function r(d,n){const a=t.StringNode.bind(void 0,n),l=t.Reference.bind(void 0,d);d.register("block_state",(0,t.Mod)((0,t.ObjectNode)({Name:a({validator:"resource",params:{pool:"block"}}),Properties:(0,t.Opt)((0,t.MapNode)(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),d.register("fluid_state",(0,t.Mod)((0,t.ObjectNode)({Name:a({validator:"resource",params:{pool:"fluid"}}),Properties:(0,t.Opt)((0,t.MapNode)(a(),a()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),d.register("block_pos",(0,t.Mod)((0,t.ListNode)((0,t.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const I=b=>(0,t.Opt)((0,t.ChoiceNode)([{type:"number",node:(0,t.NumberNode)({integer:b}),change:O=>{var h,w;return O===void 0?0:(w=(h=O.min)!==null&&h!==void 0?h:O.max)!==null&&w!==void 0?w:0}},{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)((0,t.NumberNode)({integer:b})),max:(0,t.Opt)((0,t.NumberNode)({integer:b}))},{context:"range"}),change:O=>({min:O!=null?O:0,max:O!=null?O:0})}]));d.register("int_bounds",I(!0)),d.register("float_bounds",I()),d.register("int_range",(0,t.ChoiceNode)([{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)(l("number_provider")),max:(0,t.Opt)(l("number_provider"))})},{type:"number",node:(0,t.NumberNode)({integer:!0})}],{context:"range"}));const B=(b,O,h,w,$,L,Y)=>{let J={};$&&Object.keys(Y[$]).forEach(E=>{J[E]=(0,t.Mod)(Y[$][E],{enabled:R=>R.push("type").get()===void 0})});const te=(0,t.ObjectNode)(g({type:(0,t.Mod)((0,t.Opt)(a({validator:"resource",params:{pool:b}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:Y},J),{context:L,disableSwitchContext:!0}),A=[{type:O,node:Y[w][h]}];return $&&A.push({type:"object",priority:-1,node:te}),Object.keys(Y).forEach(E=>{A.push({type:E,match:R=>{var Le;if("minecraft:"+((Le=R==null?void 0:R.type)===null||Le===void 0?void 0:Le.replace(/^minecraft:/,""))===E)return!0;const W=R?Object.keys(R):[];return typeof R=="object"&&((W==null?void 0:W.length)===0||(W==null?void 0:W.length)===1&&(W==null?void 0:W[0])==="type")},node:te,change:R=>({type:E})})}),(0,t.ChoiceNode)(A,{context:L,choiceContext:`${L}.type`})};d.register("number_provider",B("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,t.NumberNode)()},"minecraft:uniform":{min:l("number_provider"),max:l("number_provider")},"minecraft:binomial":{n:l("number_provider"),p:l("number_provider")},"minecraft:score":{target:l("scoreboard_name_provider"),score:a({validator:"objective"}),scale:(0,t.Opt)((0,t.NumberNode)())}})),d.register("scoreboard_name_provider",B("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:a({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:(0,t.Mod)(a({enum:"entity_source"}),{default:()=>"this"})}})),d.register("nbt_provider",B("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:a({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,t.Mod)(a({enum:"copy_source"}),{default:()=>"this"})}})),o.FloatProvider=b=>B("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,t.NumberNode)(b)},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(b),max_exclusive:(0,t.NumberNode)(b)})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:trapezoid":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),plateau:(0,t.NumberNode)()})}}),d.register("float_provider",(0,o.FloatProvider)()),o.IntProvider=b=>B("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,t.NumberNode)(g({integer:!0},b))},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},b)),max_inclusive:(0,t.NumberNode)(g({integer:!0},b))})},"minecraft:biased_to_bottom":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},b)),max_inclusive:(0,t.NumberNode)(g({integer:!0},b))})},"minecraft:clamped":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},b)),max_inclusive:(0,t.NumberNode)(g({integer:!0},b)),source:l("int_provider")})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},b)),max_inclusive:(0,t.NumberNode)(g({integer:!0},b)),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:l("int_provider")}))}}),d.register("int_provider",(0,o.IntProvider)()),d.register("vertical_anchor",(0,t.ChoiceNode)(["absolute","above_bottom","below_top"].map(b=>({type:b,match:O=>(O==null?void 0:O[b])!==void 0,change:O=>{var h,w,$;return{[b]:($=(w=(h=O.absolute)!==null&&h!==void 0?h:O.above_bottom)!==null&&w!==void 0?w:O.below_top)!==null&&$!==void 0?$:0}},node:(0,t.ObjectNode)({[b]:(0,t.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),d.register("height_provider",B("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:l("vertical_anchor")},"minecraft:uniform":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor"),plateau:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:l("height_provider")}))}})),o.InclusiveRange=b=>(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(b),max_inclusive:(0,t.NumberNode)(b)},{context:"range"}),d.register("noise_parameters",(0,t.Mod)((0,t.ObjectNode)({firstOctave:(0,t.NumberNode)({integer:!0}),amplitudes:(0,t.ListNode)((0,t.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),o.ConditionCases=(b=a({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,t.ListNode)(l("condition"))},"minecraft:block_state_property":{block:a({validator:"resource",params:{pool:"block"}}),properties:(0,t.MapNode)(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:l("damage_source_predicate")},"minecraft:entity_properties":{entity:b,predicate:l("entity_predicate")},"minecraft:entity_scores":{entity:b,scores:(0,t.MapNode)(a({validator:"objective"}),l("int_range"))},"minecraft:inverted":{term:l("condition")},"minecraft:killed_by_player":{inverse:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:location_check":{offsetX:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetY:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetZ:(0,t.Opt)((0,t.NumberNode)({integer:!0})),predicate:l("location_predicate")},"minecraft:match_tool":{predicate:l("item_predicate")},"minecraft:random_chance":{chance:(0,t.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,t.NumberNode)({min:0,max:1}),looting_multiplier:(0,t.NumberNode)()},"minecraft:reference":{name:a({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),chances:(0,t.ListNode)((0,t.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:l("int_range"),period:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:value_check":{value:l("number_provider"),range:l("int_range")},"minecraft:weather_check":{raining:(0,t.Opt)((0,t.BooleanNode)()),thundering:(0,t.Opt)((0,t.BooleanNode)())}}),o.FunctionCases=(b,O=a({enum:"copy_source"}),h=a({enum:"entity_source"}))=>{const w={"minecraft:apply_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),formula:a({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:(0,t.Mod)((0,t.ObjectNode)({bonusMultiplier:(0,t.Mod)((0,t.NumberNode)(),{enabled:L=>L.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,t.Mod)((0,t.NumberNode)(),{enabled:L=>L.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,t.Mod)((0,t.NumberNode)(),{enabled:L=>L.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:L=>L.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:O},"minecraft:copy_nbt":{source:l("nbt_provider"),ops:(0,t.ListNode)((0,t.ObjectNode)({source:a({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:a({validator:"nbt_path",params:{category:"minecraft:item"}}),op:a({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:a({validator:"resource",params:{pool:"block"}}),properties:(0,t.ListNode)(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,t.Opt)((0,t.ListNode)(a({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:l("number_provider"),treasure:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:exploration_map":{destination:(0,t.Opt)(a({enum:"map_feature"})),decoration:(0,t.Opt)(a({enum:"map_decoration"})),zoom:(0,t.Opt)((0,t.NumberNode)({integer:!0})),search_radius:(0,t.Opt)((0,t.NumberNode)({integer:!0})),skip_existing_chunks:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:fill_player_head":{entity:h},"minecraft:limit_count":{limit:l("int_range")},"minecraft:looting_enchant":{count:l("number_provider"),limit:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,t.ListNode)(l("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,t.ListNode)((0,t.ObjectNode)({pattern:a({enum:"banner_pattern"}),color:a({enum:"dye_color"})})),append:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_contents":{type:a({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,t.ListNode)(l("loot_entry"))},"minecraft:set_count":{count:l("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_damage":{damage:l("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,t.MapNode)(a({validator:"resource",params:{pool:"enchantment"}}),l("number_provider")),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_loot_table":{type:a({validator:"resource",params:{pool:"block_entity_type"}}),name:a({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,t.Opt)(h),lore:(0,t.ListNode)(l("text_component")),replace:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_name":{entity:(0,t.Opt)(h),name:(0,t.Opt)(l("text_component"))},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:a({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:(0,t.Opt)((0,t.ListNode)((0,t.ObjectNode)({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:l("number_provider")})))}},$={};return n.get("loot_function_type").forEach(L=>{$[L]=g(g({},w[L]),b)}),$},o.DimensionTypePresets=b=>(0,t.ObjectOrPreset)(a({validator:"resource",params:{pool:"$dimension_type"}}),b,{"minecraft:overworld":o.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end",min_y:0,height:256}}),o.NoiseSettingsPresets=b=>(0,t.ObjectOrPreset)(a({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),b,{"minecraft:overworld":o.DefaultNoiseSettings,"minecraft:nether":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:e}},"minecraft:end":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:e}},"minecraft:amplified":{bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,amplified:!0,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:e}},"minecraft:caves":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:e}},"minecraft:floating_islands":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:e}}})}o.initCommonSchemas=r})(F);var me={};Object.defineProperty(me,"__esModule",{value:!0});me.initConditionSchemas=void 0;const Q=S,tt=F;function rt(o,t){const e=Q.Reference.bind(void 0,o),r=Q.StringNode.bind(void 0,t);o.register("predicate",(0,Q.ObjectOrList)(e("condition"),{choiceContext:"condition"})),o.register("condition",(0,Q.Mod)((0,Q.ObjectNode)({condition:r({validator:"resource",params:{pool:"loot_condition_type"}}),[Q.Switch]:[{push:"condition"}],[Q.Case]:(0,tt.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}me.initConditionSchemas=rt;var _e={};Object.defineProperty(_e,"__esModule",{value:!0});_e.initDimensionSchemas=void 0;const v=S,ze=F;function ot(o,t){const e=v.Reference.bind(void 0,o),r=v.StringNode.bind(void 0,t);o.register("dimension",(0,v.Mod)((0,v.ObjectNode)({type:(0,ze.DimensionTypePresets)(e("dimension_type")),generator:(0,v.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[v.Switch]:[{push:"type"}],[v.Case]:{"minecraft:noise":{seed:(0,v.NumberNode)({integer:!0}),settings:(0,ze.NoiseSettingsPresets)(e("noise_settings")),biome_source:(0,v.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/biome_source"}}),[v.Switch]:[{push:"type"}],[v.Case]:{"minecraft:fixed":{biome:r({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,v.Opt)(r({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,v.Mod)((0,v.ListNode)(e("generator_biome")),{enabled:n=>n.push("preset").get()===void 0,default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,v.Opt)((0,v.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,v.ListNode)(r({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:(0,v.NumberNode)({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,v.ObjectNode)({biome:(0,v.Opt)(r({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,v.Opt)((0,v.BooleanNode)()),features:(0,v.Opt)((0,v.BooleanNode)()),layers:(0,v.ListNode)(e("generator_layer")),structures:e("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const n=Math.floor(Math.random()*4294967296)-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:n,biome_source:{type:"minecraft:fixed",seed:n,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const d=(0,v.ChoiceNode)([{type:"number",node:(0,v.NumberNode)({min:-2,max:2}),change:n=>{var a;return(a=n[0])!==null&&a!==void 0?a:0}},{type:"list",node:(0,v.ListNode)((0,v.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:n=>[n!=null?n:0,n!=null?n:0]}]);o.register("generator_biome",(0,v.Mod)((0,v.ObjectNode)({biome:r({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,v.ObjectNode)({temperature:d,humidity:d,continentalness:d,erosion:d,weirdness:d,depth:d,offset:(0,v.NumberNode)({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))}_e.initDimensionSchemas=ot;var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initDimensionTypeSchemas=void 0;const P=S,it=F;function nt(o,t){const e=P.StringNode.bind(void 0,t);o.register("dimension_type",(0,P.Mod)((0,P.ObjectNode)({ultrawarm:(0,P.BooleanNode)(),natural:(0,P.BooleanNode)(),piglin_safe:(0,P.BooleanNode)(),respawn_anchor_works:(0,P.BooleanNode)(),bed_works:(0,P.BooleanNode)(),has_raids:(0,P.BooleanNode)(),has_skylight:(0,P.BooleanNode)(),has_ceiling:(0,P.BooleanNode)(),coordinate_scale:(0,P.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,P.NumberNode)(),fixed_time:(0,P.Opt)((0,P.NumberNode)({integer:!0})),logical_height:(0,P.NumberNode)({integer:!0,min:0,max:4096}),effects:(0,P.Opt)(e({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:e({validator:"resource",params:{pool:"$tag/block"}}),min_y:(0,P.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,P.NumberNode)({integer:!0,min:0,max:4096})},{context:"dimension_type"}),r=>({default:()=>it.DefaultDimensionType,validate:(d,n,a,l)=>(n=r.validate(d,n,a,l),(n==null?void 0:n.min_y)+(n==null?void 0:n.height)>2047&&a.add(d.push("height"),"error.min_y_plus_height",2047),(n==null?void 0:n.logical_height)>(n==null?void 0:n.height)&&a.add(d.push("logical_height"),"error.logical_height"),(n==null?void 0:n.height)%16!==0&&a.add(d.push("height"),"error.height_multiple",16),(n==null?void 0:n.min_y)%16!==0&&a.add(d.push("min_y"),"error.min_y_multiple",16),n)})))}pe.initDimensionTypeSchemas=nt;var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initItemModifierSchemas=void 0;const U=S,at=F;function ct(o,t){const e=U.Reference.bind(void 0,o),r=U.StringNode.bind(void 0,t);o.register("item_modifier",(0,U.ObjectOrList)(e("function"),{choiceContext:"function"}));const d={conditions:(0,U.Opt)((0,U.ListNode)(e("condition")))};o.register("function",(0,U.Mod)((0,U.ObjectNode)({function:r({validator:"resource",params:{pool:"loot_function_type"}}),[U.Switch]:[{push:"function"}],[U.Case]:(0,at.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}ue.initItemModifierSchemas=ct;var fe={},q={};Object.defineProperty(q,"__esModule",{value:!0});q.LootFunctions=q.LootConditions=q.LootCopySources=q.LootEntitySources=q.LootTableTypes=void 0;q.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]);q.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);q.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);q.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]);q.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]);Object.defineProperty(fe,"__esModule",{value:!0});fe.initLootTableSchemas=void 0;const f=S,oe=q,Re=F;function dt(o,t){const e=f.Reference.bind(void 0,o),r=f.StringNode.bind(void 0,t),d={conditions:(0,f.Opt)((0,f.ListNode)(e("loot_condition")))},n=g({functions:(0,f.Opt)((0,f.ListNode)(e("loot_function")))},d);function a(h,w,$){const L=[],Y=J=>t.get(w).filter(te=>{var A;return((A=h.get(te))!==null&&A!==void 0?A:[]).every(R=>J.includes(R))});for(const[J,{allows:te,requires:A}]of oe.LootTableTypes){const E=[...te,...A];L.push({match:R=>R.getModel().get(new f.Path(["type"]))===J,node:$(Y(E))})}return L.push({match:J=>!0,node:$(w)}),(0,f.SwitchNode)(L)}const l=a(oe.LootConditions,"loot_condition_type",h=>r({validator:"resource",params:{pool:h instanceof Array?h:"loot_condition_type"}})),I=a(oe.LootFunctions,"loot_function_type",h=>r({validator:"resource",params:{pool:h instanceof Array?h:"loot_function_type"}})),B=a(oe.LootEntitySources,"entity_source",h=>r({enum:h})),b=a(oe.LootCopySources,"copy_source",h=>r({enum:h}));o.register("loot_table",(0,f.Mod)((0,f.ObjectNode)({type:(0,f.Opt)(r({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:(0,f.Opt)((0,f.ListNode)((0,f.Mod)((0,f.ObjectNode)(g({rolls:e("number_provider"),bonus_rolls:(0,f.Opt)(e("number_provider")),entries:(0,f.ListNode)(e("loot_entry"))},n),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,f.Opt)((0,f.ListNode)(e("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const O={enabled:h=>{var w;return((w=h.pop().get())===null||w===void 0?void 0:w.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(h.push("type").get())}};o.register("loot_entry",(0,f.Mod)((0,f.ObjectNode)({type:r({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0,min:1}),O)),quality:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0}),O)),[f.Switch]:[{push:"type"}],[f.Case]:{"minecraft:alternatives":g({children:(0,f.ListNode)(e("loot_entry"))},n),"minecraft:dynamic":g({name:r()},n),"minecraft:group":g({children:(0,f.ListNode)(e("loot_entry"))},n),"minecraft:item":g({name:r({validator:"resource",params:{pool:"item"}})},n),"minecraft:loot_table":g({name:r({validator:"resource",params:{pool:"$loot_table"}})},n),"minecraft:sequence":g({children:(0,f.ListNode)(e("loot_entry"))},n),"minecraft:tag":g({name:r({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,f.Opt)((0,f.BooleanNode)())},n)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),o.register("loot_function",(0,f.Mod)((0,f.ObjectNode)({function:I,[f.Switch]:[{push:"function"}],[f.Case]:(0,Re.FunctionCases)(d,b,B)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),o.register("loot_condition",(0,f.Mod)((0,f.ObjectNode)({condition:l,[f.Switch]:[{push:"condition"}],[f.Case]:(0,Re.ConditionCases)(B)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),o.register("attribute_modifier",(0,f.Mod)((0,f.ObjectNode)({attribute:r({validator:"resource",params:{pool:"attribute"}}),name:r(),amount:e("number_provider"),operation:r({enum:["addition","multiply_base","multiply_total"]}),id:(0,f.Opt)(r({validator:"uuid"})),slot:(0,f.StringOrList)(r({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}fe.initLootTableSchemas=dt;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initPackMcmetaSchemas=void 0;const ee=S,H=8;function st(o,t){o.register("pack_mcmeta",(0,ee.Mod)((0,ee.ObjectNode)({pack:(0,ee.Mod)((0,ee.ObjectNode)({pack_format:(0,ee.Mod)((0,ee.NumberNode)({integer:!0,min:H,max:H}),{default:()=>H,canUpdate:(e,r)=>r!==H,update:()=>[{name:"pack_format",params:[H],newValue:H}]}),description:(0,ee.Reference)(o,"text_component")}),{default:()=>({pack_format:H,description:""})})}),{default:()=>({pack:{pack_format:H,description:""}})}))}be.initPackMcmetaSchemas=st;var ge={};Object.defineProperty(ge,"__esModule",{value:!0});ge.initPredicatesSchemas=void 0;const c=S;function lt(o,t){const e=c.Reference.bind(void 0,o),r=c.StringNode.bind(void 0,t),d=(0,c.ChoiceNode)([{type:"string",node:r(),change:n=>typeof n=="boolean"||typeof n=="number"?n.toString():""},{type:"number",node:(0,c.NumberNode)(),change:n=>typeof n=="string"?parseInt(n):0},{type:"object",node:(0,c.ObjectNode)({min:(0,c.Opt)((0,c.NumberNode)({integer:!0})),max:(0,c.Opt)((0,c.NumberNode)({integer:!0}))}),change:n=>typeof n=="number"?{min:n,max:n}:{}},{type:"boolean",node:(0,c.BooleanNode)(),change:n=>n==="true"||n===1}]);o.register("item_predicate",(0,c.ObjectNode)({items:(0,c.Opt)((0,c.ListNode)(r({validator:"resource",params:{pool:"item"}}))),tag:(0,c.Opt)(r({validator:"resource",params:{pool:"$tag/item"}})),count:e("int_bounds"),durability:e("int_bounds"),potion:(0,c.Opt)(r({validator:"resource",params:{pool:"potion"}})),nbt:(0,c.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,c.Opt)((0,c.ListNode)(e("enchantment_predicate")))},{context:"item"})),o.register("enchantment_predicate",(0,c.ObjectNode)({enchantment:(0,c.Opt)(r({validator:"resource",params:{pool:"enchantment"}})),levels:e("int_bounds")},{context:"enchantment"})),o.register("block_predicate",(0,c.ObjectNode)({blocks:(0,c.Opt)((0,c.ListNode)(r({validator:"resource",params:{pool:"block"}}))),tag:(0,c.Opt)(r({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,c.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,c.Opt)((0,c.MapNode)(r(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),o.register("fluid_predicate",(0,c.ObjectNode)({fluid:(0,c.Opt)(r({validator:"resource",params:{pool:"fluid"}})),tag:(0,c.Opt)(r({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,c.Opt)((0,c.MapNode)(r(),d))},{context:"fluid"})),o.register("location_predicate",(0,c.ObjectNode)({position:(0,c.Opt)((0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds")})),biome:(0,c.Opt)(r({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,c.Opt)(r({enum:t.get("worldgen/structure_feature").map(n=>n.slice(10))})),dimension:(0,c.Opt)(r({validator:"resource",params:{pool:"$dimension"}})),light:(0,c.Opt)((0,c.ObjectNode)({light:e("int_bounds")})),smokey:(0,c.Opt)((0,c.BooleanNode)()),block:(0,c.Opt)(e("block_predicate")),fluid:(0,c.Opt)(e("fluid_predicate"))},{context:"location"})),o.register("statistic_predicate",(0,c.ObjectNode)({type:r({validator:"resource",params:{pool:"stat_type"}}),stat:r(),value:e("int_bounds"),[c.Switch]:[{push:"type"}],[c.Case]:{"minecraft:mined":{stat:r({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:r({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:r({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:r({validator:"resource",params:{pool:"custom_stat"}})}}})),o.register("player_predicate",(0,c.ObjectNode)({gamemode:(0,c.Opt)(r({enum:"gamemode"})),level:e("int_bounds"),advancements:(0,c.Opt)((0,c.MapNode)(r({validator:"resource",params:{pool:"$advancement"}}),(0,c.ChoiceNode)([{type:"boolean",node:(0,c.BooleanNode)(),change:n=>!0},{type:"object",node:(0,c.MapNode)(r(),(0,c.BooleanNode)())}]))),recipes:(0,c.Opt)((0,c.MapNode)(r({validator:"resource",params:{pool:"$recipe"}}),(0,c.BooleanNode)())),stats:(0,c.Opt)((0,c.ListNode)(e("statistic_predicate"))),looking_at:(0,c.Opt)(e("entity_predicate"))},{context:"player"})),o.register("status_effect_predicate",(0,c.ObjectNode)({amplifier:e("int_bounds"),duration:e("int_bounds"),ambient:(0,c.Opt)((0,c.BooleanNode)()),visible:(0,c.Opt)((0,c.BooleanNode)())},{context:"status_effect"})),o.register("distance_predicate",(0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds"),absolute:e("float_bounds"),horizontal:e("float_bounds")},{context:"distance"})),o.register("entity_predicate",(0,c.ObjectNode)({type:(0,c.Opt)(r({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,c.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,c.Opt)(r({validator:"team"})),location:(0,c.Opt)(e("location_predicate")),stepping_on:(0,c.Opt)(e("location_predicate")),distance:(0,c.Opt)(e("distance_predicate")),flags:(0,c.Opt)((0,c.ObjectNode)({is_on_fire:(0,c.Opt)((0,c.BooleanNode)()),is_sneaking:(0,c.Opt)((0,c.BooleanNode)()),is_sprinting:(0,c.Opt)((0,c.BooleanNode)()),is_swimming:(0,c.Opt)((0,c.BooleanNode)()),is_baby:(0,c.Opt)((0,c.BooleanNode)())})),equipment:(0,c.Opt)((0,c.MapNode)(r({enum:"slot"}),e("item_predicate"))),vehicle:(0,c.Opt)(e("entity_predicate")),passenger:(0,c.Opt)(e("entity_predicate")),targeted_entity:(0,c.Opt)(e("entity_predicate")),player:(0,c.Opt)(e("player_predicate")),lightning_bolt:(0,c.Opt)((0,c.ObjectNode)({blocks_set_on_fire:(0,c.Opt)(e("int_bounds")),entity_struck:(0,c.Opt)(e("entity_predicate"))})),fishing_hook:(0,c.Opt)((0,c.ObjectNode)({in_open_water:(0,c.Opt)((0,c.BooleanNode)())})),catType:(0,c.Opt)(r({enum:"cat_texture"})),effects:(0,c.Opt)((0,c.MapNode)(r({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate")))},{context:"entity"})),o.register("damage_source_predicate",(0,c.ObjectNode)({is_explosion:(0,c.Opt)((0,c.BooleanNode)()),is_fire:(0,c.Opt)((0,c.BooleanNode)()),is_magic:(0,c.Opt)((0,c.BooleanNode)()),is_projectile:(0,c.Opt)((0,c.BooleanNode)()),is_lightning:(0,c.Opt)((0,c.BooleanNode)()),bypasses_armor:(0,c.Opt)((0,c.BooleanNode)()),bypasses_invulnerability:(0,c.Opt)((0,c.BooleanNode)()),bypasses_magic:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),direct_entity:(0,c.Opt)(e("entity_predicate"))},{context:"damage_source"})),o.register("damage_predicate",(0,c.ObjectNode)({dealt:e("float_bounds"),taken:e("float_bounds"),blocked:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),type:(0,c.Opt)(e("damage_source_predicate"))},{context:"damage"}))}ge.initPredicatesSchemas=lt;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initRecipeSchemas=void 0;const u=S;function mt(o,t){const e=u.Reference.bind(void 0,o),r=u.StringNode.bind(void 0,t);o.register("recipe",(0,u.Mod)((0,u.ObjectNode)({type:r({validator:"resource",params:{pool:"recipe_serializer"}}),[u.Switch]:[{push:"type"}],[u.Case]:{"minecraft:crafting_shaped":{group:(0,u.Opt)(r({enum:"recipe_group",additional:!0})),pattern:(0,u.ListNode)(r()),key:(0,u.MapNode)(r(),e("recipe_ingredient")),result:e("recipe_result")},"minecraft:crafting_shapeless":{group:(0,u.Opt)(r()),ingredients:(0,u.ListNode)(e("recipe_ingredient")),result:e("recipe_result")},"minecraft:smelting":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),count:(0,u.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,u.Opt)(r()),base:e("recipe_ingredient_object"),addition:e("recipe_ingredient_object"),result:e("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),o.register("recipe_ingredient",(0,u.Mod)((0,u.ChoiceNode)([{type:"object",node:e("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,u.ListNode)(e("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_ingredient_object",(0,u.Mod)((0,u.ObjectNode)({item:(0,u.Opt)(r({validator:"resource",params:{pool:"item"}})),tag:(0,u.Opt)(r({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_result",(0,u.Mod)((0,u.ObjectNode)({item:r({validator:"resource",params:{pool:"item"}}),count:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}Ne.initRecipeSchemas=mt;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initTagsSchemas=void 0;const V=S;function _t(o,t){const e=V.StringNode.bind(void 0,t),r=d=>(0,V.Mod)((0,V.ObjectNode)({replace:(0,V.Opt)((0,V.BooleanNode)()),values:(0,V.ListNode)((0,V.ChoiceNode)([{type:"string",node:e({validator:"resource",params:{pool:d,allowTag:!0}}),change:n=>n.id},{type:"object",node:(0,V.ObjectNode)({id:e({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,V.BooleanNode)()}),change:n=>({id:n})}]))},{context:"tag"}),{default:()=>({values:[]})});o.register("block_tag",r("block")),o.register("entity_type_tag",r("entity_type")),o.register("fluid_tag",r("fluid")),o.register("function_tag",r("$function")),o.register("game_event_tag",r("game_event")),o.register("item_tag",r("item"))}he.initTagsSchemas=_t;var ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initTextComponentSchemas=void 0;const m=S;function pt(o,t){const e=m.Reference.bind(void 0,o),r=m.StringNode.bind(void 0,t),d=a=>{var l;return a instanceof Array?d(a[0]):(l=a==null?void 0:a.text)!==null&&l!==void 0?l:typeof a=="object"?"":a==null?void 0:a.toString()};o.register("text_component",(0,m.Mod)((0,m.ChoiceNode)([{type:"object",node:e("text_component_object"),change:a=>a instanceof Array?typeof a[0]=="object"?a[0]:{text:d(a[0])}:typeof a=="object"?a:{text:d(a)}},{type:"list",node:e("text_component_list"),change:a=>[a]},{type:"string",priority:1,node:r(),change:d},{type:"number",node:(0,m.NumberNode)(),change:a=>{const l=parseFloat(d(a));return isFinite(l)?l:a?1:0}},{type:"boolean",node:(0,m.BooleanNode)(),change:a=>{const l=d(a);return l==="true"||l==="false"?l==="true":!!l}}],{context:"text_component"}),{default:()=>({text:""})}));const n={color:(0,m.Opt)(r()),font:(0,m.Opt)(r()),bold:(0,m.Opt)((0,m.BooleanNode)()),italic:(0,m.Opt)((0,m.BooleanNode)()),underlined:(0,m.Opt)((0,m.BooleanNode)()),strikethrough:(0,m.Opt)((0,m.BooleanNode)()),obfuscated:(0,m.Opt)((0,m.BooleanNode)()),insertion:(0,m.Opt)(r()),clickEvent:(0,m.Opt)((0,m.ObjectNode)({action:r({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[m.Switch]:[{push:"action"}],[m.Case]:{change_page:{value:r()},copy_to_clipboard:{value:r()},open_file:{value:r()},open_url:{value:r()},run_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,m.Opt)((0,m.ObjectNode)({action:r({enum:["show_text","show_item","show_entity"]}),[m.Switch]:[{push:"action"}],[m.Case]:{show_text:{value:(0,m.Opt)(e("text_component")),contents:(0,m.Opt)(e("text_component"))},show_item:{value:(0,m.Opt)(r({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,m.Opt)((0,m.ObjectNode)({id:r({validator:"resource",params:{pool:"item"}}),count:(0,m.Opt)((0,m.NumberNode)({integer:!0})),tag:(0,m.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,m.Opt)((0,m.ObjectNode)({name:(0,m.Opt)(r()),type:(0,m.Opt)(r()),id:(0,m.Opt)(r())})),contents:(0,m.Opt)((0,m.Mod)((0,m.ObjectNode)({name:(0,m.Opt)(e("text_component")),type:r({validator:"resource",params:{pool:"entity_type"}}),id:r({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:(0,m.Opt)(e("text_component_list"))};o.register("text_component_object",(0,m.Mod)((0,m.ChoiceNode)([{type:"text",match:a=>typeof a=="object",change:a=>({text:""}),priority:-1,node:(0,m.ObjectNode)(g({text:r()},n))},{type:"translation",match:a=>(a==null?void 0:a.translate)!==void 0,change:a=>({translate:""}),node:(0,m.ObjectNode)(g({translate:r(),with:(0,m.Opt)(e("text_component_list"))},n))},{type:"score",match:a=>(a==null?void 0:a.score)!==void 0,change:a=>({score:{}}),node:(0,m.ObjectNode)(g({score:(0,m.ObjectNode)({name:r({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:r({validator:"objective"}),value:(0,m.Opt)(r())})},n))},{type:"selector",match:a=>(a==null?void 0:a.selector)!==void 0,change:a=>({selector:""}),node:(0,m.ObjectNode)(g({selector:r({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,m.Opt)(e("text_component"))},n))},{type:"keybind",match:a=>(a==null?void 0:a.keybind)!==void 0,change:a=>({keybind:""}),node:(0,m.ObjectNode)(g({keybind:r({enum:"keybind",additional:!0})},n))},{type:"nbt",match:a=>(a==null?void 0:a.nbt)!==void 0,change:a=>({nbt:""}),node:(0,m.ObjectNode)(g({nbt:r({validator:"nbt_path"}),block:(0,m.Opt)(r({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,m.Opt)(r({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,m.Opt)(r({validator:"resource",params:{pool:"$storage"}})),interpret:(0,m.Opt)((0,m.BooleanNode)()),separator:(0,m.Opt)(e("text_component"))},n))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),o.register("text_component_list",(0,m.Mod)((0,m.ListNode)(e("text_component")),{default:()=>[{text:""}]}))}ye.initTextComponentSchemas=pt;var ve={},Oe={};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initBiomeSchemas=void 0;const p=S;function ut(o,t){const e=p.StringNode.bind(void 0,t);o.register("biome",(0,p.Mod)((0,p.ObjectNode)({temperature:(0,p.NumberNode)(),downfall:(0,p.NumberNode)(),precipitation:e({enum:["none","rain","snow"]}),temperature_modifier:(0,p.Opt)(e({enum:["none","frozen"]})),category:e({enum:"biome_category"}),creature_spawn_probability:(0,p.Opt)((0,p.NumberNode)({min:0,max:1})),effects:(0,p.ObjectNode)({sky_color:(0,p.NumberNode)({color:!0}),fog_color:(0,p.NumberNode)({color:!0}),water_color:(0,p.NumberNode)({color:!0}),water_fog_color:(0,p.NumberNode)({color:!0}),grass_color:(0,p.Opt)((0,p.NumberNode)({color:!0})),foliage_color:(0,p.Opt)((0,p.NumberNode)({color:!0})),grass_color_modifier:(0,p.Opt)(e({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,p.Opt)(e()),mood_sound:(0,p.Opt)((0,p.ObjectNode)({sound:e(),tick_delay:(0,p.NumberNode)({integer:!0}),block_search_extent:(0,p.NumberNode)({integer:!0}),offset:(0,p.NumberNode)()})),additions_sound:(0,p.Opt)((0,p.ObjectNode)({sound:e(),tick_chance:(0,p.NumberNode)({min:0,max:1})})),music:(0,p.Opt)((0,p.ObjectNode)({sound:e(),min_delay:(0,p.NumberNode)({integer:!0,min:0}),max_delay:(0,p.NumberNode)({integer:!0,min:0}),replace_current_music:(0,p.BooleanNode)()})),particle:(0,p.Opt)((0,p.ObjectNode)({options:(0,p.ObjectNode)({type:e()}),probability:(0,p.NumberNode)({min:0,max:1})}))}),spawners:(0,p.MapNode)(e({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),(0,p.Mod)((0,p.ListNode)((0,p.ObjectNode)({type:e({validator:"resource",params:{pool:"entity_type"}}),weight:(0,p.NumberNode)({integer:!0}),minCount:(0,p.NumberNode)({integer:!0}),maxCount:(0,p.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:(0,p.MapNode)(e({validator:"resource",params:{pool:"entity_type"}}),(0,p.Mod)((0,p.ObjectNode)({energy_budget:(0,p.NumberNode)(),charge:(0,p.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,p.MapNode)(e({enum:["air","liquid"]}),(0,p.Mod)((0,p.ListNode)(e({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:(0,p.ListNode)((0,p.Mod)((0,p.ListNode)(e({validator:"resource",params:{pool:"$worldgen/placed_feature"}})),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}Oe.initBiomeSchemas=ut;var ke={};Object.defineProperty(ke,"__esModule",{value:!0});ke.initCarverSchemas=void 0;const M=S,K=F;function ft(o,t){const e=M.Reference.bind(void 0,o),r=M.StringNode.bind(void 0,t),d={vertical_rotation:(0,K.FloatProvider)(),shape:(0,M.ObjectNode)({distance_factor:(0,K.FloatProvider)(),thickness:(0,K.FloatProvider)(),width_smoothness:(0,M.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,K.FloatProvider)(),vertical_radius_default_factor:(0,M.NumberNode)(),vertical_radius_center_factor:(0,M.NumberNode)()})},n={horizontal_radius_multiplier:(0,K.FloatProvider)(),vertical_radius_multiplier:(0,K.FloatProvider)(),floor_level:(0,K.FloatProvider)({min:-1,max:1})};o.register("configured_carver",(0,M.Mod)((0,M.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,M.ObjectNode)({probability:(0,M.NumberNode)({min:0,max:1}),y:e("height_provider"),yScale:(0,K.FloatProvider)(),lava_level:e("vertical_anchor"),debug_settings:(0,M.Opt)((0,M.ObjectNode)({debug_mode:(0,M.Opt)((0,M.BooleanNode)()),air_state:(0,M.Opt)(e("block_state")),water_state:(0,M.Opt)(e("block_state")),lava_state:(0,M.Opt)(e("block_state")),barrier_state:(0,M.Opt)(e("block_state"))})),[M.Switch]:["pop",{push:"type"}],[M.Case]:{"minecraft:canyon":d,"minecraft:cave":n,"minecraft:nether_cave":n}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}ke.initCarverSchemas=ft;var xe={};Object.defineProperty(xe,"__esModule",{value:!0});xe.initDecoratorSchemas=void 0;const C=S,ie=F;function bt(o,t){const e=C.Reference.bind(void 0,o),r=C.StringNode.bind(void 0,t);o.register("decorator",(0,C.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[C.Switch]:[{push:"type"}],[C.Case]:{"minecraft:block_predicate_filter":{predicate:e("block_predicate_worldgen")},"minecraft:carving_mask":{step:r({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,C.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,ie.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,ie.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,C.NumberNode)(),below_noise:(0,C.NumberNode)({integer:!0}),above_noise:(0,C.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,C.NumberNode)({integer:!0}),noise_factor:(0,C.NumberNode)(),noise_offset:(0,C.Opt)((0,C.NumberNode)())},"minecraft:environment_scan":{direction_of_search:r({enum:["up","down"]}),max_steps:(0,C.NumberNode)({integer:!0,min:1,max:32}),target_condition:e("block_predicate_worldgen"),allowed_search_condition:(0,C.Opt)(e("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:r({enum:"heightmap_type"})},"minecraft:height_range":{height:e("height_provider")},"minecraft:random_offset":{xz_spread:(0,ie.IntProvider)({min:-16,max:16}),y_spread:(0,ie.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:r({enum:"heightmap_type"}),min_inclusive:(0,C.Opt)((0,C.NumberNode)({integer:!0})),max_inclusive:(0,C.Opt)((0,C.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,C.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))}xe.initDecoratorSchemas=bt;var we={},Z={};Object.defineProperty(Z,"__esModule",{value:!0});Z.initProcessorListSchemas=Z.Processors=void 0;const y=S;function gt(o,t){const e=y.Reference.bind(void 0,o),r=y.StringNode.bind(void 0,t);Z.Processors=(0,y.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:n=>{}},{type:"object",node:e("processor_list"),change:n=>({processors:[{processor_type:"minecraft:nop"}]})}]),o.register("processor_list",(0,y.Mod)((0,y.ObjectNode)({processors:(0,y.ListNode)(e("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),o.register("processor",(0,y.Mod)((0,y.ObjectNode)({processor_type:r({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[y.Switch]:[{push:"processor_type"}],[y.Case]:{"minecraft:block_age":{mossiness:(0,y.NumberNode)()},"minecraft:block_ignore":{blocks:(0,y.ListNode)(e("block_state"))},"minecraft:block_rot":{integrity:(0,y.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:r({enum:"heightmap_type"}),offset:(0,y.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:r({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:(0,y.ListNode)(e("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),o.register("processor_rule",(0,y.Mod)((0,y.ObjectNode)({position_predicate:(0,y.Opt)(e("pos_rule_test")),location_predicate:e("rule_test"),input_predicate:e("rule_test"),output_state:e("block_state"),output_nbt:(0,y.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const d={min_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1})),max_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1}))};o.register("pos_rule_test",(0,y.ObjectNode)({predicate_type:r({validator:"resource",params:{pool:"pos_rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:axis_aligned_linear_pos":g({axis:r({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),o.register("rule_test",(0,y.ObjectNode)({predicate_type:r({validator:"resource",params:{pool:"rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:block_match":{block:r({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:e("block_state")},"minecraft:random_block_match":{block:r({validator:"resource",params:{pool:"block"}}),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:e("block_state"),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:r({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}Z.initProcessorListSchemas=gt;Object.defineProperty(we,"__esModule",{value:!0});we.initFeatureSchemas=void 0;const i=S,k=F,Te=Z;function Nt(o,t){const e=i.Reference.bind(void 0,o),r=i.StringNode.bind(void 0,t),d=(0,i.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:e("configured_feature")}],{choiceContext:"feature"}),n=(0,i.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:e("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1})),xz_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),y_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),feature:n},l={state:e("block_state"),radius:(0,k.IntProvider)({min:0,max:8}),half_height:(0,i.NumberNode)({integer:!0,min:0,max:4}),targets:(0,i.ListNode)(e("block_state"))},I={cap_provider:e("block_state_provider"),stem_provider:e("block_state_provider"),foliage_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0}))},B=(0,i.ObjectNode)({target:e("rule_test"),state:e("block_state")}),b={size:(0,i.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,i.NumberNode)({min:0,max:1}),targets:(0,i.ListNode)(B)},O={surface:r({enum:"cave_surface"}),depth:(0,k.IntProvider)({min:1,max:128}),vertical_range:(0,i.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,i.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,i.NumberNode)({min:0,max:1}),vegetation_chance:(0,i.NumberNode)({min:0,max:1}),xz_radius:(0,k.IntProvider)(),replaceable:r({validator:"resource",params:{pool:"$tag/block"}}),ground_state:e("block_state_provider"),vegetation_feature:n};o.register("configured_feature",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,i.ObjectNode)({[i.Switch]:["pop",{push:"type"}],[i.Case]:{"minecraft:bamboo":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,k.IntProvider)({min:0,max:3}),height:(0,k.IntProvider)({min:1,max:10})},"minecraft:block_column":{direction:r({enum:["up","down","north","east","south","west"]}),allowed_placement:e("block_predicate_worldgen"),prioritize_tip:(0,i.BooleanNode)(),layers:(0,i.ListNode)((0,i.ObjectNode)({height:(0,k.IntProvider)({min:0}),provider:e("block_state_provider")}))},"minecraft:block_pile":{state_provider:e("block_state_provider")},"minecraft:delta_feature":{contents:e("block_state"),rim:e("block_state"),size:(0,k.IntProvider)({min:0,max:16}),rim_size:(0,k.IntProvider)({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,i.NumberNode)({integer:!0,min:1,max:512}),height:(0,k.IntProvider)({min:0,max:128}),radius:(0,k.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,i.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,i.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,k.IntProvider)({min:0,max:128}),density:(0,k.FloatProvider)({min:0,max:2}),wetness:(0,k.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,i.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,i.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,i.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,i.BooleanNode)(),exit:(0,i.Opt)(e("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,i.Opt)((0,i.BooleanNode)()),crystal_beam_target:(0,i.Opt)(e("block_pos")),spikes:(0,i.ListNode)((0,i.ObjectNode)({centerX:(0,i.Opt)((0,i.NumberNode)({integer:!0})),centerZ:(0,i.Opt)((0,i.NumberNode)({integer:!0})),radius:(0,i.Opt)((0,i.NumberNode)({integer:!0})),height:(0,i.Opt)((0,i.NumberNode)({integer:!0})),guarded:(0,i.Opt)((0,i.BooleanNode)())}))},"minecraft:fill_layer":{state:e("block_state"),height:(0,i.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:e("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,i.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,i.ListNode)(r({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,i.ListNode)(r({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Te.Processors,overlay_processors:Te.Processors},"minecraft:geode":{blocks:(0,i.ObjectNode)({filling_provider:e("block_state_provider"),inner_layer_provider:e("block_state_provider"),alternate_inner_layer_provider:e("block_state_provider"),middle_layer_provider:e("block_state_provider"),outer_layer_provider:e("block_state_provider"),inner_placements:(0,i.ListNode)(e("block_state")),cannot_replace:r({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:r({validator:"resource",params:{pool:"$tag/block"}})}),layers:(0,i.ObjectNode)({filling:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),inner_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),middle_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),outer_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50}))}),crack:(0,i.ObjectNode)({generate_crack_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),base_crack_size:(0,i.Opt)((0,i.NumberNode)({min:0,max:5})),crack_point_offset:(0,i.Opt)((0,i.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,i.Opt)((0,i.BooleanNode)()),outer_wall_distance:(0,i.Opt)((0,k.IntProvider)({min:1,max:20})),distribution_points:(0,i.Opt)((0,k.IntProvider)({min:1,max:20})),point_offset:(0,i.Opt)((0,k.IntProvider)({min:0,max:10})),min_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),max_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,i.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,i.Opt)((0,i.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),can_place_on_floor:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_ceiling:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_wall:(0,i.Opt)((0,i.BooleanNode)()),can_be_placed_on:(0,i.ListNode)(r({validator:"resource",params:{pool:"block"}}))},"minecraft:huge_brown_mushroom":I,"minecraft:huge_fungus":{hat_state:e("block_state"),decor_state:e("block_state"),stem_state:e("block_state"),valid_base_block:e("block_state"),planted:(0,i.Opt)((0,i.BooleanNode)())},"minecraft:huge_red_mushroom":I,"minecraft:ice_patch":l,"minecraft:iceberg":{state:e("block_state")},"minecraft:lake":{fluid:e("block_state_provider"),barrier:e("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,k.IntProvider)({min:0,max:60}),height_scale:(0,k.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,i.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,k.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,k.FloatProvider)({min:.1,max:10}),wind_speed:(0,k.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,i.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,i.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:e("block_state_provider"),spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:e("block_state"),target:e("block_state"),radius:(0,k.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":b,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,i.Opt)((0,i.NumberNode)({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:n,feature_true:n},"minecraft:random_selector":{features:(0,i.ListNode)((0,i.ObjectNode)({chance:(0,i.NumberNode)({min:0,max:1}),feature:n})),default:n},"minecraft:replace_single_block":{targets:(0,i.ListNode)(B)},"minecraft:root_system":{required_vertical_space_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,i.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,i.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,i.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:r({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:e("block_state_provider"),hanging_root_state_provider:e("block_state_provider"),allowed_tree_position:e("block_predicate_worldgen"),feature:n},"minecraft:scattered_ore":b,"minecraft:sea_pickle":{count:(0,k.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:e("block_state_provider")},"minecraft:simple_random_selector":{features:(0,i.ListNode)(n)},"minecraft:spring_feature":{state:e("fluid_state"),rock_count:(0,i.NumberNode)({integer:!0}),hole_count:(0,i.NumberNode)({integer:!0}),requires_block_below:(0,i.BooleanNode)(),valid_blocks:(0,i.ListNode)(r({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:(0,i.Opt)((0,i.BooleanNode)()),force_dirt:(0,i.Opt)((0,i.BooleanNode)()),minimum_size:e("feature_size"),dirt_provider:e("block_state_provider"),trunk_provider:e("block_state_provider"),foliage_provider:e("block_state_provider"),trunk_placer:(0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,i.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,i.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,i.NumberNode)({integer:!0,min:0,max:24}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,k.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,k.IntProvider)({min:0,max:16}),offset:(0,k.IntProvider)({min:0,max:16}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:blob_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,k.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,k.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,k.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,k.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,i.ListNode)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:alter_ground":{provider:e("block_state_provider")},"minecraft:beehive":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,i.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1}),max_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,i.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,i.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,i.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":O,"minecraft:waterlogged_vegetation_patch":O}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),o.register("placed_feature",(0,i.Mod)((0,i.ObjectNode)({feature:d,placement:(0,i.ListNode)(e("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),o.register("feature_size",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,i.Opt)((0,i.NumberNode)({min:0,max:80})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:two_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const h={seed:(0,i.NumberNode)({integer:!0}),noise:e("noise_parameters"),scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};o.register("block_state_provider",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:dual_noise_provider":D(g({},h),{variety:(0,k.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:e("noise_parameters"),slow_scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,i.ListNode)(e("block_state"))}),"minecraft:noise_threshold_provider":D(g({},h),{threshold:(0,i.NumberNode)({min:-1,max:1}),high_chance:(0,i.NumberNode)({min:0,max:1}),default_state:e("block_state"),low_states:(0,i.ListNode)(e("block_state")),high_states:(0,i.ListNode)(e("block_state"))}),"minecraft:noise_provider":D(g({},h),{states:(0,i.ListNode)(e("block_state"))}),"minecraft:randomized_int_state_provider":{property:r(),values:(0,k.IntProvider)(),source:e("block_state_provider")},"minecraft:rotated_block_provider":{state:e("block_state")},"minecraft:simple_state_provider":{state:e("block_state")},"minecraft:weighted_state_provider":{entries:(0,i.ListNode)((0,i.Mod)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0,min:1}),data:e("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const w={offset:(0,i.Opt)((0,i.ListNode)((0,i.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};o.register("block_predicate_worldgen",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"block_predicate_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:all_of":{predicates:(0,i.ListNode)(e("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,i.ListNode)(e("block_predicate_worldgen"))},"minecraft:has_sturdy_face":D(g({},w),{direction:r({enum:"direction"})}),"minecraft:inside_world_bounds":g({},w),"minecraft:matching_block_tag":D(g({},w),{tag:r({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":D(g({},w),{blocks:(0,i.ListNode)(r({validator:"resource",params:{pool:"block"}}))}),"minecraft:matching_fluids":D(g({},w),{fluids:(0,i.ListNode)(r({validator:"resource",params:{pool:"fluid"}}))}),"minecraft:not":{predicate:e("block_predicate_worldgen")},"minecraft:would_survive":D(g({},w),{state:e("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))}we.initFeatureSchemas=Nt;var Se={};Object.defineProperty(Se,"__esModule",{value:!0});Se.initNoiseSettingsSchemas=void 0;const _=S,ht=F;function yt(o,t){const e=_.Reference.bind(void 0,o),r=_.StringNode.bind(void 0,t);o.register("noise_settings",(0,_.Mod)((0,_.ObjectNode)({sea_level:(0,_.NumberNode)({integer:!0}),disable_mob_generation:(0,_.BooleanNode)(),noise_caves_enabled:(0,_.BooleanNode)(),noodle_caves_enabled:(0,_.BooleanNode)(),aquifers_enabled:(0,_.BooleanNode)(),ore_veins_enabled:(0,_.BooleanNode)(),legacy_random_source:(0,_.BooleanNode)(),default_block:e("block_state"),default_fluid:e("block_state"),noise:(0,_.ObjectNode)({min_y:(0,_.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,_.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,_.NumberNode)({integer:!0}),size_vertical:(0,_.NumberNode)({integer:!0}),island_noise_override:(0,_.Opt)((0,_.BooleanNode)()),amplified:(0,_.Opt)((0,_.BooleanNode)()),large_biomes:(0,_.Opt)((0,_.BooleanNode)()),sampling:(0,_.ObjectNode)({xz_scale:(0,_.NumberNode)(),y_scale:(0,_.NumberNode)(),xz_factor:(0,_.NumberNode)(),y_factor:(0,_.NumberNode)()}),bottom_slide:e("noise_slider"),top_slide:e("noise_slider"),terrain_shaper:e("terrain_shaper")}),surface_rule:e("material_rule"),structures:e("generator_structures")},{context:"noise_settings"}),d=>({default:()=>ht.DefaultNoiseSettings,validate:(n,a,l,I)=>{var B,b,O,h;return a=d.validate(n,a,l,I),((B=a==null?void 0:a.noise)===null||B===void 0?void 0:B.min_y)+((b=a==null?void 0:a.noise)===null||b===void 0?void 0:b.height)>2047&&l.add(n.push("noise").push("height"),"error.min_y_plus_height",2047),((O=a==null?void 0:a.noise)===null||O===void 0?void 0:O.height)%16!==0&&l.add(n.push("noise").push("height"),"error.height_multiple",16),((h=a==null?void 0:a.noise)===null||h===void 0?void 0:h.min_y)%16!==0&&l.add(n.push("noise").push("min_y"),"error.min_y_multiple",16),a}}))),o.register("noise_slider",(0,_.ObjectNode)({target:(0,_.NumberNode)(),size:(0,_.NumberNode)({integer:!0,min:0}),offset:(0,_.NumberNode)({integer:!0})})),o.register("generator_structures",(0,_.ObjectNode)({stronghold:(0,_.Opt)((0,_.ObjectNode)({distance:(0,_.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,_.NumberNode)({integer:!0,min:0,max:1023}),count:(0,_.NumberNode)({integer:!0,min:1,max:4095})})),structures:(0,_.MapNode)(r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),(0,_.Mod)((0,_.ObjectNode)({spacing:(0,_.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,_.Mod)((0,_.NumberNode)({integer:!0,min:0,max:4096}),d=>({validate:(n,a,l,I)=>(n.pop().push("spacing").get()<=a&&l.add(n,"error.separation_smaller_spacing"),d.validate(n,a,l,I))})),salt:(0,_.NumberNode)({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),o.register("generator_layer",(0,_.Mod)((0,_.ObjectNode)({block:r({validator:"resource",params:{pool:"block"}}),height:(0,_.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),o.register("terrain_shaper",(0,_.Mod)((0,_.ObjectNode)({offset:e("terrain_spline"),factor:e("terrain_spline"),jaggedness:e("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),o.register("terrain_spline",(0,_.Mod)((0,_.ChoiceNode)([{type:"number",node:(0,_.NumberNode)()},{type:"object",node:(0,_.ObjectNode)({coordinate:(0,_.Mod)(r({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:(0,_.ListNode)((0,_.ObjectNode)({location:(0,_.NumberNode)(),derivative:(0,_.NumberNode)(),value:e("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}Se.initNoiseSettingsSchemas=yt;var je={};Object.defineProperty(je,"__esModule",{value:!0});je.initStructureFeatureSchemas=void 0;const z=S;function vt(o,t){const e=z.StringNode.bind(void 0,t),r=z.Reference.bind(void 0,o),d={start_pool:e({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,z.NumberNode)({integer:!0})};o.register("configured_structure_feature",(0,z.Mod)((0,z.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:(0,z.ObjectNode)({[z.Switch]:["pop",{push:"type"}],[z.Case]:{"minecraft:bastion_remnant":d,"minecraft:buried_treasure":{probability:(0,z.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:e({enum:["normal","mesa"]}),probability:(0,z.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:r("height_provider")},"minecraft:ocean_ruin":{biome_temp:e({enum:["cold","warm"]}),large_probability:(0,z.NumberNode)({min:0,max:1}),cluster_probability:(0,z.NumberNode)({min:0,max:1})},"minecraft:pillager_outpost":d,"minecraft:ruined_portal":{portal_type:e({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:(0,z.Opt)((0,z.BooleanNode)())},"minecraft:village":d}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}je.initStructureFeatureSchemas=vt;var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.initSurfaceRuleSchemas=void 0;const j=S;function Ot(o,t){const e=j.StringNode.bind(void 0,t),r=j.Reference.bind(void 0,o);o.register("material_rule",(0,j.Mod)((0,j.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/material_rule"}}),[j.Switch]:[{push:"type"}],[j.Case]:{"minecraft:block":{result_state:r("block_state")},"minecraft:condition":{if_true:r("material_condition"),then_run:r("material_rule")},"minecraft:sequence":{sequence:(0,j.ListNode)(r("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),o.register("material_condition",(0,j.Mod)((0,j.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/material_condition"}}),[j.Switch]:[{push:"type"}],[j.Case]:{"minecraft:biome":{biome_is:(0,j.ListNode)(e({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:e({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,j.NumberNode)(),max_threshold:(0,j.NumberNode)()},"minecraft:not":{invert:r("material_condition")},"minecraft:stone_depth":{offset:(0,j.NumberNode)({integer:!0}),surface_type:e({enum:"cave_surface"}),add_surface_depth:(0,j.BooleanNode)(),add_surface_secondary_depth:(0,j.BooleanNode)()},"minecraft:vertical_gradient":{random_name:e(),true_at_and_below:r("vertical_anchor"),false_at_and_above:r("vertical_anchor")},"minecraft:water":{offset:(0,j.NumberNode)({integer:!0}),surface_depth_multiplier:(0,j.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,j.BooleanNode)()},"minecraft:y_above":{anchor:r("vertical_anchor"),surface_depth_multiplier:(0,j.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,j.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))}Me.initSurfaceRuleSchemas=Ot;var Ce={};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.initTemplatePoolSchemas=void 0;const T=S,qe=Z;function kt(o,t){const e=T.Reference.bind(void 0,o),r=T.StringNode.bind(void 0,t);o.register("template_pool",(0,T.Mod)((0,T.ObjectNode)({name:r(),fallback:r(),elements:(0,T.ListNode)(e("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),o.register("template_weighted_element",(0,T.Mod)((0,T.ObjectNode)({weight:(0,T.NumberNode)({integer:!0,min:1}),element:e("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),o.register("template_element",(0,T.Mod)((0,T.ObjectNode)({element_type:r({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:r({enum:["rigid","terrain_matching"]}),[T.Switch]:[{push:"element_type"}],[T.Case]:{"minecraft:feature_pool_element":{feature:r({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:r({validator:"resource",params:{pool:"$structure"}}),processors:qe.Processors},"minecraft:list_pool_element":{elements:(0,T.ListNode)(e("template_element"))},"minecraft:single_pool_element":{location:r({validator:"resource",params:{pool:"$structure"}}),processors:qe.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}Ce.initTemplatePoolSchemas=kt;Object.defineProperty(ve,"__esModule",{value:!0});ve.initWorldgenSchemas=void 0;const xt=Oe,wt=ke,St=xe,jt=we,Mt=Se,Ct=Z,Pt=je,Lt=Me,Bt=Ce;function $t(o,t){(0,Ct.initProcessorListSchemas)(o,t),(0,xt.initBiomeSchemas)(o,t),(0,wt.initCarverSchemas)(o,t),(0,St.initDecoratorSchemas)(o,t),(0,jt.initFeatureSchemas)(o,t),(0,Mt.initNoiseSettingsSchemas)(o,t),(0,Pt.initStructureFeatureSchemas)(o,t),(0,Lt.initSurfaceRuleSchemas)(o,t),(0,Bt.initTemplatePoolSchemas)(o,t)}ve.initWorldgenSchemas=$t;var Pe={};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.initWorldSettingsSchemas=void 0;const X=S;function zt(o,t){const e=X.Reference.bind(void 0,o),r=X.StringNode.bind(void 0,t);o.register("world_settings",(0,X.Mod)((0,X.ObjectNode)({generate_features:(0,X.BooleanNode)(),bonus_chest:(0,X.BooleanNode)(),seed:(0,X.NumberNode)({integer:!0}),dimensions:(0,X.MapNode)(r({validator:"resource",params:{pool:"$dimension"}}),e("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}Pe.initWorldSettingsSchemas=zt;Object.defineProperty(ae,"__esModule",{value:!0});ae.initSchemas=void 0;const Rt=ce,Tt=de,qt=F,It=me,Ft=_e,Dt=pe,At=ue,Et=fe,Wt=be,Ut=ge,Vt=Ne,Gt=he,Ht=ye,Kt=ve,Xt=Pe;function Zt(o,t){(0,qt.initCommonSchemas)(o,t),(0,Rt.initAdvancementSchemas)(o,t),(0,Tt.initAssetsSchemas)(o,t),(0,It.initConditionSchemas)(o,t),(0,Dt.initDimensionTypeSchemas)(o,t),(0,Ft.initDimensionSchemas)(o,t),(0,At.initItemModifierSchemas)(o,t),(0,Et.initLootTableSchemas)(o,t),(0,Wt.initPackMcmetaSchemas)(o,t),(0,Ut.initPredicatesSchemas)(o,t),(0,Vt.initRecipeSchemas)(o,t),(0,Gt.initTagsSchemas)(o,t),(0,Ht.initTextComponentSchemas)(o,t),(0,Kt.initWorldgenSchemas)(o,t),(0,Xt.initWorldSettingsSchemas)(o,t)}ae.initSchemas=Zt;var Yt=re&&re.__createBinding||(Object.create?function(o,t,e,r){r===void 0&&(r=e);var d=Object.getOwnPropertyDescriptor(t,e);(!d||("get"in d?!t.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return t[e]}}),Object.defineProperty(o,r,d)}:function(o,t,e,r){r===void 0&&(r=e),o[r]=t[e]}),Jt=re&&re.__setModuleDefault||(Object.create?function(o,t){Object.defineProperty(o,"default",{enumerable:!0,value:t})}:function(o,t){o.default=t}),Qt=re&&re.__importStar||function(o){if(o&&o.__esModule)return o;var t={};if(o!=null)for(var e in o)e!=="default"&&Object.prototype.hasOwnProperty.call(o,e)&&Yt(t,o,e);return Jt(t,o),t};Object.defineProperty(G,"__esModule",{value:!0});var Ie=G.getSchemas=Ae=G.getCollections=De=G.lootContext=void 0;const Fe=S,er=ne,tr=ae;var De=G.lootContext=Qt(q);function rr(){const o=new Fe.CollectionRegistry;return(0,er.initCollections)(o),o}var Ae=G.getCollections=rr;function or(o){const t=new Fe.SchemaRegistry;return(0,tr.initSchemas)(t,o),t}Ie=G.getSchemas=or;var cr=He({__proto__:null,get getSchemas(){return Ie},get getCollections(){return Ae},get lootContext(){return De},default:G},[G]);export{cr as i}; +//# sourceMappingURL=index.60a78d1a.js.map diff --git a/assets/index.60a78d1a.js.map b/assets/index.60a78d1a.js.map new file mode 100644 index 00000000..c1d82ff3 --- /dev/null +++ b/assets/index.60a78d1a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.60a78d1a.js","sources":["../../node_modules/@mcschema/java-1.18/lib/Collections.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18/lib/LootContext.js","../../node_modules/@mcschema/java-1.18/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18/lib/index.js"],"sourcesContent":["\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.Opt)(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, core_1.Mod)(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate'))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:ride_entity_in_lava': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, core_1.ObjectNode)({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, core_1.NumberNode)()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, core_1.MapNode)(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, core_1.Opt)(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, core_1.MapNode)(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n OR: (0, core_1.ListNode)(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nconst DefaultStructureSettings = {\r\n 'minecraft:igloo': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357618\r\n },\r\n 'minecraft:mansion': {\r\n spacing: 80,\r\n separation: 20,\r\n salt: 10387319\r\n },\r\n 'minecraft:jungle_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357619\r\n },\r\n 'minecraft:nether_fossil': {\r\n spacing: 2,\r\n separation: 1,\r\n salt: 14357921\r\n },\r\n 'minecraft:stronghold': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:shipwreck': {\r\n spacing: 24,\r\n separation: 4,\r\n salt: 165745295\r\n },\r\n 'minecraft:mineshaft': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:desert_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357617\r\n },\r\n 'minecraft:ruined_portal': {\r\n spacing: 40,\r\n separation: 15,\r\n salt: 34222645\r\n },\r\n 'minecraft:fortress': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:pillager_outpost': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 165745296\r\n },\r\n 'minecraft:village': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 10387312\r\n },\r\n 'minecraft:endcity': {\r\n spacing: 20,\r\n separation: 11,\r\n salt: 10387313\r\n },\r\n 'minecraft:buried_treasure': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:ocean_ruin': {\r\n spacing: 20,\r\n separation: 8,\r\n salt: 14357621\r\n },\r\n 'minecraft:bastion_remnant': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:swamp_hut': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357620\r\n },\r\n 'minecraft:monument': {\r\n spacing: 32,\r\n separation: 5,\r\n salt: 10387313\r\n }\r\n};\r\nexports.DefaultNoiseSettings = {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, core_1.NumberNode)({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = (0, core_1.Mod)(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return (0, core_1.ChoiceNode)(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: (0, core_1.Mod)(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: (0, core_1.Mod)(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, exports.FloatProvider)());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, core_1.ChoiceNode)(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: (0, core_1.ObjectNode)({\r\n [t]: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('height_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, core_1.NumberNode)())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: (0, core_1.ListNode)(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: (0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'map_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_potion': {\r\n id: StringNode({ validator: 'resource', params: { pool: 'potion' } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:end': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n amplified: true,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n },\r\n },\r\n 'minecraft:caves': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, Common_1.ConditionCases)()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, core_1.ListNode)(Reference('generator_biome')), {\r\n enabled: path => path.push('preset').get() === undefined,\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n })\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, core_1.ListNode)(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n const ClimateParameter = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)({ min: -2, max: 2 }),\r\n change: (v) => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : 0; }\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: -2, max: 2 }), { minLength: 2, maxLength: 2 }),\r\n change: (v) => [v !== null && v !== void 0 ? v : 0, v !== null && v !== void 0 ? v : 0]\r\n }\r\n ]);\r\n schemas.register('generator_biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, core_1.ObjectNode)({\r\n temperature: ClimateParameter,\r\n humidity: ClimateParameter,\r\n continentalness: ClimateParameter,\r\n erosion: ClimateParameter,\r\n weirdness: ClimateParameter,\r\n depth: ClimateParameter,\r\n offset: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n effects: (0, core_1.Opt)(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, Common_1.FunctionCases)(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return (0, core_1.SwitchNode)(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: (0, core_1.ListNode)(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: (0, core_1.ListNode)(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: (0, core_1.ListNode)(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, Common_1.FunctionCases)(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, Common_1.ConditionCases)(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n id: (0, core_1.Opt)(StringNode({ validator: 'uuid' })),\r\n slot: (0, core_1.StringOrList)(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 8;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: (0, core_1.Reference)(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, core_1.ObjectNode)({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, core_1.MapNode)(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, core_1.BooleanNode)()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: (0, core_1.BooleanNode)(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: (0, core_1.ObjectNode)({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, core_1.Opt)(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: (0, core_1.ObjectNode)({\r\n score: (0, core_1.ObjectNode)({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: (0, core_1.Opt)(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, core_1.Opt)(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: (0, core_1.ObjectNode)({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, core_1.Opt)(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', (0, core_1.Mod)((0, core_1.ListNode)(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, core_1.MapNode)(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, core_1.NumberNode)({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, core_1.NumberNode)()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, core_1.Opt)(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, core_1.Opt)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, core_1.ListNode)(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:rule': {\r\n rules: (0, core_1.ListNode)(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, core_1.Opt)(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, core_1.ObjectNode)({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', (0, core_1.ObjectNode)({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, core_1.ListNode)(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, Common_1.IntProvider)(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, Common_1.IntProvider)({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, Common_1.IntProvider)({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, Common_1.IntProvider)({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: (0, core_1.ObjectNode)({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: (0, core_1.ListNode)(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }),\r\n layers: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, core_1.NumberNode)({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider')\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: (0, core_1.ListNode)(PlacedFeature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, core_1.ListNode)(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n const NoiseProvider = {\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:dual_noise_provider': {\r\n ...NoiseProvider,\r\n variety: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, Common_1.IntProvider)(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_predicate_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:all_of': {\r\n predicates: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'fluid' } }))\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n noise_caves_enabled: (0, core_1.BooleanNode)(),\r\n noodle_caves_enabled: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n island_noise_override: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n amplified: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n large_biomes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_structures', (0, core_1.ObjectNode)({\r\n stronghold: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: (0, core_1.Mod)(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: (0, core_1.ListNode)(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: (0, core_1.NumberNode)(),\r\n max_threshold: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n add_surface_secondary_depth: (0, core_1.BooleanNode)(),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, core_1.ListNode)(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: (0, core_1.ListNode)(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, TemplatePool_1.initTemplatePoolSchemas)(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, WorldSettings_1.initWorldSettingsSchemas)(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = exports.lootContext = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n (0, Collections_1.initCollections)(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","Common_1","require$$2","ProcessorList_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","this"],"mappings":"+1BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,2BACR,CAAK,EACD,EAAY,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,QACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,OACR,CAAK,EACD,EAAY,SAAS,eAAgB,CACjC,QACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,MACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,IACA,IACA,GACR,CAAK,EACD,EAAY,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,OACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,MACR,CAAK,EA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"} \ No newline at end of file diff --git a/assets/index.19faebd7.js b/assets/index.6a237dca.js similarity index 99% rename from assets/index.19faebd7.js rename to assets/index.6a237dca.js index fb036252..540953df 100644 --- a/assets/index.19faebd7.js +++ b/assets/index.6a237dca.js @@ -1,4 +1,4 @@ -var Xi=Object.defineProperty,Ji=Object.defineProperties;var zi=Object.getOwnPropertyDescriptors;var Mt=Object.getOwnPropertySymbols;var _i=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable;var Rt=(o,p,x)=>p in o?Xi(o,p,{enumerable:!0,configurable:!0,writable:!0,value:x}):o[p]=x,Lt=(o,p)=>{for(var x in p||(p={}))_i.call(p,x)&&Rt(o,x,p[x]);if(Mt)for(var x of Mt(p))Ki.call(p,x)&&Rt(o,x,p[x]);return o},Ut=(o,p)=>Ji(o,zi(p));import{c as ji}from"./index.2a99a61a.js";function $i(o,p){return p.forEach(function(x){x&&typeof x!="string"&&!Array.isArray(x)&&Object.keys(x).forEach(function(c){if(c!=="default"&&!(c in o)){var C=Object.getOwnPropertyDescriptor(x,c);Object.defineProperty(o,c,C.get?C:{enumerable:!0,get:function(){return x[c]}})}})}),Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var ei={exports:{}};(function(o,p){(function(c,C){o.exports=C()})(ji,function(){return function(x){var c={};function C(d){if(c[d])return c[d].exports;var D=c[d]={exports:{},id:d,loaded:!1};return x[d].call(D.exports,D,D.exports,C),D.loaded=!0,D.exports}return C.m=x,C.c=c,C.p="",C(0)}([function(x,c,C){Object.defineProperty(c,"__esModule",{value:!0});var d=C(1),D=C(3),s=C(8),l=C(15);function A(f,e,i){var n=null,a=function(X,z){i&&i(X,z),n&&n.visit(X,z)},E=typeof i=="function"?a:null,F=!1;if(e){F=typeof e.comment=="boolean"&&e.comment;var T=typeof e.attachComment=="boolean"&&e.attachComment;(F||T)&&(n=new d.CommentHandler,n.attach=T,e.comment=!0,E=a)}var I=!1;e&&typeof e.sourceType=="string"&&(I=e.sourceType==="module");var P;e&&typeof e.jsx=="boolean"&&e.jsx?P=new D.JSXParser(f,e,E):P=new s.Parser(f,e,E);var R=I?P.parseModule():P.parseScript(),L=R;return F&&n&&(L.comments=n.comments),P.config.tokens&&(L.tokens=P.tokens),P.config.tolerant&&(L.errors=P.errorHandler.errors),L}c.parse=A;function S(f,e,i){var n=e||{};return n.sourceType="module",A(f,n,i)}c.parseModule=S;function g(f,e,i){var n=e||{};return n.sourceType="script",A(f,n,i)}c.parseScript=g;function h(f,e,i){var n=new l.Tokenizer(f,e),a;a=[];try{for(;;){var E=n.getNextToken();if(!E)break;i&&(E=i(E)),a.push(E)}}catch(F){n.errorHandler.tolerate(F)}return n.errorHandler.tolerant&&(a.errors=n.errors()),a}c.tokenize=h;var y=C(2);c.Syntax=y.Syntax,c.version="4.0.1"},function(x,c,C){Object.defineProperty(c,"__esModule",{value:!0});var d=C(2),D=function(){function s(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return s.prototype.insertInnerComments=function(l,A){if(l.type===d.Syntax.BlockStatement&&l.body.length===0){for(var S=[],g=this.leading.length-1;g>=0;--g){var h=this.leading[g];A.end.offset>=h.start&&(S.unshift(h.comment),this.leading.splice(g,1),this.trailing.splice(g,1))}S.length&&(l.innerComments=S)}},s.prototype.findTrailingComments=function(l){var A=[];if(this.trailing.length>0){for(var S=this.trailing.length-1;S>=0;--S){var g=this.trailing[S];g.start>=l.end.offset&&A.unshift(g.comment)}return this.trailing.length=0,A}var h=this.stack[this.stack.length-1];if(h&&h.node.trailingComments){var y=h.node.trailingComments[0];y&&y.range[0]>=l.end.offset&&(A=h.node.trailingComments,delete h.node.trailingComments)}return A},s.prototype.findLeadingComments=function(l){for(var A=[],S;this.stack.length>0;){var g=this.stack[this.stack.length-1];if(g&&g.start>=l.start.offset)S=g.node,this.stack.pop();else break}if(S){for(var h=S.leadingComments?S.leadingComments.length:0,y=h-1;y>=0;--y){var f=S.leadingComments[y];f.range[1]<=l.start.offset&&(A.unshift(f),S.leadingComments.splice(y,1))}return S.leadingComments&&S.leadingComments.length===0&&delete S.leadingComments,A}for(var y=this.leading.length-1;y>=0;--y){var g=this.leading[y];g.start<=l.start.offset&&(A.unshift(g.comment),this.leading.splice(y,1))}return A},s.prototype.visitNode=function(l,A){if(!(l.type===d.Syntax.Program&&l.body.length>0)){this.insertInnerComments(l,A);var S=this.findTrailingComments(A),g=this.findLeadingComments(A);g.length>0&&(l.leadingComments=g),S.length>0&&(l.trailingComments=S),this.stack.push({node:l,start:A.start.offset})}},s.prototype.visitComment=function(l,A){var S=l.type[0]==="L"?"Line":"Block",g={type:S,value:l.value};if(l.range&&(g.range=l.range),l.loc&&(g.loc=l.loc),this.comments.push(g),this.attach){var h={comment:{type:S,value:l.value,range:[A.start.offset,A.end.offset]},start:A.start.offset};l.loc&&(h.comment.loc=l.loc),l.type=S,this.leading.push(h),this.trailing.push(h)}},s.prototype.visit=function(l,A){l.type==="LineComment"?this.visitComment(l,A):l.type==="BlockComment"?this.visitComment(l,A):this.attach&&this.visitNode(l,A)},s}();c.CommentHandler=D},function(x,c){Object.defineProperty(c,"__esModule",{value:!0}),c.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(x,c,C){var d=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)n.hasOwnProperty(a)&&(i[a]=n[a])};return function(i,n){e(i,n);function a(){this.constructor=i}i.prototype=n===null?Object.create(n):(a.prototype=n.prototype,new a)}}();Object.defineProperty(c,"__esModule",{value:!0});var D=C(4),s=C(5),l=C(6),A=C(7),S=C(8),g=C(13),h=C(14);g.TokenName[100]="JSXIdentifier",g.TokenName[101]="JSXText";function y(e){var i;switch(e.type){case l.JSXSyntax.JSXIdentifier:var n=e;i=n.name;break;case l.JSXSyntax.JSXNamespacedName:var a=e;i=y(a.namespace)+":"+y(a.name);break;case l.JSXSyntax.JSXMemberExpression:var E=e;i=y(E.object)+"."+y(E.property);break}return i}var f=function(e){d(i,e);function i(n,a,E){return e.call(this,n,a,E)||this}return i.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},i.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},i.prototype.finishJSX=function(){this.nextToken()},i.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},i.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},i.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},i.prototype.scanXHTMLEntity=function(n){for(var a="&",E=!0,F=!1,T=!1,I=!1;!this.scanner.eof()&&E&&!F;){var P=this.scanner.source[this.scanner.index];if(P===n)break;if(F=P===";",a+=P,++this.scanner.index,!F)switch(a.length){case 2:T=P==="#";break;case 3:T&&(I=P==="x",E=I||D.Character.isDecimalDigit(P.charCodeAt(0)),T=T&&!I);break;default:E=E&&!(T&&!D.Character.isDecimalDigit(P.charCodeAt(0))),E=E&&!(I&&!D.Character.isHexDigit(P.charCodeAt(0)));break}}if(E&&F&&a.length>2){var R=a.substr(1,a.length-2);T&&R.length>1?a=String.fromCharCode(parseInt(R.substr(1),10)):I&&R.length>2?a=String.fromCharCode(parseInt("0"+R.substr(1),16)):!T&&!I&&h.XHTMLEntities[R]&&(a=h.XHTMLEntities[R])}return a},i.prototype.lexJSX=function(){var n=this.scanner.source.charCodeAt(this.scanner.index);if(n===60||n===62||n===47||n===58||n===61||n===123||n===125){var a=this.scanner.source[this.scanner.index++];return{type:7,value:a,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(n===34||n===39){for(var E=this.scanner.index,F=this.scanner.source[this.scanner.index++],T="";!this.scanner.eof();){var I=this.scanner.source[this.scanner.index++];if(I===F)break;I==="&"?T+=this.scanXHTMLEntity(F):T+=I}return{type:8,value:T,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:E,end:this.scanner.index}}if(n===46){var P=this.scanner.source.charCodeAt(this.scanner.index+1),R=this.scanner.source.charCodeAt(this.scanner.index+2),a=P===46&&R===46?"...":".",E=this.scanner.index;return this.scanner.index+=a.length,{type:7,value:a,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:E,end:this.scanner.index}}if(n===96)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(D.Character.isIdentifierStart(n)&&n!==92){var E=this.scanner.index;for(++this.scanner.index;!this.scanner.eof();){var I=this.scanner.source.charCodeAt(this.scanner.index);if(D.Character.isIdentifierPart(I)&&I!==92)++this.scanner.index;else if(I===45)++this.scanner.index;else break}var L=this.scanner.source.slice(E,this.scanner.index);return{type:100,value:L,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:E,end:this.scanner.index}}return this.scanner.lex()},i.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var n=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(n)),n},i.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var n=this.scanner.index,a="";!this.scanner.eof();){var E=this.scanner.source[this.scanner.index];if(E==="{"||E==="<")break;++this.scanner.index,a+=E,D.Character.isLineTerminator(E.charCodeAt(0))&&(++this.scanner.lineNumber,E==="\r"&&this.scanner.source[this.scanner.index]===` +var Xi=Object.defineProperty,Ji=Object.defineProperties;var zi=Object.getOwnPropertyDescriptors;var Mt=Object.getOwnPropertySymbols;var _i=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable;var Rt=(o,p,x)=>p in o?Xi(o,p,{enumerable:!0,configurable:!0,writable:!0,value:x}):o[p]=x,Lt=(o,p)=>{for(var x in p||(p={}))_i.call(p,x)&&Rt(o,x,p[x]);if(Mt)for(var x of Mt(p))Ki.call(p,x)&&Rt(o,x,p[x]);return o},Ut=(o,p)=>Ji(o,zi(p));import{c as ji}from"./index.ece3de28.js";function $i(o,p){return p.forEach(function(x){x&&typeof x!="string"&&!Array.isArray(x)&&Object.keys(x).forEach(function(c){if(c!=="default"&&!(c in o)){var C=Object.getOwnPropertyDescriptor(x,c);Object.defineProperty(o,c,C.get?C:{enumerable:!0,get:function(){return x[c]}})}})}),Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var ei={exports:{}};(function(o,p){(function(c,C){o.exports=C()})(ji,function(){return function(x){var c={};function C(d){if(c[d])return c[d].exports;var D=c[d]={exports:{},id:d,loaded:!1};return x[d].call(D.exports,D,D.exports,C),D.loaded=!0,D.exports}return C.m=x,C.c=c,C.p="",C(0)}([function(x,c,C){Object.defineProperty(c,"__esModule",{value:!0});var d=C(1),D=C(3),s=C(8),l=C(15);function A(f,e,i){var n=null,a=function(X,z){i&&i(X,z),n&&n.visit(X,z)},E=typeof i=="function"?a:null,F=!1;if(e){F=typeof e.comment=="boolean"&&e.comment;var T=typeof e.attachComment=="boolean"&&e.attachComment;(F||T)&&(n=new d.CommentHandler,n.attach=T,e.comment=!0,E=a)}var I=!1;e&&typeof e.sourceType=="string"&&(I=e.sourceType==="module");var P;e&&typeof e.jsx=="boolean"&&e.jsx?P=new D.JSXParser(f,e,E):P=new s.Parser(f,e,E);var R=I?P.parseModule():P.parseScript(),L=R;return F&&n&&(L.comments=n.comments),P.config.tokens&&(L.tokens=P.tokens),P.config.tolerant&&(L.errors=P.errorHandler.errors),L}c.parse=A;function S(f,e,i){var n=e||{};return n.sourceType="module",A(f,n,i)}c.parseModule=S;function g(f,e,i){var n=e||{};return n.sourceType="script",A(f,n,i)}c.parseScript=g;function h(f,e,i){var n=new l.Tokenizer(f,e),a;a=[];try{for(;;){var E=n.getNextToken();if(!E)break;i&&(E=i(E)),a.push(E)}}catch(F){n.errorHandler.tolerate(F)}return n.errorHandler.tolerant&&(a.errors=n.errors()),a}c.tokenize=h;var y=C(2);c.Syntax=y.Syntax,c.version="4.0.1"},function(x,c,C){Object.defineProperty(c,"__esModule",{value:!0});var d=C(2),D=function(){function s(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return s.prototype.insertInnerComments=function(l,A){if(l.type===d.Syntax.BlockStatement&&l.body.length===0){for(var S=[],g=this.leading.length-1;g>=0;--g){var h=this.leading[g];A.end.offset>=h.start&&(S.unshift(h.comment),this.leading.splice(g,1),this.trailing.splice(g,1))}S.length&&(l.innerComments=S)}},s.prototype.findTrailingComments=function(l){var A=[];if(this.trailing.length>0){for(var S=this.trailing.length-1;S>=0;--S){var g=this.trailing[S];g.start>=l.end.offset&&A.unshift(g.comment)}return this.trailing.length=0,A}var h=this.stack[this.stack.length-1];if(h&&h.node.trailingComments){var y=h.node.trailingComments[0];y&&y.range[0]>=l.end.offset&&(A=h.node.trailingComments,delete h.node.trailingComments)}return A},s.prototype.findLeadingComments=function(l){for(var A=[],S;this.stack.length>0;){var g=this.stack[this.stack.length-1];if(g&&g.start>=l.start.offset)S=g.node,this.stack.pop();else break}if(S){for(var h=S.leadingComments?S.leadingComments.length:0,y=h-1;y>=0;--y){var f=S.leadingComments[y];f.range[1]<=l.start.offset&&(A.unshift(f),S.leadingComments.splice(y,1))}return S.leadingComments&&S.leadingComments.length===0&&delete S.leadingComments,A}for(var y=this.leading.length-1;y>=0;--y){var g=this.leading[y];g.start<=l.start.offset&&(A.unshift(g.comment),this.leading.splice(y,1))}return A},s.prototype.visitNode=function(l,A){if(!(l.type===d.Syntax.Program&&l.body.length>0)){this.insertInnerComments(l,A);var S=this.findTrailingComments(A),g=this.findLeadingComments(A);g.length>0&&(l.leadingComments=g),S.length>0&&(l.trailingComments=S),this.stack.push({node:l,start:A.start.offset})}},s.prototype.visitComment=function(l,A){var S=l.type[0]==="L"?"Line":"Block",g={type:S,value:l.value};if(l.range&&(g.range=l.range),l.loc&&(g.loc=l.loc),this.comments.push(g),this.attach){var h={comment:{type:S,value:l.value,range:[A.start.offset,A.end.offset]},start:A.start.offset};l.loc&&(h.comment.loc=l.loc),l.type=S,this.leading.push(h),this.trailing.push(h)}},s.prototype.visit=function(l,A){l.type==="LineComment"?this.visitComment(l,A):l.type==="BlockComment"?this.visitComment(l,A):this.attach&&this.visitNode(l,A)},s}();c.CommentHandler=D},function(x,c){Object.defineProperty(c,"__esModule",{value:!0}),c.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(x,c,C){var d=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)n.hasOwnProperty(a)&&(i[a]=n[a])};return function(i,n){e(i,n);function a(){this.constructor=i}i.prototype=n===null?Object.create(n):(a.prototype=n.prototype,new a)}}();Object.defineProperty(c,"__esModule",{value:!0});var D=C(4),s=C(5),l=C(6),A=C(7),S=C(8),g=C(13),h=C(14);g.TokenName[100]="JSXIdentifier",g.TokenName[101]="JSXText";function y(e){var i;switch(e.type){case l.JSXSyntax.JSXIdentifier:var n=e;i=n.name;break;case l.JSXSyntax.JSXNamespacedName:var a=e;i=y(a.namespace)+":"+y(a.name);break;case l.JSXSyntax.JSXMemberExpression:var E=e;i=y(E.object)+"."+y(E.property);break}return i}var f=function(e){d(i,e);function i(n,a,E){return e.call(this,n,a,E)||this}return i.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},i.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},i.prototype.finishJSX=function(){this.nextToken()},i.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},i.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},i.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},i.prototype.scanXHTMLEntity=function(n){for(var a="&",E=!0,F=!1,T=!1,I=!1;!this.scanner.eof()&&E&&!F;){var P=this.scanner.source[this.scanner.index];if(P===n)break;if(F=P===";",a+=P,++this.scanner.index,!F)switch(a.length){case 2:T=P==="#";break;case 3:T&&(I=P==="x",E=I||D.Character.isDecimalDigit(P.charCodeAt(0)),T=T&&!I);break;default:E=E&&!(T&&!D.Character.isDecimalDigit(P.charCodeAt(0))),E=E&&!(I&&!D.Character.isHexDigit(P.charCodeAt(0)));break}}if(E&&F&&a.length>2){var R=a.substr(1,a.length-2);T&&R.length>1?a=String.fromCharCode(parseInt(R.substr(1),10)):I&&R.length>2?a=String.fromCharCode(parseInt("0"+R.substr(1),16)):!T&&!I&&h.XHTMLEntities[R]&&(a=h.XHTMLEntities[R])}return a},i.prototype.lexJSX=function(){var n=this.scanner.source.charCodeAt(this.scanner.index);if(n===60||n===62||n===47||n===58||n===61||n===123||n===125){var a=this.scanner.source[this.scanner.index++];return{type:7,value:a,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(n===34||n===39){for(var E=this.scanner.index,F=this.scanner.source[this.scanner.index++],T="";!this.scanner.eof();){var I=this.scanner.source[this.scanner.index++];if(I===F)break;I==="&"?T+=this.scanXHTMLEntity(F):T+=I}return{type:8,value:T,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:E,end:this.scanner.index}}if(n===46){var P=this.scanner.source.charCodeAt(this.scanner.index+1),R=this.scanner.source.charCodeAt(this.scanner.index+2),a=P===46&&R===46?"...":".",E=this.scanner.index;return this.scanner.index+=a.length,{type:7,value:a,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:E,end:this.scanner.index}}if(n===96)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(D.Character.isIdentifierStart(n)&&n!==92){var E=this.scanner.index;for(++this.scanner.index;!this.scanner.eof();){var I=this.scanner.source.charCodeAt(this.scanner.index);if(D.Character.isIdentifierPart(I)&&I!==92)++this.scanner.index;else if(I===45)++this.scanner.index;else break}var L=this.scanner.source.slice(E,this.scanner.index);return{type:100,value:L,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:E,end:this.scanner.index}}return this.scanner.lex()},i.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var n=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(n)),n},i.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var n=this.scanner.index,a="";!this.scanner.eof();){var E=this.scanner.source[this.scanner.index];if(E==="{"||E==="<")break;++this.scanner.index,a+=E,D.Character.isLineTerminator(E.charCodeAt(0))&&(++this.scanner.lineNumber,E==="\r"&&this.scanner.source[this.scanner.index]===` `&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var F={type:101,value:a,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index};return a.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(F)),F},i.prototype.peekJSXToken=function(){var n=this.scanner.saveState();this.scanner.scanComments();var a=this.lexJSX();return this.scanner.restoreState(n),a},i.prototype.expectJSX=function(n){var a=this.nextJSXToken();(a.type!==7||a.value!==n)&&this.throwUnexpectedToken(a)},i.prototype.matchJSX=function(n){var a=this.peekJSXToken();return a.type===7&&a.value===n},i.prototype.parseJSXIdentifier=function(){var n=this.createJSXNode(),a=this.nextJSXToken();return a.type!==100&&this.throwUnexpectedToken(a),this.finalize(n,new s.JSXIdentifier(a.value))},i.prototype.parseJSXElementName=function(){var n=this.createJSXNode(),a=this.parseJSXIdentifier();if(this.matchJSX(":")){var E=a;this.expectJSX(":");var F=this.parseJSXIdentifier();a=this.finalize(n,new s.JSXNamespacedName(E,F))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var T=a;this.expectJSX(".");var I=this.parseJSXIdentifier();a=this.finalize(n,new s.JSXMemberExpression(T,I))}return a},i.prototype.parseJSXAttributeName=function(){var n=this.createJSXNode(),a,E=this.parseJSXIdentifier();if(this.matchJSX(":")){var F=E;this.expectJSX(":");var T=this.parseJSXIdentifier();a=this.finalize(n,new s.JSXNamespacedName(F,T))}else a=E;return a},i.prototype.parseJSXStringLiteralAttribute=function(){var n=this.createJSXNode(),a=this.nextJSXToken();a.type!==8&&this.throwUnexpectedToken(a);var E=this.getTokenRaw(a);return this.finalize(n,new A.Literal(a.value,E))},i.prototype.parseJSXExpressionAttribute=function(){var n=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var a=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(n,new s.JSXExpressionContainer(a))},i.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},i.prototype.parseJSXNameValueAttribute=function(){var n=this.createJSXNode(),a=this.parseJSXAttributeName(),E=null;return this.matchJSX("=")&&(this.expectJSX("="),E=this.parseJSXAttributeValue()),this.finalize(n,new s.JSXAttribute(a,E))},i.prototype.parseJSXSpreadAttribute=function(){var n=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var a=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(n,new s.JSXSpreadAttribute(a))},i.prototype.parseJSXAttributes=function(){for(var n=[];!this.matchJSX("/")&&!this.matchJSX(">");){var a=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();n.push(a)}return n},i.prototype.parseJSXOpeningElement=function(){var n=this.createJSXNode();this.expectJSX("<");var a=this.parseJSXElementName(),E=this.parseJSXAttributes(),F=this.matchJSX("/");return F&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(n,new s.JSXOpeningElement(a,F,E))},i.prototype.parseJSXBoundaryElement=function(){var n=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var a=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(n,new s.JSXClosingElement(a))}var E=this.parseJSXElementName(),F=this.parseJSXAttributes(),T=this.matchJSX("/");return T&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(n,new s.JSXOpeningElement(E,T,F))},i.prototype.parseJSXEmptyExpression=function(){var n=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(n,new s.JSXEmptyExpression)},i.prototype.parseJSXExpressionContainer=function(){var n=this.createJSXNode();this.expectJSX("{");var a;return this.matchJSX("}")?(a=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),a=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(n,new s.JSXExpressionContainer(a))},i.prototype.parseJSXChildren=function(){for(var n=[];!this.scanner.eof();){var a=this.createJSXChildNode(),E=this.nextJSXText();if(E.start0){var I=this.finalize(n.node,new s.JSXElement(n.opening,n.children,n.closing));n=a[a.length-1],n.children.push(I),a.pop()}else break}}return n},i.prototype.parseJSXElement=function(){var n=this.createJSXNode(),a=this.parseJSXOpeningElement(),E=[],F=null;if(!a.selfClosing){var T=this.parseComplexJSXElement({node:n,opening:a,closing:F,children:E});E=T.children,F=T.closing}return this.finalize(n,new s.JSXElement(a,E,F))},i.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var n=this.parseJSXElement();return this.finishJSX(),n},i.prototype.isStartOfExpression=function(){return e.prototype.isStartOfExpression.call(this)||this.match("<")},i}(S.Parser);c.JSXParser=f},function(x,c){Object.defineProperty(c,"__esModule",{value:!0});var C={NonAsciiIdentifierStart:/[\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-\u08B4\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\u0AF9\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-\u0C5A\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\u0D5F-\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-\u13F5\u13F8-\u13FD\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\u19B0-\u19C9\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\u2118-\u211D\u2124\u2126\u2128\u212A-\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\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-\uAB65\uAB70-\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]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\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-\u08B4\u08E3-\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\u0AF9\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-\u0C5A\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\u0D5F-\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\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\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-\u19DA\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\u2118-\u211D\u2124\u2126\u2128\u212A-\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\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\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-\uAB65\uAB70-\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-\uFE2F\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]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};c.Character={fromCodePoint:function(d){return d<65536?String.fromCharCode(d):String.fromCharCode(55296+(d-65536>>10))+String.fromCharCode(56320+(d-65536&1023))},isWhiteSpace:function(d){return d===32||d===9||d===11||d===12||d===160||d>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(d)>=0},isLineTerminator:function(d){return d===10||d===13||d===8232||d===8233},isIdentifierStart:function(d){return d===36||d===95||d>=65&&d<=90||d>=97&&d<=122||d===92||d>=128&&C.NonAsciiIdentifierStart.test(c.Character.fromCodePoint(d))},isIdentifierPart:function(d){return d===36||d===95||d>=65&&d<=90||d>=97&&d<=122||d>=48&&d<=57||d===92||d>=128&&C.NonAsciiIdentifierPart.test(c.Character.fromCodePoint(d))},isDecimalDigit:function(d){return d>=48&&d<=57},isHexDigit:function(d){return d>=48&&d<=57||d>=65&&d<=70||d>=97&&d<=102},isOctalDigit:function(d){return d>=48&&d<=55}}},function(x,c,C){Object.defineProperty(c,"__esModule",{value:!0});var d=C(6),D=function(){function n(a){this.type=d.JSXSyntax.JSXClosingElement,this.name=a}return n}();c.JSXClosingElement=D;var s=function(){function n(a,E,F){this.type=d.JSXSyntax.JSXElement,this.openingElement=a,this.children=E,this.closingElement=F}return n}();c.JSXElement=s;var l=function(){function n(){this.type=d.JSXSyntax.JSXEmptyExpression}return n}();c.JSXEmptyExpression=l;var A=function(){function n(a){this.type=d.JSXSyntax.JSXExpressionContainer,this.expression=a}return n}();c.JSXExpressionContainer=A;var S=function(){function n(a){this.type=d.JSXSyntax.JSXIdentifier,this.name=a}return n}();c.JSXIdentifier=S;var g=function(){function n(a,E){this.type=d.JSXSyntax.JSXMemberExpression,this.object=a,this.property=E}return n}();c.JSXMemberExpression=g;var h=function(){function n(a,E){this.type=d.JSXSyntax.JSXAttribute,this.name=a,this.value=E}return n}();c.JSXAttribute=h;var y=function(){function n(a,E){this.type=d.JSXSyntax.JSXNamespacedName,this.namespace=a,this.name=E}return n}();c.JSXNamespacedName=y;var f=function(){function n(a,E,F){this.type=d.JSXSyntax.JSXOpeningElement,this.name=a,this.selfClosing=E,this.attributes=F}return n}();c.JSXOpeningElement=f;var e=function(){function n(a){this.type=d.JSXSyntax.JSXSpreadAttribute,this.argument=a}return n}();c.JSXSpreadAttribute=e;var i=function(){function n(a,E){this.type=d.JSXSyntax.JSXText,this.value=a,this.raw=E}return n}();c.JSXText=i},function(x,c){Object.defineProperty(c,"__esModule",{value:!0}),c.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(x,c,C){Object.defineProperty(c,"__esModule",{value:!0});var d=C(2),D=function(){function B(k){this.type=d.Syntax.ArrayExpression,this.elements=k}return B}();c.ArrayExpression=D;var s=function(){function B(k){this.type=d.Syntax.ArrayPattern,this.elements=k}return B}();c.ArrayPattern=s;var l=function(){function B(k,N,U){this.type=d.Syntax.ArrowFunctionExpression,this.id=null,this.params=k,this.body=N,this.generator=!1,this.expression=U,this.async=!1}return B}();c.ArrowFunctionExpression=l;var A=function(){function B(k,N,U){this.type=d.Syntax.AssignmentExpression,this.operator=k,this.left=N,this.right=U}return B}();c.AssignmentExpression=A;var S=function(){function B(k,N){this.type=d.Syntax.AssignmentPattern,this.left=k,this.right=N}return B}();c.AssignmentPattern=S;var g=function(){function B(k,N,U){this.type=d.Syntax.ArrowFunctionExpression,this.id=null,this.params=k,this.body=N,this.generator=!1,this.expression=U,this.async=!0}return B}();c.AsyncArrowFunctionExpression=g;var h=function(){function B(k,N,U){this.type=d.Syntax.FunctionDeclaration,this.id=k,this.params=N,this.body=U,this.generator=!1,this.expression=!1,this.async=!0}return B}();c.AsyncFunctionDeclaration=h;var y=function(){function B(k,N,U){this.type=d.Syntax.FunctionExpression,this.id=k,this.params=N,this.body=U,this.generator=!1,this.expression=!1,this.async=!0}return B}();c.AsyncFunctionExpression=y;var f=function(){function B(k){this.type=d.Syntax.AwaitExpression,this.argument=k}return B}();c.AwaitExpression=f;var e=function(){function B(k,N,U){var q=k==="||"||k==="&&";this.type=q?d.Syntax.LogicalExpression:d.Syntax.BinaryExpression,this.operator=k,this.left=N,this.right=U}return B}();c.BinaryExpression=e;var i=function(){function B(k){this.type=d.Syntax.BlockStatement,this.body=k}return B}();c.BlockStatement=i;var n=function(){function B(k){this.type=d.Syntax.BreakStatement,this.label=k}return B}();c.BreakStatement=n;var a=function(){function B(k,N){this.type=d.Syntax.CallExpression,this.callee=k,this.arguments=N}return B}();c.CallExpression=a;var E=function(){function B(k,N){this.type=d.Syntax.CatchClause,this.param=k,this.body=N}return B}();c.CatchClause=E;var F=function(){function B(k){this.type=d.Syntax.ClassBody,this.body=k}return B}();c.ClassBody=F;var T=function(){function B(k,N,U){this.type=d.Syntax.ClassDeclaration,this.id=k,this.superClass=N,this.body=U}return B}();c.ClassDeclaration=T;var I=function(){function B(k,N,U){this.type=d.Syntax.ClassExpression,this.id=k,this.superClass=N,this.body=U}return B}();c.ClassExpression=I;var P=function(){function B(k,N){this.type=d.Syntax.MemberExpression,this.computed=!0,this.object=k,this.property=N}return B}();c.ComputedMemberExpression=P;var R=function(){function B(k,N,U){this.type=d.Syntax.ConditionalExpression,this.test=k,this.consequent=N,this.alternate=U}return B}();c.ConditionalExpression=R;var L=function(){function B(k){this.type=d.Syntax.ContinueStatement,this.label=k}return B}();c.ContinueStatement=L;var X=function(){function B(){this.type=d.Syntax.DebuggerStatement}return B}();c.DebuggerStatement=X;var z=function(){function B(k,N){this.type=d.Syntax.ExpressionStatement,this.expression=k,this.directive=N}return B}();c.Directive=z;var G=function(){function B(k,N){this.type=d.Syntax.DoWhileStatement,this.body=k,this.test=N}return B}();c.DoWhileStatement=G;var V=function(){function B(){this.type=d.Syntax.EmptyStatement}return B}();c.EmptyStatement=V;var oe=function(){function B(k){this.type=d.Syntax.ExportAllDeclaration,this.source=k}return B}();c.ExportAllDeclaration=oe;var De=function(){function B(k){this.type=d.Syntax.ExportDefaultDeclaration,this.declaration=k}return B}();c.ExportDefaultDeclaration=De;var We=function(){function B(k,N,U){this.type=d.Syntax.ExportNamedDeclaration,this.declaration=k,this.specifiers=N,this.source=U}return B}();c.ExportNamedDeclaration=We;var Ve=function(){function B(k,N){this.type=d.Syntax.ExportSpecifier,this.exported=N,this.local=k}return B}();c.ExportSpecifier=Ve;var qe=function(){function B(k){this.type=d.Syntax.ExpressionStatement,this.expression=k}return B}();c.ExpressionStatement=qe;var Ze=function(){function B(k,N,U){this.type=d.Syntax.ForInStatement,this.left=k,this.right=N,this.body=U,this.each=!1}return B}();c.ForInStatement=Ze;var Qe=function(){function B(k,N,U){this.type=d.Syntax.ForOfStatement,this.left=k,this.right=N,this.body=U}return B}();c.ForOfStatement=Qe;var $=function(){function B(k,N,U,q){this.type=d.Syntax.ForStatement,this.init=k,this.test=N,this.update=U,this.body=q}return B}();c.ForStatement=$;var H=function(){function B(k,N,U,q){this.type=d.Syntax.FunctionDeclaration,this.id=k,this.params=N,this.body=U,this.generator=q,this.expression=!1,this.async=!1}return B}();c.FunctionDeclaration=H;var Ie=function(){function B(k,N,U,q){this.type=d.Syntax.FunctionExpression,this.id=k,this.params=N,this.body=U,this.generator=q,this.expression=!1,this.async=!1}return B}();c.FunctionExpression=Ie;var Ne=function(){function B(k){this.type=d.Syntax.Identifier,this.name=k}return B}();c.Identifier=Ne;var Pe=function(){function B(k,N,U){this.type=d.Syntax.IfStatement,this.test=k,this.consequent=N,this.alternate=U}return B}();c.IfStatement=Pe;var Me=function(){function B(k,N){this.type=d.Syntax.ImportDeclaration,this.specifiers=k,this.source=N}return B}();c.ImportDeclaration=Me;var Re=function(){function B(k){this.type=d.Syntax.ImportDefaultSpecifier,this.local=k}return B}();c.ImportDefaultSpecifier=Re;var he=function(){function B(k){this.type=d.Syntax.ImportNamespaceSpecifier,this.local=k}return B}();c.ImportNamespaceSpecifier=he;var ve=function(){function B(k,N){this.type=d.Syntax.ImportSpecifier,this.local=k,this.imported=N}return B}();c.ImportSpecifier=ve;var Le=function(){function B(k,N){this.type=d.Syntax.LabeledStatement,this.label=k,this.body=N}return B}();c.LabeledStatement=Le;var et=function(){function B(k,N){this.type=d.Syntax.Literal,this.value=k,this.raw=N}return B}();c.Literal=et;var Ue=function(){function B(k,N){this.type=d.Syntax.MetaProperty,this.meta=k,this.property=N}return B}();c.MetaProperty=Ue;var ce=function(){function B(k,N,U,q,ot){this.type=d.Syntax.MethodDefinition,this.key=k,this.computed=N,this.value=U,this.kind=q,this.static=ot}return B}();c.MethodDefinition=ce;var de=function(){function B(k){this.type=d.Syntax.Program,this.body=k,this.sourceType="module"}return B}();c.Module=de;var tt=function(){function B(k,N){this.type=d.Syntax.NewExpression,this.callee=k,this.arguments=N}return B}();c.NewExpression=tt;var it=function(){function B(k){this.type=d.Syntax.ObjectExpression,this.properties=k}return B}();c.ObjectExpression=it;var Fe=function(){function B(k){this.type=d.Syntax.ObjectPattern,this.properties=k}return B}();c.ObjectPattern=Fe;var rt=function(){function B(k,N,U,q,ot,Oi){this.type=d.Syntax.Property,this.key=N,this.computed=U,this.value=q,this.kind=k,this.method=ot,this.shorthand=Oi}return B}();c.Property=rt;var nt=function(){function B(k,N,U,q){this.type=d.Syntax.Literal,this.value=k,this.raw=N,this.regex={pattern:U,flags:q}}return B}();c.RegexLiteral=nt;var Oe=function(){function B(k){this.type=d.Syntax.RestElement,this.argument=k}return B}();c.RestElement=Oe;var Ee=function(){function B(k){this.type=d.Syntax.ReturnStatement,this.argument=k}return B}();c.ReturnStatement=Ee;var ee=function(){function B(k){this.type=d.Syntax.Program,this.body=k,this.sourceType="script"}return B}();c.Script=ee;var Se=function(){function B(k){this.type=d.Syntax.SequenceExpression,this.expressions=k}return B}();c.SequenceExpression=Se;var st=function(){function B(k){this.type=d.Syntax.SpreadElement,this.argument=k}return B}();c.SpreadElement=st;var re=function(){function B(k,N){this.type=d.Syntax.MemberExpression,this.computed=!1,this.object=k,this.property=N}return B}();c.StaticMemberExpression=re;var at=function(){function B(){this.type=d.Syntax.Super}return B}();c.Super=at;var u=function(){function B(k,N){this.type=d.Syntax.SwitchCase,this.test=k,this.consequent=N}return B}();c.SwitchCase=u;var t=function(){function B(k,N){this.type=d.Syntax.SwitchStatement,this.discriminant=k,this.cases=N}return B}();c.SwitchStatement=t;var r=function(){function B(k,N){this.type=d.Syntax.TaggedTemplateExpression,this.tag=k,this.quasi=N}return B}();c.TaggedTemplateExpression=r;var m=function(){function B(k,N){this.type=d.Syntax.TemplateElement,this.value=k,this.tail=N}return B}();c.TemplateElement=m;var v=function(){function B(k,N){this.type=d.Syntax.TemplateLiteral,this.quasis=k,this.expressions=N}return B}();c.TemplateLiteral=v;var w=function(){function B(){this.type=d.Syntax.ThisExpression}return B}();c.ThisExpression=w;var b=function(){function B(k){this.type=d.Syntax.ThrowStatement,this.argument=k}return B}();c.ThrowStatement=b;var O=function(){function B(k,N,U){this.type=d.Syntax.TryStatement,this.block=k,this.handler=N,this.finalizer=U}return B}();c.TryStatement=O;var K=function(){function B(k,N){this.type=d.Syntax.UnaryExpression,this.operator=k,this.argument=N,this.prefix=!0}return B}();c.UnaryExpression=K;var _=function(){function B(k,N,U){this.type=d.Syntax.UpdateExpression,this.operator=k,this.argument=N,this.prefix=U}return B}();c.UpdateExpression=_;var j=function(){function B(k,N){this.type=d.Syntax.VariableDeclaration,this.declarations=k,this.kind=N}return B}();c.VariableDeclaration=j;var J=function(){function B(k,N){this.type=d.Syntax.VariableDeclarator,this.id=k,this.init=N}return B}();c.VariableDeclarator=J;var Ri=function(){function B(k,N){this.type=d.Syntax.WhileStatement,this.test=k,this.body=N}return B}();c.WhileStatement=Ri;var Li=function(){function B(k,N){this.type=d.Syntax.WithStatement,this.object=k,this.body=N}return B}();c.WithStatement=Li;var Ui=function(){function B(k,N){this.type=d.Syntax.YieldExpression,this.argument=k,this.delegate=N}return B}();c.YieldExpression=Ui},function(x,c,C){Object.defineProperty(c,"__esModule",{value:!0});var d=C(9),D=C(10),s=C(11),l=C(7),A=C(12),S=C(2),g=C(13),h="ArrowParameterPlaceHolder",y=function(){function f(e,i,n){i===void 0&&(i={}),this.config={range:typeof i.range=="boolean"&&i.range,loc:typeof i.loc=="boolean"&&i.loc,source:null,tokens:typeof i.tokens=="boolean"&&i.tokens,comment:typeof i.comment=="boolean"&&i.comment,tolerant:typeof i.tolerant=="boolean"&&i.tolerant},this.config.loc&&i.source&&i.source!==null&&(this.config.source=String(i.source)),this.delegate=n,this.errorHandler=new D.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new A.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return f.prototype.throwError=function(e){for(var i=[],n=1;n0&&this.delegate)for(var i=0;i>="||e===">>>="||e==="&="||e==="^="||e==="|="},f.prototype.isolateCoverGrammar=function(e){var i=this.context.isBindingElement,n=this.context.isAssignmentTarget,a=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var E=e.call(this);return this.context.firstCoverInitializedNameError!==null&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=i,this.context.isAssignmentTarget=n,this.context.firstCoverInitializedNameError=a,E},f.prototype.inheritCoverGrammar=function(e){var i=this.context.isBindingElement,n=this.context.isAssignmentTarget,a=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var E=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&i,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&n,this.context.firstCoverInitializedNameError=a||this.context.firstCoverInitializedNameError,E},f.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(this.lookahead.type!==2&&!this.match("}")&&this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},f.prototype.parsePrimaryExpression=function(){var e=this.createNode(),i,n,a;switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&this.lookahead.value==="await"&&this.tolerateUnexpectedToken(this.lookahead),i=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(e,new l.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,s.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),a=this.getTokenRaw(n),i=this.finalize(e,new l.Literal(n.value,a));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),a=this.getTokenRaw(n),i=this.finalize(e,new l.Literal(n.value==="true",a));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),a=this.getTokenRaw(n),i=this.finalize(e,new l.Literal(null,a));break;case 10:i=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,i=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":i=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":i=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,n=this.nextRegexToken(),a=this.getTokenRaw(n),i=this.finalize(e,new l.RegexLiteral(n.regex,a,n.pattern,n.flags));break;default:i=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?i=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?i=this.finalize(e,new l.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?i=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),i=this.finalize(e,new l.ThisExpression)):this.matchKeyword("class")?i=this.parseClassExpression():i=this.throwUnexpectedToken(this.nextToken()));break;default:i=this.throwUnexpectedToken(this.nextToken())}return i},f.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var i=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new l.SpreadElement(i))},f.prototype.parseArrayInitializer=function(){var e=this.createNode(),i=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),i.push(null);else if(this.match("...")){var n=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),i.push(n)}else i.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new l.ArrayExpression(i))},f.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var i=this.context.strict,n=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var a=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=i,this.context.allowStrictDirective=n,a},f.prototype.parsePropertyMethodFunction=function(){var e=!1,i=this.createNode(),n=this.context.allowYield;this.context.allowYield=!0;var a=this.parseFormalParameters(),E=this.parsePropertyMethod(a);return this.context.allowYield=n,this.finalize(i,new l.FunctionExpression(null,a.params,E,e))},f.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode(),i=this.context.allowYield,n=this.context.await;this.context.allowYield=!1,this.context.await=!0;var a=this.parseFormalParameters(),E=this.parsePropertyMethod(a);return this.context.allowYield=i,this.context.await=n,this.finalize(e,new l.AsyncFunctionExpression(null,a.params,E))},f.prototype.parseObjectPropertyKey=function(){var e=this.createNode(),i=this.nextToken(),n;switch(i.type){case 8:case 6:this.context.strict&&i.octal&&this.tolerateUnexpectedToken(i,s.Messages.StrictOctalLiteral);var a=this.getTokenRaw(i);n=this.finalize(e,new l.Literal(i.value,a));break;case 3:case 1:case 5:case 4:n=this.finalize(e,new l.Identifier(i.value));break;case 7:i.value==="["?(n=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):n=this.throwUnexpectedToken(i);break;default:n=this.throwUnexpectedToken(i)}return n},f.prototype.isPropertyKey=function(e,i){return e.type===S.Syntax.Identifier&&e.name===i||e.type===S.Syntax.Literal&&e.value===i},f.prototype.parseObjectProperty=function(e){var i=this.createNode(),n=this.lookahead,a,E=null,F=null,T=!1,I=!1,P=!1,R=!1;if(n.type===3){var L=n.value;this.nextToken(),T=this.match("["),R=!this.hasLineTerminator&&L==="async"&&!this.match(":")&&!this.match("(")&&!this.match("*")&&!this.match(","),E=R?this.parseObjectPropertyKey():this.finalize(i,new l.Identifier(L))}else this.match("*")?this.nextToken():(T=this.match("["),E=this.parseObjectPropertyKey());var X=this.qualifiedPropertyName(this.lookahead);if(n.type===3&&!R&&n.value==="get"&&X)a="get",T=this.match("["),E=this.parseObjectPropertyKey(),this.context.allowYield=!1,F=this.parseGetterMethod();else if(n.type===3&&!R&&n.value==="set"&&X)a="set",T=this.match("["),E=this.parseObjectPropertyKey(),F=this.parseSetterMethod();else if(n.type===7&&n.value==="*"&&X)a="init",T=this.match("["),E=this.parseObjectPropertyKey(),F=this.parseGeneratorMethod(),I=!0;else if(E||this.throwUnexpectedToken(this.lookahead),a="init",this.match(":")&&!R)!T&&this.isPropertyKey(E,"__proto__")&&(e.value&&this.tolerateError(s.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),F=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))F=R?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),I=!0;else if(n.type===3){var L=this.finalize(i,new l.Identifier(n.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),P=!0;var z=this.isolateCoverGrammar(this.parseAssignmentExpression);F=this.finalize(i,new l.AssignmentPattern(L,z))}else P=!0,F=L}else this.throwUnexpectedToken(this.nextToken());return this.finalize(i,new l.Property(a,E,T,F,I,P))},f.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var i=[],n={value:!1};!this.match("}");)i.push(this.parseObjectProperty(n)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new l.ObjectExpression(i))},f.prototype.parseTemplateHead=function(){d.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),i=this.nextToken(),n=i.value,a=i.cooked;return this.finalize(e,new l.TemplateElement({raw:n,cooked:a},i.tail))},f.prototype.parseTemplateElement=function(){this.lookahead.type!==10&&this.throwUnexpectedToken();var e=this.createNode(),i=this.nextToken(),n=i.value,a=i.cooked;return this.finalize(e,new l.TemplateElement({raw:n,cooked:a},i.tail))},f.prototype.parseTemplateLiteral=function(){var e=this.createNode(),i=[],n=[],a=this.parseTemplateHead();for(n.push(a);!a.tail;)i.push(this.parseExpression()),a=this.parseTemplateElement(),n.push(a);return this.finalize(e,new l.TemplateLiteral(n,i))},f.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case S.Syntax.Identifier:case S.Syntax.MemberExpression:case S.Syntax.RestElement:case S.Syntax.AssignmentPattern:break;case S.Syntax.SpreadElement:e.type=S.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case S.Syntax.ArrayExpression:e.type=S.Syntax.ArrayPattern;for(var i=0;i")||this.expect("=>"),e={type:h,params:[],async:!1};else{var i=this.lookahead,n=[];if(this.match("..."))e=this.parseRestElement(n),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:h,params:[e],async:!1};else{var a=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var E=[];for(this.context.isAssignmentTarget=!1,E.push(e);this.lookahead.type!==2&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var F=0;F")||this.expect("=>"),this.context.isBindingElement=!1;for(var F=0;F")&&(e.type===S.Syntax.Identifier&&e.name==="yield"&&(a=!0,e={type:h,params:[e],async:!1}),!a)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===S.Syntax.SequenceExpression)for(var F=0;F")){for(var I=0;I0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var E=[e,this.lookahead],F=i,T=this.isolateCoverGrammar(this.parseExponentiationExpression),I=[F,n.value,T],P=[a];a=this.binaryPrecedence(this.lookahead),!(a<=0);){for(;I.length>2&&a<=P[P.length-1];){T=I.pop();var R=I.pop();P.pop(),F=I.pop(),E.pop();var L=this.startNode(E[E.length-1]);I.push(this.finalize(L,new l.BinaryExpression(R,F,T)))}I.push(this.nextToken().value),P.push(a),E.push(this.lookahead),I.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var X=I.length-1;i=I[X];for(var z=E.pop();X>1;){var G=E.pop(),V=z&&z.lineStart,L=this.startNode(G,V),R=I[X-1];i=this.finalize(L,new l.BinaryExpression(R,I[X-2],i)),X-=2,z=G}}return i},f.prototype.parseConditionalExpression=function(){var e=this.lookahead,i=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var n=this.context.allowIn;this.context.allowIn=!0;var a=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=n,this.expect(":");var E=this.isolateCoverGrammar(this.parseAssignmentExpression);i=this.finalize(this.startNode(e),new l.ConditionalExpression(i,a,E)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return i},f.prototype.checkPatternParam=function(e,i){switch(i.type){case S.Syntax.Identifier:this.validateParam(e,i,i.name);break;case S.Syntax.RestElement:this.checkPatternParam(e,i.argument);break;case S.Syntax.AssignmentPattern:this.checkPatternParam(e,i.left);break;case S.Syntax.ArrayPattern:for(var n=0;n")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var E=e.async,F=this.reinterpretAsCoverFormalsList(e);if(F){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var T=this.context.strict,I=this.context.allowStrictDirective;this.context.allowStrictDirective=F.simple;var P=this.context.allowYield,R=this.context.await;this.context.allowYield=!0,this.context.await=E;var L=this.startNode(i);this.expect("=>");var X=void 0;if(this.match("{")){var z=this.context.allowIn;this.context.allowIn=!0,X=this.parseFunctionSourceElements(),this.context.allowIn=z}else X=this.isolateCoverGrammar(this.parseAssignmentExpression);var G=X.type!==S.Syntax.BlockStatement;this.context.strict&&F.firstRestricted&&this.throwUnexpectedToken(F.firstRestricted,F.message),this.context.strict&&F.stricted&&this.tolerateUnexpectedToken(F.stricted,F.message),e=E?this.finalize(L,new l.AsyncArrowFunctionExpression(F.params,X,G)):this.finalize(L,new l.ArrowFunctionExpression(F.params,X,G)),this.context.strict=T,this.context.allowStrictDirective=I,this.context.allowYield=P,this.context.await=R}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(s.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===S.Syntax.Identifier){var V=e;this.scanner.isRestrictedWord(V.name)&&this.tolerateUnexpectedToken(n,s.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(V.name)&&this.tolerateUnexpectedToken(n,s.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1),n=this.nextToken();var oe=n.value,De=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(i),new l.AssignmentExpression(oe,e,De)),this.context.firstCoverInitializedNameError=null}}return e},f.prototype.parseExpression=function(){var e=this.lookahead,i=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var n=[];for(n.push(i);this.lookahead.type!==2&&this.match(",");)this.nextToken(),n.push(this.isolateCoverGrammar(this.parseAssignmentExpression));i=this.finalize(this.startNode(e),new l.SequenceExpression(n))}return i},f.prototype.parseStatementListItem=function(){var e;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,this.lookahead.type===4)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,s.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,s.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement();break}else e=this.parseStatement();return e},f.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var i=[];!this.match("}");)i.push(this.parseStatementListItem());return this.expect("}"),this.finalize(e,new l.BlockStatement(i))},f.prototype.parseLexicalBinding=function(e,i){var n=this.createNode(),a=[],E=this.parsePattern(a,e);this.context.strict&&E.type===S.Syntax.Identifier&&this.scanner.isRestrictedWord(E.name)&&this.tolerateError(s.Messages.StrictVarName);var F=null;return e==="const"?!this.matchKeyword("in")&&!this.matchContextualKeyword("of")&&(this.match("=")?(this.nextToken(),F=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(s.Messages.DeclarationMissingInitializer,"const")):(!i.inFor&&E.type!==S.Syntax.Identifier||this.match("="))&&(this.expect("="),F=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(n,new l.VariableDeclarator(E,F))},f.prototype.parseBindingList=function(e,i){for(var n=[this.parseLexicalBinding(e,i)];this.match(",");)this.nextToken(),n.push(this.parseLexicalBinding(e,i));return n},f.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var i=this.scanner.lex();return this.scanner.restoreState(e),i.type===3||i.type===7&&i.value==="["||i.type===7&&i.value==="{"||i.type===4&&i.value==="let"||i.type===4&&i.value==="yield"},f.prototype.parseLexicalDeclaration=function(e){var i=this.createNode(),n=this.nextToken().value;d.assert(n==="let"||n==="const","Lexical declaration must be either let or const");var a=this.parseBindingList(n,e);return this.consumeSemicolon(),this.finalize(i,new l.VariableDeclaration(a,n))},f.prototype.parseBindingRestElement=function(e,i){var n=this.createNode();this.expect("...");var a=this.parsePattern(e,i);return this.finalize(n,new l.RestElement(a))},f.prototype.parseArrayPattern=function(e,i){var n=this.createNode();this.expect("[");for(var a=[];!this.match("]");)if(this.match(","))this.nextToken(),a.push(null);else{if(this.match("...")){a.push(this.parseBindingRestElement(e,i));break}else a.push(this.parsePatternWithDefault(e,i));this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(n,new l.ArrayPattern(a))},f.prototype.parsePropertyPattern=function(e,i){var n=this.createNode(),a=!1,E=!1,F=!1,T,I;if(this.lookahead.type===3){var P=this.lookahead;T=this.parseVariableIdentifier();var R=this.finalize(n,new l.Identifier(P.value));if(this.match("=")){e.push(P),E=!0,this.nextToken();var L=this.parseAssignmentExpression();I=this.finalize(this.startNode(P),new l.AssignmentPattern(R,L))}else this.match(":")?(this.expect(":"),I=this.parsePatternWithDefault(e,i)):(e.push(P),E=!0,I=R)}else a=this.match("["),T=this.parseObjectPropertyKey(),this.expect(":"),I=this.parsePatternWithDefault(e,i);return this.finalize(n,new l.Property("init",T,a,I,F,E))},f.prototype.parseObjectPattern=function(e,i){var n=this.createNode(),a=[];for(this.expect("{");!this.match("}");)a.push(this.parsePropertyPattern(e,i)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(n,new l.ObjectPattern(a))},f.prototype.parsePattern=function(e,i){var n;return this.match("[")?n=this.parseArrayPattern(e,i):this.match("{")?n=this.parseObjectPattern(e,i):(this.matchKeyword("let")&&(i==="const"||i==="let")&&this.tolerateUnexpectedToken(this.lookahead,s.Messages.LetInLexicalBinding),e.push(this.lookahead),n=this.parseVariableIdentifier(i)),n},f.prototype.parsePatternWithDefault=function(e,i){var n=this.lookahead,a=this.parsePattern(e,i);if(this.match("=")){this.nextToken();var E=this.context.allowYield;this.context.allowYield=!0;var F=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=E,a=this.finalize(this.startNode(n),new l.AssignmentPattern(a,F))}return a},f.prototype.parseVariableIdentifier=function(e){var i=this.createNode(),n=this.nextToken();return n.type===4&&n.value==="yield"?this.context.strict?this.tolerateUnexpectedToken(n,s.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(n):n.type!==3?this.context.strict&&n.type===4&&this.scanner.isStrictModeReservedWord(n.value)?this.tolerateUnexpectedToken(n,s.Messages.StrictReservedWord):(this.context.strict||n.value!=="let"||e!=="var")&&this.throwUnexpectedToken(n):(this.context.isModule||this.context.await)&&n.type===3&&n.value==="await"&&this.tolerateUnexpectedToken(n),this.finalize(i,new l.Identifier(n.value))},f.prototype.parseVariableDeclaration=function(e){var i=this.createNode(),n=[],a=this.parsePattern(n,"var");this.context.strict&&a.type===S.Syntax.Identifier&&this.scanner.isRestrictedWord(a.name)&&this.tolerateError(s.Messages.StrictVarName);var E=null;return this.match("=")?(this.nextToken(),E=this.isolateCoverGrammar(this.parseAssignmentExpression)):a.type!==S.Syntax.Identifier&&!e.inFor&&this.expect("="),this.finalize(i,new l.VariableDeclarator(a,E))},f.prototype.parseVariableDeclarationList=function(e){var i={inFor:e.inFor},n=[];for(n.push(this.parseVariableDeclaration(i));this.match(",");)this.nextToken(),n.push(this.parseVariableDeclaration(i));return n},f.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var i=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new l.VariableDeclaration(i,"var"))},f.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new l.EmptyStatement)},f.prototype.parseExpressionStatement=function(){var e=this.createNode(),i=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new l.ExpressionStatement(i))},f.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(s.Messages.StrictFunction),this.parseStatement()},f.prototype.parseIfStatement=function(){var e=this.createNode(),i,n=null;this.expectKeyword("if"),this.expect("(");var a=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),i=this.finalize(this.createNode(),new l.EmptyStatement)):(this.expect(")"),i=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),n=this.parseIfClause())),this.finalize(e,new l.IfStatement(a,i,n))},f.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var i=this.context.inIteration;this.context.inIteration=!0;var n=this.parseStatement();this.context.inIteration=i,this.expectKeyword("while"),this.expect("(");var a=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(e,new l.DoWhileStatement(n,a))},f.prototype.parseWhileStatement=function(){var e=this.createNode(),i;this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),i=this.finalize(this.createNode(),new l.EmptyStatement);else{this.expect(")");var a=this.context.inIteration;this.context.inIteration=!0,i=this.parseStatement(),this.context.inIteration=a}return this.finalize(e,new l.WhileStatement(n,i))},f.prototype.parseForStatement=function(){var e=null,i=null,n=null,a=!0,E,F,T=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){e=this.createNode(),this.nextToken();var I=this.context.allowIn;this.context.allowIn=!1;var P=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=I,P.length===1&&this.matchKeyword("in")){var R=P[0];R.init&&(R.id.type===S.Syntax.ArrayPattern||R.id.type===S.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(s.Messages.ForInOfLoopInitializer,"for-in"),e=this.finalize(e,new l.VariableDeclaration(P,"var")),this.nextToken(),E=e,F=this.parseExpression(),e=null}else P.length===1&&P[0].init===null&&this.matchContextualKeyword("of")?(e=this.finalize(e,new l.VariableDeclaration(P,"var")),this.nextToken(),E=e,F=this.parseAssignmentExpression(),e=null,a=!1):(e=this.finalize(e,new l.VariableDeclaration(P,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){e=this.createNode();var L=this.nextToken().value;if(!this.context.strict&&this.lookahead.value==="in")e=this.finalize(e,new l.Identifier(L)),this.nextToken(),E=e,F=this.parseExpression(),e=null;else{var I=this.context.allowIn;this.context.allowIn=!1;var P=this.parseBindingList(L,{inFor:!0});this.context.allowIn=I,P.length===1&&P[0].init===null&&this.matchKeyword("in")?(e=this.finalize(e,new l.VariableDeclaration(P,L)),this.nextToken(),E=e,F=this.parseExpression(),e=null):P.length===1&&P[0].init===null&&this.matchContextualKeyword("of")?(e=this.finalize(e,new l.VariableDeclaration(P,L)),this.nextToken(),E=e,F=this.parseAssignmentExpression(),e=null,a=!1):(this.consumeSemicolon(),e=this.finalize(e,new l.VariableDeclaration(P,L)))}}else{var X=this.lookahead,I=this.context.allowIn;if(this.context.allowIn=!1,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=I,this.matchKeyword("in"))(!this.context.isAssignmentTarget||e.type===S.Syntax.AssignmentExpression)&&this.tolerateError(s.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(e),E=e,F=this.parseExpression(),e=null;else if(this.matchContextualKeyword("of"))(!this.context.isAssignmentTarget||e.type===S.Syntax.AssignmentExpression)&&this.tolerateError(s.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(e),E=e,F=this.parseAssignmentExpression(),e=null,a=!1;else{if(this.match(",")){for(var z=[e];this.match(",");)this.nextToken(),z.push(this.isolateCoverGrammar(this.parseAssignmentExpression));e=this.finalize(this.startNode(X),new l.SequenceExpression(z))}this.expect(";")}}typeof E=="undefined"&&(this.match(";")||(i=this.parseExpression()),this.expect(";"),this.match(")")||(n=this.parseExpression()));var G;if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),G=this.finalize(this.createNode(),new l.EmptyStatement);else{this.expect(")");var V=this.context.inIteration;this.context.inIteration=!0,G=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=V}return typeof E=="undefined"?this.finalize(T,new l.ForStatement(e,i,n,G)):a?this.finalize(T,new l.ForInStatement(E,F,G)):this.finalize(T,new l.ForOfStatement(E,F,G))},f.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var i=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var n=this.parseVariableIdentifier();i=n;var a="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,a)||this.throwError(s.Messages.UnknownLabel,n.name)}return this.consumeSemicolon(),i===null&&!this.context.inIteration&&this.throwError(s.Messages.IllegalContinue),this.finalize(e,new l.ContinueStatement(i))},f.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var i=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var n=this.parseVariableIdentifier(),a="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,a)||this.throwError(s.Messages.UnknownLabel,n.name),i=n}return this.consumeSemicolon(),i===null&&!this.context.inIteration&&!this.context.inSwitch&&this.throwError(s.Messages.IllegalBreak),this.finalize(e,new l.BreakStatement(i))},f.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(s.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var i=!this.match(";")&&!this.match("}")&&!this.hasLineTerminator&&this.lookahead.type!==2||this.lookahead.type===8||this.lookahead.type===10,n=i?this.parseExpression():null;return this.consumeSemicolon(),this.finalize(e,new l.ReturnStatement(n))},f.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(s.Messages.StrictModeWith);var e=this.createNode(),i;this.expectKeyword("with"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),i=this.finalize(this.createNode(),new l.EmptyStatement)):(this.expect(")"),i=this.parseStatement()),this.finalize(e,new l.WithStatement(n,i))},f.prototype.parseSwitchCase=function(){var e=this.createNode(),i;this.matchKeyword("default")?(this.nextToken(),i=null):(this.expectKeyword("case"),i=this.parseExpression()),this.expect(":");for(var n=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)n.push(this.parseStatementListItem());return this.finalize(e,new l.SwitchCase(i,n))},f.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var i=this.parseExpression();this.expect(")");var n=this.context.inSwitch;this.context.inSwitch=!0;var a=[],E=!1;for(this.expect("{");!this.match("}");){var F=this.parseSwitchCase();F.test===null&&(E&&this.throwError(s.Messages.MultipleDefaultsInSwitch),E=!0),a.push(F)}return this.expect("}"),this.context.inSwitch=n,this.finalize(e,new l.SwitchStatement(i,a))},f.prototype.parseLabelledStatement=function(){var e=this.createNode(),i=this.parseExpression(),n;if(i.type===S.Syntax.Identifier&&this.match(":")){this.nextToken();var a=i,E="$"+a.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,E)&&this.throwError(s.Messages.Redeclaration,"Label",a.name),this.context.labelSet[E]=!0;var F=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),F=this.parseClassDeclaration();else if(this.matchKeyword("function")){var T=this.lookahead,I=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(T,s.Messages.StrictFunction):I.generator&&this.tolerateUnexpectedToken(T,s.Messages.GeneratorInLegacyContext),F=I}else F=this.parseStatement();delete this.context.labelSet[E],n=new l.LabeledStatement(a,F)}else this.consumeSemicolon(),n=new l.ExpressionStatement(i);return this.finalize(e,n)},f.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(s.Messages.NewlineAfterThrow);var i=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new l.ThrowStatement(i))},f.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var i=[],n=this.parsePattern(i),a={},E=0;E0&&this.tolerateError(s.Messages.BadGetterArity);var E=this.parsePropertyMethod(a);return this.context.allowYield=n,this.finalize(e,new l.FunctionExpression(null,a.params,E,i))},f.prototype.parseSetterMethod=function(){var e=this.createNode(),i=!1,n=this.context.allowYield;this.context.allowYield=!i;var a=this.parseFormalParameters();a.params.length!==1?this.tolerateError(s.Messages.BadSetterArity):a.params[0]instanceof l.RestElement&&this.tolerateError(s.Messages.BadSetterRestParameter);var E=this.parsePropertyMethod(a);return this.context.allowYield=n,this.finalize(e,new l.FunctionExpression(null,a.params,E,i))},f.prototype.parseGeneratorMethod=function(){var e=this.createNode(),i=!0,n=this.context.allowYield;this.context.allowYield=!0;var a=this.parseFormalParameters();this.context.allowYield=!1;var E=this.parsePropertyMethod(a);return this.context.allowYield=n,this.finalize(e,new l.FunctionExpression(null,a.params,E,i))},f.prototype.isStartOfExpression=function(){var e=!0,i=this.lookahead.value;switch(this.lookahead.type){case 7:e=i==="["||i==="("||i==="{"||i==="+"||i==="-"||i==="!"||i==="~"||i==="++"||i==="--"||i==="/"||i==="/=";break;case 4:e=i==="class"||i==="delete"||i==="function"||i==="let"||i==="new"||i==="super"||i==="this"||i==="typeof"||i==="void"||i==="yield";break}return e},f.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var i=null,n=!1;if(!this.hasLineTerminator){var a=this.context.allowYield;this.context.allowYield=!1,n=this.match("*"),n?(this.nextToken(),i=this.parseAssignmentExpression()):this.isStartOfExpression()&&(i=this.parseAssignmentExpression()),this.context.allowYield=a}return this.finalize(e,new l.YieldExpression(i,n))},f.prototype.parseClassElement=function(e){var i=this.lookahead,n=this.createNode(),a="",E=null,F=null,T=!1,I=!1,P=!1,R=!1;if(this.match("*"))this.nextToken();else{T=this.match("["),E=this.parseObjectPropertyKey();var L=E;if(L.name==="static"&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(i=this.lookahead,P=!0,T=this.match("["),this.match("*")?this.nextToken():E=this.parseObjectPropertyKey()),i.type===3&&!this.hasLineTerminator&&i.value==="async"){var X=this.lookahead.value;X!==":"&&X!=="("&&X!=="*"&&(R=!0,i=this.lookahead,E=this.parseObjectPropertyKey(),i.type===3&&i.value==="constructor"&&this.tolerateUnexpectedToken(i,s.Messages.ConstructorIsAsync))}}var z=this.qualifiedPropertyName(this.lookahead);return i.type===3?i.value==="get"&&z?(a="get",T=this.match("["),E=this.parseObjectPropertyKey(),this.context.allowYield=!1,F=this.parseGetterMethod()):i.value==="set"&&z&&(a="set",T=this.match("["),E=this.parseObjectPropertyKey(),F=this.parseSetterMethod()):i.type===7&&i.value==="*"&&z&&(a="init",T=this.match("["),E=this.parseObjectPropertyKey(),F=this.parseGeneratorMethod(),I=!0),!a&&E&&this.match("(")&&(a="init",F=R?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),I=!0),a||this.throwUnexpectedToken(this.lookahead),a==="init"&&(a="method"),T||(P&&this.isPropertyKey(E,"prototype")&&this.throwUnexpectedToken(i,s.Messages.StaticPrototype),!P&&this.isPropertyKey(E,"constructor")&&((a!=="method"||!I||F&&F.generator)&&this.throwUnexpectedToken(i,s.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(i,s.Messages.DuplicateConstructor):e.value=!0,a="constructor")),this.finalize(n,new l.MethodDefinition(E,T,F,a,P))},f.prototype.parseClassElementList=function(){var e=[],i={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(i));return this.expect("}"),e},f.prototype.parseClassBody=function(){var e=this.createNode(),i=this.parseClassElementList();return this.finalize(e,new l.ClassBody(i))},f.prototype.parseClassDeclaration=function(e){var i=this.createNode(),n=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var a=e&&this.lookahead.type!==3?null:this.parseVariableIdentifier(),E=null;this.matchKeyword("extends")&&(this.nextToken(),E=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var F=this.parseClassBody();return this.context.strict=n,this.finalize(i,new l.ClassDeclaration(a,E,F))},f.prototype.parseClassExpression=function(){var e=this.createNode(),i=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var n=this.lookahead.type===3?this.parseVariableIdentifier():null,a=null;this.matchKeyword("extends")&&(this.nextToken(),a=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var E=this.parseClassBody();return this.context.strict=i,this.finalize(e,new l.ClassExpression(n,a,E))},f.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var e=this.createNode(),i=this.parseDirectivePrologues();this.lookahead.type!==2;)i.push(this.parseStatementListItem());return this.finalize(e,new l.Module(i))},f.prototype.parseScript=function(){for(var e=this.createNode(),i=this.parseDirectivePrologues();this.lookahead.type!==2;)i.push(this.parseStatementListItem());return this.finalize(e,new l.Script(i))},f.prototype.parseModuleSpecifier=function(){var e=this.createNode();this.lookahead.type!==8&&this.throwError(s.Messages.InvalidModuleSpecifier);var i=this.nextToken(),n=this.getTokenRaw(i);return this.finalize(e,new l.Literal(i.value,n))},f.prototype.parseImportSpecifier=function(){var e=this.createNode(),i,n;return this.lookahead.type===3?(i=this.parseVariableIdentifier(),n=i,this.matchContextualKeyword("as")&&(this.nextToken(),n=this.parseVariableIdentifier())):(i=this.parseIdentifierName(),n=i,this.matchContextualKeyword("as")?(this.nextToken(),n=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(e,new l.ImportSpecifier(n,i))},f.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},f.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),i=this.parseIdentifierName();return this.finalize(e,new l.ImportDefaultSpecifier(i))},f.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(s.Messages.NoAsAfterImportNamespace),this.nextToken();var i=this.parseIdentifierName();return this.finalize(e,new l.ImportNamespaceSpecifier(i))},f.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(s.Messages.IllegalImportDeclaration);var e=this.createNode();this.expectKeyword("import");var i,n=[];if(this.lookahead.type===8)i=this.parseModuleSpecifier();else{if(this.match("{")?n=n.concat(this.parseNamedImports()):this.match("*")?n.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(n.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?n.push(this.parseImportNamespaceSpecifier()):this.match("{")?n=n.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var a=this.lookahead.value?s.Messages.UnexpectedToken:s.Messages.MissingFromClause;this.throwError(a,this.lookahead.value)}this.nextToken(),i=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(e,new l.ImportDeclaration(n,i))},f.prototype.parseExportSpecifier=function(){var e=this.createNode(),i=this.parseIdentifierName(),n=i;return this.matchContextualKeyword("as")&&(this.nextToken(),n=this.parseIdentifierName()),this.finalize(e,new l.ExportSpecifier(i,n))},f.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(s.Messages.IllegalExportDeclaration);var e=this.createNode();this.expectKeyword("export");var i;if(this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var n=this.parseFunctionDeclaration(!0);i=this.finalize(e,new l.ExportDefaultDeclaration(n))}else if(this.matchKeyword("class")){var n=this.parseClassDeclaration(!0);i=this.finalize(e,new l.ExportDefaultDeclaration(n))}else if(this.matchContextualKeyword("async")){var n=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression();i=this.finalize(e,new l.ExportDefaultDeclaration(n))}else{this.matchContextualKeyword("from")&&this.throwError(s.Messages.UnexpectedToken,this.lookahead.value);var n=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression();this.consumeSemicolon(),i=this.finalize(e,new l.ExportDefaultDeclaration(n))}else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var a=this.lookahead.value?s.Messages.UnexpectedToken:s.Messages.MissingFromClause;this.throwError(a,this.lookahead.value)}this.nextToken();var E=this.parseModuleSpecifier();this.consumeSemicolon(),i=this.finalize(e,new l.ExportAllDeclaration(E))}else if(this.lookahead.type===4){var n=void 0;switch(this.lookahead.value){case"let":case"const":n=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":n=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}i=this.finalize(e,new l.ExportNamedDeclaration(n,[],null))}else if(this.matchAsyncFunction()){var n=this.parseFunctionDeclaration();i=this.finalize(e,new l.ExportNamedDeclaration(n,[],null))}else{var F=[],T=null,I=!1;for(this.expect("{");!this.match("}");)I=I||this.matchKeyword("default"),F.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");if(this.expect("}"),this.matchContextualKeyword("from"))this.nextToken(),T=this.parseModuleSpecifier(),this.consumeSemicolon();else if(I){var a=this.lookahead.value?s.Messages.UnexpectedToken:s.Messages.MissingFromClause;this.throwError(a,this.lookahead.value)}else this.consumeSemicolon();i=this.finalize(e,new l.ExportNamedDeclaration(null,F,T))}return i},f}();c.Parser=y},function(x,c){Object.defineProperty(c,"__esModule",{value:!0});function C(d,D){if(!d)throw new Error("ASSERT: "+D)}c.assert=C},function(x,c){Object.defineProperty(c,"__esModule",{value:!0});var C=function(){function d(){this.errors=[],this.tolerant=!1}return d.prototype.recordError=function(D){this.errors.push(D)},d.prototype.tolerate=function(D){if(this.tolerant)this.recordError(D);else throw D},d.prototype.constructError=function(D,s){var l=new Error(D);try{throw l}catch(A){Object.create&&Object.defineProperty&&(l=Object.create(A),Object.defineProperty(l,"column",{value:s}))}return l},d.prototype.createError=function(D,s,l,A){var S="Line "+s+": "+A,g=this.constructError(S,l);return g.index=D,g.lineNumber=s,g.description=A,g},d.prototype.throwError=function(D,s,l,A){throw this.createError(D,s,l,A)},d.prototype.tolerateError=function(D,s,l,A){var S=this.createError(D,s,l,A);if(this.tolerant)this.recordError(S);else throw S},d}();c.ErrorHandler=C},function(x,c){Object.defineProperty(c,"__esModule",{value:!0}),c.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(x,c,C){Object.defineProperty(c,"__esModule",{value:!0});var d=C(9),D=C(4),s=C(11);function l(g){return"0123456789abcdef".indexOf(g.toLowerCase())}function A(g){return"01234567".indexOf(g)}var S=function(){function g(h,y){this.source=h,this.errorHandler=y,this.trackComment=!1,this.isModule=!1,this.length=h.length,this.index=0,this.lineNumber=h.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return g.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},g.prototype.restoreState=function(h){this.index=h.index,this.lineNumber=h.lineNumber,this.lineStart=h.lineStart},g.prototype.eof=function(){return this.index>=this.length},g.prototype.throwUnexpectedToken=function(h){return h===void 0&&(h=s.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,h)},g.prototype.tolerateUnexpectedToken=function(h){h===void 0&&(h=s.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,h)},g.prototype.skipSingleLineComment=function(h){var y=[],f,e;for(this.trackComment&&(y=[],f=this.index-h,e={start:{line:this.lineNumber,column:this.index-this.lineStart-h},end:{}});!this.eof();){var i=this.source.charCodeAt(this.index);if(++this.index,D.Character.isLineTerminator(i)){if(this.trackComment){e.end={line:this.lineNumber,column:this.index-this.lineStart-1};var n={multiLine:!1,slice:[f+h,this.index-1],range:[f,this.index-1],loc:e};y.push(n)}return i===13&&this.source.charCodeAt(this.index)===10&&++this.index,++this.lineNumber,this.lineStart=this.index,y}}if(this.trackComment){e.end={line:this.lineNumber,column:this.index-this.lineStart};var n={multiLine:!1,slice:[f+h,this.index],range:[f,this.index],loc:e};y.push(n)}return y},g.prototype.skipMultiLineComment=function(){var h=[],y,f;for(this.trackComment&&(h=[],y=this.index-2,f={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var e=this.source.charCodeAt(this.index);if(D.Character.isLineTerminator(e))e===13&&this.source.charCodeAt(this.index+1)===10&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(e===42){if(this.source.charCodeAt(this.index+1)===47){if(this.index+=2,this.trackComment){f.end={line:this.lineNumber,column:this.index-this.lineStart};var i={multiLine:!0,slice:[y+2,this.index-2],range:[y,this.index],loc:f};h.push(i)}return h}++this.index}else++this.index}if(this.trackComment){f.end={line:this.lineNumber,column:this.index-this.lineStart};var i={multiLine:!0,slice:[y+2,this.index],range:[y,this.index],loc:f};h.push(i)}return this.tolerateUnexpectedToken(),h},g.prototype.scanComments=function(){var h;this.trackComment&&(h=[]);for(var y=this.index===0;!this.eof();){var f=this.source.charCodeAt(this.index);if(D.Character.isWhiteSpace(f))++this.index;else if(D.Character.isLineTerminator(f))++this.index,f===13&&this.source.charCodeAt(this.index)===10&&++this.index,++this.lineNumber,this.lineStart=this.index,y=!0;else if(f===47)if(f=this.source.charCodeAt(this.index+1),f===47){this.index+=2;var e=this.skipSingleLineComment(2);this.trackComment&&(h=h.concat(e)),y=!0}else if(f===42){this.index+=2;var e=this.skipMultiLineComment();this.trackComment&&(h=h.concat(e))}else break;else if(y&&f===45)if(this.source.charCodeAt(this.index+1)===45&&this.source.charCodeAt(this.index+2)===62){this.index+=3;var e=this.skipSingleLineComment(3);this.trackComment&&(h=h.concat(e))}else break;else if(f===60&&!this.isModule)if(this.source.slice(this.index+1,this.index+4)==="!--"){this.index+=4;var e=this.skipSingleLineComment(4);this.trackComment&&(h=h.concat(e))}else break;else break}return h},g.prototype.isFutureReservedWord=function(h){switch(h){case"enum":case"export":case"import":case"super":return!0;default:return!1}},g.prototype.isStrictModeReservedWord=function(h){switch(h){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},g.prototype.isRestrictedWord=function(h){return h==="eval"||h==="arguments"},g.prototype.isKeyword=function(h){switch(h.length){case 2:return h==="if"||h==="in"||h==="do";case 3:return h==="var"||h==="for"||h==="new"||h==="try"||h==="let";case 4:return h==="this"||h==="else"||h==="case"||h==="void"||h==="with"||h==="enum";case 5:return h==="while"||h==="break"||h==="catch"||h==="throw"||h==="const"||h==="yield"||h==="class"||h==="super";case 6:return h==="return"||h==="typeof"||h==="delete"||h==="switch"||h==="export"||h==="import";case 7:return h==="default"||h==="finally"||h==="extends";case 8:return h==="function"||h==="continue"||h==="debugger";case 10:return h==="instanceof";default:return!1}},g.prototype.codePointAt=function(h){var y=this.source.charCodeAt(h);if(y>=55296&&y<=56319){var f=this.source.charCodeAt(h+1);if(f>=56320&&f<=57343){var e=y;y=(e-55296)*1024+f-56320+65536}}return y},g.prototype.scanHexEscape=function(h){for(var y=h==="u"?4:2,f=0,e=0;e1114111||h!=="}")&&this.throwUnexpectedToken(),D.Character.fromCodePoint(y)},g.prototype.getIdentifier=function(){for(var h=this.index++;!this.eof();){var y=this.source.charCodeAt(this.index);if(y===92)return this.index=h,this.getComplexIdentifier();if(y>=55296&&y<57343)return this.index=h,this.getComplexIdentifier();if(D.Character.isIdentifierPart(y))++this.index;else break}return this.source.slice(h,this.index)},g.prototype.getComplexIdentifier=function(){var h=this.codePointAt(this.index),y=D.Character.fromCodePoint(h);this.index+=y.length;var f;for(h===92&&(this.source.charCodeAt(this.index)!==117&&this.throwUnexpectedToken(),++this.index,this.source[this.index]==="{"?(++this.index,f=this.scanUnicodeCodePointEscape()):(f=this.scanHexEscape("u"),(f===null||f==="\\"||!D.Character.isIdentifierStart(f.charCodeAt(0)))&&this.throwUnexpectedToken()),y=f);!this.eof()&&(h=this.codePointAt(this.index),!!D.Character.isIdentifierPart(h));)f=D.Character.fromCodePoint(h),y+=f,this.index+=f.length,h===92&&(y=y.substr(0,y.length-1),this.source.charCodeAt(this.index)!==117&&this.throwUnexpectedToken(),++this.index,this.source[this.index]==="{"?(++this.index,f=this.scanUnicodeCodePointEscape()):(f=this.scanHexEscape("u"),(f===null||f==="\\"||!D.Character.isIdentifierPart(f.charCodeAt(0)))&&this.throwUnexpectedToken()),y+=f);return y},g.prototype.octalToDecimal=function(h){var y=h!=="0",f=A(h);return!this.eof()&&D.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(y=!0,f=f*8+A(this.source[this.index++]),"0123".indexOf(h)>=0&&!this.eof()&&D.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(f=f*8+A(this.source[this.index++]))),{code:f,octal:y}},g.prototype.scanIdentifier=function(){var h,y=this.index,f=this.source.charCodeAt(y)===92?this.getComplexIdentifier():this.getIdentifier();if(f.length===1?h=3:this.isKeyword(f)?h=4:f==="null"?h=5:f==="true"||f==="false"?h=1:h=3,h!==3&&y+f.length!==this.index){var e=this.index;this.index=y,this.tolerateUnexpectedToken(s.Messages.InvalidEscapedReservedWord),this.index=e}return{type:h,value:f,lineNumber:this.lineNumber,lineStart:this.lineStart,start:y,end:this.index}},g.prototype.scanPunctuator=function(){var h=this.index,y=this.source[this.index];switch(y){case"(":case"{":y==="{"&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,this.source[this.index]==="."&&this.source[this.index+1]==="."&&(this.index+=2,y="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:y=this.source.substr(this.index,4),y===">>>="?this.index+=4:(y=y.substr(0,3),y==="==="||y==="!=="||y===">>>"||y==="<<="||y===">>="||y==="**="?this.index+=3:(y=y.substr(0,2),y==="&&"||y==="||"||y==="=="||y==="!="||y==="+="||y==="-="||y==="*="||y==="/="||y==="++"||y==="--"||y==="<<"||y===">>"||y==="&="||y==="|="||y==="^="||y==="%="||y==="<="||y===">="||y==="=>"||y==="**"?this.index+=2:(y=this.source[this.index],"<>=!+-*%&|^/".indexOf(y)>=0&&++this.index)))}return this.index===h&&this.throwUnexpectedToken(),{type:7,value:y,lineNumber:this.lineNumber,lineStart:this.lineStart,start:h,end:this.index}},g.prototype.scanHexLiteral=function(h){for(var y="";!this.eof()&&D.Character.isHexDigit(this.source.charCodeAt(this.index));)y+=this.source[this.index++];return y.length===0&&this.throwUnexpectedToken(),D.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+y,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:h,end:this.index}},g.prototype.scanBinaryLiteral=function(h){for(var y="",f;!this.eof()&&(f=this.source[this.index],!(f!=="0"&&f!=="1"));)y+=this.source[this.index++];return y.length===0&&this.throwUnexpectedToken(),this.eof()||(f=this.source.charCodeAt(this.index),(D.Character.isIdentifierStart(f)||D.Character.isDecimalDigit(f))&&this.throwUnexpectedToken()),{type:6,value:parseInt(y,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:h,end:this.index}},g.prototype.scanOctalLiteral=function(h,y){var f="",e=!1;for(D.Character.isOctalDigit(h.charCodeAt(0))?(e=!0,f="0"+this.source[this.index++]):++this.index;!this.eof()&&D.Character.isOctalDigit(this.source.charCodeAt(this.index));)f+=this.source[this.index++];return!e&&f.length===0&&this.throwUnexpectedToken(),(D.Character.isIdentifierStart(this.source.charCodeAt(this.index))||D.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(f,8),octal:e,lineNumber:this.lineNumber,lineStart:this.lineStart,start:y,end:this.index}},g.prototype.isImplicitOctalLiteral=function(){for(var h=this.index+1;h=x)return ue.substr(0,x);for(;x>ue.length&&p>1;)p&1&&(ue+=o),p>>=1,o+=o;return ue+=o,ue=ue.substr(0,x),ue}const{isArray:Tt,isObject:wi,isFunction:xt,isNumber:rn,isString:nn}=Y,sn=en,{PREFIX_BEFORE_ALL:an,PREFIX_BEFORE:Bi,PREFIX_AFTER_PROP:on,PREFIX_AFTER_COLON:un,PREFIX_AFTER_VALUE:hn,PREFIX_AFTER:It,PREFIX_AFTER_ALL:cn,BRACKET_OPEN:ln,BRACKET_CLOSE:pn,CURLY_BRACKET_OPEN:fn,CURLY_BRACKET_CLOSE:dn,COLON:mn,COMMA:ki,EMPTY:Q,UNDEFINED:xn}=Ye,ft=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,Nt=" ",me=` `,bi="null",Ti=o=>`${Bi}:${o}`,Dn=o=>`${on}:${o}`,En=o=>`${un}:${o}`,Ii=o=>`${hn}:${o}`,Ni=o=>`${It}:${o}`,yn={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},Cn=o=>(ft.lastIndex=0,ft.test(o)?o.replace(ft,p=>{const x=yn[p];return typeof x=="string"?x:p}):o),Pi=o=>`"${Cn(o)}"`,An=(o,p)=>p?`//${o}`:`/*${o}*/`,Z=(o,p,x,c)=>{const C=o[Symbol.for(p)];if(!C||!C.length)return Q;let d=!1;const D=C.reduce((s,{inline:l,type:A,value:S})=>{const g=l?Nt:me+x;return d=A==="LineComment",s+g+An(S,d)},Q);return c||d?D+me+x:D};let Ae=null,Te=Q;const vn=()=>{Ae=null,Te=Q},be=(o,p,x)=>o?p?o+p.trim()+me+x:o.trimRight()+me+x:p?p.trimRight()+me+x:Q,Mi=(o,p,x)=>{const c=Z(p,Bi,x+Te,!0);return be(c,o,x)},Fn=(o,p)=>{const x=p+Te,{length:c}=o;let C=Q,d=Q;for(let D=0;D{if(!o)return"null";const x=p+Te;let c=Q,C=Q,d=!0;const D=Tt(Ae)?Ae:Object.keys(o),s=l=>{const A=Pt(l,o,x);if(A===xn)return;d||(c+=ki),d=!1,c+=be(C,Z(o,Ti(l),x),x)||me+x,c+=Pi(l)+Z(o,Dn(l),x)+mn+Z(o,En(l),x)+Nt+A+Z(o,Ii(l),x),C=Z(o,Ni(l),x)};return D.forEach(s),c+=be(C,Z(o,It,x),x),fn+Mi(c,o,p)+dn};function Pt(o,p,x){let c=p[o];switch(wi(c)&&xt(c.toJSON)&&(c=c.toJSON(o)),xt(Ae)&&(c=Ae.call(p,o,c)),typeof c){case"string":return Pi(c);case"number":return Number.isFinite(c)?String(c):bi;case"boolean":case"null":return String(c);case"object":return Tt(c)?Fn(c,x):Sn(c,x)}}const gn=o=>nn(o)?o:rn(o)?sn(Nt,o):Q,{toString:wn}=Object.prototype,Bn=["[object Number]","[object String]","[object Boolean]"],kn=o=>{if(typeof o!="object")return!1;const p=wn.call(o);return Bn.includes(p)};var bn=(o,p,x)=>{const c=gn(x);if(!c)return JSON.stringify(o,p);!xt(p)&&!Tt(p)&&(p=null),Ae=p,Te=c;const C=kn(o)?JSON.stringify(o):Pt("",{"":o},Q);return vn(),wi(o)?Z(o,an,Q).trimLeft()+C+Z(o,cn,Q).trimRight():C};const{parse:Tn,tokenize:In}=Qr,Nn=bn,{CommentArray:Pn}=fi,{assign:Mn}=Ye;var Qt={parse:Tn,stringify:Nn,tokenize:In,CommentArray:Pn,assign:Mn},On=$i({__proto__:null,default:Qt},[Qt]);export{On as i}; -//# sourceMappingURL=index.19faebd7.js.map +//# sourceMappingURL=index.6a237dca.js.map diff --git a/assets/index.19faebd7.js.map b/assets/index.6a237dca.js.map similarity index 99% rename from assets/index.19faebd7.js.map rename to assets/index.6a237dca.js.map index 6f433321..9998f5b6 100644 --- a/assets/index.19faebd7.js.map +++ b/assets/index.6a237dca.js.map @@ -1 +1 @@ -{"version":3,"file":"index.19faebd7.js","sources":["../../node_modules/esprima/dist/esprima.js","../../node_modules/base64-js/index.js","../../node_modules/ieee754/index.js","../../node_modules/buffer/index.js","../../node_modules/core-util-is/lib/util.js","../../node_modules/array-timsort/src/index.js","../../node_modules/has-own-prop/index.js","../../node_modules/comment-json/src/common.js","../../node_modules/comment-json/src/array.js","../../node_modules/comment-json/src/parse.js","../../node_modules/repeat-string/index.js","../../node_modules/comment-json/src/stringify.js","../../node_modules/comment-json/src/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n/* istanbul ignore next */\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n/* istanbul ignore next */\n\telse if(typeof exports === 'object')\n\t\texports[\"esprima\"] = factory();\n\telse\n\t\troot[\"esprima\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/* istanbul ignore if */\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t/*\n\t Copyright JS Foundation and other contributors, https://js.foundation/\n\n\t Redistribution and use in source and binary forms, with or without\n\t modification, are permitted provided that the following conditions are met:\n\n\t * Redistributions of source code must retain the above copyright\n\t notice, this list of conditions and the following disclaimer.\n\t * Redistributions in binary form must reproduce the above copyright\n\t notice, this list of conditions and the following disclaimer in the\n\t documentation and/or other materials provided with the distribution.\n\n\t THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n\t AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\t IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n\t ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\n\t DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n\t (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n\t LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n\t ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n\t THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar comment_handler_1 = __webpack_require__(1);\n\tvar jsx_parser_1 = __webpack_require__(3);\n\tvar parser_1 = __webpack_require__(8);\n\tvar tokenizer_1 = __webpack_require__(15);\n\tfunction parse(code, options, delegate) {\n\t var commentHandler = null;\n\t var proxyDelegate = function (node, metadata) {\n\t if (delegate) {\n\t delegate(node, metadata);\n\t }\n\t if (commentHandler) {\n\t commentHandler.visit(node, metadata);\n\t }\n\t };\n\t var parserDelegate = (typeof delegate === 'function') ? proxyDelegate : null;\n\t var collectComment = false;\n\t if (options) {\n\t collectComment = (typeof options.comment === 'boolean' && options.comment);\n\t var attachComment = (typeof options.attachComment === 'boolean' && options.attachComment);\n\t if (collectComment || attachComment) {\n\t commentHandler = new comment_handler_1.CommentHandler();\n\t commentHandler.attach = attachComment;\n\t options.comment = true;\n\t parserDelegate = proxyDelegate;\n\t }\n\t }\n\t var isModule = false;\n\t if (options && typeof options.sourceType === 'string') {\n\t isModule = (options.sourceType === 'module');\n\t }\n\t var parser;\n\t if (options && typeof options.jsx === 'boolean' && options.jsx) {\n\t parser = new jsx_parser_1.JSXParser(code, options, parserDelegate);\n\t }\n\t else {\n\t parser = new parser_1.Parser(code, options, parserDelegate);\n\t }\n\t var program = isModule ? parser.parseModule() : parser.parseScript();\n\t var ast = program;\n\t if (collectComment && commentHandler) {\n\t ast.comments = commentHandler.comments;\n\t }\n\t if (parser.config.tokens) {\n\t ast.tokens = parser.tokens;\n\t }\n\t if (parser.config.tolerant) {\n\t ast.errors = parser.errorHandler.errors;\n\t }\n\t return ast;\n\t}\n\texports.parse = parse;\n\tfunction parseModule(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'module';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseModule = parseModule;\n\tfunction parseScript(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'script';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseScript = parseScript;\n\tfunction tokenize(code, options, delegate) {\n\t var tokenizer = new tokenizer_1.Tokenizer(code, options);\n\t var tokens;\n\t tokens = [];\n\t try {\n\t while (true) {\n\t var token = tokenizer.getNextToken();\n\t if (!token) {\n\t break;\n\t }\n\t if (delegate) {\n\t token = delegate(token);\n\t }\n\t tokens.push(token);\n\t }\n\t }\n\t catch (e) {\n\t tokenizer.errorHandler.tolerate(e);\n\t }\n\t if (tokenizer.errorHandler.tolerant) {\n\t tokens.errors = tokenizer.errors();\n\t }\n\t return tokens;\n\t}\n\texports.tokenize = tokenize;\n\tvar syntax_1 = __webpack_require__(2);\n\texports.Syntax = syntax_1.Syntax;\n\t// Sync with *.json manifests.\n\texports.version = '4.0.1';\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\tvar CommentHandler = (function () {\n\t function CommentHandler() {\n\t this.attach = false;\n\t this.comments = [];\n\t this.stack = [];\n\t this.leading = [];\n\t this.trailing = [];\n\t }\n\t CommentHandler.prototype.insertInnerComments = function (node, metadata) {\n\t // innnerComments for properties empty block\n\t // `function a() {/** comments **\\/}`\n\t if (node.type === syntax_1.Syntax.BlockStatement && node.body.length === 0) {\n\t var innerComments = [];\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (metadata.end.offset >= entry.start) {\n\t innerComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t this.trailing.splice(i, 1);\n\t }\n\t }\n\t if (innerComments.length) {\n\t node.innerComments = innerComments;\n\t }\n\t }\n\t };\n\t CommentHandler.prototype.findTrailingComments = function (metadata) {\n\t var trailingComments = [];\n\t if (this.trailing.length > 0) {\n\t for (var i = this.trailing.length - 1; i >= 0; --i) {\n\t var entry_1 = this.trailing[i];\n\t if (entry_1.start >= metadata.end.offset) {\n\t trailingComments.unshift(entry_1.comment);\n\t }\n\t }\n\t this.trailing.length = 0;\n\t return trailingComments;\n\t }\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.node.trailingComments) {\n\t var firstComment = entry.node.trailingComments[0];\n\t if (firstComment && firstComment.range[0] >= metadata.end.offset) {\n\t trailingComments = entry.node.trailingComments;\n\t delete entry.node.trailingComments;\n\t }\n\t }\n\t return trailingComments;\n\t };\n\t CommentHandler.prototype.findLeadingComments = function (metadata) {\n\t var leadingComments = [];\n\t var target;\n\t while (this.stack.length > 0) {\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.start >= metadata.start.offset) {\n\t target = entry.node;\n\t this.stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t if (target) {\n\t var count = target.leadingComments ? target.leadingComments.length : 0;\n\t for (var i = count - 1; i >= 0; --i) {\n\t var comment = target.leadingComments[i];\n\t if (comment.range[1] <= metadata.start.offset) {\n\t leadingComments.unshift(comment);\n\t target.leadingComments.splice(i, 1);\n\t }\n\t }\n\t if (target.leadingComments && target.leadingComments.length === 0) {\n\t delete target.leadingComments;\n\t }\n\t return leadingComments;\n\t }\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (entry.start <= metadata.start.offset) {\n\t leadingComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t }\n\t }\n\t return leadingComments;\n\t };\n\t CommentHandler.prototype.visitNode = function (node, metadata) {\n\t if (node.type === syntax_1.Syntax.Program && node.body.length > 0) {\n\t return;\n\t }\n\t this.insertInnerComments(node, metadata);\n\t var trailingComments = this.findTrailingComments(metadata);\n\t var leadingComments = this.findLeadingComments(metadata);\n\t if (leadingComments.length > 0) {\n\t node.leadingComments = leadingComments;\n\t }\n\t if (trailingComments.length > 0) {\n\t node.trailingComments = trailingComments;\n\t }\n\t this.stack.push({\n\t node: node,\n\t start: metadata.start.offset\n\t });\n\t };\n\t CommentHandler.prototype.visitComment = function (node, metadata) {\n\t var type = (node.type[0] === 'L') ? 'Line' : 'Block';\n\t var comment = {\n\t type: type,\n\t value: node.value\n\t };\n\t if (node.range) {\n\t comment.range = node.range;\n\t }\n\t if (node.loc) {\n\t comment.loc = node.loc;\n\t }\n\t this.comments.push(comment);\n\t if (this.attach) {\n\t var entry = {\n\t comment: {\n\t type: type,\n\t value: node.value,\n\t range: [metadata.start.offset, metadata.end.offset]\n\t },\n\t start: metadata.start.offset\n\t };\n\t if (node.loc) {\n\t entry.comment.loc = node.loc;\n\t }\n\t node.type = type;\n\t this.leading.push(entry);\n\t this.trailing.push(entry);\n\t }\n\t };\n\t CommentHandler.prototype.visit = function (node, metadata) {\n\t if (node.type === 'LineComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (node.type === 'BlockComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (this.attach) {\n\t this.visitNode(node, metadata);\n\t }\n\t };\n\t return CommentHandler;\n\t}());\n\texports.CommentHandler = CommentHandler;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.Syntax = {\n\t AssignmentExpression: 'AssignmentExpression',\n\t AssignmentPattern: 'AssignmentPattern',\n\t ArrayExpression: 'ArrayExpression',\n\t ArrayPattern: 'ArrayPattern',\n\t ArrowFunctionExpression: 'ArrowFunctionExpression',\n\t AwaitExpression: 'AwaitExpression',\n\t BlockStatement: 'BlockStatement',\n\t BinaryExpression: 'BinaryExpression',\n\t BreakStatement: 'BreakStatement',\n\t CallExpression: 'CallExpression',\n\t CatchClause: 'CatchClause',\n\t ClassBody: 'ClassBody',\n\t ClassDeclaration: 'ClassDeclaration',\n\t ClassExpression: 'ClassExpression',\n\t ConditionalExpression: 'ConditionalExpression',\n\t ContinueStatement: 'ContinueStatement',\n\t DoWhileStatement: 'DoWhileStatement',\n\t DebuggerStatement: 'DebuggerStatement',\n\t EmptyStatement: 'EmptyStatement',\n\t ExportAllDeclaration: 'ExportAllDeclaration',\n\t ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n\t ExportNamedDeclaration: 'ExportNamedDeclaration',\n\t ExportSpecifier: 'ExportSpecifier',\n\t ExpressionStatement: 'ExpressionStatement',\n\t ForStatement: 'ForStatement',\n\t ForOfStatement: 'ForOfStatement',\n\t ForInStatement: 'ForInStatement',\n\t FunctionDeclaration: 'FunctionDeclaration',\n\t FunctionExpression: 'FunctionExpression',\n\t Identifier: 'Identifier',\n\t IfStatement: 'IfStatement',\n\t ImportDeclaration: 'ImportDeclaration',\n\t ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n\t ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n\t ImportSpecifier: 'ImportSpecifier',\n\t Literal: 'Literal',\n\t LabeledStatement: 'LabeledStatement',\n\t LogicalExpression: 'LogicalExpression',\n\t MemberExpression: 'MemberExpression',\n\t MetaProperty: 'MetaProperty',\n\t MethodDefinition: 'MethodDefinition',\n\t NewExpression: 'NewExpression',\n\t ObjectExpression: 'ObjectExpression',\n\t ObjectPattern: 'ObjectPattern',\n\t Program: 'Program',\n\t Property: 'Property',\n\t RestElement: 'RestElement',\n\t ReturnStatement: 'ReturnStatement',\n\t SequenceExpression: 'SequenceExpression',\n\t SpreadElement: 'SpreadElement',\n\t Super: 'Super',\n\t SwitchCase: 'SwitchCase',\n\t SwitchStatement: 'SwitchStatement',\n\t TaggedTemplateExpression: 'TaggedTemplateExpression',\n\t TemplateElement: 'TemplateElement',\n\t TemplateLiteral: 'TemplateLiteral',\n\t ThisExpression: 'ThisExpression',\n\t ThrowStatement: 'ThrowStatement',\n\t TryStatement: 'TryStatement',\n\t UnaryExpression: 'UnaryExpression',\n\t UpdateExpression: 'UpdateExpression',\n\t VariableDeclaration: 'VariableDeclaration',\n\t VariableDeclarator: 'VariableDeclarator',\n\t WhileStatement: 'WhileStatement',\n\t WithStatement: 'WithStatement',\n\t YieldExpression: 'YieldExpression'\n\t};\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n/* istanbul ignore next */\n\tvar __extends = (this && this.__extends) || (function () {\n\t var extendStatics = Object.setPrototypeOf ||\n\t ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n\t function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n\t return function (d, b) {\n\t extendStatics(d, b);\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t };\n\t})();\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar character_1 = __webpack_require__(4);\n\tvar JSXNode = __webpack_require__(5);\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\tvar Node = __webpack_require__(7);\n\tvar parser_1 = __webpack_require__(8);\n\tvar token_1 = __webpack_require__(13);\n\tvar xhtml_entities_1 = __webpack_require__(14);\n\ttoken_1.TokenName[100 /* Identifier */] = 'JSXIdentifier';\n\ttoken_1.TokenName[101 /* Text */] = 'JSXText';\n\t// Fully qualified element name, e.g. returns \"svg:path\"\n\tfunction getQualifiedElementName(elementName) {\n\t var qualifiedName;\n\t switch (elementName.type) {\n\t case jsx_syntax_1.JSXSyntax.JSXIdentifier:\n\t var id = elementName;\n\t qualifiedName = id.name;\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXNamespacedName:\n\t var ns = elementName;\n\t qualifiedName = getQualifiedElementName(ns.namespace) + ':' +\n\t getQualifiedElementName(ns.name);\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXMemberExpression:\n\t var expr = elementName;\n\t qualifiedName = getQualifiedElementName(expr.object) + '.' +\n\t getQualifiedElementName(expr.property);\n\t break;\n\t /* istanbul ignore next */\n\t default:\n\t break;\n\t }\n\t return qualifiedName;\n\t}\n\tvar JSXParser = (function (_super) {\n\t __extends(JSXParser, _super);\n\t function JSXParser(code, options, delegate) {\n\t return _super.call(this, code, options, delegate) || this;\n\t }\n\t JSXParser.prototype.parsePrimaryExpression = function () {\n\t return this.match('<') ? this.parseJSXRoot() : _super.prototype.parsePrimaryExpression.call(this);\n\t };\n\t JSXParser.prototype.startJSX = function () {\n\t // Unwind the scanner before the lookahead token.\n\t this.scanner.index = this.startMarker.index;\n\t this.scanner.lineNumber = this.startMarker.line;\n\t this.scanner.lineStart = this.startMarker.index - this.startMarker.column;\n\t };\n\t JSXParser.prototype.finishJSX = function () {\n\t // Prime the next lookahead.\n\t this.nextToken();\n\t };\n\t JSXParser.prototype.reenterJSX = function () {\n\t this.startJSX();\n\t this.expectJSX('}');\n\t // Pop the closing '}' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t };\n\t JSXParser.prototype.createJSXNode = function () {\n\t this.collectComments();\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.createJSXChildNode = function () {\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.scanXHTMLEntity = function (quote) {\n\t var result = '&';\n\t var valid = true;\n\t var terminated = false;\n\t var numeric = false;\n\t var hex = false;\n\t while (!this.scanner.eof() && valid && !terminated) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === quote) {\n\t break;\n\t }\n\t terminated = (ch === ';');\n\t result += ch;\n\t ++this.scanner.index;\n\t if (!terminated) {\n\t switch (result.length) {\n\t case 2:\n\t // e.g. '{'\n\t numeric = (ch === '#');\n\t break;\n\t case 3:\n\t if (numeric) {\n\t // e.g. 'A'\n\t hex = (ch === 'x');\n\t valid = hex || character_1.Character.isDecimalDigit(ch.charCodeAt(0));\n\t numeric = numeric && !hex;\n\t }\n\t break;\n\t default:\n\t valid = valid && !(numeric && !character_1.Character.isDecimalDigit(ch.charCodeAt(0)));\n\t valid = valid && !(hex && !character_1.Character.isHexDigit(ch.charCodeAt(0)));\n\t break;\n\t }\n\t }\n\t }\n\t if (valid && terminated && result.length > 2) {\n\t // e.g. 'A' becomes just '#x41'\n\t var str = result.substr(1, result.length - 2);\n\t if (numeric && str.length > 1) {\n\t result = String.fromCharCode(parseInt(str.substr(1), 10));\n\t }\n\t else if (hex && str.length > 2) {\n\t result = String.fromCharCode(parseInt('0' + str.substr(1), 16));\n\t }\n\t else if (!numeric && !hex && xhtml_entities_1.XHTMLEntities[str]) {\n\t result = xhtml_entities_1.XHTMLEntities[str];\n\t }\n\t }\n\t return result;\n\t };\n\t // Scan the next JSX token. This replaces Scanner#lex when in JSX mode.\n\t JSXParser.prototype.lexJSX = function () {\n\t var cp = this.scanner.source.charCodeAt(this.scanner.index);\n\t // < > / : = { }\n\t if (cp === 60 || cp === 62 || cp === 47 || cp === 58 || cp === 61 || cp === 123 || cp === 125) {\n\t var value = this.scanner.source[this.scanner.index++];\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index - 1,\n\t end: this.scanner.index\n\t };\n\t }\n\t // \" '\n\t if (cp === 34 || cp === 39) {\n\t var start = this.scanner.index;\n\t var quote = this.scanner.source[this.scanner.index++];\n\t var str = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index++];\n\t if (ch === quote) {\n\t break;\n\t }\n\t else if (ch === '&') {\n\t str += this.scanXHTMLEntity(quote);\n\t }\n\t else {\n\t str += ch;\n\t }\n\t }\n\t return {\n\t type: 8 /* StringLiteral */,\n\t value: str,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // ... or .\n\t if (cp === 46) {\n\t var n1 = this.scanner.source.charCodeAt(this.scanner.index + 1);\n\t var n2 = this.scanner.source.charCodeAt(this.scanner.index + 2);\n\t var value = (n1 === 46 && n2 === 46) ? '...' : '.';\n\t var start = this.scanner.index;\n\t this.scanner.index += value.length;\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // `\n\t if (cp === 96) {\n\t // Only placeholder, since it will be rescanned as a real assignment expression.\n\t return {\n\t type: 10 /* Template */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index,\n\t end: this.scanner.index\n\t };\n\t }\n\t // Identifer can not contain backslash (char code 92).\n\t if (character_1.Character.isIdentifierStart(cp) && (cp !== 92)) {\n\t var start = this.scanner.index;\n\t ++this.scanner.index;\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source.charCodeAt(this.scanner.index);\n\t if (character_1.Character.isIdentifierPart(ch) && (ch !== 92)) {\n\t ++this.scanner.index;\n\t }\n\t else if (ch === 45) {\n\t // Hyphen (char code 45) can be part of an identifier.\n\t ++this.scanner.index;\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t var id = this.scanner.source.slice(start, this.scanner.index);\n\t return {\n\t type: 100 /* Identifier */,\n\t value: id,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t return this.scanner.lex();\n\t };\n\t JSXParser.prototype.nextJSXToken = function () {\n\t this.collectComments();\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = this.lexJSX();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t if (this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.nextJSXText = function () {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var start = this.scanner.index;\n\t var text = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === '{' || ch === '<') {\n\t break;\n\t }\n\t ++this.scanner.index;\n\t text += ch;\n\t if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t ++this.scanner.lineNumber;\n\t if (ch === '\\r' && this.scanner.source[this.scanner.index] === '\\n') {\n\t ++this.scanner.index;\n\t }\n\t this.scanner.lineStart = this.scanner.index;\n\t }\n\t }\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = {\n\t type: 101 /* Text */,\n\t value: text,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t if ((text.length > 0) && this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.peekJSXToken = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.lexJSX();\n\t this.scanner.restoreState(state);\n\t return next;\n\t };\n\t // Expect the next JSX token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t JSXParser.prototype.expectJSX = function (value) {\n\t var token = this.nextJSXToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next JSX token matches the specified punctuator.\n\t JSXParser.prototype.matchJSX = function (value) {\n\t var next = this.peekJSXToken();\n\t return next.type === 7 /* Punctuator */ && next.value === value;\n\t };\n\t JSXParser.prototype.parseJSXIdentifier = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 100 /* Identifier */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new JSXNode.JSXIdentifier(token.value));\n\t };\n\t JSXParser.prototype.parseJSXElementName = function () {\n\t var node = this.createJSXNode();\n\t var elementName = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = elementName;\n\t this.expectJSX(':');\n\t var name_1 = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_1));\n\t }\n\t else if (this.matchJSX('.')) {\n\t while (this.matchJSX('.')) {\n\t var object = elementName;\n\t this.expectJSX('.');\n\t var property = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXMemberExpression(object, property));\n\t }\n\t }\n\t return elementName;\n\t };\n\t JSXParser.prototype.parseJSXAttributeName = function () {\n\t var node = this.createJSXNode();\n\t var attributeName;\n\t var identifier = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = identifier;\n\t this.expectJSX(':');\n\t var name_2 = this.parseJSXIdentifier();\n\t attributeName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_2));\n\t }\n\t else {\n\t attributeName = identifier;\n\t }\n\t return attributeName;\n\t };\n\t JSXParser.prototype.parseJSXStringLiteralAttribute = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 8 /* StringLiteral */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t JSXParser.prototype.parseJSXExpressionAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.finishJSX();\n\t if (this.match('}')) {\n\t this.tolerateError('JSX attributes must only be assigned a non-empty expression');\n\t }\n\t var expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXAttributeValue = function () {\n\t return this.matchJSX('{') ? this.parseJSXExpressionAttribute() :\n\t this.matchJSX('<') ? this.parseJSXElement() : this.parseJSXStringLiteralAttribute();\n\t };\n\t JSXParser.prototype.parseJSXNameValueAttribute = function () {\n\t var node = this.createJSXNode();\n\t var name = this.parseJSXAttributeName();\n\t var value = null;\n\t if (this.matchJSX('=')) {\n\t this.expectJSX('=');\n\t value = this.parseJSXAttributeValue();\n\t }\n\t return this.finalize(node, new JSXNode.JSXAttribute(name, value));\n\t };\n\t JSXParser.prototype.parseJSXSpreadAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.expectJSX('...');\n\t this.finishJSX();\n\t var argument = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXSpreadAttribute(argument));\n\t };\n\t JSXParser.prototype.parseJSXAttributes = function () {\n\t var attributes = [];\n\t while (!this.matchJSX('/') && !this.matchJSX('>')) {\n\t var attribute = this.matchJSX('{') ? this.parseJSXSpreadAttribute() :\n\t this.parseJSXNameValueAttribute();\n\t attributes.push(attribute);\n\t }\n\t return attributes;\n\t };\n\t JSXParser.prototype.parseJSXOpeningElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXBoundaryElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t if (this.matchJSX('/')) {\n\t this.expectJSX('/');\n\t var name_3 = this.parseJSXElementName();\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXClosingElement(name_3));\n\t }\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXEmptyExpression = function () {\n\t var node = this.createJSXChildNode();\n\t this.collectComments();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t return this.finalize(node, new JSXNode.JSXEmptyExpression());\n\t };\n\t JSXParser.prototype.parseJSXExpressionContainer = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t var expression;\n\t if (this.matchJSX('}')) {\n\t expression = this.parseJSXEmptyExpression();\n\t this.expectJSX('}');\n\t }\n\t else {\n\t this.finishJSX();\n\t expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t }\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXChildren = function () {\n\t var children = [];\n\t while (!this.scanner.eof()) {\n\t var node = this.createJSXChildNode();\n\t var token = this.nextJSXText();\n\t if (token.start < token.end) {\n\t var raw = this.getTokenRaw(token);\n\t var child = this.finalize(node, new JSXNode.JSXText(token.value, raw));\n\t children.push(child);\n\t }\n\t if (this.scanner.source[this.scanner.index] === '{') {\n\t var container = this.parseJSXExpressionContainer();\n\t children.push(container);\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return children;\n\t };\n\t JSXParser.prototype.parseComplexJSXElement = function (el) {\n\t var stack = [];\n\t while (!this.scanner.eof()) {\n\t el.children = el.children.concat(this.parseJSXChildren());\n\t var node = this.createJSXChildNode();\n\t var element = this.parseJSXBoundaryElement();\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXOpeningElement) {\n\t var opening = element;\n\t if (opening.selfClosing) {\n\t var child = this.finalize(node, new JSXNode.JSXElement(opening, [], null));\n\t el.children.push(child);\n\t }\n\t else {\n\t stack.push(el);\n\t el = { node: node, opening: opening, closing: null, children: [] };\n\t }\n\t }\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXClosingElement) {\n\t el.closing = element;\n\t var open_1 = getQualifiedElementName(el.opening.name);\n\t var close_1 = getQualifiedElementName(el.closing.name);\n\t if (open_1 !== close_1) {\n\t this.tolerateError('Expected corresponding JSX closing tag for %0', open_1);\n\t }\n\t if (stack.length > 0) {\n\t var child = this.finalize(el.node, new JSXNode.JSXElement(el.opening, el.children, el.closing));\n\t el = stack[stack.length - 1];\n\t el.children.push(child);\n\t stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t }\n\t return el;\n\t };\n\t JSXParser.prototype.parseJSXElement = function () {\n\t var node = this.createJSXNode();\n\t var opening = this.parseJSXOpeningElement();\n\t var children = [];\n\t var closing = null;\n\t if (!opening.selfClosing) {\n\t var el = this.parseComplexJSXElement({ node: node, opening: opening, closing: closing, children: children });\n\t children = el.children;\n\t closing = el.closing;\n\t }\n\t return this.finalize(node, new JSXNode.JSXElement(opening, children, closing));\n\t };\n\t JSXParser.prototype.parseJSXRoot = function () {\n\t // Pop the opening '<' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t this.startJSX();\n\t var element = this.parseJSXElement();\n\t this.finishJSX();\n\t return element;\n\t };\n\t JSXParser.prototype.isStartOfExpression = function () {\n\t return _super.prototype.isStartOfExpression.call(this) || this.match('<');\n\t };\n\t return JSXParser;\n\t}(parser_1.Parser));\n\texports.JSXParser = JSXParser;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// See also tools/generate-unicode-regex.js.\n\tvar Regex = {\n\t // Unicode v8.0.0 NonAsciiIdentifierStart:\n\t NonAsciiIdentifierStart: /[\\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-\\u08B4\\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\\u0AF9\\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-\\u0C5A\\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\\u0D5F-\\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-\\u13F5\\u13F8-\\u13FD\\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\\u19B0-\\u19C9\\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\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\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-\\uAB65\\uAB70-\\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]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/,\n\t // Unicode v8.0.0 NonAsciiIdentifierPart:\n\t NonAsciiIdentifierPart: /[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\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-\\u08B4\\u08E3-\\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\\u0AF9\\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-\\u0C5A\\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\\u0D5F-\\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\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\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-\\u19DA\\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\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\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\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\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-\\uAB65\\uAB70-\\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-\\uFE2F\\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]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/\n\t};\n\texports.Character = {\n\t /* tslint:disable:no-bitwise */\n\t fromCodePoint: function (cp) {\n\t return (cp < 0x10000) ? String.fromCharCode(cp) :\n\t String.fromCharCode(0xD800 + ((cp - 0x10000) >> 10)) +\n\t String.fromCharCode(0xDC00 + ((cp - 0x10000) & 1023));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-white-space\n\t isWhiteSpace: function (cp) {\n\t return (cp === 0x20) || (cp === 0x09) || (cp === 0x0B) || (cp === 0x0C) || (cp === 0xA0) ||\n\t (cp >= 0x1680 && [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(cp) >= 0);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-line-terminators\n\t isLineTerminator: function (cp) {\n\t return (cp === 0x0A) || (cp === 0x0D) || (cp === 0x2028) || (cp === 0x2029);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-names-and-keywords\n\t isIdentifierStart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierStart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t isIdentifierPart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp >= 0x30 && cp <= 0x39) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierPart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-literals-numeric-literals\n\t isDecimalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39); // 0..9\n\t },\n\t isHexDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39) ||\n\t (cp >= 0x41 && cp <= 0x46) ||\n\t (cp >= 0x61 && cp <= 0x66); // a..f\n\t },\n\t isOctalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x37); // 0..7\n\t }\n\t};\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\t/* tslint:disable:max-classes-per-file */\n\tvar JSXClosingElement = (function () {\n\t function JSXClosingElement(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXClosingElement;\n\t this.name = name;\n\t }\n\t return JSXClosingElement;\n\t}());\n\texports.JSXClosingElement = JSXClosingElement;\n\tvar JSXElement = (function () {\n\t function JSXElement(openingElement, children, closingElement) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXElement;\n\t this.openingElement = openingElement;\n\t this.children = children;\n\t this.closingElement = closingElement;\n\t }\n\t return JSXElement;\n\t}());\n\texports.JSXElement = JSXElement;\n\tvar JSXEmptyExpression = (function () {\n\t function JSXEmptyExpression() {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression;\n\t }\n\t return JSXEmptyExpression;\n\t}());\n\texports.JSXEmptyExpression = JSXEmptyExpression;\n\tvar JSXExpressionContainer = (function () {\n\t function JSXExpressionContainer(expression) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer;\n\t this.expression = expression;\n\t }\n\t return JSXExpressionContainer;\n\t}());\n\texports.JSXExpressionContainer = JSXExpressionContainer;\n\tvar JSXIdentifier = (function () {\n\t function JSXIdentifier(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier;\n\t this.name = name;\n\t }\n\t return JSXIdentifier;\n\t}());\n\texports.JSXIdentifier = JSXIdentifier;\n\tvar JSXMemberExpression = (function () {\n\t function JSXMemberExpression(object, property) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return JSXMemberExpression;\n\t}());\n\texports.JSXMemberExpression = JSXMemberExpression;\n\tvar JSXAttribute = (function () {\n\t function JSXAttribute(name, value) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXAttribute;\n\t this.name = name;\n\t this.value = value;\n\t }\n\t return JSXAttribute;\n\t}());\n\texports.JSXAttribute = JSXAttribute;\n\tvar JSXNamespacedName = (function () {\n\t function JSXNamespacedName(namespace, name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName;\n\t this.namespace = namespace;\n\t this.name = name;\n\t }\n\t return JSXNamespacedName;\n\t}());\n\texports.JSXNamespacedName = JSXNamespacedName;\n\tvar JSXOpeningElement = (function () {\n\t function JSXOpeningElement(name, selfClosing, attributes) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement;\n\t this.name = name;\n\t this.selfClosing = selfClosing;\n\t this.attributes = attributes;\n\t }\n\t return JSXOpeningElement;\n\t}());\n\texports.JSXOpeningElement = JSXOpeningElement;\n\tvar JSXSpreadAttribute = (function () {\n\t function JSXSpreadAttribute(argument) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute;\n\t this.argument = argument;\n\t }\n\t return JSXSpreadAttribute;\n\t}());\n\texports.JSXSpreadAttribute = JSXSpreadAttribute;\n\tvar JSXText = (function () {\n\t function JSXText(value, raw) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXText;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return JSXText;\n\t}());\n\texports.JSXText = JSXText;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.JSXSyntax = {\n\t JSXAttribute: 'JSXAttribute',\n\t JSXClosingElement: 'JSXClosingElement',\n\t JSXElement: 'JSXElement',\n\t JSXEmptyExpression: 'JSXEmptyExpression',\n\t JSXExpressionContainer: 'JSXExpressionContainer',\n\t JSXIdentifier: 'JSXIdentifier',\n\t JSXMemberExpression: 'JSXMemberExpression',\n\t JSXNamespacedName: 'JSXNamespacedName',\n\t JSXOpeningElement: 'JSXOpeningElement',\n\t JSXSpreadAttribute: 'JSXSpreadAttribute',\n\t JSXText: 'JSXText'\n\t};\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\t/* tslint:disable:max-classes-per-file */\n\tvar ArrayExpression = (function () {\n\t function ArrayExpression(elements) {\n\t this.type = syntax_1.Syntax.ArrayExpression;\n\t this.elements = elements;\n\t }\n\t return ArrayExpression;\n\t}());\n\texports.ArrayExpression = ArrayExpression;\n\tvar ArrayPattern = (function () {\n\t function ArrayPattern(elements) {\n\t this.type = syntax_1.Syntax.ArrayPattern;\n\t this.elements = elements;\n\t }\n\t return ArrayPattern;\n\t}());\n\texports.ArrayPattern = ArrayPattern;\n\tvar ArrowFunctionExpression = (function () {\n\t function ArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = false;\n\t }\n\t return ArrowFunctionExpression;\n\t}());\n\texports.ArrowFunctionExpression = ArrowFunctionExpression;\n\tvar AssignmentExpression = (function () {\n\t function AssignmentExpression(operator, left, right) {\n\t this.type = syntax_1.Syntax.AssignmentExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentExpression;\n\t}());\n\texports.AssignmentExpression = AssignmentExpression;\n\tvar AssignmentPattern = (function () {\n\t function AssignmentPattern(left, right) {\n\t this.type = syntax_1.Syntax.AssignmentPattern;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentPattern;\n\t}());\n\texports.AssignmentPattern = AssignmentPattern;\n\tvar AsyncArrowFunctionExpression = (function () {\n\t function AsyncArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = true;\n\t }\n\t return AsyncArrowFunctionExpression;\n\t}());\n\texports.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression;\n\tvar AsyncFunctionDeclaration = (function () {\n\t function AsyncFunctionDeclaration(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionDeclaration;\n\t}());\n\texports.AsyncFunctionDeclaration = AsyncFunctionDeclaration;\n\tvar AsyncFunctionExpression = (function () {\n\t function AsyncFunctionExpression(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionExpression;\n\t}());\n\texports.AsyncFunctionExpression = AsyncFunctionExpression;\n\tvar AwaitExpression = (function () {\n\t function AwaitExpression(argument) {\n\t this.type = syntax_1.Syntax.AwaitExpression;\n\t this.argument = argument;\n\t }\n\t return AwaitExpression;\n\t}());\n\texports.AwaitExpression = AwaitExpression;\n\tvar BinaryExpression = (function () {\n\t function BinaryExpression(operator, left, right) {\n\t var logical = (operator === '||' || operator === '&&');\n\t this.type = logical ? syntax_1.Syntax.LogicalExpression : syntax_1.Syntax.BinaryExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return BinaryExpression;\n\t}());\n\texports.BinaryExpression = BinaryExpression;\n\tvar BlockStatement = (function () {\n\t function BlockStatement(body) {\n\t this.type = syntax_1.Syntax.BlockStatement;\n\t this.body = body;\n\t }\n\t return BlockStatement;\n\t}());\n\texports.BlockStatement = BlockStatement;\n\tvar BreakStatement = (function () {\n\t function BreakStatement(label) {\n\t this.type = syntax_1.Syntax.BreakStatement;\n\t this.label = label;\n\t }\n\t return BreakStatement;\n\t}());\n\texports.BreakStatement = BreakStatement;\n\tvar CallExpression = (function () {\n\t function CallExpression(callee, args) {\n\t this.type = syntax_1.Syntax.CallExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return CallExpression;\n\t}());\n\texports.CallExpression = CallExpression;\n\tvar CatchClause = (function () {\n\t function CatchClause(param, body) {\n\t this.type = syntax_1.Syntax.CatchClause;\n\t this.param = param;\n\t this.body = body;\n\t }\n\t return CatchClause;\n\t}());\n\texports.CatchClause = CatchClause;\n\tvar ClassBody = (function () {\n\t function ClassBody(body) {\n\t this.type = syntax_1.Syntax.ClassBody;\n\t this.body = body;\n\t }\n\t return ClassBody;\n\t}());\n\texports.ClassBody = ClassBody;\n\tvar ClassDeclaration = (function () {\n\t function ClassDeclaration(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassDeclaration;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassDeclaration;\n\t}());\n\texports.ClassDeclaration = ClassDeclaration;\n\tvar ClassExpression = (function () {\n\t function ClassExpression(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassExpression;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassExpression;\n\t}());\n\texports.ClassExpression = ClassExpression;\n\tvar ComputedMemberExpression = (function () {\n\t function ComputedMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = true;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return ComputedMemberExpression;\n\t}());\n\texports.ComputedMemberExpression = ComputedMemberExpression;\n\tvar ConditionalExpression = (function () {\n\t function ConditionalExpression(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.ConditionalExpression;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return ConditionalExpression;\n\t}());\n\texports.ConditionalExpression = ConditionalExpression;\n\tvar ContinueStatement = (function () {\n\t function ContinueStatement(label) {\n\t this.type = syntax_1.Syntax.ContinueStatement;\n\t this.label = label;\n\t }\n\t return ContinueStatement;\n\t}());\n\texports.ContinueStatement = ContinueStatement;\n\tvar DebuggerStatement = (function () {\n\t function DebuggerStatement() {\n\t this.type = syntax_1.Syntax.DebuggerStatement;\n\t }\n\t return DebuggerStatement;\n\t}());\n\texports.DebuggerStatement = DebuggerStatement;\n\tvar Directive = (function () {\n\t function Directive(expression, directive) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t this.directive = directive;\n\t }\n\t return Directive;\n\t}());\n\texports.Directive = Directive;\n\tvar DoWhileStatement = (function () {\n\t function DoWhileStatement(body, test) {\n\t this.type = syntax_1.Syntax.DoWhileStatement;\n\t this.body = body;\n\t this.test = test;\n\t }\n\t return DoWhileStatement;\n\t}());\n\texports.DoWhileStatement = DoWhileStatement;\n\tvar EmptyStatement = (function () {\n\t function EmptyStatement() {\n\t this.type = syntax_1.Syntax.EmptyStatement;\n\t }\n\t return EmptyStatement;\n\t}());\n\texports.EmptyStatement = EmptyStatement;\n\tvar ExportAllDeclaration = (function () {\n\t function ExportAllDeclaration(source) {\n\t this.type = syntax_1.Syntax.ExportAllDeclaration;\n\t this.source = source;\n\t }\n\t return ExportAllDeclaration;\n\t}());\n\texports.ExportAllDeclaration = ExportAllDeclaration;\n\tvar ExportDefaultDeclaration = (function () {\n\t function ExportDefaultDeclaration(declaration) {\n\t this.type = syntax_1.Syntax.ExportDefaultDeclaration;\n\t this.declaration = declaration;\n\t }\n\t return ExportDefaultDeclaration;\n\t}());\n\texports.ExportDefaultDeclaration = ExportDefaultDeclaration;\n\tvar ExportNamedDeclaration = (function () {\n\t function ExportNamedDeclaration(declaration, specifiers, source) {\n\t this.type = syntax_1.Syntax.ExportNamedDeclaration;\n\t this.declaration = declaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ExportNamedDeclaration;\n\t}());\n\texports.ExportNamedDeclaration = ExportNamedDeclaration;\n\tvar ExportSpecifier = (function () {\n\t function ExportSpecifier(local, exported) {\n\t this.type = syntax_1.Syntax.ExportSpecifier;\n\t this.exported = exported;\n\t this.local = local;\n\t }\n\t return ExportSpecifier;\n\t}());\n\texports.ExportSpecifier = ExportSpecifier;\n\tvar ExpressionStatement = (function () {\n\t function ExpressionStatement(expression) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t }\n\t return ExpressionStatement;\n\t}());\n\texports.ExpressionStatement = ExpressionStatement;\n\tvar ForInStatement = (function () {\n\t function ForInStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForInStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t this.each = false;\n\t }\n\t return ForInStatement;\n\t}());\n\texports.ForInStatement = ForInStatement;\n\tvar ForOfStatement = (function () {\n\t function ForOfStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForOfStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t }\n\t return ForOfStatement;\n\t}());\n\texports.ForOfStatement = ForOfStatement;\n\tvar ForStatement = (function () {\n\t function ForStatement(init, test, update, body) {\n\t this.type = syntax_1.Syntax.ForStatement;\n\t this.init = init;\n\t this.test = test;\n\t this.update = update;\n\t this.body = body;\n\t }\n\t return ForStatement;\n\t}());\n\texports.ForStatement = ForStatement;\n\tvar FunctionDeclaration = (function () {\n\t function FunctionDeclaration(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionDeclaration;\n\t}());\n\texports.FunctionDeclaration = FunctionDeclaration;\n\tvar FunctionExpression = (function () {\n\t function FunctionExpression(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionExpression;\n\t}());\n\texports.FunctionExpression = FunctionExpression;\n\tvar Identifier = (function () {\n\t function Identifier(name) {\n\t this.type = syntax_1.Syntax.Identifier;\n\t this.name = name;\n\t }\n\t return Identifier;\n\t}());\n\texports.Identifier = Identifier;\n\tvar IfStatement = (function () {\n\t function IfStatement(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.IfStatement;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return IfStatement;\n\t}());\n\texports.IfStatement = IfStatement;\n\tvar ImportDeclaration = (function () {\n\t function ImportDeclaration(specifiers, source) {\n\t this.type = syntax_1.Syntax.ImportDeclaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ImportDeclaration;\n\t}());\n\texports.ImportDeclaration = ImportDeclaration;\n\tvar ImportDefaultSpecifier = (function () {\n\t function ImportDefaultSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportDefaultSpecifier;\n\t this.local = local;\n\t }\n\t return ImportDefaultSpecifier;\n\t}());\n\texports.ImportDefaultSpecifier = ImportDefaultSpecifier;\n\tvar ImportNamespaceSpecifier = (function () {\n\t function ImportNamespaceSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportNamespaceSpecifier;\n\t this.local = local;\n\t }\n\t return ImportNamespaceSpecifier;\n\t}());\n\texports.ImportNamespaceSpecifier = ImportNamespaceSpecifier;\n\tvar ImportSpecifier = (function () {\n\t function ImportSpecifier(local, imported) {\n\t this.type = syntax_1.Syntax.ImportSpecifier;\n\t this.local = local;\n\t this.imported = imported;\n\t }\n\t return ImportSpecifier;\n\t}());\n\texports.ImportSpecifier = ImportSpecifier;\n\tvar LabeledStatement = (function () {\n\t function LabeledStatement(label, body) {\n\t this.type = syntax_1.Syntax.LabeledStatement;\n\t this.label = label;\n\t this.body = body;\n\t }\n\t return LabeledStatement;\n\t}());\n\texports.LabeledStatement = LabeledStatement;\n\tvar Literal = (function () {\n\t function Literal(value, raw) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return Literal;\n\t}());\n\texports.Literal = Literal;\n\tvar MetaProperty = (function () {\n\t function MetaProperty(meta, property) {\n\t this.type = syntax_1.Syntax.MetaProperty;\n\t this.meta = meta;\n\t this.property = property;\n\t }\n\t return MetaProperty;\n\t}());\n\texports.MetaProperty = MetaProperty;\n\tvar MethodDefinition = (function () {\n\t function MethodDefinition(key, computed, value, kind, isStatic) {\n\t this.type = syntax_1.Syntax.MethodDefinition;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.static = isStatic;\n\t }\n\t return MethodDefinition;\n\t}());\n\texports.MethodDefinition = MethodDefinition;\n\tvar Module = (function () {\n\t function Module(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'module';\n\t }\n\t return Module;\n\t}());\n\texports.Module = Module;\n\tvar NewExpression = (function () {\n\t function NewExpression(callee, args) {\n\t this.type = syntax_1.Syntax.NewExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return NewExpression;\n\t}());\n\texports.NewExpression = NewExpression;\n\tvar ObjectExpression = (function () {\n\t function ObjectExpression(properties) {\n\t this.type = syntax_1.Syntax.ObjectExpression;\n\t this.properties = properties;\n\t }\n\t return ObjectExpression;\n\t}());\n\texports.ObjectExpression = ObjectExpression;\n\tvar ObjectPattern = (function () {\n\t function ObjectPattern(properties) {\n\t this.type = syntax_1.Syntax.ObjectPattern;\n\t this.properties = properties;\n\t }\n\t return ObjectPattern;\n\t}());\n\texports.ObjectPattern = ObjectPattern;\n\tvar Property = (function () {\n\t function Property(kind, key, computed, value, method, shorthand) {\n\t this.type = syntax_1.Syntax.Property;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.method = method;\n\t this.shorthand = shorthand;\n\t }\n\t return Property;\n\t}());\n\texports.Property = Property;\n\tvar RegexLiteral = (function () {\n\t function RegexLiteral(value, raw, pattern, flags) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t this.regex = { pattern: pattern, flags: flags };\n\t }\n\t return RegexLiteral;\n\t}());\n\texports.RegexLiteral = RegexLiteral;\n\tvar RestElement = (function () {\n\t function RestElement(argument) {\n\t this.type = syntax_1.Syntax.RestElement;\n\t this.argument = argument;\n\t }\n\t return RestElement;\n\t}());\n\texports.RestElement = RestElement;\n\tvar ReturnStatement = (function () {\n\t function ReturnStatement(argument) {\n\t this.type = syntax_1.Syntax.ReturnStatement;\n\t this.argument = argument;\n\t }\n\t return ReturnStatement;\n\t}());\n\texports.ReturnStatement = ReturnStatement;\n\tvar Script = (function () {\n\t function Script(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'script';\n\t }\n\t return Script;\n\t}());\n\texports.Script = Script;\n\tvar SequenceExpression = (function () {\n\t function SequenceExpression(expressions) {\n\t this.type = syntax_1.Syntax.SequenceExpression;\n\t this.expressions = expressions;\n\t }\n\t return SequenceExpression;\n\t}());\n\texports.SequenceExpression = SequenceExpression;\n\tvar SpreadElement = (function () {\n\t function SpreadElement(argument) {\n\t this.type = syntax_1.Syntax.SpreadElement;\n\t this.argument = argument;\n\t }\n\t return SpreadElement;\n\t}());\n\texports.SpreadElement = SpreadElement;\n\tvar StaticMemberExpression = (function () {\n\t function StaticMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = false;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return StaticMemberExpression;\n\t}());\n\texports.StaticMemberExpression = StaticMemberExpression;\n\tvar Super = (function () {\n\t function Super() {\n\t this.type = syntax_1.Syntax.Super;\n\t }\n\t return Super;\n\t}());\n\texports.Super = Super;\n\tvar SwitchCase = (function () {\n\t function SwitchCase(test, consequent) {\n\t this.type = syntax_1.Syntax.SwitchCase;\n\t this.test = test;\n\t this.consequent = consequent;\n\t }\n\t return SwitchCase;\n\t}());\n\texports.SwitchCase = SwitchCase;\n\tvar SwitchStatement = (function () {\n\t function SwitchStatement(discriminant, cases) {\n\t this.type = syntax_1.Syntax.SwitchStatement;\n\t this.discriminant = discriminant;\n\t this.cases = cases;\n\t }\n\t return SwitchStatement;\n\t}());\n\texports.SwitchStatement = SwitchStatement;\n\tvar TaggedTemplateExpression = (function () {\n\t function TaggedTemplateExpression(tag, quasi) {\n\t this.type = syntax_1.Syntax.TaggedTemplateExpression;\n\t this.tag = tag;\n\t this.quasi = quasi;\n\t }\n\t return TaggedTemplateExpression;\n\t}());\n\texports.TaggedTemplateExpression = TaggedTemplateExpression;\n\tvar TemplateElement = (function () {\n\t function TemplateElement(value, tail) {\n\t this.type = syntax_1.Syntax.TemplateElement;\n\t this.value = value;\n\t this.tail = tail;\n\t }\n\t return TemplateElement;\n\t}());\n\texports.TemplateElement = TemplateElement;\n\tvar TemplateLiteral = (function () {\n\t function TemplateLiteral(quasis, expressions) {\n\t this.type = syntax_1.Syntax.TemplateLiteral;\n\t this.quasis = quasis;\n\t this.expressions = expressions;\n\t }\n\t return TemplateLiteral;\n\t}());\n\texports.TemplateLiteral = TemplateLiteral;\n\tvar ThisExpression = (function () {\n\t function ThisExpression() {\n\t this.type = syntax_1.Syntax.ThisExpression;\n\t }\n\t return ThisExpression;\n\t}());\n\texports.ThisExpression = ThisExpression;\n\tvar ThrowStatement = (function () {\n\t function ThrowStatement(argument) {\n\t this.type = syntax_1.Syntax.ThrowStatement;\n\t this.argument = argument;\n\t }\n\t return ThrowStatement;\n\t}());\n\texports.ThrowStatement = ThrowStatement;\n\tvar TryStatement = (function () {\n\t function TryStatement(block, handler, finalizer) {\n\t this.type = syntax_1.Syntax.TryStatement;\n\t this.block = block;\n\t this.handler = handler;\n\t this.finalizer = finalizer;\n\t }\n\t return TryStatement;\n\t}());\n\texports.TryStatement = TryStatement;\n\tvar UnaryExpression = (function () {\n\t function UnaryExpression(operator, argument) {\n\t this.type = syntax_1.Syntax.UnaryExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = true;\n\t }\n\t return UnaryExpression;\n\t}());\n\texports.UnaryExpression = UnaryExpression;\n\tvar UpdateExpression = (function () {\n\t function UpdateExpression(operator, argument, prefix) {\n\t this.type = syntax_1.Syntax.UpdateExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = prefix;\n\t }\n\t return UpdateExpression;\n\t}());\n\texports.UpdateExpression = UpdateExpression;\n\tvar VariableDeclaration = (function () {\n\t function VariableDeclaration(declarations, kind) {\n\t this.type = syntax_1.Syntax.VariableDeclaration;\n\t this.declarations = declarations;\n\t this.kind = kind;\n\t }\n\t return VariableDeclaration;\n\t}());\n\texports.VariableDeclaration = VariableDeclaration;\n\tvar VariableDeclarator = (function () {\n\t function VariableDeclarator(id, init) {\n\t this.type = syntax_1.Syntax.VariableDeclarator;\n\t this.id = id;\n\t this.init = init;\n\t }\n\t return VariableDeclarator;\n\t}());\n\texports.VariableDeclarator = VariableDeclarator;\n\tvar WhileStatement = (function () {\n\t function WhileStatement(test, body) {\n\t this.type = syntax_1.Syntax.WhileStatement;\n\t this.test = test;\n\t this.body = body;\n\t }\n\t return WhileStatement;\n\t}());\n\texports.WhileStatement = WhileStatement;\n\tvar WithStatement = (function () {\n\t function WithStatement(object, body) {\n\t this.type = syntax_1.Syntax.WithStatement;\n\t this.object = object;\n\t this.body = body;\n\t }\n\t return WithStatement;\n\t}());\n\texports.WithStatement = WithStatement;\n\tvar YieldExpression = (function () {\n\t function YieldExpression(argument, delegate) {\n\t this.type = syntax_1.Syntax.YieldExpression;\n\t this.argument = argument;\n\t this.delegate = delegate;\n\t }\n\t return YieldExpression;\n\t}());\n\texports.YieldExpression = YieldExpression;\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar error_handler_1 = __webpack_require__(10);\n\tvar messages_1 = __webpack_require__(11);\n\tvar Node = __webpack_require__(7);\n\tvar scanner_1 = __webpack_require__(12);\n\tvar syntax_1 = __webpack_require__(2);\n\tvar token_1 = __webpack_require__(13);\n\tvar ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder';\n\tvar Parser = (function () {\n\t function Parser(code, options, delegate) {\n\t if (options === void 0) { options = {}; }\n\t this.config = {\n\t range: (typeof options.range === 'boolean') && options.range,\n\t loc: (typeof options.loc === 'boolean') && options.loc,\n\t source: null,\n\t tokens: (typeof options.tokens === 'boolean') && options.tokens,\n\t comment: (typeof options.comment === 'boolean') && options.comment,\n\t tolerant: (typeof options.tolerant === 'boolean') && options.tolerant\n\t };\n\t if (this.config.loc && options.source && options.source !== null) {\n\t this.config.source = String(options.source);\n\t }\n\t this.delegate = delegate;\n\t this.errorHandler = new error_handler_1.ErrorHandler();\n\t this.errorHandler.tolerant = this.config.tolerant;\n\t this.scanner = new scanner_1.Scanner(code, this.errorHandler);\n\t this.scanner.trackComment = this.config.comment;\n\t this.operatorPrecedence = {\n\t ')': 0,\n\t ';': 0,\n\t ',': 0,\n\t '=': 0,\n\t ']': 0,\n\t '||': 1,\n\t '&&': 2,\n\t '|': 3,\n\t '^': 4,\n\t '&': 5,\n\t '==': 6,\n\t '!=': 6,\n\t '===': 6,\n\t '!==': 6,\n\t '<': 7,\n\t '>': 7,\n\t '<=': 7,\n\t '>=': 7,\n\t '<<': 8,\n\t '>>': 8,\n\t '>>>': 8,\n\t '+': 9,\n\t '-': 9,\n\t '*': 11,\n\t '/': 11,\n\t '%': 11\n\t };\n\t this.lookahead = {\n\t type: 2 /* EOF */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: 0,\n\t start: 0,\n\t end: 0\n\t };\n\t this.hasLineTerminator = false;\n\t this.context = {\n\t isModule: false,\n\t await: false,\n\t allowIn: true,\n\t allowStrictDirective: true,\n\t allowYield: true,\n\t firstCoverInitializedNameError: null,\n\t isAssignmentTarget: false,\n\t isBindingElement: false,\n\t inFunctionBody: false,\n\t inIteration: false,\n\t inSwitch: false,\n\t labelSet: {},\n\t strict: false\n\t };\n\t this.tokens = [];\n\t this.startMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.lastMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.nextToken();\n\t this.lastMarker = {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t }\n\t Parser.prototype.throwError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t throw this.errorHandler.createError(index, line, column, msg);\n\t };\n\t Parser.prototype.tolerateError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.scanner.lineNumber;\n\t var column = this.lastMarker.column + 1;\n\t this.errorHandler.tolerateError(index, line, column, msg);\n\t };\n\t // Throw an exception because of the token.\n\t Parser.prototype.unexpectedTokenError = function (token, message) {\n\t var msg = message || messages_1.Messages.UnexpectedToken;\n\t var value;\n\t if (token) {\n\t if (!message) {\n\t msg = (token.type === 2 /* EOF */) ? messages_1.Messages.UnexpectedEOS :\n\t (token.type === 3 /* Identifier */) ? messages_1.Messages.UnexpectedIdentifier :\n\t (token.type === 6 /* NumericLiteral */) ? messages_1.Messages.UnexpectedNumber :\n\t (token.type === 8 /* StringLiteral */) ? messages_1.Messages.UnexpectedString :\n\t (token.type === 10 /* Template */) ? messages_1.Messages.UnexpectedTemplate :\n\t messages_1.Messages.UnexpectedToken;\n\t if (token.type === 4 /* Keyword */) {\n\t if (this.scanner.isFutureReservedWord(token.value)) {\n\t msg = messages_1.Messages.UnexpectedReserved;\n\t }\n\t else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) {\n\t msg = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t value = token.value;\n\t }\n\t else {\n\t value = 'ILLEGAL';\n\t }\n\t msg = msg.replace('%0', value);\n\t if (token && typeof token.lineNumber === 'number') {\n\t var index = token.start;\n\t var line = token.lineNumber;\n\t var lastMarkerLineStart = this.lastMarker.index - this.lastMarker.column;\n\t var column = token.start - lastMarkerLineStart + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t else {\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t };\n\t Parser.prototype.throwUnexpectedToken = function (token, message) {\n\t throw this.unexpectedTokenError(token, message);\n\t };\n\t Parser.prototype.tolerateUnexpectedToken = function (token, message) {\n\t this.errorHandler.tolerate(this.unexpectedTokenError(token, message));\n\t };\n\t Parser.prototype.collectComments = function () {\n\t if (!this.config.comment) {\n\t this.scanner.scanComments();\n\t }\n\t else {\n\t var comments = this.scanner.scanComments();\n\t if (comments.length > 0 && this.delegate) {\n\t for (var i = 0; i < comments.length; ++i) {\n\t var e = comments[i];\n\t var node = void 0;\n\t node = {\n\t type: e.multiLine ? 'BlockComment' : 'LineComment',\n\t value: this.scanner.source.slice(e.slice[0], e.slice[1])\n\t };\n\t if (this.config.range) {\n\t node.range = e.range;\n\t }\n\t if (this.config.loc) {\n\t node.loc = e.loc;\n\t }\n\t var metadata = {\n\t start: {\n\t line: e.loc.start.line,\n\t column: e.loc.start.column,\n\t offset: e.range[0]\n\t },\n\t end: {\n\t line: e.loc.end.line,\n\t column: e.loc.end.column,\n\t offset: e.range[1]\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t }\n\t }\n\t };\n\t // From internal representation to an external structure\n\t Parser.prototype.getTokenRaw = function (token) {\n\t return this.scanner.source.slice(token.start, token.end);\n\t };\n\t Parser.prototype.convertToken = function (token) {\n\t var t = {\n\t type: token_1.TokenName[token.type],\n\t value: this.getTokenRaw(token)\n\t };\n\t if (this.config.range) {\n\t t.range = [token.start, token.end];\n\t }\n\t if (this.config.loc) {\n\t t.loc = {\n\t start: {\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t },\n\t end: {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t }\n\t };\n\t }\n\t if (token.type === 9 /* RegularExpression */) {\n\t var pattern = token.pattern;\n\t var flags = token.flags;\n\t t.regex = { pattern: pattern, flags: flags };\n\t }\n\t return t;\n\t };\n\t Parser.prototype.nextToken = function () {\n\t var token = this.lookahead;\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t this.collectComments();\n\t if (this.scanner.index !== this.startMarker.index) {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t }\n\t var next = this.scanner.lex();\n\t this.hasLineTerminator = (token.lineNumber !== next.lineNumber);\n\t if (next && this.context.strict && next.type === 3 /* Identifier */) {\n\t if (this.scanner.isStrictModeReservedWord(next.value)) {\n\t next.type = 4 /* Keyword */;\n\t }\n\t }\n\t this.lookahead = next;\n\t if (this.config.tokens && next.type !== 2 /* EOF */) {\n\t this.tokens.push(this.convertToken(next));\n\t }\n\t return token;\n\t };\n\t Parser.prototype.nextRegexToken = function () {\n\t this.collectComments();\n\t var token = this.scanner.scanRegExp();\n\t if (this.config.tokens) {\n\t // Pop the previous token, '/' or '/='\n\t // This is added from the lookahead token.\n\t this.tokens.pop();\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t // Prime the next lookahead.\n\t this.lookahead = token;\n\t this.nextToken();\n\t return token;\n\t };\n\t Parser.prototype.createNode = function () {\n\t return {\n\t index: this.startMarker.index,\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t };\n\t };\n\t Parser.prototype.startNode = function (token, lastLineStart) {\n\t if (lastLineStart === void 0) { lastLineStart = 0; }\n\t var column = token.start - token.lineStart;\n\t var line = token.lineNumber;\n\t if (column < 0) {\n\t column += lastLineStart;\n\t line--;\n\t }\n\t return {\n\t index: token.start,\n\t line: line,\n\t column: column\n\t };\n\t };\n\t Parser.prototype.finalize = function (marker, node) {\n\t if (this.config.range) {\n\t node.range = [marker.index, this.lastMarker.index];\n\t }\n\t if (this.config.loc) {\n\t node.loc = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column\n\t }\n\t };\n\t if (this.config.source) {\n\t node.loc.source = this.config.source;\n\t }\n\t }\n\t if (this.delegate) {\n\t var metadata = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t offset: marker.index\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column,\n\t offset: this.lastMarker.index\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t return node;\n\t };\n\t // Expect the next token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expect = function (value) {\n\t var token = this.nextToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Quietly expect a comma when in tolerant mode, otherwise delegates to expect().\n\t Parser.prototype.expectCommaSeparator = function () {\n\t if (this.config.tolerant) {\n\t var token = this.lookahead;\n\t if (token.type === 7 /* Punctuator */ && token.value === ',') {\n\t this.nextToken();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === ';') {\n\t this.nextToken();\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t else {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken);\n\t }\n\t }\n\t else {\n\t this.expect(',');\n\t }\n\t };\n\t // Expect the next token to match the specified keyword.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expectKeyword = function (keyword) {\n\t var token = this.nextToken();\n\t if (token.type !== 4 /* Keyword */ || token.value !== keyword) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next token matches the specified punctuator.\n\t Parser.prototype.match = function (value) {\n\t return this.lookahead.type === 7 /* Punctuator */ && this.lookahead.value === value;\n\t };\n\t // Return true if the next token matches the specified keyword\n\t Parser.prototype.matchKeyword = function (keyword) {\n\t return this.lookahead.type === 4 /* Keyword */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token matches the specified contextual keyword\n\t // (where an identifier is sometimes a keyword depending on the context)\n\t Parser.prototype.matchContextualKeyword = function (keyword) {\n\t return this.lookahead.type === 3 /* Identifier */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token is an assignment operator\n\t Parser.prototype.matchAssign = function () {\n\t if (this.lookahead.type !== 7 /* Punctuator */) {\n\t return false;\n\t }\n\t var op = this.lookahead.value;\n\t return op === '=' ||\n\t op === '*=' ||\n\t op === '**=' ||\n\t op === '/=' ||\n\t op === '%=' ||\n\t op === '+=' ||\n\t op === '-=' ||\n\t op === '<<=' ||\n\t op === '>>=' ||\n\t op === '>>>=' ||\n\t op === '&=' ||\n\t op === '^=' ||\n\t op === '|=';\n\t };\n\t // Cover grammar support.\n\t //\n\t // When an assignment expression position starts with an left parenthesis, the determination of the type\n\t // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead)\n\t // or the first comma. This situation also defers the determination of all the expressions nested in the pair.\n\t //\n\t // There are three productions that can be parsed in a parentheses pair that needs to be determined\n\t // after the outermost pair is closed. They are:\n\t //\n\t // 1. AssignmentExpression\n\t // 2. BindingElements\n\t // 3. AssignmentTargets\n\t //\n\t // In order to avoid exponential backtracking, we use two flags to denote if the production can be\n\t // binding element or assignment target.\n\t //\n\t // The three productions have the relationship:\n\t //\n\t // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression\n\t //\n\t // with a single exception that CoverInitializedName when used directly in an Expression, generates\n\t // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the\n\t // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair.\n\t //\n\t // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not\n\t // effect the current flags. This means the production the parser parses is only used as an expression. Therefore\n\t // the CoverInitializedName check is conducted.\n\t //\n\t // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates\n\t // the flags outside of the parser. This means the production the parser parses is used as a part of a potential\n\t // pattern. The CoverInitializedName check is deferred.\n\t Parser.prototype.isolateCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t if (this.context.firstCoverInitializedNameError !== null) {\n\t this.throwUnexpectedToken(this.context.firstCoverInitializedNameError);\n\t }\n\t this.context.isBindingElement = previousIsBindingElement;\n\t this.context.isAssignmentTarget = previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.inheritCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement;\n\t this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.consumeSemicolon = function () {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else if (!this.hasLineTerminator) {\n\t if (this.lookahead.type !== 2 /* EOF */ && !this.match('}')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.lastMarker.index = this.startMarker.index;\n\t this.lastMarker.line = this.startMarker.line;\n\t this.lastMarker.column = this.startMarker.column;\n\t }\n\t };\n\t // https://tc39.github.io/ecma262/#sec-primary-expression\n\t Parser.prototype.parsePrimaryExpression = function () {\n\t var node = this.createNode();\n\t var expr;\n\t var token, raw;\n\t switch (this.lookahead.type) {\n\t case 3 /* Identifier */:\n\t if ((this.context.isModule || this.context.await) && this.lookahead.value === 'await') {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t expr = this.matchAsyncFunction() ? this.parseFunctionExpression() : this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t break;\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t if (this.context.strict && this.lookahead.octal) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 1 /* BooleanLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value === 'true', raw));\n\t break;\n\t case 5 /* NullLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(null, raw));\n\t break;\n\t case 10 /* Template */:\n\t expr = this.parseTemplateLiteral();\n\t break;\n\t case 7 /* Punctuator */:\n\t switch (this.lookahead.value) {\n\t case '(':\n\t this.context.isBindingElement = false;\n\t expr = this.inheritCoverGrammar(this.parseGroupExpression);\n\t break;\n\t case '[':\n\t expr = this.inheritCoverGrammar(this.parseArrayInitializer);\n\t break;\n\t case '{':\n\t expr = this.inheritCoverGrammar(this.parseObjectInitializer);\n\t break;\n\t case '/':\n\t case '/=':\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.scanner.index = this.startMarker.index;\n\t token = this.nextRegexToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.RegexLiteral(token.regex, raw, token.pattern, token.flags));\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t break;\n\t case 4 /* Keyword */:\n\t if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseIdentifierName();\n\t }\n\t else if (!this.context.strict && this.matchKeyword('let')) {\n\t expr = this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t }\n\t else {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t if (this.matchKeyword('function')) {\n\t expr = this.parseFunctionExpression();\n\t }\n\t else if (this.matchKeyword('this')) {\n\t this.nextToken();\n\t expr = this.finalize(node, new Node.ThisExpression());\n\t }\n\t else if (this.matchKeyword('class')) {\n\t expr = this.parseClassExpression();\n\t }\n\t else {\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-array-initializer\n\t Parser.prototype.parseSpreadElement = function () {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t return this.finalize(node, new Node.SpreadElement(arg));\n\t };\n\t Parser.prototype.parseArrayInitializer = function () {\n\t var node = this.createNode();\n\t var elements = [];\n\t this.expect('[');\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else if (this.match('...')) {\n\t var element = this.parseSpreadElement();\n\t if (!this.match(']')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.expect(',');\n\t }\n\t elements.push(element);\n\t }\n\t else {\n\t elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayExpression(elements));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-object-initializer\n\t Parser.prototype.parsePropertyMethod = function (params) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = params.simple;\n\t var body = this.isolateCoverGrammar(this.parseFunctionSourceElements);\n\t if (this.context.strict && params.firstRestricted) {\n\t this.tolerateUnexpectedToken(params.firstRestricted, params.message);\n\t }\n\t if (this.context.strict && params.stricted) {\n\t this.tolerateUnexpectedToken(params.stricted, params.message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t return body;\n\t };\n\t Parser.prototype.parsePropertyMethodFunction = function () {\n\t var isGenerator = false;\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t Parser.prototype.parsePropertyMethodAsyncFunction = function () {\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = false;\n\t this.context.await = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t return this.finalize(node, new Node.AsyncFunctionExpression(null, params.params, method));\n\t };\n\t Parser.prototype.parseObjectPropertyKey = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var key;\n\t switch (token.type) {\n\t case 8 /* StringLiteral */:\n\t case 6 /* NumericLiteral */:\n\t if (this.context.strict && token.octal) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t key = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 3 /* Identifier */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 4 /* Keyword */:\n\t key = this.finalize(node, new Node.Identifier(token.value));\n\t break;\n\t case 7 /* Punctuator */:\n\t if (token.value === '[') {\n\t key = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.expect(']');\n\t }\n\t else {\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t break;\n\t default:\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t return key;\n\t };\n\t Parser.prototype.isPropertyKey = function (key, value) {\n\t return (key.type === syntax_1.Syntax.Identifier && key.name === value) ||\n\t (key.type === syntax_1.Syntax.Literal && key.value === value);\n\t };\n\t Parser.prototype.parseObjectProperty = function (hasProto) {\n\t var node = this.createNode();\n\t var token = this.lookahead;\n\t var kind;\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var shorthand = false;\n\t var isAsync = false;\n\t if (token.type === 3 /* Identifier */) {\n\t var id = token.value;\n\t this.nextToken();\n\t computed = this.match('[');\n\t isAsync = !this.hasLineTerminator && (id === 'async') &&\n\t !this.match(':') && !this.match('(') && !this.match('*') && !this.match(',');\n\t key = isAsync ? this.parseObjectPropertyKey() : this.finalize(node, new Node.Identifier(id));\n\t }\n\t else if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t else {\n\t if (!key) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t kind = 'init';\n\t if (this.match(':') && !isAsync) {\n\t if (!computed && this.isPropertyKey(key, '__proto__')) {\n\t if (hasProto.value) {\n\t this.tolerateError(messages_1.Messages.DuplicateProtoProperty);\n\t }\n\t hasProto.value = true;\n\t }\n\t this.nextToken();\n\t value = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (this.match('(')) {\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t else if (token.type === 3 /* Identifier */) {\n\t var id = this.finalize(node, new Node.Identifier(token.value));\n\t if (this.match('=')) {\n\t this.context.firstCoverInitializedNameError = this.lookahead;\n\t this.nextToken();\n\t shorthand = true;\n\t var init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t value = this.finalize(node, new Node.AssignmentPattern(id, init));\n\t }\n\t else {\n\t shorthand = true;\n\t value = id;\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.Property(kind, key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectInitializer = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var properties = [];\n\t var hasProto = { value: false };\n\t while (!this.match('}')) {\n\t properties.push(this.parseObjectProperty(hasProto));\n\t if (!this.match('}')) {\n\t this.expectCommaSeparator();\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectExpression(properties));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-template-literals\n\t Parser.prototype.parseTemplateHead = function () {\n\t assert_1.assert(this.lookahead.head, 'Template literal must start with a template head');\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateElement = function () {\n\t if (this.lookahead.type !== 10 /* Template */) {\n\t this.throwUnexpectedToken();\n\t }\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateLiteral = function () {\n\t var node = this.createNode();\n\t var expressions = [];\n\t var quasis = [];\n\t var quasi = this.parseTemplateHead();\n\t quasis.push(quasi);\n\t while (!quasi.tail) {\n\t expressions.push(this.parseExpression());\n\t quasi = this.parseTemplateElement();\n\t quasis.push(quasi);\n\t }\n\t return this.finalize(node, new Node.TemplateLiteral(quasis, expressions));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-grouping-operator\n\t Parser.prototype.reinterpretExpressionAsPattern = function (expr) {\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t case syntax_1.Syntax.MemberExpression:\n\t case syntax_1.Syntax.RestElement:\n\t case syntax_1.Syntax.AssignmentPattern:\n\t break;\n\t case syntax_1.Syntax.SpreadElement:\n\t expr.type = syntax_1.Syntax.RestElement;\n\t this.reinterpretExpressionAsPattern(expr.argument);\n\t break;\n\t case syntax_1.Syntax.ArrayExpression:\n\t expr.type = syntax_1.Syntax.ArrayPattern;\n\t for (var i = 0; i < expr.elements.length; i++) {\n\t if (expr.elements[i] !== null) {\n\t this.reinterpretExpressionAsPattern(expr.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectExpression:\n\t expr.type = syntax_1.Syntax.ObjectPattern;\n\t for (var i = 0; i < expr.properties.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.properties[i].value);\n\t }\n\t break;\n\t case syntax_1.Syntax.AssignmentExpression:\n\t expr.type = syntax_1.Syntax.AssignmentPattern;\n\t delete expr.operator;\n\t this.reinterpretExpressionAsPattern(expr.left);\n\t break;\n\t default:\n\t // Allow other node type for tolerant parsing.\n\t break;\n\t }\n\t };\n\t Parser.prototype.parseGroupExpression = function () {\n\t var expr;\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.nextToken();\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [],\n\t async: false\n\t };\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var params = [];\n\t if (this.match('...')) {\n\t expr = this.parseRestElement(params);\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t else {\n\t var arrow = false;\n\t this.context.isBindingElement = true;\n\t expr = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t this.context.isAssignmentTarget = false;\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t if (this.match(')')) {\n\t this.nextToken();\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else if (this.match('...')) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t expressions.push(this.parseRestElement(params));\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t this.context.isBindingElement = false;\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else {\n\t expressions.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t if (arrow) {\n\t break;\n\t }\n\t }\n\t if (!arrow) {\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t }\n\t if (!arrow) {\n\t this.expect(')');\n\t if (this.match('=>')) {\n\t if (expr.type === syntax_1.Syntax.Identifier && expr.name === 'yield') {\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t if (!arrow) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (expr.type === syntax_1.Syntax.SequenceExpression) {\n\t for (var i = 0; i < expr.expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.expressions[i]);\n\t }\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t var parameters = (expr.type === syntax_1.Syntax.SequenceExpression ? expr.expressions : [expr]);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: parameters,\n\t async: false\n\t };\n\t }\n\t }\n\t this.context.isBindingElement = false;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-left-hand-side-expressions\n\t Parser.prototype.parseArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.isIdentifierName = function (token) {\n\t return token.type === 3 /* Identifier */ ||\n\t token.type === 4 /* Keyword */ ||\n\t token.type === 1 /* BooleanLiteral */ ||\n\t token.type === 5 /* NullLiteral */;\n\t };\n\t Parser.prototype.parseIdentifierName = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (!this.isIdentifierName(token)) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseNewExpression = function () {\n\t var node = this.createNode();\n\t var id = this.parseIdentifierName();\n\t assert_1.assert(id.name === 'new', 'New expression must start with `new`');\n\t var expr;\n\t if (this.match('.')) {\n\t this.nextToken();\n\t if (this.lookahead.type === 3 /* Identifier */ && this.context.inFunctionBody && this.lookahead.value === 'target') {\n\t var property = this.parseIdentifierName();\n\t expr = new Node.MetaProperty(id, property);\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t var callee = this.isolateCoverGrammar(this.parseLeftHandSideExpression);\n\t var args = this.match('(') ? this.parseArguments() : [];\n\t expr = new Node.NewExpression(callee, args);\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return this.finalize(node, expr);\n\t };\n\t Parser.prototype.parseAsyncArgument = function () {\n\t var arg = this.parseAssignmentExpression();\n\t this.context.firstCoverInitializedNameError = null;\n\t return arg;\n\t };\n\t Parser.prototype.parseAsyncArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAsyncArgument);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.parseLeftHandSideExpressionAllowCall = function () {\n\t var startToken = this.lookahead;\n\t var maybeAsync = this.matchContextualKeyword('async');\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var expr;\n\t if (this.matchKeyword('super') && this.context.inFunctionBody) {\n\t expr = this.createNode();\n\t this.nextToken();\n\t expr = this.finalize(expr, new Node.Super());\n\t if (!this.match('(') && !this.match('.') && !this.match('[')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t }\n\t while (true) {\n\t if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(this.startNode(startToken), new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.match('(')) {\n\t var asyncArrow = maybeAsync && (startToken.lineNumber === this.lookahead.lineNumber);\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = false;\n\t var args = asyncArrow ? this.parseAsyncArguments() : this.parseArguments();\n\t expr = this.finalize(this.startNode(startToken), new Node.CallExpression(expr, args));\n\t if (asyncArrow && this.match('=>')) {\n\t for (var i = 0; i < args.length; ++i) {\n\t this.reinterpretExpressionAsPattern(args[i]);\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: args,\n\t async: true\n\t };\n\t }\n\t }\n\t else if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(this.startNode(startToken), new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(this.startNode(startToken), new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t this.context.allowIn = previousAllowIn;\n\t return expr;\n\t };\n\t Parser.prototype.parseSuper = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('super');\n\t if (!this.match('[') && !this.match('.')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return this.finalize(node, new Node.Super());\n\t };\n\t Parser.prototype.parseLeftHandSideExpression = function () {\n\t assert_1.assert(this.context.allowIn, 'callee of new expression always allow in keyword.');\n\t var node = this.startNode(this.lookahead);\n\t var expr = (this.matchKeyword('super') && this.context.inFunctionBody) ? this.parseSuper() :\n\t this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t while (true) {\n\t if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(node, new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(node, new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(node, new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-update-expressions\n\t Parser.prototype.parseUpdateExpression = function () {\n\t var expr;\n\t var startToken = this.lookahead;\n\t if (this.match('++') || this.match('--')) {\n\t var node = this.startNode(startToken);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPrefix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t var prefix = true;\n\t expr = this.finalize(node, new Node.UpdateExpression(token.value, expr, prefix));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t if (!this.hasLineTerminator && this.lookahead.type === 7 /* Punctuator */) {\n\t if (this.match('++') || this.match('--')) {\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPostfix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var operator = this.nextToken().value;\n\t var prefix = false;\n\t expr = this.finalize(this.startNode(startToken), new Node.UpdateExpression(operator, expr, prefix));\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-unary-operators\n\t Parser.prototype.parseAwaitExpression = function () {\n\t var node = this.createNode();\n\t this.nextToken();\n\t var argument = this.parseUnaryExpression();\n\t return this.finalize(node, new Node.AwaitExpression(argument));\n\t };\n\t Parser.prototype.parseUnaryExpression = function () {\n\t var expr;\n\t if (this.match('+') || this.match('-') || this.match('~') || this.match('!') ||\n\t this.matchKeyword('delete') || this.matchKeyword('void') || this.matchKeyword('typeof')) {\n\t var node = this.startNode(this.lookahead);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t expr = this.finalize(node, new Node.UnaryExpression(token.value, expr));\n\t if (this.context.strict && expr.operator === 'delete' && expr.argument.type === syntax_1.Syntax.Identifier) {\n\t this.tolerateError(messages_1.Messages.StrictDelete);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else if (this.context.await && this.matchContextualKeyword('await')) {\n\t expr = this.parseAwaitExpression();\n\t }\n\t else {\n\t expr = this.parseUpdateExpression();\n\t }\n\t return expr;\n\t };\n\t Parser.prototype.parseExponentiationExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (expr.type !== syntax_1.Syntax.UnaryExpression && this.match('**')) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.BinaryExpression('**', left, right));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exp-operator\n\t // https://tc39.github.io/ecma262/#sec-multiplicative-operators\n\t // https://tc39.github.io/ecma262/#sec-additive-operators\n\t // https://tc39.github.io/ecma262/#sec-bitwise-shift-operators\n\t // https://tc39.github.io/ecma262/#sec-relational-operators\n\t // https://tc39.github.io/ecma262/#sec-equality-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-bitwise-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-logical-operators\n\t Parser.prototype.binaryPrecedence = function (token) {\n\t var op = token.value;\n\t var precedence;\n\t if (token.type === 7 /* Punctuator */) {\n\t precedence = this.operatorPrecedence[op] || 0;\n\t }\n\t else if (token.type === 4 /* Keyword */) {\n\t precedence = (op === 'instanceof' || (this.context.allowIn && op === 'in')) ? 7 : 0;\n\t }\n\t else {\n\t precedence = 0;\n\t }\n\t return precedence;\n\t };\n\t Parser.prototype.parseBinaryExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseExponentiationExpression);\n\t var token = this.lookahead;\n\t var prec = this.binaryPrecedence(token);\n\t if (prec > 0) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var markers = [startToken, this.lookahead];\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t var stack = [left, token.value, right];\n\t var precedences = [prec];\n\t while (true) {\n\t prec = this.binaryPrecedence(this.lookahead);\n\t if (prec <= 0) {\n\t break;\n\t }\n\t // Reduce: make a binary expression from the three topmost entries.\n\t while ((stack.length > 2) && (prec <= precedences[precedences.length - 1])) {\n\t right = stack.pop();\n\t var operator = stack.pop();\n\t precedences.pop();\n\t left = stack.pop();\n\t markers.pop();\n\t var node = this.startNode(markers[markers.length - 1]);\n\t stack.push(this.finalize(node, new Node.BinaryExpression(operator, left, right)));\n\t }\n\t // Shift.\n\t stack.push(this.nextToken().value);\n\t precedences.push(prec);\n\t markers.push(this.lookahead);\n\t stack.push(this.isolateCoverGrammar(this.parseExponentiationExpression));\n\t }\n\t // Final reduce to clean-up the stack.\n\t var i = stack.length - 1;\n\t expr = stack[i];\n\t var lastMarker = markers.pop();\n\t while (i > 1) {\n\t var marker = markers.pop();\n\t var lastLineStart = lastMarker && lastMarker.lineStart;\n\t var node = this.startNode(marker, lastLineStart);\n\t var operator = stack[i - 1];\n\t expr = this.finalize(node, new Node.BinaryExpression(operator, stack[i - 2], expr));\n\t i -= 2;\n\t lastMarker = marker;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-conditional-operator\n\t Parser.prototype.parseConditionalExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseBinaryExpression);\n\t if (this.match('?')) {\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var consequent = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t this.expect(':');\n\t var alternate = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.ConditionalExpression(expr, consequent, alternate));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-assignment-operators\n\t Parser.prototype.checkPatternParam = function (options, param) {\n\t switch (param.type) {\n\t case syntax_1.Syntax.Identifier:\n\t this.validateParam(options, param, param.name);\n\t break;\n\t case syntax_1.Syntax.RestElement:\n\t this.checkPatternParam(options, param.argument);\n\t break;\n\t case syntax_1.Syntax.AssignmentPattern:\n\t this.checkPatternParam(options, param.left);\n\t break;\n\t case syntax_1.Syntax.ArrayPattern:\n\t for (var i = 0; i < param.elements.length; i++) {\n\t if (param.elements[i] !== null) {\n\t this.checkPatternParam(options, param.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectPattern:\n\t for (var i = 0; i < param.properties.length; i++) {\n\t this.checkPatternParam(options, param.properties[i].value);\n\t }\n\t break;\n\t default:\n\t break;\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t };\n\t Parser.prototype.reinterpretAsCoverFormalsList = function (expr) {\n\t var params = [expr];\n\t var options;\n\t var asyncArrow = false;\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t break;\n\t case ArrowParameterPlaceHolder:\n\t params = expr.params;\n\t asyncArrow = expr.async;\n\t break;\n\t default:\n\t return null;\n\t }\n\t options = {\n\t simple: true,\n\t paramSet: {}\n\t };\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.AssignmentPattern) {\n\t if (param.right.type === syntax_1.Syntax.YieldExpression) {\n\t if (param.right.argument) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t param.right.type = syntax_1.Syntax.Identifier;\n\t param.right.name = 'yield';\n\t delete param.right.argument;\n\t delete param.right.delegate;\n\t }\n\t }\n\t else if (asyncArrow && param.type === syntax_1.Syntax.Identifier && param.name === 'await') {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.checkPatternParam(options, param);\n\t params[i] = param;\n\t }\n\t if (this.context.strict || !this.context.allowYield) {\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.YieldExpression) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t if (options.message === messages_1.Messages.StrictParamDupe) {\n\t var token = this.context.strict ? options.stricted : options.firstRestricted;\n\t this.throwUnexpectedToken(token, options.message);\n\t }\n\t return {\n\t simple: options.simple,\n\t params: params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.parseAssignmentExpression = function () {\n\t var expr;\n\t if (!this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseYieldExpression();\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var token = startToken;\n\t expr = this.parseConditionalExpression();\n\t if (token.type === 3 /* Identifier */ && (token.lineNumber === this.lookahead.lineNumber) && token.value === 'async') {\n\t if (this.lookahead.type === 3 /* Identifier */ || this.matchKeyword('yield')) {\n\t var arg = this.parsePrimaryExpression();\n\t this.reinterpretExpressionAsPattern(arg);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [arg],\n\t async: true\n\t };\n\t }\n\t }\n\t if (expr.type === ArrowParameterPlaceHolder || this.match('=>')) {\n\t // https://tc39.github.io/ecma262/#sec-arrow-function-definitions\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var isAsync = expr.async;\n\t var list = this.reinterpretAsCoverFormalsList(expr);\n\t if (list) {\n\t if (this.hasLineTerminator) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t this.context.firstCoverInitializedNameError = null;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = list.simple;\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = true;\n\t this.context.await = isAsync;\n\t var node = this.startNode(startToken);\n\t this.expect('=>');\n\t var body = void 0;\n\t if (this.match('{')) {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t body = this.parseFunctionSourceElements();\n\t this.context.allowIn = previousAllowIn;\n\t }\n\t else {\n\t body = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t var expression = body.type !== syntax_1.Syntax.BlockStatement;\n\t if (this.context.strict && list.firstRestricted) {\n\t this.throwUnexpectedToken(list.firstRestricted, list.message);\n\t }\n\t if (this.context.strict && list.stricted) {\n\t this.tolerateUnexpectedToken(list.stricted, list.message);\n\t }\n\t expr = isAsync ? this.finalize(node, new Node.AsyncArrowFunctionExpression(list.params, body, expression)) :\n\t this.finalize(node, new Node.ArrowFunctionExpression(list.params, body, expression));\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t }\n\t }\n\t else {\n\t if (this.matchAssign()) {\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier) {\n\t var id = expr;\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictLHSAssignment);\n\t }\n\t if (this.scanner.isStrictModeReservedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t }\n\t if (!this.match('=')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t token = this.nextToken();\n\t var operator = token.value;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.AssignmentExpression(operator, expr, right));\n\t this.context.firstCoverInitializedNameError = null;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comma-operator\n\t Parser.prototype.parseExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t expressions.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-block\n\t Parser.prototype.parseStatementListItem = function () {\n\t var statement;\n\t this.context.isAssignmentTarget = true;\n\t this.context.isBindingElement = true;\n\t if (this.lookahead.type === 4 /* Keyword */) {\n\t switch (this.lookahead.value) {\n\t case 'export':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t statement = this.parseExportDeclaration();\n\t break;\n\t case 'import':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t statement = this.parseImportDeclaration();\n\t break;\n\t case 'const':\n\t statement = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'class':\n\t statement = this.parseClassDeclaration();\n\t break;\n\t case 'let':\n\t statement = this.isLexicalDeclaration() ? this.parseLexicalDeclaration({ inFor: false }) : this.parseStatement();\n\t break;\n\t default:\n\t statement = this.parseStatement();\n\t break;\n\t }\n\t }\n\t else {\n\t statement = this.parseStatement();\n\t }\n\t return statement;\n\t };\n\t Parser.prototype.parseBlock = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var block = [];\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t block.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.BlockStatement(block));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-let-and-const-declarations\n\t Parser.prototype.parseLexicalBinding = function (kind, options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, kind);\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (kind === 'const') {\n\t if (!this.matchKeyword('in') && !this.matchContextualKeyword('of')) {\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else {\n\t this.throwError(messages_1.Messages.DeclarationMissingInitializer, 'const');\n\t }\n\t }\n\t }\n\t else if ((!options.inFor && id.type !== syntax_1.Syntax.Identifier) || this.match('=')) {\n\t this.expect('=');\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseBindingList = function (kind, options) {\n\t var list = [this.parseLexicalBinding(kind, options)];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseLexicalBinding(kind, options));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.isLexicalDeclaration = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t return (next.type === 3 /* Identifier */) ||\n\t (next.type === 7 /* Punctuator */ && next.value === '[') ||\n\t (next.type === 7 /* Punctuator */ && next.value === '{') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'let') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'yield');\n\t };\n\t Parser.prototype.parseLexicalDeclaration = function (options) {\n\t var node = this.createNode();\n\t var kind = this.nextToken().value;\n\t assert_1.assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const');\n\t var declarations = this.parseBindingList(kind, options);\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, kind));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-destructuring-binding-patterns\n\t Parser.prototype.parseBindingRestElement = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params, kind);\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseArrayPattern = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('[');\n\t var elements = [];\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else {\n\t if (this.match('...')) {\n\t elements.push(this.parseBindingRestElement(params, kind));\n\t break;\n\t }\n\t else {\n\t elements.push(this.parsePatternWithDefault(params, kind));\n\t }\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayPattern(elements));\n\t };\n\t Parser.prototype.parsePropertyPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var computed = false;\n\t var shorthand = false;\n\t var method = false;\n\t var key;\n\t var value;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t var keyToken = this.lookahead;\n\t key = this.parseVariableIdentifier();\n\t var init = this.finalize(node, new Node.Identifier(keyToken.value));\n\t if (this.match('=')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t this.nextToken();\n\t var expr = this.parseAssignmentExpression();\n\t value = this.finalize(this.startNode(keyToken), new Node.AssignmentPattern(init, expr));\n\t }\n\t else if (!this.match(':')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t value = init;\n\t }\n\t else {\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t return this.finalize(node, new Node.Property('init', key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var properties = [];\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t properties.push(this.parsePropertyPattern(params, kind));\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectPattern(properties));\n\t };\n\t Parser.prototype.parsePattern = function (params, kind) {\n\t var pattern;\n\t if (this.match('[')) {\n\t pattern = this.parseArrayPattern(params, kind);\n\t }\n\t else if (this.match('{')) {\n\t pattern = this.parseObjectPattern(params, kind);\n\t }\n\t else {\n\t if (this.matchKeyword('let') && (kind === 'const' || kind === 'let')) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.LetInLexicalBinding);\n\t }\n\t params.push(this.lookahead);\n\t pattern = this.parseVariableIdentifier(kind);\n\t }\n\t return pattern;\n\t };\n\t Parser.prototype.parsePatternWithDefault = function (params, kind) {\n\t var startToken = this.lookahead;\n\t var pattern = this.parsePattern(params, kind);\n\t if (this.match('=')) {\n\t this.nextToken();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowYield = previousAllowYield;\n\t pattern = this.finalize(this.startNode(startToken), new Node.AssignmentPattern(pattern, right));\n\t }\n\t return pattern;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-variable-statement\n\t Parser.prototype.parseVariableIdentifier = function (kind) {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (token.type === 4 /* Keyword */ && token.value === 'yield') {\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else if (!this.context.allowYield) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t else if (token.type !== 3 /* Identifier */) {\n\t if (this.context.strict && token.type === 4 /* Keyword */ && this.scanner.isStrictModeReservedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else {\n\t if (this.context.strict || token.value !== 'let' || kind !== 'var') {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t }\n\t else if ((this.context.isModule || this.context.await) && token.type === 3 /* Identifier */ && token.value === 'await') {\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseVariableDeclaration = function (options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, 'var');\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (id.type !== syntax_1.Syntax.Identifier && !options.inFor) {\n\t this.expect('=');\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseVariableDeclarationList = function (options) {\n\t var opt = { inFor: options.inFor };\n\t var list = [];\n\t list.push(this.parseVariableDeclaration(opt));\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseVariableDeclaration(opt));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.parseVariableStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('var');\n\t var declarations = this.parseVariableDeclarationList({ inFor: false });\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, 'var'));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-empty-statement\n\t Parser.prototype.parseEmptyStatement = function () {\n\t var node = this.createNode();\n\t this.expect(';');\n\t return this.finalize(node, new Node.EmptyStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-expression-statement\n\t Parser.prototype.parseExpressionStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ExpressionStatement(expr));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-if-statement\n\t Parser.prototype.parseIfClause = function () {\n\t if (this.context.strict && this.matchKeyword('function')) {\n\t this.tolerateError(messages_1.Messages.StrictFunction);\n\t }\n\t return this.parseStatement();\n\t };\n\t Parser.prototype.parseIfStatement = function () {\n\t var node = this.createNode();\n\t var consequent;\n\t var alternate = null;\n\t this.expectKeyword('if');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t consequent = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t consequent = this.parseIfClause();\n\t if (this.matchKeyword('else')) {\n\t this.nextToken();\n\t alternate = this.parseIfClause();\n\t }\n\t }\n\t return this.finalize(node, new Node.IfStatement(test, consequent, alternate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-do-while-statement\n\t Parser.prototype.parseDoWhileStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('do');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t var body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t }\n\t else {\n\t this.expect(')');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t }\n\t return this.finalize(node, new Node.DoWhileStatement(body, test));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-while-statement\n\t Parser.prototype.parseWhileStatement = function () {\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return this.finalize(node, new Node.WhileStatement(test, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-for-statement\n\t // https://tc39.github.io/ecma262/#sec-for-in-and-for-of-statements\n\t Parser.prototype.parseForStatement = function () {\n\t var init = null;\n\t var test = null;\n\t var update = null;\n\t var forIn = true;\n\t var left, right;\n\t var node = this.createNode();\n\t this.expectKeyword('for');\n\t this.expect('(');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t if (this.matchKeyword('var')) {\n\t init = this.createNode();\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseVariableDeclarationList({ inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && this.matchKeyword('in')) {\n\t var decl = declarations[0];\n\t if (decl.init && (decl.id.type === syntax_1.Syntax.ArrayPattern || decl.id.type === syntax_1.Syntax.ObjectPattern || this.context.strict)) {\n\t this.tolerateError(messages_1.Messages.ForInOfLoopInitializer, 'for-in');\n\t }\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.expect(';');\n\t }\n\t }\n\t else if (this.matchKeyword('const') || this.matchKeyword('let')) {\n\t init = this.createNode();\n\t var kind = this.nextToken().value;\n\t if (!this.context.strict && this.lookahead.value === 'in') {\n\t init = this.finalize(init, new Node.Identifier(kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseBindingList(kind, { inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && declarations[0].init === null && this.matchKeyword('in')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t }\n\t }\n\t }\n\t else {\n\t var initStartToken = this.lookahead;\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t init = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t if (this.matchKeyword('in')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForIn);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (this.matchContextualKeyword('of')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForLoop);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t if (this.match(',')) {\n\t var initSeq = [init];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t initSeq.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t init = this.finalize(this.startNode(initStartToken), new Node.SequenceExpression(initSeq));\n\t }\n\t this.expect(';');\n\t }\n\t }\n\t }\n\t if (typeof left === 'undefined') {\n\t if (!this.match(';')) {\n\t test = this.parseExpression();\n\t }\n\t this.expect(';');\n\t if (!this.match(')')) {\n\t update = this.parseExpression();\n\t }\n\t }\n\t var body;\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.isolateCoverGrammar(this.parseStatement);\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return (typeof left === 'undefined') ?\n\t this.finalize(node, new Node.ForStatement(init, test, update, body)) :\n\t forIn ? this.finalize(node, new Node.ForInStatement(left, right, body)) :\n\t this.finalize(node, new Node.ForOfStatement(left, right, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-continue-statement\n\t Parser.prototype.parseContinueStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('continue');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t label = id;\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration) {\n\t this.throwError(messages_1.Messages.IllegalContinue);\n\t }\n\t return this.finalize(node, new Node.ContinueStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-break-statement\n\t Parser.prototype.parseBreakStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('break');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t label = id;\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration && !this.context.inSwitch) {\n\t this.throwError(messages_1.Messages.IllegalBreak);\n\t }\n\t return this.finalize(node, new Node.BreakStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-return-statement\n\t Parser.prototype.parseReturnStatement = function () {\n\t if (!this.context.inFunctionBody) {\n\t this.tolerateError(messages_1.Messages.IllegalReturn);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('return');\n\t var hasArgument = (!this.match(';') && !this.match('}') &&\n\t !this.hasLineTerminator && this.lookahead.type !== 2 /* EOF */) ||\n\t this.lookahead.type === 8 /* StringLiteral */ ||\n\t this.lookahead.type === 10 /* Template */;\n\t var argument = hasArgument ? this.parseExpression() : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ReturnStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-with-statement\n\t Parser.prototype.parseWithStatement = function () {\n\t if (this.context.strict) {\n\t this.tolerateError(messages_1.Messages.StrictModeWith);\n\t }\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('with');\n\t this.expect('(');\n\t var object = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t body = this.parseStatement();\n\t }\n\t return this.finalize(node, new Node.WithStatement(object, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-switch-statement\n\t Parser.prototype.parseSwitchCase = function () {\n\t var node = this.createNode();\n\t var test;\n\t if (this.matchKeyword('default')) {\n\t this.nextToken();\n\t test = null;\n\t }\n\t else {\n\t this.expectKeyword('case');\n\t test = this.parseExpression();\n\t }\n\t this.expect(':');\n\t var consequent = [];\n\t while (true) {\n\t if (this.match('}') || this.matchKeyword('default') || this.matchKeyword('case')) {\n\t break;\n\t }\n\t consequent.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.SwitchCase(test, consequent));\n\t };\n\t Parser.prototype.parseSwitchStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('switch');\n\t this.expect('(');\n\t var discriminant = this.parseExpression();\n\t this.expect(')');\n\t var previousInSwitch = this.context.inSwitch;\n\t this.context.inSwitch = true;\n\t var cases = [];\n\t var defaultFound = false;\n\t this.expect('{');\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t var clause = this.parseSwitchCase();\n\t if (clause.test === null) {\n\t if (defaultFound) {\n\t this.throwError(messages_1.Messages.MultipleDefaultsInSwitch);\n\t }\n\t defaultFound = true;\n\t }\n\t cases.push(clause);\n\t }\n\t this.expect('}');\n\t this.context.inSwitch = previousInSwitch;\n\t return this.finalize(node, new Node.SwitchStatement(discriminant, cases));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-labelled-statements\n\t Parser.prototype.parseLabelledStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var statement;\n\t if ((expr.type === syntax_1.Syntax.Identifier) && this.match(':')) {\n\t this.nextToken();\n\t var id = expr;\n\t var key = '$' + id.name;\n\t if (Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.Redeclaration, 'Label', id.name);\n\t }\n\t this.context.labelSet[key] = true;\n\t var body = void 0;\n\t if (this.matchKeyword('class')) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t body = this.parseClassDeclaration();\n\t }\n\t else if (this.matchKeyword('function')) {\n\t var token = this.lookahead;\n\t var declaration = this.parseFunctionDeclaration();\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunction);\n\t }\n\t else if (declaration.generator) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.GeneratorInLegacyContext);\n\t }\n\t body = declaration;\n\t }\n\t else {\n\t body = this.parseStatement();\n\t }\n\t delete this.context.labelSet[key];\n\t statement = new Node.LabeledStatement(id, body);\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t statement = new Node.ExpressionStatement(expr);\n\t }\n\t return this.finalize(node, statement);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-throw-statement\n\t Parser.prototype.parseThrowStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('throw');\n\t if (this.hasLineTerminator) {\n\t this.throwError(messages_1.Messages.NewlineAfterThrow);\n\t }\n\t var argument = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ThrowStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-try-statement\n\t Parser.prototype.parseCatchClause = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('catch');\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t var params = [];\n\t var param = this.parsePattern(params);\n\t var paramMap = {};\n\t for (var i = 0; i < params.length; i++) {\n\t var key = '$' + params[i].value;\n\t if (Object.prototype.hasOwnProperty.call(paramMap, key)) {\n\t this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value);\n\t }\n\t paramMap[key] = true;\n\t }\n\t if (this.context.strict && param.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(param.name)) {\n\t this.tolerateError(messages_1.Messages.StrictCatchVariable);\n\t }\n\t }\n\t this.expect(')');\n\t var body = this.parseBlock();\n\t return this.finalize(node, new Node.CatchClause(param, body));\n\t };\n\t Parser.prototype.parseFinallyClause = function () {\n\t this.expectKeyword('finally');\n\t return this.parseBlock();\n\t };\n\t Parser.prototype.parseTryStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('try');\n\t var block = this.parseBlock();\n\t var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null;\n\t var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null;\n\t if (!handler && !finalizer) {\n\t this.throwError(messages_1.Messages.NoCatchOrFinally);\n\t }\n\t return this.finalize(node, new Node.TryStatement(block, handler, finalizer));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-debugger-statement\n\t Parser.prototype.parseDebuggerStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('debugger');\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.DebuggerStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations\n\t Parser.prototype.parseStatement = function () {\n\t var statement;\n\t switch (this.lookahead.type) {\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t case 10 /* Template */:\n\t case 9 /* RegularExpression */:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t case 7 /* Punctuator */:\n\t var value = this.lookahead.value;\n\t if (value === '{') {\n\t statement = this.parseBlock();\n\t }\n\t else if (value === '(') {\n\t statement = this.parseExpressionStatement();\n\t }\n\t else if (value === ';') {\n\t statement = this.parseEmptyStatement();\n\t }\n\t else {\n\t statement = this.parseExpressionStatement();\n\t }\n\t break;\n\t case 3 /* Identifier */:\n\t statement = this.matchAsyncFunction() ? this.parseFunctionDeclaration() : this.parseLabelledStatement();\n\t break;\n\t case 4 /* Keyword */:\n\t switch (this.lookahead.value) {\n\t case 'break':\n\t statement = this.parseBreakStatement();\n\t break;\n\t case 'continue':\n\t statement = this.parseContinueStatement();\n\t break;\n\t case 'debugger':\n\t statement = this.parseDebuggerStatement();\n\t break;\n\t case 'do':\n\t statement = this.parseDoWhileStatement();\n\t break;\n\t case 'for':\n\t statement = this.parseForStatement();\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'if':\n\t statement = this.parseIfStatement();\n\t break;\n\t case 'return':\n\t statement = this.parseReturnStatement();\n\t break;\n\t case 'switch':\n\t statement = this.parseSwitchStatement();\n\t break;\n\t case 'throw':\n\t statement = this.parseThrowStatement();\n\t break;\n\t case 'try':\n\t statement = this.parseTryStatement();\n\t break;\n\t case 'var':\n\t statement = this.parseVariableStatement();\n\t break;\n\t case 'while':\n\t statement = this.parseWhileStatement();\n\t break;\n\t case 'with':\n\t statement = this.parseWithStatement();\n\t break;\n\t default:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t }\n\t break;\n\t default:\n\t statement = this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return statement;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-function-definitions\n\t Parser.prototype.parseFunctionSourceElements = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var body = this.parseDirectivePrologues();\n\t var previousLabelSet = this.context.labelSet;\n\t var previousInIteration = this.context.inIteration;\n\t var previousInSwitch = this.context.inSwitch;\n\t var previousInFunctionBody = this.context.inFunctionBody;\n\t this.context.labelSet = {};\n\t this.context.inIteration = false;\n\t this.context.inSwitch = false;\n\t this.context.inFunctionBody = true;\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t body.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t this.context.labelSet = previousLabelSet;\n\t this.context.inIteration = previousInIteration;\n\t this.context.inSwitch = previousInSwitch;\n\t this.context.inFunctionBody = previousInFunctionBody;\n\t return this.finalize(node, new Node.BlockStatement(body));\n\t };\n\t Parser.prototype.validateParam = function (options, param, name) {\n\t var key = '$' + name;\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t else if (!options.firstRestricted) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictReservedWord;\n\t }\n\t else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t /* istanbul ignore next */\n\t if (typeof Object.defineProperty === 'function') {\n\t Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true });\n\t }\n\t else {\n\t options.paramSet[key] = true;\n\t }\n\t };\n\t Parser.prototype.parseRestElement = function (params) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params);\n\t if (this.match('=')) {\n\t this.throwError(messages_1.Messages.DefaultRestParameter);\n\t }\n\t if (!this.match(')')) {\n\t this.throwError(messages_1.Messages.ParameterAfterRestParameter);\n\t }\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseFormalParameter = function (options) {\n\t var params = [];\n\t var param = this.match('...') ? this.parseRestElement(params) : this.parsePatternWithDefault(params);\n\t for (var i = 0; i < params.length; i++) {\n\t this.validateParam(options, params[i], params[i].value);\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t options.params.push(param);\n\t };\n\t Parser.prototype.parseFormalParameters = function (firstRestricted) {\n\t var options;\n\t options = {\n\t simple: true,\n\t params: [],\n\t firstRestricted: firstRestricted\n\t };\n\t this.expect('(');\n\t if (!this.match(')')) {\n\t options.paramSet = {};\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t this.parseFormalParameter(options);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expect(',');\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return {\n\t simple: options.simple,\n\t params: options.params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.matchAsyncFunction = function () {\n\t var match = this.matchContextualKeyword('async');\n\t if (match) {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t match = (state.lineNumber === next.lineNumber) && (next.type === 4 /* Keyword */) && (next.value === 'function');\n\t }\n\t return match;\n\t };\n\t Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted = null;\n\t if (!identifierIsOptional || !this.match('(')) {\n\t var token = this.lookahead;\n\t id = this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionDeclaration(id, params, body)) :\n\t this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator));\n\t };\n\t Parser.prototype.parseFunctionExpression = function () {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted;\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t if (!this.match('(')) {\n\t var token = this.lookahead;\n\t id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionExpression(id, params, body)) :\n\t this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive\n\t Parser.prototype.parseDirective = function () {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var directive = (expr.type === syntax_1.Syntax.Literal) ? this.getTokenRaw(token).slice(1, -1) : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, directive ? new Node.Directive(expr, directive) : new Node.ExpressionStatement(expr));\n\t };\n\t Parser.prototype.parseDirectivePrologues = function () {\n\t var firstRestricted = null;\n\t var body = [];\n\t while (true) {\n\t var token = this.lookahead;\n\t if (token.type !== 8 /* StringLiteral */) {\n\t break;\n\t }\n\t var statement = this.parseDirective();\n\t body.push(statement);\n\t var directive = statement.directive;\n\t if (typeof directive !== 'string') {\n\t break;\n\t }\n\t if (directive === 'use strict') {\n\t this.context.strict = true;\n\t if (firstRestricted) {\n\t this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t if (!this.context.allowStrictDirective) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.IllegalLanguageModeDirective);\n\t }\n\t }\n\t else {\n\t if (!firstRestricted && token.octal) {\n\t firstRestricted = token;\n\t }\n\t }\n\t }\n\t return body;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-method-definitions\n\t Parser.prototype.qualifiedPropertyName = function (token) {\n\t switch (token.type) {\n\t case 3 /* Identifier */:\n\t case 8 /* StringLiteral */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 4 /* Keyword */:\n\t return true;\n\t case 7 /* Punctuator */:\n\t return token.value === '[';\n\t default:\n\t break;\n\t }\n\t return false;\n\t };\n\t Parser.prototype.parseGetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length > 0) {\n\t this.tolerateError(messages_1.Messages.BadGetterArity);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseSetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length !== 1) {\n\t this.tolerateError(messages_1.Messages.BadSetterArity);\n\t }\n\t else if (formalParameters.params[0] instanceof Node.RestElement) {\n\t this.tolerateError(messages_1.Messages.BadSetterRestParameter);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseGeneratorMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = true;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t this.context.allowYield = false;\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-generator-function-definitions\n\t Parser.prototype.isStartOfExpression = function () {\n\t var start = true;\n\t var value = this.lookahead.value;\n\t switch (this.lookahead.type) {\n\t case 7 /* Punctuator */:\n\t start = (value === '[') || (value === '(') || (value === '{') ||\n\t (value === '+') || (value === '-') ||\n\t (value === '!') || (value === '~') ||\n\t (value === '++') || (value === '--') ||\n\t (value === '/') || (value === '/='); // regular expression literal\n\t break;\n\t case 4 /* Keyword */:\n\t start = (value === 'class') || (value === 'delete') ||\n\t (value === 'function') || (value === 'let') || (value === 'new') ||\n\t (value === 'super') || (value === 'this') || (value === 'typeof') ||\n\t (value === 'void') || (value === 'yield');\n\t break;\n\t default:\n\t break;\n\t }\n\t return start;\n\t };\n\t Parser.prototype.parseYieldExpression = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('yield');\n\t var argument = null;\n\t var delegate = false;\n\t if (!this.hasLineTerminator) {\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = false;\n\t delegate = this.match('*');\n\t if (delegate) {\n\t this.nextToken();\n\t argument = this.parseAssignmentExpression();\n\t }\n\t else if (this.isStartOfExpression()) {\n\t argument = this.parseAssignmentExpression();\n\t }\n\t this.context.allowYield = previousAllowYield;\n\t }\n\t return this.finalize(node, new Node.YieldExpression(argument, delegate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-class-definitions\n\t Parser.prototype.parseClassElement = function (hasConstructor) {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var kind = '';\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var isStatic = false;\n\t var isAsync = false;\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t var id = key;\n\t if (id.name === 'static' && (this.qualifiedPropertyName(this.lookahead) || this.match('*'))) {\n\t token = this.lookahead;\n\t isStatic = true;\n\t computed = this.match('[');\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t key = this.parseObjectPropertyKey();\n\t }\n\t }\n\t if ((token.type === 3 /* Identifier */) && !this.hasLineTerminator && (token.value === 'async')) {\n\t var punctuator = this.lookahead.value;\n\t if (punctuator !== ':' && punctuator !== '(' && punctuator !== '*') {\n\t isAsync = true;\n\t token = this.lookahead;\n\t key = this.parseObjectPropertyKey();\n\t if (token.type === 3 /* Identifier */ && token.value === 'constructor') {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.ConstructorIsAsync);\n\t }\n\t }\n\t }\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */) {\n\t if (token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t if (!kind && key && this.match('(')) {\n\t kind = 'init';\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t if (!kind) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (kind === 'init') {\n\t kind = 'method';\n\t }\n\t if (!computed) {\n\t if (isStatic && this.isPropertyKey(key, 'prototype')) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.StaticPrototype);\n\t }\n\t if (!isStatic && this.isPropertyKey(key, 'constructor')) {\n\t if (kind !== 'method' || !method || (value && value.generator)) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.ConstructorSpecialMethod);\n\t }\n\t if (hasConstructor.value) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.DuplicateConstructor);\n\t }\n\t else {\n\t hasConstructor.value = true;\n\t }\n\t kind = 'constructor';\n\t }\n\t }\n\t return this.finalize(node, new Node.MethodDefinition(key, computed, value, kind, isStatic));\n\t };\n\t Parser.prototype.parseClassElementList = function () {\n\t var body = [];\n\t var hasConstructor = { value: false };\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t body.push(this.parseClassElement(hasConstructor));\n\t }\n\t }\n\t this.expect('}');\n\t return body;\n\t };\n\t Parser.prototype.parseClassBody = function () {\n\t var node = this.createNode();\n\t var elementList = this.parseClassElementList();\n\t return this.finalize(node, new Node.ClassBody(elementList));\n\t };\n\t Parser.prototype.parseClassDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (identifierIsOptional && (this.lookahead.type !== 3 /* Identifier */)) ? null : this.parseVariableIdentifier();\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassDeclaration(id, superClass, classBody));\n\t };\n\t Parser.prototype.parseClassExpression = function () {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (this.lookahead.type === 3 /* Identifier */) ? this.parseVariableIdentifier() : null;\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassExpression(id, superClass, classBody));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-scripts\n\t // https://tc39.github.io/ecma262/#sec-modules\n\t Parser.prototype.parseModule = function () {\n\t this.context.strict = true;\n\t this.context.isModule = true;\n\t this.scanner.isModule = true;\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Module(body));\n\t };\n\t Parser.prototype.parseScript = function () {\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Script(body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-imports\n\t Parser.prototype.parseModuleSpecifier = function () {\n\t var node = this.createNode();\n\t if (this.lookahead.type !== 8 /* StringLiteral */) {\n\t this.throwError(messages_1.Messages.InvalidModuleSpecifier);\n\t }\n\t var token = this.nextToken();\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t // import {} ...;\n\t Parser.prototype.parseImportSpecifier = function () {\n\t var node = this.createNode();\n\t var imported;\n\t var local;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t imported = this.parseVariableIdentifier();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t }\n\t else {\n\t imported = this.parseIdentifierName();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.ImportSpecifier(local, imported));\n\t };\n\t // {foo, bar as bas}\n\t Parser.prototype.parseNamedImports = function () {\n\t this.expect('{');\n\t var specifiers = [];\n\t while (!this.match('}')) {\n\t specifiers.push(this.parseImportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return specifiers;\n\t };\n\t // import ...;\n\t Parser.prototype.parseImportDefaultSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportDefaultSpecifier(local));\n\t };\n\t // import <* as foo> ...;\n\t Parser.prototype.parseImportNamespaceSpecifier = function () {\n\t var node = this.createNode();\n\t this.expect('*');\n\t if (!this.matchContextualKeyword('as')) {\n\t this.throwError(messages_1.Messages.NoAsAfterImportNamespace);\n\t }\n\t this.nextToken();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportNamespaceSpecifier(local));\n\t };\n\t Parser.prototype.parseImportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('import');\n\t var src;\n\t var specifiers = [];\n\t if (this.lookahead.type === 8 /* StringLiteral */) {\n\t // import 'foo';\n\t src = this.parseModuleSpecifier();\n\t }\n\t else {\n\t if (this.match('{')) {\n\t // import {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else if (this.match('*')) {\n\t // import * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.isIdentifierName(this.lookahead) && !this.matchKeyword('default')) {\n\t // import foo\n\t specifiers.push(this.parseImportDefaultSpecifier());\n\t if (this.match(',')) {\n\t this.nextToken();\n\t if (this.match('*')) {\n\t // import foo, * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.match('{')) {\n\t // import foo, {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t src = this.parseModuleSpecifier();\n\t }\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ImportDeclaration(specifiers, src));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exports\n\t Parser.prototype.parseExportSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t var exported = local;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t exported = this.parseIdentifierName();\n\t }\n\t return this.finalize(node, new Node.ExportSpecifier(local, exported));\n\t };\n\t Parser.prototype.parseExportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('export');\n\t var exportDeclaration;\n\t if (this.matchKeyword('default')) {\n\t // export default ...\n\t this.nextToken();\n\t if (this.matchKeyword('function')) {\n\t // export default function foo () {}\n\t // export default function () {}\n\t var declaration = this.parseFunctionDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchKeyword('class')) {\n\t // export default class foo {}\n\t var declaration = this.parseClassDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchContextualKeyword('async')) {\n\t // export default async function f () {}\n\t // export default async function () {}\n\t // export default async x => x\n\t var declaration = this.matchAsyncFunction() ? this.parseFunctionDeclaration(true) : this.parseAssignmentExpression();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else {\n\t if (this.matchContextualKeyword('from')) {\n\t this.throwError(messages_1.Messages.UnexpectedToken, this.lookahead.value);\n\t }\n\t // export default {};\n\t // export default [];\n\t // export default (1 + 2);\n\t var declaration = this.match('{') ? this.parseObjectInitializer() :\n\t this.match('[') ? this.parseArrayInitializer() : this.parseAssignmentExpression();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t }\n\t else if (this.match('*')) {\n\t // export * from 'foo';\n\t this.nextToken();\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t var src = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportAllDeclaration(src));\n\t }\n\t else if (this.lookahead.type === 4 /* Keyword */) {\n\t // export var f = 1;\n\t var declaration = void 0;\n\t switch (this.lookahead.value) {\n\t case 'let':\n\t case 'const':\n\t declaration = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'var':\n\t case 'class':\n\t case 'function':\n\t declaration = this.parseStatementListItem();\n\t break;\n\t default:\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else if (this.matchAsyncFunction()) {\n\t var declaration = this.parseFunctionDeclaration();\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else {\n\t var specifiers = [];\n\t var source = null;\n\t var isExportFromIdentifier = false;\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t isExportFromIdentifier = isExportFromIdentifier || this.matchKeyword('default');\n\t specifiers.push(this.parseExportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t if (this.matchContextualKeyword('from')) {\n\t // export {default} from 'foo';\n\t // export {foo} from 'foo';\n\t this.nextToken();\n\t source = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t }\n\t else if (isExportFromIdentifier) {\n\t // export {default}; // missing fromClause\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t else {\n\t // export {foo};\n\t this.consumeSemicolon();\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(null, specifiers, source));\n\t }\n\t return exportDeclaration;\n\t };\n\t return Parser;\n\t}());\n\texports.Parser = Parser;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t// Ensure the condition is true, otherwise throw an error.\n\t// This is only to have a better contract semantic, i.e. another safety net\n\t// to catch a logic error. The condition shall be fulfilled in normal case.\n\t// Do NOT use this to enforce a certain condition on any user input.\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tfunction assert(condition, message) {\n\t /* istanbul ignore if */\n\t if (!condition) {\n\t throw new Error('ASSERT: ' + message);\n\t }\n\t}\n\texports.assert = assert;\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t/* tslint:disable:max-classes-per-file */\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar ErrorHandler = (function () {\n\t function ErrorHandler() {\n\t this.errors = [];\n\t this.tolerant = false;\n\t }\n\t ErrorHandler.prototype.recordError = function (error) {\n\t this.errors.push(error);\n\t };\n\t ErrorHandler.prototype.tolerate = function (error) {\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t ErrorHandler.prototype.constructError = function (msg, column) {\n\t var error = new Error(msg);\n\t try {\n\t throw error;\n\t }\n\t catch (base) {\n\t /* istanbul ignore else */\n\t if (Object.create && Object.defineProperty) {\n\t error = Object.create(base);\n\t Object.defineProperty(error, 'column', { value: column });\n\t }\n\t }\n\t /* istanbul ignore next */\n\t return error;\n\t };\n\t ErrorHandler.prototype.createError = function (index, line, col, description) {\n\t var msg = 'Line ' + line + ': ' + description;\n\t var error = this.constructError(msg, col);\n\t error.index = index;\n\t error.lineNumber = line;\n\t error.description = description;\n\t return error;\n\t };\n\t ErrorHandler.prototype.throwError = function (index, line, col, description) {\n\t throw this.createError(index, line, col, description);\n\t };\n\t ErrorHandler.prototype.tolerateError = function (index, line, col, description) {\n\t var error = this.createError(index, line, col, description);\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t return ErrorHandler;\n\t}());\n\texports.ErrorHandler = ErrorHandler;\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// Error messages should be identical to V8.\n\texports.Messages = {\n\t BadGetterArity: 'Getter must not have any formal parameters',\n\t BadSetterArity: 'Setter must have exactly one formal parameter',\n\t BadSetterRestParameter: 'Setter function argument must not be a rest parameter',\n\t ConstructorIsAsync: 'Class constructor may not be an async method',\n\t ConstructorSpecialMethod: 'Class constructor may not be an accessor',\n\t DeclarationMissingInitializer: 'Missing initializer in %0 declaration',\n\t DefaultRestParameter: 'Unexpected token =',\n\t DuplicateBinding: 'Duplicate binding %0',\n\t DuplicateConstructor: 'A class may only have one constructor',\n\t DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals',\n\t ForInOfLoopInitializer: '%0 loop variable declaration may not have an initializer',\n\t GeneratorInLegacyContext: 'Generator declarations are not allowed in legacy contexts',\n\t IllegalBreak: 'Illegal break statement',\n\t IllegalContinue: 'Illegal continue statement',\n\t IllegalExportDeclaration: 'Unexpected token',\n\t IllegalImportDeclaration: 'Unexpected token',\n\t IllegalLanguageModeDirective: 'Illegal \\'use strict\\' directive in function with non-simple parameter list',\n\t IllegalReturn: 'Illegal return statement',\n\t InvalidEscapedReservedWord: 'Keyword must not contain escaped characters',\n\t InvalidHexEscapeSequence: 'Invalid hexadecimal escape sequence',\n\t InvalidLHSInAssignment: 'Invalid left-hand side in assignment',\n\t InvalidLHSInForIn: 'Invalid left-hand side in for-in',\n\t InvalidLHSInForLoop: 'Invalid left-hand side in for-loop',\n\t InvalidModuleSpecifier: 'Unexpected token',\n\t InvalidRegExp: 'Invalid regular expression',\n\t LetInLexicalBinding: 'let is disallowed as a lexically bound name',\n\t MissingFromClause: 'Unexpected token',\n\t MultipleDefaultsInSwitch: 'More than one default clause in switch statement',\n\t NewlineAfterThrow: 'Illegal newline after throw',\n\t NoAsAfterImportNamespace: 'Unexpected token',\n\t NoCatchOrFinally: 'Missing catch or finally after try',\n\t ParameterAfterRestParameter: 'Rest parameter must be last formal parameter',\n\t Redeclaration: '%0 \\'%1\\' has already been declared',\n\t StaticPrototype: 'Classes may not have static property named prototype',\n\t StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode',\n\t StrictDelete: 'Delete of an unqualified identifier in strict mode.',\n\t StrictFunction: 'In strict mode code, functions can only be declared at top level or inside a block',\n\t StrictFunctionName: 'Function name may not be eval or arguments in strict mode',\n\t StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode',\n\t StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictModeWith: 'Strict mode code may not include a with statement',\n\t StrictOctalLiteral: 'Octal literals are not allowed in strict mode.',\n\t StrictParamDupe: 'Strict mode function may not have duplicate parameter names',\n\t StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode',\n\t StrictReservedWord: 'Use of future reserved word in strict mode',\n\t StrictVarName: 'Variable name may not be eval or arguments in strict mode',\n\t TemplateOctalLiteral: 'Octal literals are not allowed in template strings.',\n\t UnexpectedEOS: 'Unexpected end of input',\n\t UnexpectedIdentifier: 'Unexpected identifier',\n\t UnexpectedNumber: 'Unexpected number',\n\t UnexpectedReserved: 'Unexpected reserved word',\n\t UnexpectedString: 'Unexpected string',\n\t UnexpectedTemplate: 'Unexpected quasi %0',\n\t UnexpectedToken: 'Unexpected token %0',\n\t UnexpectedTokenIllegal: 'Unexpected token ILLEGAL',\n\t UnknownLabel: 'Undefined label \\'%0\\'',\n\t UnterminatedRegExp: 'Invalid regular expression: missing /'\n\t};\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar character_1 = __webpack_require__(4);\n\tvar messages_1 = __webpack_require__(11);\n\tfunction hexValue(ch) {\n\t return '0123456789abcdef'.indexOf(ch.toLowerCase());\n\t}\n\tfunction octalValue(ch) {\n\t return '01234567'.indexOf(ch);\n\t}\n\tvar Scanner = (function () {\n\t function Scanner(code, handler) {\n\t this.source = code;\n\t this.errorHandler = handler;\n\t this.trackComment = false;\n\t this.isModule = false;\n\t this.length = code.length;\n\t this.index = 0;\n\t this.lineNumber = (code.length > 0) ? 1 : 0;\n\t this.lineStart = 0;\n\t this.curlyStack = [];\n\t }\n\t Scanner.prototype.saveState = function () {\n\t return {\n\t index: this.index,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart\n\t };\n\t };\n\t Scanner.prototype.restoreState = function (state) {\n\t this.index = state.index;\n\t this.lineNumber = state.lineNumber;\n\t this.lineStart = state.lineStart;\n\t };\n\t Scanner.prototype.eof = function () {\n\t return this.index >= this.length;\n\t };\n\t Scanner.prototype.throwUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t return this.errorHandler.throwError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t Scanner.prototype.tolerateUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comments\n\t Scanner.prototype.skipSingleLineComment = function (offset) {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - offset;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - offset\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t ++this.index;\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 1\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index - 1],\n\t range: [start, this.index - 1],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t if (ch === 13 && this.source.charCodeAt(this.index) === 10) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t return comments;\n\t }\n\t }\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t };\n\t Scanner.prototype.skipMultiLineComment = function () {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - 2;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 2\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (ch === 0x0D && this.source.charCodeAt(this.index + 1) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t ++this.index;\n\t this.lineStart = this.index;\n\t }\n\t else if (ch === 0x2A) {\n\t // Block comment ends with '*/'.\n\t if (this.source.charCodeAt(this.index + 1) === 0x2F) {\n\t this.index += 2;\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index - 2],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t }\n\t ++this.index;\n\t }\n\t else {\n\t ++this.index;\n\t }\n\t }\n\t // Ran off the end of the file - the whole thing is a comment\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t this.tolerateUnexpectedToken();\n\t return comments;\n\t };\n\t Scanner.prototype.scanComments = function () {\n\t var comments;\n\t if (this.trackComment) {\n\t comments = [];\n\t }\n\t var start = (this.index === 0);\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isWhiteSpace(ch)) {\n\t ++this.index;\n\t }\n\t else if (character_1.Character.isLineTerminator(ch)) {\n\t ++this.index;\n\t if (ch === 0x0D && this.source.charCodeAt(this.index) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t start = true;\n\t }\n\t else if (ch === 0x2F) {\n\t ch = this.source.charCodeAt(this.index + 1);\n\t if (ch === 0x2F) {\n\t this.index += 2;\n\t var comment = this.skipSingleLineComment(2);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t start = true;\n\t }\n\t else if (ch === 0x2A) {\n\t this.index += 2;\n\t var comment = this.skipMultiLineComment();\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (start && ch === 0x2D) {\n\t // U+003E is '>'\n\t if ((this.source.charCodeAt(this.index + 1) === 0x2D) && (this.source.charCodeAt(this.index + 2) === 0x3E)) {\n\t // '-->' is a single-line comment\n\t this.index += 3;\n\t var comment = this.skipSingleLineComment(3);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (ch === 0x3C && !this.isModule) {\n\t if (this.source.slice(this.index + 1, this.index + 4) === '!--') {\n\t this.index += 4; // `' is a single-line comment\n\t this.index += 3;\n\t var comment = this.skipSingleLineComment(3);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (ch === 0x3C && !this.isModule) {\n\t if (this.source.slice(this.index + 1, this.index + 4) === '!--') {\n\t this.index += 4; // `|$)/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n});\n\nblock.gfm.table = edit(block.gfm.table)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.gfm.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Inline-Level Grammar\n */\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\?@\\\\[\\\\]`^{|}~';\ninline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, \ninline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\ninline.escapedEmSt = /\\\\\\*|\\\\_/g;\n\ninline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n\ninline.emStrong.lDelim = edit(inline.emStrong.lDelim)\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', inline._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .replace('ref', block._label)\n .getRegex();\n\ninline.nolink = edit(inline.nolink)\n .replace('ref', block._label)\n .getRegex();\n\ninline.reflinkSearch = edit(inline.reflinkSearch, 'g')\n .replace('reflink', inline.reflink)\n .replace('nolink', inline.nolink)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n}\n\n/**\n * Block Lexer\n */\nclass Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ');\n\n this.blockTokens(src, this.tokens);\n\n let next;\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/^ +$/gm, '');\n }\n let token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src, tokens) {\n this.inlineQueue.push({ src, tokens });\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out escaped em & strong delimiters\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass Renderer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n code = code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '
'\n        + (escaped ? code : escape(code, true))\n        + '
\\n';\n }\n\n return '
'\n      + (escaped ? code : escape(code, true))\n      + '
\\n';\n }\n\n blockquote(quote) {\n return '
\\n' + quote + '
\\n';\n }\n\n html(html) {\n return html;\n }\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return ''\n + text\n + '\\n';\n }\n // ignore IDs\n return '' + text + '\\n';\n }\n\n hr() {\n return this.options.xhtml ? '
\\n' : '
\\n';\n }\n\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n }\n\n listitem(text) {\n return '
  • ' + text + '
  • \\n';\n }\n\n checkbox(checked) {\n return ' ';\n }\n\n paragraph(text) {\n return '

    ' + text + '

    \\n';\n }\n\n table(header, body) {\n if (body) body = '' + body + '';\n\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n }\n\n tablerow(content) {\n return '\\n' + content + '\\n';\n }\n\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '\\n';\n }\n\n // span level renderer\n strong(text) {\n return '' + text + '';\n }\n\n em(text) {\n return '' + text + '';\n }\n\n codespan(text) {\n return '' + text + '';\n }\n\n br() {\n return this.options.xhtml ? '
    ' : '
    ';\n }\n\n del(text) {\n return '' + text + '';\n }\n\n link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n let out = '';\n return out;\n }\n\n image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n let out = '\"'' : '>';\n return out;\n }\n\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n html(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n}\n\n/**\n * Slugger generates header id\n */\nclass Slugger {\n constructor() {\n this.seen = {};\n }\n\n serialize(value) {\n return value\n .toLowerCase()\n .trim()\n // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '')\n // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n }\n\n /**\n * Finds the next safe (unique) slug to use\n */\n getNextSafeSlug(originalSlug, isDryRun) {\n let slug = originalSlug;\n let occurenceAccumulator = 0;\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n return slug;\n }\n\n /**\n * Convert string to unique id\n * @param {object} options\n * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n */\n slug(value, options = {}) {\n const slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass Parser {\n constructor(options) {\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n out += this.renderer.heading(\n this.parseInline(token.tokens),\n token.depth,\n unescape(this.parseInline(token.tokens, this.textRenderer)),\n this.slugger);\n continue;\n }\n case 'code': {\n out += this.renderer.code(token.text,\n token.lang,\n token.escaped);\n continue;\n }\n case 'table': {\n header = '';\n\n // header\n cell = '';\n l2 = token.header.length;\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(\n this.parseInline(token.header[j].tokens),\n { header: true, align: token.align[j] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n body = '';\n l2 = token.rows.length;\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n\n cell = '';\n l3 = row.length;\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(\n this.parseInline(row[k].tokens),\n { header: false, align: token.align[k] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n\n body = '';\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n\n itemBody = '';\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n case 'text': {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '',\n i,\n token,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token.text);\n break;\n }\n case 'html': {\n out += renderer.html(token.text);\n break;\n }\n case 'link': {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n case 'image': {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n case 'strong': {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'em': {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'text': {\n out += renderer.text(token.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\n/**\n * Marked\n */\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n const highlight = opt.highlight;\n let tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n const done = function(err) {\n let out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!tokens.length) return done();\n\n let pending = 0;\n marked.walkTokens(tokens, function(token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(() => {\n highlight(token.text, token.lang, function(err, code) {\n if (err) {\n return done(err);\n }\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n const tokens = Lexer.lex(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parse(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\n\nmarked.defaults = defaults;\n\n/**\n * Use Extension\n */\n\nmarked.use = function(...args) {\n const opts = merge({}, ...args);\n const extensions = marked.defaults.extensions || { renderers: {}, childTokens: {} };\n let hasExtensions;\n\n args.forEach((pack) => {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if (ext.renderer) { // Renderer extensions\n const prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (ext.tokenizer) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = marked.defaults.renderer || new Renderer();\n for (const prop in pack.renderer) {\n const prevRenderer = renderer[prop];\n // Replace renderer with func to run extension, but fall back if false\n renderer[prop] = (...args) => {\n let ret = pack.renderer[prop].apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = marked.defaults.tokenizer || new Tokenizer();\n for (const prop in pack.tokenizer) {\n const prevTokenizer = tokenizer[prop];\n // Replace tokenizer with func to run extension, but fall back if false\n tokenizer[prop] = (...args) => {\n let ret = pack.tokenizer[prop].apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = marked.defaults.walkTokens;\n opts.walkTokens = function(token) {\n pack.walkTokens.call(this, token);\n if (walkTokens) {\n walkTokens.call(this, token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n};\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens, callback) {\n for (const token of tokens) {\n callback.call(marked, token);\n switch (token.type) {\n case 'table': {\n for (const cell of token.header) {\n marked.walkTokens(cell.tokens, callback);\n }\n for (const row of token.rows) {\n for (const cell of row) {\n marked.walkTokens(cell.tokens, callback);\n }\n }\n break;\n }\n case 'list': {\n marked.walkTokens(token.items, callback);\n break;\n }\n default: {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) { // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function(childTokens) {\n marked.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n }\n};\n\n/**\n * Parse Inline\n */\nmarked.parseInline = function(src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n const tokens = Lexer.lexInline(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n};\n\n/**\n * Expose\n */\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\nmarked.Tokenizer = Tokenizer;\nmarked.Slugger = Slugger;\nmarked.parse = marked;\n\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = Parser.parse;\nconst lexer = Lexer.lex;\n\nexport { Lexer, Parser, Renderer, Slugger, TextRenderer, Tokenizer, defaults, getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n","import { marked } from 'marked'\nimport { ChangelogTag } from '.'\nimport type { Change } from '../../services'\n\ntype Props = {\n\tchange: Change,\n\tactiveTags?: string[],\n\ttoggleTag?: (tag: string) => unknown,\n}\nexport function ChangelogEntry({ change, activeTags, toggleTag }: Props) {\n\treturn
    \n\t\t\n\t\t
    \n\t\t\t{change.tags.map(tag => toggleTag(tag) : undefined} active={activeTags?.includes(tag)} />)}\n\t\t
    \n\t\t
    \n\t
    \n}\n","import { Octicon } from '..'\nimport { hashString } from '../../Utils'\n\ntype TagProps = {\n\tlabel: string,\n\tactive?: boolean,\n\tonClick?: (e: MouseEvent) => unknown,\n}\nexport function ChangelogTag({ label, active, onClick }: TagProps) {\n\tconst color = label === 'breaking' ? 5 : hashString(label) % 360\n\treturn
    \n\t\t{label === 'breaking' && Octicon.alert}\n\t\t{label}\n\t
    \n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Btn, TextInput } from '..'\nimport { useLocale } from '../../contexts'\nimport type { Change } from '../../services'\nimport { ChangelogEntry } from './ChangelogEntry'\nimport { ChangelogTag } from './ChangelogTag'\n\ninterface Props {\n\tchanges: Change[] | undefined,\n\tdefaultOrder: 'asc' | 'desc',\n}\nexport function ChangelogList({ changes, defaultOrder }: Props) {\n\tconst { locale } = useLocale()\n\t\n\tconst [search, setSearch] = useState('')\n\tconst [tags, setTags] = useState([])\n\tconst toggleTag = (tag: string) => {\n\t\tif (!tags.includes(tag)) {\n\t\t\tsetTags([...tags, tag])\n\t\t} else {\n\t\t\tsetTags(tags.filter(t => t !== tag))\n\t\t}\n\t}\n\n\tconst filteredChangelogs = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\tif (query.length === 0 && tags.length === 0) return changes\n\t\treturn changes?.filter(change => {\n\t\t\tif (!tags.every(tag => change.tags.includes(tag))) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst content = change.tags.join(' ') + ' ' + change.content.toLowerCase()\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [changes, search, tags])\n\n\tconst [sort, setSort] = useState(defaultOrder === 'desc')\n\n\tconst sortedChangelogs = useMemo(() => {\n\t\treturn filteredChangelogs?.sort((a, b) => sort ? b.order - a.order : a.order - b.order)\n\t}, [filteredChangelogs, sort])\n\n\treturn <>\n\t\t
    \n\t\t\t\n\t\t\t setSort(!sort)} />\n\t\t
    \n\t\t{tags.length > 0 &&
    \n\t\t\t{tags.map(tag => setTags(tags.filter(t => t !== tag))} />)}\n\t\t
    }\n\t\t
    \n\t\t\t{sortedChangelogs === undefined\n\t\t\t\t? {locale('loading')}\n\t\t\t\t: sortedChangelogs.length === 0\n\t\t\t\t\t? {locale('changelog.no_results')}\n\t\t\t\t\t:\tsortedChangelogs.map(change =>\n\t\t\t\t\t\t)}\n\t\t
    \n\t\n}\n","import { useEffect, useMemo, useState } from 'preact/hooks'\nimport { VersionMetaData } from '.'\nimport { useLocale } from '../../contexts'\nimport type { Change, VersionMeta } from '../../services'\nimport { getArticleLink, getChangelogs } from '../../services'\nimport { Giscus } from '../Giscus'\nimport { Octicon } from '../Octicon'\nimport { ChangelogList } from './ChangelogList'\n\ntype Tab = 'changelog' | 'discussion' \n\ninterface Props {\n\tid: string,\n\tversion?: VersionMeta,\n}\nexport function VersionDetail({ id, version }: Props) {\n\tconst { locale } = useLocale()\n\n\tconst [tab, setTab] = useState('changelog')\n\n\tconst [changelogs, setChangelogs] = useState(undefined)\n\tuseEffect(() => {\n\t\tgetChangelogs()\n\t\t\t.then(changelogs => setChangelogs(\n\t\t\t\tchangelogs.map(c => ({ ...c, tags: c.tags.filter(t => t !== c.group) }))\n\t\t\t))\n\t\t\t.catch(e => console.error(e))\n\t}, [])\n\n\tconst filteredChangelogs = useMemo(() =>\n\t\tchangelogs?.filter(c => c.version === id || c.group === id),\n\t[id, changelogs])\n\n\tconst articleLink = version && getArticleLink(version.id)\n\n\treturn <>\n\t\t
    \n\t\t\t

    {version?.name ?? id}

    \n\t\t\t
    \n\t\t\t\t{version ? <>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t : filteredChangelogs?.length ?? 0 > 1 ?

    \n\t\t\t\t\tThis version is not released yet.\n\t\t\t\t

    :

    \n\t\t\t\t\tThis version does not exist. Only versions since 1.14 are tracked, or it may be too recent.\n\t\t\t\t

    }\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t setTab('changelog')}>{locale('versions.technical_changes')}\n\t\t\t\t setTab('discussion')}>{locale('versions.discussion')}\n\t\t\t\t{articleLink && \n\t\t\t\t\t{locale('versions.article')}\n\t\t\t\t\t{Octicon.link_external}\n\t\t\t\t}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{tab === 'changelog' && }\n\t\t\t\t{tab === 'discussion' && }\n\t\t\t
    \n\t\t
    \n\t\n}\n\nexport function releaseDate(version: VersionMeta) {\n\treturn new Date(version.release_time).toLocaleDateString(undefined, { day: 'numeric', month: 'short', year: 'numeric' })\n}\n","import { releaseDate, VersionMetaData } from '.'\nimport { useLocale } from '../../contexts'\nimport type { VersionMeta } from '../../services'\n\ninterface Props {\n\tversion: VersionMeta,\n\tlink?: string,\n}\nexport function VersionEntry({ version, link }: Props) {\n\tconst { locale } = useLocale()\n\n\treturn \n\t\t{version.id}\n\t\t\n\t\t\n\t\t\n\t\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Checkbox, TextInput } from '..'\nimport { useLocale } from '../../contexts'\nimport type { VersionMeta } from '../../services'\nimport { VersionEntry } from './VersionEntry'\n\ninterface Props {\n\tversions: VersionMeta[]\n\tlink?: (id: string) => string\n}\nexport function VersionList({ versions, link }: Props) {\n\tconst { locale } = useLocale()\n\t\n\tconst [snapshots, setSnapshots] = useState(true)\n\tconst [search, setSearch] = useState('')\n\n\tconst filteredVersions = useMemo(() => versions.filter(v => {\n\t\tif (v.type === 'snapshot' && !snapshots) return false\n\t\treturn v.id.includes(search)\n\t}), [versions, snapshots, search])\n\n\n\treturn <>\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t\t
    \n\t\t\t{filteredVersions.map(v => )}\n\t\t\t{filteredVersions.length === 0 && \n\t\t\t\t{locale('versions.no_results')}\n\t\t\t}\n\t\t
    \n\t\n}\n","import { Octicon } from '..'\n\ninterface Props {\n\tlabel: string,\n\tvalue: string | number,\n\tlink?: string,\n\tcompact?: boolean,\n\toptional?: boolean,\n}\nexport function VersionMetaData({ label, value, link, compact, optional }: Props) {\n\treturn
    \n\t\t{label}: \n\t\t\n\t\t{link && }\n\t
    \n}\n","import { ChangelogTag } from './versions'\n\ninterface Props {\n\ttitle: string,\n\tlink: string,\n\tversions: string[],\n\ttags: string[],\n\tactiveTags?: string[],\n\ttoggleTag?: (tag: string) => unknown,\n}\nexport function GuideCard({ title, link, versions, tags, activeTags, toggleTag }: Props) {\n\tconst onToggleTag = (tag: string) => (e: MouseEvent) => {\n\t\tif (toggleTag) toggleTag(tag)\n\t\te.preventDefault()\n\t\te.stopImmediatePropagation()\n\t}\n\n\treturn \n\t\t{versions.join(' • ')}\n\t\t

    {title}

    \n\t\t
    \n\t\t\t{tags.sort().map(tag => )}\n\t\t
    \n\t
    \n}\n","import { getCurrentUrl, Link, route } from 'preact-router'\nimport { Btn, BtnMenu, Icons, Octicon } from '.'\nimport config from '../../config.json'\nimport { useLocale, useTheme, useTitle, useVersion } from '../contexts'\nimport { checkVersion } from '../services'\nimport { cleanUrl, getGenerator } from '../Utils'\n\nconst Themes: Record = {\n\tsystem: 'device_desktop',\n\tdark: 'moon',\n\tlight: 'sun',\n}\n\nexport function Header() {\n\tconst { lang, locale, changeLocale: changeLanguage } = useLocale()\n\tconst { theme, changeTheme } = useTheme()\n\tconst { version } = useVersion()\n\tconst { title } = useTitle()\n\tconst gen = getGenerator(getCurrentUrl())\n\n\treturn
    \n\t\t
    \n\t\t\t{Icons.home}\n\t\t\t

    {title}

    \n\t\t\t{gen && \n\t\t\t\t{config.generators\n\t\t\t\t\t.filter(g => g.category === gen?.category && checkVersion(version, g.minVersion))\n\t\t\t\t\t.map(g =>\n\t\t\t\t\t\t route(cleanUrl(g.url))} />\n\t\t\t\t\t)}\n\t\t\t}\n\t\t
    \n\t\t\n\t
    \n}\n","export const Icons = {\n\thome: ,\n\treport: ,\n\tsounds: ,\n}\n","import type { Howl, HowlOptions } from 'howler'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, NumberInput, RangeInput, TextInput } from '..'\nimport { useLocale, useVersion } from '../../contexts'\nimport type { SoundEvents } from '../../services'\nimport { getSoundUrl } from '../../services'\n\nexport interface SoundConfig {\n\tid: string,\n\tsound: string,\n\tdelay: number,\n\tpitch: number,\n\tvolume: number,\n}\ntype SoundConfigProps = SoundConfig & {\n\thowler: (options: HowlOptions) => Howl,\n\tsounds: SoundEvents,\n\tonEdit: (changes: Partial) => unknown,\n\tonDelete: () => unknown,\n\tdelayedPlay?: number,\n}\nexport function SoundConfig({ howler, sounds, sound, delay, pitch, volume, onEdit, onDelete, delayedPlay }: SoundConfigProps) {\n\tconst { locale } = useLocale()\n\tconst { version } = useVersion()\n\tconst [loading, setLoading] = useState(true)\n\tconst [playing, setPlaying] = useState(false)\n\tconst [invalid, setInvalid] = useState(false)\n\tconst howls = useRef([])\n\tconst command = `playsound minecraft:${sound} master @s ~ ~ ~ ${volume} ${pitch}`\n\n\tuseEffect(() => {\n\t\tconst soundEvent = sounds[sound]\n\t\tsetInvalid((soundEvent?.sounds?.length ?? 0) === 0)\n\t\thowls.current.forEach(h => h.stop())\n\t\thowls.current = (soundEvent?.sounds ?? []).map(entry => {\n\t\t\tconst soundPath = typeof entry === 'string' ? entry : entry.name\n\t\t\tconst url = getSoundUrl(version, soundPath)\n\t\t\tconst howl = howler({\n\t\t\t\tsrc: [url],\n\t\t\t\tformat: ['ogg'],\n\t\t\t\tvolume,\n\t\t\t\trate: pitch,\n\t\t\t})\n\t\t\thowl.on('end', () => {\n\t\t\t\tsetPlaying(false)\n\t\t\t})\n\t\t\tconst completed = () => {\n\t\t\t\tif (loading && howls.current.every(h => h.state() === 'loaded')) {\n\t\t\t\t\tsetLoading(false)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (howl.state() === 'loaded') {\n\t\t\t\tsetTimeout(() => completed())\n\t\t\t} else {\n\t\t\t\thowl.on('load', () => {\n\t\t\t\t\tcompleted()\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn howl\n\t\t})\n\t\tsetLoading(true)\n\t}, [sound, sounds])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.rate(pitch))\n\t}, [pitch])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.volume(volume))\n\t}, [volume])\n\n\tconst play = () => {\n\t\tif (loading || invalid) return\n\t\tstop()\n\t\tconst howl = Math.floor(Math.random() * howls.current.length)\n\t\thowls.current[howl].play()\n\t\tsetPlaying(true)\n\t}\n\tconst stop = () => {\n\t\thowls.current.forEach(h => h.stop())\n\t}\n\tuseEffect(() => {\n\t\tif (delayedPlay) setTimeout(() => play(), delay * 50)\n\t}, [delayedPlay])\n\n\tuseEffect(() => {\n\t\treturn () => stop()\n\t}, [])\n\n\tconst [copyActive, setCopyActive] = useState(false)\n\tconst copyTimeout = useRef(undefined)\n\tconst copy = () => {\n\t\tnavigator.clipboard.writeText(command)\n\t\tsetCopyActive(true)\n\t\tif (copyTimeout.current !== undefined) clearTimeout(copyTimeout.current)\n\t\tcopyTimeout.current = setTimeout(() => {\n\t\t\tsetCopyActive(false)\n\t\t}, 2000) as any\n\t}\n\n\treturn
    \n\t\t\n\t\t onEdit({ sound })} />\n\t\t\n\t\t onEdit({ delay })} />\n\t\t\n\t\t onEdit({ pitch })} />\n\t\t\n\t\t onEdit({ volume })} />\n\t\t\n\t\t {onDelete(); stop()}} />\n\t
    \n}\n","import type { ComponentChildren } from 'preact'\nimport { Icons } from './Icons'\n\ntype ToolCardProps = {\n\ttitle: string,\n\tdesc?: string,\n\tlink?: string,\n\ticon?: keyof typeof Icons,\n\tchildren?: ComponentChildren,\n}\nexport function ToolCard({ title, desc, link, icon, children }: ToolCardProps) {\n\tconst content = <>\n\t\t
    \n\t\t\t{icon && Icons[icon]}\n\t\t\t
    \n\t\t\t\t

    {title}

    \n\t\t\t\t

    {desc}

    \n\t\t\t
    \n\t\t
    \n\t\t{children &&
    \n\t\t\t{children}\n\t\t
    }\n\t\n\treturn link\n\t\t? {content}\n\t\t:
    {content}
    \n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Octicon } from '.'\n\nconst SEPARATOR = '/'\n\ninterface Props {\n\tentries: string[],\n\tonSelect: (entry: string) => unknown,\n\tindent?: number,\n}\nexport function TreeView({ entries, onSelect, indent }: Props) {\n\tconst roots = useMemo(() => {\n\t\tconst groups: Record = {}\n\t\tfor (const entry of entries) {\n\t\t\tconst i = entry.indexOf(SEPARATOR)\n\t\t\tif (i >= 0) {\n\t\t\t\tconst root = entry.slice(0, i)\n\t\t\t\t;(groups[root] ??= []).push(entry.slice(i + 1))\n\t\t\t}\n\t\t}\n\t\treturn Object.entries(groups)\n\t}, entries)\n\n\tconst leaves = useMemo(() => {\n\t\treturn entries.filter(e => !e.includes(SEPARATOR))\n\t}, entries)\n\n\tconst [hidden, setHidden] = useState(new Set())\n\tconst toggle = (root: string) => {\n\t\tif (hidden.has(root)) {\n\t\t\thidden.delete(root)\n\t\t} else {\n\t\t\thidden.add(root)\n\t\t}\n\t\tsetHidden(new Set(hidden))\n\t}\n\n\treturn
    \n\t\t{roots.map(([r, entries]) =>
    \n\t\t\t toggle(r)}/>\n\t\t\t{!hidden.has(r) &&\n\t\t\t\t onSelect(`${r}/${e}`)} indent={(indent ?? 0) + 1} />}\n\t\t
    )}\n\t\t{leaves.map(e => onSelect(e)} />)}\n\t
    \n}\n\ninterface TreeViewEntryProps {\n\ticon: keyof typeof Octicon,\n\tlabel: string,\n\tonClick?: () => unknown,\n}\nfunction TreeViewEntry({ icon, label, onClick }: TreeViewEntryProps) {\n\treturn
    \n\t\t{Octicon[icon]}\n\t\t{label}\n\t
    \n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tcategory: string,\n\tpath?: string,\n}\nexport function Category({ category }: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.generator_category', locale(category)))\n\treturn
    \n\t\t
    \n\t\t\t{config.generators.filter(g => g.category === category).map(g => \n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t
    \n}\n","import { Ad, ChangelogList, ErrorPanel } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { useAsync } from '../hooks'\nimport { getChangelogs } from '../services'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Changelog({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.changelog'))\n\n\tconst { value: changelogs, error } = useAsync(getChangelogs, [])\n\n\treturn
    \n\t\t\n\t\t{error && }\n\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport { useEffect, useErrorBoundary, useMemo, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Analytics } from '../Analytics'\nimport { Ad, Btn, BtnMenu, ErrorPanel, HasPreview, Octicon, PreviewPanel, SearchList, SourcePanel, TextInput, Tree } from '../components'\nimport { useLocale, useProject, useTitle, useVersion } from '../contexts'\nimport { AsyncCancel, useActiveTimeout, useAsync, useModel, useSearchParam } from '../hooks'\nimport { getOutput } from '../schema/transformOutput'\nimport type { VersionId } from '../services'\nimport { checkVersion, fetchPreset, getBlockStates, getCollections, getModel, getSnippet, shareSnippet } from '../services'\nimport { Store } from '../Store'\nimport { cleanUrl, deepEqual, getGenerator } from '../Utils'\n\nexport const SHARE_KEY = 'share'\n\ninterface Props {\n\tdefault?: true,\n}\nexport function Generator({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion, changeTargetVersion } = useVersion()\n\tconst { projects, project, file, updateFile, openFile, closeFile } = useProject()\n\tconst [error, setError] = useState(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\terrorBoundary.message = `Something went wrong rendering the generator: ${errorBoundary.message}`\n\t\treturn
    \n\t}\n\n\tconst gen = getGenerator(getCurrentUrl())\n\tif (!gen) {\n\t\treturn
    \n\t}\n\n\tconst allowedVersions = useMemo(() => {\n\t\treturn config.versions\n\t\t\t.filter(v => checkVersion(v.id, gen.minVersion, gen.maxVersion))\n\t\t\t.map(v => v.id as VersionId)\n\t\t\t.reverse()\n\t}, [gen.minVersion, gen.maxVersion])\n\n\tuseTitle(locale('title.generator', locale(gen.id)), allowedVersions)\n\n\tif (!checkVersion(version, gen.minVersion)) {\n\t\tsetError(`The minimum version for this generator is ${gen.minVersion}`)\n\t}\n\tif (!checkVersion(version, undefined, gen.maxVersion)) {\n\t\tsetError(`This generator is not available in versions above ${gen.maxVersion}`)\n\t}\n\n\tconst [currentPreset, setCurrentPreset] = useSearchParam('preset')\n\tconst [sharedSnippetId, setSharedSnippetId] = useSearchParam(SHARE_KEY)\n\tconst ignoreChange = useRef(false)\n\tconst backup = useMemo(() => Store.getBackup(gen.id), [gen.id])\n\n\tconst loadBackup = () => {\n\t\tif (backup !== undefined) {\n\t\t\tmodel?.reset(DataModel.wrapLists(backup), false)\n\t\t}\n\t}\n\n\tconst { value } = useAsync(async () => {\n\t\tlet data: unknown = undefined\n\t\tif (currentPreset && sharedSnippetId) {\n\t\t\tsetSharedSnippetId(undefined)\n\t\t\treturn AsyncCancel\n\t\t}\n\t\tif (currentPreset) {\n\t\t\tdata = await loadPreset(currentPreset)\n\t\t} else if (sharedSnippetId) {\n\t\t\tconst snippet = await getSnippet(sharedSnippetId)\n\t\t\tlet cancel = false\n\t\t\tif (snippet.version && snippet.version !== version) {\n\t\t\t\tchangeVersion(snippet.version, false)\n\t\t\t\tcancel = true\n\t\t\t}\n\t\t\tif (snippet.type && snippet.type !== gen.id) {\n\t\t\t\tconst snippetGen = config.generators.find(g => g.id === snippet.type)\n\t\t\t\tif (snippetGen) {\n\t\t\t\t\troute(`${cleanUrl(snippetGen.url)}?${SHARE_KEY}=${snippet.id}`)\n\t\t\t\t\tcancel = true\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cancel) {\n\t\t\t\treturn AsyncCancel\n\t\t\t}\n\t\t\tif (snippet.show_preview && !previewShown) {\n\t\t\t\tsetPreviewShown(true)\n\t\t\t\tsetSourceShown(false)\n\t\t\t}\n\t\t\tAnalytics.openSnippet(gen.id, sharedSnippetId, version)\n\t\t\tdata = snippet.data\n\t\t}\n\t\tconst [model, blockStates] = await Promise.all([\n\t\t\tgetModel(version, gen.id),\n\t\t\tgetBlockStates(version),\n\t\t])\n\t\tif (data) {\n\t\t\tignoreChange.current = true\n\t\t\tmodel.reset(DataModel.wrapLists(data), false)\n\t\t}\n\t\tAnalytics.setGenerator(gen.id)\n\t\treturn { model, blockStates }\n\t}, [gen.id, version, sharedSnippetId, currentPreset])\n\n\tconst model = value?.model\n\tconst blockStates = value?.blockStates\n\n\tconst [dirty, setDirty] = useState(false)\n\tuseModel(model, () => {\n\t\tif (!ignoreChange.current) {\n\t\t\tsetCurrentPreset(undefined, true)\n\t\t\tsetSharedSnippetId(undefined, true)\n\t\t}\n\t\tignoreChange.current = false\n\t\tStore.setBackup(gen.id, DataModel.unwrapLists(model?.data))\n\t\tsetError(null)\n\t\tsetDirty(true)\n\t}, [gen.id, setCurrentPreset, setSharedSnippetId])\n\n\tconst [fileRename, setFileRename] = useState('')\n\tconst [fileSaved, doSave] = useActiveTimeout()\n\tconst [fileError, doFileError] = useActiveTimeout()\n\n\tconst doFileRename = () => {\n\t\tif (fileRename !== file?.id && fileRename && model && blockStates) {\n\t\t\tconst data = getOutput(model, blockStates)\n\t\t\tconst success = updateFile(gen.id, file?.id, { id: fileRename, data })\n\t\t\tif (success) {\n\t\t\t\tdoSave()\n\t\t\t} else {\n\t\t\t\tdoFileError()\n\t\t\t\tif (file) {\n\t\t\t\t\tsetFileRename(file?.id)\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (file) {\n\t\t\tsetFileRename(file?.id)\n\t\t}\n\t}\n\n\tconst deleteFile = () => {\n\t\tif (file) {\n\t\t\tupdateFile(gen.id, file.id, {})\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (file) {\n\t\t\tsetFileRename(file.id)\n\t\t}\n\t}, [file])\n\n\tuseEffect(() => {\n\t\tif (model) {\n\t\t\tsetFileRename(file?.id ?? '')\n\t\t\tif (file && gen.id === file.type) {\n\t\t\t\tmodel.reset(DataModel.wrapLists(file.data))\n\t\t\t}\n\t\t\tsetDirty(false)\n\t\t}\n\t}, [file, model])\n\n\tconst reset = () => {\n\t\tAnalytics.resetGenerator(gen.id, model?.historyIndex ?? 1, 'menu')\n\t\tmodel?.reset(DataModel.wrapLists(model.schema.default()), true)\n\t}\n\tconst undo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.undoGenerator(gen.id, model?.historyIndex ?? 1, 'menu')\n\t\tmodel?.undo()\n\t}\n\tconst redo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.redoGenerator(gen.id, model?.historyIndex ?? 1, 'menu')\n\t\tmodel?.redo()\n\t}\n\n\tconst onKeyUp = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 'z') {\n\t\t\tAnalytics.undoGenerator(gen.id, model?.historyIndex ?? 1, 'hotkey')\n\t\t\tmodel?.undo()\n\t\t} else if (e.ctrlKey && e.key === 'y') {\n\t\t\tAnalytics.redoGenerator(gen.id, model?.historyIndex ?? 1, 'hotkey')\n\t\t\tmodel?.redo()\n\t\t}\n\t}\n\tconst onKeyDown = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 's') {\n\t\t\te.preventDefault()\n\t\t\tif (model && blockStates && file) {\n\t\t\t\tAnalytics.saveProjectFile(gen.id, project.files.length, projects.length, 'hotkey')\n\t\t\t\tconst data = getOutput(model, blockStates)\n\t\t\t\tupdateFile(gen.id, file?.id, { id: file?.id, data })\n\t\t\t\tsetDirty(false)\n\t\t\t\tdoSave()\n\t\t\t}\n\t\t}\n\t}\n\tuseEffect(() => {\n\t\tdocument.addEventListener('keyup', onKeyUp)\n\t\tdocument.addEventListener('keydown', onKeyDown)\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keyup', onKeyUp)\n\t\t\tdocument.removeEventListener('keydown', onKeyDown)\n\t\t}\n\t}, [model, blockStates, file])\n\n\tconst [presets, setPresets] = useState([])\n\tuseEffect(() => {\n\t\tgetCollections(version).then(collections => {\n\t\t\tsetPresets(collections.get(gen.id).map(p => p.slice(10)))\n\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [version, gen.id])\n\n\tconst selectPreset = (id: string) => {\n\t\tAnalytics.loadPreset(gen.id, id)\n\t\tsetSharedSnippetId(undefined, true)\n\t\tchangeTargetVersion(version, true)\n\t\tsetCurrentPreset(id)\n\t}\n\n\tconst loadPreset = async (id: string) => {\n\t\ttry {\n\t\t\tconst preset = await fetchPreset(version, gen.path ?? gen.id, id)\n\t\t\tconst seed = model?.get(new Path(['generator', 'seed']))\n\t\t\tif (preset?.generator?.seed !== undefined && seed !== undefined) {\n\t\t\t\tpreset.generator.seed = seed\n\t\t\t\tif (preset.generator.biome_source?.seed !== undefined) {\n\t\t\t\t\tpreset.generator.biome_source.seed = seed\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn preset\n\t\t} catch (e) {\n\t\t\tsetError(`Cannot load preset ${id} in ${version}`)\n\t\t\tsetCurrentPreset(undefined, true)\n\t\t}\n\t}\n\n\tconst selectVersion = (version: VersionId) => {\n\t\tsetSharedSnippetId(undefined, true)\n\t\tchangeVersion(version)\n\t}\n\n\tconst [shareUrl, setShareUrl] = useState(undefined)\n\tconst [shareShown, setShareShown] = useState(false)\n\tconst [shareCopyActive, shareCopySuccess] = useActiveTimeout({ cooldown: 3000 })\n\tconst share = () => {\n\t\tif (shareShown) {\n\t\t\tsetShareShown(false)\n\t\t\treturn\n\t\t}\n\t\tif (currentPreset) {\n\t\t\tsetShareUrl(`${location.origin}/${gen.url}/?version=${version}&preset=${currentPreset}`)\n\t\t\tsetShareShown(true)\n\t\t\tcopySharedId()\n\t\t} else if (model && blockStates) {\n\t\t\tconst output = getOutput(model, blockStates)\n\t\t\tif (deepEqual(output, model.schema.default())) {\n\t\t\t\tsetShareUrl(`${location.origin}/${gen.url}/?version=${version}`)\n\t\t\t\tsetShareShown(true)\n\t\t\t} else {\n\t\t\t\tshareSnippet(gen.id, version, output, previewShown)\n\t\t\t\t\t.then(({ id, length, compressed, rate }) => {\n\t\t\t\t\t\tAnalytics.createSnippet(gen.id, id, version, length, compressed, rate)\n\t\t\t\t\t\tconst url = `${location.origin}/${gen.url}/?${SHARE_KEY}=${id}`\n\t\t\t\t\t\tsetShareUrl(url)\n\t\t\t\t\t\tsetShareShown(true)\n\t\t\t\t\t})\n\t\t\t\t\t.catch(e => {\n\t\t\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\t\t\tsetError(e)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\tconst copySharedId = () => {\n\t\tnavigator.clipboard.writeText(shareUrl ?? '')\n\t\tshareCopySuccess()\n\t}\n\tuseEffect(() => {\n\t\tif (!shareCopyActive) {\n\t\t\tsetShareUrl(undefined)\n\t\t\tsetShareShown(false)\n\t\t}\n\t}, [shareCopyActive])\n\n\tconst [sourceShown, setSourceShown] = useState(window.innerWidth > 820)\n\tconst [doCopy, setCopy] = useState(0)\n\tconst [doDownload, setDownload] = useState(0)\n\tconst [doImport, setImport] = useState(0)\n\n\tconst copySource = () => {\n\t\tAnalytics.copyOutput(gen.id, 'menu')\n\t\tsetCopy(doCopy + 1)\n\t}\n\tconst downloadSource = () => {\n\t\tAnalytics.downloadOutput(gen.id, 'menu')\n\t\tsetDownload(doDownload + 1)\n\t}\n\tconst importSource = () => {\n\t\tAnalytics.generatorEvent('import')\n\t\tsetSourceShown(true)\n\t\tsetImport(doImport + 1)\n\t}\n\tconst toggleSource = () => {\n\t\tif (sourceShown) {\n\t\t\tAnalytics.hideOutput(gen.id, 'menu')\n\t\t} else {\n\t\t\tAnalytics.showOutput(gen.id, 'menu')\n\t\t}\n\t\tsetSourceShown(!sourceShown)\n\t\tsetCopy(0)\n\t\tsetDownload(0)\n\t\tsetImport(0)\n\t}\n\n\tconst [copyActive, copySuccess] = useActiveTimeout()\n\n\tconst [previewShown, setPreviewShown] = useState(false)\n\tconst hasPreview = HasPreview.includes(gen.id) && !(gen.id === 'worldgen/configured_feature' && checkVersion(version, '1.18'))\n\tif (previewShown && !hasPreview) setPreviewShown(false)\n\tlet actionsShown = 2\n\tif (hasPreview) actionsShown += 1\n\tif (sourceShown) actionsShown += 2\n\n\tconst togglePreview = () => {\n\t\tif (sourceShown) {\n\t\t\tAnalytics.hidePreview(gen.id, 'menu')\n\t\t} else {\n\t\t\tAnalytics.showPreview(gen.id, 'menu')\n\t\t}\n\t\tsetPreviewShown(!previewShown)\n\t\tif (!previewShown && sourceShown) {\n\t\t\tsetSourceShown(false)\n\t\t}\n\t}\n\n\treturn <>\n\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t route('/project')} />\n\t\t\t\t\t\t\t{file && }\n\t\t\t\t\t\t\t{backup !== undefined && }\n\t\t\t\t\t\t\t f.type === gen.id).map(f => f.id)} onSelect={(id) => openFile(gen.id, id)} />\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{file && }\n\t\t\t\t\t
    \n\t\t\t\t\t{dirty ?
    {Octicon.dot_fill}
    \n\t\t\t\t\t\t: fileSaved ?
    {Octicon.check}
    \n\t\t\t\t\t\t\t: fileError &&
    {Octicon.x}
    }\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{allowedVersions.map(v =>\n\t\t\t\t\t\t\t selectVersion(v)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t{error && setError(null)} />}\n\t\t\t\n\t\t
    \n\t\t
    \n\t\t\t
    \n\t\t\t\t{previewShown ? Octicon.x_circle : Octicon.play}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{Octicon.link}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{Octicon.download}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{copyActive ? Octicon.check : Octicon.clippy}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{sourceShown ? Octicon.chevron_right : Octicon.code}\n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t\n\t\t
    \n\t\t
    \n\t\t\t\n\t\t
    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t\n}\n","var deepFreezeEs6 = {exports: {}};\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n\n // Freeze prop if it is an object\n if (typeof prop == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\ndeepFreezeEs6.exports = deepFreeze;\ndeepFreezeEs6.exports.default = deepFreeze;\n\nvar deepFreeze$1 = deepFreezeEs6.exports;\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{kind?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '';\n\n/**\n * Determines if a node needs to be wrapped in \n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n return !!node.kind;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst expandScopeName = (name, { prefix }) => {\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n let scope = node.kind;\n if (node.sublanguage) {\n scope = `language-${scope}`;\n } else {\n scope = expandScopeName(scope, { prefix: this.classPrefix });\n }\n this.span(scope);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += ``;\n }\n}\n\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = { children: [] };\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} kind */\n openNode(kind) {\n /** @type Node */\n const node = { kind, children: [] };\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addKeyword(text, kind)\n - addText(text)\n - addSublanguage(emitter, subLanguageName)\n - finalize()\n - openNode(kind)\n - closeNode()\n - closeAllNodes()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n * @param {string} kind\n */\n addKeyword(text, kind) {\n if (text === \"\") { return; }\n\n this.openNode(kind);\n this.addText(text);\n this.closeNode();\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n node.kind = name;\n node.sublanguage = true;\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n scope: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n }]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record | Array} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type KeywordDict */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record */\n const emit = {};\n /** @type Record */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.5.1\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record} */\n const languages = Object.create(null);\n /** @type {Record} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitter.addKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substr(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitter.addKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitter.addKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substr(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitter.addKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substr(index));\n emitter.closeAllNodes();\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance: relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index: index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language: language });\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze$1(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n","/*\nLanguage: JSON\nDescription: JSON (JavaScript Object Notation) is a lightweight data-interchange format.\nAuthor: Ivan Sagalaev \nWebsite: http://www.json.org\nCategory: common, protocols, web\n*/\n\nfunction json(hljs) {\n const ATTRIBUTE = {\n className: 'attr',\n begin: /\"(\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n relevance: 1.01\n };\n const PUNCTUATION = {\n match: /[{}[\\],:]/,\n className: \"punctuation\",\n relevance: 0\n };\n // normally we would rely on `keywords` for this but using a mode here allows us\n // to use the very tight `illegal: \\S` rule later to flag any other character\n // as illegal indicating that despite looking like JSON we do not truly have\n // JSON and thus improve false-positively greatly since JSON will try and claim\n // all sorts of JSON looking stuff\n const LITERALS = { beginKeywords: [\n \"true\",\n \"false\",\n \"null\"\n ].join(\" \") };\n\n return {\n name: 'JSON',\n contains: [\n ATTRIBUTE,\n PUNCTUATION,\n hljs.QUOTE_STRING_MODE,\n LITERALS,\n hljs.C_NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ],\n illegal: '\\\\S'\n };\n}\n\nexport { json as default };\n","import hljs from 'highlight.js/lib/core'\nimport json from 'highlight.js/lib/languages/json'\nimport { marked } from 'marked'\nimport { route } from 'preact-router'\nimport { useCallback, useEffect, useMemo, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Ad, Btn, BtnMenu, ChangelogTag, Giscus, Octicon } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport { useActiveTimeout, useAsync, useHash } from '../hooks'\nimport type { VersionId } from '../services'\nimport { parseFrontMatter, versionContent } from '../Utils'\n\nconst HASH = ''\n\nhljs.registerLanguage('json', json)\n\nmarked.use({\n\thighlight: (code, lang) => {\n\t\tif (lang === '') return undefined\n\t\treturn hljs.highlight(code, { language: lang }).value\n\t},\n})\n\ninterface Props {\n\tpath?: string\n\tid?: string\n}\nexport function Guide({ id }: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst { changeTitle } = useTitle()\n\n\tconst { value: content, refresh } = useAsync(async () => {\n\t\tconst res = await fetch(`../../guides/${id}.md`)\n\t\treturn await res.text()\n\t}, [id])\n\n\tif ((import.meta as any).hot) {\n\t\t(import.meta as any).hot.on('guide-update', (updateId: string) => {\n\t\t\tif (id === updateId) refresh()\n\t\t})\n\t}\n\n\tconst frontMatter = useMemo(() => {\n\t\tif (!content) return undefined\n\t\tconst data = parseFrontMatter(content)\n\t\tchangeTitle(data?.title, data?.versions)\n\t\treturn data\n\t}, [content])\n\n\tconst allowedVersions = useMemo(() => {\n\t\tconst orderedVersions = config.versions.map(v => v.id)\n\t\treturn (frontMatter?.versions as string[])\n\t\t\t?.sort((a, b) => orderedVersions.indexOf(b) - orderedVersions.indexOf(a))\n\t}, [frontMatter?.versions])\n\n\tconst guideVersion = useMemo(() => {\n\t\tif (!allowedVersions) return version\n\t\tif (allowedVersions.includes(version)) return version\n\t\treturn allowedVersions[0]\n\t}, [version, frontMatter?.versions])\n\n\tconst html = useMemo(() => {\n\t\tif (!content) return undefined\n\t\tconst headings: marked.Tokens.Heading[] = []\n\t\tlet insertedToc = false\n\t\tmarked.use({\n\t\t\textensions: [\n\t\t\t\t{\n\t\t\t\t\tname: 'styledCode',\n\t\t\t\t\tlevel: 'inline',\n\t\t\t\t\tstart(src) {\n\t\t\t\t\t\treturn src.match(/\\b[fsnj]`/)?.index ?? -1\n\t\t\t\t\t},\n\t\t\t\t\ttokenizer(src) {\n\t\t\t\t\t\tconst match = src.match(/^([fsnj])`([^`]+)`/)\n\t\t\t\t\t\tif (match) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\ttype: 'styledCode',\n\t\t\t\t\t\t\t\traw: match[0],\n\t\t\t\t\t\t\t\tprefix: match[1],\n\t\t\t\t\t\t\t\ttext: match[2],\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t},\n\t\t\t\t\trenderer(token) {\n\t\t\t\t\t\tlet content = token.text\n\t\t\t\t\t\tlet c = {\n\t\t\t\t\t\t\tf: 'hljs-attr',\n\t\t\t\t\t\t\ts: 'hljs-string',\n\t\t\t\t\t\t\tn: 'hljs-number',\n\t\t\t\t\t\t}[token.prefix as string]\n\t\t\t\t\t\tif (token.prefix === 'j') {\n\t\t\t\t\t\t\tcontent = hljs.highlight('json', token.text).value\n\t\t\t\t\t\t\tc = 'language-json'\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn `${content}`\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\twalkTokens(token) {\n\t\t\t\tif (token.type === 'heading') {\n\t\t\t\t\theadings.push(token)\n\t\t\t\t}\n\t\t\t},\n\t\t\trenderer: {\n\t\t\t\tlink(href, title, text) {\n\t\t\t\t\tif (href === null) return text\n\t\t\t\t\tconst title2 = title ? ` title=\"${title}\"` : '' \n\t\t\t\t\tconst target = href?.match(/^https?:\\/\\//) ? ' target=\"_blank\"' : ''\n\t\t\t\t\treturn `${text}`\n\t\t\t\t},\n\t\t\t\theading(text, level, raw, slugger) {\n\t\t\t\t\tlet toc = ''\n\t\t\t\t\tif (!insertedToc) {\n\t\t\t\t\t\ttoc = `
      ${headings.filter(t => t.depth === 2).map(t => {\n\t\t\t\t\t\t\tconst id = slugger.slug(t.raw.match(/^#+ (.*)/)?.[1] ?? '', { dryrun: true })\n\t\t\t\t\t\t\tconst text = t.text.replaceAll('`', '')\n\t\t\t\t\t\t\treturn `
    1. ${text}
    2. `\n\t\t\t\t\t\t}).join('')}
    `\n\t\t\t\t\t\tinsertedToc = true\n\t\t\t\t\t}\n\t\t\t\t\tconst id = slugger.slug(raw)\n\t\t\t\t\tconst link = `${HASH}`\n\t\t\t\t\treturn `${toc}${link}${text}`\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tconst guide = content.substring(content.indexOf('---', 3) + 3)\n\t\tconst versionedContent = versionContent(guide, guideVersion)\n\t\treturn marked(versionedContent, { version: '1.19' } as any)\n\t}, [guideVersion, content])\n\n\tconst [hash, setHash] = useHash()\n\n\tconst scrollToHeading = useCallback(() => {\n\t\tif (!html) return\n\t\tconst heading = document.querySelector(`[id=guide-${hash.slice(1)}]`)\n\t\tif (heading) {\n\t\t\tconst top = heading.getBoundingClientRect().top + window.scrollY\n\t\t\twindow.scrollTo({ top: top - 68, behavior: 'smooth' })\n\t\t}\n\t}, [html, hash])\n\n\tuseEffect(() => {\n\t\tscrollToHeading()\n\t}, [html === undefined, hash])\n\n\tconst clickGuideContent = useCallback((e: MouseEvent) => {\n\t\tif (!(e.target instanceof HTMLSpanElement)) return\n\t\tconst targetHash = '#' + e.target.id.replace(/^guide-/, '')\n\t\tchangeVersion(version, false, true)\n\t\tsetHash(targetHash)\n\t\tif (targetHash === hash) {\n\t\t\tscrollToHeading()\n\t\t}\n\t}, [scrollToHeading, hash, version])\n\n\tconst [shareActive, shareSuccess] = useActiveTimeout()\n\n\tconst onShare = useCallback(() => {\n\t\tconst url = `${location.origin}/guides/${id}/?version=${version}`\n\t\tnavigator.clipboard.writeText(url)\n\t\tshareSuccess()\n\t}, [id, version])\n\n\tconst onClickTag = useCallback((tag: string) => {\n\t\troute(`/guides/?tags=${tag}`)\n\t}, [])\n\n\tconst [largeWidth] = useState(window.innerWidth > 600)\n\n\treturn
    \n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{Octicon.arrow_left}\n\t\t\t\t\t{locale('guides.all')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t{allowedVersions && \n\t\t\t\t\t{allowedVersions.map((v: string) => \n\t\t\t\t\t\t changeVersion(v as VersionId)} />)}\n\t\t\t\t}\n\t\t\t
    \n\t\t\t{(frontMatter?.tags && frontMatter.tags.length > 0) &&
    \n\t\t\t\t{frontMatter.tags.map((tag: string) =>\n\t\t\t\t\t onClickTag(tag)} />\n\t\t\t\t)}\n\t\t\t
    }\n\t\t\t{html && <>\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t}\n\t\t
    \n\t
    \n}\n","import { useMemo, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, BtnMenu, ChangelogTag, GuideCard, TextInput } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport { useSearchParam } from '../hooks'\nimport type { VersionId } from '../services'\n\ninterface Guide {\n\tid: string,\n\ttitle: string,\n\tversions?: string[],\n\ttags?: string[],\n}\n\ndeclare var __GUIDES__: Guide[]\n\nconst TAG_KEY = 'tags'\nconst TAG_SEP = '|'\n\ninterface Props {\n\tpath?: string\n}\nexport function Guides({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tuseTitle(locale('title.guides'))\n\n\tconst [search, setSearch] = useState('')\n\tconst [tags, setTags] = useSearchParam(TAG_KEY)\n\tconst activeTags = useMemo(() => tags?.split(TAG_SEP) ?? [], [tags])\n\tconst toggleTag = (tag: string) => {\n\t\tif (activeTags.includes(tag)) {\n\t\t\tsetTags(activeTags.filter(t => t !== tag).join(TAG_SEP))\n\t\t} else {\n\t\t\tsetTags([...activeTags, tag].sort().join(TAG_SEP))\n\t\t}\n\t}\n\n\tconst [versionFilter, setVersionFiler] = useState(false)\n\n\tconst versionedGuides = useMemo(() => {\n\t\tif (versionFilter === false) return __GUIDES__\n\t\treturn __GUIDES__.filter(guide => {\n\t\t\treturn guide.versions?.includes(version)\n\t\t})\n\t}, [version, versionFilter])\n\n\tconst filteredGuides = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\treturn versionedGuides.filter(guide => {\n\t\t\tif (!activeTags.every(tag => guide.tags?.includes(tag))) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst content = guide.tags?.join(' ') + ' ' + guide.title.toLowerCase()\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [versionedGuides, search, tags])\n\n\treturn
    \n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t setVersionFiler(!versionFilter)} />\n\t\t\t\t\t{config.versions.slice().reverse().map(v =>\n\t\t\t\t\t\t {changeVersion(v.id as VersionId); setVersionFiler(true)}} />\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t
    \n\t\t\t{activeTags.length > 0 &&
    \n\t\t\t\t{activeTags.map(tag => toggleTag(tag)} />)}\n\t\t\t
    }\n\t\t\t{versionedGuides.length === 0 ? <>\n\t\t\t\t{locale('guides.no_results.version')}\n\t\t\t : filteredGuides.length === 0 ? <>\n\t\t\t\t{locale('guides.no_results.query')}\n\t\t\t : filteredGuides.map(g =>\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t
    \n}\n","import config from '../../config.json'\nimport { Giscus, ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Home({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.home'))\n\treturn
    \n\t\t
    \n\t\t\t\n\t\t\t\t{config.generators.filter(g => !g.category).map(g => \n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{config.generators.filter(g => g.category === 'assets').map(g =>\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n}\n","import { useCallback, useMemo } from 'preact/hooks'\nimport { Ad, TreeView } from '../components'\nimport { getFilePath, useLocale, useProject, useTitle } from '../contexts'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Project({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { project, openFile } = useProject()\n\tuseTitle(locale('title.project', project.name))\n\tconst entries = useMemo(() => project.files.map(getFilePath), project.files)\n\n\tconst selectFile = useCallback((entry: string) => {\n\t\tconst [, namespace, type, ...id] = entry.split('/')\n\t\topenFile(type, `${namespace}:${id}`)\n\t}, [openFile])\n\n\treturn
    \n\t\t\n\t\t
    \n\t\t\t

    {project.name}

    \n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t
    \n}\n","import type { Howl, HowlOptions } from 'howler'\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, BtnMenu, ErrorPanel, SoundConfig, TextInput } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport { useAsync } from '../hooks'\nimport type { VersionId } from '../services'\nimport { fetchSounds } from '../services'\nimport { hexId } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Sounds({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tuseTitle(locale('title.sounds'))\n\n\tconst [howler, setHowler] = useState Howl)>(undefined)\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst howler = await import('howler')\n\t\t\tsetHowler(() => (options: HowlOptions) => new howler.Howl(options))\n\t\t})()\n\t}, [])\n\n\tconst { value: sounds, error } = useAsync(async () => {\n\t\treturn await fetchSounds(version)\n\t}, [version])\n\tconst soundKeys = useMemo(() => Object.keys(sounds ?? {}), [sounds])\n\n\tconst [search, setSearch] = useState('')\n\tconst [configs, setConfigs] = useState([])\n\tconst addConfig = () => {\n\t\tsetConfigs([{ id: hexId(), sound: search, delay: 0, pitch: 1, volume: 1 }, ...configs])\n\t}\n\tconst editConfig = (id: string) => (changes: Partial) => {\n\t\tsetConfigs(configs.map(c => c.id === id ? { ...c, ...changes } : c))\n\t}\n\tconst deleteConfig = (id: string) => () => {\n\t\tsetConfigs(configs.filter(c => c.id !== id))\n\t}\n\n\tconst [delayedPlay, setDelayedPlay] = useState(0)\n\tconst playAll = () => {\n\t\tsetDelayedPlay(delayedPlay + 1)\n\t}\n\n\tconst download = useRef(null)\n\tconst downloadFunction = () => {\n\t\tif (!download.current) return\n\t\tconst hasDelay = configs.some(c => c.delay > 0)\n\t\tconst content = configs\n\t\t\t.sort((a, b) => a.delay - b.delay)\n\t\t\t.map(c => `${hasDelay ? `execute if score @s delay matches ${c.delay} run ` : ''}playsound minecraft:${c.sound} master @s ~ ~ ~ ${c.volume} ${c.pitch}`)\n\t\t\t.join('\\n')\n\t\tdownload.current.setAttribute('href', 'data:text/plain;charset=utf-8,' + content + '%0A')\n\t\tdownload.current.setAttribute('download', 'sounds.mcfunction')\n\t\tdownload.current.click()\n\t}\n\n\treturn
    \n\t\t{error && }\n\t\t{soundKeys.length > 0 && <>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t{configs.length > 1 && }\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{config.versions.slice().reverse().map(v =>\n\t\t\t\t\t\t changeVersion(v.id as VersionId)} />\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{sounds && howler && configs.map(c =>\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\t{soundKeys.map(s => \n\t\t}\n\t
    \n}\n","import { Ad, ErrorPanel, Octicon, VersionDetail, VersionList } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { useAsync, useSearchParam } from '../hooks'\nimport type { VersionMeta } from '../services'\nimport { fetchVersions } from '../services'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Versions({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.versions'))\n\n\tconst { value: versions, error } = useAsync(fetchVersions, [])\n\n\tconst [selectedId] = useSearchParam('id')\n\tconst selected = (versions ?? []).find(v => v.id === selectedId)\n\n\tuseTitle(\n\t\tselected ? `Minecraft ${selected.name}` : 'Versions Explorer',\n\t\tselected ? [] : undefined,\n\t\tselected ? 'Changes and metadata' : undefined)\n\n\tconst nextVersion = selected && getOffsetVersion(versions ?? [], selected, -1)\n\tconst previousVersion = selected && getOffsetVersion(versions ?? [], selected, 1)\n\n\treturn
    \n\t\t\n\t\t{error && }\n\t\t\n\t
    \n}\n\nfunction getOffsetVersion(versions: VersionMeta[], current: VersionMeta, offset: number) {\n\tconst currentIndex = versions.findIndex(v => v.id === current.id)\n\tconst offsetIndex = currentIndex + offset\n\tif (offsetIndex < 0 || offsetIndex >= versions.length) {\n\t\treturn undefined\n\t}\n\treturn versions[offsetIndex]\n}\n","import type { RouterOnChangeArgs } from 'preact-router'\nimport { Router } from 'preact-router'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { Analytics } from './Analytics'\nimport { Header } from './components'\nimport { Category, Changelog, Generator, Guide, Guides, Home, Project, Sounds, Versions } from './pages'\nimport { cleanUrl } from './Utils'\n\nexport function App() {\n\tconst changeRoute = (e: RouterOnChangeArgs) => {\n\t\twindow.dispatchEvent(new CustomEvent('replacestate'))\n\t\t// Needs a timeout to ensure the title is set correctly\n\t\tsetTimeout(() => Analytics.pageview(cleanUrl(e.url)))\n\t}\n\n\treturn <>\n\t\t
    \n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n}\n","import { render } from 'preact'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { App } from './App'\nimport { LocaleProvider, ProjectProvider, ThemeProvider, TitleProvider, VersionProvider } from './contexts'\n\nfunction Main() {\n\treturn \n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n}\n\nrender(
    , document.body)\n"],"file":"assets/index.2a99a61a.js"} \ No newline at end of file +{"version":3,"mappings":"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","names":["p","n","u","i","t","o","r","f","e","v","d","_","b","c","I","T","y","g","x","L","z","w","C","P","H","$","M","m","j","A","s","a","N","O","k","toChildArray","this$1","cloneElement","Component","createElement","h","useEffect","Path_1","Errors_1","escapeString","dec2hex","hexId","DataModel_1","require$$0","require$$1","utils_1","require$$2","BooleanNode_1","Node_1","ListNode_1","SwitchNode_1","MapNode_1","require$$3","require$$4","Reference_1","StringNode_1","isEnum","this","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","common","isObject","YAMLException","Mark","Type","Schema","map","json","core","_require","require","_hasOwnProperty","_toString","DEFAULT_SAFE_SCHEMA","DEFAULT_FULL_SCHEMA","State","load","loader","dumper","jsYaml","deprecated","Path","cleanUrl","yaml","hashString","lerp","rfdc","useRef","useState","useCallback","useMemo","Versions","ChoiceNode","StringNode","Reference","DataModel","createContext","useContext","Project","wasm","crypt","cryptModule","md5","md5Module","NoiseChunkGenerator","LAYERS","clamp","square","lerp2","clampedLerp","OldNoiseChunkGenerator","ModelPath","relativePath","l","MapNode","ObjectNode","memo","ListNode","useErrorBoundary","unescape","escape","Response","hljs","render"],"sources":["../../vite/modulepreload-polyfill","../../node_modules/preact/dist/preact.module.js","../../node_modules/preact-router/dist/preact-router.es.js","../../src/app/Analytics.ts","../../node_modules/preact/hooks/dist/hooks.module.js","../../src/app/components/Ad.tsx","../../src/app/components/Btn.tsx","../../node_modules/@mcschema/core/lib/model/Path.js","../../node_modules/@mcschema/core/lib/model/Errors.js","../../node_modules/@mcschema/core/lib/utils.js","../../node_modules/@mcschema/core/lib/model/DataModel.js","../../node_modules/@mcschema/core/lib/nodes/Node.js","../../node_modules/@mcschema/core/lib/nodes/BooleanNode.js","../../node_modules/@mcschema/core/lib/nodes/ListNode.js","../../node_modules/@mcschema/core/lib/nodes/SwitchNode.js","../../node_modules/@mcschema/core/lib/nodes/ChoiceNode.js","../../node_modules/@mcschema/core/lib/nodes/MapNode.js","../../node_modules/@mcschema/core/lib/nodes/NumberNode.js","../../node_modules/@mcschema/core/lib/nodes/ObjectNode.js","../../node_modules/@mcschema/core/lib/nodes/Reference.js","../../node_modules/@mcschema/core/lib/nodes/StringNode.js","../../node_modules/@mcschema/core/lib/Hook.js","../../node_modules/@mcschema/core/lib/Registries.js","../../node_modules/@mcschema/core/lib/ValidationOption.js","../../node_modules/@mcschema/core/lib/index.js","../../node_modules/js-yaml/lib/js-yaml/common.js","../../node_modules/js-yaml/lib/js-yaml/exception.js","../../node_modules/js-yaml/lib/js-yaml/mark.js","../../node_modules/js-yaml/lib/js-yaml/type.js","../../node_modules/js-yaml/lib/js-yaml/schema.js","../../node_modules/js-yaml/lib/js-yaml/type/str.js","../../node_modules/js-yaml/lib/js-yaml/type/seq.js","../../node_modules/js-yaml/lib/js-yaml/type/map.js","../../node_modules/js-yaml/lib/js-yaml/schema/failsafe.js","../../node_modules/js-yaml/lib/js-yaml/type/null.js","../../node_modules/js-yaml/lib/js-yaml/type/bool.js","../../node_modules/js-yaml/lib/js-yaml/type/int.js","../../node_modules/js-yaml/lib/js-yaml/type/float.js","../../node_modules/js-yaml/lib/js-yaml/schema/json.js","../../node_modules/js-yaml/lib/js-yaml/schema/core.js","../../node_modules/js-yaml/lib/js-yaml/type/timestamp.js","../../node_modules/js-yaml/lib/js-yaml/type/merge.js","../../node_modules/js-yaml/lib/js-yaml/type/binary.js","../../node_modules/js-yaml/lib/js-yaml/type/omap.js","../../node_modules/js-yaml/lib/js-yaml/type/pairs.js","../../node_modules/js-yaml/lib/js-yaml/type/set.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_safe.js","../../node_modules/js-yaml/lib/js-yaml/type/js/undefined.js","../../node_modules/js-yaml/lib/js-yaml/type/js/regexp.js","../../node_modules/js-yaml/lib/js-yaml/type/js/function.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_full.js","../../node_modules/js-yaml/lib/js-yaml/loader.js","../../node_modules/js-yaml/lib/js-yaml/dumper.js","../../node_modules/js-yaml/lib/js-yaml.js","../../node_modules/js-yaml/index.js","../../node_modules/rfdc/index.js","../../src/app/Utils.ts","../../src/app/components/BtnInput.tsx","../../src/app/hooks/useActiveTimout.ts","../../src/app/hooks/useAsyncFn.ts","../../src/app/hooks/useAsync.ts","../../src/app/hooks/useCanvas.ts","../../src/app/hooks/useFocus.ts","../../src/app/hooks/useHash.ts","../../src/app/hooks/useMediaQuery.ts","../../src/app/hooks/useModel.ts","../../src/app/hooks/useSearchParam.ts","../../src/app/components/BtnMenu.tsx","../../vite/preload-helper","../../src/app/components/Octicon.tsx","../../src/app/components/ErrorPanel.tsx","../../src/app/components/forms/Checkbox.tsx","../../src/app/components/forms/Input.tsx","../../src/app/components/forms/SearchList.tsx","../../src/app/services/Changelogs.ts","../../src/app/services/DataFetcher.ts","../../src/app/services/Schemas.ts","../../node_modules/lz-string/libs/lz-string.js","../../src/app/services/Sharing.ts","../../src/app/Store.ts","../../src/app/contexts/Locale.tsx","../../src/app/contexts/Project.tsx","../../src/app/contexts/Theme.tsx","../../src/app/contexts/Title.tsx","../../src/app/contexts/Version.tsx","../../node_modules/deepslate-rs/deepslate_rs.js","../../node_modules/deepslate-rs/deepslate_rs_bg.wasm?url","../../node_modules/crypt/crypt.js","../../node_modules/charenc/charenc.js","../../node_modules/is-buffer/index.js","../../node_modules/md5/md5.js","../../node_modules/deepslate/worldgen/dist/worldgen.esm.js","../../src/app/previews/BiomeSource.ts","../../src/app/previews/Decorator.ts","../../src/app/previews/Deepslate.ts","../../src/app/previews/noise/NoiseChunkGenerator.ts","../../src/app/previews/NoiseSettings.ts","../../src/app/previews/NormalNoise.ts","../../src/app/components/previews/BiomeSourcePreview.tsx","../../src/app/components/previews/DecoratorPreview.tsx","../../src/app/components/previews/DensityFunctionPreview.tsx","../../src/app/components/previews/NoisePreview.tsx","../../src/app/components/previews/NoiseSettingsPreview.tsx","../../src/app/components/generator/PreviewPanel.tsx","../../src/app/schema/transformOutput.ts","../../src/app/components/generator/SourcePanel.tsx","../../node_modules/preact/compat/dist/compat.module.js","../../src/app/schema/ModelWrapper.ts","../../src/app/schema/renderHtml.tsx","../../src/app/components/generator/Tree.tsx","../../node_modules/@giscus/react/dist/index.es.js","../../src/app/components/Giscus.tsx","../../node_modules/marked/lib/marked.esm.js","../../src/app/components/versions/ChangelogEntry.tsx","../../src/app/components/versions/ChangelogTag.tsx","../../src/app/components/versions/ChangelogList.tsx","../../src/app/components/versions/VersionDetail.tsx","../../src/app/components/versions/VersionEntry.tsx","../../src/app/components/versions/VersionList.tsx","../../src/app/components/versions/VersionMetaData.tsx","../../src/app/components/GuideCard.tsx","../../src/app/components/Header.tsx","../../src/app/components/Icons.tsx","../../src/app/components/sounds/SoundConfig.tsx","../../src/app/components/ToolCard.tsx","../../src/app/components/TreeView.tsx","../../src/app/pages/Category.tsx","../../src/app/pages/Changelog.tsx","../../src/app/pages/Generator.tsx","../../node_modules/highlight.js/lib/core.js","../../node_modules/highlight.js/es/languages/json.js","../../src/app/pages/Guide.tsx","../../src/app/pages/Guides.tsx","../../src/app/pages/Home.tsx","../../src/app/pages/Project.tsx","../../src/app/pages/Sounds.tsx","../../src/app/pages/Versions.tsx","../../src/app/App.tsx","../../src/app/Main.tsx"],"sourcesContent":["const p = function polyfill() {\n const relList = document.createElement('link').relList;\n if (relList && relList.supports && relList.supports('modulepreload')) {\n return;\n }\n for (const link of document.querySelectorAll('link[rel=\"modulepreload\"]')) {\n processPreload(link);\n }\n new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type !== 'childList') {\n continue;\n }\n for (const node of mutation.addedNodes) {\n if (node.tagName === 'LINK' && node.rel === 'modulepreload')\n processPreload(node);\n }\n }\n }).observe(document, { childList: true, subtree: true });\n function getFetchOpts(script) {\n const fetchOpts = {};\n if (script.integrity)\n fetchOpts.integrity = script.integrity;\n if (script.referrerpolicy)\n fetchOpts.referrerPolicy = script.referrerpolicy;\n if (script.crossorigin === 'use-credentials')\n fetchOpts.credentials = 'include';\n else if (script.crossorigin === 'anonymous')\n fetchOpts.credentials = 'omit';\n else\n fetchOpts.credentials = 'same-origin';\n return fetchOpts;\n }\n function processPreload(link) {\n if (link.ep)\n // ep marker = processed\n return;\n link.ep = true;\n // prepopulate the load record\n const fetchOpts = getFetchOpts(link);\n fetch(link.href, fetchOpts);\n }\n};__VITE_IS_MODERN__&&p();","var n,l,u,i,t,o,r={},f=[],e=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function c(n,l){for(var u in l)n[u]=l[u];return n}function s(n){var l=n.parentNode;l&&l.removeChild(n)}function a(n,l,u){var i,t,o,r=arguments,f={};for(o in l)\"key\"==o?i=l[o]:\"ref\"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o0?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(_=A[h])||_&&k.key==_.key&&k.type===_.type)A[h]=void 0;else for(p=0;p3)for(u=[u],o=3;o b.rank) ? -1 :\n\t\t\t\t(a.index - b.index)\n\t);\n}\n\n// filter out VNodes without attributes (which are unrankeable), and add `index`/`rank` properties to be used in sorting.\nfunction prepareVNodeForRanking(vnode, index) {\n\tvnode.index = index;\n\tvnode.rank = rankChild(vnode);\n\treturn vnode.props;\n}\n\nfunction segmentize(url) {\n\treturn url.replace(/(^\\/+|\\/+$)/g, '').split('/');\n}\n\nfunction rankSegment(segment) {\n\treturn segment.charAt(0)==':' ? (1 + '*+?'.indexOf(segment.charAt(segment.length-1))) || 4 : 5;\n}\n\nfunction rank(path) {\n\treturn segmentize(path).map(rankSegment).join('');\n}\n\nfunction rankChild(vnode) {\n\treturn vnode.props.default ? 0 : rank(vnode.props.path);\n}\n\nvar customHistory = null;\n\nvar ROUTERS = [];\n\nvar subscribers = [];\n\nvar EMPTY = {};\n\nfunction setUrl(url, type) {\n\tif ( type === void 0 ) type='push';\n\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tvar url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn (\"\" + (url.pathname || '') + (url.search || ''));\n}\n\n\n\nfunction route(url, replace) {\n\tif ( replace === void 0 ) replace=false;\n\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (var i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) { return true; }\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tvar didRoute = false;\n\tfor (var i=0; i 0;\n\t};\n\n\t/** Re-render children with a new URL to match against. */\n\tRouter.prototype.routeTo = function routeTo (url) {\n\t\tthis.setState({ url: url });\n\n\t\tvar didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) { this.forceUpdate(); }\n\n\t\treturn didRoute;\n\t};\n\n\tRouter.prototype.componentWillMount = function componentWillMount () {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidMount = function componentDidMount () {\n\t\tvar this$1 = this;\n\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen(function (location) {\n\t\t\t\tthis$1.routeTo((\"\" + (location.pathname || '') + (location.search || '')));\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.componentWillUnmount = function componentWillUnmount () {\n\t\tif (typeof this.unlisten==='function') { this.unlisten(); }\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t};\n\n\tRouter.prototype.componentWillUpdate = function componentWillUpdate () {\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidUpdate = function componentDidUpdate () {\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.getMatchingChildren = function getMatchingChildren (children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( function (vnode) {\n\t\t\t\tvar matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tvar newProps = { url: url, matches: matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t};\n\n\tRouter.prototype.render = function render (ref, ref$1) {\n\t\tvar children = ref.children;\n\t\tvar onChange = ref.onChange;\n\t\tvar url = ref$1.url;\n\n\t\tvar active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tvar current = active[0] || null;\n\n\t\tvar previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl: url,\n\t\t\t\t\tprevious: previous,\n\t\t\t\t\tactive: active,\n\t\t\t\t\tcurrent: current\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t};\n\n\treturn Router;\n}(Component));\n\nvar Link = function (props) { return (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n); };\n\nvar Route = function (props) { return createElement(props.component, props); };\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };export default Router;\n//# sourceMappingURL=preact-router.es.js.map\n","import type { VersionId } from './services'\n\ntype Method = 'menu' | 'hotkey'\n\nexport namespace Analytics {\n\n\t/** Universal Analytics */\n\tconst ID_SITE = 'Site'\n\tconst ID_GENERATOR = 'Generator'\n\n\tconst DIM_THEME = 1\n\tconst DIM_VERSION = 3\n\tconst DIM_LANGUAGE = 4\n\tconst DIM_GENERATOR = 6\n\tconst DIM_PREFERS_COLOR_SCHEME = 7\n\n\tfunction event(category: string, action: string, label?: string) {\n\t\tga('send', 'event', category, action, label)\n\t}\n\n\tfunction dimension(index: number, value: string) {\n\t\tga('set', `dimension${index}`, value)\n\t}\n\n\texport function pageview(page: string) {\n\t\tga('set', 'page', page)\n\t\tga('send', 'pageview')\n\t}\n\n\t/**\n\t * @deprecated\n\t */\n\texport function generatorEvent(action: string, label?: string) {\n\t\tevent(ID_GENERATOR, action, label)\n\t}\n\n\tfunction legacyMethod(method: Method) {\n\t\treturn method === 'menu' ? 'Menu' : 'Hotkey'\n\t}\n\t/** END Universal Analytics 4 */\n\n\texport function setLocale(locale: string) {\n\t\tdimension(DIM_LANGUAGE, locale)\n\t\tgtag('set', {\n\t\t\tlocale,\n\t\t})\n\t}\n\n\texport function changeLocale(prev_locale: string, locale: string) {\n\t\tsetLocale(locale)\n\t\tevent(ID_SITE, 'set-language', locale)\n\t\tgtag('event', 'change_locale', {\n\t\t\tprev_locale,\n\t\t})\n\t}\n\n\texport function setTheme(theme: string) {\n\t\tdimension(DIM_THEME, theme)\n\t\tgtag('set', {\n\t\t\ttheme,\n\t\t})\n\t}\n\n\texport function changeTheme(prev_theme: string, theme: string) {\n\t\tsetTheme(theme)\n\t\tevent(ID_SITE, 'set-theme', theme)\n\t\tgtag('event', 'change_theme', {\n\t\t\tprev_theme,\n\t\t})\n\t}\n\n\texport function setVersion(version: string) {\n\t\tdimension(DIM_VERSION, version)\n\t\tgtag('set', {\n\t\t\tversion,\n\t\t})\n\t}\n\n\texport function changeVersion(prev_version: string, version: string) {\n\t\tsetVersion(version)\n\t\tevent(ID_GENERATOR, 'set-version', version)\n\t\tgtag('event', 'change_version', {\n\t\t\tprev_version,\n\t\t})\n\t}\n\n\texport function setGenerator(file_type: string) {\n\t\tdimension(DIM_GENERATOR, file_type)\n\t\tgtag('event', 'use_generator', {\n\t\t\tfile_type,\n\t\t})\n\t}\n\n\texport function setPrefersColorScheme(prefers_color_scheme: string) {\n\t\tdimension(DIM_PREFERS_COLOR_SCHEME, prefers_color_scheme)\n\t\tgtag('set', {\n\t\t\tprefers_color_scheme,\n\t\t})\n\t}\n\n\texport function resetGenerator(file_type: string, history: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'reset')\n\t\tgtag('event', 'reset_generator', {\n\t\t\tfile_type,\n\t\t\thistory,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function undoGenerator(file_type: string, history: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'undo', legacyMethod(method))\n\t\tgtag('event', 'undo_generator', {\n\t\t\tfile_type,\n\t\t\thistory,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function redoGenerator(file_type: string, history: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'undo', legacyMethod(method))\n\t\tgtag('event', 'redo_generator', {\n\t\t\tfile_type,\n\t\t\thistory,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function saveProjectFile(file_type: string, project_size: number, projects_count: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'save-project-file', legacyMethod(method))\n\t\tgtag('event', 'save_project_file', {\n\t\t\tfile_type,\n\t\t\tproject_size,\n\t\t\tprojects_count,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function loadPreset(file_type: string, file_name: string) {\n\t\tevent(ID_GENERATOR, 'load-preset', file_name)\n\t\tgtag('event', 'load_generator_preset', {\n\t\t\tfile_type,\n\t\t\tfile_name,\n\t\t})\n\t}\n\n\texport function openPreset(file_type: string, file_name: string) {\n\t\tgtag('event', 'open_generator_preset', {\n\t\t\tfile_type,\n\t\t\tfile_name,\n\t\t})\n\t}\n\n\texport function createSnippet(file_type: string, snippet_id: string, version: VersionId, data_size: number, compressed_size: number, compression_rate: number) {\n\t\tgtag('event', 'create_generator_snippet', {\n\t\t\tfile_type,\n\t\t\tsnippet_id,\n\t\t\tversion,\n\t\t\tdata_size,\n\t\t\tcompressed_size,\n\t\t\tcompression_rate,\n\t\t})\n\t}\n\n\texport function openSnippet(file_type: string, snippet_id: string, version: VersionId) {\n\t\tgtag('event', 'open_generator_snippet', {\n\t\t\tfile_type,\n\t\t\tsnippet_id,\n\t\t\tversion,\n\t\t})\n\t}\n\n\texport function copyOutput(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'copy')\n\t\tgtag('event', 'copy_generator_output', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function downloadOutput(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'download')\n\t\tgtag('event', 'download_generator_output', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function showOutput(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'toggle-output', 'visible')\n\t\tgtag('event', 'show_generator_output', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function hideOutput(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'toggle-output', 'hidden')\n\t\tgtag('event', 'hide_generator_output', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function showPreview(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'toggle-preview', 'visible')\n\t\tgtag('event', 'show_generator_preview', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function hidePreview(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'toggle-preview', 'hidden')\n\t\tgtag('event', 'hide_generator_preview', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n}\n","import{options as n}from\"preact\";var t,u,r,o=0,i=[],c=n.__b,f=n.__r,e=n.diffed,a=n.__c,v=n.unmount;function m(t,r){n.__h&&n.__h(u,t,o||r),o=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.__c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){i.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}),i=[]}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=void 0},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(g)}catch(t){n.__e(t,u.__v)}};var b=\"function\"==typeof requestAnimationFrame;function g(n){var t=u;\"function\"==typeof n.__c&&n.__c(),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return\"function\"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","import { useEffect } from 'preact/hooks'\n\ndeclare const ethicalads: any\n\ntype AdProps = {\n\ttype: 'text' | 'image',\n\tid: string,\n}\nexport function Ad({ type, id }: AdProps) {\n\tuseEffect(() => {\n\t\tdocument.getElementById('ad-placeholder')?.remove()\n\t\tif ('ethicalads' in window) {\n\t\t\tethicalads.load()\n\t\t}\n\t}, [])\n\n\treturn
    \n}\n","import { Octicon } from '.'\n\ntype BtnProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tactive?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tshowTooltip?: boolean,\n\tclass?: string,\n\tonClick?: (event: MouseEvent) => unknown,\n}\nexport function Btn({ icon, label, active, class: clazz, tooltip, tooltipLoc, onClick }: BtnProps) {\n\treturn
    \n\t\t{icon && Octicon[icon]}\n\t\t{label && {label}}\n\t
    \n}\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModelPath = exports.Path = exports.relativePath = void 0;\r\nfunction relativePath(start, relativePath) {\r\n return relativePath.reduce((path, e) => {\r\n if (e === 'pop') {\r\n return path.pop();\r\n }\r\n else {\r\n return path.push(e.push);\r\n }\r\n }, start);\r\n}\r\nexports.relativePath = relativePath;\r\n/**\r\n * Immutable helper class to represent a path in data\r\n */\r\nclass Path {\r\n /**\r\n * @param modelArr Initial array of path model elements. Empty if not given\r\n * @param contextArr Initial array of path context elements. Empty if not given\r\n */\r\n constructor(modelArr, contextArr) {\r\n this.modelArr = modelArr !== null && modelArr !== void 0 ? modelArr : [];\r\n this.contextArr = contextArr !== null && contextArr !== void 0 ? contextArr : [];\r\n }\r\n /**\r\n * The last model element of this path\r\n */\r\n last() {\r\n return this.modelArr[this.modelArr.length - 1];\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new Path(this.modelArr.slice(start, end), this.contextArr);\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new Path(this.modelArr.slice(1), this.contextArr);\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new Path(this.modelArr.slice(0, -1), this.contextArr);\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new Path([...this.modelArr, element], [...this.contextArr]);\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n if (typeof element === 'number')\r\n return this.copy();\r\n const newElement = element.startsWith('minecraft:') ? element.slice(10) : element;\r\n return new Path([...this.modelArr], [...this.contextArr, newElement]);\r\n }\r\n copy() {\r\n return new Path([...this.modelArr], [...this.contextArr]);\r\n }\r\n getArray() {\r\n return this.modelArr;\r\n }\r\n /**\r\n * Attaches a model to this path and all paths created from this\r\n * @param model\r\n */\r\n withModel(model) {\r\n return new ModelPath(model, this);\r\n }\r\n getContext() {\r\n return this.contextArr;\r\n }\r\n /**\r\n * Checks path equality\r\n * @param other path to compare\r\n */\r\n equals(other) {\r\n return other.modelArr.length === this.modelArr.length\r\n && other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path starts with another path\r\n * @param other path that this path should start with\r\n */\r\n startsWith(other) {\r\n if (this.modelArr.length < other.modelArr.length)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path ends with another path\r\n * @param other parent path where this path should end with\r\n */\r\n endsWith(other) {\r\n const offset = this.modelArr.length - other.modelArr.length;\r\n if (offset < 0)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[offset + i]);\r\n }\r\n toString() {\r\n return this.modelArr\r\n .map(e => (typeof e === 'string') ? `.${e}` : `[${e}]`)\r\n .join('')\r\n .replace(/^\\./, '');\r\n }\r\n forEach(fn, thisArg) {\r\n return this.modelArr.forEach(fn, thisArg);\r\n }\r\n}\r\nexports.Path = Path;\r\nclass ModelPath extends Path {\r\n constructor(model, path) {\r\n super(path === null || path === void 0 ? void 0 : path.modelArr, path === null || path === void 0 ? void 0 : path.contextArr);\r\n this.model = model;\r\n }\r\n getModel() {\r\n return this.model;\r\n }\r\n /**\r\n * Gets the data from the model if it was attached\r\n * @returns undefined, if no model was attached\r\n */\r\n get() {\r\n var _a;\r\n return (_a = this.model) === null || _a === void 0 ? void 0 : _a.get(this);\r\n }\r\n /**\r\n * Sets the value to the model if it was attached\r\n */\r\n set(value) {\r\n var _a;\r\n (_a = this.model) === null || _a === void 0 ? void 0 : _a.set(this, value);\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new ModelPath(this.model, super.slice(start, end));\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new ModelPath(this.model, super.shift());\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new ModelPath(this.model, super.pop());\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new ModelPath(this.model, super.modelPush(element));\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n return new ModelPath(this.model, super.contextPush(element));\r\n }\r\n copy() {\r\n return new ModelPath(this.model, super.copy());\r\n }\r\n}\r\nexports.ModelPath = ModelPath;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Errors = void 0;\r\n/**\r\n * Collects errors from data paths\r\n */\r\nclass Errors {\r\n constructor() {\r\n this.errors = [];\r\n }\r\n add(path, error, ...params) {\r\n this.errors.push({ path, error, params });\r\n return false;\r\n }\r\n get(path, exact = false) {\r\n return exact ? this.errors.filter(e => e.path.equals(path))\r\n : this.errors.filter(e => e.path.startsWith(path));\r\n }\r\n getAll() {\r\n return this.errors;\r\n }\r\n clear() {\r\n this.errors = [];\r\n }\r\n count() {\r\n return this.errors.length;\r\n }\r\n *[Symbol.iterator]() {\r\n for (const e of this.errors) {\r\n yield e;\r\n }\r\n }\r\n}\r\nexports.Errors = Errors;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.hexId = exports.quoteString = exports.escapeString = void 0;\r\nfunction escapeString(str) {\r\n return str.replace(/(\\\\|\")/g, '\\\\$1');\r\n}\r\nexports.escapeString = escapeString;\r\nfunction quoteString(str) {\r\n return `\"${escapeString(str)}\"`;\r\n}\r\nexports.quoteString = quoteString;\r\nconst dec2hex = (dec) => ('0' + dec.toString(16)).substr(-2);\r\nfunction hexId(length = 12) {\r\n var arr = new Uint8Array(length / 2);\r\n window.crypto.getRandomValues(arr);\r\n return Array.from(arr, dec2hex).join('');\r\n}\r\nexports.hexId = hexId;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataModel = void 0;\r\nconst Path_1 = require(\"./Path\");\r\nconst Errors_1 = require(\"./Errors\");\r\nconst utils_1 = require(\"../utils\");\r\n/**\r\n * Holding the data linked to a given schema\r\n */\r\nclass DataModel {\r\n /**\r\n * @param schema node to use as schema for this model\r\n */\r\n constructor(schema, options) {\r\n var _a, _b, _c, _d;\r\n this.historyMax = (_a = options === null || options === void 0 ? void 0 : options.historyMax) !== null && _a !== void 0 ? _a : 50;\r\n this.verbose = (_b = options === null || options === void 0 ? void 0 : options.verbose) !== null && _b !== void 0 ? _b : false;\r\n this.wrapLists = (_c = options === null || options === void 0 ? void 0 : options.wrapLists) !== null && _c !== void 0 ? _c : false;\r\n this.schema = schema;\r\n const data = (_d = options === null || options === void 0 ? void 0 : options.initialData) !== null && _d !== void 0 ? _d : schema.default();\r\n this.data = this.wrapLists ? DataModel.wrapLists(data) : data;\r\n this.listeners = [];\r\n this.errors = new Errors_1.Errors();\r\n this.history = [JSON.stringify(this.data)];\r\n this.historyIndex = 0;\r\n }\r\n /**\r\n * Adds a listener to notify when the model is invalidated\r\n * @param listener the listener to be notified\r\n */\r\n addListener(listener) {\r\n this.listeners.push(listener);\r\n }\r\n /**\r\n * Removes a listener from this model\r\n * @param listener the listener to be removed\r\n */\r\n removeListener(listener) {\r\n const index = this.listeners.indexOf(listener);\r\n if (index > -1) {\r\n this.listeners.splice(index, 1);\r\n }\r\n }\r\n /**\r\n * Updates the history and notifies all\r\n * listeners that the model is invalidated\r\n */\r\n invalidate() {\r\n const newHistory = JSON.stringify(this.data);\r\n if (this.history[this.historyIndex] !== newHistory) {\r\n this.historyIndex += 1;\r\n this.history.splice(this.historyIndex, this.historyMax, newHistory);\r\n if (this.history.length > this.historyMax) {\r\n this.history.splice(0, 1);\r\n this.historyIndex -= 1;\r\n }\r\n }\r\n this.silentInvalidate();\r\n }\r\n /**\r\n * Notifies all listeners that the model is invalidated\r\n */\r\n silentInvalidate() {\r\n this.listeners.forEach(l => {\r\n if (l.invalidated)\r\n l.invalidated(this);\r\n if (l.errors)\r\n l.errors(this.errors);\r\n });\r\n }\r\n /**\r\n * Resets the full data and notifies listeners\r\n * @param value new model data\r\n */\r\n reset(value, loose) {\r\n this.data = value;\r\n this.validate(loose);\r\n this.invalidate();\r\n }\r\n /**\r\n * Gets the data at a specified path\r\n * @param path path at which to find the data\r\n * @returns undefined, if the the path does not exist in the data\r\n */\r\n get(path) {\r\n let node = this.data;\r\n path.forEach(e => {\r\n if (node === undefined)\r\n return node;\r\n if (this.wrapLists && typeof e === 'number') {\r\n node = node[e].node;\r\n }\r\n else {\r\n node = node[e];\r\n }\r\n });\r\n return node;\r\n }\r\n /**\r\n * Updates the data on a path. Node will be removed when value is undefined\r\n * @param path path to update\r\n * @param value new data at the specified path\r\n */\r\n set(path, value, silent) {\r\n if (path.getArray().length === 0) {\r\n this.reset(value, true);\r\n return;\r\n }\r\n let node = this.data;\r\n path.pop().forEach(e => {\r\n if (node[e] === undefined || typeof node[e] === 'string' || typeof node[e] === 'number') {\r\n if (this.wrapLists && typeof e === 'number') {\r\n node[e] = { node: {}, id: (0, utils_1.hexId)() };\r\n }\r\n else {\r\n node[e] = {};\r\n }\r\n }\r\n if (this.wrapLists && typeof e === 'number') {\r\n node = node[e].node;\r\n }\r\n else {\r\n node = node[e];\r\n }\r\n });\r\n if (node === null)\r\n return;\r\n if (value === undefined || (typeof value === 'number' && isNaN(value))) {\r\n if (typeof path.last() === 'number') {\r\n node.splice(path.last(), 1);\r\n }\r\n else {\r\n delete node[path.last()];\r\n }\r\n }\r\n else if (this.wrapLists && typeof path.last() === 'number') {\r\n node[path.last()] = { node: value, id: (0, utils_1.hexId)() };\r\n }\r\n else {\r\n node[path.last()] = value;\r\n }\r\n if (silent)\r\n return;\r\n if (this.verbose) {\r\n console.log('Set', path.toString(), JSON.stringify(value));\r\n }\r\n this.validate(true);\r\n this.invalidate();\r\n }\r\n /**\r\n * Go one step back in history\r\n */\r\n undo() {\r\n if (this.historyIndex > 0) {\r\n this.historyIndex -= 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Go one step forward in history.\r\n */\r\n redo() {\r\n if (this.historyIndex < this.history.length - 1) {\r\n this.historyIndex += 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Uses the schema to check whether the data is valid\r\n */\r\n validate(loose) {\r\n var _a;\r\n const path = new Path_1.Path().withModel(this);\r\n this.errors.clear();\r\n this.data = (_a = this.schema.validate(path, this.data, this.errors, { loose, wrapLists: this.wrapLists })) !== null && _a !== void 0 ? _a : {};\r\n }\r\n error(path, error, ...params) {\r\n const tempErrors = new Errors_1.Errors();\r\n tempErrors.add(path, error, params);\r\n this.listeners.forEach(l => {\r\n if (l.errors)\r\n l.errors(tempErrors);\r\n });\r\n }\r\n static wrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => ({\r\n node: this.wrapLists(v),\r\n id: (0, utils_1.hexId)(),\r\n }));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.wrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n static unwrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => this.unwrapLists(v.node));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.unwrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n}\r\nexports.DataModel = DataModel;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Keep = exports.Opt = exports.Has = exports.Mod = exports.Base = void 0;\r\nexports.Base = ({\r\n type: () => 'base',\r\n category: () => undefined,\r\n default: () => undefined,\r\n enabled: () => true,\r\n keep: () => false,\r\n optional: () => false,\r\n navigate() { return this; },\r\n pathPush: (p) => p,\r\n suggest: () => [],\r\n validate: (_, v) => v,\r\n validationOption: () => undefined,\r\n hook(hook, path, ...args) { return hook.base({ node: this }, path, ...args); },\r\n canUpdate: () => false,\r\n update: () => []\r\n});\r\nconst Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Mod = Mod;\r\nconst Has = (key, node) => (0, exports.Mod)(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nexports.Has = Has;\r\nfunction Opt(node) {\r\n return {\r\n ...node,\r\n optional: () => true\r\n };\r\n}\r\nexports.Opt = Opt;\r\nfunction Keep(node) {\r\n return {\r\n ...node,\r\n keep: () => true\r\n };\r\n}\r\nexports.Keep = Keep;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BooleanNode = void 0;\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Boolean node with two buttons for true/false\r\n */\r\nconst BooleanNode = () => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'boolean',\r\n default: () => false,\r\n suggest: () => ['false', 'true'],\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'boolean') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'boolean' || value === undefined) {\r\n errors.add(path, 'error.expected_boolean');\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.boolean) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.BooleanNode = BooleanNode;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ListNode = void 0;\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nconst ListNode = (children, config) => {\r\n var _a, _b;\r\n const min = (_a = config === null || config === void 0 ? void 0 : config.minLength) !== null && _a !== void 0 ? _a : 0;\r\n const max = (_b = config === null || config === void 0 ? void 0 : config.maxLength) !== null && _b !== void 0 ? _b : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.minLength) && (config === null || config === void 0 ? void 0 : config.maxLength);\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'list',\r\n default: () => (config === null || config === void 0 ? void 0 : config.minLength) ? [...Array(min)].map(_ => children.default()) : [],\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, index) {\r\n return path.push(parseInt(index.toString())).contextPush('entry');\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && !Array.isArray(value)) {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (!Array.isArray(value)) {\r\n errors.add(path, 'error.expected_list');\r\n return value;\r\n }\r\n else if (between && (value.length < min || value.length > max)) {\r\n if (min === max) {\r\n errors.add(path, 'error.invalid_list_range.exact', value.length, min);\r\n }\r\n else {\r\n errors.add(path, 'error.invalid_list_range.between', value.length, min, max);\r\n }\r\n }\r\n else if (value.length < min) {\r\n errors.add(path, 'error.invalid_list_range.smaller', value.length, min);\r\n }\r\n else if (value.length > max) {\r\n errors.add(path, 'error.invalid_list_range.larger', value.length, max);\r\n }\r\n const res = value.map((obj, index) => {\r\n const newObj = children.validate(path.push(index), options.wrapLists ? obj.node : obj, errors, options);\r\n return options.wrapLists ? { node: newObj, id: obj.id } : newObj;\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.list) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n });\r\n};\r\nexports.ListNode = ListNode;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SwitchNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nconst SwitchNode = (cases) => {\r\n return {\r\n ...Node_1.Base,\r\n type(path) {\r\n return this.activeCase(path, true)\r\n .node.type(path);\r\n },\r\n category(path) {\r\n return this.activeCase(path, true)\r\n .node.category(path);\r\n },\r\n default: () => cases[0].node.default(),\r\n navigate(path, index) {\r\n var _a;\r\n const nextIndex = index + 1;\r\n return (_a = this.activeCase(path.slice(0, nextIndex))) === null || _a === void 0 ? void 0 : _a.node.navigate(path, index);\r\n },\r\n pathPush(path, key) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.pathPush(path, key)) !== null && _b !== void 0 ? _b : path;\r\n },\r\n suggest(path, value) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.suggest(path, value)) !== null && _b !== void 0 ? _b : cases\r\n .filter(c => c.match(path))\r\n .map(c => c.node.suggest(path, value))\r\n .reduce((p, c) => p.concat(c));\r\n },\r\n validate(path, value, errors, options) {\r\n let c = this.activeCase(path);\r\n if (c === undefined) {\r\n return value;\r\n }\r\n return c.node.validate(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.validationOption(path);\r\n },\r\n activeCase(path, fallback) {\r\n const sorter = (a, b) => { var _a, _b; return ((_a = b.priority) !== null && _a !== void 0 ? _a : 0) - ((_b = a.priority) !== null && _b !== void 0 ? _b : 0); };\r\n const matchedCases = cases.filter(c => c.match(path)).sort(sorter);\r\n if (fallback && matchedCases.length === 0) {\r\n return cases.sort(sorter)[0];\r\n }\r\n return (matchedCases.length > 0 ? matchedCases[0] : undefined);\r\n },\r\n hook(hook, path, ...args) {\r\n return this.activeCase(path, true)\r\n .node.hook(hook, path, ...args);\r\n },\r\n };\r\n};\r\nexports.SwitchNode = SwitchNode;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectOrPreset = exports.StringOrList = exports.ObjectOrList = exports.ChoiceNode = void 0;\r\nconst ListNode_1 = require(\"./ListNode\");\r\nconst SwitchNode_1 = require(\"./SwitchNode\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nconst ChoiceNode = (choices, config) => {\r\n const isValid = (choice, value) => {\r\n if (choice.match) {\r\n return choice.match(value);\r\n }\r\n switch (choice.type) {\r\n case 'list': return Array.isArray(value);\r\n case 'object': return typeof value === 'object' && !Array.isArray(value);\r\n default: return typeof value === choice.type;\r\n }\r\n };\r\n const switchNode = (0, SwitchNode_1.SwitchNode)(choices.map(c => ({\r\n type: c.type,\r\n priority: c.priority,\r\n match: (path) => isValid(c, path.get()),\r\n node: c.node\r\n })));\r\n return {\r\n ...switchNode,\r\n validate(path, value, errors, options) {\r\n let choice = switchNode.activeCase(path, true);\r\n if (choice.node.optional()) {\r\n return value;\r\n }\r\n return choice.node.validate(path, value, errors, options);\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.choice) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, choices, config: config !== null && config !== void 0 ? config : {}, switchNode }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.ChoiceNode = ChoiceNode;\r\nconst XOrList = (x) => ((node, config) => {\r\n return (0, exports.ChoiceNode)([\r\n {\r\n type: x,\r\n node,\r\n change: v => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : node.default(); }\r\n },\r\n {\r\n type: 'list',\r\n node: (0, ListNode_1.ListNode)(node),\r\n change: v => v ? [v] : []\r\n }\r\n ], config);\r\n});\r\nexports.ObjectOrList = XOrList('object');\r\nexports.StringOrList = XOrList('string');\r\nconst ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return (0, exports.ChoiceNode)([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: presetNode,\r\n change: v => Object.keys(presets)[0]\r\n },\r\n {\r\n type: 'object',\r\n node: objectNode,\r\n change: v => { var _a; return (_a = presets[v]) !== null && _a !== void 0 ? _a : presets[Object.keys(presets)[0]]; }\r\n }\r\n ]);\r\n};\r\nexports.ObjectOrPreset = ObjectOrPreset;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MapNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\n/**\r\n * Map nodes similar to list nodes, but a string key is required to add children\r\n */\r\nconst MapNode = (keys, children, config) => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'map',\r\n default: () => ({}),\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return path.modelPush(key);\r\n },\r\n suggest: (path) => keys.suggest(path, ''),\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (value === null || typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n const res = {};\r\n Object.keys(value).forEach(k => {\r\n keys.validate(path, k, errors, options);\r\n res[k] = children.validate(path.push(k), value[k], errors, options);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = config === null || config === void 0 ? void 0 : config.validation) !== null && _a !== void 0 ? _a : keys.validationOption(path.push(''));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, keys, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.MapNode = MapNode;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberEnum = exports.NumberNode = void 0;\r\nconst __1 = require(\"..\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nconst NumberNode = (config) => {\r\n var _a, _b, _c;\r\n const integer = (config === null || config === void 0 ? void 0 : config.color) ? true : (_a = config === null || config === void 0 ? void 0 : config.integer) !== null && _a !== void 0 ? _a : false;\r\n const min = (config === null || config === void 0 ? void 0 : config.color) ? 0 : (_b = config === null || config === void 0 ? void 0 : config.min) !== null && _b !== void 0 ? _b : -Infinity;\r\n const max = (config === null || config === void 0 ? void 0 : config.color) ? 16777215 : (_c = config === null || config === void 0 ? void 0 : config.max) !== null && _c !== void 0 ? _c : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.min) !== undefined && (config === null || config === void 0 ? void 0 : config.max) !== undefined;\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'number',\r\n default: () => min > 0 ? min : 0,\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'number') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'number') {\r\n errors.add(path, 'error.expected_number');\r\n }\r\n else if (integer && !Number.isInteger(value)) {\r\n errors.add(path, 'error.expected_integer');\r\n }\r\n else if (between && (value < min || value > max)) {\r\n errors.add(path, 'error.invalid_number_range.between', value, min, max);\r\n }\r\n else if (value < min) {\r\n errors.add(path, 'error.invalid_number_range.smaller', value, min);\r\n }\r\n else if (value > max) {\r\n errors.add(path, 'error.invalid_number_range.larger', value, max);\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.number) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, integer, min, max, between, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.NumberNode = NumberNode;\r\nconst NumberEnum = ({ integer, values }) => (0, __1.Mod)((0, exports.NumberNode)({ integer }), node => ({\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if (!values.includes(value)) {\r\n errors.add(path, 'error.invalid_number_enum', values.join(', '));\r\n }\r\n return value;\r\n }\r\n}));\r\nexports.NumberEnum = NumberEnum;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectNode = exports.Case = exports.Switch = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst Path_1 = require(\"../model/Path\");\r\nconst Errors_1 = require(\"../model/Errors\");\r\nconst utils_1 = require(\"../utils\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nexports.Switch = Symbol('switch');\r\nexports.Case = Symbol('case');\r\nconst ObjectNode = (fields, config) => {\r\n const { [exports.Switch]: filter, [exports.Case]: cases, ...defaultFields } = fields;\r\n const getActiveFields = (path) => {\r\n if (filter === undefined)\r\n return defaultFields;\r\n const switchValue = (0, Path_1.relativePath)(path, filter).get();\r\n const activeCase = cases[switchValue];\r\n return { ...defaultFields, ...activeCase };\r\n };\r\n const getChildModelPath = (path, childKey) => {\r\n var _a;\r\n const switchValue = filter ? (0, Path_1.relativePath)(path, filter).get() : undefined;\r\n const caseFields = filter ? ((_a = cases[switchValue]) !== null && _a !== void 0 ? _a : {}) : {};\r\n const caseKeys = Object.keys(caseFields);\r\n const pathWithContext = (config === null || config === void 0 ? void 0 : config.context) ?\r\n new Path_1.ModelPath(path.getModel(), new Path_1.Path(path.getArray(), [config.context])) : path;\r\n const pathWithFilter = !(config === null || config === void 0 ? void 0 : config.disableSwitchContext) && switchValue && caseKeys.includes(childKey) ?\r\n pathWithContext.contextPush(switchValue) : pathWithContext;\r\n return pathWithFilter.push(childKey);\r\n };\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'object',\r\n category: () => config === null || config === void 0 ? void 0 : config.category,\r\n default: () => ({}),\r\n keep() {\r\n return this.optional();\r\n },\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n const activeFields = getActiveFields(path.slice(0, nextIndex));\r\n const node = activeFields[pathElements[nextIndex]];\r\n return node === null || node === void 0 ? void 0 : node.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return getChildModelPath(path, key.toString());\r\n },\r\n suggest(path, value) {\r\n const activeFields = getActiveFields(path);\r\n const existingKeys = Object.keys(typeof value === 'object' ? value : {});\r\n return Object.keys(activeFields)\r\n .filter(k => activeFields[k].enabled(path))\r\n .filter(k => !existingKeys.includes(k))\r\n .map(utils_1.quoteString);\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'object' || value === null) {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let activeFields = defaultFields;\r\n if (filter) {\r\n const filterPath = (0, Path_1.relativePath)(path, filter);\r\n let switchValue = filterPath.get();\r\n if (path.equals(filterPath.pop())) {\r\n const filterField = filterPath.last();\r\n switchValue = defaultFields[filterField].validate(path.push(filterField), value[filterField], new Errors_1.Errors(), options);\r\n }\r\n activeFields = { ...activeFields, ...cases[switchValue] };\r\n }\r\n const activeKeys = Object.keys(activeFields);\r\n const forcedKeys = activeKeys.filter(k => !activeFields[k].optional());\r\n const keys = new Set([...forcedKeys, ...Object.keys(value)]);\r\n const res = {};\r\n keys.forEach(k => {\r\n if (activeKeys.includes(k)) {\r\n if (!activeFields[k].enabled(path))\r\n return;\r\n const newValue = activeFields[k].validate(path.push(k), value[k], errors, options);\r\n if (!activeFields[k].keep() && activeFields[k].optional()\r\n && (newValue === undefined\r\n || (Array.isArray(newValue) && newValue.length === 0)\r\n || (newValue.constructor === Object && Object.keys(newValue).length === 0))) {\r\n delete res[k];\r\n }\r\n else {\r\n res[k] = newValue;\r\n path.getModel().set(path.push(k), newValue, true);\r\n }\r\n }\r\n else {\r\n res[k] = value[k];\r\n }\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, fields: defaultFields, config: config !== null && config !== void 0 ? config : {}, filter, cases, getActiveFields, getChildModelPath }, path, ...args);\r\n }\r\n });\r\n};\r\nexports.ObjectNode = ObjectNode;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nconst Reference = (schemas, schema) => ({\r\n type(path) {\r\n return schemas.get(schema).type.bind(this)(path);\r\n },\r\n category(path) {\r\n return schemas.get(schema).category.bind(this)(path);\r\n },\r\n default() {\r\n return schemas.get(schema).default.bind(this)();\r\n },\r\n transform(path, value) {\r\n return schemas.get(schema).transform(path, value);\r\n },\r\n enabled(path) {\r\n return schemas.get(schema).enabled.bind(this)(path);\r\n },\r\n keep() {\r\n return schemas.get(schema).keep.bind(this)();\r\n },\r\n optional() {\r\n return schemas.get(schema).optional.bind(this)();\r\n },\r\n navigate(path, index) {\r\n return schemas.get(schema).navigate.bind(this)(path, index);\r\n },\r\n pathPush(path, key) {\r\n return schemas.get(schema).pathPush.bind(this)(path, key);\r\n },\r\n suggest(path, value) {\r\n return schemas.get(schema).suggest.bind(this)(path, value);\r\n },\r\n validate(path, value, errors, options) {\r\n return schemas.get(schema).validate.bind(this)(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n return schemas.get(schema).validationOption.bind(this)(path);\r\n },\r\n hook(hook, path, ...args) {\r\n return schemas.get(schema).hook.bind(this)(hook, path, ...args);\r\n },\r\n activeCase(path, fallback) {\r\n return schemas.get(schema).activeCase.bind(this)(path, fallback);\r\n },\r\n canUpdate(path, value) {\r\n return schemas.get(schema).canUpdate.bind(this)(path, value);\r\n },\r\n update(path, value) {\r\n return schemas.get(schema).update.bind(this)(path, value);\r\n }\r\n});\r\nexports.Reference = Reference;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StringNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst utils_1 = require(\"../utils\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst isEnum = (value) => {\r\n return !!(value === null || value === void 0 ? void 0 : value.enum);\r\n};\r\nconst isValidator = (value) => {\r\n return !!(value === null || value === void 0 ? void 0 : value.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nconst StringNode = (collections, config) => {\r\n const getValues = () => {\r\n var _a, _b, _c, _d;\r\n if (isEnum(config)) {\r\n if (typeof config.enum === 'string') {\r\n return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : [];\r\n }\r\n return config.enum;\r\n }\r\n if ((config === null || config === void 0 ? void 0 : config.validator) === 'resource') {\r\n if (typeof config.params.pool === 'string') {\r\n if (config.params.requireTag) {\r\n return (_b = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${config.params.pool}`).map(e => `#${e}`)) !== null && _b !== void 0 ? _b : [];\r\n }\r\n const registry = config.params.pool.replace(/^\\$/, '');\r\n return [\r\n ...config.params.allowTag ? (_c = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${registry}`).map(e => `#${e}`)) !== null && _c !== void 0 ? _c : [] : [],\r\n ...(_d = collections === null || collections === void 0 ? void 0 : collections.get(registry)) !== null && _d !== void 0 ? _d : [],\r\n ];\r\n }\r\n return config.params.pool;\r\n }\r\n return [];\r\n };\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'string',\r\n default: () => '',\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'string') {\r\n value = (options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default()) || undefined;\r\n }\r\n if (typeof value !== 'string') {\r\n errors.add(path, 'error.expected_string');\r\n return value;\r\n }\r\n if (isValidator(config)) {\r\n if (config.validator === 'resource' && value.length > 0 && !value.includes(':')) {\r\n value = value.startsWith('#')\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && typeof value == 'string') {\r\n let id = value;\r\n if (value.startsWith('#')) {\r\n if (typeof config.params.pool === 'string' && config.params.pool.startsWith('$tag/')) {\r\n errors.add(path, 'error.disallowed_tag_prefix');\r\n return value;\r\n }\r\n else if (!config.params.allowTag && !config.params.requireTag) {\r\n errors.add(path, 'error.disallowed_tag');\r\n return value;\r\n }\r\n id = id.slice(1);\r\n }\r\n else if (config.params.requireTag) {\r\n errors.add(path, 'error.expected_tag');\r\n return value;\r\n }\r\n if (!id.match(/^(?:[_\\-a-z0-9.]*:)?[_\\-a-z0-9/.]*$/g)) {\r\n errors.add(path, 'error.invalid_resource_location');\r\n return value;\r\n }\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n ((config.params.allowTag || config.params.requireTag) && value.startsWith('#')) ||\r\n config.params.isDefinition ||\r\n config.params.allowUnknown)) {\r\n return value;\r\n }\r\n }\r\n if ((isEnum(config) && config.additional)) {\r\n return value;\r\n }\r\n const values = getValues();\r\n if (values.length > 0 && !values.includes(value)) {\r\n errors.add(path, 'error.invalid_enum_option', value);\r\n }\r\n return value;\r\n },\r\n suggest: () => getValues().map(utils_1.quoteString),\r\n validationOption() {\r\n return isValidator(config) ? config : undefined;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.string) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, getValues, config }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.StringNode = StringNode;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CollectionRegistry = exports.SchemaRegistry = void 0;\r\n/**\r\n * Registry for schemas\r\n */\r\nclass SchemaRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, node) {\r\n this.registry[id] = node;\r\n }\r\n get(id) {\r\n const node = this.registry[id];\r\n if (node === undefined) {\r\n console.error(`Tried to access schema \"${id}\", but that doesn't exist.`);\r\n }\r\n return node;\r\n }\r\n}\r\nexports.SchemaRegistry = SchemaRegistry;\r\n/**\r\n * Registry for collections\r\n */\r\nclass CollectionRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, list) {\r\n this.registry[id] = list;\r\n }\r\n get(id) {\r\n const list = this.registry[id];\r\n if (list === undefined) {\r\n console.warn(`Tried to access collection \"${id}\", but that doesn't exist.`);\r\n }\r\n return list !== null && list !== void 0 ? list : [];\r\n }\r\n}\r\nexports.CollectionRegistry = CollectionRegistry;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./model/DataModel\"), exports);\r\n__exportStar(require(\"./model/Path\"), exports);\r\n__exportStar(require(\"./model/Errors\"), exports);\r\n__exportStar(require(\"./nodes/Node\"), exports);\r\n__exportStar(require(\"./nodes/BooleanNode\"), exports);\r\n__exportStar(require(\"./nodes/ChoiceNode\"), exports);\r\n__exportStar(require(\"./nodes/ListNode\"), exports);\r\n__exportStar(require(\"./nodes/MapNode\"), exports);\r\n__exportStar(require(\"./nodes/NumberNode\"), exports);\r\n__exportStar(require(\"./nodes/ObjectNode\"), exports);\r\n__exportStar(require(\"./nodes/Reference\"), exports);\r\n__exportStar(require(\"./nodes/StringNode\"), exports);\r\n__exportStar(require(\"./nodes/SwitchNode\"), exports);\r\n__exportStar(require(\"./Hook\"), exports);\r\n__exportStar(require(\"./Registries\"), exports);\r\n__exportStar(require(\"./ValidationOption\"), exports);\r\n","'use strict';\n\n\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nmodule.exports.isNothing = isNothing;\nmodule.exports.isObject = isObject;\nmodule.exports.toArray = toArray;\nmodule.exports.repeat = repeat;\nmodule.exports.isNegativeZero = isNegativeZero;\nmodule.exports.extend = extend;\n","// YAML error class. http://stackoverflow.com/questions/8458984\n//\n'use strict';\n\nfunction YAMLException(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : '');\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException.prototype = Object.create(Error.prototype);\nYAMLException.prototype.constructor = YAMLException;\n\n\nYAMLException.prototype.toString = function toString(compact) {\n var result = this.name + ': ';\n\n result += this.reason || '(unknown reason)';\n\n if (!compact && this.mark) {\n result += ' ' + this.mark.toString();\n }\n\n return result;\n};\n\n\nmodule.exports = YAMLException;\n","'use strict';\n\n\nvar common = require('./common');\n\n\nfunction Mark(name, buffer, position, line, column) {\n this.name = name;\n this.buffer = buffer;\n this.position = position;\n this.line = line;\n this.column = column;\n}\n\n\nMark.prototype.getSnippet = function getSnippet(indent, maxLength) {\n var head, start, tail, end, snippet;\n\n if (!this.buffer) return null;\n\n indent = indent || 4;\n maxLength = maxLength || 75;\n\n head = '';\n start = this.position;\n\n while (start > 0 && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) {\n start -= 1;\n if (this.position - start > (maxLength / 2 - 1)) {\n head = ' ... ';\n start += 5;\n break;\n }\n }\n\n tail = '';\n end = this.position;\n\n while (end < this.buffer.length && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(end)) === -1) {\n end += 1;\n if (end - this.position > (maxLength / 2 - 1)) {\n tail = ' ... ';\n end -= 5;\n break;\n }\n }\n\n snippet = this.buffer.slice(start, end);\n\n return common.repeat(' ', indent) + head + snippet + tail + '\\n' +\n common.repeat(' ', indent + this.position - start + head.length) + '^';\n};\n\n\nMark.prototype.toString = function toString(compact) {\n var snippet, where = '';\n\n if (this.name) {\n where += 'in \"' + this.name + '\" ';\n }\n\n where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1);\n\n if (!compact) {\n snippet = this.getSnippet();\n\n if (snippet) {\n where += ':\\n' + snippet;\n }\n }\n\n return where;\n};\n\n\nmodule.exports = Mark;\n","'use strict';\n\nvar YAMLException = require('./exception');\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new YAMLException('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new YAMLException('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nmodule.exports = Type;\n","'use strict';\n\n/*eslint-disable max-len*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Type = require('./type');\n\n\nfunction compileList(schema, name, result) {\n var exclude = [];\n\n schema.include.forEach(function (includedSchema) {\n result = compileList(includedSchema, name, result);\n });\n\n schema[name].forEach(function (currentType) {\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) {\n exclude.push(previousIndex);\n }\n });\n\n result.push(currentType);\n });\n\n return result.filter(function (type, index) {\n return exclude.indexOf(index) === -1;\n });\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {}\n }, index, length;\n\n function collectType(type) {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema(definition) {\n this.include = definition.include || [];\n this.implicit = definition.implicit || [];\n this.explicit = definition.explicit || [];\n\n this.implicit.forEach(function (type) {\n if (type.loadKind && type.loadKind !== 'scalar') {\n throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n });\n\n this.compiledImplicit = compileList(this, 'implicit', []);\n this.compiledExplicit = compileList(this, 'explicit', []);\n this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit);\n}\n\n\nSchema.DEFAULT = null;\n\n\nSchema.create = function createSchema() {\n var schemas, types;\n\n switch (arguments.length) {\n case 1:\n schemas = Schema.DEFAULT;\n types = arguments[0];\n break;\n\n case 2:\n schemas = arguments[0];\n types = arguments[1];\n break;\n\n default:\n throw new YAMLException('Wrong number of arguments for Schema.create function');\n }\n\n schemas = common.toArray(schemas);\n types = common.toArray(types);\n\n if (!schemas.every(function (schema) { return schema instanceof Schema; })) {\n throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.');\n }\n\n if (!types.every(function (type) { return type instanceof Type; })) {\n throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n return new Schema({\n include: schemas,\n explicit: types\n });\n};\n\n\nmodule.exports = Schema;\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n","// Standard YAML's Failsafe schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2802346\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n explicit: [\n require('../type/str'),\n require('../type/seq'),\n require('../type/map')\n ]\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 8\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 10 (except 0) or base 60\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch === ':') break;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n // if !base60 - done;\n if (ch !== ':') return true;\n\n // base60 almost not used, no needs to optimize\n return /^(:[0-5]?[0-9])+$/.test(data.slice(index));\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch, base, digits = [];\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value, 16);\n return sign * parseInt(value, 8);\n }\n\n if (value.indexOf(':') !== -1) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseInt(v, 10));\n });\n\n value = 0;\n base = 1;\n\n digits.forEach(function (d) {\n value += (d * base);\n base *= 60;\n });\n\n return sign * value;\n\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // 20:59\n '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign, base, digits;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n digits = [];\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n\n } else if (value.indexOf(':') >= 0) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseFloat(v, 10));\n });\n\n value = 0.0;\n base = 1;\n\n digits.forEach(function (d) {\n value += d * base;\n base *= 60;\n });\n\n return sign * value;\n\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n","// Standard YAML's JSON schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2803231\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, this schema is not such strict as defined in the YAML specification.\n// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./failsafe')\n ],\n implicit: [\n require('../type/null'),\n require('../type/bool'),\n require('../type/int'),\n require('../type/float')\n ]\n});\n","// Standard YAML's Core schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2804923\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, Core schema has no distinctions from JSON schema is JS-YAML.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./json')\n ]\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n","'use strict';\n\n/*eslint-disable no-bitwise*/\n\nvar NodeBuffer;\n\ntry {\n // A trick for browserified version, to not include `Buffer` shim\n var _require = require;\n NodeBuffer = _require('buffer').Buffer;\n} catch (__) {}\n\nvar Type = require('../type');\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n // Wrap into Buffer for NodeJS and leave Array for browser\n if (NodeBuffer) {\n // Support node 6.+ Buffer API when available\n return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result);\n }\n\n return result;\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(object) {\n return NodeBuffer && NodeBuffer.isBuffer(object);\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n","// JS-YAML's default schema for `safeLoad` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on standard YAML's Core schema and includes most of\n// extra types described at YAML tag repository. (http://yaml.org/type/)\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./core')\n ],\n implicit: [\n require('../type/timestamp'),\n require('../type/merge')\n ],\n explicit: [\n require('../type/binary'),\n require('../type/omap'),\n require('../type/pairs'),\n require('../type/set')\n ]\n});\n","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptUndefined() {\n return true;\n}\n\nfunction constructJavascriptUndefined() {\n /*eslint-disable no-undefined*/\n return undefined;\n}\n\nfunction representJavascriptUndefined() {\n return '';\n}\n\nfunction isUndefined(object) {\n return typeof object === 'undefined';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/undefined', {\n kind: 'scalar',\n resolve: resolveJavascriptUndefined,\n construct: constructJavascriptUndefined,\n predicate: isUndefined,\n represent: representJavascriptUndefined\n});\n","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptRegExp(data) {\n if (data === null) return false;\n if (data.length === 0) return false;\n\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // if regexp starts with '/' it can have modifiers and must be properly closed\n // `/foo/gim` - modifiers tail can be maximum 3 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n\n if (modifiers.length > 3) return false;\n // if expression starts with /, is should be properly terminated\n if (regexp[regexp.length - modifiers.length - 1] !== '/') return false;\n }\n\n return true;\n}\n\nfunction constructJavascriptRegExp(data) {\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // `/foo/gim` - tail can be maximum 4 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n regexp = regexp.slice(1, regexp.length - modifiers.length - 1);\n }\n\n return new RegExp(regexp, modifiers);\n}\n\nfunction representJavascriptRegExp(object /*, style*/) {\n var result = '/' + object.source + '/';\n\n if (object.global) result += 'g';\n if (object.multiline) result += 'm';\n if (object.ignoreCase) result += 'i';\n\n return result;\n}\n\nfunction isRegExp(object) {\n return Object.prototype.toString.call(object) === '[object RegExp]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/regexp', {\n kind: 'scalar',\n resolve: resolveJavascriptRegExp,\n construct: constructJavascriptRegExp,\n predicate: isRegExp,\n represent: representJavascriptRegExp\n});\n","'use strict';\n\nvar esprima;\n\n// Browserified version does not have esprima\n//\n// 1. For node.js just require module as deps\n// 2. For browser try to require mudule via external AMD system.\n// If not found - try to fallback to window.esprima. If not\n// found too - then fail to parse.\n//\ntry {\n // workaround to exclude package from browserify list.\n var _require = require;\n esprima = _require('esprima');\n} catch (_) {\n /* eslint-disable no-redeclare */\n /* global window */\n if (typeof window !== 'undefined') esprima = window.esprima;\n}\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptFunction(data) {\n if (data === null) return false;\n\n try {\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true });\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n return false;\n }\n\n return true;\n } catch (err) {\n return false;\n }\n}\n\nfunction constructJavascriptFunction(data) {\n /*jslint evil:true*/\n\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true }),\n params = [],\n body;\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n throw new Error('Failed to resolve function');\n }\n\n ast.body[0].expression.params.forEach(function (param) {\n params.push(param.name);\n });\n\n body = ast.body[0].expression.body.range;\n\n // Esprima's ranges include the first '{' and the last '}' characters on\n // function expressions. So cut them out.\n if (ast.body[0].expression.body.type === 'BlockStatement') {\n /*eslint-disable no-new-func*/\n return new Function(params, source.slice(body[0] + 1, body[1] - 1));\n }\n // ES6 arrow functions can omit the BlockStatement. In that case, just return\n // the body.\n /*eslint-disable no-new-func*/\n return new Function(params, 'return ' + source.slice(body[0], body[1]));\n}\n\nfunction representJavascriptFunction(object /*, style*/) {\n return object.toString();\n}\n\nfunction isFunction(object) {\n return Object.prototype.toString.call(object) === '[object Function]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/function', {\n kind: 'scalar',\n resolve: resolveJavascriptFunction,\n construct: constructJavascriptFunction,\n predicate: isFunction,\n represent: representJavascriptFunction\n});\n","// JS-YAML's default schema for `load` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on JS-YAML's default safe schema and includes\n// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function.\n//\n// Also this schema is used as default base schema at `Schema.create` function.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = Schema.DEFAULT = new Schema({\n include: [\n require('./default_safe')\n ],\n explicit: [\n require('../type/js/undefined'),\n require('../type/js/regexp'),\n require('../type/js/function')\n ]\n});\n","'use strict';\n\n/*eslint-disable max-len,no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Mark = require('./mark');\nvar DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');\nvar DEFAULT_FULL_SCHEMA = require('./schema/default_full');\n\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;\n this.onWarning = options['onWarning'] || null;\n this.legacy = options['legacy'] || false;\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n return new YAMLException(\n message,\n new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart)));\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) {\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty.call(overridableKeys, keyNode) &&\n _hasOwnProperty.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n _result[keyNode] = valueNode;\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = {},\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _pos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = {},\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n _pos = state.position;\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else {\n break; // Reading is done. Go to the epilogue.\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if (state.lineIndent > nodeIndent && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag !== null && state.tag !== '!') {\n if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = {};\n state.anchorMap = {};\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new YAMLException('expected a single document in the stream, but found more');\n}\n\n\nfunction safeLoadAll(input, iterator, options) {\n if (typeof iterator === 'object' && iterator !== null && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n return loadAll(input, iterator, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\n\nfunction safeLoad(input, options) {\n return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\n\nmodule.exports.loadAll = loadAll;\nmodule.exports.load = load;\nmodule.exports.safeLoadAll = safeLoadAll;\nmodule.exports.safeLoad = safeLoad;\n","'use strict';\n\n/*eslint-disable no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar DEFAULT_FULL_SCHEMA = require('./schema/default_full');\nvar DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\nfunction State(options) {\n this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// [24] b-line-feed ::= #xA /* LF */\n// [25] b-carriage-return ::= #xD /* CR */\n// [3] c-byte-order-mark ::= #xFEFF\nfunction isNsChar(c) {\n return isPrintable(c) && !isWhitespace(c)\n // byte-order-mark\n && c !== 0xFEFF\n // b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// Simplified test for values allowed after the first character in plain style.\nfunction isPlainSafe(c, prev) {\n // Uses a subset of nb-char - c-flow-indicator - \":\" - \"#\"\n // where nb-char ::= c-printable - b-char - c-byte-order-mark.\n return isPrintable(c) && c !== 0xFEFF\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // - \":\" - \"#\"\n // /* An ns-char preceding */ \"#\"\n && c !== CHAR_COLON\n && ((c !== CHAR_SHARP) || (prev && isNsChar(prev)));\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n return isPrintable(c) && c !== 0xFEFF\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) {\n var i;\n var char, prev_char;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(string.charCodeAt(0))\n && !isWhitespace(string.charCodeAt(string.length - 1));\n\n if (singleLineOnly) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n return plain && !testAmbiguousType(string)\n ? STYLE_PLAIN : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey) {\n state.dump = (function () {\n if (string.length === 0) {\n return \"''\";\n }\n if (!state.noCompatMode &&\n DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) {\n return \"'\" + string + \"'\";\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) {\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string, lineWidth) + '\"';\n default:\n throw new YAMLException('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char, nextChar;\n var escapeSeq;\n\n for (var i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n // Check for surrogate pairs (reference Unicode 3.0 section \"3.7 Surrogates\").\n if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) {\n nextChar = string.charCodeAt(i + 1);\n if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) {\n // Combine the surrogate pair and store it escaped.\n result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000);\n // Advance index one extra since we already used that char here.\n i++; continue;\n }\n }\n escapeSeq = ESCAPE_SEQUENCES[char];\n result += !escapeSeq && isPrintable(char)\n ? string[i]\n : escapeSeq || encodeHex(char);\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode(state, level, object[index], false, false)) {\n if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode(state, level + 1, object[index], true, true)) {\n if (!compact || index !== 0) {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (index !== 0) pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new YAMLException('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || index !== 0) {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n state.tag = explicit ? type.tag : '?';\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new YAMLException('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n var arrayLevel = (state.noArrayIndent && (level > 0)) ? level - 1 : level;\n if (block && (state.dump.length !== 0)) {\n writeBlockSequence(state, arrayLevel, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, arrayLevel, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey);\n }\n } else {\n if (state.skipInvalid) return false;\n throw new YAMLException('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n state.dump = '!<' + state.tag + '> ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n if (writeNode(state, 0, input, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nfunction safeDump(input, options) {\n return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\nmodule.exports.dump = dump;\nmodule.exports.safeDump = safeDump;\n","'use strict';\n\n\nvar loader = require('./js-yaml/loader');\nvar dumper = require('./js-yaml/dumper');\n\n\nfunction deprecated(name) {\n return function () {\n throw new Error('Function ' + name + ' is deprecated and cannot be used.');\n };\n}\n\n\nmodule.exports.Type = require('./js-yaml/type');\nmodule.exports.Schema = require('./js-yaml/schema');\nmodule.exports.FAILSAFE_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.JSON_SCHEMA = require('./js-yaml/schema/json');\nmodule.exports.CORE_SCHEMA = require('./js-yaml/schema/core');\nmodule.exports.DEFAULT_SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_FULL_SCHEMA = require('./js-yaml/schema/default_full');\nmodule.exports.load = loader.load;\nmodule.exports.loadAll = loader.loadAll;\nmodule.exports.safeLoad = loader.safeLoad;\nmodule.exports.safeLoadAll = loader.safeLoadAll;\nmodule.exports.dump = dumper.dump;\nmodule.exports.safeDump = dumper.safeDump;\nmodule.exports.YAMLException = require('./js-yaml/exception');\n\n// Deprecated schema names from JS-YAML 2.0.x\nmodule.exports.MINIMAL_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_SCHEMA = require('./js-yaml/schema/default_full');\n\n// Deprecated functions from JS-YAML 1.x.x\nmodule.exports.scan = deprecated('scan');\nmodule.exports.parse = deprecated('parse');\nmodule.exports.compose = deprecated('compose');\nmodule.exports.addConstructor = deprecated('addConstructor');\n","'use strict';\n\n\nvar yaml = require('./lib/js-yaml.js');\n\n\nmodule.exports = yaml;\n","'use strict'\nmodule.exports = rfdc\n\nfunction copyBuffer (cur) {\n if (cur instanceof Buffer) {\n return Buffer.from(cur)\n }\n\n return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length)\n}\n\nfunction rfdc (opts) {\n opts = opts || {}\n\n if (opts.circles) return rfdcCircles(opts)\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n a2[k] = fn(cur)\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = clone(cur)\n }\n }\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n return o2\n }\n}\n\nfunction rfdcCircles (opts) {\n var refs = []\n var refsNew = []\n\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n var index = refs.indexOf(cur)\n if (index !== -1) {\n a2[k] = refsNew[index]\n } else {\n a2[k] = fn(cur)\n }\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = clone(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport yaml from 'js-yaml'\nimport { route } from 'preact-router'\nimport rfdc from 'rfdc'\nimport config from '../config.json'\n\nexport function isPromise(obj: any): obj is Promise {\n\treturn typeof (obj as any)?.then === 'function' \n}\n\nexport function isObject(obj: any): obj is Record {\n\treturn typeof obj === 'object' && obj !== null\n}\n\nconst dec2hex = (dec: number) => ('0' + dec.toString(16)).substr(-2)\n\nexport function hexId(length = 12) {\n\tvar arr = new Uint8Array(length / 2)\n\twindow.crypto.getRandomValues(arr)\n\treturn Array.from(arr, dec2hex).join('')\n}\n\nexport function randomSeed() {\n\treturn BigInt(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER))\n}\n\nexport function newSeed(model: DataModel) {\n\tconst seed = Math.floor(Math.random() * (4294967296)) - 2147483648\n\tconst dimensions = model.get(new Path(['dimensions']))\n\tmodel.set(new Path(['seed']), seed, true)\n\tif (isObject(dimensions)) {\n\t\tObject.keys(dimensions).forEach(id => {\n\t\t\tmodel.set(new Path(['dimensions', id, 'generator', 'seed']), seed, true)\n\t\t\tmodel.set(new Path(['dimensions', id, 'generator', 'biome_source', 'seed']), seed, true)\n\t\t})\n\t}\n\tmodel.set(new Path(['placement', 'salt']), Math.abs(seed), true)\n\tmodel.set(new Path(['generator', 'seed']), seed, true)\n\tmodel.set(new Path(['generator', 'biome_source', 'seed']), seed)\n}\n\nexport function htmlEncode(str: string) {\n\treturn str.replace(/&/g, '&').replace(//g, '>')\n\t\t.replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/')\n}\n\nexport function hashString(s: string) {\n\tlet h = 0\n\tfor(let i = 0; i < s.length; i++)\n\t\th = Math.imul(31, h) + s.charCodeAt(i) | 0\n\treturn h\n}\n\nexport function cleanUrl(url: string) {\n\treturn `/${url}/`.replaceAll('//', '/')\n}\n\nexport function getPath(url: string) {\n\tconst searchIndex = url.indexOf('?')\n\tif (searchIndex >= 0) {\n\t\turl = url.slice(0, searchIndex)\n\t}\n\treturn cleanUrl(url)\n}\n\nexport function getGenerator(url: string) {\n\tconst trimmedUrl = getPath(url).replace(/^\\//, '').replace(/\\/$/, '')\n\treturn config.generators.find(g => g.url === trimmedUrl)\n}\n\nexport function changeUrl({ path, search, hash, replace }: { path?: string, search?: string, hash?: string, replace?: boolean }) {\n\tconst url = (path !== undefined ? cleanUrl(path) : location.pathname)\n\t\t+ (search !== undefined ? (search.startsWith('?') || search.length === 0 ? search : '?' + search) : location.search)\n\t\t+ (hash !== undefined ? (hash.startsWith('#') ? hash : '#' + hash) : location.hash)\n\troute(url, replace)\n}\n\nexport function parseFrontMatter(source: string): Record {\n\tconst data = yaml.load(source.substring(3, source.indexOf('---', 3)))\n\tif (!isObject(data)) return {}\n\treturn data\n}\n\nexport function versionContent(content: string, version: string) {\n\tlet cursor = 0\n\twhile (true) {\n\t\tconst start = content.indexOf('{#', cursor)\n\t\tif (start < 0) {\n\t\t\tbreak\n\t\t}\n\t\tconst end = findMatchingClose(content, start + 2)\n\t\tconst vStart = content.indexOf('#[', start + 1)\n\t\tlet sub = ''\n\t\tif (vStart >= 0 && vStart < end) {\n\t\t\tconst vEnd = content.indexOf(']', vStart + 2)\n\t\t\tconst v = content.substring(vStart + 2, vEnd)\n\t\t\tif (v === version) {\n\t\t\t\tsub = content.substring(vEnd + 1, end).trim()\n\t\t\t}\n\t\t} else {\n\t\t\tconst key = content.substring(start + 2, end)\n\t\t\tconst versionConfig = config.versions.find(v => v.id === version)\n\t\t\tsub = ({\n\t\t\t\tversion: versionConfig?.id,\n\t\t\t\tpack_format: versionConfig?.pack_format.toString(),\n\t\t\t} as Record)[key] ?? ''\n\t\t}\n\t\tcontent = content.substring(0, start) + sub + content.substring(end + 2)\n\t\tcursor = start\n\t\t\n\t}\n\treturn content\n}\n\nfunction findMatchingClose(source: string, index: number) {\n\tlet depth = 0\n\tlet iteration = 0\n\twhile (iteration++ < 1000) {\n\t\tconst close = source.indexOf('#}', index)\n\t\tconst open = source.indexOf('{#', index)\n\t\tif (close < 0) {\n\t\t\tconsole.warn('Missing closing bracket')\n\t\t\treturn source.length\n\t\t}\n\t\tif (open < 0) {\n\t\t\tif (depth === 0) {\n\t\t\t\treturn close\n\t\t\t} else {\n\t\t\t\tdepth -= 1\n\t\t\t\tindex = close + 2\n\t\t\t}\n\t\t} else if (open < close) {\n\t\t\tdepth += 1\n\t\t\tindex = open + 2\n\t\t} else if (depth === 0) {\n\t\t\treturn close\n\t\t} else {\n\t\t\tdepth -= 1\n\t\t\tindex = close + 2\n\t\t}\n\t}\n\tconsole.warn('Exceeded max iterations while finding closing bracket')\n\treturn source.length\n}\n\nexport function stringToColor(str: string): [number, number, number] {\n\tconst h = Math.abs(hashString(str))\n\treturn [h % 256, (h >> 8) % 256, (h >> 16) % 256]\n}\n\nexport function square(a: number) {\n\treturn a * a\n}\n\nexport function clamp(a: number, b: number, c: number) {\n\treturn Math.max(a, Math.min(b, c))\n}\n\nexport function clampedLerp(a: number, b: number, c: number): number {\n\tif (c < 0) {\n\t\treturn a\n\t} else if (c > 1) {\n\t\treturn b\n\t} else {\n\t\treturn lerp(c, a, b)\n\t}\n}\n\nexport function lerp(a: number, b: number, c: number): number {\n\treturn b + a * (c - b)\n}\n\nexport function lerp2(a: number, b: number, c: number, d: number, e: number, f: number): number {\n\treturn lerp(b, lerp(a, c, d), lerp(a, e, f))\n}\n\nexport function lerp3(a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) {\n\treturn lerp(c, lerp2(a, b, d, e, f, g), lerp2(a, b, h, i, j, k))\n}\n\nexport function smoothstep(x: number): number {\n\treturn x * x * x * (x * (x * 6 - 15) + 10)\n}\n\nexport function message(e: unknown): string {\n\tif (e instanceof Error) return e.message\n\treturn `${e}`\n}\n\nexport const deepClone = rfdc()\n\n/**\n * MIT License\n * \n * Copyright (c) 2017 Evgeny Poberezkin\n * \n * https://github.com/epoberezkin/fast-deep-equal/blob/master/LICENSE\n */\nexport function deepEqual(a: any, b: any) {\n\tif (a === b) return true\n\n\tif (a && b && typeof a == 'object' && typeof b == 'object') {\n\t\tif (a.constructor !== b.constructor) return false\n\t\tlet length, i\n\t\tif (Array.isArray(a)) {\n\t\t\tlength = a.length\n\t\t\tif (length != b.length) return false\n\t\t\tfor (i = 0; i < length; i++) {\n\t\t\t\tif (!deepEqual(a[i], b[i])) return false\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t\tif (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf()\n\t\tif (a.toString !== Object.prototype.toString) return a.toString() === b.toString()\n\t\tconst keys = Object.keys(a)\n\t\tlength = keys.length\n\t\tif (length !== Object.keys(b).length) return false\n\t\tfor (i = length; i-- !== 0;)\n\t\t\tif (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false\n\t\tfor (i = length; i-- !== 0;) {\n\t\t\tconst key = keys[i]\n\t\t\tif (!deepEqual(a[key], b[key])) return false\n\t\t}\n\t\treturn true\n\t}\n\treturn a !== a && b !== b\n}\n\nexport class BiMap {\n\tprivate readonly forward: Map\n\tprivate readonly backward: Map\n\n\tconstructor() {\n\t\tthis.forward = new Map()\n\t\tthis.backward = new Map()\n\t}\n\n\tpublic set(a: A, b: B) {\n\t\tthis.forward.set(a, b)\n\t\tthis.backward.set(b, a)\n\t}\n\n\tpublic getA(key: B) {\n\t\treturn this.backward.get(key)\n\t}\n\n\tpublic getB(key: A) {\n\t\treturn this.forward.get(key)\n\t}\n\n\tpublic getOrPut(key: A, defaultValue: B) {\n\t\tconst b = this.forward.get(key)\n\t\tif (b === undefined) {\n\t\t\tthis.set(key, defaultValue)\n\t\t\treturn defaultValue\n\t\t}\n\t\treturn b\n\t}\n}\n","import { useEffect, useRef } from 'preact/hooks'\nimport { Octicon } from '.'\nimport { hexId } from '../Utils'\n\ntype BtnInputProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tlarge?: boolean,\n\tlarger?: boolean,\n\tdoSelect?: number,\n\tvalue?: string,\n\tplaceholder?: string,\n\tdataList?: string[],\n\tonChange?: (value: string) => unknown,\n}\nexport function BtnInput({ icon, label, large, larger, doSelect, value, placeholder, dataList, onChange }: BtnInputProps) {\n\tconst onInput = onChange === undefined ? () => {} : (e: any) => {\n\t\tconst value = (e.target as HTMLInputElement).value\n\t\tonChange?.(value)\n\t}\n\n\tconst ref = useRef(null)\n\tuseEffect(() => {\n\t\tif (doSelect && ref.current) {\n\t\t\tref.current.select()\n\t\t}\n\t}, [doSelect])\n\n\tconst dataListId = dataList && hexId()\n\n\treturn
    e.stopPropagation()}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && {label}}\n\t\t\n\t\t{dataList && \n\t\t\t{dataList.map(e => }\n\t
    \n}\n","import { useRef, useState } from 'preact/hooks'\n\ninterface ActiveTimeoutOptions {\n\tcooldown?: number,\n\tinvert?: boolean,\n\tinitial?: boolean,\n}\nexport function useActiveTimeout({ cooldown, invert, initial }: ActiveTimeoutOptions = {}): [boolean | undefined, () => unknown] {\n\tconst [active, setActive] = useState(initial)\n\tconst timeout = useRef(undefined)\n\n\tconst trigger = () => {\n\t\tsetActive(invert ? false : true)\n\t\tif (timeout.current !== undefined) clearTimeout(timeout.current)\n\t\ttimeout.current = setTimeout(() => {\n\t\t\tsetActive(invert ? true : false)\n\t\t}, cooldown ?? 2000) as any\n\t}\n\n\treturn [active, trigger]\n}\n","import type { Inputs } from 'preact/hooks'\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks'\n\n\nexport type AsyncState = {\n\tloading: boolean,\n\terror?: undefined,\n\tvalue?: undefined,\n} | {\n\tloading: true,\n\terror?: Error | undefined,\n\tvalue?: T,\n} | {\n\tloading: false,\n\terror: Error,\n\tvalue?: undefined,\n} | {\n\tloading: false,\n\terror?: undefined,\n\tvalue: T,\n}\n\nexport const AsyncCancel = Symbol('async-cancel')\n\nexport function useAsyncFn Promise>(\n\tfn: T,\n\tinputs: Inputs = [],\n\tinitialState: AsyncState = { loading: false },\n): [AsyncState, (...args: Parameters) => Promise] {\n\tconst [state, setState] = useState>(initialState)\n\tconst isMounted = useRef(false)\n\tconst lastCallId = useRef(0)\n\n\tuseEffect(() => {\n\t\tisMounted.current = true\n\t\treturn () => isMounted.current = false\n\t}, [])\n\n\tconst callback = useCallback((...args: Parameters): Promise => {\n\t\tconst callId = ++lastCallId.current\n\t\tif (!state.loading) {\n\t\t\tsetState(prev => ({ ...prev, loading: true }))\n\t\t}\n\n\t\treturn fn(...args).then(\n\t\t\tvalue => {\n\t\t\t\tif (isMounted.current && callId === lastCallId.current && value !== AsyncCancel) {\n\t\t\t\t\tsetState({ value, loading: false })\n\t\t\t\t}\n\t\t\t\treturn value\n\t\t\t},\n\t\t\terror => {\n\t\t\t\tif (isMounted.current && callId === lastCallId.current) {\n\t\t\t\t\tsetState({ error, loading: false })\n\t\t\t\t}\n\t\t\t\treturn undefined\n\t\t\t})\n\t}, inputs)\n\n\treturn [state, callback]\n}\n","import type { Inputs } from 'preact/hooks'\nimport { useEffect } from 'preact/hooks'\nimport type { AsyncCancel, AsyncState } from './useAsyncFn'\nimport { useAsyncFn } from './useAsyncFn'\n\nexport function useAsync(\n\tfn: () => Promise,\n\tinputs: Inputs = [],\n\tinitialState: AsyncState = { loading: true },\n): AsyncState & { refresh: () => Promise } {\n\tconst [state, callback] = useAsyncFn Promise>(fn, inputs, initialState)\n\n\tuseEffect(() => {\n\t\tcallback()\n\t}, [callback])\n\n\treturn {\n\t\t...state,\n\t\trefresh: callback,\n\t}\n}\n","import type { Inputs } from 'preact/hooks'\nimport { useEffect, useRef } from 'preact/hooks'\n\ntype Vec2 = [number, number]\n\nexport function useCanvas({ size, draw, onDrag, onHover, onLeave }: {\n\tsize: () => Vec2,\n\tdraw: (img: ImageData) => Promise,\n\tonDrag?: (dx: number, dy: number) => Promise,\n\tonHover?: (x: number, y: number) => unknown,\n\tonLeave?: () => unknown,\n}, inputs?: Inputs) {\n\tconst canvas = useRef(null)\n\n\tconst dragStart = useRef()\n\tconst dragRequest = useRef()\n\tconst dragPending = useRef([0, 0])\n\tconst dragBusy = useRef(false)\n\n\tuseEffect(() => {\n\t\tif (!canvas.current) return\n\t\tconst onMouseDown = (e: MouseEvent) => {\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseMove = (e: MouseEvent) => {\n\t\t\tif (dragStart.current === undefined) {\n\t\t\t\tif (!canvas.current) return\n\t\t\t\tconst x = e.offsetX / canvas.current.clientWidth\n\t\t\t\tconst y = e.offsetY / canvas.current.clientHeight\n\t\t\t\tonHover?.(x, y)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (!onDrag) return\n\t\t\tconst dx = e.offsetX - dragStart.current[0]\n\t\t\tconst dy = e.offsetY - dragStart.current[1]\n\t\t\tif (!(dx === 0 && dy === 0)) {\n\t\t\t\tdragPending.current = [dragPending.current[0] + dx, dragPending.current[1] + dy]\n\t\t\t\tif (!dragBusy.current) {\n\t\t\t\t\tif (dragRequest.current) {\n\t\t\t\t\t\tcancelAnimationFrame(dragRequest.current)\n\t\t\t\t\t}\n\t\t\t\t\tdragRequest.current = requestAnimationFrame(async () => {\n\t\t\t\t\t\tif (!canvas.current) return\n\t\t\t\t\t\tdragBusy.current = true\n\t\t\t\t\t\tconst dx = dragPending.current[0] / canvas.current.clientWidth\n\t\t\t\t\t\tconst dy = dragPending.current[1] / canvas.current.clientHeight\n\t\t\t\t\t\tdragPending.current = [0, 0]\n\t\t\t\t\t\tawait onDrag?.(dx, dy)\n\t\t\t\t\t\tdragBusy.current = false\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseUp = () => {\n\t\t\tdragStart.current = undefined\n\t\t}\n\t\tconst onMouseLeave = () => {\n\t\t\tonLeave?.()\n\t\t}\n\n\t\tcanvas.current.addEventListener('mousedown', onMouseDown)\n\t\tcanvas.current.addEventListener('mousemove', onMouseMove)\n\t\tcanvas.current.addEventListener('mouseleave', onMouseLeave)\n\t\tdocument.body.addEventListener('mouseup', onMouseUp)\n\n\t\treturn () => {\n\t\t\tcanvas.current?.removeEventListener('mousedown', onMouseDown)\n\t\t\tcanvas.current?.removeEventListener('mousemove', onMouseMove)\n\t\t\tcanvas.current?.removeEventListener('mouseleave', onMouseLeave)\n\t\t\tdocument.body.removeEventListener('mouseup', onMouseUp)\n\t\t}\n\t}, [...inputs ?? [], canvas.current])\n\n\tconst redraw = useRef<() => Promise>()\n\tconst redrawCount = useRef(0)\n\tredraw.current = async () => {\n\t\tif (!canvas.current) return\n\t\tconst ctx = canvas.current.getContext('2d')!\n\t\tconst s = size()\n\t\tcanvas.current.width = s[0]\n\t\tcanvas.current.height = s[1]\n\t\tconst img = ctx.getImageData(0, 0, s[0], s[1])\n\t\tconst ownCount = redrawCount.current += 1\n\t\ttry {\n\t\t\tawait draw(img)\n\t\t} catch (e) {\n\t\t\tthrow e\n\t\t}\n\t\tif (ownCount === redrawCount.current) {\n\t\t\tctx.putImageData(img, 0, 0)\n\t\t}\n\t}\n\n\treturn {\n\t\tcanvas,\n\t\tredraw: redraw.current,\n\t}\n}\n","import { useEffect, useState } from 'preact/hooks'\n\nexport function useFocus(): [boolean, () => unknown] {\n\tconst [active, setActive] = useState(false)\n\n\tconst hider = () => {\n\t\tsetActive(false)\n\t}\n\n\tuseEffect(() => {\n\t\tif (active) {\n\t\t\tdocument.body.addEventListener('click', hider)\n\t\t\tdocument.body.addEventListener('contextmenu', hider)\n\t\t}\n\t\treturn () => {\n\t\t\tdocument.body.removeEventListener('click', hider)\n\t\t\tdocument.body.removeEventListener('contextmenu', hider)\n\t\t}\n\t}, [active])\n\n\treturn [active, () => setActive(true)]\n}\n","import { useCallback, useEffect, useState } from 'preact/hooks'\nimport { changeUrl } from '../Utils'\n\nexport function useHash(): [string, (hash: string) => unknown] {\n\tconst [hash, setHash] = useState(window.location.hash)\n\n\tconst onChange = useCallback(() => {\n\t\tsetHash(window.location.hash)\n\t}, [])\n\n\tuseEffect(() => {\n\t\twindow.addEventListener('hashchange', onChange)\n\t\twindow.addEventListener('replacestate', onChange)\n\t\treturn () => {\n\t\t\twindow.removeEventListener('hashchange', onChange)\n\t\t\twindow.removeEventListener('replacestate', onChange)\n\t\t}\n\t}, [])\n\n\tconst changeHash = useCallback((newHash: string) => {\n\t\tif (newHash !== hash) {\n\t\t\tchangeUrl({ hash: newHash })\n\t\t}\n\t}, [hash])\n\n\treturn [hash, changeHash]\n}\n","import { useEffect, useState } from 'preact/hooks'\n\nexport function useMediaQuery(query: string): boolean {\n\tconst [prefers, setPrefers] = useState(matchMedia(query).matches)\n\n\tconst onChange = (e: MediaQueryListEvent) => {\n\t\tsetPrefers(e.matches)\n\t}\n\n\tuseEffect(() => {\n\t\tconst mediaQuery = matchMedia(query)\n\t\tmediaQuery.addEventListener('change', onChange)\n\t\treturn () => {\n\t\t\tmediaQuery.removeEventListener('change', onChange)\n\t\t}\n\t}, [query])\n\n\treturn prefers\n}\n","import type { DataModel } from '@mcschema/core'\nimport type { Inputs } from 'preact/hooks'\nimport { useEffect } from 'preact/hooks'\n\nexport function useModel(model: DataModel | undefined | null, invalidated: (model: DataModel) => unknown, inputs?: Inputs) {\n\tconst listener = {\n\t\tinvalidated() {\n\t\t\tif (model) {\n\t\t\t\tinvalidated(model)\n\t\t\t}\n\t\t},\n\t}\n\n\tuseEffect(() => {\n\t\tmodel?.addListener(listener)\n\t\treturn () => {\n\t\t\tmodel?.removeListener(listener)\n\t\t}\n\t}, [model, ...inputs ?? []])\n}\n","import { useCallback, useEffect, useState } from 'preact/hooks'\nimport { changeUrl } from '../Utils'\n\nconst getValue = (search: string, param: string) => new URLSearchParams(search).get(param) ?? undefined\n\nexport function useSearchParam(param: string): [string | undefined, (value: string | undefined, replace?: boolean) => unknown] {\n\tconst location = window.location\n\tconst [value, setValue] = useState(getValue(location.search, param))\n\n\tuseEffect(() => {\n\t\tconst onChange = () => {\n\t\t\tsetValue(getValue(location.search, param))\n\t\t}\n\n\t\twindow.addEventListener('popstate', onChange)\n\t\twindow.addEventListener('pushstate', onChange)\n\t\twindow.addEventListener('replacestate', onChange)\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('popstate', onChange)\n\t\t\twindow.removeEventListener('pushstate', onChange)\n\t\t\twindow.removeEventListener('replacestate', onChange)\n\t\t}\n\t}, [])\n\n\tconst changeValue = useCallback((newValue: string | undefined, replace?: boolean) => {\n\t\tif (newValue !== value) {\n\t\t\tsetValue(newValue)\n\t\t\tconst params = new URLSearchParams(location.search)\n\t\t\tif (newValue === undefined || newValue.length === 0) {\n\t\t\t\tparams.delete(param)\n\t\t\t} else {\n\t\t\t\tparams.set(param, newValue)\n\t\t\t}\n\t\t\tchangeUrl({ search: params.toString().replaceAll('%7C', '|'), replace })\n\t\t}\n\t}, [value])\n\n\treturn [value, changeValue]\n};\n","import type { ComponentChildren } from 'preact'\nimport type { Octicon } from '.'\nimport { Btn } from '.'\nimport { useFocus } from '../hooks'\n\ninterface BtnMenuProps extends JSX.HTMLAttributes {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\trelative?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tchildren: ComponentChildren,\n}\nexport function BtnMenu(props: BtnMenuProps) {\n\tconst { icon, label, relative, tooltip, tooltipLoc, children } = props\n\tconst [active, setActive] = useFocus()\n\n\treturn
    \n\t\t\n\t\t{active &&
    \n\t\t\t{children}\n\t\t
    }\n\t
    \n}\n","const scriptRel = 'modulepreload';const seen = {};const base = '/';export const __vitePreload = function preload(baseModule, deps) {\n // @ts-ignore\n if (!__VITE_IS_MODERN__ || !deps || deps.length === 0) {\n return baseModule();\n }\n return Promise.all(deps.map((dep) => {\n // @ts-ignore\n dep = `${base}${dep}`;\n // @ts-ignore\n if (dep in seen)\n return;\n // @ts-ignore\n seen[dep] = true;\n const isCss = dep.endsWith('.css');\n const cssSelector = isCss ? '[rel=\"stylesheet\"]' : '';\n // @ts-ignore check if the file is already preloaded by SSR markup\n if (document.querySelector(`link[href=\"${dep}\"]${cssSelector}`)) {\n return;\n }\n // @ts-ignore\n const link = document.createElement('link');\n // @ts-ignore\n link.rel = isCss ? 'stylesheet' : scriptRel;\n if (!isCss) {\n link.as = 'script';\n link.crossOrigin = '';\n }\n link.href = dep;\n // @ts-ignore\n document.head.appendChild(link);\n if (isCss) {\n return new Promise((res, rej) => {\n link.addEventListener('load', res);\n link.addEventListener('error', () => rej(new Error(`Unable to preload CSS for ${dep}`)));\n });\n }\n })).then(() => baseModule());\n}","export const Octicon = {\n\talert: ,\n\tarchive: ,\n\tarrow_left: ,\n\tarrow_right: ,\n\tcheck: ,\n\tchevron_down: ,\n\tchevron_right: ,\n\tchevron_up: ,\n\tclippy: ,\n\tcode: ,\n\tdash: ,\n\tdevice_desktop: ,\n\tdot_fill: ,\n\tdownload: ,\n\tduplicate: ,\n\teye: ,\n\teye_closed: ,\n\tfile: ,\n\tfile_directory: ,\n\tgear: ,\n\tglobe: ,\n\thistory: ,\n\tinfo: ,\n\tissue_opened: ,\n\tkebab_horizontal: ,\n\tlink: ,\n\tlink_external: ,\n\tmark_github: ,\n\tmoon: ,\n\tplay: ,\n\tplus: ,\n\tplus_circle: ,\n\trepo: ,\n\tsearch: ,\n\tsort_asc: ,\n\tsort_desc: ,\n\tsquare: ,\n\tsquare_fill: ,\n\tstack: ,\n\tsun: ,\n\tsync: ,\n\ttag: ,\n\tterminal: ,\n\tthree_bars: ,\n\ttrashcan: ,\n\tunfold: ,\n\tupload: ,\n\tx: ,\n\tx_circle: ,\n}\n","import { useEffect, useMemo, useState } from 'preact/hooks'\nimport { Octicon } from './Octicon'\n\ntype ErrorPanelProps = {\n\terror: string | Error,\n\tonDismiss?: () => unknown,\n}\nexport function ErrorPanel({ error, onDismiss }: ErrorPanelProps) {\n\tconst [stackVisible, setStackVisible] = useState(false)\n\tconst [stack, setStack] = useState(undefined)\n\n\tuseEffect(() => {\n\t\tif (error instanceof Error) {\n\t\t\tconst stack = error.stack!.split('\\n').map(line => {\n\t\t\t\treturn line.replace(/^(\\s+)at (?:async )?(https?:.*)/, '$1at ($2)')\n\t\t\t})\n\t\t\tsetStack(stack.join('\\n'))\n\t\t\timport('sourcemapped-stacktrace').then(({ mapStackTrace }) => {\n\t\t\t\tmapStackTrace(stack.join('\\n'), (mapped) => {\n\t\t\t\t\tconst mappedStack = mapped.map(line => {\n\t\t\t\t\t\treturn line.replace(/..\\/..\\/src\\//, 'src/')\n\t\t\t\t\t}).join('\\n')\n\t\t\t\t\tsetStack(mappedStack)\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\t}, [error])\n\n\tconst url = useMemo(() => {\n\t\tlet url ='https://github.com/misode/misode.github.io/issues/new'\n\t\tif (error instanceof Error) {\n\t\t\turl += `?title=${encodeURIComponent(`${error.name}: ${error.message}`)}`\n\t\t\tif (stack) {\n\t\t\t\turl += `&body=${encodeURIComponent(`\\`\\`\\`\\n${error.name}: ${error.message}\\n${stack}\\n\\`\\`\\`\\n`)}`\n\t\t\t}\n\t\t} else {\n\t\t\turl += `?title=${encodeURIComponent(error.toString())}`\n\t\t}\n\t\treturn url\n\t}, [error, stack])\n\n\treturn
    \n\t\t{onDismiss &&
    {Octicon.x}
    }\n\t\t

    \n\t\t\t{error instanceof Error ? error.message : error}\n\t\t\t{stack && setStackVisible(!stackVisible)}>\n\t\t\t\t{Octicon.info}\n\t\t\t}\n\t\t

    \n\t\t{stack && stackVisible &&
    {stack}
    }\n\t\t

    If you think this is a bug, you can report it on GitHub

    \n\t
    \n}\n","import { hexId } from '../../Utils'\n\ninterface Props {\n\tlabel: string,\n\tvalue: boolean,\n\tonChange: (value: boolean) => unknown,\n}\nexport function Checkbox({ label, value, onChange }: Props) {\n\tconst id = hexId()\n\treturn \n}\n","import type { JSXInternal } from 'preact/src/jsx'\n\ntype InputProps = JSXInternal.HTMLAttributes\n\ntype BaseInputProps = Omit & {\n\tonChange?: (value: T) => unknown,\n\tonEnter?: (value: T) => unknown,\n}\nfunction BaseInput(name: string, type: string, fn: (value: string) => T) {\n\tconst component = (props: BaseInputProps) => {\n\t\tconst onChange = props.onChange && ((evt: Event) => {\n\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\tprops.onChange?.(fn(value))\n\t\t})\n\t\tconst onKeyDown = props.onEnter && ((evt: KeyboardEvent) => {\n\t\t\tif (evt.key === 'Enter') {\n\t\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\t\tprops.onEnter?.(fn(value))\n\t\t\t}\n\t\t})\n\t\treturn \n\t}\n\tcomponent.displayName = name\n\treturn component\n}\n\nexport const TextInput = BaseInput('TextInput', 'text', v => v)\n\nexport const NumberInput = BaseInput('NumberInput', 'number', v => Number(v))\n\nexport const RangeInput = BaseInput('RangeInput', 'range', v => Number(v))\n","import { useMemo, useState } from 'preact/hooks'\nimport { Btn, BtnInput } from '..'\n\ninterface Props {\n\tvalues?: string[],\n\tonSelect?: (value: string) => unknown,\n\tsearchPlaceholder?: string,\n\tnoResults?: string,\n}\nexport function SearchList({ values, onSelect, searchPlaceholder, noResults }: Props) {\n\tconst [search, setSearch] = useState('')\n\tconst results = useMemo(() => {\n\t\tconst terms = search.trim().split(' ')\n\t\treturn values?.filter(v => terms.every(t => v.includes(t))) ?? []\n\t}, [values, search])\n\n\treturn <>\n\t\t\n\t\t
    \n\t\t\t{results.map(v => onSelect?.(v)} />)}\n\t\t\t{results.length === 0 && }\n\t\t
    \n\t\n}\n","import { isObject } from '../Utils'\n\nconst repo = 'https://raw.githubusercontent.com/misode/technical-changes/main'\n\nexport type Change = {\n\tgroup: string,\n\tversion: string,\n\torder: number,\n\ttags: string[],\n\tcontent: string,\n}\n\nlet Changelogs: Change[] | Promise | null = null\n\nexport async function getChangelogs() {\n\tif (!Changelogs) {\n\t\tconst index = await (await fetch(`${repo}/index.json`)).json() as string[]\n\t\tChangelogs = (await Promise.all(\n\t\t\tindex.map((group, i) => fetchGroup(parseVersion(group), i))\n\t\t)).flat().map(change => ({\n\t\t\t...change,\n\t\t\ttags: [change.group, ...change.tags],\n\t\t}))\n\t}\n\treturn Changelogs\n}\n\nasync function fetchGroup(group: string, groupIndex: number) {\n\tconst index = await (await fetch(`${repo}/${group}/index.json`)).json() as string[]\n\treturn (await Promise.all(\n\t\tindex.map((version, i) => fetchChangelog(group, parseVersion(version), groupIndex, i))\n\t)).flat()\n}\n\nasync function fetchChangelog(group: string, version: string, groupIndex: number, versionIndex: number) {\n\tconst text = await (await fetch(`${repo}/${group}/${version}.md`)).text()\n\treturn parseChangelog(text).map(change => ({\n\t\tversion,\n\t\tgroup,\n\t\torder: groupIndex * 1000 + versionIndex,\n\t\t...change,\n\t}))\n}\n\nfunction parseChangelog(text: string) {\n\treturn text.split('\\n\\n')\n\t\t.map(entry => {\n\t\t\tconst i = entry.indexOf('|')\n\t\t\treturn {\n\t\t\t\ttags: entry.substring(0, i).trim().split(' '),\n\t\t\t\tcontent: entry.slice(i + 1).trim()\n\t\t\t\t\t.replaceAll('->', '→')\n\t\t\t\t\t.replaceAll('\\n...\\n', '\\n\\n'),\n\t\t\t}\n\t\t})\n}\n\nfunction parseVersion(version: unknown): string {\n\tif (typeof version === 'string') {\n\t\treturn version\n\t} else if (isObject(version)) {\n\t\treturn version.id\n\t}\n\treturn 'unknown'\n}\n\nconst ARTICLE_PREFIX = 'https://www.minecraft.net/article/'\nconst ARTICLE_OVERRIDES = new Map(Object.entries({\n\t1.17: 'caves---cliffs--part-i-out-today-java',\n\t1.18: 'caves---cliffs--part-ii-out-today-java',\n\t'1.18.2': 'minecraft-java-edition-1-18-2',\n}))\n\nexport function getArticleLink(version: string): string | undefined {\n\tconst override = ARTICLE_OVERRIDES.get(version)\n\tif (override) {\n\t\treturn ARTICLE_PREFIX + override\n\t}\n\tif (version.match(/^\\d\\dw\\d\\d[a-z]$/)) {\n\t\treturn ARTICLE_PREFIX + 'minecraft-snapshot-' + version\n\t}\n\tif (version.match(/^\\d+\\.\\d+(\\.\\d+)?-(pre|rc)[0-9]+$/)) {\n\t\treturn ARTICLE_PREFIX + 'minecraft-' + version.replaceAll('.', '-').replaceAll('pre', 'pre-release-')\n\t}\n\treturn undefined\n}\n","import type { CollectionRegistry } from '@mcschema/core'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport type { BlockStateRegistry, VersionId } from './Schemas'\n\n// Cleanup old caches\n['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`));\n['mcdata_master', 'vanilla_datapack_summary'].forEach(v => localStorage.removeItem(`cached_${v}`))\ncaches.delete('misode-v1')\n\nconst CACHE_NAME = 'misode-v2'\nconst CACHE_LATEST_VERSION = 'cached_latest_version'\n\ntype Version = {\n\tid: string,\n\tref?: string,\n\tdynamic?: boolean,\n}\n\ndeclare var __LATEST_VERSION__: string\nconst latestVersion = __LATEST_VERSION__ ?? ''\nconst mcmetaUrl = 'https://raw.githubusercontent.com/misode/mcmeta'\n\ntype McmetaTypes = 'summary' | 'data' | 'assets' | 'registries'\n\nfunction mcmeta(version: { dynamic: true } | { dynamic?: false, ref?: string}, type: McmetaTypes) {\n\treturn `${mcmetaUrl}/${version.dynamic ? type : `${version.ref}-${type}`}`\n}\n\nasync function validateCache(version: Version) {\n\tif (version.dynamic) {\n\t\tif (localStorage.getItem(CACHE_LATEST_VERSION) !== latestVersion) {\n\t\t\tawait deleteMatching(url => url.startsWith(`${mcmetaUrl}/summary/`) || url.startsWith(`${mcmetaUrl}/data/`) || url.startsWith(`${mcmetaUrl}/assets/`) || url.startsWith(`${mcmetaUrl}/registries/`))\n\t\t\tlocalStorage.setItem(CACHE_LATEST_VERSION, latestVersion)\n\t\t}\n\t\tversion.ref = latestVersion\n\t}\n}\n\nexport async function fetchData(versionId: string, collectionTarget: CollectionRegistry, blockStateTarget: BlockStateRegistry) {\n\tconst version = config.versions.find(v => v.id === versionId) as Version | undefined\n\tif (!version) {\n\t\tconsole.error(`[fetchData] Unknown version ${version} in ${JSON.stringify(config.versions)}`)\n\t\treturn\n\t}\n\n\tawait validateCache(version)\n\n\tawait Promise.all([\n\t\tfetchRegistries(version, collectionTarget),\n\t\tfetchBlockStateMap(version, blockStateTarget),\n\t])\n}\n\nasync function fetchRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchRegistries] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/registries/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget.register(id, data[id].map((e: string) => 'minecraft:' + e))\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching registries:', message(e))\n\t}\n}\n\nasync function fetchBlockStateMap(version: Version, target: BlockStateRegistry) {\n\tconsole.debug(`[fetchBlockStateMap] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/blocks/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget['minecraft:' + id] = {\n\t\t\t\tproperties: data[id][0],\n\t\t\t\tdefault: data[id][1],\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t}\n}\n\nexport async function fetchPreset(versionId: VersionId, registry: string, id: string) {\n\tconsole.debug(`[fetchPreset] ${versionId} ${registry} ${id}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\ttry {\n\t\tconst type = ['blockstates', 'models'].includes(registry) ? 'assets' : 'data'\n\t\tconst url = `${mcmeta(version, type)}/${type}/minecraft/${registry}/${id}.json`\n\t\tconst res = await fetch(url)\n\t\treturn await res.json()\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching ${registry} preset ${id}: ${message(e)}`)\n\t}\n}\n\nexport async function fetchAllPresets(versionId: VersionId, registry: string) {\n\tconsole.debug(`[fetchAllPresets] ${versionId} ${registry}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst entries = await getData(`${mcmeta(version, 'registries')}/${registry}/data.min.json`)\n\t\treturn new Map(await Promise.all(\n\t\t\tentries.map(async (e: string) =>\n\t\t\t\t[e, await getData(`${mcmeta(version, 'data')}/data/minecraft/${registry}/${e}.json`)])\n\t\t))\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching all ${registry} presets: ${message(e)}`)\n\t}\n}\n\nexport type SoundEvents = {\n\t[key: string]: {\n\t\tsounds: (string | { name: string })[],\n\t},\n}\nexport async function fetchSounds(versionId: VersionId): Promise {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst url = `${mcmeta(version, 'summary')}/sounds/data.min.json`\n\t\treturn await getData(url)\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching sounds for ${version}: ${message(e)}`)\n\t}\n}\n\nexport function getSoundUrl(versionId: VersionId, path: string) {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\treturn `${mcmeta(version, 'assets')}/assets/minecraft/sounds/${path}.ogg`\n}\n\nexport type VersionMeta = {\n\tid: string,\n\tname: string,\n\trelease_target: string,\n\ttype: 'snapshot' | 'release',\n\tstable: boolean,\n\tdata_version: number,\n\tprotocol_version: number,\n\tdata_pack_version: number,\n\tresource_pack_version: number,\n\tbuild_time: string,\n\trelease_time: string,\n\tsha1: string,\n}\nexport async function fetchVersions(): Promise {\n\tconst version = config.versions[config.versions.length - 1]\n\tawait validateCache(version)\n\ttry {\n\t\treturn getData(`${mcmeta(version, 'summary')}/versions/data.min.json`)\n\t} catch (e) {\n\t\tthrow new Error(`Error occured while fetching versions: ${message(e)}`)\n\t}\n}\n\nasync function getData(url: string, fn: (v: any) => T = (v: any) => v): Promise {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[getData] Opened cache ${CACHE_NAME} ${url}`)\n\t\tconst cacheResponse = await cache.match(url)\n \n\t\tif (cacheResponse && cacheResponse.ok) {\n\t\t\tconsole.debug(`[getData] Retrieving cached data ${url}`)\n\t\t\treturn await cacheResponse.json()\n\t\t}\n \n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\tawait cache.put(url, new Response(JSON.stringify(responseData)))\n\t\treturn responseData\n\t} catch (e) {\n\t\tconsole.warn(`[getData] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\treturn responseData\n\t}\n}\n\nasync function deleteMatching(matches: (url: string) => boolean) {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[deleteMatching] Opened cache ${CACHE_NAME}`)\n\t\tconst promises: Promise[] = []\n \n\t\tfor (const request of await cache.keys()) {\n\t\t\tif (matches(request.url)) {\n\t\t\t\tpromises.push(cache.delete(request))\n\t\t\t}\n\t\t}\n\t\tconsole.debug(`[deleteMatching] Removing ${promises.length} cache objects...`)\n\t\tawait Promise.all(promises)\n\t} catch (e) {\n\t\tconsole.warn(`[deleteMatching] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\t}\n}\n","import type { CollectionRegistry, INode, SchemaRegistry } from '@mcschema/core'\nimport { ChoiceNode, DataModel, Reference, StringNode } from '@mcschema/core'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport { fetchData } from './DataFetcher'\n\nexport const VersionIds = ['1.15', '1.16', '1.17', '1.18', '1.18.2', '1.19'] as const\nexport type VersionId = typeof VersionIds[number]\n\nexport type BlockStateRegistry = {\n\t[block: string]: {\n\t\tproperties?: {\n\t\t\t[key: string]: string[],\n\t\t},\n\t\tdefault?: {\n\t\t\t[key: string]: string,\n\t\t},\n\t},\n}\n\ntype VersionData = {\n\tcollections: CollectionRegistry,\n\tschemas: SchemaRegistry,\n\tblockStates: BlockStateRegistry,\n}\nconst Versions: Record> = {}\n\ntype ModelData = {\n\tmodel: DataModel,\n\tversion: VersionId,\n}\nconst Models: Record = {}\n\nconst versionGetter: {\n\t[versionId in VersionId]: () => Promise<{\n\t\tgetCollections: () => CollectionRegistry,\n\t\tgetSchemas: (collections: CollectionRegistry) => SchemaRegistry,\n\t}>\n} = {\n\t1.15: () => import('@mcschema/java-1.15'),\n\t1.16: () => import('@mcschema/java-1.16'),\n\t1.17: () => import('@mcschema/java-1.17'),\n\t1.18: () => import('@mcschema/java-1.18'),\n\t'1.18.2': () => import('@mcschema/java-1.18.2'),\n\t1.19: () => import('@mcschema/java-1.19'),\n}\n\nexport let CachedDecorator: INode\nexport let CachedFeature: INode\nexport let CachedCollections: CollectionRegistry\n\nasync function getVersion(id: VersionId): Promise {\n\tif (!Versions[id]) {\n\t\tVersions[id] = (async () => {\n\t\t\ttry {\n\t\t\t\tconst mcschema = await versionGetter[id]()\n\t\t\t\tconst collections = mcschema.getCollections()\n\t\t\t\tconst blockStates: BlockStateRegistry = {}\n\t\t\t\tawait fetchData(id, collections, blockStates)\n\t\t\t\tconst schemas = mcschema.getSchemas(collections)\n\t\t\t\tVersions[id] = { collections, schemas, blockStates }\n\t\t\t\treturn Versions[id]\n\t\t\t} catch (e) {\n\t\t\t\tthrow new Error(`Cannot get version \"${id}\": ${message(e)}`)\n\t\t\t}\n\t\t})()\n\t\treturn Versions[id]\n\t}\n\treturn Versions[id]\n}\n\nexport async function getModel(version: VersionId, id: string): Promise {\n\tif (!Models[id] || Models[id].version !== version) {\n\t\tconst versionData = await getVersion(version)\n\t\t\n\t\tCachedDecorator = Reference(versionData.schemas, 'configured_decorator')\n\t\tCachedFeature = ChoiceNode([\n\t\t\t{\n\t\t\t\ttype: 'string',\n\t\t\t\tnode: StringNode(versionData.collections, { validator: 'resource', params: { pool: '$worldgen/configured_feature' } }),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'object',\n\t\t\t\tnode: Reference(versionData.schemas, 'configured_feature'),\n\t\t\t},\n\t\t], { choiceContext: 'feature' })\n\n\t\tconst schemaName = config.generators.find(g => g.id === id)?.schema\n\t\tif (!schemaName) {\n\t\t\tthrow new Error(`Cannot find model ${id}`)\n\t\t}\n\t\ttry {\n\t\t\tconst schema = versionData.schemas.get(schemaName)\n\t\t\tconst model = new DataModel(schema, { wrapLists: true })\n\t\t\tif (Models[id]) {\n\t\t\t\tmodel.reset(Models[id].model.data, false)\n\t\t\t} else {\n\t\t\t\tmodel.validate(true)\n\t\t\t\tmodel.history = [JSON.stringify(model.data)]\n\t\t\t}\n\t\t\tModels[id] = { model, version }\n\t\t} catch (e) {\n\t\t\tconst err = new Error(`Cannot get generator \"${id}\" for version \"${version}\": ${message(e)}`)\n\t\t\tif (e instanceof Error) err.stack = e.stack\n\t\t\tthrow err\n\t\t}\n\t}\n\treturn Models[id].model\n}\n\nexport async function getCollections(version: VersionId): Promise {\n\tconst versionData = await getVersion(version)\n\tCachedCollections = versionData.collections\n\treturn versionData.collections\n}\n\nexport async function getBlockStates(version: VersionId): Promise {\n\tconst versionData = await getVersion(version)\n\treturn versionData.blockStates\n}\n\nexport function checkVersion(versionId: string, minVersionId: string | undefined, maxVersionId?: string) {\n\tconst version = config.versions.findIndex(v => v.id === versionId)\n\tconst minVersion = minVersionId ? config.versions.findIndex(v => v.id === minVersionId) : 0\n\tconst maxVersion = maxVersionId ? config.versions.findIndex(v => v.id === maxVersionId) : config.versions.length - 1\n\treturn minVersion <= version && version <= maxVersion\n}\n","// Copyright (c) 2013 Pieroxy \n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n}\n","import lz from 'lz-string'\nimport type { VersionId } from './Schemas'\n\nconst API_PREFIX = 'https://z15g7can.directus.app/items'\n\nconst ShareCache = new Map()\n\nexport async function shareSnippet(type: string, version: VersionId, jsonData: any, show_preview: boolean) {\n\ttry {\n\t\tconst raw = JSON.stringify(jsonData)\n\t\tconst data = lz.compressToBase64(raw)\n\t\tconsole.log('Compression rate', raw.length / raw.length)\n\t\tconst body = JSON.stringify({ data, type, version, show_preview })\n\t\tlet id = ShareCache.get(body)\n\t\tif (!id) {\n\t\t\tconst snippet = await fetchApi('/snippets', body)\n\t\t\tShareCache.set(body, snippet.id)\n\t\t\tid = snippet.id as string\n\t\t}\n\t\treturn { id, length: raw.length, compressed: data.length, rate: raw.length / data.length }\n\t} catch (e) {\n\t\tif (e instanceof Error) {\n\t\t\te.message = `Error creating share link: ${e.message}`\n\t\t}\n\t\tthrow e\n\t}\n}\n\nexport async function getSnippet(id: string) {\n\ttry {\n\t\tconst snippet = await fetchApi(`/snippets/${id}`)\n\t\treturn {\n\t\t\t...snippet,\n\t\t\tdata: JSON.parse(lz.decompressFromBase64(snippet.data) ?? '{}'),\n\t\t}\n\t} catch (e) {\n\t\tif (e instanceof Error) {\n\t\t\te.message = `Error loading shared content: ${e.message}`\n\t\t}\n\t\tthrow e\n\t}\n}\n\nasync function fetchApi(url: string, body?: string) {\n\tconst res = await fetch(API_PREFIX + url, body ? {\n\t\tmethod: 'post',\n\t\theaders: { 'Content-Type': 'application/json' },\n\t\tbody,\n\t} : undefined)\n\tconst data = await res.json()\n\tif (data.data) {\n\t\treturn data.data\n\t}\n\tthrow new Error(data.errors?.[0]?.message ?? 'Unknown error')\n}\n","import type { Project } from './contexts'\nimport { DRAFT_PROJECT } from './contexts'\nimport type { VersionId } from './services'\nimport { VersionIds } from './services'\n\nexport namespace Store {\n\texport const ID_LANGUAGE = 'language'\n\texport const ID_THEME = 'theme'\n\texport const ID_VERSION = 'schema_version'\n\texport const ID_INDENT = 'indentation'\n\texport const ID_FORMAT = 'output_format'\n\texport const ID_HIGHLIGHTING = 'output_highlighting'\n\texport const ID_SOUNDS_VERSION = 'minecraft_sounds_version'\n\texport const ID_PROJECTS = 'misode_projects'\n\texport const ID_BACKUPS = 'misode_generator_backups'\n\n\texport function getLanguage() {\n\t\treturn localStorage.getItem(ID_LANGUAGE) ?? 'en'\n\t}\n\n\texport function getTheme() {\n\t\treturn localStorage.getItem(ID_THEME) ?? 'dark'\n\t}\n\n\texport function getVersion(): VersionId {\n\t\tconst version = localStorage.getItem(ID_VERSION)\n\t\tif (version && VersionIds.includes(version as VersionId)) {\n\t\t\treturn version as VersionId\n\t\t}\n\t\treturn '1.18.2'\n\t}\n\n\texport function getIndent() {\n\t\treturn localStorage.getItem(ID_INDENT) ?? '2_spaces'\n\t}\n\n\texport function getFormat() {\n\t\treturn localStorage.getItem(ID_FORMAT) ?? 'json'\n\t}\n\n\texport function getHighlighting() {\n\t\treturn localStorage.getItem(ID_HIGHLIGHTING) !== 'false'\n\t}\n\n\texport function getSoundsVersion() {\n\t\treturn localStorage.getItem(ID_SOUNDS_VERSION) ?? 'latest'\n\t}\n\n\texport function getProjects(): Project[] {\n\t\tconst projects = localStorage.getItem(ID_PROJECTS)\n\t\tif (projects) {\n\t\t\treturn JSON.parse(projects) as Project[]\n\t\t}\n\t\treturn [DRAFT_PROJECT]\n\t}\n\n\texport function getBackup(id: string): object | undefined {\n\t\tconst backups = JSON.parse(localStorage.getItem(ID_BACKUPS) ?? '{}')\n\t\treturn backups[id]\n\t}\n\n\texport function setLanguage(language: string | undefined) {\n\t\tif (language) localStorage.setItem(ID_LANGUAGE, language)\n\t}\n\n\texport function setTheme(theme: string | undefined) {\n\t\tif (theme) localStorage.setItem(ID_THEME, theme)\n\t}\n\n\texport function setVersion(version: VersionId | undefined) {\n\t\tif (version) localStorage.setItem(ID_VERSION, version)\n\t}\n\n\texport function setIndent(indent: string | undefined) {\n\t\tif (indent) localStorage.setItem(ID_INDENT, indent)\n\t}\n\n\texport function setFormat(format: string | undefined) {\n\t\tif (format) localStorage.setItem(ID_FORMAT, format)\n\t}\n\n\texport function setHighlighting(highlighting: boolean | undefined) {\n\t\tif (highlighting !== undefined) localStorage.setItem(ID_HIGHLIGHTING, highlighting.toString())\n\t}\n\n\texport function setSoundsVersion(version: string | undefined) {\n\t\tif (version) localStorage.setItem(ID_SOUNDS_VERSION, version)\n\t}\n\n\texport function setProjects(projects: Project[] | undefined) {\n\t\tif (projects) localStorage.setItem(ID_PROJECTS, JSON.stringify(projects))\n\t}\n\n\texport function setBackup(id: string, data: object | undefined) {\n\t\tconst backups = JSON.parse(localStorage.getItem(ID_BACKUPS) ?? '{}')\n\t\tif (data === undefined) {\n\t\t\tdelete backups[id]\n\t\t} else {\n\t\t\tbackups[id] = data\n\t\t}\n\t\tlocalStorage.setItem(ID_BACKUPS, JSON.stringify(backups))\n\t}\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport English from '../../locales/en.json'\nimport { Analytics } from '../Analytics'\nimport { Store } from '../Store'\n\ninterface Locale {\n\tlang: string,\n\tlocale: (key: string, ...params: string[]) => string,\n\tchangeLocale: (lang: string) => unknown,\n}\nconst Locale = createContext({\n\tlang: 'none',\n\tlocale: key => key,\n\tchangeLocale: () => {},\n})\n\nexport const Locales: {\n\t[key: string]: {\n\t\t[key: string]: string,\n\t},\n} = {\n\tfallback: English,\n}\n\nexport function localize(lang: string, key: string, ...params: string[]) {\n\tconst value: string | undefined = Locales[lang]?.[key]\n\t?? Locales.en?.[key] ?? Locales.fallback[key] ?? key\n\treturn resolveLocaleParams(value, params)\n}\n\nfunction resolveLocaleParams(value: string, params?: string[]): string {\n\treturn value.replace(/%\\d+%/g, match => {\n\t\tconst index = parseInt(match.slice(1, -1))\n\t\treturn params?.[index] !== undefined ? params[index] : match\n\t})\n}\n\nasync function loadLocale(language: string) {\n\tif (Locales[language]) return\n\tconst langConfig = config.languages.find(lang => lang.code === language)\n\tif (!langConfig) return\n\tconst data = await import(`../../locales/${language}.json`)\n\tconst schema = langConfig.schemas !== false\n\t\t&& await import(`../../../node_modules/@mcschema/locales/src/${language}.json`)\n\tLocales[language] = { ...data.default, ...schema.default }\n}\n\nexport function useLocale() {\n\treturn useContext(Locale)\n}\n\nexport function LocaleProvider({ children }: { children: ComponentChildren }) {\n\tconst [lang, setLanguage] = useState('none')\n\n\tconst locale = useCallback((key: string, ...params: string[]) => {\n\t\treturn localize(lang, key, ...params)\n\t}, [lang])\n\n\tconst changeLocale = useCallback(async (newLang: string) => {\n\t\tawait loadLocale(newLang)\n\t\tAnalytics.changeLocale(lang, newLang)\n\t\tStore.setLanguage(newLang)\n\t\tsetLanguage(newLang)\n\t}, [lang])\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst target = Store.getLanguage()\n\t\t\tAnalytics.setLocale(target)\n\t\t\tawait Promise.all([\n\t\t\t\tloadLocale('en'),\n\t\t\t\t...(target !== 'en' ? [loadLocale(target)] : []),\n\t\t\t])\n\t\t\tsetLanguage(target)\n\t\t})()\n\t}, [])\n\n\tconst value: Locale = {\n\t\tlang,\n\t\tlocale,\n\t\tchangeLocale,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { route } from 'preact-router'\nimport { useCallback, useContext, useMemo, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\nimport { Store } from '../Store'\nimport { cleanUrl } from '../Utils'\n\nexport type Project = {\n\tname: string,\n\tnamespace: string,\n\tversion?: VersionId,\n\tfiles: ProjectFile[],\n}\nexport const DRAFT_PROJECT: Project = {\n\tname: 'Drafts',\n\tnamespace: 'draft',\n\tfiles: [],\n}\n\nexport type ProjectFile = {\n\ttype: string,\n\tid: string,\n\tdata: any,\n}\n\ninterface ProjectContext {\n\tprojects: Project[],\n\tproject: Project,\n\tfile?: ProjectFile,\n\tchangeProject: (name: string) => unknown,\n\tupdateProject: (project: Partial) => unknown,\n\tupdateFile: (type: string, id: string | undefined, file: Partial) => boolean,\n\topenFile: (type: string, id: string) => unknown,\n\tcloseFile: () => unknown,\n}\nconst Project = createContext({\n\tprojects: [DRAFT_PROJECT],\n\tproject: DRAFT_PROJECT,\n\tchangeProject: () => {},\n\tupdateProject: () => {},\n\tupdateFile: () => false,\n\topenFile: () => {},\n\tcloseFile: () => {},\n})\n\nexport function useProject() {\n\treturn useContext(Project)\n}\n\nexport function ProjectProvider({ children }: { children: ComponentChildren }) {\n\tconst [projects, setProjects] = useState(Store.getProjects())\n\n\tconst [projectName, setProjectName] = useState(DRAFT_PROJECT.name)\n\tconst project = useMemo(() => {\n\t\treturn projects.find(p => p.name === projectName) ?? DRAFT_PROJECT\n\t}, [projects, projectName])\n\n\tconst [fileId, setFileId] = useState<[string, string] | undefined>(undefined)\n\tconst file = useMemo(() => {\n\t\tif (!fileId) return undefined\n\t\treturn project.files.find(f => f.type === fileId[0] && f.id === fileId[1])\n\t}, [project, fileId])\n\n\tconst changeProjects = useCallback((projects: Project[]) => {\n\t\tStore.setProjects(projects)\n\t\tsetProjects(projects)\n\t}, [])\n\n\tconst updateProject = useCallback((edits: Partial) => {\n\t\tchangeProjects(projects.map(p => p.name === projectName ?\t{ ...p, ...edits } : p))\n\t}, [projects, projectName])\n\n\tconst updateFile = useCallback((type: string, id: string | undefined, edits: Partial) => {\n\t\tif (!edits.id) { // remove\n\t\t\tupdateProject({ files: project.files.filter(f => f.type !== type || f.id !== id) })\n\t\t} else {\n\t\t\tconst newId = edits.id.includes(':') ? edits.id : `${project.namespace}:${edits.id}`\n\t\t\tconst exists = project.files.some(f => f.type === type && f.id === newId)\n\t\t\tif (!id) { // create\n\t\t\t\tif (exists) return false\n\t\t\t\tupdateProject({ files: [...project.files, { type, id: newId, data: edits.data ?? {} } ]})\n\t\t\t\tsetFileId([type, newId])\n\t\t\t} else { // rename or update data\n\t\t\t\tif (file?.id === id && id !== newId && exists) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tupdateProject({ files: project.files.map(f => f.type === type && f.id === id ? { ...f, ...edits, id: newId } : f)})\n\t\t\t\tif (file?.id === id) setFileId([type, newId])\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}, [updateProject, project, file])\n\n\tconst openFile = useCallback((type: string, id: string) => {\n\t\tconst gen = config.generators.find(g => g.id === type || g.path === type)\n\t\tif (!gen) {\n\t\t\tthrow new Error(`Cannot find generator of type ${type}`)\n\t\t}\n\t\tsetFileId([gen.id, id])\n\t\troute(cleanUrl(gen.url))\n\t}, [])\n\n\tconst closeFile = useCallback(() => {\n\t\tsetFileId(undefined)\n\t}, [])\n\n\tconst value: ProjectContext = {\n\t\tprojects,\n\t\tproject,\n\t\tfile,\n\t\tchangeProject: setProjectName,\n\t\tupdateProject,\n\t\tupdateFile,\n\t\topenFile,\n\t\tcloseFile,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n\nexport function getFilePath(file: ProjectFile) {\n\tconst [namespace, id] = file.id.includes(':') ? file.id.split(':') : ['minecraft', file.id]\n\tconst gen = config.generators.find(g => g.id === file.type)\n\tif (!gen) {\n\t\tthrow new Error(`Cannot find generator of type ${file.type}`)\n\t}\n\treturn `data/${namespace}/${gen.path ?? gen.id}/${id}`\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport { useMediaQuery } from '../hooks'\nimport { Store } from '../Store'\n\ninterface Theme {\n\ttheme: string,\n\tactualTheme: 'light' | 'dark',\n\tchangeTheme: (theme: string) => unknown,\n}\nconst Theme = createContext({\n\ttheme: 'dark',\n\tactualTheme: 'dark',\n\tchangeTheme: () => {},\n})\n\nexport function useTheme() {\n\treturn useContext(Theme)\n}\n\nexport function ThemeProvider({ children }: { children: ComponentChildren }) {\n\tconst [theme, setTheme] = useState(Store.getTheme())\n\tconst prefersLight = useMediaQuery('(prefers-color-scheme: light)')\n\tconst prefersDark = useMediaQuery('(prefers-color-scheme: dark)')\n\n\tuseEffect(() => {\n\t\tdocument.documentElement.setAttribute('data-theme', theme)\n\t}, [theme])\n\n\tconst changeTheme = useCallback((newTheme: string) => {\n\t\tAnalytics.changeTheme(theme, newTheme)\n\t\tStore.setTheme(newTheme)\n\t\tsetTheme(newTheme)\n\t}, [theme])\n\n\tuseEffect(() => {\n\t\tAnalytics.setPrefersColorScheme(prefersLight ? 'light' : prefersDark ? 'dark' : 'none')\n\t}, [prefersLight, prefersDark])\n\n\tuseEffect(() => {\n\t\tAnalytics.setTheme(theme)\n\t}, [])\n\n\tconst value: Theme = {\n\t\ttheme,\n\t\tactualTheme: theme === 'light' || (theme !== 'dark' && prefersLight) ? 'light' : 'dark',\n\t\tchangeTheme,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { useLocale } from '.'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\n\nconst VERSIONS_IN_TITLE = 3\n\ninterface Title {\n\ttitle: string,\n\tchangeTitle: (title: string, versions?: VersionId[], suffix?: string) => unknown,\n}\nconst Title = createContext({\n\ttitle: '',\n\tchangeTitle: () => {},\n})\n\nexport function useTitle(title?: string, versions?: VersionId[], suffix?: string) {\n\tconst context = useContext(Title)\n\tuseEffect(() => {\n\t\tif (title) {\n\t\t\tcontext.changeTitle(title, versions, suffix)\n\t\t}\n\t}, [title, versions, suffix])\n\treturn context\n}\n\nexport function TitleProvider({ children }: { children: ComponentChildren }) {\n\tconst { locale } = useLocale()\n\tconst [title, setTitle] = useState<string>(locale('title.home'))\n\n\tconst changeTitle = useCallback((title: string, versionIds?: VersionId[], suffix?: string) => {\n\t\tlet versions = config.versions\n\t\tif (versionIds !== undefined) {\n\t\t\tversions = config.versions.filter(v => versionIds?.includes(v.id as VersionId))\n\t\t}\n\t\tlet titleSuffix = ''\n\t\tif (suffix) {\n\t\t\ttitleSuffix = ` - ${suffix}`\n\t\t}\n\t\tif (!(versionIds?.length === 0)) {\n\t\t\tconst titleVersions = versions.map(v => v.id).slice(-VERSIONS_IN_TITLE)\n\t\t\ttitleSuffix = ` - Minecraft ${titleVersions.join(', ')}`\n\t\t}\n\t\tdocument.title = title + titleSuffix\n\t\tsetTitle(title)\n\t}, [])\n\n\tconst value = {\n\t\ttitle,\n\t\tchangeTitle,\n\t}\n\n\treturn <Title.Provider value={value}>\n\t\t{children}\n\t</Title.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport { useSearchParam } from '../hooks'\nimport type { VersionId } from '../services'\nimport { VersionIds } from '../services'\nimport { Store } from '../Store'\n\nconst VERSION_PARAM = 'version'\n\ninterface Version {\n\tversion: VersionId,\n\tchangeVersion: (version: VersionId, store?: boolean, updateSearch?: boolean) => unknown,\n\tchangeTargetVersion: (version: VersionId, replace?: boolean) => unknown,\n}\nconst Version = createContext<Version>({\n\tversion: '1.18.2',\n\tchangeVersion: () => {},\n\tchangeTargetVersion: () => {},\n})\n\nexport function useVersion() {\n\treturn useContext(Version)\n}\n\nexport function VersionProvider({ children }: { children: ComponentChildren }) {\n\tconst [version, setVersion] = useState<VersionId>(Store.getVersion())\n\n\tconst [targetVersion, changeTargetVersion] = useSearchParam(VERSION_PARAM)\n\n\tuseEffect(() => {\n\t\tif (VersionIds.includes(targetVersion as VersionId) && version !== targetVersion) {\n\t\t\tAnalytics.setVersion(targetVersion as VersionId)\n\t\t\tsetVersion(targetVersion as VersionId)\n\t\t}\n\t}, [version, targetVersion])\n\n\tconst changeVersion = useCallback((newVersion: VersionId, store = true, updateSearch = false) => {\n\t\tif (updateSearch || targetVersion) {\n\t\t\tchangeTargetVersion(newVersion, true)\n\t\t}\n\t\tif (store) {\n\t\t\tAnalytics.changeVersion(version, newVersion)\n\t\t\tStore.setVersion(newVersion)\n\t\t}\n\t\tsetVersion(newVersion)\n\t}, [version, targetVersion])\n\n\tuseEffect(() => {\n\t\tAnalytics.setVersion(version)\n\t}, [])\n\n\tconst value: Version = {\n\t\tversion,\n\t\tchangeVersion,\n\t\tchangeTargetVersion,\n\t}\n\n\treturn <Version.Provider value={value}>\n\t\t{children}\n\t</Version.Provider>\n}\n","\nlet wasm;\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nlet cachegetUint8Memory0 = null;\nfunction getUint8Memory0() {\n if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachegetUint8Memory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\n\nconst u32CvtShim = new Uint32Array(2);\n\nconst int64CvtShim = new BigInt64Array(u32CvtShim.buffer);\n\nlet cachegetInt32Memory0 = null;\nfunction getInt32Memory0() {\n if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) {\n cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachegetInt32Memory0;\n}\n\nlet cachegetFloat64Memory0 = null;\nfunction getFloat64Memory0() {\n if (cachegetFloat64Memory0 === null || cachegetFloat64Memory0.buffer !== wasm.memory.buffer) {\n cachegetFloat64Memory0 = new Float64Array(wasm.memory.buffer);\n }\n return cachegetFloat64Memory0;\n}\n\nfunction getArrayF64FromWasm0(ptr, len) {\n return getFloat64Memory0().subarray(ptr / 8, ptr / 8 + len);\n}\n/**\n* @param {BigInt} seed\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function improved_noise(seed, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n wasm.improved_noise(retptr, low0, high0, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v1 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nfunction passArrayF64ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 8);\n getFloat64Memory0().set(arg, ptr / 8);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function perlin_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.perlin_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function normal_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.normal_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet cachegetUint32Memory0 = null;\nfunction getUint32Memory0() {\n if (cachegetUint32Memory0 === null || cachegetUint32Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint32Memory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachegetUint32Memory0;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4);\n getUint32Memory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {Float64Array} t_min\n* @param {Float64Array} t_max\n* @param {Float64Array} h_min\n* @param {Float64Array} h_max\n* @param {Float64Array} c_min\n* @param {Float64Array} c_max\n* @param {Float64Array} e_min\n* @param {Float64Array} e_max\n* @param {Float64Array} w_min\n* @param {Float64Array} w_max\n* @param {Float64Array} d_min\n* @param {Float64Array} d_max\n* @param {Float64Array} offset\n* @param {Int32Array} biome\n* @returns {ParameterList}\n*/\nexport function biome_parameters(t_min, t_max, h_min, h_max, c_min, c_max, e_min, e_max, w_min, w_max, d_min, d_max, offset, biome) {\n var ptr0 = passArrayF64ToWasm0(t_min, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = passArrayF64ToWasm0(t_max, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_min, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(h_max, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(c_min, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(c_max, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(e_min, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ptr7 = passArrayF64ToWasm0(e_max, wasm.__wbindgen_malloc);\n var len7 = WASM_VECTOR_LEN;\n var ptr8 = passArrayF64ToWasm0(w_min, wasm.__wbindgen_malloc);\n var len8 = WASM_VECTOR_LEN;\n var ptr9 = passArrayF64ToWasm0(w_max, wasm.__wbindgen_malloc);\n var len9 = WASM_VECTOR_LEN;\n var ptr10 = passArrayF64ToWasm0(d_min, wasm.__wbindgen_malloc);\n var len10 = WASM_VECTOR_LEN;\n var ptr11 = passArrayF64ToWasm0(d_max, wasm.__wbindgen_malloc);\n var len11 = WASM_VECTOR_LEN;\n var ptr12 = passArrayF64ToWasm0(offset, wasm.__wbindgen_malloc);\n var len12 = WASM_VECTOR_LEN;\n var ptr13 = passArray32ToWasm0(biome, wasm.__wbindgen_malloc);\n var len13 = WASM_VECTOR_LEN;\n var ret = wasm.biome_parameters(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, ptr10, len10, ptr11, len11, ptr12, len12, ptr13, len13);\n return ParameterList.__wrap(ret);\n}\n\n/**\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @returns {NoiseParameters}\n*/\nexport function noise_parameters(first_octave, amplitudes) {\n var ptr0 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.noise_parameters(first_octave, ptr0, len0);\n return NoiseParameters.__wrap(ret);\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} t_first\n* @param {Float64Array} t_amplitudes\n* @param {number} h_first\n* @param {Float64Array} h_amplitudes\n* @param {number} c_first\n* @param {Float64Array} c_amplitudes\n* @param {number} e_first\n* @param {Float64Array} e_amplitudes\n* @param {number} w_first\n* @param {Float64Array} w_amplitudes\n* @param {number} s_first\n* @param {Float64Array} s_amplitudes\n* @returns {Sampler}\n*/\nexport function climate_sampler(seed, t_first, t_amplitudes, h_first, h_amplitudes, c_first, c_amplitudes, e_first, e_amplitudes, w_first, w_amplitudes, s_first, s_amplitudes) {\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(t_amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_amplitudes, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(c_amplitudes, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(e_amplitudes, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(w_amplitudes, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(s_amplitudes, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ret = wasm.climate_sampler(low0, high0, t_first, ptr1, len1, h_first, ptr2, len2, c_first, ptr3, len3, e_first, ptr4, len4, w_first, ptr5, len5, s_first, ptr6, len6);\n return Sampler.__wrap(ret);\n}\n\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n return instance.ptr;\n}\n/**\n* @param {ParameterList} parameters\n* @param {Float64Array} target\n* @returns {number}\n*/\nexport function find_biome(parameters, target) {\n _assertClass(parameters, ParameterList);\n var ptr0 = passArrayF64ToWasm0(target, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.find_biome(parameters.ptr, ptr0, len0);\n return ret;\n}\n\nfunction getArrayI32FromWasm0(ptr, len) {\n return getInt32Memory0().subarray(ptr / 4, ptr / 4 + len);\n}\n/**\n* @param {ParameterList} parameters\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Int32Array}\n*/\nexport function multi_noise(parameters, sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(parameters, ParameterList);\n _assertClass(sampler, Sampler);\n wasm.multi_noise(retptr, parameters.ptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayI32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function climate_noise(sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(sampler, Sampler);\n wasm.climate_noise(retptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} x\n* @returns {Test}\n*/\nexport function create_test(x) {\n var ret = wasm.create_test(x);\n return Test.__wrap(ret);\n}\n\n/**\n* @param {Test} test\n* @returns {number}\n*/\nexport function calc_test(test) {\n _assertClass(test, Test);\n var ret = wasm.calc_test(test.ptr);\n return ret;\n}\n\n/**\n*/\nexport class ImprovedNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_improvednoise_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseOctaves {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseoctaves_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseParameters {\n\n static __wrap(ptr) {\n const obj = Object.create(NoiseParameters.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseparameters_free(ptr);\n }\n}\n/**\n*/\nexport class NormalNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_normalnoise_free(ptr);\n }\n}\n/**\n*/\nexport class ParameterList {\n\n static __wrap(ptr) {\n const obj = Object.create(ParameterList.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_parameterlist_free(ptr);\n }\n}\n/**\n*/\nexport class PerlinNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_perlinnoise_free(ptr);\n }\n}\n/**\n*/\nexport class Sampler {\n\n static __wrap(ptr) {\n const obj = Object.create(Sampler.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_sampler_free(ptr);\n }\n}\n/**\n*/\nexport class Test {\n\n static __wrap(ptr) {\n const obj = Object.create(Test.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_test_free(ptr);\n }\n}\n\nasync function load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nasync function init(input) {\n if (typeof input === 'undefined') {\n input = new URL('deepslate_rs_bg.wasm', import.meta.url);\n }\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) {\n input = fetch(input);\n }\n\n\n\n const { instance, module } = await load(await input, imports);\n\n wasm = instance.exports;\n init.__wbindgen_wasm_module = module;\n\n return wasm;\n}\n\nexport default init;\n\n","export default \"__VITE_ASSET__4990c219__\"","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","import md5 from 'md5';\n\nvar Json;\n(function(Json2) {\n function readNumber(obj) {\n return typeof obj === \"number\" ? obj : void 0;\n }\n Json2.readNumber = readNumber;\n function readInt(obj) {\n return typeof obj === \"number\" ? Math.floor(obj) : void 0;\n }\n Json2.readInt = readInt;\n function readString(obj) {\n return typeof obj === \"string\" ? obj : void 0;\n }\n Json2.readString = readString;\n function readBoolean(obj) {\n return typeof obj === \"boolean\" ? obj : void 0;\n }\n Json2.readBoolean = readBoolean;\n function readObject(obj) {\n return typeof obj === \"object\" && obj !== null ? obj : void 0;\n }\n Json2.readObject = readObject;\n function readArray(obj, parser) {\n if (!Array.isArray(obj))\n return void 0;\n return obj.map((el) => parser(el));\n }\n Json2.readArray = readArray;\n function readMap(obj, parser) {\n const root = readObject(obj) ?? {};\n return Object.fromEntries(Object.entries(root).map(([k, v]) => [k, parser(v)]));\n }\n Json2.readMap = readMap;\n function compose(obj, parser, mapper) {\n const result = parser(obj);\n return result ? mapper(result) : void 0;\n }\n Json2.compose = compose;\n function readEnum(obj, values) {\n if (typeof obj !== \"string\")\n return values[0];\n if (values.includes(obj))\n return obj;\n return values[0];\n }\n Json2.readEnum = readEnum;\n})(Json || (Json = {}));\n\nfunction lazy(getter) {\n let value = null;\n return () => {\n if (value == null) {\n value = getter();\n }\n return value;\n };\n}\nfunction computeIfAbsent(map, key, getter) {\n const existing = map.get(key);\n if (existing) {\n return existing;\n }\n const value = getter(key);\n map.set(key, value);\n return value;\n}\n\nfunction square(x) {\n return x * x;\n}\nfunction clamp(x, min, max) {\n return Math.max(min, Math.min(max, x));\n}\nfunction lerp(a, b, c) {\n return b + a * (c - b);\n}\nfunction lerp2(a, b, c, d, e, f) {\n return lerp(b, lerp(a, c, d), lerp(a, e, f));\n}\nfunction lerp3(a, b, c, d, e, f, g, h, i, j, k) {\n return lerp(c, lerp2(a, b, d, e, f, g), lerp2(a, b, h, i, j, k));\n}\nfunction lazyLerp(a, b, c) {\n if (a === 0)\n return b();\n if (a === 1)\n return c();\n return b() + a * (c() - b());\n}\nfunction lazyLerp2(a, b, c, d, e, f) {\n return lazyLerp(b, () => lazyLerp(a, c, d), () => lazyLerp(a, e, f));\n}\nfunction lazyLerp3(a, b, c, d, e, f, g, h, i, j, k) {\n return lazyLerp(c, () => lazyLerp2(a, b, d, e, f, g), () => lazyLerp2(a, b, h, i, j, k));\n}\nfunction clampedLerp(a, b, c) {\n if (c < 0) {\n return a;\n } else if (c > 1) {\n return b;\n } else {\n return lerp(c, a, b);\n }\n}\nfunction inverseLerp(a, b, c) {\n return (a - b) / (c - b);\n}\nfunction smoothstep(x) {\n return x * x * x * (x * (x * 6 - 15) + 10);\n}\nfunction map(a, b, c, d, e) {\n return lerp(inverseLerp(a, b, c), d, e);\n}\nfunction clampedMap(a, b, c, d, e) {\n return clampedLerp(d, e, inverseLerp(a, b, c));\n}\nfunction binarySearch(n, n2, predicate) {\n let n3 = n2 - n;\n while (n3 > 0) {\n const n4 = Math.floor(n3 / 2);\n const n5 = n + n4;\n if (predicate(n5)) {\n n3 = n4;\n continue;\n }\n n = n5 + 1;\n n3 -= n4 + 1;\n }\n return n;\n}\nfunction getSeed(x, y, z) {\n let seed = BigInt(x * 3129871) ^ BigInt(z) * BigInt(116129781) ^ BigInt(y);\n seed = seed * seed * BigInt(42317861) + seed * BigInt(11);\n return seed >> BigInt(16);\n}\nfunction longfromBytes(a, b, c, d, e, f, g, h) {\n return BigInt(a) << BigInt(56) | BigInt(b) << BigInt(48) | BigInt(c) << BigInt(40) | BigInt(d) << BigInt(32) | BigInt(e) << BigInt(24) | BigInt(f) << BigInt(16) | BigInt(g) << BigInt(8) | BigInt(h);\n}\nfunction isPowerOfTwo(x) {\n return (x & x - 1) === 0;\n}\nfunction upperPowerOfTwo(x) {\n x -= 1;\n x |= x >> 1;\n x |= x >> 2;\n x |= x >> 4;\n x |= x >> 8;\n x |= x >> 18;\n x |= x >> 32;\n return x + 1;\n}\n\nvar MinMaxNumberFunction;\n(function(MinMaxNumberFunction2) {\n function is(obj) {\n return typeof obj === \"object\" && obj !== null && \"minValue\" in obj && \"maxValue\" in obj;\n }\n MinMaxNumberFunction2.is = is;\n})(MinMaxNumberFunction || (MinMaxNumberFunction = {}));\nvar CubicSpline;\n(function(CubicSpline2) {\n function fromJson(obj, extractor) {\n if (typeof obj === \"number\") {\n return new Constant(obj);\n }\n const root = Json.readObject(obj) ?? {};\n const spline = new MultiPoint(extractor(root.coordinate));\n const points = Json.readArray(root.points, (e) => Json.readObject(e) ?? {}) ?? [];\n if (points.length === 0) {\n return new Constant(0);\n }\n for (const point of points) {\n const location = Json.readNumber(point.location) ?? 0;\n const value = fromJson(point.value, extractor);\n const derivative = Json.readNumber(point.derivative) ?? 0;\n spline.addPoint(location, value, derivative);\n }\n return spline;\n }\n CubicSpline2.fromJson = fromJson;\n class Constant {\n constructor(value) {\n this.value = value;\n }\n compute() {\n return this.value;\n }\n min() {\n return this.value;\n }\n max() {\n return this.value;\n }\n mapAll() {\n return this;\n }\n calculateMinMax() {\n }\n }\n CubicSpline2.Constant = Constant;\n class MultiPoint {\n constructor(coordinate, locations = [], values = [], derivatives = []) {\n this.coordinate = coordinate;\n this.locations = locations;\n this.values = values;\n this.derivatives = derivatives;\n this.calculatedMin = Number.NEGATIVE_INFINITY;\n this.calculatedMax = Number.POSITIVE_INFINITY;\n }\n compute(c) {\n const coordinate = this.coordinate.compute(c);\n const i = binarySearch(0, this.locations.length, (n2) => coordinate < this.locations[n2]) - 1;\n const n = this.locations.length - 1;\n if (i < 0) {\n return this.values[0].compute(c) + this.derivatives[0] * (coordinate - this.locations[0]);\n }\n if (i === n) {\n return this.values[n].compute(c) + this.derivatives[n] * (coordinate - this.locations[n]);\n }\n const loc0 = this.locations[i];\n const loc1 = this.locations[i + 1];\n const der0 = this.derivatives[i];\n const der1 = this.derivatives[i + 1];\n const f = (coordinate - loc0) / (loc1 - loc0);\n const val0 = this.values[i].compute(c);\n const val1 = this.values[i + 1].compute(c);\n const f8 = der0 * (loc1 - loc0) - (val1 - val0);\n const f9 = -der1 * (loc1 - loc0) + (val1 - val0);\n const f10 = lerp(f, val0, val1) + f * (1 - f) * lerp(f, f8, f9);\n return f10;\n }\n min() {\n return this.calculatedMin;\n }\n max() {\n return this.calculatedMax;\n }\n mapAll(visitor) {\n return new MultiPoint(visitor(this.coordinate), this.locations, this.values.map((v) => v.mapAll(visitor)), this.derivatives);\n }\n addPoint(location, value, derivative = 0) {\n this.locations.push(location);\n this.values.push(typeof value === \"number\" ? new CubicSpline2.Constant(value) : value);\n this.derivatives.push(derivative);\n return this;\n }\n calculateMinMax() {\n if (!MinMaxNumberFunction.is(this.coordinate)) {\n return;\n }\n const lastIdx = this.locations.length - 1;\n var splineMin = Number.POSITIVE_INFINITY;\n var splineMax = Number.NEGATIVE_INFINITY;\n const coordinateMin = this.coordinate.minValue();\n const coordinateMax = this.coordinate.maxValue();\n for (const innerSpline of this.values) {\n innerSpline.calculateMinMax();\n }\n if (coordinateMin < this.locations[0]) {\n const minExtend = MultiPoint.linearExtend(coordinateMin, this.locations, this.values[0].min(), this.derivatives, 0);\n const maxExtend = MultiPoint.linearExtend(coordinateMin, this.locations, this.values[0].max(), this.derivatives, 0);\n splineMin = Math.min(splineMin, Math.min(minExtend, maxExtend));\n splineMax = Math.max(splineMax, Math.max(minExtend, maxExtend));\n }\n if (coordinateMax > this.locations[lastIdx]) {\n const minExtend = MultiPoint.linearExtend(coordinateMax, this.locations, this.values[lastIdx].min(), this.derivatives, lastIdx);\n const maxExtend = MultiPoint.linearExtend(coordinateMax, this.locations, this.values[lastIdx].max(), this.derivatives, lastIdx);\n splineMin = Math.min(splineMin, Math.min(minExtend, maxExtend));\n splineMax = Math.max(splineMax, Math.max(minExtend, maxExtend));\n }\n for (const innerSpline of this.values) {\n splineMin = Math.min(splineMin, innerSpline.min());\n splineMax = Math.max(splineMax, innerSpline.max());\n }\n for (var i = 0; i < lastIdx; ++i) {\n const locationLeft = this.locations[i];\n const locationRight = this.locations[i + 1];\n const locationDelta = locationRight - locationLeft;\n const splineLeft = this.values[i];\n const splineRight = this.values[i + 1];\n const minLeft = splineLeft.min();\n const maxLeft = splineLeft.max();\n const minRight = splineRight.min();\n const maxRight = splineRight.max();\n const derivativeLeft = this.derivatives[i];\n const derivativeRight = this.derivatives[i + 1];\n if (derivativeLeft !== 0 || derivativeRight !== 0) {\n const maxValueDeltaLeft = derivativeLeft * locationDelta;\n const maxValueDeltaRight = derivativeRight * locationDelta;\n const minValue = Math.min(minLeft, minRight);\n const maxValue = Math.max(maxLeft, maxRight);\n const minDeltaLeft = maxValueDeltaLeft - maxRight + minLeft;\n const maxDeltaLeft = maxValueDeltaLeft - minRight + maxLeft;\n const minDeltaRight = -maxValueDeltaRight + minRight - maxLeft;\n const maxDeltaRight = -maxValueDeltaRight + maxRight - minLeft;\n const minDelta = Math.min(minDeltaLeft, minDeltaRight);\n const maxDelta = Math.max(maxDeltaLeft, maxDeltaRight);\n splineMin = Math.min(splineMin, minValue + 0.25 * minDelta);\n splineMax = Math.max(splineMax, maxValue + 0.25 * maxDelta);\n }\n }\n this.calculatedMin = splineMin;\n this.calculatedMax = splineMax;\n }\n static linearExtend(location, locations, value, derivatives, useIndex) {\n const derivative = derivatives[useIndex];\n return derivative == 0 ? value : value + derivative * (location - locations[useIndex]);\n }\n }\n CubicSpline2.MultiPoint = MultiPoint;\n})(CubicSpline || (CubicSpline = {}));\n\nconst _LegacyRandom = class {\n constructor(seed) {\n this.seed = BigInt(0);\n this.setSeed(seed);\n }\n fork() {\n return new _LegacyRandom(this.nextLong());\n }\n forkPositional() {\n return new LegacyPositionalRandom(this.nextLong());\n }\n setSeed(seed) {\n this.seed = seed ^ _LegacyRandom.MULTIPLIER & _LegacyRandom.MODULUS_MASK;\n }\n advance() {\n this.seed = this.seed * _LegacyRandom.MULTIPLIER + _LegacyRandom.INCREMENT & _LegacyRandom.MODULUS_MASK;\n }\n consume(count) {\n for (let i = 0; i < count; i += 1) {\n this.advance();\n }\n }\n next(bits) {\n this.advance();\n const out = Number(this.seed >> BigInt(_LegacyRandom.MODULUS_BITS - bits));\n return out > 2147483647 ? out - 4294967296 : out;\n }\n nextInt(max) {\n if (max === void 0) {\n return this.next(32);\n }\n if ((max & max - 1) == 0) {\n return Number(BigInt(max) * BigInt(this.next(31)) >> BigInt(31));\n }\n let a, b;\n while ((a = this.next(31)) - (b = a % max) + (max - 1) < 0) {\n }\n return b;\n }\n nextLong() {\n return (BigInt(this.next(32)) << BigInt(32)) + BigInt(this.next(32));\n }\n nextFloat() {\n return this.next(24) * _LegacyRandom.FLOAT_MULTIPLIER;\n }\n nextDouble() {\n const a = this.next(30);\n this.advance();\n return a * _LegacyRandom.DOUBLE_MULTIPLIER;\n }\n};\nlet LegacyRandom = _LegacyRandom;\nLegacyRandom.MODULUS_BITS = 48;\nLegacyRandom.MODULUS_MASK = BigInt(\"281474976710655\");\nLegacyRandom.MULTIPLIER = BigInt(\"25214903917\");\nLegacyRandom.INCREMENT = BigInt(\"11\");\nLegacyRandom.FLOAT_MULTIPLIER = 1 / Math.pow(2, 24);\nLegacyRandom.DOUBLE_MULTIPLIER = 1 / Math.pow(2, 30);\nclass LegacyPositionalRandom {\n constructor(seed) {\n this.seed = seed;\n }\n at(x, y, z) {\n const seed = getSeed(x, y, z);\n return new LegacyRandom(seed ^ this.seed);\n }\n fromHashOf(name) {\n const hash = md5(name, { asBytes: true });\n const seed = longfromBytes(hash[0], hash[1], hash[2], hash[3], hash[4], hash[5], hash[6], hash[7]);\n return new LegacyRandom(seed ^ this.seed);\n }\n seedKey() {\n return [this.seed, BigInt(0)];\n }\n}\n\nconst _XoroshiroRandom = class {\n constructor(seed) {\n this.seed = [BigInt(0), BigInt(0)];\n this.seed = seed;\n }\n static create(seed) {\n return new _XoroshiroRandom(_XoroshiroRandom.upgradeSeedTo128bit(seed));\n }\n static mixStafford13(value) {\n value = (value ^ value >> _XoroshiroRandom.BIGINT_30) * _XoroshiroRandom.STAFFORD_1 & _XoroshiroRandom.MAX_ULONG;\n value = (value ^ value >> _XoroshiroRandom.BIGINT_27) * _XoroshiroRandom.STAFFORD_2 & _XoroshiroRandom.MAX_ULONG;\n return (value ^ value >> _XoroshiroRandom.BIGINT_31) & _XoroshiroRandom.MAX_ULONG;\n }\n static upgradeSeedTo128bit(seed) {\n if (seed < 0) {\n seed += _XoroshiroRandom.POW2_60;\n }\n const seedLo = seed ^ _XoroshiroRandom.SILVER_RATIO_64;\n const seedHi = seedLo + _XoroshiroRandom.GOLDEN_RATIO_64 & _XoroshiroRandom.MAX_ULONG;\n return [_XoroshiroRandom.mixStafford13(seedLo), _XoroshiroRandom.mixStafford13(seedHi)];\n }\n static rotateLeft(value, shift) {\n return value << shift & _XoroshiroRandom.MAX_ULONG | value >> _XoroshiroRandom.BIGINT_64 - shift;\n }\n setSeed(seed) {\n this.seed = _XoroshiroRandom.upgradeSeedTo128bit(seed);\n }\n fork() {\n return new _XoroshiroRandom([this.next(), this.next()]);\n }\n forkPositional() {\n return new XoroshiroPositionalRandom(this.next(), this.next());\n }\n next() {\n const seedLo = this.seed[0];\n let seedHi = this.seed[1];\n const value = _XoroshiroRandom.rotateLeft(seedLo + seedHi & _XoroshiroRandom.MAX_ULONG, _XoroshiroRandom.BIGINT_17) + seedLo & _XoroshiroRandom.MAX_ULONG;\n seedHi ^= seedLo;\n this.seed = [\n _XoroshiroRandom.rotateLeft(seedLo, _XoroshiroRandom.BIGINT_49) ^ seedHi ^ seedHi << _XoroshiroRandom.BIGINT_21 & _XoroshiroRandom.MAX_ULONG,\n _XoroshiroRandom.rotateLeft(seedHi, _XoroshiroRandom.BIGINT_28)\n ];\n return value;\n }\n nextLong() {\n let value = this.next();\n if (value > _XoroshiroRandom.POW2_63)\n value -= _XoroshiroRandom.POW2_60;\n return value;\n }\n consume(count) {\n let seedLo = this.seed[0];\n let seedHi = this.seed[1];\n for (let i = 0; i < count; i += 1) {\n seedHi ^= seedLo;\n seedLo = _XoroshiroRandom.rotateLeft(seedLo, _XoroshiroRandom.BIGINT_49) ^ seedHi ^ seedHi << _XoroshiroRandom.BIGINT_21;\n seedHi = _XoroshiroRandom.rotateLeft(seedHi, _XoroshiroRandom.BIGINT_28);\n }\n this.seed = [seedLo, seedHi];\n }\n nextBits(bits) {\n return this.next() >> BigInt(64 - bits);\n }\n nextInt(max) {\n let value = this.next() & _XoroshiroRandom.MAX_UINT;\n if (!max) {\n let result = Number(value);\n if (result >= 2147483648) {\n result -= 4294967296;\n }\n return result;\n } else {\n const maxBigint = BigInt(max);\n let product = value * maxBigint;\n let productLo = product & _XoroshiroRandom.MAX_UINT;\n if (productLo < maxBigint) {\n const newMax = ((~maxBigint & _XoroshiroRandom.MAX_UINT) + _XoroshiroRandom.BIGINT_1) % maxBigint;\n while (productLo < newMax) {\n value = this.next() & _XoroshiroRandom.MAX_UINT;\n product = value * maxBigint;\n productLo = product & _XoroshiroRandom.MAX_UINT;\n }\n }\n const productHi = product >> _XoroshiroRandom.BIGINT_32;\n return Number(productHi);\n }\n }\n nextFloat() {\n return Number(this.nextBits(24)) * _XoroshiroRandom.FLOAT_MULTIPLIER;\n }\n nextDouble() {\n return Number(this.nextBits(53)) * _XoroshiroRandom.DOUBLE_MULTIPLIER;\n }\n parityConfigString() {\n return \"seedLo: \" + this.seed[0] + \", seedHi: \" + this.seed[1];\n }\n};\nlet XoroshiroRandom = _XoroshiroRandom;\nXoroshiroRandom.SILVER_RATIO_64 = BigInt(\"7640891576956012809\");\nXoroshiroRandom.GOLDEN_RATIO_64 = BigInt(\"-7046029254386353131\");\nXoroshiroRandom.FLOAT_MULTIPLIER = 1 / Math.pow(2, 24);\nXoroshiroRandom.DOUBLE_MULTIPLIER = 11102230246251565e-32;\nXoroshiroRandom.BIGINT_1 = BigInt(1);\nXoroshiroRandom.BIGINT_17 = BigInt(17);\nXoroshiroRandom.BIGINT_21 = BigInt(21);\nXoroshiroRandom.BIGINT_27 = BigInt(27);\nXoroshiroRandom.BIGINT_28 = BigInt(28);\nXoroshiroRandom.BIGINT_30 = BigInt(30);\nXoroshiroRandom.BIGINT_31 = BigInt(31);\nXoroshiroRandom.BIGINT_32 = BigInt(32);\nXoroshiroRandom.BIGINT_49 = BigInt(49);\nXoroshiroRandom.BIGINT_64 = BigInt(64);\nXoroshiroRandom.STAFFORD_1 = BigInt(\"-4658895280553007687\");\nXoroshiroRandom.STAFFORD_2 = BigInt(\"-7723592293110705685\");\nXoroshiroRandom.MAX_ULONG = BigInt(\"0xFFFFFFFFFFFFFFFF\");\nXoroshiroRandom.POW2_60 = BigInt(\"0x10000000000000000\");\nXoroshiroRandom.POW2_63 = BigInt(\"0x8000000000000000\");\nXoroshiroRandom.MAX_UINT = BigInt(4294967295);\nclass XoroshiroPositionalRandom {\n constructor(seedLo, seedHi) {\n this.seedLo = seedLo;\n this.seedHi = seedHi;\n }\n at(x, y, z) {\n const positionSeed = getSeed(x, y, z);\n const seedLo = positionSeed ^ this.seedLo;\n return new XoroshiroRandom([seedLo, this.seedHi]);\n }\n fromHashOf(name) {\n const hash = md5(name, { asBytes: true });\n const lo = longfromBytes(hash[0], hash[1], hash[2], hash[3], hash[4], hash[5], hash[6], hash[7]);\n const hi = longfromBytes(hash[8], hash[9], hash[10], hash[11], hash[12], hash[13], hash[14], hash[15]);\n return new XoroshiroRandom([lo ^ this.seedLo, hi ^ this.seedHi]);\n }\n seedKey() {\n return [this.seedLo, this.seedHi];\n }\n}\n\nconst _SimplexNoise = class {\n constructor(random) {\n this.xo = random.nextDouble() * 256;\n this.yo = random.nextDouble() * 256;\n this.zo = random.nextDouble() * 256;\n this.p = Array(256);\n for (let i = 0; i < 256; i += 1) {\n this.p[i] = i;\n }\n for (let i = 0; i < 256; i += 1) {\n const j = random.nextInt(256 - i);\n const b = this.p[i];\n this.p[i] = this.p[i + j];\n this.p[i + j] = b;\n }\n }\n sample2D(d, d2) {\n let d3;\n let n3;\n let d4;\n const d6 = (d + d2) * _SimplexNoise.F2;\n const n4 = Math.floor(d + d6);\n const d7 = n4 - (d3 = (n4 + (n3 = Math.floor(d2 + d6))) * _SimplexNoise.G2);\n const d8 = d - d7;\n let a;\n let b;\n if (d8 > (d4 = d2 - (n3 - d3))) {\n a = 1;\n b = 0;\n } else {\n a = 0;\n b = 1;\n }\n const d9 = d8 - a + _SimplexNoise.G2;\n const d10 = d4 - b + _SimplexNoise.G2;\n const d11 = d8 - 1 + 2 * _SimplexNoise.G2;\n const d12 = d4 - 1 + 2 * _SimplexNoise.G2;\n const n5 = n4 & 255;\n const n6 = n3 & 255;\n const n7 = this.P(n5 + this.P(n6)) % 12;\n const n8 = this.P(n5 + a + this.P(n6 + b)) % 12;\n const n9 = this.P(n5 + 1 + this.P(n6 + 1)) % 12;\n const d13 = this.getCornerNoise3D(n7, d8, d4, 0, 0.5);\n const d14 = this.getCornerNoise3D(n8, d9, d10, 0, 0.5);\n const d15 = this.getCornerNoise3D(n9, d11, d12, 0, 0.5);\n return 70 * (d13 + d14 + d15);\n }\n sample(x, y, z) {\n const d5 = (x + y + z) * 0.3333333333333333;\n const x2 = Math.floor(x + d5);\n const y2 = Math.floor(y + d5);\n const z2 = Math.floor(z + d5);\n const d7 = (x2 + y2 + z2) * 0.16666666666666666;\n const x3 = x - (x2 - d7);\n const y3 = y - (y2 - d7);\n const z3 = z - (z2 - d7);\n let a;\n let b;\n let c;\n let d;\n let e;\n let f;\n if (x3 >= y3) {\n if (y3 >= z3) {\n a = 1;\n b = 0;\n c = 0;\n d = 1;\n e = 1;\n f = 0;\n } else if (x3 >= z3) {\n a = 1;\n b = 0;\n c = 0;\n d = 1;\n e = 0;\n f = 1;\n } else {\n a = 0;\n b = 0;\n c = 1;\n d = 1;\n e = 0;\n f = 1;\n }\n } else if (y3 < z3) {\n a = 0;\n b = 0;\n c = 1;\n d = 0;\n e = 1;\n f = 1;\n } else if (x3 < z3) {\n a = 0;\n b = 1;\n c = 0;\n d = 0;\n e = 1;\n f = 1;\n } else {\n a = 0;\n b = 1;\n c = 0;\n d = 1;\n e = 1;\n f = 0;\n }\n const x4 = x3 - a + 0.16666666666666666;\n const y4 = y3 - b + 0.16666666666666666;\n const z4 = z3 - c + 0.16666666666666666;\n const x5 = x3 - d + 0.3333333333333333;\n const y5 = y3 - e + 0.3333333333333333;\n const z5 = z3 - f + 0.3333333333333333;\n const x6 = x3 - 0.5;\n const y6 = y3 - 0.5;\n const z6 = z3 - 0.5;\n const x7 = x2 & 255;\n const y7 = y2 & 255;\n const z7 = z2 & 255;\n const g = this.P(x7 + this.P(y7 + this.P(z7))) % 12;\n const h = this.P(x7 + a + this.P(y7 + b + this.P(z7 + c))) % 12;\n const i = this.P(x7 + d + this.P(y7 + e + this.P(z7 + f))) % 12;\n const j = this.P(x7 + 1 + this.P(y7 + 1 + this.P(z7 + 1))) % 12;\n const k = this.getCornerNoise3D(g, x3, y3, z3, 0.6);\n const l = this.getCornerNoise3D(h, x4, y4, z4, 0.6);\n const m = this.getCornerNoise3D(i, x5, y5, z5, 0.6);\n const n = this.getCornerNoise3D(j, x6, y6, z6, 0.6);\n return 32 * (k + l + m + n);\n }\n P(i) {\n return this.p[i & 255];\n }\n getCornerNoise3D(i, a, b, c, d) {\n let f;\n let e = d - a * a - b * b - c * c;\n if (e < 0) {\n f = 0;\n } else {\n e *= e;\n f = e * e * _SimplexNoise.gradDot(i, a, b, c);\n }\n return f;\n }\n static gradDot(a, b, c, d) {\n const grad = _SimplexNoise.GRADIENT[a & 15];\n return grad[0] * b + grad[1] * c + grad[2] * d;\n }\n};\nlet SimplexNoise = _SimplexNoise;\nSimplexNoise.GRADIENT = [[1, 1, 0], [-1, 1, 0], [1, -1, 0], [-1, -1, 0], [1, 0, 1], [-1, 0, 1], [1, 0, -1], [-1, 0, -1], [0, 1, 1], [0, -1, 1], [0, 1, -1], [0, -1, -1], [1, 1, 0], [0, -1, 1], [-1, 1, 0], [0, -1, -1]];\nSimplexNoise.F2 = 0.5 * (Math.sqrt(3) - 1);\nSimplexNoise.G2 = (3 - Math.sqrt(3)) / 6;\n\nclass ImprovedNoise {\n constructor(random) {\n this.xo = random.nextDouble() * 256;\n this.yo = random.nextDouble() * 256;\n this.zo = random.nextDouble() * 256;\n this.p = Array(256);\n for (let i = 0; i < 256; i += 1) {\n this.p[i] = i > 127 ? i - 256 : i;\n }\n for (let i = 0; i < 256; i += 1) {\n const j = random.nextInt(256 - i);\n const b = this.p[i];\n this.p[i] = this.p[i + j];\n this.p[i + j] = b;\n }\n }\n sample(x, y, z, yScale = 0, yLimit = 0) {\n const x2 = x + this.xo;\n const y2 = y + this.yo;\n const z2 = z + this.zo;\n const x3 = Math.floor(x2);\n const y3 = Math.floor(y2);\n const z3 = Math.floor(z2);\n const x4 = x2 - x3;\n const y4 = y2 - y3;\n const z4 = z2 - z3;\n let y6 = 0;\n if (yScale !== 0) {\n const t = yLimit >= 0 && yLimit < y4 ? yLimit : y4;\n y6 = Math.floor(t / yScale + 1e-7) * yScale;\n }\n return this.sampleAndLerp(x3, y3, z3, x4, y4 - y6, z4, y4);\n }\n sampleAndLerp(a, b, c, d, e, f, g) {\n const h = this.P(a);\n const i = this.P(a + 1);\n const j = this.P(h + b);\n const k = this.P(h + b + 1);\n const l = this.P(i + b);\n const m = this.P(i + b + 1);\n const n = SimplexNoise.gradDot(this.P(j + c), d, e, f);\n const o = SimplexNoise.gradDot(this.P(l + c), d - 1, e, f);\n const p = SimplexNoise.gradDot(this.P(k + c), d, e - 1, f);\n const q = SimplexNoise.gradDot(this.P(m + c), d - 1, e - 1, f);\n const r = SimplexNoise.gradDot(this.P(j + c + 1), d, e, f - 1);\n const s = SimplexNoise.gradDot(this.P(l + c + 1), d - 1, e, f - 1);\n const t = SimplexNoise.gradDot(this.P(k + c + 1), d, e - 1, f - 1);\n const u = SimplexNoise.gradDot(this.P(m + c + 1), d - 1, e - 1, f - 1);\n const v = smoothstep(d);\n const w = smoothstep(g);\n const x = smoothstep(f);\n return lerp3(v, w, x, n, o, p, q, r, s, t, u);\n }\n P(i) {\n return this.p[i & 255] & 255;\n }\n}\n\nclass PerlinNoise {\n constructor(random, firstOctave, amplitudes) {\n if (random instanceof XoroshiroRandom) {\n const forkedRandom = random.forkPositional();\n this.noiseLevels = Array(amplitudes.length);\n for (let i = 0; i < amplitudes.length; i++) {\n if (amplitudes[i] !== 0) {\n const octave = firstOctave + i;\n this.noiseLevels[i] = new ImprovedNoise(forkedRandom.fromHashOf(\"octave_\" + octave));\n }\n }\n } else {\n if (1 - firstOctave < amplitudes.length) {\n throw new Error(\"Positive octaves are not allowed when using LegacyRandom\");\n }\n this.noiseLevels = Array(amplitudes.length);\n for (let i = -firstOctave; i >= 0; i -= 1) {\n if (i < amplitudes.length && amplitudes[i] !== 0) {\n this.noiseLevels[i] = new ImprovedNoise(random);\n } else {\n random.consume(262);\n }\n }\n }\n this.amplitudes = amplitudes;\n this.lowestFreqInputFactor = Math.pow(2, firstOctave);\n this.lowestFreqValueFactor = Math.pow(2, amplitudes.length - 1) / (Math.pow(2, amplitudes.length) - 1);\n this.maxValue = this.edgeValue(2);\n }\n sample(x, y, z, yScale = 0, yLimit = 0, fixY = false) {\n let value = 0;\n let inputF = this.lowestFreqInputFactor;\n let valueF = this.lowestFreqValueFactor;\n for (let i = 0; i < this.noiseLevels.length; i += 1) {\n const noise = this.noiseLevels[i];\n if (noise) {\n value += this.amplitudes[i] * valueF * noise.sample(PerlinNoise.wrap(x * inputF), fixY ? -noise.yo : PerlinNoise.wrap(y * inputF), PerlinNoise.wrap(z * inputF), yScale * inputF, yLimit * inputF);\n }\n inputF *= 2;\n valueF /= 2;\n }\n return value;\n }\n getOctaveNoise(i) {\n return this.noiseLevels[this.noiseLevels.length - 1 - i];\n }\n edgeValue(x) {\n let value = 0;\n let valueF = this.lowestFreqValueFactor;\n for (let i = 0; i < this.noiseLevels.length; i += 1) {\n if (this.noiseLevels[i]) {\n value += this.amplitudes[i] * x * valueF;\n }\n valueF /= 2;\n }\n return value;\n }\n static wrap(value) {\n return value - Math.floor(value / 33554432 + 0.5) * 33554432;\n }\n}\n\nclass BlendedNoise {\n constructor(random, xzScale, yScale, xzFactor, yFactor, smearScaleMultiplier) {\n this.xzScale = xzScale;\n this.yScale = yScale;\n this.xzFactor = xzFactor;\n this.yFactor = yFactor;\n this.smearScaleMultiplier = smearScaleMultiplier;\n this.minLimitNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]);\n this.maxLimitNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]);\n this.mainNoise = new PerlinNoise(random, -7, [1, 1, 1, 1, 1, 0, 0, 0]);\n this.xzMultiplier = 684.412 * xzScale;\n this.yMultiplier = 684.412 * yScale;\n this.maxValue = this.minLimitNoise.edgeValue(this.yScale + 2);\n }\n sample(x, y, z) {\n const scaledX = x * this.xzMultiplier;\n const scaledY = y * this.yMultiplier;\n const scaledZ = z * this.xzMultiplier;\n const factoredX = scaledX / this.xzFactor;\n const factoredY = scaledY / this.yFactor;\n const factoredZ = scaledZ / this.xzFactor;\n const smear = this.yMultiplier * this.smearScaleMultiplier;\n const factoredSmear = smear / this.yFactor;\n let noise;\n let value = 0;\n let factor = 1;\n for (let i = 0; i < 8; i += 1) {\n noise = this.mainNoise.getOctaveNoise(i);\n if (noise) {\n const xx = PerlinNoise.wrap(factoredX * factor);\n const yy = PerlinNoise.wrap(factoredY * factor);\n const zz = PerlinNoise.wrap(factoredZ * factor);\n value += noise.sample(xx, yy, zz, factoredSmear * factor, factoredY * factor) / factor;\n }\n factor /= 2;\n }\n value = (value / 10 + 1) / 2;\n factor = 1;\n let min = 0;\n let max = 0;\n for (let i = 0; i < 16; i += 1) {\n const xx = PerlinNoise.wrap(scaledX * factor);\n const yy = PerlinNoise.wrap(scaledY * factor);\n const zz = PerlinNoise.wrap(scaledZ * factor);\n const smearsmear = smear * factor;\n if (value < 1 && (noise = this.minLimitNoise.getOctaveNoise(i))) {\n min += noise.sample(xx, yy, zz, smearsmear, scaledY * factor) / factor;\n }\n if (value > 0 && (noise = this.maxLimitNoise.getOctaveNoise(i))) {\n max += noise.sample(xx, yy, zz, smearsmear, scaledY * factor) / factor;\n }\n factor /= 2;\n }\n return clampedLerp(min / 512, max / 512, value) / 128;\n }\n}\n\nconst _NormalNoise = class {\n constructor(random, { firstOctave, amplitudes }) {\n this.first = new PerlinNoise(random, firstOctave, amplitudes);\n this.second = new PerlinNoise(random, firstOctave, amplitudes);\n let min = Infinity;\n let max = -Infinity;\n for (let i = 0; i < amplitudes.length; i += 1) {\n if (amplitudes[i] !== 0) {\n min = Math.min(min, i);\n max = Math.max(max, i);\n }\n }\n const expectedDeviation = 0.1 * (1 + 1 / (max - min + 1));\n this.valueFactor = 1 / 6 / expectedDeviation;\n this.maxValue = (this.first.maxValue + this.second.maxValue) * this.valueFactor;\n }\n sample(x, y, z) {\n const x2 = x * _NormalNoise.INPUT_FACTOR;\n const y2 = y * _NormalNoise.INPUT_FACTOR;\n const z2 = z * _NormalNoise.INPUT_FACTOR;\n return (this.first.sample(x, y, z) + this.second.sample(x2, y2, z2)) * this.valueFactor;\n }\n};\nlet NormalNoise = _NormalNoise;\nNormalNoise.INPUT_FACTOR = 1.0181268882175227;\nvar NoiseParameters;\n(function(NoiseParameters2) {\n function create(firstOctave, amplitudes) {\n return { firstOctave, amplitudes };\n }\n NoiseParameters2.create = create;\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return {\n firstOctave: Json.readInt(root.firstOctave) ?? 0,\n amplitudes: Json.readArray(root.amplitudes, (e) => Json.readNumber(e) ?? 0) ?? []\n };\n }\n NoiseParameters2.fromJson = fromJson;\n})(NoiseParameters || (NoiseParameters = {}));\n\nclass PerlinSimplexNoise {\n constructor(random, octaves) {\n const lastOctave = octaves[octaves.length - 1];\n const negFirstOctave = -octaves[0];\n const range = negFirstOctave + lastOctave + 1;\n const octavesSet = new Set(octaves);\n const noise = new SimplexNoise(random);\n this.noiseLevels = Array(range);\n if (lastOctave >= 0 && lastOctave < range && octavesSet.has(0)) {\n this.noiseLevels[lastOctave] = noise;\n }\n for (let i = lastOctave + 1; i < range; i += 1) {\n if (i >= 0 && octavesSet.has(lastOctave - i)) {\n this.noiseLevels[i] = new SimplexNoise(random);\n } else {\n random.consume(262);\n }\n }\n if (lastOctave > 0) {\n throw new Error(\"Positive octaves are not allowed\");\n }\n this.highestFreqInputFactor = Math.pow(2, lastOctave);\n this.highestFreqValueFactor = 1 / (Math.pow(2, range) - 1);\n }\n sample(x, y, useOffsets) {\n let value = 0;\n let inputF = this.highestFreqInputFactor;\n let valueF = this.highestFreqValueFactor;\n for (let i = 0; i < this.noiseLevels.length; i += 1) {\n const noise = this.noiseLevels[i];\n if (noise) {\n value += valueF * noise.sample2D(x * inputF + (useOffsets ? noise.xo : 0), y * inputF + (useOffsets ? noise.yo : 0));\n }\n inputF /= 2;\n valueF *= 2;\n }\n return value;\n }\n}\n\nvar Direction;\n(function(Direction2) {\n Direction2[\"UP\"] = \"up\";\n Direction2[\"DOWN\"] = \"down\";\n Direction2[\"NORTH\"] = \"north\";\n Direction2[\"EAST\"] = \"east\";\n Direction2[\"SOUTH\"] = \"south\";\n Direction2[\"WEST\"] = \"west\";\n})(Direction || (Direction = {}));\nconst directionNormals = {\n [Direction.UP]: [0, 1, 0],\n [Direction.DOWN]: [0, -1, 0],\n [Direction.NORTH]: [0, 0, -1],\n [Direction.EAST]: [1, 0, 0],\n [Direction.SOUTH]: [0, 0, 1],\n [Direction.WEST]: [-1, 0, 0]\n};\n(function(Direction2) {\n Direction2.ALL = [Direction2.UP, Direction2.DOWN, Direction2.NORTH, Direction2.EAST, Direction2.SOUTH, Direction2.WEST];\n function normal(dir) {\n return directionNormals[dir];\n }\n Direction2.normal = normal;\n})(Direction || (Direction = {}));\n\nvar BlockPos$1;\n(function(BlockPos2) {\n function create(x, y, z) {\n return [x, y, z];\n }\n BlockPos2.create = create;\n BlockPos2.ZERO = BlockPos2.create(0, 0, 0);\n function offset(pos, dx, dy, dz) {\n return [pos[0] + dx, pos[1] + dy, pos[2] + dz];\n }\n BlockPos2.offset = offset;\n function towards(pos, dir) {\n return BlockPos2.offset(pos, ...Direction.normal(dir));\n }\n BlockPos2.towards = towards;\n function equals(a, b) {\n if (a === b)\n return true;\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n }\n BlockPos2.equals = equals;\n function magnitude(pos) {\n return pos[0] * pos[0] + pos[1] * pos[1] + pos[2] * pos[2];\n }\n BlockPos2.magnitude = magnitude;\n})(BlockPos$1 || (BlockPos$1 = {}));\n\nfunction getTag(tags, name, type) {\n if (!tags[name]) {\n throw new Error(`Missing ${name} tag`);\n }\n if (tags[name].type !== type) {\n throw new Error(`Expected ${name} to be of type ${type}, but found ${tags[name].type}`);\n }\n return tags[name].value;\n}\nfunction getListTag(tags, name, type, length) {\n const value = getTag(tags, name, \"list\");\n if (value.type !== type) {\n throw new Error(`Expected ${name} to be a list of ${type}s, but found ${value.type}s`);\n }\n if (length && value.value.length !== length) {\n throw new Error(`Expected ${name} to be a list of length ${length}, but found length ${value.value.length}`);\n }\n return value.value;\n}\nfunction getOptional(readResult, fallback) {\n try {\n return readResult();\n } catch (e) {\n return fallback;\n }\n}\n\nconst _Identifier = class {\n constructor(namespace, path) {\n this.namespace = namespace;\n this.path = path;\n if (!namespace.match(/^[a-z0-9._-]+$/)) {\n throw new Error(`Non [a-z0-9._-] character in namespace of ${namespace}:${path}`);\n }\n if (!path.match(/^[a-z0-9/._-]+$/)) {\n throw new Error(`Non [a-z0-9/._-] character in path of ${namespace}:${path}`);\n }\n }\n equals(other) {\n if (this === other) {\n return true;\n }\n return this.namespace === other.namespace && this.path === other.path;\n }\n toString() {\n return `${this.namespace}:${this.path}`;\n }\n static create(path) {\n return new _Identifier(this.DEFAULT_NAMESPACE, path);\n }\n static parse(id) {\n const sep = id.indexOf(this.SEPARATOR);\n if (sep >= 0) {\n const namespace = sep >= 1 ? id.substring(0, sep) : this.DEFAULT_NAMESPACE;\n const path = id.substring(sep + 1);\n return new _Identifier(namespace, path);\n }\n return new _Identifier(this.DEFAULT_NAMESPACE, id);\n }\n};\nlet Identifier = _Identifier;\nIdentifier.DEFAULT_NAMESPACE = \"minecraft\";\nIdentifier.SEPARATOR = \":\";\n\nconst _BlockState = class {\n constructor(name, properties = {}) {\n this.properties = properties;\n this.name = typeof name === \"string\" ? Identifier.parse(name) : name;\n }\n getName() {\n return this.name;\n }\n getProperties() {\n return this.properties;\n }\n getProperty(key) {\n return this.properties[key];\n }\n isFluid() {\n return this.is(_BlockState.WATER) || this.is(_BlockState.LAVA);\n }\n equals(other) {\n if (!this.name.equals(other.name)) {\n return false;\n }\n return Object.keys(this.properties).every((p) => {\n return other.properties[p] === this.properties[p];\n });\n }\n is(other) {\n return this.name.equals(other.name);\n }\n toString() {\n if (Object.keys(this.properties).length === 0) {\n return this.name.toString();\n }\n return `${this.name.toString()}[${Object.entries(this.properties).map(([k, v]) => k + \"=\" + v).join(\",\")}]`;\n }\n static fromNbt(nbt) {\n const name = Identifier.parse(getTag(nbt.value, \"Name\", \"string\"));\n const propsTag = getOptional(() => getTag(nbt.value, \"Properties\", \"compound\"), {});\n const properties = Object.keys(propsTag).reduce((acc, k) => ({ ...acc, [k]: getTag(propsTag, k, \"string\") }), {});\n return new _BlockState(name, properties);\n }\n static fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const name = Identifier.parse(Json.readString(root.Name) ?? _BlockState.STONE.name.toString());\n const properties = Json.readMap(root.Properties, (p) => Json.readString(p) ?? \"\");\n return new _BlockState(name, properties);\n }\n};\nlet BlockState = _BlockState;\nBlockState.AIR = new _BlockState(Identifier.create(\"air\"));\nBlockState.STONE = new _BlockState(Identifier.create(\"stone\"));\nBlockState.WATER = new _BlockState(Identifier.create(\"water\"), { level: \"0\" });\nBlockState.LAVA = new _BlockState(Identifier.create(\"lava\"), { level: \"0\" });\n\nconst _ChunkSection = class {\n constructor(minY) {\n this.minY = minY;\n this.storage = Array(_ChunkSection.SIZE).fill(0);\n this.palette = [BlockState.AIR];\n }\n get minBlockY() {\n return this.minY << 4;\n }\n index(x, y, z) {\n return (x << 8) + (y << 4) + z;\n }\n getBlockState(x, y, z) {\n const id = this.storage[this.index(x, y, z)];\n return this.palette[id] ?? BlockState.AIR;\n }\n setBlockState(x, y, z, state) {\n let id = this.palette.findIndex((b) => b.equals(state));\n if (id === -1) {\n id = this.palette.length;\n this.palette.push(state);\n }\n this.storage[this.index(x, y, z)] = id;\n }\n};\nlet ChunkSection = _ChunkSection;\nChunkSection.WIDTH = 16;\nChunkSection.SIZE = _ChunkSection.WIDTH * _ChunkSection.WIDTH * _ChunkSection.WIDTH;\n\nclass Chunk {\n constructor(minY, height, pos) {\n this.minY = minY;\n this.height = height;\n this.pos = pos;\n this.sections = Array(this.sectionsCount).fill(null);\n }\n get maxY() {\n return this.minY + this.height;\n }\n get minSection() {\n return this.minY >> 4;\n }\n get maxSection() {\n return (this.maxY - 1 >> 4) + 1;\n }\n get sectionsCount() {\n return this.maxSection - this.minSection;\n }\n getSectionIndex(y) {\n return (y >> 4) - this.minSection;\n }\n getBlockState(pos) {\n const [x, y, z] = pos;\n const section = this.sections[this.getSectionIndex(y)];\n return section?.getBlockState(x & 15, y & 15, z & 15) ?? BlockState.AIR;\n }\n setBlockState(pos, state) {\n const [x, y, z] = pos;\n const sectionIndex = this.getSectionIndex(y);\n let section = this.sections[sectionIndex];\n if (section === null) {\n if (state.equals(BlockState.AIR))\n return;\n section = this.getOrCreateSection(sectionIndex);\n }\n section.setBlockState(x & 15, y & 15, z & 15, state);\n }\n getOrCreateSection(index) {\n if (this.sections[index] == null) {\n this.sections[index] = new ChunkSection(this.minSection + index);\n }\n return this.sections[index];\n }\n}\n\nvar ChunkPos;\n(function(ChunkPos2) {\n function create(x, z) {\n return [x, z];\n }\n ChunkPos2.create = create;\n function fromBlockPos(blockPos) {\n return [blockPos[0] >> 4, blockPos[2] >> 4];\n }\n ChunkPos2.fromBlockPos = fromBlockPos;\n function fromLong(long) {\n return [Number(long) & 4294967295, Number(long >> BigInt(32))];\n }\n ChunkPos2.fromLong = fromLong;\n function toLong(chunkPos) {\n return asLong(chunkPos[0], chunkPos[1]);\n }\n ChunkPos2.toLong = toLong;\n function asLong(x, z) {\n return BigInt(x & 4294967295) | BigInt(z & 4294967295) << BigInt(32);\n }\n ChunkPos2.asLong = asLong;\n function minBlockX(chunkPos) {\n return chunkPos[0] << 4;\n }\n ChunkPos2.minBlockX = minBlockX;\n function minBlockZ(chunkPos) {\n return chunkPos[1] << 4;\n }\n ChunkPos2.minBlockZ = minBlockZ;\n function maxBlockX(chunkPos) {\n return (chunkPos[0] << 4) + 15;\n }\n ChunkPos2.maxBlockX = maxBlockX;\n function maxBlockZ(chunkPos) {\n return (chunkPos[1] << 4) + 15;\n }\n ChunkPos2.maxBlockZ = maxBlockZ;\n})(ChunkPos || (ChunkPos = {}));\n\nvar Holder;\n(function(Holder2) {\n function parser(registry, directParser) {\n return (obj) => {\n if (typeof obj === \"string\") {\n return reference(registry, Identifier.parse(obj));\n } else {\n return direct(directParser(obj));\n }\n };\n }\n Holder2.parser = parser;\n function direct(value) {\n return {\n value: () => value,\n key: () => void 0\n };\n }\n Holder2.direct = direct;\n function reference(registry, id) {\n return {\n value: () => registry.getOrThrow(id),\n key: () => id\n };\n }\n Holder2.reference = reference;\n})(Holder || (Holder = {}));\n\nconst _Registry = class {\n constructor(key, parser) {\n this.key = key;\n this.parser = parser;\n this.storage = new Map();\n this.builtin = new Map();\n }\n register(id, value, builtin) {\n this.storage.set(id.toString(), value);\n if (builtin) {\n this.builtin.set(id.toString(), value);\n }\n return Holder.reference(this, id);\n }\n keys() {\n return [...this.storage.keys()].map((e) => Identifier.parse(e));\n }\n get(id) {\n return this.storage.get(id.toString());\n }\n getOrThrow(id) {\n const value = this.storage.get(id.toString());\n if (value === void 0) {\n throw new Error(`Missing key in ${this.key.toString()}: ${id.toString()}`);\n }\n return value;\n }\n parse(obj) {\n if (!this.parser) {\n throw new Error(`No parser exists for ${this.key.toString()}`);\n }\n return this.parser(obj);\n }\n clear() {\n this.storage.clear();\n for (const [key, value] of this.builtin.entries()) {\n this.storage.set(key, value);\n }\n return this;\n }\n assign(other) {\n if (!this.key.equals(other.key)) {\n throw new Error(`Cannot assign registry of type ${other.key.toString()} to registry of type ${this.key.toString()}`);\n }\n for (const key of other.keys()) {\n this.storage.set(key.toString(), other.getOrThrow(key));\n }\n return this;\n }\n cloneEmpty() {\n return new _Registry(this.key, this.parser);\n }\n};\nlet Registry = _Registry;\nRegistry.REGISTRY = new _Registry(Identifier.create(\"root\"));\n\nclass Structure {\n constructor(size, palette = [], blocks = []) {\n this.size = size;\n this.palette = palette;\n this.blocks = blocks;\n this.blocksMap = [];\n blocks.forEach((block) => {\n if (!this.isInside(block.pos)) {\n throw new Error(`Found block at ${block.pos} which is outside the structure bounds ${this.size}`);\n }\n this.blocksMap[block.pos[0] * size[1] * size[2] + block.pos[1] * size[2] + block.pos[2]] = block;\n });\n }\n getSize() {\n return this.size;\n }\n addBlock(pos, name, properties, nbt) {\n if (!this.isInside(pos)) {\n throw new Error(`Cannot add block at ${pos} outside the structure bounds ${this.size}`);\n }\n const blockState = new BlockState(name, properties);\n let state = this.palette.findIndex((b) => b.equals(blockState));\n if (state === -1) {\n state = this.palette.length;\n this.palette.push(blockState);\n }\n this.blocks.push({ pos, state, nbt });\n this.blocksMap[pos[0] * this.size[1] * this.size[2] + pos[1] * this.size[2] + pos[2]] = { pos, state, nbt };\n return this;\n }\n getBlocks() {\n return this.blocks.map((b) => ({\n pos: b.pos,\n state: this.palette[b.state],\n nbt: b.nbt\n }));\n }\n getBlock(pos) {\n if (!this.isInside(pos))\n return null;\n const block = this.blocksMap[pos[0] * this.size[1] * this.size[2] + pos[1] * this.size[2] + pos[2]];\n if (!block)\n return null;\n const placedBlock = {\n pos: block.pos,\n state: this.palette[block.state],\n nbt: block.nbt\n };\n return placedBlock;\n }\n isInside(pos) {\n return pos[0] >= 0 && pos[0] < this.size[0] && pos[1] >= 0 && pos[1] < this.size[1] && pos[2] >= 0 && pos[2] < this.size[2];\n }\n static fromNbt(nbt) {\n const size = getListTag(nbt.value, \"size\", \"int\", 3);\n const palette = getListTag(nbt.value, \"palette\", \"compound\").map((tags) => BlockState.fromNbt({ name: \"\", value: tags }));\n const blocks = getListTag(nbt.value, \"blocks\", \"compound\").map((tags) => {\n const pos = getListTag(tags, \"pos\", \"int\", 3);\n const state = getTag(tags, \"state\", \"int\");\n const nbt2 = getOptional(() => getTag(tags, \"nbt\", \"compound\"), void 0);\n return { pos, state, nbt: nbt2 };\n });\n return new Structure(size, palette, blocks);\n }\n}\n\nvar WorldgenRegistries;\n(function(WorldgenRegistries2) {\n WorldgenRegistries2.NOISE = register(\"worldgen/noise\");\n WorldgenRegistries2.DENSITY_FUNCTION = register(\"worldgen/density_function\");\n function register(name) {\n const registry = new Registry(Identifier.create(name));\n Registry.REGISTRY.register(registry.key, registry);\n return registry;\n }\n})(WorldgenRegistries || (WorldgenRegistries = {}));\n\nclass DensityFunction {\n minValue() {\n return -this.maxValue();\n }\n mapAll(visitor) {\n return visitor.map(this);\n }\n}\n(function(DensityFunction2) {\n function context(x, y, z) {\n return {\n x,\n y,\n z\n };\n }\n DensityFunction2.context = context;\n class Transformer extends DensityFunction2 {\n constructor(input) {\n super();\n this.input = input;\n }\n compute(context2) {\n return this.transform(context2, this.input.compute(context2));\n }\n }\n const NoiseParser = Holder.parser(WorldgenRegistries.NOISE, NoiseParameters.fromJson);\n function fromJson(obj, inputParser = fromJson) {\n if (typeof obj === \"string\") {\n return new HolderHolder(Holder.reference(WorldgenRegistries.DENSITY_FUNCTION, Identifier.parse(obj)));\n }\n if (typeof obj === \"number\") {\n return new Constant(obj);\n }\n const root = Json.readObject(obj) ?? {};\n const type = Json.readString(root.type)?.replace(/^minecraft:/, \"\");\n switch (type) {\n case \"blend_alpha\":\n return new ConstantMinMax(1, 0, 1);\n case \"blend_offset\":\n return new ConstantMinMax(0, -Infinity, Infinity);\n case \"beardifier\":\n return new ConstantMinMax(0, -Infinity, Infinity);\n case \"old_blended_noise\":\n return new OldBlendedNoise(Json.readNumber(root.xz_scale) ?? 1, Json.readNumber(root.y_scale) ?? 1, Json.readNumber(root.xz_factor) ?? 80, Json.readNumber(root.y_factor) ?? 160, Json.readNumber(root.smear_scale_multiplier) ?? 8);\n case \"flat_cache\":\n return new FlatCache(inputParser(root.argument));\n case \"interpolated\":\n return new Interpolated(inputParser(root.argument));\n case \"cache_2d\":\n return new Cache2D(inputParser(root.argument));\n case \"cache_once\":\n return new CacheOnce(inputParser(root.argument));\n case \"cache_all_in_cell\":\n return new CacheAllInCell(inputParser(root.argument));\n case \"noise\":\n return new Noise(Json.readNumber(root.xz_scale) ?? 1, Json.readNumber(root.y_scale) ?? 1, NoiseParser(root.noise));\n case \"end_islands\":\n return new EndIslands();\n case \"weird_scaled_sampler\":\n return new WeirdScaledSampler(inputParser(root.input), Json.readEnum(root.rarity_value_mapper, RarityValueMapper), NoiseParser(root.noise));\n case \"shifted_noise\":\n return new ShiftedNoise(inputParser(root.shift_x), inputParser(root.shift_y), inputParser(root.shift_z), Json.readNumber(root.xz_scale) ?? 1, Json.readNumber(root.y_scale) ?? 1, NoiseParser(root.noise));\n case \"range_choice\":\n return new RangeChoice(inputParser(root.input), Json.readNumber(root.min_inclusive) ?? 0, Json.readNumber(root.max_exclusive) ?? 1, inputParser(root.when_in_range), inputParser(root.when_out_of_range));\n case \"shift_a\":\n return new ShiftA(NoiseParser(root.argument));\n case \"shift_b\":\n return new ShiftB(NoiseParser(root.argument));\n case \"shift\":\n return new Shift(NoiseParser(root.argument));\n case \"blend_density\":\n return new BlendDensity(inputParser(root.argument));\n case \"clamp\":\n return new Clamp(inputParser(root.input), Json.readNumber(root.min) ?? 0, Json.readNumber(root.max) ?? 1);\n case \"abs\":\n case \"square\":\n case \"cube\":\n case \"half_negative\":\n case \"quarter_negative\":\n case \"squeeze\":\n return new Mapped(type, inputParser(root.argument));\n case \"add\":\n case \"mul\":\n case \"min\":\n case \"max\":\n return new Ap2(Json.readEnum(type, Ap2Type), inputParser(root.argument1), inputParser(root.argument2));\n case \"spline\":\n return new Spline(CubicSpline.fromJson(root.spline, inputParser));\n case \"constant\":\n return new Constant(Json.readNumber(root.argument) ?? 0);\n case \"y_clamped_gradient\":\n return new YClampedGradient(Json.readInt(root.from_y) ?? -4064, Json.readInt(root.to_y) ?? 4062, Json.readNumber(root.from_value) ?? -4064, Json.readNumber(root.to_value) ?? 4062);\n }\n return Constant.ZERO;\n }\n DensityFunction2.fromJson = fromJson;\n const _Constant = class extends DensityFunction2 {\n constructor(value) {\n super();\n this.value = value;\n }\n compute() {\n return this.value;\n }\n minValue() {\n return this.value;\n }\n maxValue() {\n return this.value;\n }\n };\n let Constant = _Constant;\n Constant.ZERO = new _Constant(0);\n Constant.ONE = new _Constant(1);\n DensityFunction2.Constant = Constant;\n class HolderHolder extends DensityFunction2 {\n constructor(holder) {\n super();\n this.holder = holder;\n }\n compute(context2) {\n return this.holder.value().compute(context2);\n }\n minValue() {\n return this.holder.value().minValue();\n }\n maxValue() {\n return this.holder.value().maxValue();\n }\n }\n DensityFunction2.HolderHolder = HolderHolder;\n class ConstantMinMax extends DensityFunction2.Constant {\n constructor(value, min, max) {\n super(value);\n this.min = min;\n this.max = max;\n }\n minValue() {\n return this.min;\n }\n maxValue() {\n return this.max;\n }\n }\n DensityFunction2.ConstantMinMax = ConstantMinMax;\n class OldBlendedNoise extends DensityFunction2 {\n constructor(xzScale, yScale, xzFactor, yFactor, smearScaleMultiplier, blendedNoise) {\n super();\n this.xzScale = xzScale;\n this.yScale = yScale;\n this.xzFactor = xzFactor;\n this.yFactor = yFactor;\n this.smearScaleMultiplier = smearScaleMultiplier;\n this.blendedNoise = blendedNoise;\n }\n compute(context2) {\n return this.blendedNoise?.sample(context2.x, context2.y, context2.z) ?? 0;\n }\n maxValue() {\n return this.blendedNoise?.maxValue ?? 0;\n }\n }\n DensityFunction2.OldBlendedNoise = OldBlendedNoise;\n class Wrapper extends DensityFunction2 {\n constructor(wrapped) {\n super();\n this.wrapped = wrapped;\n }\n minValue() {\n return this.wrapped.minValue();\n }\n maxValue() {\n return this.wrapped.maxValue();\n }\n }\n class FlatCache extends Wrapper {\n constructor(wrapped) {\n super(wrapped);\n this.lastValue = 0;\n }\n compute(context2) {\n const quartX = context2.x >> 2;\n const quartZ = context2.z >> 2;\n if (this.lastQuartX !== quartX || this.lastQuartZ !== quartZ) {\n this.lastValue = this.wrapped.compute(DensityFunction2.context(quartX << 2, 0, quartZ << 2));\n this.lastQuartX = quartX;\n this.lastQuartZ = quartZ;\n }\n return this.lastValue;\n }\n mapAll(visitor) {\n return visitor.map(new FlatCache(this.wrapped.mapAll(visitor)));\n }\n }\n DensityFunction2.FlatCache = FlatCache;\n class CacheAllInCell extends Wrapper {\n constructor(wrapped) {\n super(wrapped);\n }\n compute(context2) {\n return this.wrapped.compute(context2);\n }\n mapAll(visitor) {\n return visitor.map(new CacheAllInCell(this.wrapped.mapAll(visitor)));\n }\n }\n DensityFunction2.CacheAllInCell = CacheAllInCell;\n class Cache2D extends Wrapper {\n constructor(wrapped) {\n super(wrapped);\n this.lastValue = 0;\n }\n compute(context2) {\n const blockX = context2.x;\n const blockZ = context2.z;\n if (this.lastBlockX !== blockX || this.lastBlockZ !== blockZ) {\n this.lastValue = this.wrapped.compute(context2);\n this.lastBlockX = blockX;\n this.lastBlockZ = blockZ;\n }\n return this.lastValue;\n }\n mapAll(visitor) {\n return visitor.map(new Cache2D(this.wrapped.mapAll(visitor)));\n }\n }\n DensityFunction2.Cache2D = Cache2D;\n class CacheOnce extends Wrapper {\n constructor(wrapped) {\n super(wrapped);\n this.lastValue = 0;\n }\n compute(context2) {\n const blockX = context2.x;\n const blockY = context2.y;\n const blockZ = context2.z;\n if (this.lastBlockX !== blockX || this.lastBlockY !== blockY || this.lastBlockZ !== blockZ) {\n this.lastValue = this.wrapped.compute(context2);\n this.lastBlockX = blockX;\n this.lastBlockY = blockY;\n this.lastBlockZ = blockZ;\n }\n return this.lastValue;\n }\n mapAll(visitor) {\n return visitor.map(new CacheOnce(this.wrapped.mapAll(visitor)));\n }\n }\n DensityFunction2.CacheOnce = CacheOnce;\n class Interpolated extends Wrapper {\n constructor(wrapped, cellWidth = 4, cellHeight = 4) {\n super(wrapped);\n this.cellWidth = cellWidth;\n this.cellHeight = cellHeight;\n this.values = new Map();\n }\n compute({ x: blockX, y: blockY, z: blockZ }) {\n const w = this.cellWidth;\n const h = this.cellHeight;\n const x = (blockX % w + w) % w / w;\n const y = (blockY % h + h) % h / h;\n const z = (blockZ % w + w) % w / w;\n const firstX = Math.floor(blockX / w) * w;\n const firstY = Math.floor(blockY / h) * h;\n const firstZ = Math.floor(blockZ / w) * w;\n const noise000 = () => this.computeCorner(firstX, firstY, firstZ);\n const noise001 = () => this.computeCorner(firstX, firstY, firstZ + w);\n const noise010 = () => this.computeCorner(firstX, firstY + h, firstZ);\n const noise011 = () => this.computeCorner(firstX, firstY + h, firstZ + w);\n const noise100 = () => this.computeCorner(firstX + w, firstY, firstZ);\n const noise101 = () => this.computeCorner(firstX + w, firstY, firstZ + w);\n const noise110 = () => this.computeCorner(firstX + w, firstY + h, firstZ);\n const noise111 = () => this.computeCorner(firstX + w, firstY + h, firstZ + w);\n return lazyLerp3(x, y, z, noise000, noise100, noise010, noise110, noise001, noise101, noise011, noise111);\n }\n computeCorner(x, y, z) {\n return computeIfAbsent(this.values, `${x} ${y} ${z}`, () => {\n return this.wrapped.compute(DensityFunction2.context(x, y, z));\n });\n }\n mapAll(visitor) {\n return visitor.map(new Interpolated(this.wrapped.mapAll(visitor)));\n }\n withCellSize(cellWidth, cellHeight) {\n return new Interpolated(this.wrapped, cellWidth, cellHeight);\n }\n }\n DensityFunction2.Interpolated = Interpolated;\n class Noise extends DensityFunction2 {\n constructor(xzScale, yScale, noiseData, noise) {\n super();\n this.xzScale = xzScale;\n this.yScale = yScale;\n this.noiseData = noiseData;\n this.noise = noise;\n }\n compute(context2) {\n return this.noise?.sample(context2.x * this.xzScale, context2.y * this.yScale, context2.z * this.xzScale) ?? 0;\n }\n maxValue() {\n return this.noise?.maxValue ?? 2;\n }\n }\n DensityFunction2.Noise = Noise;\n class EndIslands extends DensityFunction2 {\n compute() {\n return 0;\n }\n minValue() {\n return -0.84375;\n }\n maxValue() {\n return 0.5625;\n }\n }\n const RarityValueMapper = [\"type_1\", \"type_2\"];\n const _WeirdScaledSampler = class extends Transformer {\n constructor(input, rarityValueMapper, noiseData, noise) {\n super(input);\n this.rarityValueMapper = rarityValueMapper;\n this.noiseData = noiseData;\n this.noise = noise;\n this.mapper = _WeirdScaledSampler.ValueMapper[this.rarityValueMapper];\n }\n transform(context2, density) {\n if (!this.noise) {\n return 0;\n }\n const rarity = this.mapper(density);\n return rarity * Math.abs(this.noise.sample(context2.x / rarity, context2.y / rarity, context2.z / rarity));\n }\n mapAll(visitor) {\n return visitor.map(new _WeirdScaledSampler(this.input.mapAll(visitor), this.rarityValueMapper, this.noiseData, this.noise));\n }\n minValue() {\n return 0;\n }\n maxValue() {\n return this.rarityValueMapper === \"type_1\" ? 2 : 3;\n }\n static rarityValueMapper1(value) {\n if (value < -0.5) {\n return 0.75;\n } else if (value < 0) {\n return 1;\n } else if (value < 0.5) {\n return 1.5;\n } else {\n return 2;\n }\n }\n static rarityValueMapper2(value) {\n if (value < -0.75) {\n return 0.5;\n } else if (value < -0.5) {\n return 0.75;\n } else if (value < 0.5) {\n return 1;\n } else if (value < 0.75) {\n return 2;\n } else {\n return 3;\n }\n }\n };\n let WeirdScaledSampler = _WeirdScaledSampler;\n WeirdScaledSampler.ValueMapper = {\n type_1: _WeirdScaledSampler.rarityValueMapper1,\n type_2: _WeirdScaledSampler.rarityValueMapper2\n };\n DensityFunction2.WeirdScaledSampler = WeirdScaledSampler;\n class ShiftedNoise extends Noise {\n constructor(shiftX, shiftY, shiftZ, xzScale, yScale, noiseData, noise) {\n super(xzScale, yScale, noiseData, noise);\n this.shiftX = shiftX;\n this.shiftY = shiftY;\n this.shiftZ = shiftZ;\n }\n compute(context2) {\n const xx = context2.x * this.xzScale + this.shiftX.compute(context2);\n const yy = context2.y * this.yScale + this.shiftY.compute(context2);\n const zz = context2.z * this.xzScale + this.shiftZ.compute(context2);\n return this.noise?.sample(xx, yy, zz) ?? 0;\n }\n mapAll(visitor) {\n return visitor.map(new ShiftedNoise(this.shiftX.mapAll(visitor), this.shiftY.mapAll(visitor), this.shiftZ.mapAll(visitor), this.xzScale, this.yScale, this.noiseData, this.noise));\n }\n }\n DensityFunction2.ShiftedNoise = ShiftedNoise;\n class RangeChoice extends DensityFunction2 {\n constructor(input, minInclusive, maxExclusive, whenInRange, whenOutOfRange) {\n super();\n this.input = input;\n this.minInclusive = minInclusive;\n this.maxExclusive = maxExclusive;\n this.whenInRange = whenInRange;\n this.whenOutOfRange = whenOutOfRange;\n }\n compute(context2) {\n const x = this.input.compute(context2);\n return this.minInclusive <= x && x < this.maxExclusive ? this.whenInRange.compute(context2) : this.whenOutOfRange.compute(context2);\n }\n mapAll(visitor) {\n return visitor.map(new RangeChoice(this.input.mapAll(visitor), this.minInclusive, this.maxExclusive, this.whenInRange.mapAll(visitor), this.whenOutOfRange.mapAll(visitor)));\n }\n minValue() {\n return Math.min(this.whenInRange.minValue(), this.whenOutOfRange.minValue());\n }\n maxValue() {\n return Math.max(this.whenInRange.maxValue(), this.whenOutOfRange.maxValue());\n }\n }\n DensityFunction2.RangeChoice = RangeChoice;\n class ShiftNoise extends DensityFunction2 {\n constructor(noiseData, offsetNoise) {\n super();\n this.noiseData = noiseData;\n this.offsetNoise = offsetNoise;\n }\n compute(context2) {\n return this.offsetNoise?.sample(context2.x * 0.25, context2.y * 0.25, context2.z * 0.25) ?? 0;\n }\n maxValue() {\n return (this.offsetNoise?.maxValue ?? 2) * 4;\n }\n }\n DensityFunction2.ShiftNoise = ShiftNoise;\n class ShiftA extends ShiftNoise {\n constructor(noiseData, offsetNoise) {\n super(noiseData, offsetNoise);\n }\n compute(context2) {\n return super.compute(DensityFunction2.context(context2.x, 0, context2.z));\n }\n withNewNoise(newNoise) {\n return new ShiftA(this.noiseData, newNoise);\n }\n }\n DensityFunction2.ShiftA = ShiftA;\n class ShiftB extends ShiftNoise {\n constructor(noiseData, offsetNoise) {\n super(noiseData, offsetNoise);\n }\n compute(context2) {\n return super.compute(DensityFunction2.context(context2.z, context2.x, 0));\n }\n withNewNoise(newNoise) {\n return new ShiftB(this.noiseData, newNoise);\n }\n }\n DensityFunction2.ShiftB = ShiftB;\n class Shift extends ShiftNoise {\n constructor(noiseData, offsetNoise) {\n super(noiseData, offsetNoise);\n }\n withNewNoise(newNoise) {\n return new Shift(this.noiseData, newNoise);\n }\n }\n DensityFunction2.Shift = Shift;\n class BlendDensity extends Transformer {\n constructor(input) {\n super(input);\n }\n transform(context2, density) {\n return density;\n }\n mapAll(visitor) {\n return visitor.map(new BlendDensity(this.input.mapAll(visitor)));\n }\n minValue() {\n return -Infinity;\n }\n maxValue() {\n return Infinity;\n }\n }\n DensityFunction2.BlendDensity = BlendDensity;\n class Clamp extends Transformer {\n constructor(input, min, max) {\n super(input);\n this.min = min;\n this.max = max;\n }\n transform(context2, density) {\n return clamp(density, this.min, this.max);\n }\n mapAll(visitor) {\n return visitor.map(new Clamp(this.input.mapAll(visitor), this.min, this.max));\n }\n minValue() {\n return this.min;\n }\n maxValue() {\n return this.max;\n }\n }\n DensityFunction2.Clamp = Clamp;\n const _Mapped = class extends Transformer {\n constructor(type, input, min, max) {\n super(input);\n this.type = type;\n this.min = min;\n this.max = max;\n this.transformer = _Mapped.MappedTypes[this.type];\n }\n transform(context2, density) {\n return this.transformer(density);\n }\n mapAll(visitor) {\n return visitor.map(new _Mapped(this.type, this.input.mapAll(visitor)));\n }\n minValue() {\n return this.min ?? -Infinity;\n }\n maxValue() {\n return this.max ?? Infinity;\n }\n withMinMax() {\n const minInput = this.input.minValue();\n let min = this.transformer(minInput);\n let max = this.transformer(this.input.maxValue());\n if (this.type === \"abs\" || this.type === \"square\") {\n max = Math.max(min, max);\n min = Math.max(0, minInput);\n }\n return new _Mapped(this.type, this.input, min, max);\n }\n };\n let Mapped = _Mapped;\n Mapped.MappedTypes = {\n abs: (d) => Math.abs(d),\n square: (d) => d * d,\n cube: (d) => d * d * d,\n half_negative: (d) => d > 0 ? d : d * 0.5,\n quarter_negative: (d) => d > 0 ? d : d * 0.25,\n squeeze: (d) => {\n const c = clamp(d, -1, 1);\n return c / 2 - c * c * c / 24;\n }\n };\n DensityFunction2.Mapped = Mapped;\n const Ap2Type = [\"add\", \"mul\", \"min\", \"max\"];\n class Ap2 extends DensityFunction2 {\n constructor(type, argument1, argument2, min, max) {\n super();\n this.type = type;\n this.argument1 = argument1;\n this.argument2 = argument2;\n this.min = min;\n this.max = max;\n }\n compute(context2) {\n const a = this.argument1.compute(context2);\n switch (this.type) {\n case \"add\":\n return a + this.argument2.compute(context2);\n case \"mul\":\n return a === 0 ? 0 : a * this.argument2.compute(context2);\n case \"min\":\n return a < this.argument2.minValue() ? a : Math.min(a, this.argument2.compute(context2));\n case \"max\":\n return a > this.argument2.maxValue() ? a : Math.max(a, this.argument2.compute(context2));\n }\n }\n mapAll(visitor) {\n return visitor.map(new Ap2(this.type, this.argument1.mapAll(visitor), this.argument2.mapAll(visitor)));\n }\n minValue() {\n return this.min ?? -Infinity;\n }\n maxValue() {\n return this.max ?? Infinity;\n }\n withMinMax() {\n const min1 = this.argument1.minValue();\n const min2 = this.argument2.minValue();\n const max1 = this.argument1.maxValue();\n const max2 = this.argument2.maxValue();\n if ((this.type === \"min\" || this.type === \"max\") && (min1 >= max2 || min2 >= max1)) {\n console.warn(`Creating a ${this.type} function between two non-overlapping inputs`);\n }\n let min, max;\n switch (this.type) {\n case \"add\":\n min = min1 + min2;\n max = max1 + max2;\n break;\n case \"mul\":\n min = min1 > 0 && min2 > 0 ? min1 * min2 || 0 : max1 < 0 && max2 < 0 ? max1 * max2 || 0 : Math.min(min1 * max2 || 0, min2 * max1 || 0);\n max = min1 > 0 && min2 > 0 ? max1 * max2 || 0 : max1 < 0 && max2 < 0 ? min1 * min2 || 0 : Math.max(min1 * min2 || 0, max1 * max2 || 0);\n break;\n case \"min\":\n min = Math.min(min1, min2);\n max = Math.min(max1, max2);\n break;\n case \"max\":\n min = Math.max(min1, min2);\n max = Math.max(max1, max2);\n break;\n }\n return new Ap2(this.type, this.argument1, this.argument2, min, max);\n }\n }\n DensityFunction2.Ap2 = Ap2;\n class Spline extends DensityFunction2 {\n constructor(spline) {\n super();\n this.spline = spline;\n }\n compute(context2) {\n return this.spline.compute(context2);\n }\n mapAll(visitor) {\n const newCubicSpline = this.spline.mapAll((fn) => {\n if (fn instanceof DensityFunction2) {\n return fn.mapAll(visitor);\n }\n return fn;\n });\n newCubicSpline.calculateMinMax();\n return visitor.map(new Spline(newCubicSpline));\n }\n minValue() {\n return this.spline.min();\n }\n maxValue() {\n return this.spline.max();\n }\n }\n DensityFunction2.Spline = Spline;\n class YClampedGradient extends DensityFunction2 {\n constructor(fromY, toY, fromValue, toValue) {\n super();\n this.fromY = fromY;\n this.toY = toY;\n this.fromValue = fromValue;\n this.toValue = toValue;\n }\n compute(context2) {\n return clampedMap(context2.y, this.fromY, this.toY, this.fromValue, this.toValue);\n }\n minValue() {\n return Math.min(this.fromValue, this.toValue);\n }\n maxValue() {\n return Math.max(this.fromValue, this.toValue);\n }\n }\n DensityFunction2.YClampedGradient = YClampedGradient;\n})(DensityFunction || (DensityFunction = {}));\n\nclass FluidStatus {\n constructor(level, type) {\n this.level = level;\n this.type = type;\n }\n at(level) {\n return level < this.level ? this.type : BlockState.AIR;\n }\n}\nvar Aquifer;\n(function(Aquifer2) {\n function createDisabled(fluidPicker) {\n return {\n compute({ x, y, z }, density) {\n if (density > 0) {\n return void 0;\n }\n return fluidPicker(x, y, z).at(y);\n }\n };\n }\n Aquifer2.createDisabled = createDisabled;\n})(Aquifer || (Aquifer = {}));\nconst _NoiseAquifer = class {\n constructor(noiseChunk, chunkPos, barrierNoise, fluidLevelFloodednessNoise, fluidLevelSpreadNoise, lavaNoise, random, minY, height, globalFluidPicker) {\n this.noiseChunk = noiseChunk;\n this.barrierNoise = barrierNoise;\n this.fluidLevelFloodednessNoise = fluidLevelFloodednessNoise;\n this.fluidLevelSpreadNoise = fluidLevelSpreadNoise;\n this.lavaNoise = lavaNoise;\n this.random = random;\n this.globalFluidPicker = globalFluidPicker;\n this.minGridX = this.gridX(ChunkPos.minBlockX(chunkPos)) - 1;\n this.gridSizeX = this.gridX(ChunkPos.maxBlockX(chunkPos)) + 1 - this.minGridX + 1;\n this.minGridY = this.gridY(minY) - 1;\n this.minGridZ = this.gridZ(ChunkPos.minBlockZ(chunkPos)) - 1;\n this.gridSizeZ = this.gridZ(ChunkPos.maxBlockZ(chunkPos)) + 1 - this.minGridZ + 1;\n const gridSizeY = this.gridY(minY + height) + 1 - this.minGridY + 1;\n this.gridSize = this.gridSizeX * gridSizeY * this.gridSizeZ;\n this.aquiferCache = Array(this.gridSize).fill(void 0);\n this.aquiferLocationCache = Array(this.gridSize).fill(BlockPos$1.ZERO);\n }\n compute({ x, y, z }, density) {\n if (density <= 0) {\n if (this.globalFluidPicker(x, y, z).at(y).is(BlockState.LAVA)) {\n return BlockState.LAVA;\n } else {\n const gridX = this.gridX(x - 5);\n const gridY = this.gridY(y + 1);\n const gridZ = this.gridZ(z - 5);\n let mag1 = Number.MAX_SAFE_INTEGER;\n let mag2 = Number.MAX_SAFE_INTEGER;\n let mag3 = Number.MAX_SAFE_INTEGER;\n let loc1 = BlockPos$1.ZERO;\n let loc2 = BlockPos$1.ZERO;\n let loc3 = BlockPos$1.ZERO;\n for (let xOffset = 0; xOffset <= 1; xOffset += 1) {\n for (let yOffset = -1; yOffset <= 1; yOffset += 1) {\n for (let zOffset = 0; zOffset <= 1; zOffset += 1) {\n const location = this.getLocation(gridX + xOffset, gridY + yOffset, gridZ + zOffset);\n const magnitude = BlockPos$1.magnitude(location);\n if (mag1 >= magnitude) {\n loc3 = loc2;\n loc2 = loc1;\n loc1 = location;\n mag3 = mag2;\n mag2 = mag1;\n mag1 = magnitude;\n } else if (mag2 >= magnitude) {\n loc3 = loc2;\n loc2 = location;\n mag3 = mag2;\n mag2 = magnitude;\n } else if (mag3 >= magnitude) {\n loc3 = location;\n mag3 = magnitude;\n }\n }\n }\n }\n const status1 = this.getStatus(loc1);\n const status2 = this.getStatus(loc2);\n const status3 = this.getStatus(loc3);\n const similarity12 = _NoiseAquifer.similarity(mag1, mag2);\n const similarity13 = _NoiseAquifer.similarity(mag1, mag3);\n const similarity23 = _NoiseAquifer.similarity(mag2, mag3);\n let pressure;\n if (status1.at(y).is(BlockState.WATER) && this.globalFluidPicker(x, y - 1, z).at(y - 1).is(BlockState.LAVA)) {\n pressure = 1;\n } else if (similarity12 > -1) {\n const barrier = lazy(() => this.barrierNoise.compute(DensityFunction.context(x, y * 0.5, z)));\n const pressure12 = this.calculatePressure(y, status1, status2, barrier);\n const pressure13 = this.calculatePressure(y, status1, status3, barrier);\n const pressure23 = this.calculatePressure(y, status2, status3, barrier);\n const n = Math.max(pressure12, pressure13 * Math.max(0, similarity13), pressure23 * Math.max(similarity23));\n pressure = Math.max(0, 2 * Math.max(0, similarity12) * n);\n } else {\n pressure = 0;\n }\n if (density + pressure <= 0) {\n return status1.at(y);\n }\n }\n }\n return void 0;\n }\n static similarity(a, b) {\n return 1 - Math.abs(b - a) / 25;\n }\n calculatePressure(y, status1, status2, barrier) {\n const fluid1 = status1.at(y);\n const fluid2 = status2.at(y);\n if (fluid1.is(BlockState.LAVA) && fluid2.is(BlockState.WATER) || fluid1.is(BlockState.WATER) && fluid2.is(BlockState.LAVA)) {\n return 1;\n }\n const levelDiff = Math.abs(status1.level - status2.level);\n if (levelDiff === 0) {\n return 0;\n }\n const levelAvg = (status1.level + status2.level) / 2;\n const levelAvgDiff = y + 0.5 - levelAvg;\n const p = levelDiff / 2 - Math.abs(levelAvgDiff);\n const pressure = levelAvgDiff > 0 ? p > 0 ? p / 1.5 : p / 2.5 : p > -3 ? (p + 3) / 3 : (p + 3) / 10;\n if (pressure < -2 || pressure > 2) {\n return pressure;\n }\n return pressure + barrier();\n }\n getStatus(location) {\n const [x, y, z] = location;\n const index = this.getIndex(this.gridX(x), this.gridY(y), this.gridZ(z));\n const cachedStatus = this.aquiferCache[index];\n if (cachedStatus !== void 0) {\n return cachedStatus;\n }\n const status = this.computeStatus(x, y, z);\n this.aquiferCache[index] = status;\n return status;\n }\n computeStatus(x, y, z) {\n const globalStatus = this.globalFluidPicker(x, y, z);\n let minPreliminarySurface = Number.MAX_SAFE_INTEGER;\n let isAquifer = false;\n for (const [xOffset, zOffset] of _NoiseAquifer.SURFACE_SAMPLING) {\n const blockX = x + (zOffset << 4);\n const blockZ = z + (zOffset << 4);\n const preliminarySurface = this.noiseChunk.getPreliminarySurfaceLevel(blockX, blockZ);\n minPreliminarySurface = Math.min(minPreliminarySurface, preliminarySurface);\n const noOffset = xOffset === 0 && zOffset === 0;\n if (noOffset && y - 12 > preliminarySurface + 8) {\n return globalStatus;\n }\n if (noOffset || y + 12 > preliminarySurface + 8) {\n const newStatus = this.globalFluidPicker(blockX, preliminarySurface + 8, blockZ);\n if (!newStatus.at(preliminarySurface + 8).is(BlockState.AIR)) {\n if (noOffset) {\n return newStatus;\n } else {\n isAquifer = true;\n }\n }\n }\n }\n const allowedFloodedness = isAquifer ? clampedMap(minPreliminarySurface + 8 - y, 0, 64, 1, 0) : 0;\n const floodedness = clamp(this.fluidLevelFloodednessNoise.compute(DensityFunction.context(x, y * 0.67, z)), -1, 1);\n if (floodedness > map(allowedFloodedness, 1, 0, -0.3, 0.8)) {\n return globalStatus;\n }\n if (floodedness <= map(allowedFloodedness, 1, 0, -0.8, 0.4)) {\n return new FluidStatus(Number.MIN_SAFE_INTEGER, globalStatus.type);\n }\n const gridY = Math.floor(y / 40);\n const spread = this.fluidLevelSpreadNoise.compute(DensityFunction.context(Math.floor(x / 16), gridY, Math.floor(z / 16)));\n const level = gridY * 40 + 20 + Math.floor(spread / 3) * 3;\n const statusLevel = Math.min(minPreliminarySurface, level);\n const fluid = this.getFluidType(x, y, z, globalStatus.type, level);\n return new FluidStatus(statusLevel, fluid);\n }\n getFluidType(x, y, z, global, level) {\n if (level <= -10) {\n const lava = this.lavaNoise.compute(DensityFunction.context(Math.floor(x / 64), Math.floor(y / 40), Math.floor(z / 64)));\n if (Math.abs(lava) > 0.3) {\n return BlockState.LAVA;\n }\n }\n return global;\n }\n getLocation(x, y, z) {\n const index = this.getIndex(x, y, z);\n const cachedLocation = this.aquiferLocationCache[index];\n if (BlockPos$1.equals(cachedLocation, BlockPos$1.ZERO)) {\n return cachedLocation;\n }\n const random = this.random.at(x, y, z);\n const location = BlockPos$1.create(x * _NoiseAquifer.X_SPACING + random.nextInt(10), y * _NoiseAquifer.Y_SPACING + random.nextInt(9), z * _NoiseAquifer.Z_SPACING + random.nextInt(10));\n this.aquiferLocationCache[index] = location;\n return location;\n }\n getIndex(x, y, z) {\n const gridX = x - this.minGridX;\n const gridY = y - this.minGridY;\n const gridZ = z - this.minGridZ;\n const index = (gridY * this.gridSizeZ + gridZ) * this.gridSizeX + gridX;\n if (index < 0 || index >= this.gridSize) {\n throw new Error(`Invalid aquifer index at ${x} ${y} ${z}: 0 <= ${index} < ${this.gridSize}`);\n }\n return index;\n }\n gridX(x) {\n return Math.floor(x / _NoiseAquifer.X_SPACING);\n }\n gridY(y) {\n return Math.floor(y / _NoiseAquifer.Y_SPACING);\n }\n gridZ(z) {\n return Math.floor(z / _NoiseAquifer.Z_SPACING);\n }\n};\nlet NoiseAquifer$1 = _NoiseAquifer;\nNoiseAquifer$1.X_SPACING = 16;\nNoiseAquifer$1.Y_SPACING = 12;\nNoiseAquifer$1.Z_SPACING = 16;\nNoiseAquifer$1.SURFACE_SAMPLING = [[-2, -1], [-1, -1], [0, -1], [1, -1], [-3, 0], [-2, 0], [-1, 0], [0, 0], [1, 0], [-2, 1], [-1, 1], [0, 1], [1, 1]];\n\nvar Climate;\n(function(Climate2) {\n const PARAMETER_SPACE = 7;\n function target(temperature, humidity, continentalness, erosion, depth, weirdness) {\n return new TargetPoint(temperature, humidity, continentalness, erosion, depth, weirdness);\n }\n Climate2.target = target;\n function parameters(temperature, humidity, continentalness, erosion, depth, weirdness, offset) {\n return new ParamPoint(param(temperature), param(humidity), param(continentalness), param(erosion), param(depth), param(weirdness), offset);\n }\n Climate2.parameters = parameters;\n function param(value, max) {\n if (typeof value === \"number\") {\n return new Param(value, max ?? value);\n }\n return value;\n }\n Climate2.param = param;\n class Param {\n constructor(min, max) {\n this.min = min;\n this.max = max;\n }\n distance(param2) {\n const diffMax = (typeof param2 === \"number\" ? param2 : param2.min) - this.max;\n const diffMin = this.min - (typeof param2 === \"number\" ? param2 : param2.max);\n if (diffMax > 0) {\n return diffMax;\n }\n return Math.max(diffMin, 0);\n }\n union(param2) {\n return new Param(Math.min(this.min, param2.min), Math.max(this.max, param2.max));\n }\n static fromJson(obj) {\n if (typeof obj === \"number\")\n return new Param(obj, obj);\n const [min, max] = Json.readArray(obj, (e) => Json.readNumber(e)) ?? [];\n return new Param(min ?? 0, max ?? 0);\n }\n }\n Climate2.Param = Param;\n class ParamPoint {\n constructor(temperature, humidity, continentalness, erosion, depth, weirdness, offset) {\n this.temperature = temperature;\n this.humidity = humidity;\n this.continentalness = continentalness;\n this.erosion = erosion;\n this.depth = depth;\n this.weirdness = weirdness;\n this.offset = offset;\n }\n fittness(point) {\n return square(this.temperature.distance(point.temperature)) + square(this.humidity.distance(point.humidity)) + square(this.continentalness.distance(point.continentalness)) + square(this.erosion.distance(point.erosion)) + square(this.depth.distance(point.depth)) + square(this.weirdness.distance(point.weirdness)) + square(this.offset - point.offset);\n }\n space() {\n return [this.temperature, this.humidity, this.continentalness, this.erosion, this.depth, this.weirdness, new Param(this.offset, this.offset)];\n }\n static fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return new ParamPoint(Param.fromJson(root.temperature), Param.fromJson(root.humidity), Param.fromJson(root.continentalness), Param.fromJson(root.erosion), Param.fromJson(root.depth), Param.fromJson(root.weirdness), Json.readInt(root.offset) ?? 0);\n }\n }\n Climate2.ParamPoint = ParamPoint;\n class TargetPoint {\n constructor(temperature, humidity, continentalness, erosion, depth, weirdness) {\n this.temperature = temperature;\n this.humidity = humidity;\n this.continentalness = continentalness;\n this.erosion = erosion;\n this.depth = depth;\n this.weirdness = weirdness;\n }\n get offset() {\n return 0;\n }\n toArray() {\n return [this.temperature, this.humidity, this.continentalness, this.erosion, this.depth, this.weirdness, this.offset];\n }\n }\n Climate2.TargetPoint = TargetPoint;\n class Parameters {\n constructor(things) {\n this.things = things;\n this.index = new RTree(things);\n }\n find(target2) {\n return this.index.search(target2, (node, values) => node.distance(values));\n }\n }\n Climate2.Parameters = Parameters;\n class Sampler {\n constructor(temperature, humidity, continentalness, erosion, depth, weirdness) {\n this.temperature = temperature;\n this.humidity = humidity;\n this.continentalness = continentalness;\n this.erosion = erosion;\n this.depth = depth;\n this.weirdness = weirdness;\n }\n static fromRouter(router) {\n return new Climate2.Sampler(router.temperature, router.vegetation, router.continents, router.erosion, router.depth, router.ridges);\n }\n sample(x, y, z) {\n const context = DensityFunction.context(x << 2, y << 2, z << 2);\n return Climate2.target(this.temperature.compute(context), this.humidity.compute(context), this.continentalness.compute(context), this.erosion.compute(context), this.depth.compute(context), this.weirdness.compute(context));\n }\n }\n Climate2.Sampler = Sampler;\n const _RTree = class {\n constructor(points) {\n this.root = _RTree.build(points.map(([point, thing]) => new RLeaf(point, thing)));\n }\n static build(nodes) {\n if (nodes.length === 1) {\n return nodes[0];\n }\n if (nodes.length <= _RTree.CHILDREN_PER_NODE) {\n const sortedNodes = nodes.map((node) => {\n let key = 0;\n for (let i = 0; i < PARAMETER_SPACE; i += 1) {\n const param2 = node.space[i];\n key += Math.abs((param2.min + param2.max) / 2);\n }\n return { key, node };\n }).sort((a, b) => a.key - b.key).map(({ node }) => node);\n return new RSubTree(sortedNodes);\n }\n let f = Infinity;\n let n3 = -1;\n let result = [];\n for (let n2 = 0; n2 < PARAMETER_SPACE; ++n2) {\n nodes = _RTree.sort(nodes, n2, false);\n result = _RTree.bucketize(nodes);\n let f2 = 0;\n for (const subTree2 of result) {\n f2 += _RTree.area(subTree2.space);\n }\n if (!(f > f2))\n continue;\n f = f2;\n n3 = n2;\n }\n nodes = _RTree.sort(nodes, n3, false);\n result = _RTree.bucketize(nodes);\n result = _RTree.sort(result, n3, true);\n return new RSubTree(result.map((subTree) => _RTree.build(subTree.children)));\n }\n static sort(nodes, i, abs) {\n return nodes.map((node) => {\n const param2 = node.space[i];\n const f = (param2.min + param2.max) / 2;\n const key = abs ? Math.abs(f) : f;\n return { key, node };\n }).sort((a, b) => a.key - b.key).map(({ node }) => node);\n }\n static bucketize(nodes) {\n const arrayList = [];\n let arrayList2 = [];\n const n = Math.pow(10, Math.floor(Math.log(nodes.length - 0.01) / Math.log(10)));\n for (const node of nodes) {\n arrayList2.push(node);\n if (arrayList2.length < n)\n continue;\n arrayList.push(new RSubTree(arrayList2));\n arrayList2 = [];\n }\n if (arrayList2.length !== 0) {\n arrayList.push(new RSubTree(arrayList2));\n }\n return arrayList;\n }\n static area(params) {\n let f = 0;\n for (const param2 of params) {\n f += Math.abs(param2.max - param2.min);\n }\n return f;\n }\n search(target2, distance) {\n const leaf = this.root.search(target2.toArray(), distance);\n return leaf.thing();\n }\n };\n let RTree = _RTree;\n RTree.CHILDREN_PER_NODE = 10;\n Climate2.RTree = RTree;\n class RNode {\n constructor(space) {\n this.space = space;\n }\n distance(values) {\n let result = 0;\n for (let i = 0; i < PARAMETER_SPACE; i += 1) {\n result += square(this.space[i].distance(values[i]));\n }\n return result;\n }\n }\n Climate2.RNode = RNode;\n class RSubTree extends RNode {\n constructor(children) {\n super(RSubTree.buildSpace(children));\n this.children = children;\n }\n static buildSpace(nodes) {\n let space = [...Array(PARAMETER_SPACE)].map(() => new Param(Infinity, -Infinity));\n for (const node of nodes) {\n space = [...Array(PARAMETER_SPACE)].map((_, i) => space[i].union(node.space[i]));\n }\n return space;\n }\n search(values, distance) {\n let dist = Infinity;\n let leaf = null;\n for (const node of this.children) {\n const d1 = distance(node, values);\n if (dist <= d1)\n continue;\n const leaf2 = node.search(values, distance);\n const d2 = node == leaf2 ? d1 : distance(leaf2, values);\n if (dist <= d2)\n continue;\n dist = d2;\n leaf = leaf2;\n }\n return leaf;\n }\n }\n Climate2.RSubTree = RSubTree;\n class RLeaf extends RNode {\n constructor(point, thing) {\n super(point.space());\n this.thing = thing;\n }\n search() {\n return this;\n }\n }\n Climate2.RLeaf = RLeaf;\n})(Climate || (Climate = {}));\n\nclass FixedBiome {\n constructor(biome) {\n this.biome = biome;\n }\n getBiome() {\n return this.biome;\n }\n static fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const biome = Identifier.parse(Json.readString(root.biome) ?? \"minecraft:the_void\");\n return new FixedBiome(biome);\n }\n}\n\nclass MultiNoise {\n constructor(parameters) {\n this.parameters = parameters;\n }\n getBiome(x, y, z, climateSampler) {\n const target = climateSampler.sample(x, y, z);\n return this.parameters.find(target);\n }\n static fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const biomes = Json.readArray(root.biomes, (b) => ((b2) => ({\n biome: Identifier.parse(Json.readString(b2.biome) ?? \"minecraft:the_void\"),\n parameters: Climate.ParamPoint.fromJson(b2.parameters)\n }))(Json.readObject(b) ?? {})) ?? [];\n const parameters = biomes.map((b) => [b.parameters, () => b.biome]);\n return new MultiNoise(new Climate.Parameters(parameters));\n }\n}\n\nvar Noises;\n(function(Noises2) {\n Noises2.TEMPERATURE = create(\"temperature\", -10, [1.5, 0, 1, 0, 0, 0]);\n Noises2.VEGETATION = create(\"vegetation\", -8, [1, 1, 0, 0, 0, 0]);\n Noises2.CONTINENTALNESS = create(\"continentalness\", -9, [1, 1, 2, 2, 2, 1, 1, 1, 1]);\n Noises2.EROSION = create(\"erosion\", -9, [1, 1, 0, 1, 1]);\n Noises2.TEMPERATURE_LARGE = create(\"temperature_large\", -12, [1.5, 0, 1, 0, 0, 0]);\n Noises2.VEGETATION_LARGE = create(\"vegetation_large\", -10, [1, 1, 0, 0, 0, 0]);\n Noises2.CONTINENTALNESS_LARGE = create(\"continentalness_large\", -11, [1, 1, 2, 2, 2, 1, 1, 1, 1]);\n Noises2.EROSION_LARGE = create(\"erosion_large\", -11, [1, 1, 0, 1, 1]);\n Noises2.RIDGE = create(\"ridge\", -7, [1, 2, 1, 0, 0, 0]);\n Noises2.SHIFT = create(\"offset\", -3, [1, 1, 1, 0]);\n Noises2.AQUIFER_BARRIER = create(\"aquifer_barrier\", -3, [1]);\n Noises2.AQUIFER_FLUID_LEVEL_FLOODEDNESS = create(\"aquifer_fluid_level_floodedness\", -7, [1]);\n Noises2.AQUIFER_FLUID_LEVEL_SPREAD = create(\"aquifer_fluid_level_spread\", -5, [1]);\n Noises2.AQUIFER_LAVA = create(\"aquifer_lava\", -1, [1]);\n Noises2.PILLAR = create(\"pillar\", -7, [1, 1]);\n Noises2.PILLAR_RARENESS = create(\"pillar_rareness\", -8, [1]);\n Noises2.PILLAR_THICKNESS = create(\"pillar_thickness\", -8, [1]);\n Noises2.SPAGHETTI_2D = create(\"spaghetti_2d\", -8, [1]);\n Noises2.SPAGHETTI_2D_ELEVATION = create(\"spaghetti_2d_elevation\", -8, [1]);\n Noises2.SPAGHETTI_2D_MODULATOR = create(\"spaghetti_2d_modulator\", -8, [1]);\n Noises2.SPAGHETTI_2D_THICKNESS = create(\"spaghetti_2d_thickness\", -8, [1]);\n Noises2.SPAGHETTI_3D_1 = create(\"spaghetti_3d_1\", -8, [1]);\n Noises2.SPAGHETTI_3D_2 = create(\"spaghetti_3d_2\", -8, [1]);\n Noises2.SPAGHETTI_3D_RARITY = create(\"spaghetti_3d_rarity\", -8, [1]);\n Noises2.SPAGHETTI_3D_THICKNESS = create(\"spaghetti_3d_thickness\", -8, [1]);\n Noises2.SPAGHETTI_ROUGHNESS = create(\"spaghetti_roughness\", -8, [1]);\n Noises2.SPAGHETTI_ROUGHNESS_MODULATOR = create(\"spaghetti_roughness_modulator\", -8, [1]);\n Noises2.CAVE_ENTRANCE = create(\"cave_entrance\", -7, [0.4, 0.5, 1]);\n Noises2.CAVE_LAYER = create(\"cave_layer\", -8, [1]);\n Noises2.CAVE_CHEESE = create(\"cave_cheese\", -8, [0.5, 1, 2, 1, 2, 1, 0, 2, 0]);\n Noises2.NOODLE = create(\"noodle\", -8, [1]);\n Noises2.NOODLE_THICKNESS = create(\"noodle_thickness\", -8, [1]);\n Noises2.NOODLE_RIDGE_A = create(\"noodle_ridge_a\", -7, [1]);\n Noises2.NOODLE_RIDGE_B = create(\"noodle_ridge_b\", -7, [1]);\n Noises2.JAGGED = create(\"jagged\", -16, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]);\n Noises2.SURFACE = create(\"surface\", -6, [1, 1, 1]);\n Noises2.SURFACE_SECONDARY = create(\"surface_secondary\", -6, [1, 1, 0, 1]);\n function create(name, firstOctave, amplitudes) {\n return WorldgenRegistries.NOISE.register(Identifier.create(name), NoiseParameters.create(firstOctave, amplitudes));\n }\n const noiseCache = new Map();\n function instantiate(random, noise) {\n const key = noise.key()?.toString();\n if (!key) {\n throw new Error(\"Cannot instantiate noise from direct holder\");\n }\n const randomKey = random.seedKey();\n const cached = noiseCache.get(key);\n if (cached && cached[0] === randomKey[0] && cached[1] === randomKey[1]) {\n return cached[2];\n }\n const result = new NormalNoise(random.fromHashOf(key), noise.value());\n noiseCache.set(key, [randomKey[0], randomKey[1], result]);\n return result;\n }\n Noises2.instantiate = instantiate;\n})(Noises || (Noises = {}));\n\nvar NoiseSettings;\n(function(NoiseSettings2) {\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return {\n minY: Json.readInt(root.min_y) ?? 0,\n height: Json.readInt(root.height) ?? 256,\n xzSize: Json.readInt(root.size_horizontal) ?? 1,\n ySize: Json.readInt(root.size_vertical) ?? 1\n };\n }\n NoiseSettings2.fromJson = fromJson;\n function cellHeight(settings) {\n return settings.ySize << 2;\n }\n NoiseSettings2.cellHeight = cellHeight;\n function cellWidth(settings) {\n return settings.xzSize << 2;\n }\n NoiseSettings2.cellWidth = cellWidth;\n function cellCountY(settings) {\n return settings.height / cellHeight(settings);\n }\n NoiseSettings2.cellCountY = cellCountY;\n function minCellY(settings) {\n return Math.floor(settings.minY / cellHeight(settings));\n }\n NoiseSettings2.minCellY = minCellY;\n})(NoiseSettings || (NoiseSettings = {}));\nvar NoiseSlideSettings;\n(function(NoiseSlideSettings2) {\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return {\n target: Json.readNumber(root.target) ?? 0,\n size: Json.readInt(root.size) ?? 0,\n offset: Json.readInt(root.offset) ?? 0\n };\n }\n NoiseSlideSettings2.fromJson = fromJson;\n function apply(slide, density, y) {\n if (slide.size <= 0)\n return density;\n const t = (y - slide.offset) / slide.size;\n return clampedLerp(slide.target, density, t);\n }\n NoiseSlideSettings2.apply = apply;\n})(NoiseSlideSettings || (NoiseSlideSettings = {}));\n\nvar NoiseRouter;\n(function(NoiseRouter2) {\n const parser = (obj) => Holder.parser(WorldgenRegistries.DENSITY_FUNCTION, DensityFunction.fromJson)(obj).value();\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return {\n barrier: parser(root.barrier),\n fluidLevelFloodedness: parser(root.fluid_level_floodedness),\n fluidLevelSpread: parser(root.fluid_level_spread),\n lava: parser(root.lava),\n temperature: parser(root.temperature),\n vegetation: parser(root.vegetation),\n continents: parser(root.continents),\n erosion: parser(root.erosion),\n depth: parser(root.depth),\n ridges: parser(root.ridges),\n initialDensityWithoutJaggedness: parser(root.initial_density_without_jaggedness),\n finalDensity: parser(root.final_density),\n veinToggle: parser(root.vein_toggle),\n veinRidged: parser(root.vein_ridged),\n veinGap: parser(root.vein_gap)\n };\n }\n NoiseRouter2.fromJson = fromJson;\n function create(router) {\n return {\n barrier: DensityFunction.Constant.ZERO,\n fluidLevelFloodedness: DensityFunction.Constant.ZERO,\n fluidLevelSpread: DensityFunction.Constant.ZERO,\n lava: DensityFunction.Constant.ZERO,\n temperature: DensityFunction.Constant.ZERO,\n vegetation: DensityFunction.Constant.ZERO,\n continents: DensityFunction.Constant.ZERO,\n erosion: DensityFunction.Constant.ZERO,\n depth: DensityFunction.Constant.ZERO,\n ridges: DensityFunction.Constant.ZERO,\n initialDensityWithoutJaggedness: DensityFunction.Constant.ZERO,\n finalDensity: DensityFunction.Constant.ZERO,\n veinToggle: DensityFunction.Constant.ZERO,\n veinRidged: DensityFunction.Constant.ZERO,\n veinGap: DensityFunction.Constant.ZERO,\n ...router\n };\n }\n NoiseRouter2.create = create;\n function withSettings(simple, settings, seed, legacyRandomSource = false) {\n const random = (legacyRandomSource ? new LegacyRandom(seed) : XoroshiroRandom.create(seed)).forkPositional();\n const visitor = new Visitor(random, settings);\n return {\n ...visitor.mapAll(simple),\n aquiferPositionalRandomFactory: random.fromHashOf(Identifier.create(\"aquifer\").toString()).forkPositional(),\n oreVeinsPositionalRandomFactory: random.fromHashOf(Identifier.create(\"ore\").toString()).forkPositional()\n };\n }\n NoiseRouter2.withSettings = withSettings;\n class Visitor {\n constructor(random, settings) {\n this.random = random;\n this.settings = settings;\n this.mapped = new Map();\n }\n map(fn) {\n if (fn instanceof DensityFunction.HolderHolder) {\n const key = fn.holder.key();\n if (key !== void 0 && this.mapped.has(key.toString())) {\n return this.mapped.get(key.toString());\n } else {\n const value = fn.holder.value().mapAll(this);\n if (key !== void 0) {\n this.mapped.set(key.toString(), value);\n }\n return value;\n }\n }\n if (fn instanceof DensityFunction.Interpolated) {\n return fn.withCellSize(NoiseSettings.cellWidth(this.settings), NoiseSettings.cellHeight(this.settings));\n }\n if (fn instanceof DensityFunction.ShiftedNoise) {\n const noise = Noises.instantiate(this.random, fn.noiseData);\n return new DensityFunction.ShiftedNoise(fn.shiftX, fn.shiftY, fn.shiftZ, fn.xzScale, fn.yScale, fn.noiseData, noise);\n }\n if (fn instanceof DensityFunction.Noise) {\n return new DensityFunction.Noise(fn.xzScale, fn.yScale, fn.noiseData, Noises.instantiate(this.random, fn.noiseData));\n }\n if (fn instanceof DensityFunction.ShiftNoise) {\n return fn.withNewNoise(Noises.instantiate(this.random, fn.noiseData));\n }\n if (fn instanceof DensityFunction.WeirdScaledSampler) {\n return new DensityFunction.WeirdScaledSampler(fn.input, fn.rarityValueMapper, fn.noiseData, Noises.instantiate(this.random, fn.noiseData));\n }\n if (fn instanceof DensityFunction.OldBlendedNoise) {\n return new DensityFunction.OldBlendedNoise(fn.xzScale, fn.yScale, fn.xzFactor, fn.yFactor, fn.smearScaleMultiplier, new BlendedNoise(this.random.fromHashOf(Identifier.create(\"terrain\").toString()), fn.xzScale, fn.yScale, fn.xzFactor, fn.yFactor, fn.smearScaleMultiplier));\n }\n if (fn instanceof DensityFunction.Mapped) {\n return fn.withMinMax();\n }\n if (fn instanceof DensityFunction.Ap2) {\n return fn.withMinMax();\n }\n return fn;\n }\n mapAll(router) {\n return {\n barrier: router.barrier.mapAll(this),\n fluidLevelFloodedness: router.fluidLevelFloodedness.mapAll(this),\n fluidLevelSpread: router.fluidLevelSpread.mapAll(this),\n lava: router.lava.mapAll(this),\n temperature: router.temperature.mapAll(this),\n vegetation: router.vegetation.mapAll(this),\n continents: router.continents.mapAll(this),\n erosion: router.erosion.mapAll(this),\n depth: router.depth.mapAll(this),\n ridges: router.ridges.mapAll(this),\n initialDensityWithoutJaggedness: router.initialDensityWithoutJaggedness.mapAll(this),\n finalDensity: router.finalDensity.mapAll(this),\n veinToggle: router.veinToggle.mapAll(this),\n veinRidged: router.veinRidged.mapAll(this),\n veinGap: router.veinGap.mapAll(this)\n };\n }\n }\n NoiseRouter2.Visitor = Visitor;\n function computePreliminarySurfaceLevelScanning(settings, initialDensity, x, z) {\n const maxCellY = NoiseSettings.minCellY(settings) + NoiseSettings.cellCountY(settings);\n const minCellY = NoiseSettings.minCellY(settings);\n const cellHeight = NoiseSettings.cellHeight(settings);\n for (let yCell = maxCellY; yCell >= minCellY; yCell -= 1) {\n const y = yCell * cellHeight;\n const density = clamp(initialDensity.compute(DensityFunction.context(x, y, z)), -64, 64);\n if (density >= 0.390625) {\n return y;\n }\n }\n return Number.MAX_SAFE_INTEGER;\n }\n NoiseRouter2.computePreliminarySurfaceLevelScanning = computePreliminarySurfaceLevelScanning;\n})(NoiseRouter || (NoiseRouter = {}));\n\nclass NoiseChunk {\n constructor(cellCountXZ, cellCountY, cellNoiseMinY, router, minX, minZ, settings, aquifersEnabled, fluidPicker) {\n this.cellCountXZ = cellCountXZ;\n this.cellCountY = cellCountY;\n this.cellNoiseMinY = cellNoiseMinY;\n this.router = router;\n this.minX = minX;\n this.minZ = minZ;\n this.settings = settings;\n this.preliminarySurfaceLevel = new Map();\n this.cellWidth = NoiseSettings.cellWidth(settings);\n this.cellHeight = NoiseSettings.cellHeight(settings);\n this.firstCellX = Math.floor(minX / this.cellWidth);\n this.firstCellZ = Math.floor(minZ / this.cellWidth);\n this.firstNoiseX = minX >> 2;\n this.firstNoiseZ = minZ >> 2;\n this.noiseSizeXZ = cellCountXZ * this.cellWidth >> 2;\n if (!aquifersEnabled || true) {\n this.aquifer = Aquifer.createDisabled(fluidPicker);\n } else {\n const chunkPos = ChunkPos.fromBlockPos(BlockPos.create(minX, 0, minZ));\n const minY = cellNoiseMinY * NoiseSettings.cellHeight(settings);\n const height = cellCountY * NoiseSettings.cellHeight(settings);\n this.aquifer = new NoiseAquifer(this, chunkPos, router.barrier, router.fluidLevelFloodedness, router.fluidLevelSpread, router.lava, router.aquiferPositionalRandomFactory, minY, height, fluidPicker);\n }\n const finalDensity = this.router.finalDensity;\n this.materialRule = MaterialRule.fromList([\n (context) => this.aquifer.compute(context, finalDensity.compute(context))\n ]);\n this.initialDensityWithoutJaggedness = this.router.initialDensityWithoutJaggedness;\n }\n getFinalState(x, y, z) {\n return this.materialRule({ x, y, z });\n }\n getPreliminarySurfaceLevel(x, z) {\n return computeIfAbsent(this.preliminarySurfaceLevel, ChunkPos.asLong(x, z), () => {\n const level = NoiseRouter.computePreliminarySurfaceLevelScanning(this.settings, this.initialDensityWithoutJaggedness, x << 2, z << 2);\n return level;\n });\n }\n getAquifer() {\n return this.aquifer;\n }\n}\nvar MaterialRule;\n(function(MaterialRule2) {\n function fromList(rules) {\n return (context) => {\n for (const rule of rules) {\n const state = rule(context);\n if (state)\n return state;\n }\n return void 0;\n };\n }\n MaterialRule2.fromList = fromList;\n})(MaterialRule || (MaterialRule = {}));\n\nvar VerticalAnchor;\n(function(VerticalAnchor2) {\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n if (root.absolute !== void 0) {\n return absolute(Json.readNumber(root.absolute) ?? 0);\n } else if (root.above_bottom !== void 0) {\n return aboveBottom(Json.readNumber(root.above_bottom) ?? 0);\n } else if (root.below_top !== void 0) {\n return belowTop(Json.readNumber(root.below_top) ?? 0);\n }\n return () => 0;\n }\n VerticalAnchor2.fromJson = fromJson;\n function absolute(value) {\n return () => value;\n }\n function aboveBottom(value) {\n return (context) => context.minY + value;\n }\n function belowTop(value) {\n return (context) => context.maxY - value;\n }\n})(VerticalAnchor || (VerticalAnchor = {}));\nvar WorldgenContext;\n(function(WorldgenContext2) {\n function create(minY, height) {\n return {\n minY,\n height,\n maxY: minY + height - 1\n };\n }\n WorldgenContext2.create = create;\n})(WorldgenContext || (WorldgenContext = {}));\n\nclass SurfaceSystem {\n constructor(rule, defaultBlock, seed) {\n this.rule = rule;\n this.defaultBlock = defaultBlock;\n this.random = XoroshiroRandom.create(seed).forkPositional();\n this.surfaceNoise = Noises.instantiate(this.random, Noises.SURFACE);\n this.surfaceSecondaryNoise = Noises.instantiate(this.random, Noises.SURFACE_SECONDARY);\n this.positionalRandoms = new Map();\n }\n buildSurface(chunk, noiseChunk, worldgenContext, getBiome) {\n const minX = ChunkPos.minBlockX(chunk.pos);\n const minZ = ChunkPos.minBlockZ(chunk.pos);\n const surfaceContext = new SurfaceContext(this, chunk, noiseChunk, worldgenContext, getBiome);\n const ruleWithContext = this.rule(surfaceContext);\n for (let x = 0; x < 16; x += 1) {\n const worldX = minX + x;\n for (let z = 0; z < 1; z += 1) {\n const worldZ = minZ + z;\n surfaceContext.updateXZ(worldX, worldZ);\n let stoneDepthAbove = 0;\n let waterHeight = Number.MIN_SAFE_INTEGER;\n let stoneDepthOffset = Number.MAX_SAFE_INTEGER;\n for (let y = chunk.maxY; y >= chunk.minY; y -= 1) {\n const worldPos = BlockPos$1.create(worldX, y, worldZ);\n const oldState = chunk.getBlockState(worldPos);\n if (oldState.equals(BlockState.AIR)) {\n stoneDepthAbove = 0;\n waterHeight = Number.MIN_SAFE_INTEGER;\n continue;\n }\n if (oldState.isFluid()) {\n if (waterHeight === Number.MIN_SAFE_INTEGER) {\n waterHeight = y + 1;\n }\n continue;\n }\n if (stoneDepthOffset >= y) {\n stoneDepthOffset = Number.MIN_SAFE_INTEGER;\n for (let i = y - 1; i >= chunk.minY; i -= 1) {\n const state = chunk.getBlockState(BlockPos$1.create(worldX, i, worldZ));\n if (state.equals(BlockState.AIR) || state.isFluid()) {\n stoneDepthOffset = i + 1;\n break;\n }\n }\n }\n stoneDepthAbove += 1;\n const stoneDepthBelow = y - stoneDepthOffset + 1;\n if (!oldState.equals(this.defaultBlock)) {\n continue;\n }\n surfaceContext.updateY(stoneDepthAbove, stoneDepthBelow, waterHeight, y);\n const newState = ruleWithContext(worldX, y, worldZ);\n if (newState) {\n chunk.setBlockState(worldPos, newState);\n }\n }\n }\n }\n }\n getSurfaceDepth(x, z) {\n const noise = this.surfaceNoise.sample(x, 0, z);\n const offset = this.random.at(x, 0, z).nextDouble() * 0.25;\n return noise * 2.75 + 3 + offset;\n }\n getSurfaceSecondary(x, z) {\n return this.surfaceSecondaryNoise.sample(x, 0, z);\n }\n getRandom(name) {\n return computeIfAbsent(this.positionalRandoms, name, () => {\n return this.random.fromHashOf(name);\n });\n }\n}\nclass SurfaceContext {\n constructor(system, chunk, noiseChunk, context, getBiome) {\n this.system = system;\n this.chunk = chunk;\n this.noiseChunk = noiseChunk;\n this.context = context;\n this.getBiome = getBiome;\n this.blockX = 0;\n this.blockY = 0;\n this.blockZ = 0;\n this.stoneDepthAbove = 0;\n this.stoneDepthBelow = 0;\n this.surfaceDepth = 0;\n this.waterHeight = 0;\n this.biome = () => \"\";\n this.surfaceSecondary = () => 0;\n this.minSurfaceLevel = () => 0;\n }\n updateXZ(x, z) {\n this.blockX = x;\n this.blockZ = z;\n this.surfaceDepth = this.system.getSurfaceDepth(x, z);\n this.surfaceSecondary = lazy(() => this.system.getSurfaceSecondary(x, z));\n this.minSurfaceLevel = lazy(() => this.calculateMinSurfaceLevel(x, z));\n }\n updateY(stoneDepthAbove, stoneDepthBelow, waterHeight, y) {\n this.blockY = y;\n this.stoneDepthAbove = stoneDepthAbove;\n this.stoneDepthBelow = stoneDepthBelow;\n this.waterHeight = waterHeight;\n this.biome = lazy(() => this.getBiome(BlockPos$1.create(this.blockX, this.blockY, this.blockZ)));\n }\n calculateMinSurfaceLevel(x, z) {\n const cellX = x >> 4;\n const cellZ = z >> 4;\n const level00 = this.noiseChunk.getPreliminarySurfaceLevel(cellX << 4, cellZ << 4);\n const level10 = this.noiseChunk.getPreliminarySurfaceLevel(cellX + 1 << 4, cellZ << 4);\n const level01 = this.noiseChunk.getPreliminarySurfaceLevel(cellX << 4, cellZ + 1 << 4);\n const level11 = this.noiseChunk.getPreliminarySurfaceLevel(cellX + 1 << 4, cellZ + 1 << 4);\n const level = Math.floor(lerp2((x & 15) / 16, (z & 15) / 16, level00, level10, level01, level11));\n return level + this.surfaceDepth - 8;\n }\n}\nvar SurfaceRule;\n(function(SurfaceRule2) {\n SurfaceRule2.NOOP = () => () => void 0;\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const type = Json.readString(root.type)?.replace(/^minecraft:/, \"\");\n switch (type) {\n case \"block\":\n return block(BlockState.fromJson(root.result_state));\n case \"sequence\":\n return sequence(Json.readArray(root.sequence, SurfaceRule2.fromJson) ?? []);\n case \"condition\":\n return condition(SurfaceCondition.fromJson(root.if_true), SurfaceRule2.fromJson(root.then_run));\n }\n return SurfaceRule2.NOOP;\n }\n SurfaceRule2.fromJson = fromJson;\n function block(state) {\n return () => () => state;\n }\n SurfaceRule2.block = block;\n function sequence(rules) {\n return (context) => {\n const rulesWithContext = rules.map((rule) => rule(context));\n return (x, y, z) => {\n for (const rule of rulesWithContext) {\n const result = rule(x, y, z);\n if (result)\n return result;\n }\n return void 0;\n };\n };\n }\n SurfaceRule2.sequence = sequence;\n function condition(ifTrue, thenRun) {\n return (context) => (x, y, z) => {\n if (ifTrue(context)) {\n return thenRun(context)(x, y, z);\n }\n return void 0;\n };\n }\n SurfaceRule2.condition = condition;\n})(SurfaceRule || (SurfaceRule = {}));\nvar SurfaceCondition;\n(function(SurfaceCondition2) {\n SurfaceCondition2.FALSE = () => false;\n SurfaceCondition2.TRUE = () => true;\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const type = Json.readString(root.type)?.replace(/^minecraft:/, \"\");\n switch (type) {\n case \"above_preliminary_surface\":\n return abovePreliminarySurface();\n case \"biome\":\n return biome(Json.readArray(root.biome_is, (e) => Json.readString(e) ?? \"\") ?? []);\n case \"not\":\n return not(SurfaceCondition2.fromJson(root.invert));\n case \"stone_depth\":\n return stoneDepth(Json.readInt(root.offset) ?? 0, Json.readBoolean(root.add_surface_depth) ?? false, Json.readInt(root.secondary_depth_range) ?? 0, Json.readString(root.surface_type) === \"ceiling\");\n case \"vertical_gradient\":\n return verticalGradient(Json.readString(root.random_name) ?? \"\", VerticalAnchor.fromJson(root.true_at_and_below), VerticalAnchor.fromJson(root.false_at_and_above));\n case \"water\":\n return water(Json.readInt(root.offset) ?? 0, Json.readInt(root.surface_depth_multiplier) ?? 0, Json.readBoolean(root.add_surface_depth) ?? false);\n case \"y_above\":\n return yAbove(VerticalAnchor.fromJson(root.anchor), Json.readInt(root.surface_depth_multiplier) ?? 0, Json.readBoolean(root.add_surface_depth) ?? false);\n }\n return SurfaceCondition2.FALSE;\n }\n SurfaceCondition2.fromJson = fromJson;\n function abovePreliminarySurface() {\n return (context) => context.blockY >= context.minSurfaceLevel();\n }\n SurfaceCondition2.abovePreliminarySurface = abovePreliminarySurface;\n function biome(biomes) {\n const biomeSet = new Set(biomes);\n return (context) => biomeSet.has(context.biome());\n }\n SurfaceCondition2.biome = biome;\n function not(invert) {\n return (context) => !invert(context);\n }\n SurfaceCondition2.not = not;\n function stoneDepth(offset, addSurfaceDepth, secondaryDepthRange, ceiling) {\n return (context) => {\n const depth = ceiling ? context.stoneDepthBelow : context.stoneDepthAbove;\n const surfaceDepth = addSurfaceDepth ? context.surfaceDepth : 0;\n const secondaryDepth = secondaryDepthRange === 0 ? 0 : map(context.surfaceSecondary(), -1, 1, 0, secondaryDepthRange);\n return depth <= 1 + offset + surfaceDepth + secondaryDepth;\n };\n }\n SurfaceCondition2.stoneDepth = stoneDepth;\n function verticalGradient(randomName, trueAtAndBelow, falseAtAndAbove) {\n return (context) => {\n const trueAtAndBelowY = trueAtAndBelow(context.context);\n const falseAtAndAboveY = falseAtAndAbove(context.context);\n if (context.blockY <= trueAtAndBelowY) {\n return true;\n }\n if (context.blockY >= falseAtAndAboveY) {\n return false;\n }\n const random = context.system.getRandom(randomName);\n const chance = map(context.blockY, trueAtAndBelowY, falseAtAndAboveY, 1, 0);\n return random.nextFloat() < chance;\n };\n }\n SurfaceCondition2.verticalGradient = verticalGradient;\n function water(offset, surfaceDepthMultiplier, addStoneDepth) {\n return (context) => {\n if (context.waterHeight === Number.MIN_SAFE_INTEGER) {\n return true;\n }\n const stoneDepth2 = addStoneDepth ? context.stoneDepthAbove : 0;\n return context.blockY + stoneDepth2 >= context.waterHeight + offset + context.surfaceDepth * surfaceDepthMultiplier;\n };\n }\n SurfaceCondition2.water = water;\n function yAbove(anchor, surfaceDepthMultiplier, addStoneDepth) {\n return (context) => {\n const stoneDepth2 = addStoneDepth ? context.stoneDepthAbove : 0;\n return context.blockY + stoneDepth2 >= anchor(context.context) + context.surfaceDepth * surfaceDepthMultiplier;\n };\n }\n SurfaceCondition2.yAbove = yAbove;\n})(SurfaceCondition || (SurfaceCondition = {}));\n\nclass NoiseChunkGenerator {\n constructor(seed, biomeSource, settings) {\n this.biomeSource = biomeSource;\n this.settings = settings;\n this.router = NoiseRouter.withSettings(settings.noiseRouter, settings.noise, seed, settings.legacyRandomSource);\n this.noiseChunkCache = new Map();\n this.surfaceSystem = new SurfaceSystem(settings.surfaceRule, settings.defaultBlock, seed);\n const lavaFluid = new FluidStatus(-54, BlockState.LAVA);\n const defaultFluid = new FluidStatus(settings.seaLevel, settings.defaultFluid);\n this.globalFluidPicker = (x, y, z) => {\n if (y < Math.min(-54, settings.seaLevel)) {\n return lavaFluid;\n }\n return defaultFluid;\n };\n }\n fill(chunk, onlyFirstZ = false) {\n const minY = Math.max(chunk.minY, this.settings.noise.minY);\n const maxY = Math.min(chunk.maxY, this.settings.noise.minY + this.settings.noise.height);\n const cellWidth = NoiseSettings.cellWidth(this.settings.noise);\n const cellHeight = NoiseSettings.cellHeight(this.settings.noise);\n const cellCountXZ = Math.floor(16 / cellWidth);\n const minCellY = Math.floor(minY / cellHeight);\n const cellCountY = Math.floor((maxY - minY) / cellHeight);\n const minX = ChunkPos.minBlockX(chunk.pos);\n const minZ = ChunkPos.minBlockZ(chunk.pos);\n const noiseChunk = this.getNoiseChunk(chunk);\n for (let cellX = 0; cellX < cellCountXZ; cellX += 1) {\n for (let cellZ = 0; cellZ < (onlyFirstZ ? 1 : cellCountXZ); cellZ += 1) {\n let section = chunk.getOrCreateSection(chunk.sectionsCount - 1);\n for (let cellY = cellCountY - 1; cellY >= 0; cellY -= 1) {\n for (let offY = cellHeight - 1; offY >= 0; offY -= 1) {\n const blockY = (minCellY + cellY) * cellHeight + offY;\n const sectionY = blockY & 15;\n const sectionIndex = chunk.getSectionIndex(blockY);\n if (chunk.getSectionIndex(section.minBlockY) !== sectionIndex) {\n section = chunk.getOrCreateSection(sectionIndex);\n }\n for (let offX = 0; offX < cellWidth; offX += 1) {\n const blockX = minX + cellX * cellWidth + offX;\n const sectionX = blockX & 15;\n for (let offZ = 0; offZ < (onlyFirstZ ? 1 : cellWidth); offZ += 1) {\n const blockZ = minZ + cellZ * cellWidth + offZ;\n const sectionZ = blockZ & 15;\n const state = noiseChunk.getFinalState(blockX, blockY, blockZ) ?? this.settings.defaultBlock;\n section.setBlockState(sectionX, sectionY, sectionZ, state);\n }\n }\n }\n }\n }\n }\n }\n buildSurface(chunk, biome = \"minecraft:plains\") {\n const noiseChunk = this.getNoiseChunk(chunk);\n const context = WorldgenContext.create(this.settings.noise.minY, this.settings.noise.height);\n this.surfaceSystem.buildSurface(chunk, noiseChunk, context, () => biome);\n }\n getNoiseChunk(chunk) {\n return computeIfAbsent(this.noiseChunkCache, ChunkPos.toLong(chunk.pos), () => {\n const minY = Math.max(chunk.minY, this.settings.noise.minY);\n const maxY = Math.min(chunk.maxY, this.settings.noise.minY + this.settings.noise.height);\n const cellWidth = NoiseSettings.cellWidth(this.settings.noise);\n const cellHeight = NoiseSettings.cellHeight(this.settings.noise);\n const cellCountXZ = Math.floor(16 / cellWidth);\n const minCellY = Math.floor(minY / cellHeight);\n const cellCountY = Math.floor((maxY - minY) / cellHeight);\n const minX = ChunkPos.minBlockX(chunk.pos);\n const minZ = ChunkPos.minBlockZ(chunk.pos);\n return new NoiseChunk(cellCountXZ, cellCountY, minCellY, this.router, minX, minZ, this.settings.noise, this.settings.aquifersEnabled, this.globalFluidPicker);\n });\n }\n}\n\nvar NoiseGeneratorSettings;\n(function(NoiseGeneratorSettings2) {\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return {\n surfaceRule: SurfaceRule.fromJson(root.surface_rule),\n noise: NoiseSettings.fromJson(root.noise),\n defaultBlock: BlockState.fromJson(root.default_block),\n defaultFluid: BlockState.fromJson(root.default_fluid),\n noiseRouter: NoiseRouter.fromJson(root.noise_router),\n seaLevel: Json.readInt(root.sea_level) ?? 0,\n disableMobGeneration: Json.readBoolean(root.disable_mob_generation) ?? false,\n aquifersEnabled: Json.readBoolean(root.aquifers_enabled) ?? false,\n oreVeinsEnabled: Json.readBoolean(root.ore_veins_enabled) ?? false,\n legacyRandomSource: Json.readBoolean(root.legacy_random_source) ?? false\n };\n }\n NoiseGeneratorSettings2.fromJson = fromJson;\n})(NoiseGeneratorSettings || (NoiseGeneratorSettings = {}));\n\nexport { Aquifer, BlendedNoise, BlockPos$1 as BlockPos, BlockState, Chunk, ChunkPos, ChunkSection, Climate, CubicSpline, DensityFunction, Direction, FixedBiome, FluidStatus, Holder, Identifier, ImprovedNoise, Json, LegacyPositionalRandom, LegacyRandom, MaterialRule, MinMaxNumberFunction, MultiNoise, NoiseAquifer$1 as NoiseAquifer, NoiseChunk, NoiseChunkGenerator, NoiseGeneratorSettings, NoiseParameters, NoiseRouter, NoiseSettings, NoiseSlideSettings, Noises, NormalNoise, PerlinNoise, PerlinSimplexNoise, Registry, SimplexNoise, Structure, SurfaceCondition, SurfaceContext, SurfaceRule, SurfaceSystem, VerticalAnchor, WorldgenContext, WorldgenRegistries, XoroshiroPositionalRandom, XoroshiroRandom, binarySearch, clamp, clampedLerp, clampedMap, computeIfAbsent, getSeed, inverseLerp, isPowerOfTwo, lazy, lazyLerp, lazyLerp2, lazyLerp3, lerp, lerp2, lerp3, longfromBytes, map, smoothstep, square, upperPowerOfTwo };\n//# sourceMappingURL=worldgen.esm.js.map\n","import { DataModel } from '@mcschema/core'\nimport init, { biome_parameters, climate_noise, climate_sampler, multi_noise } from 'deepslate-rs'\n// @ts-expect-error\nimport wasm from 'deepslate-rs/deepslate_rs_bg.wasm?url'\nimport type { NoiseParameters } from 'deepslate/worldgen'\nimport { FixedBiome, Identifier, LegacyRandom, NormalNoise } from 'deepslate/worldgen'\nimport type { VersionId } from '../services'\nimport { checkVersion, fetchPreset } from '../services'\nimport { BiMap, clamp, deepClone, deepEqual, square, stringToColor } from '../Utils'\n\nlet ready = false\nasync function loadWasm() {\n\tif (ready) return\n\tawait init(wasm)\n\tready = true\n\tconsole.debug(`Loaded deepslate-rs from \"${wasm}\"`)\n}\n\nconst LAYERS = {\n\ttemperature: [-1, 1],\n\thumidity: [-1, 1],\n\tcontinentalness: [-1.1, 1],\n\terosion: [-1, 1],\n\tweirdness: [-1, 1],\n\toffset: [-1, 1],\n\tfactor: [0, 12],\n\tjaggedness: [0, 1],\n}\n\ntype Triple = [number, number, number]\ntype BiomeColors = Record<string, Triple>\ntype BiomeSourceOptions = {\n\toctaves: Record<string, NoiseParameters>,\n\tbiomeColors: BiomeColors,\n\toffset: [number, number],\n\tscale: number,\n\tres: number,\n\tseed: bigint,\n\tversion: VersionId,\n\tlayers: Set<keyof typeof LAYERS | 'biomes'>,\n}\n\ninterface CachedBiomeSource {\n\tgetBiome(x: number, y: number, z: number): Identifier\n\tgetBiomes?(xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): Identifier[]\n\tgetClimate?(x: number, y: number, z: number): {[k: string]: number}\n\tgetClimates?(xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): {[k: string]: number}[]\n}\n\nlet cacheState: any\nlet biomeSourceCache: CachedBiomeSource\n\nexport async function biomeMap(state: any, img: ImageData, options: BiomeSourceOptions) {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst data = img.data\n\tconst ox = -Math.round(options.offset[0]) - 100 + options.res / 2\n\tconst oz = -Math.round(options.offset[1]) - 100 + options.res / 2\n\tconst row = img.width * 4 / options.res\n\tconst col = 4 / options.res\n\n\tconst xRange: Triple = [ox * options.scale, (200 + ox) * options.scale, options.res * options.scale]\n\tconst zRange: Triple = [oz * options.scale, (200 + oz) * options.scale, options.res * options.scale]\n\n\tconst biomes = !options.layers.has('biomes') ? undefined : biomeSource.getBiomes?.(...xRange, 64, 65, 1, ...zRange)\n\tconst layers = [...options.layers].filter(l => l !== 'biomes') as (keyof typeof LAYERS)[]\n\tconst noise = layers.length === 0 ? undefined : biomeSource.getClimates?.(...xRange, 64, 65, 1, ...zRange)\n\n\tfor (let x = 0; x < 200; x += options.res) {\n\t\tfor (let z = 0; z < 200; z += options.res) {\n\t\t\tconst i = z * row + x * col\n\t\t\tconst j = (x / options.res) * 200 / options.res + z / options.res\n\t\t\tconst worldX = (x + ox) * options.scale\n\t\t\tconst worldZ = (z + oz) * options.scale\n\t\t\tlet color: Triple = [50, 50, 50]\n\t\t\tif (options.layers.has('biomes')) {\n\t\t\t\tconst biome = biomes?.[j] ?? biomeSource.getBiome(worldX, 64, worldZ)\n\t\t\t\tcolor = getBiomeColor(biome.toString(), options.biomeColors)\n\t\t\t} else if (noise && layers[0]) {\n\t\t\t\tconst value = noise[j][layers[0]]\n\t\t\t\tconst [min, max] = LAYERS[layers[0]]\n\t\t\t\tconst brightness = (value - min) / (max - min) * 256\n\t\t\t\tcolor = [brightness, brightness, brightness]\n\t\t\t}\n\t\t\tdata[i] = color[0]\n\t\t\tdata[i + 1] = color[1]\n\t\t\tdata[i + 2] = color[2]\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nexport async function getBiome(state: any, x: number, z: number, options: BiomeSourceOptions): Promise<{[k: string]: number | string} | undefined> {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst [xx, zz] = toWorld([x, z], options)\n\treturn {\n\t\tbiome: biomeSource.getBiome(xx, 64, zz).toString(),\n\t\t...biomeSource.getClimate?.(xx, 64, zz),\n\t}\n}\n\nasync function getCached(state: any, options: BiomeSourceOptions): Promise<{ biomeSource: CachedBiomeSource}> {\n\tconst newState = [state, options.octaves, `${options.seed}`, options.version]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\n\t\tbiomeSourceCache = await getBiomeSource(state, options)\n\t}\n\treturn {\n\t\tbiomeSource: biomeSourceCache,\n\t} \n}\n\nasync function getBiomeSource(state: any, options: BiomeSourceOptions): Promise<CachedBiomeSource> {\n\tswitch (state?.type?.replace(/^minecraft:/, '')) {\n\t\tcase 'fixed':\n\t\t\treturn new FixedBiome(Identifier.parse(state.biome as string))\n\n\t\tcase 'checkerboard':\n\t\t\tconst shift = (state.scale ?? 2) + 2\n\t\t\tconst numBiomes = state.biomes?.length ?? 0\n\t\t\treturn {\n\t\t\t\tgetBiome(x: number, _y: number, z: number) {\n\t\t\t\t\tconst i = (((x >> shift) + (z >> shift)) % numBiomes + numBiomes) % numBiomes\n\t\t\t\t\treturn Identifier.parse(state.biomes?.[i].node as string)\n\t\t\t\t},\n\t\t\t}\n\n\t\tcase 'multi_noise':\n\t\t\tswitch(state.preset?.replace(/^minecraft:/, '')) {\n\t\t\t\tcase 'nether':\n\t\t\t\t\tstate = checkVersion(options.version, '1.18') ? NetherPreset18 : NetherPreset\n\t\t\t\t\tbreak\n\t\t\t\tcase 'overworld':\n\t\t\t\t\tstate = checkVersion(options.version, '1.18') ? await OverworldPreset18() : state\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t\tstate = DataModel.unwrapLists(state)\n\t\t\tif (checkVersion(options.version, '1.18')) {\n\t\t\t\tawait loadWasm()\n\t\t\t\tconst BiomeIds = new BiMap<string, number>()\n\t\t\t\tconst param = (p: number | number[]) => {\n\t\t\t\t\treturn typeof p === 'number' ? [p, p] : p\n\t\t\t\t}\n\t\t\t\tconst [t0, t1, h0, h1, c0, c1, e0, e1, w0, w1, d0, d1, o, b] = [[], [], [], [], [], [], [], [], [], [], [], [], [], []] as number[][]\n\t\t\t\tfor (const i of state.biomes) {\n\t\t\t\t\tconst { temperature, humidity, continentalness, erosion, weirdness, depth, offset } = i.parameters\n\t\t\t\t\tt0.push(param(temperature)[0])\n\t\t\t\t\tt1.push(param(temperature)[1])\n\t\t\t\t\th0.push(param(humidity)[0])\n\t\t\t\t\th1.push(param(humidity)[1])\n\t\t\t\t\tc0.push(param(continentalness)[0])\n\t\t\t\t\tc1.push(param(continentalness)[1])\n\t\t\t\t\te0.push(param(erosion)[0])\n\t\t\t\t\te1.push(param(erosion)[1])\n\t\t\t\t\tw0.push(param(weirdness)[0])\n\t\t\t\t\tw1.push(param(weirdness)[1])\n\t\t\t\t\td0.push(param(depth)[0])\n\t\t\t\t\td1.push(param(depth)[1])\n\t\t\t\t\to.push(offset)\n\t\t\t\t\tb.push(BiomeIds.getOrPut(i.biome, Math.floor(Math.random() * 2147483647)))\n\t\t\t\t}\n\t\t\t\tconst parameters = biome_parameters(new Float64Array(t0), new Float64Array(t1), new Float64Array(h0), new Float64Array(h1), new Float64Array(c0), new Float64Array(c1), new Float64Array(e0), new Float64Array(e1), new Float64Array(w0), new Float64Array(w1), new Float64Array(d0), new Float64Array(d1), new Float64Array(o), new Int32Array(b))\n\t\t\t\tconst sampler = climate_sampler(options.seed, options.octaves.temperature.firstOctave, new Float64Array(options.octaves.temperature.amplitudes), options.octaves.humidity.firstOctave, new Float64Array(options.octaves.humidity.amplitudes), options.octaves.continentalness.firstOctave, new Float64Array(options.octaves.continentalness.amplitudes), options.octaves.erosion.firstOctave, new Float64Array(options.octaves.erosion.amplitudes), options.octaves.weirdness.firstOctave, new Float64Array(options.octaves.weirdness.amplitudes), options.octaves.shift.firstOctave, new Float64Array(options.octaves.shift.amplitudes))\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x, y, z) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, x, x + 1, 1, y, y + 1, 1, z, z + 1, 1)\n\t\t\t\t\t\treturn Identifier.parse(BiomeIds.getA(ids[0]) ?? 'unknown')\n\t\t\t\t\t},\n\t\t\t\t\tgetBiomes(xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\treturn [...ids].map(id => Identifier.parse(BiomeIds.getA(id) ?? 'unknown'))\n\t\t\t\t\t},\n\t\t\t\t\tgetClimate(x, y, z) {\n\t\t\t\t\t\tconst climate = climate_noise(sampler, x, x + 1, 1, y, y + 1, 1, z, z + 1, 1)\n\t\t\t\t\t\tconst [t, h, c, e, w] = climate.slice(0, 5)\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttemperature: t,\n\t\t\t\t\t\t\thumidity: h,\n\t\t\t\t\t\t\tcontinentalness: c,\n\t\t\t\t\t\t\terosion: e,\n\t\t\t\t\t\t\tweirdness: w,\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tgetClimates(xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst climate = climate_noise(sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\tconst result = []\n\t\t\t\t\t\tfor (let i = 0; i < climate.length; i += 7) {\n\t\t\t\t\t\t\tconst [t, h, c, e, w] = climate.slice(i, i + 5)\n\t\t\t\t\t\t\tresult.push({\n\t\t\t\t\t\t\t\ttemperature: t,\n\t\t\t\t\t\t\t\thumidity: h,\n\t\t\t\t\t\t\t\tcontinentalness: c,\n\t\t\t\t\t\t\t\terosion: e,\n\t\t\t\t\t\t\t\tweirdness: w,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst noise = ['altitude', 'temperature', 'humidity', 'weirdness']\n\t\t\t\t\t.map((id, i) => {\n\t\t\t\t\t\tconst config = state[`${id}_noise`]\n\t\t\t\t\t\tconfig.firstOctave = clamp(config.firstOctave ?? -7, -100, -1)\n\t\t\t\t\t\treturn new NormalNoise(new LegacyRandom(options.seed + BigInt(i)), config)\n\t\t\t\t\t})\n\t\t\t\tif (!Array.isArray(state.biomes) || state.biomes.length === 0) {\n\t\t\t\t\treturn new FixedBiome(Identifier.create('unknown'))\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x: number, _y: number, z: number): Identifier {\n\t\t\t\t\t\tconst n = noise.map(n => n.sample(x, z, 0))\n\t\t\t\t\t\tlet minDist = Infinity\n\t\t\t\t\t\tlet minBiome = ''\n\t\t\t\t\t\tfor (const { biome, parameters: p } of state.biomes) {\n\t\t\t\t\t\t\tconst dist = square(p.altitude - n[0]) + square(p.temperature - n[1]) + square(p.humidity - n[2]) + square(p.weirdness - n[3]) + square(p.offset)\n\t\t\t\t\t\t\tif (dist < minDist) {\n\t\t\t\t\t\t\t\tminDist = dist\n\t\t\t\t\t\t\t\tminBiome = biome\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn Identifier.parse(minBiome)\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t}\n\tthrow new Error('Unknown biome source')\n}\n\nfunction getBiomeColor(biome: string, biomeColors: BiomeColors): Triple {\n\tif (!biome) {\n\t\treturn [128, 128, 128]\n\t}\n\tconst color = biomeColors[biome] ?? VanillaColors[biome]\n\tif (color === undefined) {\n\t\treturn stringToColor(biome)\n\t}\n\treturn color\n}\n\nfunction toWorld([x, z]: [number, number], options: BiomeSourceOptions) {\n\tconst xx = (x - options.offset[0] - 100 + options.res / 2) * options.scale\n\tconst zz = (z - options.offset[1] - 100 + options.res / 2) * options.scale\n\treturn [xx, zz]\n}\n\nconst VanillaColors: Record<string, Triple> = {\n\t'minecraft:badlands': [217,69,21],\n\t'minecraft:badlands_plateau': [202,140,101],\n\t'minecraft:bamboo_jungle': [118,142,20],\n\t'minecraft:bamboo_jungle_hills': [59,71,10],\n\t'minecraft:basalt_deltas': [64,54,54],\n\t'minecraft:beach': [250,222,85],\n\t'minecraft:birch_forest': [48,116,68],\n\t'minecraft:birch_forest_hills': [31,95,50],\n\t'minecraft:cold_ocean': [32,32,112],\n\t'minecraft:crimson_forest': [221,8,8],\n\t'minecraft:dark_forest': [64,81,26],\n\t'minecraft:dark_forest_hills': [104,121,66],\n\t'minecraft:deep_cold_ocean': [32,32,56],\n\t'minecraft:deep_frozen_ocean': [64,64,144],\n\t'minecraft:deep_lukewarm_ocean': [0,0,64],\n\t'minecraft:deep_ocean': [0,0,48],\n\t'minecraft:deep_warm_ocean': [0,0,80],\n\t'minecraft:desert': [250,148,24],\n\t'minecraft:desert_hills': [210,95,18],\n\t'minecraft:desert_lakes': [255,188,64],\n\t'minecraft:end_barrens': [128,128,255],\n\t'minecraft:end_highlands': [128,128,255],\n\t'minecraft:end_midlands': [128,128,255],\n\t'minecraft:eroded_badlands': [255,109,61],\n\t'minecraft:flower_forest': [45,142,73],\n\t'minecraft:forest': [5,102,33],\n\t'minecraft:frozen_ocean': [112,112,214],\n\t'minecraft:frozen_river': [160,160,255],\n\t'minecraft:giant_spruce_taiga': [129,142,121],\n\t'minecraft:old_growth_spruce_taiga': [129,142,121],\n\t'minecraft:giant_spruce_taiga_hills': [109,119,102],\n\t'minecraft:giant_tree_taiga': [89,102,81],\n\t'minecraft:old_growth_pine_taiga': [89,102,81],\n\t'minecraft:giant_tree_taiga_hills': [69,79,62],\n\t'minecraft:gravelly_hills': [136,136,136],\n\t'minecraft:gravelly_mountains': [136,136,136],\n\t'minecraft:windswept_gravelly_hills': [136,136,136],\n\t'minecraft:ice_spikes': [180,220,220],\n\t'minecraft:jungle': [83,123,9],\n\t'minecraft:jungle_edge': [98,139,23],\n\t'minecraft:sparse_jungle': [98,139,23],\n\t'minecraft:jungle_hills': [44,66,5],\n\t'minecraft:lukewarm_ocean': [0,0,144],\n\t'minecraft:modified_badlands_plateau': [242,180,141],\n\t'minecraft:modified_gravelly_mountains': [120,152,120],\n\t'minecraft:modified_jungle': [123,163,49],\n\t'minecraft:modified_jungle_edge': [138,179,63],\n\t'minecraft:modified_wooded_badlands_plateau': [216,191,141],\n\t'minecraft:mountain_edge': [114,120,154],\n\t'minecraft:extreme_hills': [96,96,96],\n\t'minecraft:mountains': [96,96,96],\n\t'minecraft:windswept_hills': [96,96,96],\n\t'minecraft:mushroom_field_shore': [160,0,255],\n\t'minecraft:mushroom_fields': [255,0,255],\n\t'minecraft:nether_wastes': [191,59,59],\n\t'minecraft:ocean': [0,0,112],\n\t'minecraft:plains': [141,179,96],\n\t'minecraft:river': [0,0,255],\n\t'minecraft:savanna': [189,178,95],\n\t'minecraft:savanna_plateau': [167,157,100],\n\t'minecraft:shattered_savanna': [229,218,135],\n\t'minecraft:windswept_savanna': [229,218,135],\n\t'minecraft:shattered_savanna_plateau': [207,197,140],\n\t'minecraft:small_end_islands': [128,128,255],\n\t'minecraft:snowy_beach': [250,240,192],\n\t'minecraft:snowy_mountains': [160,160,160],\n\t'minecraft:snowy_taiga': [49,85,74],\n\t'minecraft:snowy_taiga_hills': [36,63,54],\n\t'minecraft:snowy_taiga_mountains': [89,125,114],\n\t'minecraft:snowy_tundra': [255,255,255],\n\t'minecraft:snowy_plains': [255,255,255],\n\t'minecraft:soul_sand_valley': [94,56,48],\n\t'minecraft:stone_shore': [162,162,132],\n\t'minecraft:stony_shore': [162,162,132],\n\t'minecraft:sunflower_plains': [181,219,136],\n\t'minecraft:swamp': [7,249,178],\n\t'minecraft:swamp_hills': [47,255,218],\n\t'minecraft:taiga': [11,102,89],\n\t'minecraft:taiga_hills': [22,57,51],\n\t'minecraft:taiga_mountains': [51,142,129],\n\t'minecraft:tall_birch_forest': [88,156,108],\n\t'minecraft:old_growth_birch_forest': [88,156,108],\n\t'minecraft:tall_birch_hills': [71,135,90],\n\t'minecraft:the_end': [128,128,255],\n\t'minecraft:the_void': [0,0,0],\n\t'minecraft:warm_ocean': [0,0,172],\n\t'minecraft:warped_forest': [73,144,123],\n\t'minecraft:wooded_badlands_plateau': [176,151,101],\n\t'minecraft:wooded_badlands': [176,151,101],\n\t'minecraft:wooded_hills': [34,85,28],\n\t'minecraft:wooded_mountains': [80,112,80],\n\t'minecraft:windswept_forest': [80,112,80],\n\t'minecraft:snowy_slopes': [140, 195, 222],\n\t'minecraft:lofty_peaks': [196, 168, 193],\n\t'minecraft:jagged_peaks': [196, 168, 193],\n\t'minecraft:snowcapped_peaks': [200, 198, 200],\n\t'minecraft:frozen_peaks': [200, 198, 200],\n\t'minecraft:stony_peaks': [82, 92, 103],\n\t'minecraft:grove': [150, 150, 189],\n\t'minecraft:meadow': [169, 197, 80],\n\t'minecraft:lush_caves': [112, 255, 79],\n\t'minecraft:dripstone_caves': [140, 124, 0],\n}\n\nconst NetherPreset = {type:'minecraft:multi_noise',seed:0,altitude_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},humidity_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{biome:'minecraft:nether_wastes',parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{altitude:0,temperature:0,humidity:-0.5,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{altitude:0,temperature:0.4,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{altitude:0,temperature:0,humidity:0.5,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{altitude:0,temperature:-0.5,humidity:0,weirdness:0,offset:0.175}}]}\n\nconst NetherPreset18 = {type:'minecraft:multi_noise',biomes:[{biome:'minecraft:nether_wastes',parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{temperature:0,humidity:-0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{temperature:0.4,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{temperature:0,humidity:0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{temperature:-0.5,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.175}}]}\n\nasync function OverworldPreset18() {\n\tconst overworld = await fetchPreset('1.18', 'dimension', 'overworld')\n\treturn overworld.generator.biome_source\n}\n","import { DataModel } from '@mcschema/core'\nimport type { Random } from 'deepslate/worldgen'\nimport { LegacyRandom, PerlinNoise } from 'deepslate/worldgen'\nimport type { VersionId } from '../services'\nimport { checkVersion } from '../services'\nimport { clamp, isObject, stringToColor } from '../Utils'\n\ntype BlockPos = [number, number, number]\ntype Placement = [BlockPos, number]\n\ntype PlacementContext = {\n\tplacements: Placement[],\n\tfeatures: string[],\n\trandom: Random,\n\tbiomeInfoNoise: PerlinNoise,\n\tseaLevel: number,\n\tversion: VersionId,\n\tnextFloat(): number,\n\tnextInt(max: number): number,\n\tnextGaussian(): number,\n\tsampleInt(provider: any): number,\n}\n\nconst terrain = [50, 50, 51, 51, 52, 52, 53, 54, 56, 57, 57, 58, 58, 59, 60, 60, 60, 59, 59, 59, 60, 61, 61, 62, 63, 63, 64, 64, 64, 65, 65, 66, 66, 65, 65, 66, 66, 67, 67, 67, 68, 69, 71, 73, 74, 76, 79, 80, 81, 81, 82, 83, 83, 82, 82, 81, 81, 80, 80, 80, 81, 81, 82, 82] \n\nconst featureColors = [\n\t[255, 77, 54], // red\n\t[59, 118, 255], // blue\n\t[91, 207, 25], // green\n\t[217, 32, 245], // magenta\n\t[255, 209, 41], // yellow\n\t[52, 204, 209], // cyan\n]\n\nexport type DecoratorOptions = {\n\tsize: [number, number, number],\n\tseed: bigint,\n\tversion: VersionId,\n}\nexport function decorator(state: any, img: ImageData, options: DecoratorOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst ctx: PlacementContext = {\n\t\tplacements: [],\n\t\tfeatures: [],\n\t\trandom,\n\t\tbiomeInfoNoise: new PerlinNoise(random.fork(), 0, [1]),\n\t\tseaLevel: 63,\n\t\tversion: options.version,\n\t\tnextFloat: () => random.nextFloat(),\n\t\tnextInt: (max: number) => random.nextInt(max),\n\t\tnextGaussian: () => Math.sqrt(-2 * Math.log(1 - random.nextFloat())) * Math.cos(2 * Math.PI * random.nextFloat()),\n\t\tsampleInt(value) { return sampleInt(value, this) },\n\t}\n\n\tfor (let x = 0; x < options.size[0] / 16; x += 1) {\n\t\tfor (let z = 0; z < options.size[2] / 16; z += 1) {\n\t\t\tif (checkVersion(options.version, undefined, '1.17')) {\n\t\t\t\tgetPlacements([x * 16, 0, z * 16], DataModel.unwrapLists(state), ctx)\n\t\t\t} else {\n\t\t\t\tmodifyPlacement([x * 16, 0, z * 16], DataModel.unwrapLists(state.placement), ctx)\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data = img.data\n\timg.data.fill(255)\n\n\tfor (const [pos, feature] of ctx.placements) {\n\t\tif (pos[0] < 0 || pos[1] < 0 || pos[2] < 0 || pos[0] >= options.size[0] || pos[1] >= options.size[1] || pos[2] >= options.size[2]) continue\n\t\tconst i = (pos[2] * (img.width * 4)) + (pos[0] * 4)\n\t\tconst color = feature < featureColors.length ? featureColors[feature] : stringToColor(ctx.features[feature])\n\t\tdata[i] = clamp(50, 205, color[0])\n\t\tdata[i + 1] = clamp(50, 205, color[1])\n\t\tdata[i + 2] = clamp(50, 205, color[2])\n\t\tdata[i + 3] = 255\n\t}\n\n\tfor (let x = 0; x < options.size[0]; x += 1) {\n\t\tfor (let y = 0; y < options.size[2]; y += 1) {\n\t\t\tif ((Math.floor(x / 16) + Math.floor(y / 16)) % 2 === 0) continue\n\t\t\tconst i = (y * (img.width * 4)) + (x * 4)\n\t\t\tfor (let j = 0; j < 3; j += 1) {\n\t\t\t\tdata[i + j] = 0.85 * data[i + j] \n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction normalize(id: string) {\n\treturn id.startsWith('minecraft:') ? id.slice(10) : id\n}\n\nfunction decorateY(pos: BlockPos, y: number): BlockPos[] {\n\treturn [[ pos[0], y, pos[2] ]]\n}\n\nfunction sampleInt(value: any, ctx: PlacementContext): number {\n\tif (typeof value === 'number') {\n\t\treturn value\n\t} else if (value.base) {\n\t\treturn value.base ?? 1 + ctx.nextInt(1 + (value.spread ?? 0))\n\t} else {\n\t\tswitch (normalize(value.type)) {\n\t\t\tcase 'constant': return value.value\n\t\t\tcase 'uniform': return value.value.min_inclusive + ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1)\n\t\t\tcase 'biased_to_bottom': return value.value.min_inclusive + ctx.nextInt(ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1) + 1)\n\t\t\tcase 'clamped': return clamp(ctx.sampleInt(value.value.source), value.value.min_inclusive, value.value.max_inclusive)\n\t\t\tcase 'clamped_normal':\n\t\t\t\tconst normal = value.value.mean + ctx.nextGaussian() * value.value.deviation\n\t\t\t\treturn Math.floor(clamp(value.value.min_inclusive, value.value.max_inclusive, normal))\n\t\t\tcase 'weighted_list':\n\t\t\t\tconst totalWeight = (value.distribution as any[]).reduce<number>((sum, e) => sum + e.weight, 0)\n\t\t\t\tlet i = ctx.nextInt(totalWeight)\n\t\t\t\tfor (const e of value.distribution) {\n\t\t\t\t\ti -= e.weight\n\t\t\t\t\tif (i < 0) return ctx.sampleInt(e.data)\n\t\t\t\t}\n\t\t\t\treturn 0\n\t\t}\n\t\treturn 1\n\t}\n}\n\nfunction resolveAnchor(anchor: any, _ctx: PlacementContext): number {\n\tif (!isObject(anchor)) throw new Error('Invalid vertical anchor')\n\tif (anchor.absolute) return anchor.absolute\n\tif (anchor.above_bottom) return anchor.above_bottom\n\tif (anchor.below_top) return 256 - anchor.below_top\n\tthrow new Error('Invalid vertical anchor')\n}\n\nfunction sampleHeight(height: any, ctx: PlacementContext): number {\n\tif (!isObject(height)) throw new Error('Invalid height provider')\n\tif (typeof height.type !== 'string') {\n\t\treturn resolveAnchor(height, ctx)\n\t}\n\tswitch (normalize(height.type)) {\n\t\tcase 'constant': return resolveAnchor(height.value, ctx)\n\t\tcase 'uniform': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t}\n\t\tcase 'biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst n = ctx.nextInt(max - min - (height.inner ?? 1) + 1)\n\t\t\treturn min + ctx.nextInt(n + (height.inner ?? 1))\n\t\t}\n\t\tcase 'very_biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst inner = height.inner ?? 1\n\t\t\tconst n1 = min + inner + ctx.nextInt(max - min - inner + 1)\n\t\t\tconst n2 = min + ctx.nextInt(n1 - min)\n\t\t\treturn min + ctx.nextInt(n2 - min + inner)\n\t\t}\n\t\tcase 'trapezoid': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst plateau = height.plateau ?? 0\n\t\t\tif (plateau >= max - min) {\n\t\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t\t}\n\t\t\tconst n1 = (max - min - plateau) / 2\n\t\t\tconst n2 = (max - min) - n1\n\t\t\treturn min + ctx.nextInt(n2 + 1) + ctx.nextInt(n1 + 1)\n\t\t}\n\t\tdefault: throw new Error(`Invalid height provider ${height.type}`)\n\t}\n}\n\n// 1.17 and before\nfunction useFeature(s: string, ctx: PlacementContext) {\n\tconst i = ctx.features.indexOf(s)\n\tif (i != -1) return i\n\tctx.features.push(s)\n\treturn ctx.features.length - 1\n}\n\nfunction getPlacements(pos: BlockPos, feature: any, ctx: PlacementContext): void {\n\tif (typeof feature === 'string') {\n\t\tctx.placements.push([pos, useFeature(feature, ctx)])\n\t\treturn\n\t}\n\tconst type = normalize(feature?.type ?? 'no_op')\n\tconst featureFn = Features[type]\n\tif (featureFn) {\n\t\tfeatureFn(feature.config, pos, ctx)\n\t} else {\n\t\tctx.placements.push([pos, useFeature(JSON.stringify(feature), ctx)])\n\t}\n}\n\nfunction getPositions(pos: BlockPos, decorator: any, ctx: PlacementContext): BlockPos[] {\n\tconst type = normalize(decorator?.type ?? 'nope')\n\tconst decoratorFn = Decorators[type]\n\tif (!decoratorFn) {\n\t\treturn [pos]\n\t}\n\treturn decoratorFn(decorator?.config, pos, ctx)\n}\n\nconst Features: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => void,\n} = {\n\tdecorated: (config, pos, ctx) => {\n\t\tconst positions = getPositions(pos, config?.decorator, ctx)\n\t\tpositions.forEach(p => getPlacements(p, config?.feature, ctx))\n\t},\n\trandom_boolean_selector: (config, pos, ctx) => {\n\t\tconst feature = ctx.nextFloat() < 0.5 ? config?.feature_true : config?.feature_false\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n\trandom_selector: (config, pos, ctx) => {\n\t\tfor (const f of config?.features ?? []) {\n\t\t\tif (ctx.nextFloat() < (f?.chance ?? 0)) {\n\t\t\t\tgetPlacements(pos, f.feature, ctx)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tgetPlacements(pos, config?.default, ctx)\n\t},\n\tsimple_random_selector: (config, pos, ctx) => {\n\t\tconst feature = config?.features?.[ctx.nextInt(config?.features?.length ?? 0)]\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n}\n\nconst Decorators: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tchance: (config, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (config?.chance ?? 1) ? [pos] : []\n\t},\n\tcount: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t},\n\tcount_extra: (config, pos, ctx) => {\n\t\tlet count = config?.count ?? 1\n\t\tif (ctx.nextFloat() < config.extra_chance ?? 0){\n\t\t\tcount += config.extra_count ?? 0\n\t\t}\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_multilayer: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tcount_noise: (config, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < config.noise_level ? config.below_noise : config.above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_noise_biased: (config, pos, ctx) => {\n\t\tconst factor = Math.max(1, config.noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (config.noise_offset ?? 0)) * config.noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tdark_oak_tree: (_config, pos, ctx) => {\n\t\treturn [...new Array(16)].map((_, i) => {\n\t\t\tconst x = Math.floor(i / 4) * 4 + 1 + ctx.nextInt(3) + pos[0]\n\t\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, x)])\n\t\t\tconst z = Math.floor(i % 4) * 4 + 1 + ctx.nextInt(3) + pos[2]\n\t\t\treturn [x, y, z]\n\t\t})\n\t},\n\tdecorated: (config, pos, ctx) => {\n\t\treturn getPositions(pos, config?.outer, ctx).flatMap(p => {\n\t\t\treturn getPositions(p, config?.inner, ctx)\n\t\t})\n\t},\n\tdepth_average: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(config?.spread ?? 0) + ctx.nextInt(config?.spread ?? 0) - (config.spread ?? 0) + (config?.baseline ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\temerald_ore: (_config, pos, ctx) => {\n\t\tconst count = 3 + ctx.nextInt(6)\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t4 + ctx.nextInt(28),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tfire: (config, pos, ctx) => {\n\t\tconst count = 1 + ctx.nextInt(ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tglowstone: (config, pos, ctx) => {\n\t\tconst count = ctx.nextInt(1 + ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\theightmap: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\theightmap_spread_double: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, ctx.nextInt(y * 2))\n\t},\n\theightmap_world_surface: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\ticeberg: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + 4 + ctx.nextInt(8),\n\t\t\tpos[1],\n\t\t\tpos[2] + 4 + ctx.nextInt(8),\n\t\t]]\n\t},\n\tlava_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt((config.chance ?? 1) / 10) === 0) {\n\t\t\tconst y = ctx.nextInt(ctx.nextInt(256 - 8) + 8)\n\t\t\tif (y < ctx.seaLevel || ctx.nextInt((config?.chance ?? 1) / 8) == 0) {\n\t\t\t\tconst x = ctx.nextInt(16) + pos[0]\n\t\t\t\tconst z = ctx.nextInt(16) + pos[2]\n\t\t\t\treturn [[x, y, z]]\n\t\t\t}\n\t\t}\n\t\treturn []\n\t},\n\tnope: (_config, pos) => {\n\t\treturn [pos]\n\t},\n\trange: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\trange_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\trange_very_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\tspread_32_above: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\ttop_solid_heightmap: (_config, pos) => {\n\t\tconst y = terrain[clamp(0, 63, pos[0])]\n\t\treturn decorateY(pos, y)\n\t},\n\tmagma: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\tsquare: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tsurface_relative_threshold: (config, pos) => {\n\t\tconst height = terrain[clamp(0, 63, pos[0])]\n\t\tconst min = height + (config?.min_inclusive ?? -Infinity)\n\t\tconst max = height + (config?.max_inclusive ?? Infinity)\n\t\treturn (pos[1] < min || pos[1] > max) ? [pos] : []\n\t},\n\twater_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt(config.chance ?? 1) === 0) {\n\t\t\treturn [[\n\t\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t\tctx.nextInt(256),\n\t\t\t\tpos[2] + ctx.nextInt(16),\n\t\t\t]]\n\t\t}\n\t\treturn []\n\t},\n}\n\n// 1.18 and after\nfunction modifyPlacement(pos: BlockPos, placement: any[], ctx: PlacementContext) {\n\tlet positions = [pos]\n\tfor (const modifier of placement) {\n\t\tconst modifierFn = PlacementModifiers[normalize(modifier?.type ?? 'nope')]\n\t\tif (!modifierFn) continue\n\t\tpositions = positions.flatMap(pos =>\n\t\t\tPlacementModifiers[normalize(modifier.type)](modifier, pos, ctx)\n\t\t)\n\t}\n\tfor (const pos of positions) {\n\t\tctx.placements.push([pos, 0])\n\t}\n}\n\nconst PlacementModifiers: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tcount: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t},\n\tcount_on_every_layer: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tenvironment_scan: ({}, pos) => {\n\t\treturn [pos]\n\t},\n\theight_range: ({ height }, pos, ctx) => {\n\t\treturn decorateY(pos, sampleHeight(height, ctx))\n\t},\n\theightmap: ({}, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\tin_square: ({}, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tnoise_based_count: ({ noise_to_count_ratio, noise_factor, noise_offset }, pos, ctx) => {\n\t\tconst factor = Math.max(1, noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (noise_offset ?? 0)) * noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tnoise_threshold_count: ({ noise_level, below_noise, above_noise }, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < noise_level ? below_noise : above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\trandom_offset: ({ xz_spread, y_spread }, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.sampleInt(xz_spread),\n\t\t\tpos[1] + ctx.sampleInt(y_spread),\n\t\t\tpos[2] + ctx.sampleInt(xz_spread),\n\t\t]]\n\t},\n\trarity_filter: ({ chance }, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (chance ?? 1) ? [pos] : []\n\t},\n}\n","import { DataModel } from '@mcschema/core'\nimport * as deepslate19 from 'deepslate/worldgen'\nimport type { VersionId } from '../services'\nimport { checkVersion, fetchAllPresets } from '../services'\nimport { deepClone, deepEqual } from '../Utils'\n\nexport class Deepslate {\n\tprivate d = deepslate19\n\tprivate loadedVersion: VersionId | undefined\n\tprivate loadingVersion: VersionId | undefined\n\tprivate loadingPromise: Promise<void> | undefined\n\tprivate readonly deepslateCache = new Map<VersionId, typeof deepslate19>()\n\tprivate readonly Z = 0\n\n\tprivate cacheState: unknown\n\tprivate settingsCache: NoiseSettings | undefined\n\tprivate generatorCache: ChunkGenerator | undefined\n\tprivate chunksCache: Chunk[] = []\n\n\tpublic async loadVersion(version: VersionId) {\n\t\tif (this.loadedVersion === version) {\n\t\t\treturn\n\t\t}\n\t\tif (this.loadingVersion !== version || !this.loadingPromise) {\n\t\t\tthis.loadingVersion = version\n\t\t\tthis.loadingPromise = this.doLoadVersion(version)\n\t\t}\n\t\treturn this.loadingPromise\n\t}\n\n\tprivate async doLoadVersion(version: VersionId) {\n\t\tconst cachedDeepslate = this.deepslateCache.get(version)\n\t\tif (cachedDeepslate) {\n\t\t\tthis.d = cachedDeepslate\n\t\t} else {\n\t\t\tif (checkVersion(version, '1.19')) {\n\t\t\t\tthis.d = deepslate19\n\t\t\t} else if (checkVersion(version, '1.18.2')) {\n\t\t\t\tthis.d = await import('deepslate-1.18.2') as any\n\t\t\t} else {\n\t\t\t\tthis.d = await import('deepslate-1.18') as any\n\t\t\t}\n\t\t\tif (this.d.WorldgenRegistries) {\n\t\t\t\tconst REGISTRIES: [string, keyof typeof deepslate19.WorldgenRegistries, { fromJson(obj: unknown): any}][] = [\n\t\t\t\t\t['worldgen/noise', 'NOISE', this.d.NoiseParameters],\n\t\t\t\t\t['worldgen/density_function', 'DENSITY_FUNCTION', this.d.DensityFunction],\n\t\t\t\t]\n\t\t\t\tawait Promise.all(REGISTRIES.map(async ([id, name, parser]) => {\n\t\t\t\t\tconst entries = await fetchAllPresets(version, id)\n\t\t\t\t\tconst registry = new this.d.Registry<typeof parser>(this.d.Identifier.create(id))\n\t\t\t\t\tfor (const [key, value] of entries.entries()) {\n\t\t\t\t\t\tregistry.register(this.d.Identifier.parse(key), parser.fromJson(value))\n\t\t\t\t\t}\n\t\t\t\t\tthis.d.WorldgenRegistries[name].assign(registry as any)\n\t\t\t\t}))\n\t\t\t}\n\t\t\tthis.deepslateCache.set(version, this.d)\n\t\t}\n\t\tthis.loadedVersion = version\n\t\tthis.loadingVersion = undefined\n\t}\n\n\tpublic loadChunkGenerator(settings: unknown, seed: bigint, biome = 'unknown') {\n\t\tif (!this.loadedVersion) {\n\t\t\tthrow new Error('No deepslate version loaded')\n\t\t}\n\t\tconst newCacheState = [settings, `${seed}`, biome]\n\t\tif (!deepEqual(this.cacheState, newCacheState)) {\n\t\t\tconst biomeSource = new this.d.FixedBiome(checkVersion(this.loadedVersion, '1.18.2') ? this.d.Identifier.parse(biome) : biome as any)\n\t\t\tconsole.log(this.d)\n\t\t\tconst noiseSettings = this.d.NoiseGeneratorSettings.fromJson(DataModel.unwrapLists(settings))\n\t\t\tconst chunkGenerator = new this.d.NoiseChunkGenerator(seed, biomeSource, noiseSettings)\n\t\t\tthis.settingsCache = noiseSettings.noise\n\t\t\tthis.generatorCache = chunkGenerator\n\t\t\tthis.chunksCache = []\n\t\t\tthis.cacheState = deepClone(newCacheState)\n\t\t}\n\t}\n\n\tpublic generateChunks(minX: number, width: number, biome = 'unknown') {\n\t\tminX = Math.floor(minX)\n\t\tif (!this.settingsCache) {\n\t\t\tthrow new Error('Tried to generate chunks before settings are loaded')\n\t\t}\n\t\tconst minY = this.settingsCache.minY\n\t\tconst height = this.settingsCache.height\n\n\t\treturn [...Array(Math.ceil(width / 16) + 1)].map((_, i) => {\n\t\t\tconst x = (minX >> 4) + i\n\t\t\tconst cached = this.chunksCache.find(c => c.pos[0] === x)\n\t\t\tif (cached) {\n\t\t\t\treturn cached\n\t\t\t}\n\t\t\tconst chunk = new this.d.Chunk(minY, height, this.d.ChunkPos.create(x, this.Z >> 4))\n\t\t\tif (!this.generatorCache) {\n\t\t\t\tthrow new Error('Tried to generate chunks before generator is loaded')\n\t\t\t}\n\t\t\tthis.generatorCache.fill(chunk, true)\n\t\t\tthis.generatorCache.buildSurface(chunk, biome)\n\t\t\tthis.chunksCache.push(chunk)\n\t\t\treturn chunk\n\t\t})\n\t}\n\n\tpublic loadDensityFunction(state: unknown, seed: bigint) {\n\t\tconst random = this.d.XoroshiroRandom.create(seed).forkPositional()\n\t\tconst settings = this.d.NoiseSettings.fromJson({\n\t\t\tmin_y: -64,\n\t\t\theight: 384,\n\t\t\tsize_horizontal: 1,\n\t\t\tsize_vertical: 2,\n\t\t\tsampling: { xz_scale: 1, y_scale: 1, xz_factor: 80, y_factor: 160 },\n\t\t\tbottom_slide: { target: 0.1171875, size: 3, offset: 0 },\n\t\t\ttop_slide: { target: -0.078125, size: 2, offset: 8 },\n\t\t\tterrain_shaper: { offset: 0.044, factor: 4, jaggedness: 0 },\n\t\t})\n\t\tthis.settingsCache = settings\n\t\tconst originalFn = this.d.DensityFunction.fromJson(state)\n\t\treturn originalFn.mapAll(new this.d.NoiseRouter.Visitor(random, settings))\n\t}\n\n\tpublic getNoiseSettings(): NoiseSettings {\n\t\tif (!this.settingsCache) {\n\t\t\tthrow new Error('Tried to access noise settings when they are not loaded')\n\t\t}\n\t\treturn this.settingsCache\n\t}\n\n\tpublic getBlockState(x: number, y: number) {\n\t\tx = Math.floor(x)\n\t\ty = Math.floor(y)\n\t\tconst chunk = this.chunksCache.find(c => this.d.ChunkPos.minBlockX(c.pos) <= x && this.d.ChunkPos.maxBlockX(c.pos) >= x)\n\t\treturn chunk?.getBlockState(this.d.BlockPos.create(x, y, this.Z))\n\t}\n}\n\ninterface NoiseSettings {\n\tminY: number,\n\theight: number,\n}\n\ninterface ChunkGenerator {\n\tfill(chunk: Chunk, onlyFirstZ?: boolean): void\n\tbuildSurface(chunk: Chunk, biome: string): void\n}\n\ninterface Chunk {\n\treadonly pos: deepslate19.ChunkPos;\n\tgetBlockState(pos: deepslate19.BlockPos): deepslate19.BlockState;\n}\n","import { LegacyRandom, PerlinNoise } from 'deepslate/worldgen'\nimport { clampedLerp, lerp2 } from '../../Utils'\n\nexport class NoiseChunkGenerator {\n\tprivate readonly minLimitPerlinNoise: PerlinNoise\n\tprivate readonly maxLimitPerlinNoise: PerlinNoise\n\tprivate readonly mainPerlinNoise: PerlinNoise\n\tprivate readonly depthNoise: PerlinNoise\n\n\tprivate settings: any = {}\n\tprivate chunkWidth: number = 4\n\tprivate chunkHeight: number = 4\n\tprivate chunkCountY: number = 32\n\tprivate biomeDepth: number = 0.1\n\tprivate biomeScale: number = 0.2\n\n\tprivate noiseColumnCache: (number[] | null)[] = []\n\tprivate xOffset: number = 0\n\n\tconstructor(seed: bigint) {\n\t\tconst random = new LegacyRandom(seed)\n\t\tthis.minLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.maxLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.mainPerlinNoise = new PerlinNoise(random, -7, [1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.depthNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t}\n\n\tpublic reset(settings: any, depth: number, scale: number, xOffset: number, width: number) {\n\t\tthis.settings = settings\n\t\tthis.chunkWidth = settings.size_horizontal * 4\n\t\tthis.chunkHeight = settings.size_vertical * 4\n\t\tthis.chunkCountY = Math.floor(settings.height / this.chunkHeight)\n\n\t\tif (settings.amplified && depth > 0) {\n\t\t\tdepth = 1 + depth * 2\n\t\t\tscale = 1 + scale * 4\n\t\t}\n\t\tthis.biomeDepth = 0.265625 * (depth * 0.5 - 0.125)\n\t\tthis.biomeScale = 96.0 / (scale * 0.9 + 0.1)\n\n\t\tthis.noiseColumnCache = Array(width).fill(null)\n\t\tthis.xOffset = xOffset\n\t}\n \n\tpublic iterateNoiseColumn(x: number): number[] {\n\t\tconst data = Array(this.chunkCountY * this.chunkHeight)\n\t\tconst cx = Math.floor(x / this.chunkWidth)\n\t\tconst ox = Math.floor(x % this.chunkWidth) / this.chunkWidth\n\t\tconst noise1 = this.fillNoiseColumn(cx)\n\t\tconst noise2 = this.fillNoiseColumn(cx + 1)\n\n\t\tfor (let y = this.chunkCountY - 1; y >= 0; y -= 1) {\n\t\t\tfor (let yy = this.chunkHeight; yy >= 0; yy -= 1) {\n\t\t\t\tconst oy = yy / this.chunkHeight\n\t\t\t\tconst i = y * this.chunkHeight + yy\n\t\t\t\tdata[i] = lerp2(oy, ox, noise1[y], noise1[y+1], noise2[y], noise2[y+1])\n\t\t\t}\n\t\t}\n\t\treturn data\n\t}\n\n\tprivate fillNoiseColumn(x: number): number[] {\n\t\tconst cachedColumn = this.noiseColumnCache[x - this.xOffset]\n\t\tif (cachedColumn) return cachedColumn\n\n\t\tconst data = Array(this.chunkCountY + 1)\n\n\t\tconst xzScale = 684.412 * this.settings.sampling.xz_scale\n\t\tconst yScale = 684.412 * this.settings.sampling.y_scale\n\t\tconst xzFactor = xzScale / this.settings.sampling.xz_factor\n\t\tconst yFactor = yScale / this.settings.sampling.y_factor\n\t\tconst randomDensity = this.settings.random_density_offset ? this.getRandomDensity(x) : 0\n\n\t\tfor (let y = 0; y <= this.chunkCountY; y += 1) {\n\t\t\tlet noise = this.sampleAndClampNoise(x, y, this.mainPerlinNoise.getOctaveNoise(0)!.zo, xzScale, yScale, xzFactor, yFactor)\n\t\t\tconst yOffset = 1 - y * 2 / this.chunkCountY + randomDensity\n\t\t\tconst density = yOffset * this.settings.density_factor + this.settings.density_offset\n\t\t\tconst falloff = (density + this.biomeDepth) * this.biomeScale\n\t\t\tnoise += falloff * (falloff > 0 ? 4 : 1)\n\n\t\t\tif (this.settings.top_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.top_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(this.chunkCountY - y - (this.settings.top_slide.offset)) / (this.settings.top_slide.size)\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (this.settings.bottom_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.bottom_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(y - (this.settings.bottom_slide.offset)) / (this.settings.bottom_slide.size)\n\t\t\t\t)\n\t\t\t}\n\t\t\tdata[y] = noise\n\t\t}\n\n\t\tthis.noiseColumnCache[x - this.xOffset] = data\n\t\treturn data\n\t}\n\n\tprivate getRandomDensity(x: number): number {\n\t\tconst noise = this.depthNoise.sample(x * 200, 10, this.depthNoise.getOctaveNoise(0)!.zo, 1, 0, true)\n\t\tconst a = (noise < 0) ? -noise * 0.3 : noise\n\t\tconst b = a * 24.575625 - 2\n\t\treturn (b < 0) ? b * 0.009486607142857142 : Math.min(b, 1) * 0.006640625\n\t}\n\n\tprivate sampleAndClampNoise(x: number, y: number, z: number, xzScale: number, yScale: number, xzFactor: number, yFactor: number): number {\n\t\tlet a = 0\n\t\tlet b = 0\n\t\tlet c = 0\n\t\tlet d = 1\n\n\t\tfor (let i = 0; i < 16; i += 1) {\n\t\t\tconst x2 = PerlinNoise.wrap(x * xzScale * d)\n\t\t\tconst y2 = PerlinNoise.wrap(y * yScale * d)\n\t\t\tconst z2 = PerlinNoise.wrap(z * xzScale * d)\n\t\t\tconst e = yScale * d\n\n\t\t\tconst minLimitNoise = this.minLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (minLimitNoise) {\n\t\t\t\ta += minLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tconst maxLimitNoise = this.maxLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (maxLimitNoise) {\n\t\t\t\tb += maxLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tif (i < 8) {\n\t\t\t\tconst mainNoise = this.mainPerlinNoise.getOctaveNoise(i)\n\t\t\t\tif (mainNoise) {\n\t\t\t\t\tc += mainNoise.sample(\n\t\t\t\t\t\tPerlinNoise.wrap(x * xzFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(y * yFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(z * xzFactor * d),\n\t\t\t\t\t\tyFactor * d,\n\t\t\t\t\t\ty * yFactor * d \n\t\t\t\t\t) / d\n\t\t\t\t}\n\t\t\t}\n\n\t\t\td /= 2\n\t\t}\n\n\t\treturn clampedLerp(a / 512, b / 512, (c / 10 + 1) / 2)\n\t}\n}\n","import { BlockState, clampedMap, DensityFunction } from 'deepslate/worldgen'\nimport type { VersionId } from '../services'\nimport { checkVersion } from '../services'\nimport { Deepslate } from './Deepslate'\nimport { NoiseChunkGenerator as OldNoiseChunkGenerator } from './noise/NoiseChunkGenerator'\n\nexport type NoiseSettingsOptions = {\n\tbiome?: string,\n\tbiomeScale?: number,\n\tbiomeDepth?: number,\n\toffset: number,\n\twidth: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nconst colors: Record<string, [number, number, number]> = {\n\t'minecraft:air': [150, 160, 170],\n\t'minecraft:water': [20, 80, 170],\n\t'minecraft:lava': [200, 100, 0],\n\t'minecraft:stone': [55, 55, 55],\n\t'minecraft:deepslate': [34, 34, 36],\n\t'minecraft:bedrock': [10, 10, 10],\n\t'minecraft:grass_block': [47, 120, 23],\n\t'minecraft:dirt': [64, 40, 8],\n\t'minecraft:gravel': [70, 70, 70],\n\t'minecraft:sand': [196, 180, 77],\n\t'minecraft:sandstone': [148, 135, 52],\n\t'minecraft:netherrack': [100, 40, 40],\n\t'minecraft:crimson_nylium': [144, 22, 22],\n\t'minecraft:warped_nylium': [28, 115, 113],\n\t'minecraft:basalt': [73, 74, 85],\n\t'minecraft:end_stone': [200, 200, 140],\n}\n\nconst DEEPSLATE = new Deepslate()\n\nexport async function noiseSettings(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tif (checkVersion(options.version, '1.18')) {\n\n\t\tawait DEEPSLATE.loadVersion(options.version)\n\t\tDEEPSLATE.loadChunkGenerator(state, options.seed, options.biome)\n\t\tDEEPSLATE.generateChunks(-options.offset, options.width, options.biome)\n\t\tconst noise = DEEPSLATE.getNoiseSettings()\n\n\t\tconst data = img.data\n\t\tfor (let x = 0; x < options.width; x += 1) {\n\t\t\tfor (let y = 0; y < noise.height; y += 1) {\n\t\t\t\tconst i = x * 4 + (noise.height-y-1) * 4 * img.width\n\t\t\t\tconst state = DEEPSLATE.getBlockState(x - options.offset, y + noise.minY) ?? BlockState.AIR\n\t\t\t\tconst color = colors[state.getName().toString()] ?? [0, 0, 0]\n\t\t\t\tdata[i] = color[0]\n\t\t\t\tdata[i + 1] = color[1]\n\t\t\t\tdata[i + 2] = color[2]\n\t\t\t\tdata[i + 3] = 255\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tconst generator = new OldNoiseChunkGenerator(options.seed)\n\tgenerator.reset(state.noise, options.biomeDepth ?? 0, options.biomeScale ?? 0, options.offset, options.width)\n\tconst data = img.data\n\tconst row = img.width * 4\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tconst noise = generator.iterateNoiseColumn(x - options.offset).reverse()\n\t\tfor (let y = 0; y < state.noise.height; y += 1) {\n\t\t\tconst i = y * row + x * 4\n\t\t\tconst color = getColor(noise, y)\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nexport function getNoiseBlock(x: number, y: number) {\n\treturn DEEPSLATE.getBlockState(x, y)\n}\n\nexport async function densityFunction(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tawait DEEPSLATE.loadVersion(options.version)\n\tconst fn = DEEPSLATE.loadDensityFunction(state, options.seed)\n\tconst noise = DEEPSLATE.getNoiseSettings()\n\n\tconst arr = Array(options.width * noise.height)\n\tlet min = Infinity\n\tlet max = -Infinity\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tfor (let y = 0; y < noise.height; y += 1) {\n\t\t\tconst i = x + (noise.height-y-1) * options.width\n\t\t\tconst density = fn.compute(DensityFunction.context(x - options.offset, y, 0))\n\t\t\tmin = Math.min(min, density)\n\t\t\tmax = Math.max(max, density)\n\t\t\tarr[i] = density\n\t\t}\n\t}\n\n\tconst data = img.data\n\tfor (let i = 0; i < options.width * noise.height; i += 1) {\n\t\tconst color = Math.floor(clampedMap(arr[i], min, max, 0, 256))\n\t\tdata[4 * i] = color\n\t\tdata[4 * i + 1] = color\n\t\tdata[4 * i + 2] = color\n\t\tdata[4 * i + 3] = 255\n\t}\n}\n\nfunction getColor(noise: number[], y: number): number {\n\tif (noise[y] > 0) {\n\t\treturn 0\n\t}\n\tif (noise[y+1] > 0) {\n\t\treturn 150\n\t}\n\treturn 255\n}\n","import { DataModel } from '@mcschema/core'\nimport { LegacyRandom, NoiseParameters, NormalNoise } from 'deepslate/worldgen'\nimport type { VersionId } from '../services'\n\nexport type NoiseOptions = {\n\toffset: [number, number],\n\tscale: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nexport function normalNoise(state: any, img: ImageData, options: NoiseOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst params = NoiseParameters.fromJson(DataModel.unwrapLists(state))\n\tconst noise = new NormalNoise(random, params)\n\n\tconst ox = -options.offset[0] - 100\n\tconst oz = -options.offset[1] - 100\n\tconst data = img.data\n\tfor (let x = 0; x < 256; x += 1) {\n\t\tfor (let y = 0; y < 256; y += 1) {\n\t\t\tconst i = x * 4 + y * 4 * 256\n\t\t\tconst xx = (x + ox) * options.scale\n\t\t\tconst yy = (y + oz) * options.scale\n\t\t\tconst color = (noise.sample(xx, yy, 0) + 1) * 128\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n","import { Path } from '@mcschema/core'\nimport type { NoiseParameters } from 'deepslate/worldgen'\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { biomeMap, getBiome } from '../../previews'\nimport { newSeed, randomSeed } from '../../Utils'\n\nconst LAYERS = ['biomes', 'temperature', 'humidity', 'continentalness', 'erosion', 'weirdness'] as const\n\nexport const BiomeSourcePreview = ({ model, data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [configuredSeed] = useState(randomSeed())\n\tconst [scale, setScale] = useState(2)\n\tconst [focused, setFocused] = useState<{[k: string]: number | string} | undefined>(undefined)\n\tconst [layers, setLayers] = useState(new Set<typeof LAYERS[number]>(['biomes']))\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst res = useRef(1)\n\tconst refineTimeout = useRef<number>()\n\n\tconst seed = BigInt(model.get(new Path(['generator', 'seed'])) ?? configuredSeed)\n\tconst octaves = useMemo(() => {\n\t\tif (!shown) return undefined\n\t\treturn getOctaves(model.get(new Path(['generator', 'settings'])))\n\t}, [shown])\n\tconst state = shown ? calculateState(data, octaves!) : ''\n\tconst type: string = data.type?.replace(/^minecraft:/, '')\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [200 / res.current, 200 / res.current]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { octaves: octaves!, biomeColors: {}, layers, offset: offset.current, scale, seed, res: res.current, version }\n\t\t\tawait biomeMap(data, img, options)\n\t\t\tif (res.current === 4) {\n\t\t\t\tclearTimeout(refineTimeout.current)\n\t\t\t\trefineTimeout.current = setTimeout(() => {\n\t\t\t\t\tres.current = 1\n\t\t\t\t\tredraw()\n\t\t\t\t}, 150) as any\n\t\t\t}\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 200\n\t\t\toffset.current[1] = offset.current[1] + dy * 200\n\t\t\tclearTimeout(refineTimeout.current)\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst options = { octaves: octaves!, biomeColors: {}, layers, offset: offset.current, scale, seed: configuredSeed, res: 1, version }\n\t\t\tconst biome = await getBiome(data, Math.floor(x * 200), Math.floor(y * 200), options)\n\t\t\tsetFocused(biome)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [version, state, scale, configuredSeed, layers])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t}\n\t}, [version, state, scale, configuredSeed, layers, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused.biome as string} class=\"no-pointer\" />}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<BtnMenu icon=\"stack\" tooltip={locale('configure_layers')}>\n\t\t\t\t\t{LAYERS.map(name => {\n\t\t\t\t\t\tconst enabled = layers.has(name)\n\t\t\t\t\t\treturn <Btn label={locale(`layer.${name}`)} \n\t\t\t\t\t\t\tactive={enabled}\n\t\t\t\t\t\t\ttooltip={enabled ? locale('enabled') : locale('disabled')}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\tsetLayers(new Set([name]))\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t}} />\n\t\t\t\t\t})}\n\t\t\t\t</BtnMenu>}\n\t\t\t{(type === 'multi_noise' || type === 'checkerboard') && <>\n\t\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t</>}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\t\tonClick={() => newSeed(model)} />}\n\t\t</div>\n\t\t{focused?.temperature !== undefined && <div class=\"controls secondary-controls\">\n\t\t\t<Btn class=\"no-pointer\" label={Object.entries(focused)\n\t\t\t\t.filter(([k]) => k !== 'biome')\n\t\t\t\t.map(([k, v]) => `${k[0].toUpperCase()}: ${(v as number).toFixed(2)}`).join(' ')}/>\n\t\t</div>}\n\t\t<canvas ref={canvas} width=\"200\" height=\"200\"></canvas>\n\t</>\n}\n\nfunction calculateState(data: any, octaves: Record<string, NoiseParameters>) {\n\treturn JSON.stringify([data, octaves])\n}\n\nexport function getOctaves(obj: any): Record<string, NoiseParameters> {\n\tif (typeof obj !== 'string') {\n\t\tobj = obj.legacy_random_source ? 'minecraft:nether' : 'minecraft:overworld'\n\t}\n\tswitch (obj.replace(/^minecraft:/, '')) {\n\t\tcase 'overworld':\n\t\tcase 'amplified':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -9, amplitudes: [1.5, 0, 1, 0, 0, 0] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1, 0, 0, 0, 0] },\n\t\t\t\tcontinentalness: { firstOctave: -9, amplitudes: [1, 1, 2, 2, 2, 1, 1, 1, 1] },\n\t\t\t\terosion: { firstOctave: -9, amplitudes: [1, 1, 0, 1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 2, 1, 0, 0, 0] },\n\t\t\t\tshift: { firstOctave: -3, amplitudes: [1, 1, 1, 0] },\n\t\t\t}\n\t\tcase 'end':\n\t\tcase 'floating_islands':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\thumidity: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tcontinentalness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\terosion: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tweirdness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tcontinentalness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\terosion: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t}\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { decorator } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DecoratorPreview = ({ data, version, shown }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [scale, setScale] = useState(4)\n\tconst [seed, setSeed] = useState(randomSeed())\n\n\tconst state = JSON.stringify(data)\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [scale * 16, scale * 16]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tdecorator(data, img, { seed, version, size: [scale * 16, 128, scale * 16] })\n\t\t},\n\t}, [version, state, seed])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [version, state, scale, seed, shown])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => setScale(Math.min(16, scale + 1))} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => setScale(Math.max(1, scale - 1))} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"64\" height=\"64\"></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { densityFunction } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DensityFunctionPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [autoScroll, setAutoScroll] = useState(false)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst scrollInterval = useRef<number | undefined>(undefined)\n\tconst state = JSON.stringify([data])\n\n\tconst size = data?.noise?.height ?? 256\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [size, size]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { offset: offset.current, width: img.width, seed, version }\n\t\t\tawait densityFunction(data, img, options)\n\t\t},\n\t\tasync onDrag(dx) {\n\t\t\toffset.current += dx * size\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst worldX = Math.floor(x * size - offset.current)\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tsetFocused(`X=${worldX} Y=${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [version, state, seed])\n\n\tuseEffect(() => {\n\t\tif (scrollInterval.current) {\n\t\t\tclearInterval(scrollInterval.current)\n\t\t}\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t\tif (autoScroll) {\n\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\toffset.current -= 8\n\t\t\t\t\tredraw()\n\t\t\t\t}, 100) as any\n\t\t\t}\n\t\t}\n\t}, [version, state, seed, shown, autoScroll])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t<Btn icon={autoScroll ? 'square_fill' : 'square'} label={locale('preview.auto_scroll')} onClick={() => setAutoScroll(!autoScroll)} />\n\t\t\t</BtnMenu>\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { normalNoise } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const NoisePreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [scale, setScale] = useState(2)\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst state = JSON.stringify([data])\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [256, 256]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { offset: offset.current, scale, seed, version }\n\t\t\tnormalNoise(data, img, options)\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 256\n\t\t\toffset.current[1] = offset.current[1] + dy * 256\n\t\t\tredraw()\n\t\t},\n\t}, [version, state, scale, seed])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [version, state, scale, seed, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"256\" height=\"256\"></canvas>\n\t</>\n}\n","import { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnInput, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { getNoiseBlock, noiseSettings } from '../../previews'\nimport { CachedCollections, checkVersion } from '../../services'\nimport { randomSeed } from '../../Utils'\n\nexport const NoiseSettingsPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [biome, setBiome] = useState('minecraft:plains')\n\tconst [biomeScale, setBiomeScale] = useState(0.2)\n\tconst [biomeDepth, setBiomeDepth] = useState(0.1)\n\tconst [autoScroll, setAutoScroll] = useState(false)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst scrollInterval = useRef<number | undefined>(undefined)\n\tconst state = JSON.stringify([data, biomeScale, biomeDepth])\n\n\tconst size = data?.noise?.height ?? 256\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [size, size]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { biome, biomeDepth, biomeScale, offset: offset.current, width: img.width, seed, version }\n\t\t\tawait noiseSettings(data, img, options)\n\t\t},\n\t\tasync onDrag(dx) {\n\t\t\toffset.current += dx * size\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst worldX = Math.floor(x * size - offset.current)\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tconst block = getNoiseBlock(worldX, worldY)\n\t\t\tsetFocused(block ? `Y=${worldY} (${block.getName().path})` : `Y=${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, seed])\n\n\tuseEffect(() => {\n\t\tif (scrollInterval.current) {\n\t\t\tclearInterval(scrollInterval.current)\n\t\t}\n\t\tif (shown) {\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tawait redraw()\n\t\t\t\t\tif (autoScroll) {\n\t\t\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\t\t\toffset.current -= 8\n\t\t\t\t\t\t\tredraw()\n\t\t\t\t\t\t}, 100) as any\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t})()\n\t\t}\n\t}, [version, state, seed, shown, biome, biomeScale, biomeDepth, autoScroll])\n\n\tconst allBiomes = useMemo(() => CachedCollections?.get('worldgen/biome') ?? [], [version])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t{checkVersion(version, undefined, '1.17') ? <>\n\t\t\t\t\t<BtnInput label={locale('preview.scale')} value={`${biomeScale}`} onChange={v => setBiomeScale(Number(v))} />\n\t\t\t\t\t<BtnInput label={locale('preview.depth')} value={`${biomeDepth}`} onChange={v => setBiomeDepth(Number(v))} />\n\t\t\t\t</> :\n\t\t\t\t\t<BtnInput label={locale('preview.biome')} value={biome} onChange={setBiome} dataList={allBiomes} larger />\n\t\t\t\t}\n\t\t\t\t<Btn icon={autoScroll ? 'square_fill' : 'square'} label={locale('preview.auto_scroll')} onClick={() => setAutoScroll(!autoScroll)} />\n\t\t\t</BtnMenu>\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport { useState } from 'preact/hooks'\nimport { useModel } from '../../hooks'\nimport type { VersionId } from '../../services'\nimport { checkVersion } from '../../services'\nimport { BiomeSourcePreview, DecoratorPreview, DensityFunctionPreview, NoisePreview, NoiseSettingsPreview } from '../previews'\n\nexport const HasPreview = ['dimension', 'worldgen/density_function', 'worldgen/noise', 'worldgen/noise_settings', 'worldgen/configured_feature', 'worldgen/placed_feature']\n\ntype PreviewPanelProps = {\n\tmodel: DataModel | undefined,\n\tversion: VersionId,\n\tid: string,\n\tshown: boolean,\n\tonError: (message: string) => unknown,\n}\nexport function PreviewPanel({ model, version, id, shown }: PreviewPanelProps) {\n\tconst [, setCount] = useState(0)\n\n\tuseModel(model, () => {\n\t\tsetCount(count => count + 1)\n\t})\n\n\tif (!model) return <></>\n\n\tif (id === 'dimension' && model.get(new Path(['generator', 'type']))?.endsWith('noise')) {\n\t\tconst data = model.get(new Path(['generator', 'biome_source']))\n\t\tif (data) return <BiomeSourcePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/density_function') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DensityFunctionPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoisePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise_settings') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoiseSettingsPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif ((id === 'worldgen/placed_feature' || (id === 'worldgen/configured_feature' && checkVersion(version, '1.16', '1.17')))) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DecoratorPreview {...{ model, version, shown, data }} />\n\t}\n\n\treturn <></>\n}\n","import type { DataModel, Hook } from '@mcschema/core'\nimport { ModelPath, relativePath } from '@mcschema/core'\nimport type { BlockStateRegistry } from '../services'\n\nexport function getOutput(model: DataModel, blockStates: BlockStateRegistry): any {\n\treturn model.schema.hook(transformOutput, new ModelPath(model), model.data, { blockStates })\n}\n\nexport type OutputProps = {\n\tblockStates: BlockStateRegistry,\n}\nexport const transformOutput: Hook<[any, OutputProps], any> = {\n\tbase({}, _, value) {\n\t\treturn value\n\t},\n\n\tchoice({ switchNode }, path, value, props) {\n\t\treturn switchNode.hook(this, path, value, props)\n\t},\n\n\tlist({ children }, path, value, props) {\n\t\tif (!Array.isArray(value)) return value\n\t\tconst res = value.map((obj, index) =>\n\t\t\tchildren.hook(this, path.push(index), obj.node, props)\n\t\t)\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a as any]\n\t\t}\n\t\treturn res\n\t},\n\n\tmap({ children, config }, path, value, props) {\n\t\tif (value === undefined) return undefined\n\t\tconst blockState = config.validation?.validator === 'block_state_map'? props.blockStates?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst res: any = {}\n\t\tObject.keys(value).forEach(f => {\n\t\t\tif (blockState) {\n\t\t\t\tif (!Object.keys(blockState.properties ?? {}).includes(f)) return\n\t\t\t}\n\t\t\tres[f] = children.hook(this, path.push(f), value[f], props)\n\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n\n\tobject({ getActiveFields }, path, value, props) {\n\t\tif (value === undefined || value === null || typeof value !== 'object') {\n\t\t\treturn value\n\t\t}\n\t\tconst res: any = {}\n\t\tconst activeFields = getActiveFields(path)\n\t\tObject.keys(activeFields)\n\t\t\t.filter(k => activeFields[k].enabled(path))\n\t\t\t.forEach(f => {\n\t\t\t\tconst out = activeFields[f].hook(this, path.push(f), value[f], props)\n\t\t\t\tif (out !== undefined && out !== null) {\n\t\t\t\t\tres[f] = out\n\t\t\t\t}\n\t\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n}\n","import { DataModel } from '@mcschema/core'\nimport yaml from 'js-yaml'\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { getOutput } from '../../schema/transformOutput'\nimport type { BlockStateRegistry } from '../../services'\nimport { Store } from '../../Store'\nimport { message } from '../../Utils'\n\n\nconst INDENT: Record<string, number | string | undefined> = {\n\t'2_spaces': 2,\n\t'4_spaces': 4,\n\ttabs: '\\t',\n\tminified: undefined,\n}\n\nlet commentJson: typeof import('comment-json') | null = null\n\nconst FORMATS: Record<string, {\n\tparse: (v: string) => Promise<any>,\n\tstringify: (v: any, indentation: string | number | undefined) => string,\n}> = {\n\tjson: {\n\t\tparse: async (v) => {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(v)\n\t\t\t} catch (e) {\n\t\t\t\tcommentJson = await import('comment-json')\n\t\t\t\treturn commentJson.parse(v)\n\t\t\t}\n\t\t},\n\t\tstringify: (v, i) => (commentJson ?? JSON).stringify(v, null, i) + '\\n',\n\t},\n\tyaml: {\n\t\tparse: async (v) => yaml.load(v),\n\t\tstringify: (v, i) => yaml.dump(v, {\n\t\t\tflowLevel: i === undefined ? 0 : -1,\n\t\t\tindent: typeof i === 'string' ? 4 : i,\n\t\t}),\n\t},\n}\n\ninterface Editor {\n\tgetValue(): string\n\tsetValue(value: string): void\n\tconfigure(indent: string, format: string): void\n\tselect(): void\n}\n\ntype SourcePanelProps = {\n\tname: string,\n\tmodel: DataModel | undefined,\n\tblockStates: BlockStateRegistry | undefined,\n\tdoCopy?: number,\n\tdoDownload?: number,\n\tdoImport?: number,\n\tcopySuccess: () => unknown,\n\tonError: (message: string | Error) => unknown,\n}\nexport function SourcePanel({ name, model, blockStates, doCopy, doDownload, doImport, copySuccess, onError }: SourcePanelProps) {\n\tconst { locale } = useLocale()\n\tconst [indent, setIndent] = useState(Store.getIndent())\n\tconst [format, setFormat] = useState(Store.getFormat())\n\tconst [highlighting, setHighlighting] = useState(Store.getHighlighting())\n\tconst [braceLoaded, setBraceLoaded] = useState(false)\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst retransform = useRef<Function>(() => {})\n\tconst onImport = useRef<() => Promise<void>>(async () => {})\n\n\tconst textarea = useRef<HTMLTextAreaElement>(null)\n\tconst editor = useRef<Editor>()\n\n\tconst getSerializedOutput = useCallback((model: DataModel, blockStates: BlockStateRegistry) => {\n\t\tconst data = getOutput(model, blockStates)\n\t\treturn FORMATS[format].stringify(data, INDENT[indent])\n\t}, [indent, format])\n\n\tuseEffect(() => {\n\t\tretransform.current = () => {\n\t\t\tif (!editor.current) return\n\t\t\tif (!model || !blockStates) return\n\t\t\ttry {\n\t\t\t\tconst output = getSerializedOutput(model, blockStates)\n\t\t\t\teditor.current.setValue(output)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error getting JSON output: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error getting JSON output: ${message(e)}`)\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t\teditor.current.setValue('')\n\t\t\t}\n\t\t}\n\n\t\tonImport.current = async () => {\n\t\t\tif (!editor.current) return\n\t\t\tconst value = editor.current.getValue()\n\t\t\tif (value.length === 0) return\n\t\t\ttry {\n\t\t\t\tconst data = await FORMATS[format].parse(value)\n\t\t\t\tmodel?.reset(DataModel.wrapLists(data), false)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error importing: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error importing: ${message(e)}`)\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t}\n\t}, [model, blockStates, indent, format, highlighting])\n\n\tuseEffect(() => {\n\t\tif (highlighting) {\n\t\t\tsetBraceLoaded(false)\n\t\t\teditor.current = {\n\t\t\t\tgetValue() { return ''},\n\t\t\t\tsetValue() {},\n\t\t\t\tconfigure() {},\n\t\t\t\tselect() {},\n\t\t\t}\n\t\t\timport('brace').then(async (brace) => {\n\t\t\t\tawait Promise.all([\n\t\t\t\t\timport('brace/mode/json'),\n\t\t\t\t\timport('brace/mode/yaml'),\n\t\t\t\t])\n\t\t\t\tconst braceEditor = brace.edit('editor')\n\t\t\t\tbraceEditor.setOptions({\n\t\t\t\t\tfontSize: 14,\n\t\t\t\t\tshowFoldWidgets: false,\n\t\t\t\t\thighlightSelectedWord: false,\n\t\t\t\t})\n\t\t\t\tbraceEditor.$blockScrolling = Infinity\n\t\t\t\tbraceEditor.on('blur', () => onImport.current())\n\t\t\t\tbraceEditor.getSession().setMode('ace/mode/json')\n\n\t\t\t\teditor.current = {\n\t\t\t\t\tgetValue() {\n\t\t\t\t\t\treturn braceEditor.getSession().getValue()\n\t\t\t\t\t},\n\t\t\t\t\tsetValue(value) {\n\t\t\t\t\t\tbraceEditor.getSession().setValue(value)\n\t\t\t\t\t},\n\t\t\t\t\tconfigure(indent, format) {\n\t\t\t\t\t\tbraceEditor.setOption('useSoftTabs', indent !== 'tabs')\n\t\t\t\t\t\tbraceEditor.setOption('tabSize', indent === 'tabs' ? 4 : INDENT[indent])\n\t\t\t\t\t\tbraceEditor.getSession().setMode(`ace/mode/${format}`)\n\t\t\t\t\t},\n\t\t\t\t\tselect() {\n\t\t\t\t\t\tbraceEditor.selectAll()\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t\tsetBraceLoaded(true)\n\t\t\t})\n\t\t} else {\n\t\t\teditor.current = {\n\t\t\t\tgetValue() {\n\t\t\t\t\tif (!textarea.current) return ''\n\t\t\t\t\treturn textarea.current.value\n\t\t\t\t},\n\t\t\t\tsetValue(value: string) {\n\t\t\t\t\tif (!textarea.current) return\n\t\t\t\t\ttextarea.current.value = value\n\t\t\t\t},\n\t\t\t\tconfigure() {},\n\t\t\t\tselect() {},\n\t\t\t}\n\t\t}\n\t}, [highlighting])\n\n\tuseModel(model, () => {\n\t\tif (!retransform.current) return\n\t\tretransform.current()\n\t})\n\tuseEffect(() => {\n\t\tif (!retransform.current) return\n\t\tif (model) retransform.current()\n\t}, [model])\n\n\tuseEffect(() => {\n\t\tif (!editor.current || !retransform.current) return\n\t\tif (!highlighting || braceLoaded) {\n\t\t\teditor.current.configure(indent, format)\n\t\t\tretransform.current()\n\t\t}\n\t}, [indent, format, highlighting, braceLoaded])\n\n\tuseEffect(() => {\n\t\tif (doCopy && model && blockStates) {\n\t\t\tnavigator.clipboard.writeText(getSerializedOutput(model, blockStates)).then(() => {\n\t\t\t\tcopySuccess()\n\t\t\t})\n\t\t}\n\t}, [doCopy])\n\n\tuseEffect(() => {\n\t\tif (doDownload && model && blockStates && download.current) {\n\t\t\tconst content = encodeURIComponent(getSerializedOutput(model, blockStates))\n\t\t\tdownload.current.setAttribute('href', `data:text/json;charset=utf-8,${content}`)\n\t\t\tdownload.current.setAttribute('download', `${name}.${format}`)\n\t\t\tdownload.current.click()\n\t\t}\n\t}, [doDownload])\n\n\tuseEffect(() => {\n\t\tif (doImport && editor.current) {\n\t\t\teditor.current.setValue('')\n\t\t\teditor.current.select()\n\t\t}\n\t}, [doImport])\n\n\tconst changeIndent = (value: string) => {\n\t\tStore.setIndent(value)\n\t\tsetIndent(value)\n\t}\n\n\tconst changeFormat = (value: string) => {\n\t\tStore.setFormat(value)\n\t\tsetFormat(value)\n\t}\n\n\tconst changeHighlighting = (value: boolean) => {\n\t\tStore.setHighlighting(value)\n\t\tsetHighlighting(value)\n\t}\n\n\treturn <> \n\t\t<div class=\"controls source-controls\">\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('output_settings')} data-cy=\"source-controls\">\n\t\t\t\t{Object.entries(INDENT).map(([key]) =>\n\t\t\t\t\t<Btn label={locale(`indentation.${key}`)} active={indent === key}\n\t\t\t\t\t\tonClick={() => changeIndent(key)}/>\n\t\t\t\t)}\n\t\t\t\t<hr />\n\t\t\t\t{Object.keys(FORMATS).map(key =>\n\t\t\t\t\t<Btn label={locale(`format.${key}`)} active={format === key}\n\t\t\t\t\t\tonClick={() => changeFormat(key)} />)}\n\t\t\t\t<hr />\n\t\t\t\t<Btn icon={highlighting ? 'square_fill' : 'square'} label={locale('highlighting')}\n\t\t\t\t\tonClick={() => changeHighlighting(!highlighting)} />\n\t\t\t</BtnMenu>\n\t\t</div>\n\t\t{highlighting\n\t\t\t? <pre id=\"editor\" class=\"source\"></pre>\n\t\t\t: <textarea ref={textarea} class=\"source\" spellcheck={false} autocorrect=\"off\" onBlur={onImport.current}></textarea>}\n\t\t<a ref={download} style=\"display: none;\"></a>\n\t</>\n}\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as u,useImperativeHandle as o,useMemo as i,useCallback as l,useContext as f,useDebugValue as c}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as a,createElement as s,options as h,toChildArray as p,Fragment as v,render as d,hydrate as m,cloneElement as y,createRef as b,createContext as _}from\"preact\";export{createElement,createContext,createRef,Fragment,Component}from\"preact\";function C(n,t){for(var e in t)n[e]=t[e];return n}function S(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n){this.props=n}function g(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:S(this.props,n)}function r(t){return this.shouldComponentUpdate=e,s(n,t)}return r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new a).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return S(this.props,n)||S(this.state,t)};var w=h.__b;h.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w&&w(n)};var R=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function x(n){function t(t,e){var r=C({},t);return delete r.ref,n(r,(e=t.ref||e)&&(\"object\"!=typeof e||\"current\"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var N=function(n,t){return null==n?null:p(p(n).map(t))},k={map:N,forEach:N,count:function(n){return n?p(n).length:0},only:function(n){var t=p(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:p},A=h.__e;h.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A(n,t,e)};var O=h.unmount;function L(){this.__u=0,this.t=null,this.__b=null}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function D(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,u)}return u.displayName=\"Lazy\",u.__f=!0,u}function F(){this.u=null,this.o=null}h.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),O&&O(n)},(L.prototype=new a).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate()}},f=!0===t.__h;r.__u++||f||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i)},L.prototype.componentWillUnmount=function(){this.t=[]},L.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement(\"div\"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),t.__c.__H=null),null!=(t=C({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P)}this.__b=null}var u=t.__e&&s(v,null,n.fallback);return u&&(u.__h=null),[s(v,null,t.__e?null:n.children),u]};var M=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2]}};function T(n){return this.getChildContext=function(){return n.context},n.children}function j(n){var t=this,e=n.i;t.componentWillUnmount=function(){d(null,t.l),t.l=null,t.i=null},t.i&&t.i!==e&&t.componentWillUnmount(),n.__v?(t.l||(t.i=e,t.l={nodeType:1,parentNode:e,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n)},insertBefore:function(n,e){this.childNodes.push(n),t.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),t.i.removeChild(n)}}),d(s(T,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount()}function I(n,t){return s(j,{__v:n,i:t})}(F.prototype=new a).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),M(t,n,r)):u()};e?e(o):o()}},F.prototype.render=function(n){this.u=null,this.o=new Map;var t=p(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},F.prototype.componentDidUpdate=F.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){M(n,e,t)})};var W=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,P=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,V=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function z(n,t,e){return null==t.__k&&(t.textContent=\"\"),d(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function B(n,t,e){return m(n,t),\"function\"==typeof e&&e(),n?n.__c:null}a.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(n){Object.defineProperty(a.prototype,n,{configurable:!0,get:function(){return this[\"UNSAFE_\"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t})}})});var H=h.event;function Z(){}function Y(){return this.cancelBubble}function $(){return this.defaultPrevented}h.event=function(n){return H&&(n=H(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=$,n.nativeEvent=n};var q,G={configurable:!0,get:function(){return this.class}},J=h.vnode;h.vnode=function(n){var t=n.type,e=n.props,r=e;if(\"string\"==typeof t){for(var u in r={},e){var o=e[u];\"value\"===u&&\"defaultValue\"in e&&null==o||(\"defaultValue\"===u&&\"value\"in e&&null==e.value?u=\"value\":\"download\"===u&&!0===o?o=\"\":/ondoubleclick/i.test(u)?u=\"ondblclick\":/^onchange(textarea|input)/i.test(u+t)&&!V(e.type)?u=\"oninput\":/^on(Ani|Tra|Tou|BeforeInp)/.test(u)?u=u.toLowerCase():P.test(u)?u=u.replace(/[A-Z0-9]/,\"-$&\").toLowerCase():null===o&&(o=void 0),r[u]=o)}\"select\"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=p(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)})),\"select\"==t&&null!=r.defaultValue&&(r.value=p(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value})),n.props=r}t&&e.class!=e.className&&(G.enumerable=\"className\"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,\"className\",G)),n.$$typeof=W,J&&J(n)};var K=h.__r;h.__r=function(n){K&&K(n),q=n.__c};var Q={ReactCurrentDispatcher:{current:{readContext:function(n){return q.__n[n.__c].props.value}}}},X=1,nn=2,tn=3,en=4,rn=5;function un(n,t){return t()}var on=\"object\"==typeof performance&&\"function\"==typeof performance.now?performance.now.bind(performance):function(){return Date.now()},ln=\"16.8.0\";function fn(n){return s.bind(null,n)}function cn(n){return!!n&&n.$$typeof===W}function an(n){return cn(n)?y.apply(null,arguments):n}function sn(n){return!!n.__k&&(d(null,n),!0)}function hn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)},vn=v;export default{useState:n,useReducer:t,useEffect:e,useLayoutEffect:r,useRef:u,useImperativeHandle:o,useMemo:i,useCallback:l,useContext:f,useDebugValue:c,version:\"16.8.0\",Children:k,render:z,hydrate:B,unmountComponentAtNode:sn,createPortal:I,createElement:s,createContext:_,createFactory:fn,cloneElement:an,createRef:b,Fragment:v,isValidElement:cn,findDOMNode:hn,Component:a,PureComponent:E,memo:g,forwardRef:x,unstable_batchedUpdates:pn,StrictMode:v,Suspense:L,SuspenseList:F,lazy:D,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Q};export{ln as version,k as Children,z as render,B as hydrate,sn as unmountComponentAtNode,I as createPortal,fn as createFactory,an as cloneElement,cn as isValidElement,hn as findDOMNode,E as PureComponent,g as memo,x as forwardRef,pn as unstable_batchedUpdates,vn as StrictMode,L as Suspense,F as SuspenseList,D as lazy,Q as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,X as unstable_ImmediatePriority,nn as unstable_UserBlockingPriority,tn as unstable_NormalPriority,en as unstable_LowPriority,rn as unstable_IdlePriority,un as unstable_runWithPriority,on as unstable_now};\n//# sourceMappingURL=compat.module.js.map\n","import type { INode, Path } from '@mcschema/core'\nimport { DataModel } from '@mcschema/core'\n\nexport class ModelWrapper extends DataModel {\n\tconstructor(\n\t\tschema: INode<any>,\n\t\tprivate readonly mapper: (path: Path) => Path,\n\t\tprivate readonly getter: (path: Path) => any,\n\t\tprivate readonly setter: (path: Path, value: any, silent?: boolean) => any,\n\t) {\n\t\tsuper(schema)\n\t}\n\n\tmap(path: Path) {\n\t\treturn this.mapper(path)\n\t}\n\n\tget(path: Path) {\n\t\treturn this.getter(path)\n\t}\n\n\tset(path: Path, value: any, silent?: boolean) {\n\t\treturn this.setter(path, value, silent)\n\t}\n}\n","import type { BooleanHookParams, EnumOption, Hook, INode, NodeChildren, NumberHookParams, StringHookParams, ValidationOption } from '@mcschema/core'\nimport { DataModel, ListNode, MapNode, ModelPath, ObjectNode, Path, relativePath, StringNode } from '@mcschema/core'\nimport type { ComponentChildren, JSX } from 'preact'\nimport { memo } from 'preact/compat'\nimport { useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, Octicon } from '../components'\nimport { localize } from '../contexts'\nimport { useFocus } from '../hooks'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { CachedDecorator, CachedFeature } from '../services'\nimport { deepClone, deepEqual, hexId, isObject, newSeed } from '../Utils'\nimport { ModelWrapper } from './ModelWrapper'\n\nconst selectRegistries = ['loot_table.type', 'loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'recipe.type', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'dimension.generator.biome_source.preset', 'carver.type', 'feature.type', 'decorator.type', 'feature.tree.minimum_size.type', 'block_state_provider.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'int_provider.type', 'float_provider.type', 'height_provider.type', 'structure_feature.type', 'surface_builder.type', 'processor.processor_type', 'rule_test.predicate_type', 'pos_rule_test.predicate_type', 'template_element.element_type', 'block_placer.type', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'structure_placement.type', 'density_function.type', 'root_placer.type', 'entity.type_specific.cat.variant', 'entity.type_specific.frog.variant']\nconst hiddenFields = ['number_provider.type', 'score_provider.type', 'nbt_provider.type', 'int_provider.type', 'float_provider.type', 'height_provider.type']\nconst flattenedFields = ['feature.config', 'decorator.config', 'int_provider.value', 'float_provider.value', 'block_state_provider.simple_state_provider.state', 'block_state_provider.rotated_block_provider.state', 'block_state_provider.weighted_state_provider.entries.entry.data', 'rule_test.block_state', 'structure_feature.config', 'surface_builder.config', 'template_pool.elements.entry.element', 'decorator.block_survives_filter.state', 'material_rule.block.result_state']\nconst inlineFields = ['loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'feature.type', 'decorator.type', 'block_state_provider.type', 'feature.tree.minimum_size.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'block_placer.type', 'rule_test.predicate_type', 'processor.processor_type', 'template_element.element_type', 'nbt_operation.op', 'number_provider.value', 'score_provider.name', 'score_provider.target', 'nbt_provider.source', 'nbt_provider.target', 'generator_biome.biome', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'density_function.type', 'root_placer.type', 'entity.type_specific.type']\nconst nbtFields = ['function.set_nbt.tag', 'advancement.display.icon.nbt', 'text_component_object.nbt', 'entity.nbt', 'block.nbt', 'item.nbt']\nconst fixedLists = ['generator_biome.parameters.temperature', 'generator_biome.parameters.humidity', 'generator_biome.parameters.continentalness', 'generator_biome.parameters.erosion', 'generator_biome.parameters.depth', 'generator_biome.parameters.weirdness', 'feature.end_spike.crystal_beam_target', 'feature.end_gateway.exit', 'decorator.block_filter.offset', 'block_predicate.matching_blocks.offset', 'block_predicate.matching_fluids.offset', 'model_element.from', 'model_element.to', 'model_element.rotation.origin', 'model_element.faces.uv', 'item_transform.rotation', 'item_transform.translation', 'item_transform.scale', 'generator_structure.random_spread.locate_offset']\nconst collapsedFields = ['noise_settings.surface_rule', 'noise_settings.noise.terrain_shaper']\nconst collapsableFields = ['density_function.argument', 'density_function.argument1', 'density_function.argument2', 'density_function.input', 'density_function.when_in_range', 'density_function.when_out_of_range']\n\nconst findGenerator = (id: string) => {\n\treturn config.generators.find(g => g.id === id.replace(/^\\$/, ''))\n}\n\n/**\n * Secondary model used to remember the keys of a map\n */\nconst keysModel = new DataModel(MapNode(\n\tStringNode(),\n\tStringNode()\n), { historyMax: 0 })\n\ntype JSXTriple = [JSX.Element | null, JSX.Element | null, JSX.Element | null]\ntype RenderHook = Hook<[any, string, VersionId, BlockStateRegistry, Record<string, any>], JSXTriple>\n\ntype NodeProps<T> = T & {\n\tnode: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n}\n\nexport function FullNode({ model, lang, version, blockStates }: { model: DataModel, lang: string, version: VersionId, blockStates: BlockStateRegistry }) {\n\tconst path = new ModelPath(model)\n\tconst [prefix, suffix, body] = model.schema.hook(renderHtml, path, deepClone(model.data), lang, version, blockStates, {})\n\treturn suffix?.props?.children.some((c: any) => c) ? <div class={`node ${model.schema.type(path)}-node`} data-category={model.schema.category(path)}>\n\t\t<div class=\"node-header\">{prefix}{suffix}</div>\n\t\t<div class=\"node-body\">{body}</div>\n\t</div> : body\n}\n\nconst renderHtml: RenderHook = {\n\tbase() {\n\t\treturn [null, null, null]\n\t},\n\n\tboolean(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <BooleanSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tchoice({ choices, config, switchNode }, path, value, lang, version, states, ctx) {\n\t\tconst choice = switchNode.activeCase(path, true) as typeof choices[number]\n\t\tconst contextPath = (config?.context) ? new ModelPath(path.getModel(), new Path(path.getArray(), [config.context])) : path\n\t\tconst [prefix, suffix, body] = choice.node.hook(this, contextPath, value, lang, version, states, ctx)\n\t\tif (choices.length === 1) {\n\t\t\treturn [prefix, suffix, body]\n\t\t}\n\t\tconst choiceContextPath = config?.choiceContext ? new Path([], [config.choiceContext]) : config?.context ? new Path([], [config.context]) : path\n\t\tconst set = (type: string) => {\n\t\t\tconst c = choices.find(c => c.type === type) ?? choice\n\t\t\tconst def = c.node.default()\n\t\t\tconst newValue = c.change\n\t\t\t\t? c.change(DataModel.unwrapLists(value))\n\t\t\t\t: config.choiceContext === 'feature' && def?.type === 'minecraft:decorated' ? def.config.feature : def\n\t\t\tpath.model.set(path, DataModel.wrapLists(newValue))\n\t\t}\n\t\tconst inject = <select value={choice.type} onChange={(e) => set((e.target as HTMLSelectElement).value)}>\n\t\t\t{choices.map(c => <option value={c.type}>\n\t\t\t\t{pathLocale(lang, choiceContextPath.contextPush(c.type))}\n\t\t\t</option>)}\n\t\t</select>\n\t\treturn [prefix, <>{inject}{suffix}</>, body]\n\t},\n\n\tlist({ children, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\t\tconst [maxShown, setMaxShown] = useState(50)\n\n\t\tconst context = path.getContext().join('.')\n\t\tif (fixedLists.includes(context)) {\n\t\t\tconst prefix = <>\n\t\t\t\t{[...Array(config.maxLength!)].map((_, i) =>\n\t\t\t\t\t<ErrorPopup lang={lang} path={path.modelPush(i)} />)}\n\t\t\t\t<div class=\"fixed-list\"></div>\n\t\t\t</>\n\t\t\tconst suffix = <>{[...Array(config.maxLength)].map((_, i) => {\n\t\t\t\tconst child = children.hook(this, path.modelPush(i), value?.[i]?.node, lang, version, states, ctx)\n\t\t\t\treturn child[1]\n\t\t\t})}</>\n\t\t\treturn [prefix, suffix, null]\n\t\t}\n\n\t\tconst onAdd = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [{ node, id: hexId() }, ...value])\n\t\t}\n\t\tconst onAddBottom = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [...value, { node, id: hexId() }])\n\t\t}\n\t\tconst suffix = <button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_top')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\tconst body = <>\n\t\t\t{(value && Array.isArray(value)) && value.map(({ node: cValue, id: cId }, index) => {\n\t\t\t\tif (index === maxShown) {\n\t\t\t\t\treturn <div class=\"node node-header\">\n\t\t\t\t\t\t<label>{localize(lang, 'entries_hidden', `${value.length - maxShown}`)}</label>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(Math.min(maxShown + 50, value.length))}>{localize(lang, 'entries_hidden.more', '50')}</button>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(value.length)}>{localize(lang, 'entries_hidden.all')}</button>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tif (index > maxShown) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tconst cPath = path.push(index).contextPush('entry')\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(cId)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(cId)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{pathLocale(lang, cPath, `${index}`)}</label>\n\t\t\t\t\t\t<Collapsed key={cId} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\tconst onMoveUp = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index - 1], v[index]] = [v[index], v[index - 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst onMoveDown = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index + 1], v[index]] = [v[index], v[index + 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst actions: MenuAction[] = [\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'duplicate',\n\t\t\t\t\t\tlabel: 'duplicate',\n\t\t\t\t\t\tonSelect: () => {\n\t\t\t\t\t\t\tconst v = [...path.get()]\n\t\t\t\t\t\t\tv.splice(index, 0, { id: hexId(), node: deepClone(cValue) })\n\t\t\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t\treturn <MemoedTreeNode key={cId} path={cPath} schema={children} value={cValue} {...{lang, version, states, actions}} ctx={{...ctx, index: (index === 0 ? 1 : 0) + (index === value.length - 1 ? 2 : 0)}}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(cId)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t\t{value.length > 1 && <div class=\"node-move\">\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_up')} onClick={onMoveUp} disabled={index === 0}>{Octicon.chevron_up}</button>\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_down')} onClick={onMoveDown} disabled={index === value.length - 1}>{Octicon.chevron_down}</button>\n\t\t\t\t\t</div>}\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t\t{(value && value.length > 0 && value.length <= maxShown) && <div class=\"node node-header\">\n\t\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_bottom')} onClick={onAddBottom}>{Octicon.plus_circle}</button>\n\t\t\t</div>}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tmap({ children, keys, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tconst keyPath = new ModelPath(keysModel, new Path([hashString(path.toString())]))\n\t\tconst onAdd = () => {\n\t\t\tconst key = keyPath.get()\n\t\t\tpath.model.set(path.push(key), DataModel.wrapLists(children.default()))\n\t\t}\n\t\tconst blockState = config.validation?.validator === 'block_state_map' ? states?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst keysSchema = blockState?.properties\n\t\t\t? StringNode(null!, { enum: Object.keys(blockState.properties ?? {}) })\n\t\t\t: keys\n\t\tif (blockState && path.last() === 'Properties') {\n\t\t\tif (typeof value !== 'object') value = {}\n\t\t\tconst properties = Object.entries(blockState.properties ?? {})\n\t\t\t\t.map(([key, values]) => [key, StringNode(null!, { enum: values })])\n\t\t\tObject.entries(blockState.properties ?? {}).forEach(([key, values]) => {\n\t\t\t\tif (typeof value[key] !== 'string') {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.expected_string')\n\t\t\t\t} else if (!values.includes(value[key])) {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.invalid_enum_option', value[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn ObjectNode(Object.fromEntries(properties)).hook(this, path, value, lang, version, states, ctx)\n\t\t}\n\t\tconst suffix = <>\n\t\t\t{keysSchema.hook(this, keyPath, keyPath.get() ?? '', lang, version, states, ctx)[1]}\n\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\t</>\n\t\tconst body = <>\n\t\t\t{typeof value === 'object' && Object.entries(value).map(([key, cValue]) => {\n\n\t\t\t\tconst cPath = path.modelPush(key)\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(key)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(key)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{key}</label>\n\t\t\t\t\t\t<Collapsed key={key} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tconst cSchema = blockState\n\t\t\t\t\t? StringNode(null!, { enum: blockState.properties?.[key] ?? [] })\n\t\t\t\t\t: children\n\t\t\t\tif (blockState?.properties?.[key] && typeof cValue === 'string'\n\t\t\t\t\t&& !blockState.properties?.[key].includes(cValue)) {\n\t\t\t\t\tpath.model.errors.add(cPath, 'error.invalid_enum_option', cValue)\n\t\t\t\t}\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\treturn <MemoedTreeNode key={key} schema={cSchema} path={cPath} value={cValue} {...{lang, version, states, ctx}} label={key}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(key)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tnumber(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <NumberSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tobject({ node, config, getActiveFields, getChildModelPath }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tif (path.getArray().length == 0 && isDecorated(config.context, value)) {\n\t\t\tconst { wrapper, fields } = createDecoratorsWrapper(getActiveFields(path), path, value)\n\t\t\tvalue = wrapper.data\n\t\t\tgetActiveFields = () => fields\n\t\t\tgetChildModelPath = (path, key) => new ModelPath(wrapper, new Path(path.getArray(), ['feature'])).push(key)\n\t\t}\n\n\t\tlet prefix: JSX.Element | null = null\n\t\tlet suffix: JSX.Element | null = null\n\t\tif (node.optional()) {\n\t\t\tif (value === undefined) {\n\t\t\t\tconst onExpand = () => path.set(DataModel.wrapLists(node.default()))\n\t\t\t\tsuffix = <button class=\"collapse closed tooltipped tip-se\" aria-label={localize(lang, 'expand')} onClick={onExpand}>{Octicon.plus_circle}</button>\n\t\t\t} else {\n\t\t\t\tconst onCollapse = () => path.set(undefined)\n\t\t\t\tsuffix = <button class=\"collapse open tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onCollapse}>{Octicon.trashcan}</button>\n\t\t\t}\n\t\t}\n\t\tconst context = path.getContext().join('.')\n\t\tif (collapsableFields.includes(context) || collapsedFields.includes(context)) {\n\t\t\tconst toggled = isToggled('')\n\t\t\tconst expanded = collapsedFields.includes(context) ? toggled : !toggled\n\t\t\tprefix = <>\n\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={localize(lang, expanded ? 'collapse' : 'expand')} onClick={toggled ? collapse('') : expand('')}>{expanded ? Octicon.chevron_down : Octicon.chevron_right}</button>\n\t\t\t</>\n\t\t\tif (!expanded) {\n\t\t\t\treturn [prefix, suffix, null]\n\t\t\t}\n\t\t}\n\n\t\tconst newCtx = (typeof value === 'object' && value !== null && node.default()?.pools)\n\t\t\t? { ...ctx, loot: value?.type } : ctx\n\t\tconst body = <>\n\t\t\t{(typeof value === 'object' && value !== null && !(node.optional() && value === undefined)) &&\n\t\t\t\tObject.entries(getActiveFields(path))\n\t\t\t\t\t.filter(([_, child]) => child.enabled(path))\n\t\t\t\t\t.map(([key, child]) => {\n\t\t\t\t\t\tconst cPath = getChildModelPath(path, key)\n\t\t\t\t\t\tconst context = cPath.getContext().join('.')\n\t\t\t\t\t\tif (hiddenFields.includes(context)) return null\n\t\t\t\t\t\tconst [cPrefix, cSuffix, cBody] = child.hook(this, cPath, value[key], lang, version, states, newCtx)\n\t\t\t\t\t\tconst isFlattened = child.type(cPath) === 'object' && flattenedFields.includes(context)\n\t\t\t\t\t\tconst isInlined = inlineFields.includes(context)\n\t\t\t\t\t\tif (isFlattened || isInlined) {\n\t\t\t\t\t\t\tprefix = <>{prefix}<ErrorPopup lang={lang} path={cPath} /><HelpPopup lang={lang} path={cPath} />{cPrefix}</>\n\t\t\t\t\t\t\tsuffix = <>{suffix}{cSuffix}</>\n\t\t\t\t\t\t\treturn isFlattened ? cBody : null\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn <MemoedTreeNode key={key} schema={child} path={cPath} value={value[key]} {...{lang, version, states, ctx: newCtx}} />\n\t\t\t\t\t})\n\t\t\t}\n\t\t</>\n\t\treturn [prefix, suffix, body]\n\t},\n\n\tstring(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <StringSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n}\n\nfunction Collapsed({ path, value }: { path: ModelPath, value: any, schema: INode<any> }) {\n\tconst context = path.getContext().join('.')\n\tswitch (context) {\n\t\tcase 'loot_table.pools.entry':\n\t\t\treturn <label>{value?.entries?.length ?? 0} entries</label>\n\t\tcase 'function.set_contents.entries.entry':\n\t\tcase 'loot_pool.entries.entry':\n\t\t\treturn <label>{value?.name?.replace(/^minecraft:/, '') ?? value?.type?.replace(/^minecraft:/, '')}</label>\n\t}\n\tfor (const child of Object.values(value ?? {})) {\n\t\tif (typeof child === 'string') {\n\t\t\treturn <label>{child.replace(/^minecraft:/, '')}</label>\n\t\t}\n\t}\n\treturn null\n}\n\nfunction useToggles() {\n\tconst [toggleState, setToggleState] = useState(new Map<string, boolean>())\n\tconst [toggleAll, setToggleAll] = useState<boolean | undefined>(undefined)\n\n\tconst expand = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(true)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, true)))\n\t\t}\n\t}\n\tconst collapse = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(false)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, false)))\n\t\t}\n\t}\n\t\n\tconst isToggled = (key: string) => {\n\t\tif (!(toggleState instanceof Map)) return false\n\t\treturn toggleState.get(key) ?? toggleAll\n\t}\n\n\treturn { expand, collapse, isToggled }\n}\n\nfunction BooleanSuffix({ path, node, value, lang }: NodeProps<BooleanHookParams>) {\n\tconst set = (target: boolean) => {\n\t\tpath.model.set(path, node.optional() && value === target ? undefined : target)\n\t}\n\treturn <>\n\t\t<button class={value === false ? 'selected' : ''} onClick={() => set(false)}>{localize(lang, 'false')}</button>\n\t\t<button class={value === true ? 'selected' : ''} onClick={() => set(true)}>{localize(lang, 'true')}</button>\n\t</>\n}\n\nfunction NumberSuffix({ path, config, integer, value, lang }: NodeProps<NumberHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = integer ? parseInt(value) : parseFloat(value)\n\t\tpath.model.set(path, parsed)\n\t}\n\tconst onColor = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = parseInt(value.slice(1), 16)\n\t\tpath.model.set(path, parsed)\n\t}\n\treturn <>\n\t\t<input type=\"text\" value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}} />\n\t\t{config?.color && <input type=\"color\" value={'#' + (value?.toString(16).padStart(6, '0') ?? '000000')} onChange={onColor} />}\n\t\t{['dimension.generator.seed', 'dimension.generator.biome_source.seed', 'world_settings.seed', 'structure_placement.salt'].includes(path.getContext().join('.')) && <button onClick={() => newSeed(path.model)} class=\"tooltipped tip-se\" aria-label={localize(lang, 'generate_new_seed')}>{Octicon.sync}</button>}\n\t</>\n}\n\nfunction StringSuffix({ path, getValues, config, node, value, lang, version, states }: NodeProps<StringHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tevt.stopPropagation()\n\t\tconst newValue = (evt.target as HTMLSelectElement).value\n\t\tif (newValue === value) return\n\t\tpath.model.set(path, newValue.length === 0 ? undefined : newValue)\n\t}\n\tconst values = getValues()\n\tconst context = path.getContext().join('.')\n\tconst id = !isEnum(config) && config?.validator === 'resource' && typeof config.params.pool === 'string' ? config.params.pool : undefined\n\n\tif (nbtFields.includes(context)) {\n\t\treturn <textarea value={value ?? ''} onBlur={onChange}></textarea>\n\t} else if ((isEnum(config) && !config.additional) || selectRegistries.includes(context)) {\n\t\tlet context = new Path([])\n\t\tif (isEnum(config) && typeof config.enum === 'string') {\n\t\t\tcontext = context.contextPush(config.enum)\n\t\t} else if (id) {\n\t\t\tcontext = context.contextPush(id)\n\t\t} else if (isEnum(config)) {\n\t\t\tcontext = path\n\t\t}\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{node.optional() && <option value=\"\">{localize(lang, 'unset')}</option>}\n\t\t\t{values.map(v => <option value={v}>\n\t\t\t\t{pathLocale(lang, context.contextPush(v.replace(/^minecraft:/, '')))}\n\t\t\t</option>)}\n\t\t</select>\n\t} else if (!isEnum(config) && config?.validator === 'block_state_key') {\n\t\tconst blockState = states?.[relativePath(path, config.params.id).get()]\n\t\tconst values = Object.keys(blockState?.properties ?? {})\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{values.map(v => <option>{v}</option>)}\n\t\t</select>\n\t} else {\n\t\tconst datalistId = hexId()\n\t\tconst gen = id ? findGenerator(id) : undefined\n\t\treturn <>\n\t\t\t<input value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}}\n\t\t\t\tlist={values.length > 0 ? datalistId : ''} />\n\t\t\t{values.length > 0 && <datalist id={datalistId}>\n\t\t\t\t{values.map(v => <option value={v} />)}\n\t\t\t</datalist>}\n\t\t\t{gen && values.includes(value) && value.startsWith('minecraft:') &&\n\t\t\t\t<a href={`/${gen.url}/?version=${version}&preset=${value.replace(/^minecraft:/, '')}`} class=\"tooltipped tip-se\" aria-label={localize(lang, 'follow_reference')}>{Octicon.link_external}</a>}\n\t\t</>\n\t}\n}\n\ntype MenuAction = {\n\tlabel: string,\n\tdescription?: string,\n\ticon: keyof typeof Octicon,\n\tonSelect: () => unknown,\n}\n\ntype TreeNodeProps = {\n\tschema: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n\tcompare?: any,\n\tlabel?: string,\n\tactions?: MenuAction[],\n\tchildren?: ComponentChildren,\n}\nfunction TreeNode({ label, schema, path, value, lang, version, states, ctx, actions, children }: TreeNodeProps) {\n\tconst type = schema.type(path)\n\tconst category = schema.category(path)\n\tconst context = path.getContext().join('.')\n\n\tconst [active, setActive] = useFocus()\n\tconst onContextMenu = (evt: MouseEvent) => {\n\t\tevt.preventDefault()\n\t\tsetActive()\n\t}\n\n\tconst newCtx: Record<string, any> = { ...ctx, depth: (ctx.depth ?? 0) + 1 }\n\tdelete newCtx.index\n\tconst [prefix, suffix, body] = schema.hook(renderHtml, path, value, lang, version, states, newCtx)\n\treturn <div class={`node ${type}-node`} data-category={category}>\n\t\t<div class=\"node-header\" onContextMenu={onContextMenu}>\n\t\t\t<ErrorPopup lang={lang} path={path} />\n\t\t\t<HelpPopup lang={lang} path={path} />\n\t\t\t{children}\n\t\t\t{prefix}\n\t\t\t<label>\n\t\t\t\t{label ?? pathLocale(lang, path, `${path.last()}`)}\n\t\t\t\t{active && <div class=\"node-menu\">\n\t\t\t\t\t{actions?.map(a => <div key={a.label} class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon={a.icon} tooltip={localize(lang, a.label)} tooltipLoc=\"se\" onClick={() => a.onSelect()}/>\n\t\t\t\t\t\t<span>{a.description ?? localize(lang, a.label)}</span>\n\t\t\t\t\t</div>)}\n\t\t\t\t\t<div class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon=\"clippy\" tooltip={localize(lang, 'copy_context')} tooltipLoc=\"se\" onClick={() => navigator.clipboard.writeText(context)} />\n\t\t\t\t\t\t<span>{context}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>}\n\t\t\t</label>\n\t\t\t{suffix}\n\t\t</div>\n\t\t{body && <div class=\"node-body\">{body}</div>}\n\t</div>\n}\n\nconst MemoedTreeNode = memo(TreeNode, (prev, next) => {\n\treturn prev.schema === next.schema\n\t\t&& prev.lang === next.lang\n\t\t&& prev.path.equals(next.path)\n\t\t&& deepEqual(prev.ctx, next.ctx)\n\t\t&& deepEqual(prev.value, next.value)\n})\n\nfunction isEnum(value?: ValidationOption | EnumOption): value is EnumOption {\n\treturn !!(value as any)?.enum\n}\n\nfunction hashString(str: string) {\n\tvar hash = 0, i, chr\n\tfor (i = 0; i < str.length; i++) {\n\t\tchr = str.charCodeAt(i)\n\t\thash = ((hash << 5) - hash) + chr\n\t\thash |= 0\n\t}\n\treturn hash\n}\n\nfunction pathLocale(lang: string, path: Path, ...params: string[]) {\n\tconst ctx = path.getContext()\n\tfor (let i = 0; i < ctx.length; i += 1) {\n\t\tconst key = ctx.slice(i).join('.')\n\t\tconst result = localize(lang, key, ...params)\n\t\tif (key !== result) {\n\t\t\treturn result\n\t\t}\n\t}\n\treturn ctx[ctx.length - 1]\n}\n\nfunction ErrorPopup({ lang, path, nested }: { lang: string, path: ModelPath, nested?: boolean }) {\n\tif (path.model instanceof ModelWrapper) {\n\t\tpath = path.model.map(path).withModel(path.model)\n\t}\n\tconst e = nested\n\t\t?\tpath.model.errors.getAll().filter(e => e.path.startsWith(path))\n\t\t: path.model.errors.get(path, true)\n\tif (e.length === 0) return null\n\tconst message = localize(lang, e[0].error, ...(e[0].params ?? []))\n\treturn popupIcon('node-error', 'issue_opened', message)\n}\n\nfunction HelpPopup({ lang, path }: { lang: string, path: Path }) {\n\tconst key = path.contextPush('help').getContext().join('.')\n\tconst message = localize(lang, key)\n\tif (message === key) return null\n\treturn popupIcon('node-help', 'info', message)\n}\n\nconst popupIcon = (type: string, icon: keyof typeof Octicon, popup: string) => {\n\tconst [active, setActive] = useFocus()\n\n\treturn <div class={`node-icon ${type}${active ? ' show' : ''}`} onClick={setActive}>\n\t\t{Octicon[icon]}\n\t\t<span class=\"icon-popup\">{popup}</span>\n\t</div>\n}\n\nfunction isDecorated(context: string | undefined, value: any) {\n\treturn context === 'feature'\n\t\t&& value?.type?.replace(/^minecraft:/, '') === 'decorated'\n\t\t&& isObject(value?.config)\n}\n\nfunction createDecoratorsWrapper(originalFields: NodeChildren, path: ModelPath, value: any) {\n\tconst decorators: any[] = []\n\tconst feature = iterateNestedDecorators(value, decorators)\n\tconst fields = {\n\t\ttype: originalFields.type,\n\t\tconfig: ObjectNode({\n\t\t\tdecorators: ListNode(CachedDecorator),\n\t\t\tfeature: CachedFeature,\n\t\t}, { context: 'feature.decorated' }),\n\t}\n\tconst schema = ObjectNode(fields, { context: 'feature' })\n\tconst featurePath = new Path(['config', 'feature'])\n\tconst decoratorsPath = new Path(['config', 'decorators'])\n\tconst model = path.getModel()\n\tconst wrapper: ModelWrapper = new ModelWrapper(schema, path => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\treturn new Path([...[...Array(decorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\treturn new Path([])\n\t\t\t}\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (typeof index === 'number') {\n\t\t\t\treturn new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t}\n\t\t}\n\t\treturn path\n\t}, path => {\n\t\tif (path.equals(decoratorsPath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\treturn newDecorators\n\t\t}\n\t\treturn model.get(wrapper.map(path))\n\t}, (path, value, silent) => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\tconst newPath =new Path([...[...Array(newDecorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t\treturn model.set(newPath, value, silent)\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\treturn model.set(new Path(), produceNestedDecorators(feature, value), silent)\n\t\t\t} else if (typeof index === 'number') {\n\t\t\t\tif (path.modelArr.length === 3 && value === undefined) {\n\t\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\t\tconst newDecorators: any[] = []\n\t\t\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\t\t\tnewDecorators.splice(index, 1)\n\t\t\t\t\tconst newValue = produceNestedDecorators(feature, newDecorators)\n\t\t\t\t\treturn model.set(new Path(), newValue, silent)\n\t\t\t\t} else {\n\t\t\t\t\tconst newPath = new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t\t\treturn model.set(newPath, value, silent)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tmodel.set(path, value, silent)\n\t})\n\twrapper.data = {\n\t\ttype: model.data.type,\n\t\tconfig: {\n\t\t\tdecorators,\n\t\t\tfeature,\n\t\t},\n\t}\n\twrapper.errors = model.errors\n\treturn { fields, wrapper }\n}\n\nfunction iterateNestedDecorators(value: any, decorators: any[]): any {\n\tif (value?.type?.replace(/^minecraft:/, '') !== 'decorated') {\n\t\treturn value\n\t}\n\tif (!isObject(value?.config)) {\n\t\treturn value\n\t}\n\tdecorators.push({ id: decorators.length, node: value.config.decorator })\n\treturn iterateNestedDecorators(value.config.feature ?? '', decorators)\n}\n\nfunction produceNestedDecorators(feature: any, decorators: any[]): any {\n\tif (decorators.length === 0) return feature\n\treturn {\n\t\ttype: 'minecraft:decorated',\n\t\tconfig: {\n\t\t\tdecorator: decorators.shift().node,\n\t\t\tfeature: produceNestedDecorators(feature, decorators),\n\t\t},\n\t}\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useErrorBoundary, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { FullNode } from '../../schema/renderHtml'\nimport type { BlockStateRegistry, VersionId } from '../../services'\n\ntype TreePanelProps = {\n\tversion: VersionId,\n\tmodel: DataModel | undefined,\n\tblockStates: BlockStateRegistry | undefined,\n\tonError: (message: string) => unknown,\n}\nexport function Tree({ version, model, blockStates, onError }: TreePanelProps) {\n\tconst { lang } = useLocale()\n\tif (!model || !blockStates || lang === 'none') return <></>\n\n\tconst [error] = useErrorBoundary(e => {\n\t\tonError(`Error rendering the tree: ${e.message}`)\n\t\tconsole.error(e)\n\t})\n\tif (error) return <></>\n\n\tconst [, setState] = useState(0)\n\tuseModel(model, () => {\n\t\tsetState(state => state + 1)\n\t})\n\n\treturn <div class=\"tree\" data-cy=\"tree\">\n\t\t<FullNode {...{model, lang, version, blockStates}}/>\n\t</div>\n}\n","var e=Object.defineProperty,t=Object.defineProperties,s=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,i=(t,s,r)=>s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[s]=r,c=(e,t)=>{for(var s in t||(t={}))n.call(t,s)&&i(e,s,t[s]);if(r)for(var s of r(t))o.call(t,s)&&i(e,s,t[s]);return e};import a,{useState as l,useEffect as u,useRef as m}from\"react\";const g=\"Please consider reporting this error at https://github.com/laymonage/giscus/issues/new.\";function d(e){return`[giscus] An error occurred. Error message: \"${e}\".`}function p(e){const t=document.querySelector(`meta[property='og:${e}'],meta[name='${e}']`);return t?t.content:\"\"}function f(){const e=document.getElementById(\"giscus-css\")||document.createElement(\"style\");e.id=\"giscus-css\",e.textContent=\"\\n .giscus, .giscus-frame {\\n width: 100%;\\n }\\n .giscus-frame {\\n border: none;\\n color-scheme: normal;\\n }\\n \",document.head.prepend(e)}function h(e){const[r,n]=l(\"\"),o=function({repo:e,repoId:t,category:s=\"\",categoryId:r=\"\",mapping:n,term:o=\"\",theme:i=\"light\",reactionsEnabled:c=\"1\",emitMetadata:a=\"0\",inputPosition:l=\"bottom\",lang:u=\"en\",session:m,origin:g}){const d=new URL(location.href);d.searchParams.delete(\"giscus\");const f=d.toString(),h={origin:g=g||f,session:m,theme:i,reactionsEnabled:c,emitMetadata:a,inputPosition:l,repo:e,repoId:t,category:s,categoryId:r,description:p(\"description\")};switch(n){case\"url\":h.term=f;break;case\"title\":h.term=document.title;break;case\"og:title\":h.term=p(\"title\");break;case\"specific\":h.term=o;break;case\"number\":h.number=o;break;case\"pathname\":default:h.term=location.pathname.length<2?\"index\":location.pathname.substring(1).replace(/\\.\\w+$/,\"\")}return`https://giscus.app/${u}/widget?${new URLSearchParams(h)}`}((i=c({},e),t(i,s({session:r}))));var i;const h=m(null);return u((()=>{const e=location.href,t=new URL(e),s=localStorage.getItem(\"giscus-session\"),r=t.searchParams.get(\"giscus\")||\"\";if(r)return localStorage.setItem(\"giscus-session\",JSON.stringify(r)),n(r),t.searchParams.delete(\"giscus\"),void history.replaceState(void 0,document.title,t.toString());if(s)try{n(JSON.parse(s||\"\")||\"\")}catch(o){n(\"\"),localStorage.removeItem(\"giscus-session\"),console.warn(`${d(null==o?void 0:o.message)} Session has been cleared.`)}}),[]),u(f,[]),u((()=>{const e=function(e,t=null){return function(s){if(\"https://giscus.app\"!==s.origin)return;const{data:r}=s;if(\"object\"!=typeof r||!r.giscus)return;if(t&&r.giscus.resizeHeight&&(t.style.height=`${r.giscus.resizeHeight}px`),!r.giscus.error)return;const n=r.giscus.error;if(n.includes(\"Bad credentials\")||n.includes(\"Invalid state value\")){if(null!==localStorage.getItem(\"giscus-session\"))return localStorage.removeItem(\"giscus-session\"),e(),void console.warn(`${d(n)} Session has been cleared.`);console.error(`${d(n)} No session is stored initially. ${g}`)}n.includes(\"Discussion not found\")?console.warn(`[giscus] ${n}. A new discussion will be created if a comment/reaction is submitted.`):console.error(`${d(n)} ${g}`)}}((()=>n(\"\")),h.current);return window.addEventListener(\"message\",e),()=>window.removeEventListener(\"message\",e)}),[]),a.createElement(\"div\",{className:\"giscus\"},a.createElement(\"iframe\",{className:\"giscus-frame\",title:\"Comments\",scrolling:\"no\",src:o,ref:h}))}function b(e){const[t,s]=l(!1);return u((()=>s(!0)),[]),t?a.createElement(h,c({},e)):null}export{b as Giscus};\n","import { Giscus as GiscusReact } from '@giscus/react'\nimport { useTheme } from '../contexts'\n\ninterface Props {\n\tterm?: string,\n}\nexport function Giscus({ term }: Props) {\n\tconst { actualTheme } = useTheme()\n\tconst themeSuffix = actualTheme === 'light' ? '-burn' : ''\n\tconst themeUrl = (import.meta as any).env.DEV\n\t\t? `http://localhost:3000/src/styles/giscus${themeSuffix}.css`\n\t\t: `${location.protocol}//${location.host}/assets/giscus${themeSuffix}.css`\n\n\treturn <div class=\"giscus-container\">\n\t\t<GiscusReact\n\t\t\trepo=\"misode/misode.github.io\"\n\t\t\trepoId=\"MDEwOlJlcG9zaXRvcnkxOTIyNTQyMzA=\"\n\t\t\tcategory=\"Site\"\n\t\t\tcategoryId=\"DIC_kwDOC3WRFs4COB8r\"\n\t\t\tmapping={term ? 'specific' : 'pathname'}\n\t\t\tterm={term}\n\t\t\treactionsEnabled=\"1\"\n\t\t\temitMetadata=\"0\"\n\t\t\tinputPosition=\"top\"\n\t\t\ttheme={themeUrl}\n\t\t\tlang=\"en\" />\n\t</div>\n}\n","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2022, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction getDefaults() {\n return {\n baseUrl: null,\n breaks: false,\n extensions: null,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n tokenizer: null,\n walkTokens: null,\n xhtml: false\n };\n}\n\nlet defaults = getDefaults();\n\nfunction changeDefaults(newDefaults) {\n defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = /[&<>\"']/g;\nconst escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\nconst escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\nconst escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n}\n\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\n\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: () => {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n}\n\nconst nonWordAndColonTest = /[^\\w:]/g;\nconst originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\nfunction cleanUrl(sanitize, base, href) {\n if (sanitize) {\n let prot;\n try {\n prot = decodeURIComponent(unescape(href))\n .replace(nonWordAndColonTest, '')\n .toLowerCase();\n } catch (e) {\n return null;\n }\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\n\nconst baseUrls = {};\nconst justDomain = /^[^:]+:\\/*[^/]*$/;\nconst protocol = /^([^:]+:)[\\s\\S]*$/;\nconst domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n base = baseUrls[' ' + base];\n const relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n}\n\nconst noopTest = { exec: function noopTest() {} };\n\nfunction merge(obj) {\n let i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false,\n curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n let i = 0;\n\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) { cells.shift(); }\n if (!cells[cells.length - 1].trim()) { cells.pop(); }\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n\n// Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n// /c*$/ is vulnerable to REDOS.\n// invert: Remove suffix of non-c chars instead. Default falsey.\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, l - suffLen);\n}\n\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n const l = str.length;\n let level = 0,\n i = 0;\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction checkSanitizeDeprecation(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n}\n\n// copied from https://stackoverflow.com/a/5450113/806777\nfunction repeatString(pattern, count) {\n if (count < 1) {\n return '';\n }\n let result = '';\n while (count > 1) {\n if (count & 1) {\n result += pattern;\n }\n count >>= 1;\n pattern += pattern;\n }\n return result + pattern;\n}\n\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text, [])\n };\n lexer.state.inLink = false;\n return token;\n } else {\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape(text)\n };\n }\n}\n\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n const indentToCode = matchIndentToCode[1];\n\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n\n const [indentInNode] = matchIndentInNode;\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n })\n .join('\\n');\n}\n\n/**\n * Tokenizer\n */\nclass Tokenizer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n }\n\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text\n };\n }\n }\n\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim() : cap[2],\n text\n };\n }\n }\n\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n const token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text: text,\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ *> ?/gm, '');\n\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens: this.lexer.blockTokens(text, []),\n text\n };\n }\n }\n\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let raw, istask, ischecked, indent, i, blankLine, endsWithBlankLine,\n line, nextLine, rawLine, itemContents, endEarly;\n\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?: [^\\\\n]*)?(?:\\\\n|$))`);\n\n // Check if current bullet point can start a new List Item\n while (src) {\n endEarly = false;\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n\n raw = cap[0];\n src = src.substring(raw.length);\n\n line = cap[2].split('\\n', 1)[0];\n nextLine = src.split('\\n', 1)[0];\n\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimLeft();\n } else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n\n blankLine = false;\n\n if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])`);\n\n // Check if following lines should be included in List Item\n while (src) {\n rawLine = src.split('\\n', 1)[0];\n line = rawLine;\n\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n line = line.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n\n // End list item if found start of new bullet\n if (nextBulletRegex.test(line)) {\n break;\n }\n\n if (line.search(/[^ ]/) >= indent || !line.trim()) { // Dedent if possible\n itemContents += '\\n' + line.slice(indent);\n } else if (!blankLine) { // Until blank line, item doesn't need indentation\n itemContents += '\\n' + line;\n } else { // Otherwise, improper indentation ends this item\n break;\n }\n\n if (!blankLine && !line.trim()) { // Check if current line is blank\n blankLine = true;\n }\n\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n }\n }\n\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw: raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents\n });\n\n list.raw += raw;\n }\n\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = raw.trimRight();\n list.items[list.items.length - 1].text = itemContents.trimRight();\n list.raw = list.raw.trimRight();\n\n const l = list.items.length;\n\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (i = 0; i < l; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.every(t => {\n const chars = t.raw.split('');\n let lineBreaks = 0;\n for (const char of chars) {\n if (char === '\\n') {\n lineBreaks += 1;\n }\n if (lineBreaks > 1) {\n return true;\n }\n }\n\n return false;\n });\n\n if (!list.loose && spacers.length && hasMultipleLineBreaks) {\n // Having a single line break doesn't mean a list is loose. A single line break is terminating the last list item\n list.loose = true;\n list.items[i].loose = true;\n }\n }\n\n return list;\n }\n }\n\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n raw: cap[0],\n pre: !this.options.sanitizer\n && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: cap[0]\n };\n if (this.options.sanitize) {\n token.type = 'paragraph';\n token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]);\n token.tokens = [];\n this.lexer.inline(token.text, token.tokens);\n }\n return token;\n }\n }\n\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href: cap[2],\n title: cap[3]\n };\n }\n }\n\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (cap) {\n const item = {\n type: 'table',\n header: splitCells(cap[1]).map(c => { return { text: c }; }),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n rows: cap[3] ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n item.raw = cap[0];\n\n let l = item.align.length;\n let i, j, k, row;\n for (i = 0; i < l; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n l = item.rows.length;\n for (i = 0; i < l; i++) {\n item.rows[i] = splitCells(item.rows[i], item.header.length).map(c => { return { text: c }; });\n }\n\n // parse child tokens inside headers and cells\n\n // header child tokens\n l = item.header.length;\n for (j = 0; j < l; j++) {\n item.header[j].tokens = [];\n this.lexer.inlineTokens(item.header[j].text, item.header[j].tokens);\n }\n\n // cell child tokens\n l = item.rows.length;\n for (j = 0; j < l; j++) {\n row = item.rows[j];\n for (k = 0; k < row.length; k++) {\n row[k].tokens = [];\n this.lexer.inlineTokens(row[k].text, row[k].tokens);\n }\n }\n\n return item;\n }\n }\n }\n\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n const token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const token = {\n type: 'paragraph',\n raw: cap[0],\n text: cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n const token = {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape(cap[1])\n };\n }\n }\n\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^<a /i.test(cap[0])) {\n this.lexer.state.inLink = true;\n } else if (this.lexer.state.inLink && /^<\\/a>/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n\n return {\n type: this.options.sanitize\n ? 'text'\n : 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n text: this.options.sanitize\n ? (this.options.sanitizer\n ? this.options.sanitizer(cap[0])\n : escape(cap[0]))\n : cap[0]\n };\n }\n }\n\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^</.test(trimmedUrl)) {\n // commonmark requires matching angle brackets\n if (!(/>$/.test(trimmedUrl))) {\n return;\n }\n\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n if (/^</.test(href)) {\n if (this.options.pedantic && !(/>$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n let link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = links[link.toLowerCase()];\n if (!link || !link.href) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrong.lDelim.exec(src);\n if (!match) return;\n\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u)) return;\n\n const nextChar = match[1] || match[2] || '';\n\n if (!nextChar || (nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar)))) {\n const lLength = match[0].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n endReg.lastIndex = 0;\n\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = rDelim.length;\n\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = src.slice(1, lLength + match.index + rLength);\n return {\n type: 'em',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = src.slice(2, lLength + match.index + rLength - 1);\n return {\n type: 'strong',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n }\n }\n\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text\n };\n }\n }\n\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2], [])\n };\n }\n }\n\n autolink(src, mangle) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[1]) : cap[1]);\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n url(src, mangle) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[0]) : cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n inlineText(src, smartypants) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0];\n } else {\n text = escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text\n };\n }\n }\n}\n\n/**\n * Block-Level Grammar\n */\nconst block = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3}bull)( [^\\n]+?)?(?:\\n|$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *(?:\\n *)?<?([^\\s>]+)>?(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/,\n table: noopTest,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock._label = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\n\nblock.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nblock.listItemStart = edit(/^( *)(bull) */)\n .replace('bull', block.bullet)\n .getRegex();\n\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\n\nblock._tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nblock._comment = /<!--(?!-?>)[\\s\\S]*?(?:-->|$)/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n});\n\nblock.gfm.table = edit(block.gfm.table)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.gfm.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Inline-Level Grammar\n */\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,\n punctuation: /^([\\spunctuation])/\n};\n\n// list of punctuation marks from CommonMark spec\n// without * and _ to handle the different emphasis markers * and _\ninline._punctuation = '!\"#$%&\\'()+\\\\-.,/:;<=>?@\\\\[\\\\]`^{|}~';\ninline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, <html>\ninline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\ninline.escapedEmSt = /\\\\\\*|\\\\_/g;\n\ninline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n\ninline.emStrong.lDelim = edit(inline.emStrong.lDelim)\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', inline._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .replace('ref', block._label)\n .getRegex();\n\ninline.nolink = edit(inline.nolink)\n .replace('ref', block._label)\n .getRegex();\n\ninline.reflinkSearch = edit(inline.reflinkSearch, 'g')\n .replace('reflink', inline.reflink)\n .replace('nolink', inline.nolink)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n});\n\ninline.gfm.url = edit(inline.gfm.url, 'i')\n .replace('email', inline.gfm._extended_email)\n .getRegex();\n/**\n * GFM + Line Breaks Inline Grammar\n */\n\ninline.breaks = merge({}, inline.gfm, {\n br: edit(inline.br).replace('{2,}', '*').getRegex(),\n text: edit(inline.gfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex()\n});\n\n/**\n * smartypants text replacement\n */\nfunction smartypants(text) {\n return text\n // em-dashes\n .replace(/---/g, '\\u2014')\n // en-dashes\n .replace(/--/g, '\\u2013')\n // opening singles\n .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, '$1\\u2018')\n // closing singles & apostrophes\n .replace(/'/g, '\\u2019')\n // opening doubles\n .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, '$1\\u201c')\n // closing doubles\n .replace(/\"/g, '\\u201d')\n // ellipses\n .replace(/\\.{3}/g, '\\u2026');\n}\n\n/**\n * mangle email addresses\n */\nfunction mangle(text) {\n let out = '',\n i,\n ch;\n\n const l = text.length;\n for (i = 0; i < l; i++) {\n ch = text.charCodeAt(i);\n if (Math.random() > 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n}\n\n/**\n * Block Lexer\n */\nclass Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ');\n\n this.blockTokens(src, this.tokens);\n\n let next;\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/^ +$/gm, '');\n }\n let token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src, tokens) {\n this.inlineQueue.push({ src, tokens });\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out escaped em & strong delimiters\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass Renderer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n code = code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '<pre><code>'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n }\n\n return '<pre><code class=\"'\n + this.options.langPrefix\n + escape(lang, true)\n + '\">'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n }\n\n blockquote(quote) {\n return '<blockquote>\\n' + quote + '</blockquote>\\n';\n }\n\n html(html) {\n return html;\n }\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return '<h'\n + level\n + ' id=\"'\n + this.options.headerPrefix\n + slugger.slug(raw)\n + '\">'\n + text\n + '</h'\n + level\n + '>\\n';\n }\n // ignore IDs\n return '<h' + level + '>' + text + '</h' + level + '>\\n';\n }\n\n hr() {\n return this.options.xhtml ? '<hr/>\\n' : '<hr>\\n';\n }\n\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '</' + type + '>\\n';\n }\n\n listitem(text) {\n return '<li>' + text + '</li>\\n';\n }\n\n checkbox(checked) {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\"'\n + (this.options.xhtml ? ' /' : '')\n + '> ';\n }\n\n paragraph(text) {\n return '<p>' + text + '</p>\\n';\n }\n\n table(header, body) {\n if (body) body = '<tbody>' + body + '</tbody>';\n\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n';\n }\n\n tablerow(content) {\n return '<tr>\\n' + content + '</tr>\\n';\n }\n\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '</' + type + '>\\n';\n }\n\n // span level renderer\n strong(text) {\n return '<strong>' + text + '</strong>';\n }\n\n em(text) {\n return '<em>' + text + '</em>';\n }\n\n codespan(text) {\n return '<code>' + text + '</code>';\n }\n\n br() {\n return this.options.xhtml ? '<br/>' : '<br>';\n }\n\n del(text) {\n return '<del>' + text + '</del>';\n }\n\n link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n let out = '<a href=\"' + escape(href) + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += '>' + text + '</a>';\n return out;\n }\n\n image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n let out = '<img src=\"' + href + '\" alt=\"' + text + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += this.options.xhtml ? '/>' : '>';\n return out;\n }\n\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n html(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n}\n\n/**\n * Slugger generates header id\n */\nclass Slugger {\n constructor() {\n this.seen = {};\n }\n\n serialize(value) {\n return value\n .toLowerCase()\n .trim()\n // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '')\n // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n }\n\n /**\n * Finds the next safe (unique) slug to use\n */\n getNextSafeSlug(originalSlug, isDryRun) {\n let slug = originalSlug;\n let occurenceAccumulator = 0;\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n return slug;\n }\n\n /**\n * Convert string to unique id\n * @param {object} options\n * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n */\n slug(value, options = {}) {\n const slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass Parser {\n constructor(options) {\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n out += this.renderer.heading(\n this.parseInline(token.tokens),\n token.depth,\n unescape(this.parseInline(token.tokens, this.textRenderer)),\n this.slugger);\n continue;\n }\n case 'code': {\n out += this.renderer.code(token.text,\n token.lang,\n token.escaped);\n continue;\n }\n case 'table': {\n header = '';\n\n // header\n cell = '';\n l2 = token.header.length;\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(\n this.parseInline(token.header[j].tokens),\n { header: true, align: token.align[j] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n body = '';\n l2 = token.rows.length;\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n\n cell = '';\n l3 = row.length;\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(\n this.parseInline(row[k].tokens),\n { header: false, align: token.align[k] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n\n body = '';\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n\n itemBody = '';\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n case 'text': {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '',\n i,\n token,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token.text);\n break;\n }\n case 'html': {\n out += renderer.html(token.text);\n break;\n }\n case 'link': {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n case 'image': {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n case 'strong': {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'em': {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'text': {\n out += renderer.text(token.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\n/**\n * Marked\n */\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n const highlight = opt.highlight;\n let tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n const done = function(err) {\n let out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!tokens.length) return done();\n\n let pending = 0;\n marked.walkTokens(tokens, function(token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(() => {\n highlight(token.text, token.lang, function(err, code) {\n if (err) {\n return done(err);\n }\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n const tokens = Lexer.lex(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parse(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\n\nmarked.defaults = defaults;\n\n/**\n * Use Extension\n */\n\nmarked.use = function(...args) {\n const opts = merge({}, ...args);\n const extensions = marked.defaults.extensions || { renderers: {}, childTokens: {} };\n let hasExtensions;\n\n args.forEach((pack) => {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if (ext.renderer) { // Renderer extensions\n const prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (ext.tokenizer) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = marked.defaults.renderer || new Renderer();\n for (const prop in pack.renderer) {\n const prevRenderer = renderer[prop];\n // Replace renderer with func to run extension, but fall back if false\n renderer[prop] = (...args) => {\n let ret = pack.renderer[prop].apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = marked.defaults.tokenizer || new Tokenizer();\n for (const prop in pack.tokenizer) {\n const prevTokenizer = tokenizer[prop];\n // Replace tokenizer with func to run extension, but fall back if false\n tokenizer[prop] = (...args) => {\n let ret = pack.tokenizer[prop].apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = marked.defaults.walkTokens;\n opts.walkTokens = function(token) {\n pack.walkTokens.call(this, token);\n if (walkTokens) {\n walkTokens.call(this, token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n};\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens, callback) {\n for (const token of tokens) {\n callback.call(marked, token);\n switch (token.type) {\n case 'table': {\n for (const cell of token.header) {\n marked.walkTokens(cell.tokens, callback);\n }\n for (const row of token.rows) {\n for (const cell of row) {\n marked.walkTokens(cell.tokens, callback);\n }\n }\n break;\n }\n case 'list': {\n marked.walkTokens(token.items, callback);\n break;\n }\n default: {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) { // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function(childTokens) {\n marked.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n }\n};\n\n/**\n * Parse Inline\n */\nmarked.parseInline = function(src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n const tokens = Lexer.lexInline(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\n }\n throw e;\n }\n};\n\n/**\n * Expose\n */\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\nmarked.Tokenizer = Tokenizer;\nmarked.Slugger = Slugger;\nmarked.parse = marked;\n\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = Parser.parse;\nconst lexer = Lexer.lex;\n\nexport { Lexer, Parser, Renderer, Slugger, TextRenderer, Tokenizer, defaults, getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n","import { marked } from 'marked'\nimport { ChangelogTag } from '.'\nimport type { Change } from '../../services'\n\ntype Props = {\n\tchange: Change,\n\tactiveTags?: string[],\n\ttoggleTag?: (tag: string) => unknown,\n}\nexport function ChangelogEntry({ change, activeTags, toggleTag }: Props) {\n\treturn <div class=\"changelog-entry\">\n\t\t<div class=\"changelog-version\">\n\t\t\t<a href={`/versions/?id=${change.version}`}>{change.version}</a>\n\t\t\t<a href={`/versions/?id=${change.group}`}>{change.group}</a>\n\t\t</div>\n\t\t<div class=\"changelog-tags\">\n\t\t\t{change.tags.map(tag => <ChangelogTag label={tag} onClick={toggleTag ? () => toggleTag(tag) : undefined} active={activeTags?.includes(tag)} />)}\n\t\t</div>\n\t\t<div class=\"changelog-content\" dangerouslySetInnerHTML={{ __html: marked(change.content) }} />\n\t</div>\n}\n","import { Octicon } from '..'\nimport { hashString } from '../../Utils'\n\ntype TagProps = {\n\tlabel: string,\n\tactive?: boolean,\n\tonClick?: (e: MouseEvent) => unknown,\n}\nexport function ChangelogTag({ label, active, onClick }: TagProps) {\n\tconst color = label === 'breaking' ? 5 : hashString(label) % 360\n\treturn <div class={`changelog-tag${active ? ' active' : ''}${onClick ? ' clickable' : ''}`} style={`--tint: ${color}`} onClick={onClick}>\n\t\t{label === 'breaking' && Octicon.alert}\n\t\t{label}\n\t</div>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Btn, TextInput } from '..'\nimport { useLocale } from '../../contexts'\nimport type { Change } from '../../services'\nimport { ChangelogEntry } from './ChangelogEntry'\nimport { ChangelogTag } from './ChangelogTag'\n\ninterface Props {\n\tchanges: Change[] | undefined,\n\tdefaultOrder: 'asc' | 'desc',\n}\nexport function ChangelogList({ changes, defaultOrder }: Props) {\n\tconst { locale } = useLocale()\n\t\n\tconst [search, setSearch] = useState('')\n\tconst [tags, setTags] = useState<string[]>([])\n\tconst toggleTag = (tag: string) => {\n\t\tif (!tags.includes(tag)) {\n\t\t\tsetTags([...tags, tag])\n\t\t} else {\n\t\t\tsetTags(tags.filter(t => t !== tag))\n\t\t}\n\t}\n\n\tconst filteredChangelogs = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\tif (query.length === 0 && tags.length === 0) return changes\n\t\treturn changes?.filter(change => {\n\t\t\tif (!tags.every(tag => change.tags.includes(tag))) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst content = change.tags.join(' ') + ' ' + change.content.toLowerCase()\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [changes, search, tags])\n\n\tconst [sort, setSort] = useState(defaultOrder === 'desc')\n\n\tconst sortedChangelogs = useMemo(() => {\n\t\treturn filteredChangelogs?.sort((a, b) => sort ? b.order - a.order : a.order - b.order)\n\t}, [filteredChangelogs, sort])\n\n\treturn <>\n\t\t<div class=\"changelog-query\">\n\t\t\t<TextInput class=\"btn btn-input changelog-search\" list=\"sound-list\" placeholder={locale('changelog.search')}\n\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t<Btn icon={sort ? 'sort_desc' : 'sort_asc'} label={sort ? 'Newest first' : 'Oldest first'} onClick={() => setSort(!sort)} />\n\t\t</div>\n\t\t{tags.length > 0 && <div class=\"changelog-tags\">\n\t\t\t{tags.map(tag => <ChangelogTag label={tag} onClick={() => setTags(tags.filter(t => t !== tag))} />)}\n\t\t</div>}\n\t\t<div class=\"changelog-list\">\n\t\t\t{sortedChangelogs === undefined\n\t\t\t\t? <span class=\"note\">{locale('loading')}</span>\n\t\t\t\t: sortedChangelogs.length === 0\n\t\t\t\t\t? <span class=\"note\">{locale('changelog.no_results')}</span>\n\t\t\t\t\t:\tsortedChangelogs.map(change =>\n\t\t\t\t\t\t<ChangelogEntry change={change} activeTags={tags} toggleTag={toggleTag} />)}\n\t\t</div>\n\t</>\n}\n","import { useEffect, useMemo, useState } from 'preact/hooks'\nimport { VersionMetaData } from '.'\nimport { useLocale } from '../../contexts'\nimport type { Change, VersionMeta } from '../../services'\nimport { getArticleLink, getChangelogs } from '../../services'\nimport { Giscus } from '../Giscus'\nimport { Octicon } from '../Octicon'\nimport { ChangelogList } from './ChangelogList'\n\ntype Tab = 'changelog' | 'discussion' \n\ninterface Props {\n\tid: string,\n\tversion?: VersionMeta,\n}\nexport function VersionDetail({ id, version }: Props) {\n\tconst { locale } = useLocale()\n\n\tconst [tab, setTab] = useState<Tab>('changelog')\n\n\tconst [changelogs, setChangelogs] = useState<Change[] | undefined>(undefined)\n\tuseEffect(() => {\n\t\tgetChangelogs()\n\t\t\t.then(changelogs => setChangelogs(\n\t\t\t\tchangelogs.map(c => ({ ...c, tags: c.tags.filter(t => t !== c.group) }))\n\t\t\t))\n\t\t\t.catch(e => console.error(e))\n\t}, [])\n\n\tconst filteredChangelogs = useMemo(() =>\n\t\tchangelogs?.filter(c => c.version === id || c.group === id),\n\t[id, changelogs])\n\n\tconst articleLink = version && getArticleLink(version.id)\n\n\treturn <>\n\t\t<div class=\"version-detail\">\n\t\t\t<h2>{version?.name ?? id}</h2>\n\t\t\t<div class=\"version-info\">\n\t\t\t\t{version ? <>\n\t\t\t\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} />\n\t\t\t\t\t<VersionMetaData label={locale('versions.release_target')} value={version.release_target} link={version.id !== version.release_target ? `/versions/?id=${version.release_target}` : undefined} />\n\t\t\t\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} />\n\t\t\t\t\t<VersionMetaData label={locale('versions.protocol_version')} value={version.protocol_version} />\n\t\t\t\t\t<VersionMetaData label={locale('versions.data_pack_format')} value={version.data_pack_version} />\n\t\t\t\t\t<VersionMetaData label={locale('versions.resource_pack_format')} value={version.resource_pack_version} />\n\t\t\t\t</> : filteredChangelogs?.length ?? 0 > 1 ? <p>\n\t\t\t\t\tThis version is not released yet.\n\t\t\t\t</p> : <p>\n\t\t\t\t\tThis version does not exist. Only versions since 1.14 are tracked, or it may be too recent.\n\t\t\t\t</p>}\n\t\t\t</div>\n\t\t\t<div class=\"version-tabs\">\n\t\t\t\t<span class={tab === 'changelog' ? 'selected' : ''} onClick={() => setTab('changelog')}>{locale('versions.technical_changes')}</span>\n\t\t\t\t<span class={tab === 'discussion' ? 'selected' : ''} onClick={() => setTab('discussion')}>{locale('versions.discussion')}</span>\n\t\t\t\t{articleLink && <a href={articleLink} target=\"_blank\">\n\t\t\t\t\t{locale('versions.article')}\n\t\t\t\t\t{Octicon.link_external}\n\t\t\t\t</a>}\n\t\t\t</div>\n\t\t\t<div class=\"version-tab\">\n\t\t\t\t{tab === 'changelog' && <ChangelogList changes={filteredChangelogs} defaultOrder=\"asc\" />}\n\t\t\t\t{tab === 'discussion' && <Giscus term={`version/${id}/`} />}\n\t\t\t</div>\n\t\t</div>\n\t</>\n}\n\nexport function releaseDate(version: VersionMeta) {\n\treturn new Date(version.release_time).toLocaleDateString(undefined, { day: 'numeric', month: 'short', year: 'numeric' })\n}\n","import { releaseDate, VersionMetaData } from '.'\nimport { useLocale } from '../../contexts'\nimport type { VersionMeta } from '../../services'\n\ninterface Props {\n\tversion: VersionMeta,\n\tlink?: string,\n}\nexport function VersionEntry({ version, link }: Props) {\n\tconst { locale } = useLocale()\n\n\treturn <a class=\"version-entry\" href={link}>\n\t\t<span class=\"version-id\">{version.id}</span>\n\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} compact />\n\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} optional />\n\t\t<VersionMetaData label={locale('versions.pack_format')} value={version.data_pack_version} optional />\n\t</a>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Checkbox, TextInput } from '..'\nimport { useLocale } from '../../contexts'\nimport type { VersionMeta } from '../../services'\nimport { VersionEntry } from './VersionEntry'\n\ninterface Props {\n\tversions: VersionMeta[]\n\tlink?: (id: string) => string\n}\nexport function VersionList({ versions, link }: Props) {\n\tconst { locale } = useLocale()\n\t\n\tconst [snapshots, setSnapshots] = useState(true)\n\tconst [search, setSearch] = useState('')\n\n\tconst filteredVersions = useMemo(() => versions.filter(v => {\n\t\tif (v.type === 'snapshot' && !snapshots) return false\n\t\treturn v.id.includes(search)\n\t}), [versions, snapshots, search])\n\n\n\treturn <>\n\t\t<div class=\"versions-controls\">\n\t\t\t<TextInput class=\"btn btn-input version-search\" placeholder={locale('versions.search')}\n\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t<Checkbox label=\"Include snapshots\" value={snapshots} onChange={setSnapshots} />\n\t\t</div>\n\t\t<div class=\"version-list\">\n\t\t\t{filteredVersions.map(v => <VersionEntry version={v} link={link?.(v.id)} />)}\n\t\t\t{filteredVersions.length === 0 && <span>\n\t\t\t\t{locale('versions.no_results')}\n\t\t\t</span>}\n\t\t</div>\n\t</>\n}\n","import { Octicon } from '..'\n\ninterface Props {\n\tlabel: string,\n\tvalue: string | number,\n\tlink?: string,\n\tcompact?: boolean,\n\toptional?: boolean,\n}\nexport function VersionMetaData({ label, value, link, compact, optional }: Props) {\n\treturn <div class={`version-metadata${optional ? ' version-metadata-hide' : ''}`}>\n\t\t<span class={compact ? 'version-metadata-hide' : undefined}>{label}: </span>\n\t\t<span class=\"version-metadata-value\">{value}</span>\n\t\t{link && <a href={link} class=\"version-metadata-link\">{Octicon.link_external}</a>}\n\t</div>\n}\n","import { ChangelogTag } from './versions'\n\ninterface Props {\n\ttitle: string,\n\tlink: string,\n\tversions: string[],\n\ttags: string[],\n\tactiveTags?: string[],\n\ttoggleTag?: (tag: string) => unknown,\n}\nexport function GuideCard({ title, link, versions, tags, activeTags, toggleTag }: Props) {\n\tconst onToggleTag = (tag: string) => (e: MouseEvent) => {\n\t\tif (toggleTag) toggleTag(tag)\n\t\te.preventDefault()\n\t\te.stopImmediatePropagation()\n\t}\n\n\treturn <a class=\"guide-card\" href={link} >\n\t\t<span class=\"guide-versions\">{versions.join(' • ')}</span>\n\t\t<h3>{title}</h3>\n\t\t<div class=\"guide-tags\">\n\t\t\t{tags.sort().map(tag => <ChangelogTag label={tag} onClick={onToggleTag(tag)} active={activeTags?.includes(tag)} />)}\n\t\t</div>\n\t</a>\n}\n","import { getCurrentUrl, Link, route } from 'preact-router'\nimport { Btn, BtnMenu, Icons, Octicon } from '.'\nimport config from '../../config.json'\nimport { useLocale, useTheme, useTitle, useVersion } from '../contexts'\nimport { checkVersion } from '../services'\nimport { cleanUrl, getGenerator } from '../Utils'\n\nconst Themes: Record<string, keyof typeof Octicon> = {\n\tsystem: 'device_desktop',\n\tdark: 'moon',\n\tlight: 'sun',\n}\n\nexport function Header() {\n\tconst { lang, locale, changeLocale: changeLanguage } = useLocale()\n\tconst { theme, changeTheme } = useTheme()\n\tconst { version } = useVersion()\n\tconst { title } = useTitle()\n\tconst gen = getGenerator(getCurrentUrl())\n\n\treturn <header>\n\t\t<div class=\"title\">\n\t\t\t<Link class=\"home-link\" href=\"/\" aria-label={locale('home')} data-cy=\"home-link\">{Icons.home}</Link>\n\t\t\t<h1>{title}</h1>\n\t\t\t{gen && <BtnMenu icon=\"chevron_down\" tooltip={locale('switch_generator')} data-cy=\"generator-switcher\">\n\t\t\t\t{config.generators\n\t\t\t\t\t.filter(g => g.category === gen?.category && checkVersion(version, g.minVersion))\n\t\t\t\t\t.map(g =>\n\t\t\t\t\t\t<Btn label={locale(g.id)} active={g.id === gen.id} onClick={() => route(cleanUrl(g.url))} />\n\t\t\t\t\t)}\n\t\t\t</BtnMenu>}\n\t\t</div>\n\t\t<nav>\n\t\t\t<ul>\n\t\t\t\t<li data-cy=\"language-switcher\">\n\t\t\t\t\t<BtnMenu icon=\"globe\" tooltip={locale('language')}>\n\t\t\t\t\t\t{config.languages.map(({ code, name }) =>\n\t\t\t\t\t\t\t<Btn label={name} active={code === lang}\n\t\t\t\t\t\t\t\tonClick={() => changeLanguage(code)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li data-cy=\"theme-switcher\">\n\t\t\t\t\t<BtnMenu icon={Themes[theme]} tooltip={locale('theme')}>\n\t\t\t\t\t\t{Object.entries(Themes).map(([th, icon]) =>\n\t\t\t\t\t\t\t<Btn icon={icon} label={locale(`theme.${th}`)} active={th === theme}\n\t\t\t\t\t\t\t\tonClick={() => changeTheme(th)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li class=\"dimmed\">\n\t\t\t\t\t<a href=\"https://github.com/misode/misode.github.io\" target=\"_blank\" rel=\"noreferrer\" class=\"tooltipped tip-sw\" aria-label={locale('github')}>\n\t\t\t\t\t\t{Octicon.mark_github}\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</nav>\n\t</header>\n}\n","export const Icons = {\n\thome: <svg width=\"32\" height=\"28\" viewBox=\"0 0 32 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"26\" height=\"6\" rx=\"3\" fill=\"#7CB45C\"/><rect x=\"8\" width=\"18\" height=\"6\" rx=\"3\" fill=\"#4BA041\"/><rect y=\"11\" width=\"32\" height=\"6\" rx=\"3\" fill=\"#AAA8A8\"/><rect x=\"11\" y=\"11\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#91908F\"/><rect x=\"11\" y=\"22\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#70B5C3\"/><rect x=\"17\" y=\"22\" width=\"15\" height=\"6\" rx=\"3\" fill=\"#4D989B\"/></svg>,\n\treport: <svg width=\"30\" height=\"36\" viewBox=\"0 0 30 36\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 16C0 13.7909 1.79086 12 4 12V12C6.20914 12 8 13.7909 8 16V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V16Z\" fill=\"#6ACC5D\"/><path d=\"M11 4C11 1.79086 12.7909 0 15 0V0C17.2091 0 19 1.79086 19 4V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V4Z\" fill=\"#FF4C4C\"/><path d=\"M22 10C22 7.79086 23.7909 6 26 6V6C28.2091 6 30 7.79086 30 10V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V10Z\" fill=\"#E5B442\"/><path d=\"M0 23C0 20.7909 1.79086 19 4 19V19C6.20914 19 8 20.7909 8 23V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V23Z\" fill=\"#2BAD1D\"/><path d=\"M11 15C11 12.7909 12.7909 11 15 11V11C17.2091 11 19 12.7909 19 15V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V15Z\" fill=\"#C10B0B\"/><path d=\"M22 19C22 16.7909 23.7909 15 26 15V15C28.2091 15 30 16.7909 30 19V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V19Z\" fill=\"#CC8E00\"/></svg>,\n\tsounds: <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"#451475\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z\" fill=\"#C5A5E6\"/></svg>,\n}\n","import type { Howl, HowlOptions } from 'howler'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, NumberInput, RangeInput, TextInput } from '..'\nimport { useLocale, useVersion } from '../../contexts'\nimport type { SoundEvents } from '../../services'\nimport { getSoundUrl } from '../../services'\n\nexport interface SoundConfig {\n\tid: string,\n\tsound: string,\n\tdelay: number,\n\tpitch: number,\n\tvolume: number,\n}\ntype SoundConfigProps = SoundConfig & {\n\thowler: (options: HowlOptions) => Howl,\n\tsounds: SoundEvents,\n\tonEdit: (changes: Partial<SoundConfig>) => unknown,\n\tonDelete: () => unknown,\n\tdelayedPlay?: number,\n}\nexport function SoundConfig({ howler, sounds, sound, delay, pitch, volume, onEdit, onDelete, delayedPlay }: SoundConfigProps) {\n\tconst { locale } = useLocale()\n\tconst { version } = useVersion()\n\tconst [loading, setLoading] = useState(true)\n\tconst [playing, setPlaying] = useState(false)\n\tconst [invalid, setInvalid] = useState(false)\n\tconst howls = useRef<Howl[]>([])\n\tconst command = `playsound minecraft:${sound} master @s ~ ~ ~ ${volume} ${pitch}`\n\n\tuseEffect(() => {\n\t\tconst soundEvent = sounds[sound]\n\t\tsetInvalid((soundEvent?.sounds?.length ?? 0) === 0)\n\t\thowls.current.forEach(h => h.stop())\n\t\thowls.current = (soundEvent?.sounds ?? []).map(entry => {\n\t\t\tconst soundPath = typeof entry === 'string' ? entry : entry.name\n\t\t\tconst url = getSoundUrl(version, soundPath)\n\t\t\tconst howl = howler({\n\t\t\t\tsrc: [url],\n\t\t\t\tformat: ['ogg'],\n\t\t\t\tvolume,\n\t\t\t\trate: pitch,\n\t\t\t})\n\t\t\thowl.on('end', () => {\n\t\t\t\tsetPlaying(false)\n\t\t\t})\n\t\t\tconst completed = () => {\n\t\t\t\tif (loading && howls.current.every(h => h.state() === 'loaded')) {\n\t\t\t\t\tsetLoading(false)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (howl.state() === 'loaded') {\n\t\t\t\tsetTimeout(() => completed())\n\t\t\t} else {\n\t\t\t\thowl.on('load', () => {\n\t\t\t\t\tcompleted()\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn howl\n\t\t})\n\t\tsetLoading(true)\n\t}, [sound, sounds])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.rate(pitch))\n\t}, [pitch])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.volume(volume))\n\t}, [volume])\n\n\tconst play = () => {\n\t\tif (loading || invalid) return\n\t\tstop()\n\t\tconst howl = Math.floor(Math.random() * howls.current.length)\n\t\thowls.current[howl].play()\n\t\tsetPlaying(true)\n\t}\n\tconst stop = () => {\n\t\thowls.current.forEach(h => h.stop())\n\t}\n\tuseEffect(() => {\n\t\tif (delayedPlay) setTimeout(() => play(), delay * 50)\n\t}, [delayedPlay])\n\n\tuseEffect(() => {\n\t\treturn () => stop()\n\t}, [])\n\n\tconst [copyActive, setCopyActive] = useState(false)\n\tconst copyTimeout = useRef<number | undefined>(undefined)\n\tconst copy = () => {\n\t\tnavigator.clipboard.writeText(command)\n\t\tsetCopyActive(true)\n\t\tif (copyTimeout.current !== undefined) clearTimeout(copyTimeout.current)\n\t\tcopyTimeout.current = setTimeout(() => {\n\t\t\tsetCopyActive(false)\n\t\t}, 2000) as any\n\t}\n\n\treturn <div class={`sound-config${loading ? ' loading' : playing ? ' playing' : ''}${invalid ? ' invalid' : ''}`}>\n\t\t<Btn class=\"play\" icon={invalid ? 'alert' : loading ? 'sync' : 'play'} label={locale('sounds.play')} onClick={play} tooltip={invalid ? locale('sounds.unknown_sound') : loading ? locale('sounds.loading_sound') : locale('sounds.play_sound')} tooltipLoc=\"se\" />\n\t\t<TextInput class=\"btn btn-input sound\" list=\"sound-list\" spellcheck={false}\n\t\t\tvalue={sound} onChange={sound => onEdit({ sound })} />\n\t\t<label class=\"delay-label\">{locale('sounds.delay')}: </label>\n\t\t<NumberInput class=\"btn btn-input delay\" min={0}\n\t\t\tvalue={delay} onChange={delay => onEdit({ delay })} />\n\t\t<label class=\"pitch-label\">{locale('sounds.pitch')}: </label>\n\t\t<RangeInput class=\"pitch tooltipped tip-s\" min={0.5} max={2} step={0.01}\n\t\t\taria-label={pitch.toFixed(2)} style={`--x: ${(pitch - 0.5) * (100 / 1.5)}%`}\n\t\t\tvalue={pitch} onChange={pitch => onEdit({ pitch })} />\n\t\t<label class=\"volume-label\">{locale('sounds.volume')}: </label>\n\t\t<RangeInput class=\"volume tooltipped tip-s\" min={0} max={1} step={0.01}\n\t\t\taria-label={volume.toFixed(2)} style={`--x: ${volume * 100}%`}\n\t\t\tvalue={volume} onChange={volume => onEdit({ volume })} />\n\t\t<Btn class={`copy${copyActive ? ' active' : ''}`} icon={copyActive ? 'check' : 'terminal'} label={locale('copy')} tooltip={copyActive ? locale('copied') : locale('sounds.copy_command')}\n\t\t\tonClick={copy} />\n\t\t<Btn class=\"remove\" icon=\"trashcan\" tooltip={locale('sounds.remove_sound')}\n\t\t\tonClick={() => {onDelete(); stop()}} />\n\t</div>\n}\n","import type { ComponentChildren } from 'preact'\nimport { Icons } from './Icons'\n\ntype ToolCardProps = {\n\ttitle: string,\n\tdesc?: string,\n\tlink?: string,\n\ticon?: keyof typeof Icons,\n\tchildren?: ComponentChildren,\n}\nexport function ToolCard({ title, desc, link, icon, children }: ToolCardProps) {\n\tconst content = <>\n\t\t<div class=\"tool-head\">\n\t\t\t{icon && Icons[icon]}\n\t\t\t<div>\n\t\t\t\t<h3>{title}</h3>\n\t\t\t\t<p>{desc}</p>\n\t\t\t</div>\n\t\t</div>\n\t\t{children && <div class=\"tool-body\">\n\t\t\t{children}\n\t\t</div>}\n\t</>\n\treturn link\n\t\t? <a class=\"tool-card\" href={link}>{content}</a>\n\t\t: <div class=\"tool-card\">{content}</div>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Octicon } from '.'\n\nconst SEPARATOR = '/'\n\ninterface Props {\n\tentries: string[],\n\tonSelect: (entry: string) => unknown,\n\tindent?: number,\n}\nexport function TreeView({ entries, onSelect, indent }: Props) {\n\tconst roots = useMemo(() => {\n\t\tconst groups: Record<string, string[]> = {}\n\t\tfor (const entry of entries) {\n\t\t\tconst i = entry.indexOf(SEPARATOR)\n\t\t\tif (i >= 0) {\n\t\t\t\tconst root = entry.slice(0, i)\n\t\t\t\t;(groups[root] ??= []).push(entry.slice(i + 1))\n\t\t\t}\n\t\t}\n\t\treturn Object.entries(groups)\n\t}, entries)\n\n\tconst leaves = useMemo(() => {\n\t\treturn entries.filter(e => !e.includes(SEPARATOR))\n\t}, entries)\n\n\tconst [hidden, setHidden] = useState(new Set<string>())\n\tconst toggle = (root: string) => {\n\t\tif (hidden.has(root)) {\n\t\t\thidden.delete(root)\n\t\t} else {\n\t\t\thidden.add(root)\n\t\t}\n\t\tsetHidden(new Set(hidden))\n\t}\n\n\treturn <div class=\"tree-view\" style={`--indent: ${indent ?? 0};`}>\n\t\t{roots.map(([r, entries]) => <div>\n\t\t\t<TreeViewEntry icon={hidden.has(r) ? 'chevron_right' : 'chevron_down'} key={r} label={r} onClick={() => toggle(r)}/>\n\t\t\t{!hidden.has(r) &&\n\t\t\t\t<TreeView entries={entries} onSelect={e => onSelect(`${r}/${e}`)} indent={(indent ?? 0) + 1} />}\n\t\t</div>)}\n\t\t{leaves.map(e => <TreeViewEntry icon=\"file\" key={e} label={e} onClick={() => onSelect(e)} />)}\n\t</div>\n}\n\ninterface TreeViewEntryProps {\n\ticon: keyof typeof Octicon,\n\tlabel: string,\n\tonClick?: () => unknown,\n}\nfunction TreeViewEntry({ icon, label, onClick }: TreeViewEntryProps) {\n\treturn <div class=\"entry\" onClick={onClick} >\n\t\t{Octicon[icon]}\n\t\t{label}\n\t</div>\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tcategory: string,\n\tpath?: string,\n}\nexport function Category({ category }: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.generator_category', locale(category)))\n\treturn <main>\n\t\t<div class=\"category\">\n\t\t\t{config.generators.filter(g => g.category === category).map(g => \n\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t)}\n\t\t</div>\n\t</main>\n}\n","import { Ad, ChangelogList, ErrorPanel } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { useAsync } from '../hooks'\nimport { getChangelogs } from '../services'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Changelog({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.changelog'))\n\n\tconst { value: changelogs, error } = useAsync(getChangelogs, [])\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"changelog\" />\n\t\t{error && <ErrorPanel error={error} />}\n\t\t<div class=\"changelog\">\n\t\t\t<ChangelogList changes={changelogs} defaultOrder=\"desc\" />\n\t\t</div>\n\t</main>\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport { useEffect, useErrorBoundary, useMemo, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Analytics } from '../Analytics'\nimport { Ad, Btn, BtnMenu, ErrorPanel, HasPreview, Octicon, PreviewPanel, SearchList, SourcePanel, TextInput, Tree } from '../components'\nimport { useLocale, useProject, useTitle, useVersion } from '../contexts'\nimport { AsyncCancel, useActiveTimeout, useAsync, useModel, useSearchParam } from '../hooks'\nimport { getOutput } from '../schema/transformOutput'\nimport type { VersionId } from '../services'\nimport { checkVersion, fetchPreset, getBlockStates, getCollections, getModel, getSnippet, shareSnippet } from '../services'\nimport { Store } from '../Store'\nimport { cleanUrl, deepEqual, getGenerator } from '../Utils'\n\nexport const SHARE_KEY = 'share'\n\ninterface Props {\n\tdefault?: true,\n}\nexport function Generator({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion, changeTargetVersion } = useVersion()\n\tconst { projects, project, file, updateFile, openFile, closeFile } = useProject()\n\tconst [error, setError] = useState<Error | string | null>(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\terrorBoundary.message = `Something went wrong rendering the generator: ${errorBoundary.message}`\n\t\treturn <main><ErrorPanel error={errorBoundary} onDismiss={errorRetry} /></main>\n\t}\n\n\tconst gen = getGenerator(getCurrentUrl())\n\tif (!gen) {\n\t\treturn <main><ErrorPanel error={`Cannot find generator \"${getCurrentUrl()}\"`} /></main>\n\t}\n\n\tconst allowedVersions = useMemo(() => {\n\t\treturn config.versions\n\t\t\t.filter(v => checkVersion(v.id, gen.minVersion, gen.maxVersion))\n\t\t\t.map(v => v.id as VersionId)\n\t\t\t.reverse()\n\t}, [gen.minVersion, gen.maxVersion])\n\n\tuseTitle(locale('title.generator', locale(gen.id)), allowedVersions)\n\n\tif (!checkVersion(version, gen.minVersion)) {\n\t\tsetError(`The minimum version for this generator is ${gen.minVersion}`)\n\t}\n\tif (!checkVersion(version, undefined, gen.maxVersion)) {\n\t\tsetError(`This generator is not available in versions above ${gen.maxVersion}`)\n\t}\n\n\tconst [currentPreset, setCurrentPreset] = useSearchParam('preset')\n\tconst [sharedSnippetId, setSharedSnippetId] = useSearchParam(SHARE_KEY)\n\tconst ignoreChange = useRef(false)\n\tconst backup = useMemo(() => Store.getBackup(gen.id), [gen.id])\n\n\tconst loadBackup = () => {\n\t\tif (backup !== undefined) {\n\t\t\tmodel?.reset(DataModel.wrapLists(backup), false)\n\t\t}\n\t}\n\n\tconst { value } = useAsync(async () => {\n\t\tlet data: unknown = undefined\n\t\tif (currentPreset && sharedSnippetId) {\n\t\t\tsetSharedSnippetId(undefined)\n\t\t\treturn AsyncCancel\n\t\t}\n\t\tif (currentPreset) {\n\t\t\tdata = await loadPreset(currentPreset)\n\t\t} else if (sharedSnippetId) {\n\t\t\tconst snippet = await getSnippet(sharedSnippetId)\n\t\t\tlet cancel = false\n\t\t\tif (snippet.version && snippet.version !== version) {\n\t\t\t\tchangeVersion(snippet.version, false)\n\t\t\t\tcancel = true\n\t\t\t}\n\t\t\tif (snippet.type && snippet.type !== gen.id) {\n\t\t\t\tconst snippetGen = config.generators.find(g => g.id === snippet.type)\n\t\t\t\tif (snippetGen) {\n\t\t\t\t\troute(`${cleanUrl(snippetGen.url)}?${SHARE_KEY}=${snippet.id}`)\n\t\t\t\t\tcancel = true\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cancel) {\n\t\t\t\treturn AsyncCancel\n\t\t\t}\n\t\t\tif (snippet.show_preview && !previewShown) {\n\t\t\t\tsetPreviewShown(true)\n\t\t\t\tsetSourceShown(false)\n\t\t\t}\n\t\t\tAnalytics.openSnippet(gen.id, sharedSnippetId, version)\n\t\t\tdata = snippet.data\n\t\t}\n\t\tconst [model, blockStates] = await Promise.all([\n\t\t\tgetModel(version, gen.id),\n\t\t\tgetBlockStates(version),\n\t\t])\n\t\tif (data) {\n\t\t\tignoreChange.current = true\n\t\t\tmodel.reset(DataModel.wrapLists(data), false)\n\t\t}\n\t\tAnalytics.setGenerator(gen.id)\n\t\treturn { model, blockStates }\n\t}, [gen.id, version, sharedSnippetId, currentPreset])\n\n\tconst model = value?.model\n\tconst blockStates = value?.blockStates\n\n\tconst [dirty, setDirty] = useState(false)\n\tuseModel(model, () => {\n\t\tif (!ignoreChange.current) {\n\t\t\tsetCurrentPreset(undefined, true)\n\t\t\tsetSharedSnippetId(undefined, true)\n\t\t}\n\t\tignoreChange.current = false\n\t\tStore.setBackup(gen.id, DataModel.unwrapLists(model?.data))\n\t\tsetError(null)\n\t\tsetDirty(true)\n\t}, [gen.id, setCurrentPreset, setSharedSnippetId])\n\n\tconst [fileRename, setFileRename] = useState('')\n\tconst [fileSaved, doSave] = useActiveTimeout()\n\tconst [fileError, doFileError] = useActiveTimeout()\n\n\tconst doFileRename = () => {\n\t\tif (fileRename !== file?.id && fileRename && model && blockStates) {\n\t\t\tconst data = getOutput(model, blockStates)\n\t\t\tconst success = updateFile(gen.id, file?.id, { id: fileRename, data })\n\t\t\tif (success) {\n\t\t\t\tdoSave()\n\t\t\t} else {\n\t\t\t\tdoFileError()\n\t\t\t\tif (file) {\n\t\t\t\t\tsetFileRename(file?.id)\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (file) {\n\t\t\tsetFileRename(file?.id)\n\t\t}\n\t}\n\n\tconst deleteFile = () => {\n\t\tif (file) {\n\t\t\tupdateFile(gen.id, file.id, {})\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (file) {\n\t\t\tsetFileRename(file.id)\n\t\t}\n\t}, [file])\n\n\tuseEffect(() => {\n\t\tif (model) {\n\t\t\tsetFileRename(file?.id ?? '')\n\t\t\tif (file && gen.id === file.type) {\n\t\t\t\tmodel.reset(DataModel.wrapLists(file.data))\n\t\t\t}\n\t\t\tsetDirty(false)\n\t\t}\n\t}, [file, model])\n\n\tconst reset = () => {\n\t\tAnalytics.resetGenerator(gen.id, model?.historyIndex ?? 1, 'menu')\n\t\tmodel?.reset(DataModel.wrapLists(model.schema.default()), true)\n\t}\n\tconst undo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.undoGenerator(gen.id, model?.historyIndex ?? 1, 'menu')\n\t\tmodel?.undo()\n\t}\n\tconst redo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.redoGenerator(gen.id, model?.historyIndex ?? 1, 'menu')\n\t\tmodel?.redo()\n\t}\n\n\tconst onKeyUp = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 'z') {\n\t\t\tAnalytics.undoGenerator(gen.id, model?.historyIndex ?? 1, 'hotkey')\n\t\t\tmodel?.undo()\n\t\t} else if (e.ctrlKey && e.key === 'y') {\n\t\t\tAnalytics.redoGenerator(gen.id, model?.historyIndex ?? 1, 'hotkey')\n\t\t\tmodel?.redo()\n\t\t}\n\t}\n\tconst onKeyDown = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 's') {\n\t\t\te.preventDefault()\n\t\t\tif (model && blockStates && file) {\n\t\t\t\tAnalytics.saveProjectFile(gen.id, project.files.length, projects.length, 'hotkey')\n\t\t\t\tconst data = getOutput(model, blockStates)\n\t\t\t\tupdateFile(gen.id, file?.id, { id: file?.id, data })\n\t\t\t\tsetDirty(false)\n\t\t\t\tdoSave()\n\t\t\t}\n\t\t}\n\t}\n\tuseEffect(() => {\n\t\tdocument.addEventListener('keyup', onKeyUp)\n\t\tdocument.addEventListener('keydown', onKeyDown)\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keyup', onKeyUp)\n\t\t\tdocument.removeEventListener('keydown', onKeyDown)\n\t\t}\n\t}, [model, blockStates, file])\n\n\tconst [presets, setPresets] = useState<string[]>([])\n\tuseEffect(() => {\n\t\tgetCollections(version).then(collections => {\n\t\t\tsetPresets(collections.get(gen.id).map(p => p.slice(10)))\n\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [version, gen.id])\n\n\tconst selectPreset = (id: string) => {\n\t\tAnalytics.loadPreset(gen.id, id)\n\t\tsetSharedSnippetId(undefined, true)\n\t\tchangeTargetVersion(version, true)\n\t\tsetCurrentPreset(id)\n\t}\n\n\tconst loadPreset = async (id: string) => {\n\t\ttry {\n\t\t\tconst preset = await fetchPreset(version, gen.path ?? gen.id, id)\n\t\t\tconst seed = model?.get(new Path(['generator', 'seed']))\n\t\t\tif (preset?.generator?.seed !== undefined && seed !== undefined) {\n\t\t\t\tpreset.generator.seed = seed\n\t\t\t\tif (preset.generator.biome_source?.seed !== undefined) {\n\t\t\t\t\tpreset.generator.biome_source.seed = seed\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn preset\n\t\t} catch (e) {\n\t\t\tsetError(`Cannot load preset ${id} in ${version}`)\n\t\t\tsetCurrentPreset(undefined, true)\n\t\t}\n\t}\n\n\tconst selectVersion = (version: VersionId) => {\n\t\tsetSharedSnippetId(undefined, true)\n\t\tchangeVersion(version)\n\t}\n\n\tconst [shareUrl, setShareUrl] = useState<string | undefined>(undefined)\n\tconst [shareShown, setShareShown] = useState(false)\n\tconst [shareCopyActive, shareCopySuccess] = useActiveTimeout({ cooldown: 3000 })\n\tconst share = () => {\n\t\tif (shareShown) {\n\t\t\tsetShareShown(false)\n\t\t\treturn\n\t\t}\n\t\tif (currentPreset) {\n\t\t\tsetShareUrl(`${location.origin}/${gen.url}/?version=${version}&preset=${currentPreset}`)\n\t\t\tsetShareShown(true)\n\t\t\tcopySharedId()\n\t\t} else if (model && blockStates) {\n\t\t\tconst output = getOutput(model, blockStates)\n\t\t\tif (deepEqual(output, model.schema.default())) {\n\t\t\t\tsetShareUrl(`${location.origin}/${gen.url}/?version=${version}`)\n\t\t\t\tsetShareShown(true)\n\t\t\t} else {\n\t\t\t\tshareSnippet(gen.id, version, output, previewShown)\n\t\t\t\t\t.then(({ id, length, compressed, rate }) => {\n\t\t\t\t\t\tAnalytics.createSnippet(gen.id, id, version, length, compressed, rate)\n\t\t\t\t\t\tconst url = `${location.origin}/${gen.url}/?${SHARE_KEY}=${id}`\n\t\t\t\t\t\tsetShareUrl(url)\n\t\t\t\t\t\tsetShareShown(true)\n\t\t\t\t\t})\n\t\t\t\t\t.catch(e => {\n\t\t\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\t\t\tsetError(e)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\tconst copySharedId = () => {\n\t\tnavigator.clipboard.writeText(shareUrl ?? '')\n\t\tshareCopySuccess()\n\t}\n\tuseEffect(() => {\n\t\tif (!shareCopyActive) {\n\t\t\tsetShareUrl(undefined)\n\t\t\tsetShareShown(false)\n\t\t}\n\t}, [shareCopyActive])\n\n\tconst [sourceShown, setSourceShown] = useState(window.innerWidth > 820)\n\tconst [doCopy, setCopy] = useState(0)\n\tconst [doDownload, setDownload] = useState(0)\n\tconst [doImport, setImport] = useState(0)\n\n\tconst copySource = () => {\n\t\tAnalytics.copyOutput(gen.id, 'menu')\n\t\tsetCopy(doCopy + 1)\n\t}\n\tconst downloadSource = () => {\n\t\tAnalytics.downloadOutput(gen.id, 'menu')\n\t\tsetDownload(doDownload + 1)\n\t}\n\tconst importSource = () => {\n\t\tAnalytics.generatorEvent('import')\n\t\tsetSourceShown(true)\n\t\tsetImport(doImport + 1)\n\t}\n\tconst toggleSource = () => {\n\t\tif (sourceShown) {\n\t\t\tAnalytics.hideOutput(gen.id, 'menu')\n\t\t} else {\n\t\t\tAnalytics.showOutput(gen.id, 'menu')\n\t\t}\n\t\tsetSourceShown(!sourceShown)\n\t\tsetCopy(0)\n\t\tsetDownload(0)\n\t\tsetImport(0)\n\t}\n\n\tconst [copyActive, copySuccess] = useActiveTimeout()\n\n\tconst [previewShown, setPreviewShown] = useState(false)\n\tconst hasPreview = HasPreview.includes(gen.id) && !(gen.id === 'worldgen/configured_feature' && checkVersion(version, '1.18'))\n\tif (previewShown && !hasPreview) setPreviewShown(false)\n\tlet actionsShown = 2\n\tif (hasPreview) actionsShown += 1\n\tif (sourceShown) actionsShown += 2\n\n\tconst togglePreview = () => {\n\t\tif (sourceShown) {\n\t\t\tAnalytics.hidePreview(gen.id, 'menu')\n\t\t} else {\n\t\t\tAnalytics.showPreview(gen.id, 'menu')\n\t\t}\n\t\tsetPreviewShown(!previewShown)\n\t\tif (!previewShown && sourceShown) {\n\t\t\tsetSourceShown(false)\n\t\t}\n\t}\n\n\treturn <>\n\t\t<main class={previewShown ? 'has-preview' : ''}>\n\t\t\t<Ad id=\"data-pack-generator\" type=\"text\" />\n\t\t\t<div class=\"controls\">\n\t\t\t\t<div class={`project-controls ${file && 'has-file'}`}>\n\t\t\t\t\t<div class=\"btn-row\">\n\t\t\t\t\t\t<BtnMenu icon=\"repo\" label={project.name} relative={false}>\n\t\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('project.go_to')} onClick={() => route('/project')} />\n\t\t\t\t\t\t\t{file && <Btn icon=\"file\" label={locale('project.new_file')} onClick={closeFile} />}\n\t\t\t\t\t\t\t{backup !== undefined && <Btn icon=\"history\" label={locale('restore_backup')} onClick={loadBackup} />}\n\t\t\t\t\t\t\t<SearchList searchPlaceholder={locale(project.name === 'Drafts' ? 'project.search_drafts' : 'project.search')} noResults={locale('project.no_files')} values={project.files.filter(f => f.type === gen.id).map(f => f.id)} onSelect={(id) => openFile(gen.id, id)} />\n\t\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t\t<TextInput class=\"btn btn-input\" placeholder={locale('project.unsaved_file')} value={fileRename} onChange={setFileRename} onEnter={doFileRename} onBlur={doFileRename} />\n\t\t\t\t\t\t{file && <Btn icon=\"trashcan\" tooltip={locale('project.delete_file')} onClick={deleteFile} />}\n\t\t\t\t\t</div>\n\t\t\t\t\t{dirty ? <div class=\"status-icon\">{Octicon.dot_fill}</div>\n\t\t\t\t\t\t: fileSaved ? <div class=\"status-icon active\">{Octicon.check}</div>\n\t\t\t\t\t\t\t: fileError && <div class=\"status-icon danger\">{Octicon.x}</div> }\n\t\t\t\t</div>\n\t\t\t\t<div class=\"generator-controls\">\n\t\t\t\t\t<Btn icon=\"upload\" label={locale('import')} onClick={importSource} />\n\t\t\t\t\t<BtnMenu icon=\"archive\" label={locale('presets')} relative={false}>\n\t\t\t\t\t\t<SearchList searchPlaceholder={locale('search')} noResults={locale('no_presets')} values={presets} onSelect={selectPreset}/>\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"tag\" label={version} tooltip={locale('switch_version')} data-cy=\"version-switcher\">\n\t\t\t\t\t\t{allowedVersions.map(v =>\n\t\t\t\t\t\t\t<Btn label={v} active={v === version} onClick={() => selectVersion(v)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"kebab_horizontal\" tooltip={locale('more')}>\n\t\t\t\t\t\t<Btn icon=\"history\" label={locale('reset')} onClick={reset} />\n\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('undo')} onClick={undo} />\n\t\t\t\t\t\t<Btn icon=\"arrow_right\" label={locale('redo')} onClick={redo} />\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t\t<Tree {...{model, version, blockStates}} onError={setError} />\n\t\t</main>\n\t\t<div class=\"popup-actions\" style={`--offset: -${8 + actionsShown * 50}px;`}>\n\t\t\t<div class={`popup-action action-preview${hasPreview ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale(previewShown ? 'hide_preview' : 'show_preview')} onClick={togglePreview}>\n\t\t\t\t{previewShown ? Octicon.x_circle : Octicon.play}\n\t\t\t</div>\n\t\t\t<div class={'popup-action action-share shown tooltipped tip-nw'} aria-label={locale('share')} onClick={share}>\n\t\t\t\t{Octicon.link}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-download${sourceShown ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale('download')} onClick={downloadSource}>\n\t\t\t\t{Octicon.download}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-copy${sourceShown ? ' shown' : ''}${copyActive ? ' active' : ''} tooltipped tip-nw`} aria-label={locale(copyActive ? 'copied' : 'copy')} onClick={copySource}>\n\t\t\t\t{copyActive ? Octicon.check : Octicon.clippy}\n\t\t\t</div>\n\t\t\t<div class={'popup-action action-code shown tooltipped tip-nw'} aria-label={locale(sourceShown ? 'hide_output' : 'show_output')} onClick={toggleSource}>\n\t\t\t\t{sourceShown ? Octicon.chevron_right : Octicon.code}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class={`popup-preview${previewShown ? ' shown' : ''}`}>\n\t\t\t<PreviewPanel {...{model, version, id: gen.id}} shown={previewShown} onError={setError} />\n\t\t</div>\n\t\t<div class={`popup-source${sourceShown ? ' shown' : ''}`}>\n\t\t\t<SourcePanel {...{model, blockStates, doCopy, doDownload, doImport}} name={gen.schema ?? 'data'} copySuccess={copySuccess} onError={setError} />\n\t\t</div>\n\t\t<div class={`popup-share${shareShown ? ' shown' : ''}`}>\n\t\t\t<TextInput value={shareUrl} readonly />\n\t\t\t<Btn icon={shareCopyActive ? 'check' : 'clippy'} onClick={copySharedId} tooltip={locale(shareCopyActive ? 'copied' : 'copy_share')} tooltipLoc=\"nw\" active={shareCopyActive} showTooltip={shareCopyActive} />\n\t\t</div>\n\t</>\n}\n","var deepFreezeEs6 = {exports: {}};\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n\n // Freeze prop if it is an object\n if (typeof prop == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\ndeepFreezeEs6.exports = deepFreeze;\ndeepFreezeEs6.exports.default = deepFreeze;\n\nvar deepFreeze$1 = deepFreezeEs6.exports;\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record<string,any>[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record<string,any> */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{kind?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '</span>';\n\n/**\n * Determines if a node needs to be wrapped in <span>\n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n return !!node.kind;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst expandScopeName = (name, { prefix }) => {\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n let scope = node.kind;\n if (node.sublanguage) {\n scope = `language-${scope}`;\n } else {\n scope = expandScopeName(scope, { prefix: this.classPrefix });\n }\n this.span(scope);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += `<span class=\"${className}\">`;\n }\n}\n\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = { children: [] };\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} kind */\n openNode(kind) {\n /** @type Node */\n const node = { kind, children: [] };\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addKeyword(text, kind)\n - addText(text)\n - addSublanguage(emitter, subLanguageName)\n - finalize()\n - openNode(kind)\n - closeNode()\n - closeAllNodes()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n * @param {string} kind\n */\n addKeyword(text, kind) {\n if (text === \"\") { return; }\n\n this.openNode(kind);\n this.addText(text);\n this.closeNode();\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n node.kind = name;\n node.sublanguage = true;\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array<string | RegExp | Object> } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial<Mode> & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial<Mode>}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n scope: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n }]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial<Mode>} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record<string,string|string[]> | Array<string>} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type KeywordDict */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array<string>} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record<string, boolean>}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array<RegExp | string>} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record<number,boolean> */\n const emit = {};\n /** @type Record<number,string> */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.5.1\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record<string, Language>} */\n const languages = Object.create(null);\n /** @type {Record<string, string>} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitter.addKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substr(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitter.addKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitter.addKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substr(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitter.addKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '<unnamed>') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record<string,CompiledMode> */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substr(index));\n emitter.closeAllNodes();\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance: relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index: index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array<string>} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language: language });\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial<HLJSOptions>} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze$1(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n","/*\nLanguage: JSON\nDescription: JSON (JavaScript Object Notation) is a lightweight data-interchange format.\nAuthor: Ivan Sagalaev <maniac@softwaremaniacs.org>\nWebsite: http://www.json.org\nCategory: common, protocols, web\n*/\n\nfunction json(hljs) {\n const ATTRIBUTE = {\n className: 'attr',\n begin: /\"(\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n relevance: 1.01\n };\n const PUNCTUATION = {\n match: /[{}[\\],:]/,\n className: \"punctuation\",\n relevance: 0\n };\n // normally we would rely on `keywords` for this but using a mode here allows us\n // to use the very tight `illegal: \\S` rule later to flag any other character\n // as illegal indicating that despite looking like JSON we do not truly have\n // JSON and thus improve false-positively greatly since JSON will try and claim\n // all sorts of JSON looking stuff\n const LITERALS = { beginKeywords: [\n \"true\",\n \"false\",\n \"null\"\n ].join(\" \") };\n\n return {\n name: 'JSON',\n contains: [\n ATTRIBUTE,\n PUNCTUATION,\n hljs.QUOTE_STRING_MODE,\n LITERALS,\n hljs.C_NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ],\n illegal: '\\\\S'\n };\n}\n\nexport { json as default };\n","import hljs from 'highlight.js/lib/core'\nimport json from 'highlight.js/lib/languages/json'\nimport { marked } from 'marked'\nimport { route } from 'preact-router'\nimport { useCallback, useEffect, useMemo, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Ad, Btn, BtnMenu, ChangelogTag, Giscus, Octicon } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport { useActiveTimeout, useAsync, useHash } from '../hooks'\nimport type { VersionId } from '../services'\nimport { parseFrontMatter, versionContent } from '../Utils'\n\nconst HASH = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M6.368 1.01a.75.75 0 01.623.859L6.57 4.5h3.98l.46-2.868a.75.75 0 011.48.237L12.07 4.5h2.18a.75.75 0 010 1.5h-2.42l-.64 4h2.56a.75.75 0 010 1.5h-2.8l-.46 2.869a.75.75 0 01-1.48-.237l.42-2.632H5.45l-.46 2.869a.75.75 0 01-1.48-.237l.42-2.632H1.75a.75.75 0 010-1.5h2.42l.64-4H2.25a.75.75 0 010-1.5h2.8l.46-2.868a.75.75 0 01.858-.622zM9.67 10l.64-4H6.33l-.64 4h3.98z\"></path></svg>'\n\nhljs.registerLanguage('json', json)\n\nmarked.use({\n\thighlight: (code, lang) => {\n\t\tif (lang === '') return undefined\n\t\treturn hljs.highlight(code, { language: lang }).value\n\t},\n})\n\ninterface Props {\n\tpath?: string\n\tid?: string\n}\nexport function Guide({ id }: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst { changeTitle } = useTitle()\n\n\tconst { value: content, refresh } = useAsync(async () => {\n\t\tconst res = await fetch(`../../guides/${id}.md`)\n\t\treturn await res.text()\n\t}, [id])\n\n\tif ((import.meta as any).hot) {\n\t\t(import.meta as any).hot.on('guide-update', (updateId: string) => {\n\t\t\tif (id === updateId) refresh()\n\t\t})\n\t}\n\n\tconst frontMatter = useMemo(() => {\n\t\tif (!content) return undefined\n\t\tconst data = parseFrontMatter(content)\n\t\tchangeTitle(data?.title, data?.versions)\n\t\treturn data\n\t}, [content])\n\n\tconst allowedVersions = useMemo(() => {\n\t\tconst orderedVersions = config.versions.map(v => v.id)\n\t\treturn (frontMatter?.versions as string[])\n\t\t\t?.sort((a, b) => orderedVersions.indexOf(b) - orderedVersions.indexOf(a))\n\t}, [frontMatter?.versions])\n\n\tconst guideVersion = useMemo(() => {\n\t\tif (!allowedVersions) return version\n\t\tif (allowedVersions.includes(version)) return version\n\t\treturn allowedVersions[0]\n\t}, [version, frontMatter?.versions])\n\n\tconst html = useMemo(() => {\n\t\tif (!content) return undefined\n\t\tconst headings: marked.Tokens.Heading[] = []\n\t\tlet insertedToc = false\n\t\tmarked.use({\n\t\t\textensions: [\n\t\t\t\t{\n\t\t\t\t\tname: 'styledCode',\n\t\t\t\t\tlevel: 'inline',\n\t\t\t\t\tstart(src) {\n\t\t\t\t\t\treturn src.match(/\\b[fsnj]`/)?.index ?? -1\n\t\t\t\t\t},\n\t\t\t\t\ttokenizer(src) {\n\t\t\t\t\t\tconst match = src.match(/^([fsnj])`([^`]+)`/)\n\t\t\t\t\t\tif (match) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\ttype: 'styledCode',\n\t\t\t\t\t\t\t\traw: match[0],\n\t\t\t\t\t\t\t\tprefix: match[1],\n\t\t\t\t\t\t\t\ttext: match[2],\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t},\n\t\t\t\t\trenderer(token) {\n\t\t\t\t\t\tlet content = token.text\n\t\t\t\t\t\tlet c = {\n\t\t\t\t\t\t\tf: 'hljs-attr',\n\t\t\t\t\t\t\ts: 'hljs-string',\n\t\t\t\t\t\t\tn: 'hljs-number',\n\t\t\t\t\t\t}[token.prefix as string]\n\t\t\t\t\t\tif (token.prefix === 'j') {\n\t\t\t\t\t\t\tcontent = hljs.highlight('json', token.text).value\n\t\t\t\t\t\t\tc = 'language-json'\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn `<code${c ? ` class=\"${c}\"` : ''}>${content}</code>`\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\twalkTokens(token) {\n\t\t\t\tif (token.type === 'heading') {\n\t\t\t\t\theadings.push(token)\n\t\t\t\t}\n\t\t\t},\n\t\t\trenderer: {\n\t\t\t\tlink(href, title, text) {\n\t\t\t\t\tif (href === null) return text\n\t\t\t\t\tconst title2 = title ? ` title=\"${title}\"` : '' \n\t\t\t\t\tconst target = href?.match(/^https?:\\/\\//) ? ' target=\"_blank\"' : ''\n\t\t\t\t\treturn `<a href=\"${href}\"${title2}${target}>${text}</a>`\n\t\t\t\t},\n\t\t\t\theading(text, level, raw, slugger) {\n\t\t\t\t\tlet toc = ''\n\t\t\t\t\tif (!insertedToc) {\n\t\t\t\t\t\ttoc = `<ol class=\"guide-toc\">${headings.filter(t => t.depth === 2).map(t => {\n\t\t\t\t\t\t\tconst id = slugger.slug(t.raw.match(/^#+ (.*)/)?.[1] ?? '', { dryrun: true })\n\t\t\t\t\t\t\tconst text = t.text.replaceAll('`', '')\n\t\t\t\t\t\t\treturn `<li><a href=\"#${id}\">${text}</a></li>`\n\t\t\t\t\t\t}).join('')}</ol>`\n\t\t\t\t\t\tinsertedToc = true\n\t\t\t\t\t}\n\t\t\t\t\tconst id = slugger.slug(raw)\n\t\t\t\t\tconst link = `<span id=\"guide-${id}\" href=\"?version=${version}#${id}\">${HASH}</span>`\n\t\t\t\t\treturn `${toc}<h${level}>${link}${text}</h${level}>`\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tconst guide = content.substring(content.indexOf('---', 3) + 3)\n\t\tconst versionedContent = versionContent(guide, guideVersion)\n\t\treturn marked(versionedContent, { version: '1.19' } as any)\n\t}, [guideVersion, content])\n\n\tconst [hash, setHash] = useHash()\n\n\tconst scrollToHeading = useCallback(() => {\n\t\tif (!html) return\n\t\tconst heading = document.querySelector(`[id=guide-${hash.slice(1)}]`)\n\t\tif (heading) {\n\t\t\tconst top = heading.getBoundingClientRect().top + window.scrollY\n\t\t\twindow.scrollTo({ top: top - 68, behavior: 'smooth' })\n\t\t}\n\t}, [html, hash])\n\n\tuseEffect(() => {\n\t\tscrollToHeading()\n\t}, [html === undefined, hash])\n\n\tconst clickGuideContent = useCallback((e: MouseEvent) => {\n\t\tif (!(e.target instanceof HTMLSpanElement)) return\n\t\tconst targetHash = '#' + e.target.id.replace(/^guide-/, '')\n\t\tchangeVersion(version, false, true)\n\t\tsetHash(targetHash)\n\t\tif (targetHash === hash) {\n\t\t\tscrollToHeading()\n\t\t}\n\t}, [scrollToHeading, hash, version])\n\n\tconst [shareActive, shareSuccess] = useActiveTimeout()\n\n\tconst onShare = useCallback(() => {\n\t\tconst url = `${location.origin}/guides/${id}/?version=${version}`\n\t\tnavigator.clipboard.writeText(url)\n\t\tshareSuccess()\n\t}, [id, version])\n\n\tconst onClickTag = useCallback((tag: string) => {\n\t\troute(`/guides/?tags=${tag}`)\n\t}, [])\n\n\tconst [largeWidth] = useState(window.innerWidth > 600)\n\n\treturn <main>\n\t\t<div class=\"guide\">\n\t\t\t<div class=\"navigation\">\n\t\t\t\t<a class=\"btn btn-link\" href=\"/guides/\">\n\t\t\t\t\t{Octicon.arrow_left}\n\t\t\t\t\t{locale('guides.all')}\n\t\t\t\t</a>\n\t\t\t\t<Btn icon={shareActive ? 'check' : 'link'} label={locale('share')} onClick={onShare} active={shareActive} tooltip={locale(shareActive ? 'copied' : 'copy_share')} class=\"guide-share\" />\n\t\t\t\t{allowedVersions && <BtnMenu icon=\"tag\" label={guideVersion} tooltip={locale('switch_version')}>\n\t\t\t\t\t{allowedVersions.map((v: string) => \n\t\t\t\t\t\t<Btn label={v} active={v === guideVersion} onClick={() => changeVersion(v as VersionId)} />)}\n\t\t\t\t</BtnMenu>}\n\t\t\t</div>\n\t\t\t{(frontMatter?.tags && frontMatter.tags.length > 0) && <div class=\"guide-tags\">\n\t\t\t\t{frontMatter.tags.map((tag: string) =>\n\t\t\t\t\t<ChangelogTag label={tag} active onClick={() => onClickTag(tag)} />\n\t\t\t\t)}\n\t\t\t</div>}\n\t\t\t{html && <>\n\t\t\t\t<Ad id=\"guide\" type={largeWidth ? 'image' : 'text'} />\n\t\t\t\t<div class=\"guide-content\" dangerouslySetInnerHTML={{ __html: html }} onClick={clickGuideContent}></div>\n\t\t\t\t<Giscus />\n\t\t\t</>}\n\t\t</div>\n\t</main>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, BtnMenu, ChangelogTag, GuideCard, TextInput } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport { useSearchParam } from '../hooks'\nimport type { VersionId } from '../services'\n\ninterface Guide {\n\tid: string,\n\ttitle: string,\n\tversions?: string[],\n\ttags?: string[],\n}\n\ndeclare var __GUIDES__: Guide[]\n\nconst TAG_KEY = 'tags'\nconst TAG_SEP = '|'\n\ninterface Props {\n\tpath?: string\n}\nexport function Guides({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tuseTitle(locale('title.guides'))\n\n\tconst [search, setSearch] = useState('')\n\tconst [tags, setTags] = useSearchParam(TAG_KEY)\n\tconst activeTags = useMemo(() => tags?.split(TAG_SEP) ?? [], [tags])\n\tconst toggleTag = (tag: string) => {\n\t\tif (activeTags.includes(tag)) {\n\t\t\tsetTags(activeTags.filter(t => t !== tag).join(TAG_SEP))\n\t\t} else {\n\t\t\tsetTags([...activeTags, tag].sort().join(TAG_SEP))\n\t\t}\n\t}\n\n\tconst [versionFilter, setVersionFiler] = useState(false)\n\n\tconst versionedGuides = useMemo(() => {\n\t\tif (versionFilter === false) return __GUIDES__\n\t\treturn __GUIDES__.filter(guide => {\n\t\t\treturn guide.versions?.includes(version)\n\t\t})\n\t}, [version, versionFilter])\n\n\tconst filteredGuides = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\treturn versionedGuides.filter(guide => {\n\t\t\tif (!activeTags.every(tag => guide.tags?.includes(tag))) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst content = guide.tags?.join(' ') + ' ' + guide.title.toLowerCase()\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [versionedGuides, search, tags])\n\n\treturn <main>\n\t\t<div class=\"guides\">\n\t\t\t<div class=\"changelog-query\">\n\t\t\t\t<TextInput class=\"btn btn-input changelog-search\" placeholder={locale('guides.search')} value={search} onChange={setSearch} />\n\t\t\t\t<BtnMenu icon=\"tag\" label={versionFilter ? version : locale('any_version')} tooltip={locale('switch_version')}>\n\t\t\t\t\t<Btn label={locale('any_version')} active={!versionFilter} onClick={() => setVersionFiler(!versionFilter)} />\n\t\t\t\t\t{config.versions.slice().reverse().map(v =>\n\t\t\t\t\t\t<Btn label={v.id} active={versionFilter && v.id === version} onClick={() => {changeVersion(v.id as VersionId); setVersionFiler(true)}} />\n\t\t\t\t\t)}\n\t\t\t\t</BtnMenu>\n\t\t\t</div>\n\t\t\t{activeTags.length > 0 && <div class=\"changelog-tags\">\n\t\t\t\t{activeTags.map(tag => <ChangelogTag label={tag} onClick={() => toggleTag(tag)} />)}\n\t\t\t</div>}\n\t\t\t{versionedGuides.length === 0 ? <>\n\t\t\t\t<span class=\"note\">{locale('guides.no_results.version')}</span>\n\t\t\t</> : filteredGuides.length === 0 ? <>\n\t\t\t\t<span class=\"note\">{locale('guides.no_results.query')}</span>\n\t\t\t</> : filteredGuides.map(g =>\n\t\t\t\t<GuideCard title={g.title} link={`/guides/${g.id}/`} tags={g.tags ?? []} versions={g.versions ?? []} activeTags={activeTags} toggleTag={toggleTag} />\n\t\t\t)}\n\t\t</div>\n\t</main>\n}\n","import config from '../../config.json'\nimport { Giscus, ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Home({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.home'))\n\treturn <main>\n\t\t<div class=\"home\">\n\t\t\t<ToolCard title=\"Data packs\">\n\t\t\t\t{config.generators.filter(g => !g.category).map(g => \n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t\t<ToolCard title={locale('worldgen')} link=\"/worldgen/\" />\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Resource packs\">\n\t\t\t\t{config.generators.filter(g => g.category === 'assets').map(g =>\n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Report Inspector\" icon=\"report\"\n\t\t\t\tlink=\"https://misode.github.io/report/\"\n\t\t\t\tdesc=\"Analyse your performance reports\" />\n\t\t\t<ToolCard title=\"Minecraft Sounds\" icon=\"sounds\"\n\t\t\t\tlink=\"/sounds/\"\n\t\t\t\tdesc=\"Browse through and mix all the vanilla sounds\" />\n\t\t\t<ToolCard title=\"Data Pack Upgrader\"\n\t\t\t\tlink=\"https://misode.github.io/upgrader/\"\n\t\t\t\tdesc=\"Convert your data packs from 1.16 to 1.17 to 1.18\" />\n\t\t\t<ToolCard title=\"Technical Changelog\" link=\"/changelog/\" />\n\t\t\t<ToolCard title=\"Minecraft Versions\" link=\"/versions/\" />\n\t\t\t<ToolCard title=\"Data Pack Guides\" link=\"/guides/\" />\n\t\t\t<Giscus />\n\t\t</div>\n\t</main>\n}\n","import { useCallback, useMemo } from 'preact/hooks'\nimport { Ad, TreeView } from '../components'\nimport { getFilePath, useLocale, useProject, useTitle } from '../contexts'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Project({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { project, openFile } = useProject()\n\tuseTitle(locale('title.project', project.name))\n\tconst entries = useMemo(() => project.files.map(getFilePath), project.files)\n\n\tconst selectFile = useCallback((entry: string) => {\n\t\tconst [, namespace, type, ...id] = entry.split('/')\n\t\topenFile(type, `${namespace}:${id}`)\n\t}, [openFile])\n\n\treturn <main>\n\t\t<Ad id=\"data-pack-project\" type=\"text\" />\n\t\t<div class=\"project\">\n\t\t\t<h2>{project.name}</h2>\n\t\t\t<div class=\"file-view\">\n\t\t\t\t<TreeView entries={entries} onSelect={selectFile}/>\n\t\t\t</div>\n\t\t</div>\n\t</main>\n}\n","import type { Howl, HowlOptions } from 'howler'\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, BtnMenu, ErrorPanel, SoundConfig, TextInput } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport { useAsync } from '../hooks'\nimport type { VersionId } from '../services'\nimport { fetchSounds } from '../services'\nimport { hexId } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Sounds({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tuseTitle(locale('title.sounds'))\n\n\tconst [howler, setHowler] = useState<undefined | ((options: HowlOptions) => Howl)>(undefined)\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst howler = await import('howler')\n\t\t\tsetHowler(() => (options: HowlOptions) => new howler.Howl(options))\n\t\t})()\n\t}, [])\n\n\tconst { value: sounds, error } = useAsync(async () => {\n\t\treturn await fetchSounds(version)\n\t}, [version])\n\tconst soundKeys = useMemo(() => Object.keys(sounds ?? {}), [sounds])\n\n\tconst [search, setSearch] = useState('')\n\tconst [configs, setConfigs] = useState<SoundConfig[]>([])\n\tconst addConfig = () => {\n\t\tsetConfigs([{ id: hexId(), sound: search, delay: 0, pitch: 1, volume: 1 }, ...configs])\n\t}\n\tconst editConfig = (id: string) => (changes: Partial<SoundConfig>) => {\n\t\tsetConfigs(configs.map(c => c.id === id ? { ...c, ...changes } : c))\n\t}\n\tconst deleteConfig = (id: string) => () => {\n\t\tsetConfigs(configs.filter(c => c.id !== id))\n\t}\n\n\tconst [delayedPlay, setDelayedPlay] = useState(0)\n\tconst playAll = () => {\n\t\tsetDelayedPlay(delayedPlay + 1)\n\t}\n\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst downloadFunction = () => {\n\t\tif (!download.current) return\n\t\tconst hasDelay = configs.some(c => c.delay > 0)\n\t\tconst content = configs\n\t\t\t.sort((a, b) => a.delay - b.delay)\n\t\t\t.map(c => `${hasDelay ? `execute if score @s delay matches ${c.delay} run ` : ''}playsound minecraft:${c.sound} master @s ~ ~ ~ ${c.volume} ${c.pitch}`)\n\t\t\t.join('\\n')\n\t\tdownload.current.setAttribute('href', 'data:text/plain;charset=utf-8,' + content + '%0A')\n\t\tdownload.current.setAttribute('download', 'sounds.mcfunction')\n\t\tdownload.current.click()\n\t}\n\n\treturn <main>\n\t\t{error && <ErrorPanel error={error} />}\n\t\t{soundKeys.length > 0 && <>\n\t\t\t<div class=\"controls sounds-controls\">\n\t\t\t\t<div class=\"sound-search-group\">\n\t\t\t\t\t<TextInput class=\"btn btn-input sound-search\" list=\"sound-list\" placeholder={locale('sounds.search')}\n\t\t\t\t\t\tvalue={search} onChange={setSearch} onEnter={addConfig} />\n\t\t\t\t\t<Btn icon=\"plus\" tooltip={locale('sounds.add_sound')} class=\"add-sound\" onClick={addConfig} />\n\t\t\t\t</div>\n\t\t\t\t{configs.length > 1 && <Btn icon=\"play\" label={ locale('sounds.play_all')} class=\"play-all-sounds\" onClick={playAll} />}\n\t\t\t\t<div class=\"spacer\"></div>\n\t\t\t\t<Btn icon=\"download\" label={locale('download')} tooltip={locale('sounds.download_function')} tooltipLoc=\"se\" class=\"download-sounds\" onClick={downloadFunction} />\n\t\t\t\t<BtnMenu icon=\"tag\" label={version} tooltip={locale('switch_version')}>\n\t\t\t\t\t{config.versions.slice().reverse().map(v =>\n\t\t\t\t\t\t<Btn label={v.id} active={v.id === version} onClick={() => changeVersion(v.id as VersionId)} />\n\t\t\t\t\t)}\n\t\t\t\t</BtnMenu>\n\t\t\t</div>\n\t\t\t<div class=\"sounds\">\n\t\t\t\t{sounds && howler && configs.map(c =>\n\t\t\t\t\t<SoundConfig key={c.id} {...c} {...{ howler, sounds, delayedPlay }} onEdit={editConfig(c.id)} onDelete={deleteConfig(c.id)} />\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<a ref={download} style=\"display: none;\"></a>\n\t\t\t<datalist id=\"sound-list\">\n\t\t\t\t{soundKeys.map(s => <option key={s} value={s} />)}\n\t\t\t</datalist>\n\t\t</>}\n\t</main>\n}\n","import { Ad, ErrorPanel, Octicon, VersionDetail, VersionList } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { useAsync, useSearchParam } from '../hooks'\nimport type { VersionMeta } from '../services'\nimport { fetchVersions } from '../services'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Versions({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.versions'))\n\n\tconst { value: versions, error } = useAsync(fetchVersions, [])\n\n\tconst [selectedId] = useSearchParam('id')\n\tconst selected = (versions ?? []).find(v => v.id === selectedId)\n\n\tuseTitle(\n\t\tselected ? `Minecraft ${selected.name}` : 'Versions Explorer',\n\t\tselected ? [] : undefined,\n\t\tselected ? 'Changes and metadata' : undefined)\n\n\tconst nextVersion = selected && getOffsetVersion(versions ?? [], selected, -1)\n\tconst previousVersion = selected && getOffsetVersion(versions ?? [], selected, 1)\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"versions\" />\n\t\t{error && <ErrorPanel error={error} />}\n\t\t<div class=\"versions\">\n\t\t\t{selectedId ? <>\n\t\t\t\t<div class=\"navigation\">\n\t\t\t\t\t<a class=\"btn btn-link\" href=\"/versions/\">\n\t\t\t\t\t\t{Octicon.three_bars}\n\t\t\t\t\t\t{locale('versions.all')}\n\t\t\t\t\t</a>\n\t\t\t\t\t<a class=\"btn btn-link\" {...previousVersion ? {href: `/versions/?id=${previousVersion.id}`} : {disabled: true}}>\n\t\t\t\t\t\t{Octicon.arrow_left}\n\t\t\t\t\t\t{locale('versions.previous')}\n\t\t\t\t\t</a>\n\t\t\t\t\t<a class=\"btn btn-link\" {...nextVersion ? {href: `/versions/?id=${nextVersion.id}`} : {disabled: true}}>\n\t\t\t\t\t\t{locale('versions.next')}\n\t\t\t\t\t\t{Octicon.arrow_right}\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t\t<VersionDetail id={selectedId} version={selected} />\n\t\t\t</> : <VersionList versions={versions ?? []} link={id => `/versions/?id=${id}`} />}\n\t\t</div>\n\t</main>\n}\n\nfunction getOffsetVersion(versions: VersionMeta[], current: VersionMeta, offset: number) {\n\tconst currentIndex = versions.findIndex(v => v.id === current.id)\n\tconst offsetIndex = currentIndex + offset\n\tif (offsetIndex < 0 || offsetIndex >= versions.length) {\n\t\treturn undefined\n\t}\n\treturn versions[offsetIndex]\n}\n","import type { RouterOnChangeArgs } from 'preact-router'\nimport { Router } from 'preact-router'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { Analytics } from './Analytics'\nimport { Header } from './components'\nimport { Category, Changelog, Generator, Guide, Guides, Home, Project, Sounds, Versions } from './pages'\nimport { cleanUrl } from './Utils'\n\nexport function App() {\n\tconst changeRoute = (e: RouterOnChangeArgs) => {\n\t\twindow.dispatchEvent(new CustomEvent('replacestate'))\n\t\t// Needs a timeout to ensure the title is set correctly\n\t\tsetTimeout(() => Analytics.pageview(cleanUrl(e.url)))\n\t}\n\n\treturn <>\n\t\t<Header />\n\t\t<Router onChange={changeRoute}>\n\t\t\t<Home path=\"/\" />\n\t\t\t<Category path=\"/worldgen\" category=\"worldgen\" />\n\t\t\t<Category path=\"/assets\" category=\"assets\" />\n\t\t\t<Sounds path=\"/sounds\" />\n\t\t\t<Changelog path=\"/changelog\" />\n\t\t\t<Versions path=\"/versions\" />\n\t\t\t<Project path=\"/project\" />\n\t\t\t<Guides path=\"/guides/\" />\n\t\t\t<Guide path=\"/guides/:id\" />\n\t\t\t<Generator default />\n\t\t</Router>\n\t</>\n}\n","import { render } from 'preact'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { App } from './App'\nimport { LocaleProvider, ProjectProvider, ThemeProvider, TitleProvider, VersionProvider } from './contexts'\n\nfunction Main() {\n\treturn <LocaleProvider>\n\t\t<ThemeProvider>\n\t\t\t<VersionProvider>\n\t\t\t\t<TitleProvider>\n\t\t\t\t\t<ProjectProvider>\n\t\t\t\t\t\t<App />\n\t\t\t\t\t</ProjectProvider>\n\t\t\t\t</TitleProvider>\n\t\t\t</VersionProvider>\n\t\t</ThemeProvider>\n\t</LocaleProvider>\n}\n\nrender(<Main />, document.body)\n"],"file":"assets/index.ece3de28.js"} \ No newline at end of file diff --git a/assets/index.f8eb7d71.js b/assets/index.f8eb7d71.js new file mode 100644 index 00000000..cad79aa3 --- /dev/null +++ b/assets/index.f8eb7d71.js @@ -0,0 +1,2 @@ +var Ue=Object.defineProperty,Ve=Object.defineProperties;var Ge=Object.getOwnPropertyDescriptors;var De=Object.getOwnPropertySymbols;var He=Object.prototype.hasOwnProperty,Ke=Object.prototype.propertyIsEnumerable;var ze=(r,e,t)=>e in r?Ue(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,g=(r,e)=>{for(var t in e||(e={}))He.call(e,t)&&ze(r,t,e[t]);if(De)for(var t of De(e))Ke.call(e,t)&&ze(r,t,e[t]);return r},A=(r,e)=>Ve(r,Ge(e));import{l as k,c as re}from"./index.ece3de28.js";function Xe(r,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(o){if(o!=="default"&&!(o in r)){var d=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(r,o,d.get?d:{enumerable:!0,get:function(){return t[o]}})}})}),Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var G={},ae={};Object.defineProperty(ae,"__esModule",{value:!0});ae.initCollections=void 0;function Ye(r){r.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:fall_from_height","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:ride_entity_in_lava","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),r.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),r.register("slot",["mainhand","offhand","head","chest","legs","feet"]),r.register("gamemode",["survival","creative","adventure","spectator"]),r.register("entity_source",["this","killer","direct_killer","killer_player"]),r.register("copy_source",["block_entity","this","killer","killer_player"]),r.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),r.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),r.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),r.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),r.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),r.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),r.register("generation_step",["air","liquid"]),r.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),r.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),r.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),r.register("cave_surface",["floor","ceiling"]),r.register("direction",["down","up","north","east","south","west"]),r.register("axis",["x","y","z"]),r.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),r.register("gui_light",["front","side"]),r.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),r.register("mob_category",["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]),r.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}ae.initCollections=Ye;var ce={},de={};Object.defineProperty(de,"__esModule",{value:!0});de.initAdvancementSchemas=void 0;const s=k;function Ze(r,e){const t=s.Reference.bind(void 0,r),o=s.StringNode.bind(void 0,e),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(t("entity_predicate")),change:n=>{var a,p;return(p=(a=n[0])===null||a===void 0?void 0:a.predicate)!==null&&p!==void 0?p:{}}},{type:"list",node:(0,s.ListNode)(t("condition")),change:n=>[{condition:"minecraft:entity_properties",predicate:n}]}],{context:"conditions"});r.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:t("text_component"),description:t("text_component"),background:(0,s.Opt)(o()),frame:(0,s.Opt)(o({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(o({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(o(),t("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(o()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(o({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(o({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),r.register("advancement_criteria",(0,s.ObjectNode)({trigger:o({validator:"resource",params:{pool:e.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:n=>n.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(t("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(o({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(o({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:t("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate"))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(t("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,s.Opt)(t("location_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:t("int_bounds"),occupied:t("int_bounds"),full:t("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(t("item_predicate")))},"minecraft:item_durability_changed":{delta:t("int_bounds"),durability:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:t("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:(0,s.Opt)(t("distance_predicate")),duration:t("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:location":{location:(0,s.Opt)(t("location_predicate"))},"minecraft:nether_travel":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:o({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(t("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(t("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:slept_in_bed":{location:(0,s.Opt)(t("location_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:t("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,s.Opt)(t("float_bounds"))},"minecraft:used_totem":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:voluntary_exile":{location:(0,s.Opt)(t("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}de.initAdvancementSchemas=Ze;var se={},le={};Object.defineProperty(le,"__esModule",{value:!0});le.initModelSchemas=void 0;const b=k;function Je(r,e){b.Reference.bind(void 0,r);const t=b.StringNode.bind(void 0,e),o=(n,a,p)=>(0,b.ListNode)((0,b.NumberNode)({min:a,max:p}),{minLength:n,maxLength:n}),d=(0,b.ChoiceNode)([{type:"alias",match:n=>typeof n=="string"&&n.startsWith("#"),node:t(),change:n=>typeof n=="string"?`#${n}`:"#0"},{type:"reference",match:n=>typeof n=="string",node:t({validator:"resource",params:{pool:"$texture"}}),change:n=>typeof n=="string"?n.replace(/^#/,""):""}],{choiceContext:"texture"});r.register("model",(0,b.Mod)((0,b.ObjectNode)({parent:(0,b.Opt)(t({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,b.Opt)((0,b.BooleanNode)()),gui_light:(0,b.Opt)(t({enum:"gui_light"})),textures:(0,b.Opt)((0,b.MapNode)(t(),d)),elements:(0,b.Opt)((0,b.ListNode)((0,b.ObjectNode)({from:o(3,-16,32),to:o(3,-16,32),rotation:(0,b.Opt)((0,b.ObjectNode)({origin:o(3),axis:t({enum:"axis"}),angle:(0,b.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,b.Opt)((0,b.BooleanNode)())})),shade:(0,b.Opt)((0,b.BooleanNode)()),faces:(0,b.MapNode)(t({enum:"direction"}),(0,b.ObjectNode)({texture:d,uv:(0,b.Opt)(o(4)),cullface:(0,b.Opt)(t({enum:"direction"})),rotation:(0,b.Opt)((0,b.NumberNode)({integer:!0})),tintindex:(0,b.Opt)((0,b.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,b.Opt)((0,b.MapNode)(t({enum:"display_position"}),(0,b.ObjectNode)({rotation:o(3),translation:o(3,-80,80),scale:o(3,-4,4)},{context:"item_transform"}))),overrides:(0,b.Opt)((0,b.ListNode)((0,b.ObjectNode)({predicate:(0,b.MapNode)(t({enum:"item_model_predicates"}),(0,b.NumberNode)()),model:t({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}le.initModelSchemas=Je;var me={};Object.defineProperty(me,"__esModule",{value:!0});me.initBlockDefinitionSchemas=void 0;const x=k;function Qe(r,e){const t=x.Reference.bind(void 0,r),o=x.StringNode.bind(void 0,e);r.register("block_definition",(0,x.Mod)((0,x.ChoiceNode)([{type:"variants",match:n=>n.variants!==void 0,node:(0,x.ObjectNode)({variants:(0,x.MapNode)(o(),t("model_variant"))}),change:n=>({variants:{"":{}}})},{type:"multipart",match:n=>n.multipart!==void 0,node:(0,x.ObjectNode)({multipart:(0,x.ListNode)((0,x.ObjectNode)({when:(0,x.Opt)(t("multipart_condition")),apply:t("model_variant")}))}),change:n=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:o({validator:"resource",params:{pool:"$model"}}),x:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,x.Opt)((0,x.BooleanNode)())};r.register("model_variant",(0,x.ChoiceNode)([{type:"object",node:(0,x.ObjectNode)(d),change:n=>Array.isArray(n)&&n.length>0?n[0]:{}},{type:"list",node:(0,x.ListNode)((0,x.ObjectNode)(A(g({},d),{weight:(0,x.Opt)((0,x.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:n=>[g({weight:1},n)]}],{context:"model_variant"})),r.register("multipart_condition",(0,x.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,x.MapNode)(o(),o()),change:n=>typeof n=="object"&&Array.isArray(n==null?void 0:n.OR)&&n.OR.length>0?n.OR[0]:{}},{type:"or",match:n=>typeof n=="object"&&(n==null?void 0:n.OR)!==void 0,node:(0,x.ObjectNode)({OR:(0,x.ListNode)(t("multipart_condition"))}),change:n=>({OR:[n!=null?n:{}]})}],{context:"multipart_condition"}))}me.initBlockDefinitionSchemas=Qe;Object.defineProperty(se,"__esModule",{value:!0});se.initAssetsSchemas=void 0;const et=le,tt=me;function rt(r,e){(0,tt.initBlockDefinitionSchemas)(r,e),(0,et.initModelSchemas)(r,e)}se.initAssetsSchemas=rt;var z={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initCommonSchemas=r.Tag=r.InclusiveRange=r.IntProvider=r.FloatProvider=r.NoiseSettingsPresets=r.DefaultNoiseSettings=r.DimensionTypePresets=r.DefaultDimensionType=r.FunctionCases=r.ConditionCases=void 0;const e=k;r.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"#minecraft:infiniburn_overworld",min_y:0,height:256},r.DefaultNoiseSettings={sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}};function t(o,d){const n=e.StringNode.bind(void 0,d),a=e.Reference.bind(void 0,o);o.register("block_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"block"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),o.register("fluid_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"fluid"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),o.register("block_pos",(0,e.Mod)((0,e.ListNode)((0,e.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const p=m=>(0,e.Opt)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)({integer:m}),change:f=>{var j,v;return f===void 0?0:(v=(j=f.min)!==null&&j!==void 0?j:f.max)!==null&&v!==void 0?v:0}},{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)((0,e.NumberNode)({integer:m})),max:(0,e.Opt)((0,e.NumberNode)({integer:m}))},{context:"range"}),change:f=>({min:f!=null?f:0,max:f!=null?f:0})}]));o.register("int_bounds",p(!0)),o.register("float_bounds",p()),o.register("int_range",(0,e.ChoiceNode)([{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)(a("number_provider")),max:(0,e.Opt)(a("number_provider"))})},{type:"number",node:(0,e.NumberNode)({integer:!0})}],{context:"range"}));const w=(m,f,j,v,S,B,E)=>{let ie={};S&&Object.keys(E[S]).forEach(q=>{ie[q]=(0,e.Mod)(E[S][q],{enabled:I=>I.push("type").get()===void 0})});const Z=(0,e.ObjectNode)(g({type:(0,e.Mod)((0,e.Opt)(n({validator:"resource",params:{pool:m}})),{hidden:()=>!0}),[e.Switch]:[{push:"type"}],[e.Case]:E},ie),{context:B,disableSwitchContext:!0}),J=[{type:f,node:E[v][j]}];return S&&J.push({type:"object",priority:-1,node:Z}),Object.keys(E).forEach(q=>{J.push({type:q,match:I=>{var Q;if("minecraft:"+((Q=I==null?void 0:I.type)===null||Q===void 0?void 0:Q.replace(/^minecraft:/,""))===q)return!0;const W=I?Object.keys(I):[];return typeof I=="object"&&((W==null?void 0:W.length)===0||(W==null?void 0:W.length)===1&&(W==null?void 0:W[0])==="type")},node:Z,change:I=>({type:q})})}),(0,e.ChoiceNode)(J,{context:B,choiceContext:`${B}.type`})};o.register("number_provider",w("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,e.NumberNode)()},"minecraft:uniform":{min:a("number_provider"),max:a("number_provider")},"minecraft:binomial":{n:a("number_provider"),p:a("number_provider")},"minecraft:score":{target:a("scoreboard_name_provider"),score:n({validator:"objective"}),scale:(0,e.Opt)((0,e.NumberNode)())}})),o.register("scoreboard_name_provider",w("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:n({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"entity_source"}),{default:()=>"this"})}})),o.register("nbt_provider",w("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:n({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"copy_source"}),{default:()=>"this"})}})),r.FloatProvider=m=>w("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,e.NumberNode)(m)},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(m),max_exclusive:(0,e.NumberNode)(m)})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:trapezoid":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),plateau:(0,e.NumberNode)()})}}),o.register("float_provider",(0,r.FloatProvider)()),r.IntProvider=m=>w("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,e.NumberNode)(g({integer:!0},m))},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m))})},"minecraft:biased_to_bottom":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m))})},"minecraft:clamped":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m)),source:a("int_provider")})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m)),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:a("int_provider")}))}}),o.register("int_provider",(0,r.IntProvider)()),o.register("vertical_anchor",(0,e.ChoiceNode)(["absolute","above_bottom","below_top"].map(m=>({type:m,match:f=>(f==null?void 0:f[m])!==void 0,change:f=>{var j,v,S;return{[m]:(S=(v=(j=f.absolute)!==null&&j!==void 0?j:f.above_bottom)!==null&&v!==void 0?v:f.below_top)!==null&&S!==void 0?S:0}},node:(0,e.ObjectNode)({[m]:(0,e.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),o.register("height_provider",w("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:a("vertical_anchor")},"minecraft:uniform":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),plateau:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:a("int_provider")}))}})),r.InclusiveRange=m=>(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(m),max_inclusive:(0,e.NumberNode)(m)},{context:"range"}),o.register("noise_parameters",(0,e.Mod)((0,e.ObjectNode)({firstOctave:(0,e.NumberNode)({integer:!0}),amplitudes:(0,e.ListNode)((0,e.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),r.Tag=m=>(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:m.resource,allowTag:!0}}),change:f=>{if(Array.isArray(f)&&typeof f[0]=="string"&&!f[0].startsWith("#"))return f[0]}},{type:"list",node:(0,e.ListNode)(m.inlineSchema?(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:m.resource}})},{type:"object",node:a(m.inlineSchema)}],{choiceContext:"tag.list"}):n({validator:"resource",params:{pool:m.resource}})),change:f=>typeof f=="string"&&!f.startsWith("#")?[f]:[]}],{choiceContext:"tag"}),r.ConditionCases=(m=n({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,e.ListNode)(a("condition"))},"minecraft:block_state_property":{block:n({validator:"resource",params:{pool:"block"}}),properties:(0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:m,predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:m,scores:(0,e.MapNode)(n({validator:"objective"}),a("int_range"))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:location_check":{offsetX:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetY:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetZ:(0,e.Opt)((0,e.NumberNode)({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:(0,e.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,e.NumberNode)({min:0,max:1}),looting_multiplier:(0,e.NumberNode)()},"minecraft:reference":{name:n({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),chances:(0,e.ListNode)((0,e.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:a("int_range"),period:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:value_check":{value:a("number_provider"),range:a("int_range")},"minecraft:weather_check":{raining:(0,e.Opt)((0,e.BooleanNode)()),thundering:(0,e.Opt)((0,e.BooleanNode)())}}),r.FunctionCases=(m,f=n({enum:"copy_source"}),j=n({enum:"entity_source"}))=>{const v={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:d.get("loot_table_apply_bonus_formula")}}),parameters:(0,e.Mod)((0,e.ObjectNode)({bonusMultiplier:(0,e.Mod)((0,e.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,e.Mod)((0,e.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,e.Mod)((0,e.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:B=>B.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:f},"minecraft:copy_nbt":{source:a("nbt_provider"),ops:(0,e.ListNode)((0,e.ObjectNode)({source:n({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:n({validator:"nbt_path",params:{category:"minecraft:item"}}),op:n({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:n({validator:"resource",params:{pool:"block"}}),properties:(0,e.ListNode)(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,e.Opt)((0,e.ListNode)(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:a("number_provider"),treasure:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:exploration_map":{destination:(0,e.Opt)((0,r.Tag)({resource:"$worldgen/configured_structure_feature"})),decoration:(0,e.Opt)(n({enum:"map_decoration"})),zoom:(0,e.Opt)((0,e.NumberNode)({integer:!0})),search_radius:(0,e.Opt)((0,e.NumberNode)({integer:!0})),skip_existing_chunks:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:fill_player_head":{entity:j},"minecraft:limit_count":{limit:a("int_range")},"minecraft:looting_enchant":{count:a("number_provider"),limit:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,e.ListNode)(a("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,e.ListNode)((0,e.ObjectNode)({pattern:n({enum:"banner_pattern"}),color:n({enum:"dye_color"})})),append:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_contents":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,e.ListNode)(a("loot_entry"))},"minecraft:set_count":{count:a("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_damage":{damage:a("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,e.MapNode)(n({validator:"resource",params:{pool:"enchantment"}}),a("number_provider")),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_loot_table":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,e.Opt)(j),lore:(0,e.ListNode)(a("text_component")),replace:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_name":{entity:(0,e.Opt)(j),name:(0,e.Opt)(a("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:n({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:(0,e.Opt)((0,e.ListNode)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:a("number_provider")})))}},S={};return d.get("loot_function_type").forEach(B=>{S[B]=g(g({},v[B]),m)}),S},r.DimensionTypePresets=m=>(0,e.ObjectOrPreset)(n({validator:"resource",params:{pool:"$dimension_type"}}),m,{"minecraft:overworld":r.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"#minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"#minecraft:infiniburn_end",min_y:0,height:256}}),r.NoiseSettingsPresets=m=>(0,e.ObjectOrPreset)(n({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),m,{"minecraft:overworld":r.DefaultNoiseSettings,"minecraft:nether":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:end":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:amplified":{sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:caves":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:floating_islands":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}}})}r.initCommonSchemas=t})(z);var _e={};Object.defineProperty(_e,"__esModule",{value:!0});_e.initConditionSchemas=void 0;const ee=k,ot=z;function it(r,e){const t=ee.Reference.bind(void 0,r),o=ee.StringNode.bind(void 0,e);r.register("predicate",(0,ee.ObjectOrList)(t("condition"),{choiceContext:"condition"})),r.register("condition",(0,ee.Mod)((0,ee.ObjectNode)({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[ee.Switch]:[{push:"condition"}],[ee.Case]:(0,ot.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}_e.initConditionSchemas=it;var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initDimensionSchemas=void 0;const O=k,$e=z;function nt(r,e){const t=O.Reference.bind(void 0,r),o=O.StringNode.bind(void 0,e),d=(0,O.ChoiceNode)([{type:"string",priority:1,node:o({validator:"resource",params:{pool:"$worldgen/structure_set"}}),change:()=>{}},{type:"object",node:t("structure_set"),change:()=>({})}],{choiceContext:"structure_set"});r.register("dimension",(0,O.Mod)((0,O.ObjectNode)({type:(0,$e.DimensionTypePresets)(t("dimension_type")),generator:(0,O.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:noise":{seed:(0,O.NumberNode)({integer:!0}),settings:(0,$e.NoiseSettingsPresets)(t("noise_settings")),biome_source:(0,O.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/biome_source"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:fixed":{biome:o({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,O.Opt)(o({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,O.Mod)((0,O.ListNode)(t("generator_biome")),{enabled:a=>a.push("preset").get()===void 0,default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,O.Opt)((0,O.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,$e.Tag)({resource:"$worldgen/biome"})},"minecraft:the_end":{seed:(0,O.NumberNode)({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,O.ObjectNode)({biome:(0,O.Opt)(o({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,O.Opt)((0,O.BooleanNode)()),features:(0,O.Opt)((0,O.BooleanNode)()),layers:(0,O.ListNode)(t("generator_layer")),structure_overrides:(0,O.ListNode)(d)})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const a=Math.floor(Math.random()*4294967296)-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:a,biome_source:{type:"minecraft:fixed",seed:a,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const n=(0,O.ChoiceNode)([{type:"number",node:(0,O.NumberNode)({min:-2,max:2}),change:a=>{var p;return(p=a[0])!==null&&p!==void 0?p:0}},{type:"list",node:(0,O.ListNode)((0,O.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:a=>[a!=null?a:0,a!=null?a:0]}]);r.register("generator_biome",(0,O.Mod)((0,O.ObjectNode)({biome:o({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,O.ObjectNode)({temperature:n,humidity:n,continentalness:n,erosion:n,weirdness:n,depth:n,offset:(0,O.NumberNode)({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))}ue.initDimensionSchemas=nt;var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initDimensionTypeSchemas=void 0;const $=k,at=z;function ct(r,e){const t=$.StringNode.bind(void 0,e);r.register("dimension_type",(0,$.Mod)((0,$.ObjectNode)({ultrawarm:(0,$.BooleanNode)(),natural:(0,$.BooleanNode)(),piglin_safe:(0,$.BooleanNode)(),respawn_anchor_works:(0,$.BooleanNode)(),bed_works:(0,$.BooleanNode)(),has_raids:(0,$.BooleanNode)(),has_skylight:(0,$.BooleanNode)(),has_ceiling:(0,$.BooleanNode)(),coordinate_scale:(0,$.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,$.NumberNode)(),fixed_time:(0,$.Opt)((0,$.NumberNode)({integer:!0})),logical_height:(0,$.NumberNode)({integer:!0,min:0,max:4064}),effects:(0,$.Opt)(t({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:t({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:(0,$.NumberNode)({integer:!0,min:-2032,max:2031}),height:(0,$.NumberNode)({integer:!0,min:16,max:4064})},{context:"dimension_type"}),o=>({default:()=>at.DefaultDimensionType,validate:(d,n,a,p)=>(n=o.validate(d,n,a,p),(n==null?void 0:n.min_y)+(n==null?void 0:n.height)>2032&&a.add(d.push("height"),"error.min_y_plus_height",2032),(n==null?void 0:n.logical_height)>(n==null?void 0:n.height)&&a.add(d.push("logical_height"),"error.logical_height"),(n==null?void 0:n.height)%16!==0&&a.add(d.push("height"),"error.height_multiple",16),(n==null?void 0:n.min_y)%16!==0&&a.add(d.push("min_y"),"error.min_y_multiple",16),n)})))}pe.initDimensionTypeSchemas=ct;var fe={};Object.defineProperty(fe,"__esModule",{value:!0});fe.initItemModifierSchemas=void 0;const U=k,dt=z;function st(r,e){const t=U.Reference.bind(void 0,r),o=U.StringNode.bind(void 0,e);r.register("item_modifier",(0,U.ObjectOrList)(t("function"),{choiceContext:"function"}));const d={conditions:(0,U.Opt)((0,U.ListNode)(t("condition")))};r.register("function",(0,U.Mod)((0,U.ObjectNode)({function:o({validator:"resource",params:{pool:"loot_function_type"}}),[U.Switch]:[{push:"function"}],[U.Case]:(0,dt.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}fe.initItemModifierSchemas=st;var ge={},T={};Object.defineProperty(T,"__esModule",{value:!0});T.LootFunctions=T.LootConditions=T.LootCopySources=T.LootEntitySources=T.LootTableTypes=void 0;T.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]);T.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);T.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);T.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]);T.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]);Object.defineProperty(ge,"__esModule",{value:!0});ge.initLootTableSchemas=void 0;const u=k,oe=T,Re=z;function lt(r,e){const t=u.Reference.bind(void 0,r),o=u.StringNode.bind(void 0,e),d={conditions:(0,u.Opt)((0,u.ListNode)(t("loot_condition")))},n=g({functions:(0,u.Opt)((0,u.ListNode)(t("loot_function")))},d);function a(v,S,B){const E=[],ie=Z=>e.get(S).filter(J=>{var q;return((q=v.get(J))!==null&&q!==void 0?q:[]).every(Q=>Z.includes(Q))});for(const[Z,{allows:J,requires:q}]of oe.LootTableTypes){const I=[...J,...q];E.push({match:Q=>Q.getModel().get(new u.Path(["type"]))===Z,node:B(ie(I))})}return E.push({match:Z=>!0,node:B(S)}),(0,u.SwitchNode)(E)}const p=a(oe.LootConditions,"loot_condition_type",v=>o({validator:"resource",params:{pool:v instanceof Array?v:"loot_condition_type"}})),w=a(oe.LootFunctions,"loot_function_type",v=>o({validator:"resource",params:{pool:v instanceof Array?v:"loot_function_type"}})),m=a(oe.LootEntitySources,"entity_source",v=>o({enum:v})),f=a(oe.LootCopySources,"copy_source",v=>o({enum:v}));r.register("loot_table",(0,u.Mod)((0,u.ObjectNode)({type:(0,u.Opt)(o({validator:"resource",params:{pool:e.get("loot_context_type")}})),pools:(0,u.Opt)((0,u.ListNode)((0,u.Mod)((0,u.ObjectNode)(g({rolls:t("number_provider"),bonus_rolls:(0,u.Opt)(t("number_provider")),entries:(0,u.ListNode)(t("loot_entry"))},n),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,u.Opt)((0,u.ListNode)(t("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const j={enabled:v=>{var S;return((S=v.pop().get())===null||S===void 0?void 0:S.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(v.push("type").get())}};r.register("loot_entry",(0,u.Mod)((0,u.ObjectNode)({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0,min:1}),j)),quality:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),j)),[u.Switch]:[{push:"type"}],[u.Case]:{"minecraft:alternatives":g({children:(0,u.ListNode)(t("loot_entry"))},n),"minecraft:dynamic":g({name:o()},n),"minecraft:group":g({children:(0,u.ListNode)(t("loot_entry"))},n),"minecraft:item":g({name:o({validator:"resource",params:{pool:"item"}})},n),"minecraft:loot_table":g({name:o({validator:"resource",params:{pool:"$loot_table"}})},n),"minecraft:sequence":g({children:(0,u.ListNode)(t("loot_entry"))},n),"minecraft:tag":g({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,u.Opt)((0,u.BooleanNode)())},n)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),r.register("loot_function",(0,u.Mod)((0,u.ObjectNode)({function:w,[u.Switch]:[{push:"function"}],[u.Case]:(0,Re.FunctionCases)(d,f,m)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),r.register("loot_condition",(0,u.Mod)((0,u.ObjectNode)({condition:p,[u.Switch]:[{push:"condition"}],[u.Case]:(0,Re.ConditionCases)(m)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),r.register("attribute_modifier",(0,u.Mod)((0,u.ObjectNode)({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:t("number_provider"),operation:o({enum:["addition","multiply_base","multiply_total"]}),id:(0,u.Opt)(o({validator:"uuid"})),slot:(0,u.StringOrList)(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}ge.initLootTableSchemas=lt;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initPackMcmetaSchemas=void 0;const te=k,H=9;function mt(r,e){r.register("pack_mcmeta",(0,te.Mod)((0,te.ObjectNode)({pack:(0,te.Mod)((0,te.ObjectNode)({pack_format:(0,te.Mod)((0,te.NumberNode)({integer:!0,min:H,max:H}),{default:()=>H,canUpdate:(t,o)=>o!==H,update:()=>[{name:"pack_format",params:[H],newValue:H}]}),description:(0,te.Reference)(r,"text_component")}),{default:()=>({pack_format:H,description:""})})}),{default:()=>({pack:{pack_format:H,description:""}})}))}be.initPackMcmetaSchemas=mt;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initPredicatesSchemas=void 0;const c=k;function _t(r,e){const t=c.Reference.bind(void 0,r),o=c.StringNode.bind(void 0,e),d=(0,c.ChoiceNode)([{type:"string",node:o(),change:n=>typeof n=="boolean"||typeof n=="number"?n.toString():""},{type:"number",node:(0,c.NumberNode)(),change:n=>typeof n=="string"?parseInt(n):0},{type:"object",node:(0,c.ObjectNode)({min:(0,c.Opt)((0,c.NumberNode)({integer:!0})),max:(0,c.Opt)((0,c.NumberNode)({integer:!0}))}),change:n=>typeof n=="number"?{min:n,max:n}:{}},{type:"boolean",node:(0,c.BooleanNode)(),change:n=>n==="true"||n===1}]);r.register("item_predicate",(0,c.ObjectNode)({items:(0,c.Opt)((0,c.ListNode)(o({validator:"resource",params:{pool:"item"}}))),tag:(0,c.Opt)(o({validator:"resource",params:{pool:"$tag/item"}})),count:t("int_bounds"),durability:t("int_bounds"),potion:(0,c.Opt)(o({validator:"resource",params:{pool:"potion"}})),nbt:(0,c.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,c.Opt)((0,c.ListNode)(t("enchantment_predicate")))},{context:"item"})),r.register("enchantment_predicate",(0,c.ObjectNode)({enchantment:(0,c.Opt)(o({validator:"resource",params:{pool:"enchantment"}})),levels:t("int_bounds")},{context:"enchantment"})),r.register("block_predicate",(0,c.ObjectNode)({blocks:(0,c.Opt)((0,c.ListNode)(o({validator:"resource",params:{pool:"block"}}))),tag:(0,c.Opt)(o({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,c.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,c.Opt)((0,c.MapNode)(o(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),r.register("fluid_predicate",(0,c.ObjectNode)({fluid:(0,c.Opt)(o({validator:"resource",params:{pool:"fluid"}})),tag:(0,c.Opt)(o({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,c.Opt)((0,c.MapNode)(o(),d))},{context:"fluid"})),r.register("location_predicate",(0,c.ObjectNode)({position:(0,c.Opt)((0,c.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds")})),biome:(0,c.Opt)(o({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,c.Opt)(o({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),dimension:(0,c.Opt)(o({validator:"resource",params:{pool:"$dimension"}})),light:(0,c.Opt)((0,c.ObjectNode)({light:t("int_bounds")})),smokey:(0,c.Opt)((0,c.BooleanNode)()),block:(0,c.Opt)(t("block_predicate")),fluid:(0,c.Opt)(t("fluid_predicate"))},{context:"location"})),r.register("statistic_predicate",(0,c.ObjectNode)({type:o({validator:"resource",params:{pool:"stat_type"}}),stat:o(),value:t("int_bounds"),[c.Switch]:[{push:"type"}],[c.Case]:{"minecraft:mined":{stat:o({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:o({validator:"resource",params:{pool:"custom_stat"}})}}})),r.register("player_predicate",(0,c.ObjectNode)({gamemode:(0,c.Opt)(o({enum:"gamemode"})),level:t("int_bounds"),advancements:(0,c.Opt)((0,c.MapNode)(o({validator:"resource",params:{pool:"$advancement"}}),(0,c.ChoiceNode)([{type:"boolean",node:(0,c.BooleanNode)(),change:n=>!0},{type:"object",node:(0,c.MapNode)(o(),(0,c.BooleanNode)())}]))),recipes:(0,c.Opt)((0,c.MapNode)(o({validator:"resource",params:{pool:"$recipe"}}),(0,c.BooleanNode)())),stats:(0,c.Opt)((0,c.ListNode)(t("statistic_predicate"))),looking_at:(0,c.Opt)(t("entity_predicate"))},{context:"player"})),r.register("status_effect_predicate",(0,c.ObjectNode)({amplifier:t("int_bounds"),duration:t("int_bounds"),ambient:(0,c.Opt)((0,c.BooleanNode)()),visible:(0,c.Opt)((0,c.BooleanNode)())},{context:"status_effect"})),r.register("distance_predicate",(0,c.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds"),absolute:t("float_bounds"),horizontal:t("float_bounds")},{context:"distance"})),r.register("entity_predicate",(0,c.ObjectNode)({type:(0,c.Opt)(o({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,c.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,c.Opt)(o({validator:"team"})),location:(0,c.Opt)(t("location_predicate")),stepping_on:(0,c.Opt)(t("location_predicate")),distance:(0,c.Opt)(t("distance_predicate")),flags:(0,c.Opt)((0,c.ObjectNode)({is_on_fire:(0,c.Opt)((0,c.BooleanNode)()),is_sneaking:(0,c.Opt)((0,c.BooleanNode)()),is_sprinting:(0,c.Opt)((0,c.BooleanNode)()),is_swimming:(0,c.Opt)((0,c.BooleanNode)()),is_baby:(0,c.Opt)((0,c.BooleanNode)())})),equipment:(0,c.Opt)((0,c.MapNode)(o({enum:"slot"}),t("item_predicate"))),player:(0,c.Opt)(t("player_predicate")),vehicle:(0,c.Opt)(t("entity_predicate")),passenger:(0,c.Opt)(t("entity_predicate")),targeted_entity:(0,c.Opt)(t("entity_predicate")),lightning_bolt:(0,c.Opt)((0,c.ObjectNode)({blocks_set_on_fire:(0,c.Opt)(t("int_bounds")),entity_struck:(0,c.Opt)(t("entity_predicate"))})),fishing_hook:(0,c.Opt)((0,c.ObjectNode)({in_open_water:(0,c.Opt)((0,c.BooleanNode)())})),catType:(0,c.Opt)(o({enum:"cat_texture"})),effects:(0,c.Opt)((0,c.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate")))},{context:"entity"})),r.register("damage_source_predicate",(0,c.ObjectNode)({is_explosion:(0,c.Opt)((0,c.BooleanNode)()),is_fire:(0,c.Opt)((0,c.BooleanNode)()),is_magic:(0,c.Opt)((0,c.BooleanNode)()),is_projectile:(0,c.Opt)((0,c.BooleanNode)()),is_lightning:(0,c.Opt)((0,c.BooleanNode)()),bypasses_armor:(0,c.Opt)((0,c.BooleanNode)()),bypasses_invulnerability:(0,c.Opt)((0,c.BooleanNode)()),bypasses_magic:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(t("entity_predicate")),direct_entity:(0,c.Opt)(t("entity_predicate"))},{context:"damage_source"})),r.register("damage_predicate",(0,c.ObjectNode)({dealt:t("float_bounds"),taken:t("float_bounds"),blocked:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(t("entity_predicate")),type:(0,c.Opt)(t("damage_source_predicate"))},{context:"damage"}))}Ne.initPredicatesSchemas=_t;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initRecipeSchemas=void 0;const _=k;function ut(r,e){const t=_.Reference.bind(void 0,r),o=_.StringNode.bind(void 0,e);r.register("recipe",(0,_.Mod)((0,_.ObjectNode)({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[_.Switch]:[{push:"type"}],[_.Case]:{"minecraft:crafting_shaped":{group:(0,_.Opt)(o({enum:"recipe_group",additional:!0})),pattern:(0,_.ListNode)(o()),key:(0,_.MapNode)(o(),t("recipe_ingredient")),result:t("recipe_result")},"minecraft:crafting_shapeless":{group:(0,_.Opt)(o()),ingredients:(0,_.ListNode)(t("recipe_ingredient")),result:t("recipe_result")},"minecraft:smelting":{group:(0,_.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,_.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,_.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,_.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,_.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:(0,_.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,_.Opt)(o()),base:t("recipe_ingredient_object"),addition:t("recipe_ingredient_object"),result:t("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),r.register("recipe_ingredient",(0,_.Mod)((0,_.ChoiceNode)([{type:"object",node:t("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,_.ListNode)(t("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_ingredient_object",(0,_.Mod)((0,_.ObjectNode)({item:(0,_.Opt)(o({validator:"resource",params:{pool:"item"}})),tag:(0,_.Opt)(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_result",(0,_.Mod)((0,_.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),count:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}he.initRecipeSchemas=ut;var ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initTagsSchemas=void 0;const V=k;function pt(r,e){const t=V.StringNode.bind(void 0,e),o=d=>(0,V.Mod)((0,V.ObjectNode)({replace:(0,V.Opt)((0,V.BooleanNode)()),values:(0,V.ListNode)((0,V.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:d,allowTag:!0}}),change:n=>n.id},{type:"object",node:(0,V.ObjectNode)({id:t({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,V.BooleanNode)()}),change:n=>({id:n})}]))},{context:"tag"}),{default:()=>({values:[]})});r.register("block_tag",o("block")),r.register("entity_type_tag",o("entity_type")),r.register("fluid_tag",o("fluid")),r.register("function_tag",o("$function")),r.register("game_event_tag",o("game_event")),r.register("item_tag",o("item")),r.register("advancement_tag",o("$advancement")),r.register("dimension_tag",o("$dimension")),r.register("dimension_type_tag",o("$dimension_type")),r.register("function_tag",o("$function")),r.register("item_modifier_tag",o("$item_modifier")),r.register("loot_table_tag",o("$loot_table")),r.register("predicate_tag",o("$predicate")),r.register("recipe_tag",o("$recipe")),r.register("structure_tag",o("$structure")),r.register("biome_tag",o("$worldgen/biome")),r.register("configured_carver_tag",o("$worldgen/configured_carver")),r.register("configured_decorator_tag",o("$worldgen/configured_decorator")),r.register("configured_feature_tag",o("$worldgen/configured_feature")),r.register("configured_structure_feature_tag",o("$worldgen/configured_structure_feature")),r.register("configured_surface_builder_tag",o("$worldgen/configured_surface_builder")),r.register("density_function_tag",o("$worldgen/density_function")),r.register("noise_tag",o("$worldgen/noise")),r.register("noise_settings_tag",o("$worldgen/noise_settings")),r.register("placed_feature_tag",o("$worldgen/placed_feature")),r.register("processor_list_tag",o("$worldgen/processor_list")),r.register("structure_set_tag",o("$worldgen/structure_set")),r.register("template_pool_tag",o("$worldgen/template_pool"))}ye.initTagsSchemas=pt;var ve={};Object.defineProperty(ve,"__esModule",{value:!0});ve.initTextComponentSchemas=void 0;const l=k;function ft(r,e){const t=l.Reference.bind(void 0,r),o=l.StringNode.bind(void 0,e),d=a=>{var p;return a instanceof Array?d(a[0]):(p=a==null?void 0:a.text)!==null&&p!==void 0?p:typeof a=="object"?"":a==null?void 0:a.toString()};r.register("text_component",(0,l.Mod)((0,l.ChoiceNode)([{type:"object",node:t("text_component_object"),change:a=>a instanceof Array?typeof a[0]=="object"?a[0]:{text:d(a[0])}:typeof a=="object"?a:{text:d(a)}},{type:"list",node:t("text_component_list"),change:a=>[a]},{type:"string",priority:1,node:o(),change:d},{type:"number",node:(0,l.NumberNode)(),change:a=>{const p=parseFloat(d(a));return isFinite(p)?p:a?1:0}},{type:"boolean",node:(0,l.BooleanNode)(),change:a=>{const p=d(a);return p==="true"||p==="false"?p==="true":!!p}}],{context:"text_component"}),{default:()=>({text:""})}));const n={color:(0,l.Opt)(o()),font:(0,l.Opt)(o()),bold:(0,l.Opt)((0,l.BooleanNode)()),italic:(0,l.Opt)((0,l.BooleanNode)()),underlined:(0,l.Opt)((0,l.BooleanNode)()),strikethrough:(0,l.Opt)((0,l.BooleanNode)()),obfuscated:(0,l.Opt)((0,l.BooleanNode)()),insertion:(0,l.Opt)(o()),clickEvent:(0,l.Opt)((0,l.ObjectNode)({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[l.Switch]:[{push:"action"}],[l.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,l.Opt)((0,l.ObjectNode)({action:o({enum:["show_text","show_item","show_entity"]}),[l.Switch]:[{push:"action"}],[l.Case]:{show_text:{value:(0,l.Opt)(t("text_component")),contents:(0,l.Opt)(t("text_component"))},show_item:{value:(0,l.Opt)(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,l.Opt)((0,l.ObjectNode)({id:o({validator:"resource",params:{pool:"item"}}),count:(0,l.Opt)((0,l.NumberNode)({integer:!0})),tag:(0,l.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,l.Opt)((0,l.ObjectNode)({name:(0,l.Opt)(o()),type:(0,l.Opt)(o()),id:(0,l.Opt)(o())})),contents:(0,l.Opt)((0,l.Mod)((0,l.ObjectNode)({name:(0,l.Opt)(t("text_component")),type:o({validator:"resource",params:{pool:"entity_type"}}),id:o({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:(0,l.Opt)(t("text_component_list"))};r.register("text_component_object",(0,l.Mod)((0,l.ChoiceNode)([{type:"text",match:a=>typeof a=="object",change:a=>({text:""}),priority:-1,node:(0,l.ObjectNode)(g({text:o()},n))},{type:"translation",match:a=>(a==null?void 0:a.translate)!==void 0,change:a=>({translate:""}),node:(0,l.ObjectNode)(g({translate:o(),with:(0,l.Opt)(t("text_component_list"))},n))},{type:"score",match:a=>(a==null?void 0:a.score)!==void 0,change:a=>({score:{}}),node:(0,l.ObjectNode)(g({score:(0,l.ObjectNode)({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:(0,l.Opt)(o())})},n))},{type:"selector",match:a=>(a==null?void 0:a.selector)!==void 0,change:a=>({selector:""}),node:(0,l.ObjectNode)(g({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,l.Opt)(t("text_component"))},n))},{type:"keybind",match:a=>(a==null?void 0:a.keybind)!==void 0,change:a=>({keybind:""}),node:(0,l.ObjectNode)(g({keybind:o({enum:"keybind",additional:!0})},n))},{type:"nbt",match:a=>(a==null?void 0:a.nbt)!==void 0,change:a=>({nbt:""}),node:(0,l.ObjectNode)(g({nbt:o({validator:"nbt_path"}),block:(0,l.Opt)(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,l.Opt)(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,l.Opt)(o({validator:"resource",params:{pool:"$storage"}})),interpret:(0,l.Opt)((0,l.BooleanNode)()),separator:(0,l.Opt)(t("text_component"))},n))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),r.register("text_component_list",(0,l.Mod)((0,l.ListNode)(t("text_component")),{default:()=>[{text:""}]}))}ve.initTextComponentSchemas=ft;var Oe={},Fe={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initBiomeSchemas=r.MobCategorySpawnSettings=void 0;const e=k,t=z;function o(d,n){const a=e.StringNode.bind(void 0,n);r.MobCategorySpawnSettings=(0,e.Mod)((0,e.ListNode)((0,e.ObjectNode)({type:a({validator:"resource",params:{pool:"entity_type"}}),weight:(0,e.NumberNode)({integer:!0}),minCount:(0,e.NumberNode)({integer:!0}),maxCount:(0,e.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]}),d.register("biome",(0,e.Mod)((0,e.ObjectNode)({temperature:(0,e.NumberNode)(),downfall:(0,e.NumberNode)(),precipitation:a({enum:["none","rain","snow"]}),temperature_modifier:(0,e.Opt)(a({enum:["none","frozen"]})),category:a({enum:"biome_category"}),creature_spawn_probability:(0,e.Opt)((0,e.NumberNode)({min:0,max:1})),effects:(0,e.ObjectNode)({sky_color:(0,e.NumberNode)({color:!0}),fog_color:(0,e.NumberNode)({color:!0}),water_color:(0,e.NumberNode)({color:!0}),water_fog_color:(0,e.NumberNode)({color:!0}),grass_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),foliage_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),grass_color_modifier:(0,e.Opt)(a({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,e.Opt)(a()),mood_sound:(0,e.Opt)((0,e.ObjectNode)({sound:a(),tick_delay:(0,e.NumberNode)({integer:!0}),block_search_extent:(0,e.NumberNode)({integer:!0}),offset:(0,e.NumberNode)()})),additions_sound:(0,e.Opt)((0,e.ObjectNode)({sound:a(),tick_chance:(0,e.NumberNode)({min:0,max:1})})),music:(0,e.Opt)((0,e.ObjectNode)({sound:a(),min_delay:(0,e.NumberNode)({integer:!0,min:0}),max_delay:(0,e.NumberNode)({integer:!0,min:0}),replace_current_music:(0,e.BooleanNode)()})),particle:(0,e.Opt)((0,e.ObjectNode)({options:(0,e.ObjectNode)({type:a()}),probability:(0,e.NumberNode)({min:0,max:1})}))}),spawners:(0,e.MapNode)(a({enum:"mob_category"}),r.MobCategorySpawnSettings),spawn_costs:(0,e.MapNode)(a({validator:"resource",params:{pool:"entity_type"}}),(0,e.Mod)((0,e.ObjectNode)({energy_budget:(0,e.NumberNode)(),charge:(0,e.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,e.MapNode)(a({enum:["air","liquid"]}),(0,e.Mod)((0,t.Tag)({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:(0,e.ListNode)((0,e.Mod)((0,t.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"}),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}r.initBiomeSchemas=o})(Fe);var ke={};Object.defineProperty(ke,"__esModule",{value:!0});ke.initCarverSchemas=void 0;const P=k,K=z;function gt(r,e){const t=P.Reference.bind(void 0,r),o=P.StringNode.bind(void 0,e),d={vertical_rotation:(0,K.FloatProvider)(),shape:(0,P.ObjectNode)({distance_factor:(0,K.FloatProvider)(),thickness:(0,K.FloatProvider)(),width_smoothness:(0,P.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,K.FloatProvider)(),vertical_radius_default_factor:(0,P.NumberNode)(),vertical_radius_center_factor:(0,P.NumberNode)()})},n={horizontal_radius_multiplier:(0,K.FloatProvider)(),vertical_radius_multiplier:(0,K.FloatProvider)(),floor_level:(0,K.FloatProvider)({min:-1,max:1})};r.register("configured_carver",(0,P.Mod)((0,P.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,P.ObjectNode)({probability:(0,P.NumberNode)({min:0,max:1}),y:t("height_provider"),yScale:(0,K.FloatProvider)(),lava_level:t("vertical_anchor"),debug_settings:(0,P.Opt)((0,P.ObjectNode)({debug_mode:(0,P.Opt)((0,P.BooleanNode)()),air_state:(0,P.Opt)(t("block_state")),water_state:(0,P.Opt)(t("block_state")),lava_state:(0,P.Opt)(t("block_state")),barrier_state:(0,P.Opt)(t("block_state"))})),[P.Switch]:["pop",{push:"type"}],[P.Case]:{"minecraft:canyon":d,"minecraft:cave":n,"minecraft:nether_cave":n}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}ke.initCarverSchemas=gt;var we={};Object.defineProperty(we,"__esModule",{value:!0});we.initDecoratorSchemas=void 0;const L=k,ne=z;function bt(r,e){const t=L.Reference.bind(void 0,r),o=L.StringNode.bind(void 0,e);r.register("decorator",(0,L.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[L.Switch]:[{push:"type"}],[L.Case]:{"minecraft:block_predicate_filter":{predicate:t("block_predicate_worldgen")},"minecraft:carving_mask":{step:o({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,L.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,ne.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,ne.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,L.NumberNode)(),below_noise:(0,L.NumberNode)({integer:!0}),above_noise:(0,L.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,L.NumberNode)({integer:!0}),noise_factor:(0,L.NumberNode)(),noise_offset:(0,L.Opt)((0,L.NumberNode)())},"minecraft:environment_scan":{direction_of_search:o({enum:["up","down"]}),max_steps:(0,L.NumberNode)({integer:!0,min:1,max:32}),target_condition:t("block_predicate_worldgen"),allowed_search_condition:(0,L.Opt)(t("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:o({enum:"heightmap_type"})},"minecraft:height_range":{height:t("height_provider")},"minecraft:random_offset":{xz_spread:(0,ne.IntProvider)({min:-16,max:16}),y_spread:(0,ne.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:o({enum:"heightmap_type"}),min_inclusive:(0,L.Opt)((0,L.NumberNode)({integer:!0})),max_inclusive:(0,L.Opt)((0,L.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,L.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))}we.initDecoratorSchemas=bt;var Be={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initDensityFunctionSchemas=r.DensityFunction=void 0;const e=k;function t(o,d){const n=e.StringNode.bind(void 0,d),a=e.Reference.bind(void 0,o);r.DensityFunction=(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)(),change:()=>0},{type:"string",priority:1,node:n({validator:"resource",params:{pool:"$worldgen/density_function"}}),change:()=>{}},{type:"object",node:a("density_function"),change:()=>({})}],{choiceContext:"density_function"}),{default:()=>0});const p=(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/noise"}}),change:()=>{}},{type:"object",node:a("noise_parameters")}],{choiceContext:"noise_parameters"}),w=(0,e.NumberNode)({min:-1e6,max:1e6}),m=(0,e.NumberNode)({integer:!0,min:-2032*2,max:2031*2});o.register("density_function",(0,e.Mod)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/density_function_type"}}),[e.Switch]:[{push:"type"}],[e.Case]:{"minecraft:abs":{argument:r.DensityFunction},"minecraft:add":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:blend_density":{argument:r.DensityFunction},"minecraft:cache_2d":{argument:r.DensityFunction},"minecraft:cache_all_in_cell":{argument:r.DensityFunction},"minecraft:cache_once":{argument:r.DensityFunction},"minecraft:clamp":{input:r.DensityFunction,min:w,max:w},"minecraft:constant":{argument:(0,e.NumberNode)()},"minecraft:cube":{argument:r.DensityFunction},"minecraft:flat_cache":{argument:r.DensityFunction},"minecraft:half_negative":{argument:r.DensityFunction},"minecraft:interpolated":{argument:r.DensityFunction},"minecraft:max":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:min":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:mul":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:noise":{noise:p,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)()},"minecraft:quarter_negative":{argument:r.DensityFunction},"minecraft:range_choice":{input:r.DensityFunction,min_inclusive:w,max_exclusive:w,when_in_range:r.DensityFunction,when_out_of_range:r.DensityFunction},"minecraft:shift":{argument:r.DensityFunction},"minecraft:shift_a":{argument:r.DensityFunction},"minecraft:shift_b":{argument:r.DensityFunction},"minecraft:shifted_noise":{noise:p,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)(),shift_x:r.DensityFunction,shift_y:r.DensityFunction,shift_z:r.DensityFunction},"minecraft:slide":{argument:r.DensityFunction},"minecraft:spline":{spline:a("cubic_spline"),min_value:w,max_value:w},"minecraft:square":{argument:r.DensityFunction},"minecraft:squeeze":{argument:r.DensityFunction},"minecraft:terrain_shaper_spline":{spline:n({enum:["offset","factor","jaggedness"]}),min_value:w,max_value:w,continentalness:r.DensityFunction,erosion:r.DensityFunction,weirdness:r.DensityFunction},"minecraft:weird_scaled_sampler":{rarity_value_mapper:n({enum:["type_1","type_2"]}),noise:p,input:r.DensityFunction},"minecraft:y_clamped_gradient":{from_y:m,to_y:m,from_value:w,to_value:w}}},{context:"density_function",disableSwitchContext:!0}),{default:()=>({type:"minecraft:noise",noise:"minecraft:cave_entrance",xz_scale:.75,y_scale:.5})})),o.register("cubic_spline",(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)()},{type:"object",node:(0,e.ObjectNode)({coordinate:r.DensityFunction,points:(0,e.ListNode)((0,e.ObjectNode)({location:(0,e.NumberNode)(),derivative:(0,e.NumberNode)(),value:a("cubic_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}r.initDensityFunctionSchemas=t})(Be);var xe={},Y={};Object.defineProperty(Y,"__esModule",{value:!0});Y.initProcessorListSchemas=Y.Processors=void 0;const y=k;function Nt(r,e){const t=y.Reference.bind(void 0,r),o=y.StringNode.bind(void 0,e);Y.Processors=(0,y.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:n=>{}},{type:"object",node:t("processor_list"),change:n=>({processors:[{processor_type:"minecraft:nop"}]})}]),r.register("processor_list",(0,y.Mod)((0,y.ObjectNode)({processors:(0,y.ListNode)(t("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),r.register("processor",(0,y.Mod)((0,y.ObjectNode)({processor_type:o({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[y.Switch]:[{push:"processor_type"}],[y.Case]:{"minecraft:block_age":{mossiness:(0,y.NumberNode)()},"minecraft:block_ignore":{blocks:(0,y.ListNode)(t("block_state"))},"minecraft:block_rot":{integrity:(0,y.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:o({enum:"heightmap_type"}),offset:(0,y.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:o({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:(0,y.ListNode)(t("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),r.register("processor_rule",(0,y.Mod)((0,y.ObjectNode)({position_predicate:(0,y.Opt)(t("pos_rule_test")),location_predicate:t("rule_test"),input_predicate:t("rule_test"),output_state:t("block_state"),output_nbt:(0,y.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const d={min_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1})),max_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1}))};r.register("pos_rule_test",(0,y.ObjectNode)({predicate_type:o({validator:"resource",params:{pool:"pos_rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:axis_aligned_linear_pos":g({axis:o({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),r.register("rule_test",(0,y.ObjectNode)({predicate_type:o({validator:"resource",params:{pool:"rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:block_match":{block:o({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:t("block_state")},"minecraft:random_block_match":{block:o({validator:"resource",params:{pool:"block"}}),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:t("block_state"),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:o({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}Y.initProcessorListSchemas=Nt;Object.defineProperty(xe,"__esModule",{value:!0});xe.initFeatureSchemas=void 0;const i=k,h=z,Te=Y;function ht(r,e){const t=i.Reference.bind(void 0,r),o=i.StringNode.bind(void 0,e),d=(0,i.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:t("configured_feature")}],{choiceContext:"feature"}),n=(0,i.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:t("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1})),xz_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),y_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),feature:n},p={state:t("block_state"),radius:(0,h.IntProvider)({min:0,max:8}),half_height:(0,i.NumberNode)({integer:!0,min:0,max:4}),targets:(0,i.ListNode)(t("block_state"))},w={cap_provider:t("block_state_provider"),stem_provider:t("block_state_provider"),foliage_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0}))},m=(0,i.ObjectNode)({target:t("rule_test"),state:t("block_state")}),f={size:(0,i.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,i.NumberNode)({min:0,max:1}),targets:(0,i.ListNode)(m)},j={surface:o({enum:"cave_surface"}),depth:(0,h.IntProvider)({min:1,max:128}),vertical_range:(0,i.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,i.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,i.NumberNode)({min:0,max:1}),vegetation_chance:(0,i.NumberNode)({min:0,max:1}),xz_radius:(0,h.IntProvider)(),replaceable:o({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:t("block_state_provider"),vegetation_feature:n};r.register("configured_feature",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,i.ObjectNode)({[i.Switch]:["pop",{push:"type"}],[i.Case]:{"minecraft:bamboo":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,h.IntProvider)({min:0,max:3}),height:(0,h.IntProvider)({min:1,max:10})},"minecraft:block_column":{direction:o({enum:["up","down","north","east","south","west"]}),allowed_placement:t("block_predicate_worldgen"),prioritize_tip:(0,i.BooleanNode)(),layers:(0,i.ListNode)((0,i.ObjectNode)({height:(0,h.IntProvider)({min:0}),provider:t("block_state_provider")}))},"minecraft:block_pile":{state_provider:t("block_state_provider")},"minecraft:delta_feature":{contents:t("block_state"),rim:t("block_state"),size:(0,h.IntProvider)({min:0,max:16}),rim_size:(0,h.IntProvider)({min:0,max:16})},"minecraft:disk":p,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,i.NumberNode)({integer:!0,min:1,max:512}),height:(0,h.IntProvider)({min:0,max:128}),radius:(0,h.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,i.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,i.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,h.IntProvider)({min:0,max:128}),density:(0,h.FloatProvider)({min:0,max:2}),wetness:(0,h.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,i.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,i.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,i.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,i.BooleanNode)(),exit:(0,i.Opt)(t("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,i.Opt)((0,i.BooleanNode)()),crystal_beam_target:(0,i.Opt)(t("block_pos")),spikes:(0,i.ListNode)((0,i.ObjectNode)({centerX:(0,i.Opt)((0,i.NumberNode)({integer:!0})),centerZ:(0,i.Opt)((0,i.NumberNode)({integer:!0})),radius:(0,i.Opt)((0,i.NumberNode)({integer:!0})),height:(0,i.Opt)((0,i.NumberNode)({integer:!0})),guarded:(0,i.Opt)((0,i.BooleanNode)())}))},"minecraft:fill_layer":{state:t("block_state"),height:(0,i.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:t("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,i.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,i.ListNode)(o({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,i.ListNode)(o({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Te.Processors,overlay_processors:Te.Processors},"minecraft:geode":{blocks:(0,i.ObjectNode)({filling_provider:t("block_state_provider"),inner_layer_provider:t("block_state_provider"),alternate_inner_layer_provider:t("block_state_provider"),middle_layer_provider:t("block_state_provider"),outer_layer_provider:t("block_state_provider"),inner_placements:(0,i.ListNode)(t("block_state")),cannot_replace:o({validator:"resource",params:{pool:"block",requireTag:!0}}),invalid_blocks:o({validator:"resource",params:{pool:"block",requireTag:!0}})}),layers:(0,i.ObjectNode)({filling:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),inner_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),middle_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),outer_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50}))}),crack:(0,i.ObjectNode)({generate_crack_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),base_crack_size:(0,i.Opt)((0,i.NumberNode)({min:0,max:5})),crack_point_offset:(0,i.Opt)((0,i.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,i.Opt)((0,i.BooleanNode)()),outer_wall_distance:(0,i.Opt)((0,h.IntProvider)({min:1,max:20})),distribution_points:(0,i.Opt)((0,h.IntProvider)({min:1,max:20})),point_offset:(0,i.Opt)((0,h.IntProvider)({min:0,max:10})),min_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),max_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,i.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,i.Opt)((0,i.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),can_place_on_floor:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_ceiling:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_wall:(0,i.Opt)((0,i.BooleanNode)()),can_be_placed_on:(0,h.Tag)({resource:"block"})},"minecraft:huge_brown_mushroom":w,"minecraft:huge_fungus":{hat_state:t("block_state"),decor_state:t("block_state"),stem_state:t("block_state"),valid_base_block:t("block_state"),planted:(0,i.Opt)((0,i.BooleanNode)())},"minecraft:huge_red_mushroom":w,"minecraft:ice_patch":p,"minecraft:iceberg":{state:t("block_state")},"minecraft:lake":{fluid:t("block_state_provider"),barrier:t("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,h.IntProvider)({min:0,max:60}),height_scale:(0,h.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,i.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,h.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,h.FloatProvider)({min:.1,max:10}),wind_speed:(0,h.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,i.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,i.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:t("block_state_provider"),spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:t("block_state"),target:t("block_state"),radius:(0,h.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":f,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,i.Opt)((0,i.NumberNode)({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:n,feature_true:n},"minecraft:random_selector":{features:(0,i.ListNode)((0,i.ObjectNode)({chance:(0,i.NumberNode)({min:0,max:1}),feature:n})),default:n},"minecraft:replace_single_block":{targets:(0,i.ListNode)(m)},"minecraft:root_system":{required_vertical_space_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,i.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,i.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,i.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:o({validator:"resource",params:{pool:"block",requireTag:!0}}),root_state_provider:t("block_state_provider"),hanging_root_state_provider:t("block_state_provider"),allowed_tree_position:t("block_predicate_worldgen"),feature:n},"minecraft:scattered_ore":f,"minecraft:sea_pickle":{count:(0,h.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:t("block_state_provider")},"minecraft:simple_random_selector":{features:(0,h.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:t("fluid_state"),rock_count:(0,i.NumberNode)({integer:!0}),hole_count:(0,i.NumberNode)({integer:!0}),requires_block_below:(0,i.BooleanNode)(),valid_blocks:(0,h.Tag)({resource:"block"})},"minecraft:tree":{ignore_vines:(0,i.Opt)((0,i.BooleanNode)()),force_dirt:(0,i.Opt)((0,i.BooleanNode)()),minimum_size:t("feature_size"),dirt_provider:t("block_state_provider"),trunk_provider:t("block_state_provider"),foliage_provider:t("block_state_provider"),trunk_placer:(0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,i.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,i.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,i.NumberNode)({integer:!0,min:0,max:24}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,h.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,h.IntProvider)({min:0,max:16}),offset:(0,h.IntProvider)({min:0,max:16}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:blob_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,h.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,h.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,h.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,h.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,i.ListNode)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:alter_ground":{provider:t("block_state_provider")},"minecraft:beehive":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,i.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1}),max_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,i.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,i.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,i.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":j,"minecraft:waterlogged_vegetation_patch":j}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),r.register("placed_feature",(0,i.Mod)((0,i.ObjectNode)({feature:d,placement:(0,i.ListNode)(t("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),r.register("feature_size",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,i.Opt)((0,i.NumberNode)({min:0,max:80})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:two_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const v={seed:(0,i.NumberNode)({integer:!0}),noise:t("noise_parameters"),scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};r.register("block_state_provider",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:dual_noise_provider":A(g({},v),{variety:(0,h.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:t("noise_parameters"),slow_scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,i.ListNode)(t("block_state"))}),"minecraft:noise_threshold_provider":A(g({},v),{threshold:(0,i.NumberNode)({min:-1,max:1}),high_chance:(0,i.NumberNode)({min:0,max:1}),default_state:t("block_state"),low_states:(0,i.ListNode)(t("block_state")),high_states:(0,i.ListNode)(t("block_state"))}),"minecraft:noise_provider":A(g({},v),{states:(0,i.ListNode)(t("block_state"))}),"minecraft:randomized_int_state_provider":{property:o(),values:(0,h.IntProvider)(),source:t("block_state_provider")},"minecraft:rotated_block_provider":{state:t("block_state")},"minecraft:simple_state_provider":{state:t("block_state")},"minecraft:weighted_state_provider":{entries:(0,i.ListNode)((0,i.Mod)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0,min:1}),data:t("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const S={offset:(0,i.Opt)((0,i.ListNode)((0,i.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};r.register("block_predicate_worldgen",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"block_predicate_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:all_of":{predicates:(0,i.ListNode)(t("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,i.ListNode)(t("block_predicate_worldgen"))},"minecraft:has_sturdy_face":A(g({},S),{direction:o({enum:"direction"})}),"minecraft:inside_world_bounds":g({},S),"minecraft:matching_block_tag":A(g({},S),{tag:o({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":A(g({},S),{blocks:(0,h.Tag)({resource:"block"})}),"minecraft:matching_fluids":A(g({},S),{fluids:(0,h.Tag)({resource:"fluid"})}),"minecraft:not":{predicate:t("block_predicate_worldgen")},"minecraft:would_survive":A(g({},S),{state:t("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))}xe.initFeatureSchemas=ht;var Se={};Object.defineProperty(Se,"__esModule",{value:!0});Se.initNoiseSettingsSchemas=void 0;const N=k,yt=z,D=Be;function vt(r,e){const t=N.Reference.bind(void 0,r),o=N.StringNode.bind(void 0,e);r.register("noise_settings",(0,N.Mod)((0,N.ObjectNode)({sea_level:(0,N.NumberNode)({integer:!0}),disable_mob_generation:(0,N.BooleanNode)(),aquifers_enabled:(0,N.BooleanNode)(),ore_veins_enabled:(0,N.BooleanNode)(),legacy_random_source:(0,N.BooleanNode)(),default_block:t("block_state"),default_fluid:t("block_state"),noise:(0,N.ObjectNode)({min_y:(0,N.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,N.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,N.NumberNode)({integer:!0}),size_vertical:(0,N.NumberNode)({integer:!0}),sampling:(0,N.ObjectNode)({xz_scale:(0,N.NumberNode)(),y_scale:(0,N.NumberNode)(),xz_factor:(0,N.NumberNode)(),y_factor:(0,N.NumberNode)()}),bottom_slide:t("noise_slider"),top_slide:t("noise_slider"),terrain_shaper:t("terrain_shaper")}),noise_router:(0,N.ObjectNode)({barrier:D.DensityFunction,fluid_level_floodedness:D.DensityFunction,fluid_level_spread:D.DensityFunction,lava:D.DensityFunction,temperature:D.DensityFunction,vegetation:D.DensityFunction,continents:D.DensityFunction,erosion:D.DensityFunction,depth:D.DensityFunction,ridges:D.DensityFunction,initial_density_without_jaggedness:D.DensityFunction,final_density:D.DensityFunction,vein_toggle:D.DensityFunction,vein_ridged:D.DensityFunction,vein_gap:D.DensityFunction}),surface_rule:t("material_rule")},{context:"noise_settings"}),d=>({default:()=>yt.DefaultNoiseSettings,validate:(n,a,p,w)=>{var m,f,j,v;return a=d.validate(n,a,p,w),((m=a==null?void 0:a.noise)===null||m===void 0?void 0:m.min_y)+((f=a==null?void 0:a.noise)===null||f===void 0?void 0:f.height)>2047&&p.add(n.push("noise").push("height"),"error.min_y_plus_height",2047),((j=a==null?void 0:a.noise)===null||j===void 0?void 0:j.height)%16!==0&&p.add(n.push("noise").push("height"),"error.height_multiple",16),((v=a==null?void 0:a.noise)===null||v===void 0?void 0:v.min_y)%16!==0&&p.add(n.push("noise").push("min_y"),"error.min_y_multiple",16),a}}))),r.register("noise_slider",(0,N.ObjectNode)({target:(0,N.NumberNode)(),size:(0,N.NumberNode)({integer:!0,min:0}),offset:(0,N.NumberNode)({integer:!0})})),r.register("generator_layer",(0,N.Mod)((0,N.ObjectNode)({block:o({validator:"resource",params:{pool:"block"}}),height:(0,N.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),r.register("terrain_shaper",(0,N.Mod)((0,N.ObjectNode)({offset:t("terrain_spline"),factor:t("terrain_spline"),jaggedness:t("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),r.register("terrain_spline",(0,N.Mod)((0,N.ChoiceNode)([{type:"number",node:(0,N.NumberNode)()},{type:"object",node:(0,N.ObjectNode)({coordinate:(0,N.Mod)(o({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:(0,N.ListNode)((0,N.ObjectNode)({location:(0,N.NumberNode)(),derivative:(0,N.NumberNode)(),value:t("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}Se.initNoiseSettingsSchemas=vt;var je={};Object.defineProperty(je,"__esModule",{value:!0});je.initStructureFeatureSchemas=void 0;const F=k,Ot=z,kt=Fe;function wt(r,e){const t=F.StringNode.bind(void 0,e),o=F.Reference.bind(void 0,r),d={start_pool:t({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,F.NumberNode)({integer:!0})};r.register("configured_structure_feature",(0,F.Mod)((0,F.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_feature"}}),biomes:(0,Ot.Tag)({resource:"$worldgen/biome"}),adapt_noise:(0,F.Opt)((0,F.BooleanNode)()),spawn_overrides:(0,F.MapNode)(t({enum:"mob_category"}),(0,F.ObjectNode)({bounding_box:t({enum:["piece","full"]}),spawns:kt.MobCategorySpawnSettings})),config:(0,F.ObjectNode)({[F.Switch]:["pop",{push:"type"}],[F.Case]:{"minecraft:bastion_remnant":d,"minecraft:buried_treasure":{probability:(0,F.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:t({enum:["normal","mesa"]}),probability:(0,F.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:o("height_provider")},"minecraft:ocean_ruin":{biome_temp:t({enum:["cold","warm"]}),large_probability:(0,F.NumberNode)({min:0,max:1}),cluster_probability:(0,F.NumberNode)({min:0,max:1})},"minecraft:pillager_outpost":d,"minecraft:ruined_portal":{portal_type:t({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:(0,F.Opt)((0,F.BooleanNode)())},"minecraft:village":d}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}je.initStructureFeatureSchemas=wt;var Ce={};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.initStructureSetSchemas=void 0;const M=k,xt=z;function St(r,e){const t=M.StringNode.bind(void 0,e),o=M.Reference.bind(void 0,r);r.register("structure_set",(0,M.ObjectNode)({structures:(0,M.ListNode)((0,M.ObjectNode)({structure:(0,xt.Tag)({resource:"$worldgen/configured_structure_feature"}),weight:(0,M.NumberNode)({integer:!0,min:1})})),placement:o("structure_placement")},{context:"structure_set"})),r.register("structure_placement",(0,M.Mod)((0,M.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_placement"}}),[M.Switch]:[{push:"type"}],[M.Case]:{"minecraft:concentric_rings":{distance:(0,M.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,M.NumberNode)({integer:!0,min:0,max:1023}),count:(0,M.NumberNode)({integer:!0,min:1,max:4095})},"minecraft:random_spread":{spread_type:(0,M.Opt)(t({enum:["linear","triangular"]})),spacing:(0,M.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,M.Mod)((0,M.NumberNode)({integer:!0,min:0,max:4096}),d=>({validate:(n,a,p,w)=>(n.pop().push("spacing").get()<=a&&p.add(n,"error.separation_smaller_spacing"),d.validate(n,a,p,w))})),salt:(0,M.NumberNode)({integer:!0,min:0}),locate_offset:(0,M.Opt)((0,M.ListNode)((0,M.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))}}},{context:"structure_placement"}),{default:()=>({type:"minecraft:random_spread",spacing:10,separation:5,salt:Math.floor(Math.random()*2147483647)})}))}Ce.initStructureSetSchemas=St;var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.initSurfaceRuleSchemas=void 0;const C=k;function jt(r,e){const t=C.StringNode.bind(void 0,e),o=C.Reference.bind(void 0,r);r.register("material_rule",(0,C.Mod)((0,C.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_rule"}}),[C.Switch]:[{push:"type"}],[C.Case]:{"minecraft:block":{result_state:o("block_state")},"minecraft:condition":{if_true:o("material_condition"),then_run:o("material_rule")},"minecraft:sequence":{sequence:(0,C.ListNode)(o("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),r.register("material_condition",(0,C.Mod)((0,C.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_condition"}}),[C.Switch]:[{push:"type"}],[C.Case]:{"minecraft:biome":{biome_is:(0,C.ListNode)(t({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:t({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,C.NumberNode)(),max_threshold:(0,C.NumberNode)()},"minecraft:not":{invert:o("material_condition")},"minecraft:stone_depth":{offset:(0,C.NumberNode)({integer:!0}),surface_type:t({enum:"cave_surface"}),add_surface_depth:(0,C.BooleanNode)(),secondary_depth_range:(0,C.NumberNode)({integer:!0})},"minecraft:vertical_gradient":{random_name:t(),true_at_and_below:o("vertical_anchor"),false_at_and_above:o("vertical_anchor")},"minecraft:water":{offset:(0,C.NumberNode)({integer:!0}),surface_depth_multiplier:(0,C.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,C.BooleanNode)()},"minecraft:y_above":{anchor:o("vertical_anchor"),surface_depth_multiplier:(0,C.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,C.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))}Me.initSurfaceRuleSchemas=jt;var Pe={};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.initTemplatePoolSchemas=void 0;const R=k,qe=Y;function Ct(r,e){const t=R.Reference.bind(void 0,r),o=R.StringNode.bind(void 0,e);r.register("template_pool",(0,R.Mod)((0,R.ObjectNode)({name:o(),fallback:o(),elements:(0,R.ListNode)(t("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),r.register("template_weighted_element",(0,R.Mod)((0,R.ObjectNode)({weight:(0,R.NumberNode)({integer:!0,min:1}),element:t("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),r.register("template_element",(0,R.Mod)((0,R.ObjectNode)({element_type:o({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:o({enum:["rigid","terrain_matching"]}),[R.Switch]:[{push:"element_type"}],[R.Case]:{"minecraft:feature_pool_element":{feature:o({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:qe.Processors},"minecraft:list_pool_element":{elements:(0,R.ListNode)(t("template_element"))},"minecraft:single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:qe.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}Pe.initTemplatePoolSchemas=Ct;Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initWorldgenSchemas=void 0;const Mt=Fe,Pt=ke,Lt=we,$t=Be,Ft=xe,Bt=Se,Dt=Y,zt=je,Rt=Ce,Tt=Me,qt=Pe;function It(r,e){(0,Dt.initProcessorListSchemas)(r,e),(0,$t.initDensityFunctionSchemas)(r,e),(0,Mt.initBiomeSchemas)(r,e),(0,Pt.initCarverSchemas)(r,e),(0,Lt.initDecoratorSchemas)(r,e),(0,Ft.initFeatureSchemas)(r,e),(0,Bt.initNoiseSettingsSchemas)(r,e),(0,zt.initStructureFeatureSchemas)(r,e),(0,Rt.initStructureSetSchemas)(r,e),(0,Tt.initSurfaceRuleSchemas)(r,e),(0,qt.initTemplatePoolSchemas)(r,e)}Oe.initWorldgenSchemas=It;var Le={};Object.defineProperty(Le,"__esModule",{value:!0});Le.initWorldSettingsSchemas=void 0;const X=k;function At(r,e){const t=X.Reference.bind(void 0,r),o=X.StringNode.bind(void 0,e);r.register("world_settings",(0,X.Mod)((0,X.ObjectNode)({generate_features:(0,X.BooleanNode)(),bonus_chest:(0,X.BooleanNode)(),seed:(0,X.NumberNode)({integer:!0}),dimensions:(0,X.MapNode)(o({validator:"resource",params:{pool:"$dimension"}}),t("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}Le.initWorldSettingsSchemas=At;Object.defineProperty(ce,"__esModule",{value:!0});ce.initSchemas=void 0;const Et=de,Wt=se,Ut=z,Vt=_e,Gt=ue,Ht=pe,Kt=fe,Xt=ge,Yt=be,Zt=Ne,Jt=he,Qt=ye,er=ve,tr=Oe,rr=Le;function or(r,e){(0,Ut.initCommonSchemas)(r,e),(0,Et.initAdvancementSchemas)(r,e),(0,Wt.initAssetsSchemas)(r,e),(0,Vt.initConditionSchemas)(r,e),(0,Ht.initDimensionTypeSchemas)(r,e),(0,Gt.initDimensionSchemas)(r,e),(0,Kt.initItemModifierSchemas)(r,e),(0,Xt.initLootTableSchemas)(r,e),(0,Yt.initPackMcmetaSchemas)(r,e),(0,Zt.initPredicatesSchemas)(r,e),(0,Jt.initRecipeSchemas)(r,e),(0,Qt.initTagsSchemas)(r,e),(0,er.initTextComponentSchemas)(r,e),(0,tr.initWorldgenSchemas)(r,e),(0,rr.initWorldSettingsSchemas)(r,e)}ce.initSchemas=or;var ir=re&&re.__createBinding||(Object.create?function(r,e,t,o){o===void 0&&(o=t);var d=Object.getOwnPropertyDescriptor(e,t);(!d||("get"in d?!e.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,o,d)}:function(r,e,t,o){o===void 0&&(o=t),r[o]=e[t]}),nr=re&&re.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),ar=re&&re.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&ir(e,r,t);return nr(e,r),e};Object.defineProperty(G,"__esModule",{value:!0});var Ie=G.getSchemas=We=G.getCollections=Ee=G.lootContext=void 0;const Ae=k,cr=ae,dr=ce;var Ee=G.lootContext=ar(T);function sr(){const r=new Ae.CollectionRegistry;return(0,cr.initCollections)(r),r}var We=G.getCollections=sr;function lr(r){const e=new Ae.SchemaRegistry;return(0,dr.initSchemas)(e,r),e}Ie=G.getSchemas=lr;var pr=Xe({__proto__:null,get getSchemas(){return Ie},get getCollections(){return We},get lootContext(){return Ee},default:G},[G]);export{pr as i}; +//# sourceMappingURL=index.f8eb7d71.js.map diff --git a/assets/index.f8eb7d71.js.map b/assets/index.f8eb7d71.js.map new file mode 100644 index 00000000..d2cc972f --- /dev/null +++ b/assets/index.f8eb7d71.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.f8eb7d71.js","sources":["../../node_modules/@mcschema/java-1.18.2/lib/Collections.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18.2/lib/LootContext.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/DensityFunction.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureSet.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18.2/lib/index.js"],"sourcesContent":["\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n collections.register('mob_category', [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc',\r\n ]);\r\n collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.Opt)(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, core_1.Mod)(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate'))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:ride_entity_in_lava': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, core_1.ObjectNode)({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, core_1.NumberNode)()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, core_1.MapNode)(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, core_1.Opt)(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, core_1.MapNode)(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n OR: (0, core_1.ListNode)(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Tag = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: '#minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, core_1.NumberNode)({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = (0, core_1.Mod)(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return (0, core_1.ChoiceNode)(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: (0, core_1.Mod)(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: (0, core_1.Mod)(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, exports.FloatProvider)());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, core_1.ChoiceNode)(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: (0, core_1.ObjectNode)({\r\n [t]: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, core_1.NumberNode)())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.Tag = (config) => (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource, allowTag: true } }),\r\n change: (v) => {\r\n if (Array.isArray(v) && typeof v[0] === 'string' && !v[0].startsWith('#')) {\r\n return v[0];\r\n }\r\n return undefined;\r\n }\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)(config.inlineSchema\r\n ? (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference(config.inlineSchema)\r\n }\r\n ], { choiceContext: 'tag.list' })\r\n : StringNode({ validator: 'resource', params: { pool: config.resource } })),\r\n change: (v) => {\r\n if (typeof v === 'string' && !v.startsWith('#')) {\r\n return [v];\r\n }\r\n return [];\r\n }\r\n },\r\n ], { choiceContext: 'tag' });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: (0, core_1.ListNode)(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: (0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)((0, exports.Tag)({ resource: '$worldgen/configured_structure_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_potion': {\r\n id: StringNode({ validator: 'resource', params: { pool: 'potion' } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: '#minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: '#minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:end': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n },\r\n 'minecraft:caves': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, Common_1.ConditionCases)()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StructureSet = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/structure_set' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('structure_set'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'structure_set' });\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, core_1.ListNode)(Reference('generator_biome')), {\r\n enabled: path => path.push('preset').get() === undefined,\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n })\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, core_1.ListNode)(Reference('generator_layer')),\r\n structure_overrides: (0, core_1.ListNode)(StructureSet)\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n const ClimateParameter = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)({ min: -2, max: 2 }),\r\n change: (v) => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : 0; }\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: -2, max: 2 }), { minLength: 2, maxLength: 2 }),\r\n change: (v) => [v !== null && v !== void 0 ? v : 0, v !== null && v !== void 0 ? v : 0]\r\n }\r\n ]);\r\n schemas.register('generator_biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, core_1.ObjectNode)({\r\n temperature: ClimateParameter,\r\n humidity: ClimateParameter,\r\n continentalness: ClimateParameter,\r\n erosion: ClimateParameter,\r\n weirdness: ClimateParameter,\r\n depth: ClimateParameter,\r\n offset: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4064 }),\r\n effects: (0, core_1.Opt)(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2032, max: 2031 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 16, max: 4064 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2032) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2032);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, Common_1.FunctionCases)(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return (0, core_1.SwitchNode)(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: (0, core_1.ListNode)(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: (0, core_1.ListNode)(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: (0, core_1.ListNode)(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, Common_1.FunctionCases)(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, Common_1.ConditionCases)(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n id: (0, core_1.Opt)(StringNode({ validator: 'uuid' })),\r\n slot: (0, core_1.StringOrList)(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 9;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: (0, core_1.Reference)(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, core_1.ObjectNode)({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, core_1.MapNode)(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, core_1.BooleanNode)()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n schemas.register('advancement_tag', TagBase('$advancement'));\r\n schemas.register('dimension_tag', TagBase('$dimension'));\r\n schemas.register('dimension_type_tag', TagBase('$dimension_type'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_modifier_tag', TagBase('$item_modifier'));\r\n schemas.register('loot_table_tag', TagBase('$loot_table'));\r\n schemas.register('predicate_tag', TagBase('$predicate'));\r\n schemas.register('recipe_tag', TagBase('$recipe'));\r\n schemas.register('structure_tag', TagBase('$structure'));\r\n schemas.register('biome_tag', TagBase('$worldgen/biome'));\r\n schemas.register('configured_carver_tag', TagBase('$worldgen/configured_carver'));\r\n schemas.register('configured_decorator_tag', TagBase('$worldgen/configured_decorator'));\r\n schemas.register('configured_feature_tag', TagBase('$worldgen/configured_feature'));\r\n schemas.register('configured_structure_feature_tag', TagBase('$worldgen/configured_structure_feature'));\r\n schemas.register('configured_surface_builder_tag', TagBase('$worldgen/configured_surface_builder'));\r\n schemas.register('density_function_tag', TagBase('$worldgen/density_function'));\r\n schemas.register('noise_tag', TagBase('$worldgen/noise'));\r\n schemas.register('noise_settings_tag', TagBase('$worldgen/noise_settings'));\r\n schemas.register('placed_feature_tag', TagBase('$worldgen/placed_feature'));\r\n schemas.register('processor_list_tag', TagBase('$worldgen/processor_list'));\r\n schemas.register('structure_set_tag', TagBase('$worldgen/structure_set'));\r\n schemas.register('template_pool_tag', TagBase('$worldgen/template_pool'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: (0, core_1.BooleanNode)(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: (0, core_1.ObjectNode)({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, core_1.Opt)(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: (0, core_1.ObjectNode)({\r\n score: (0, core_1.ObjectNode)({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: (0, core_1.Opt)(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, core_1.Opt)(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: (0, core_1.ObjectNode)({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, core_1.Opt)(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', (0, core_1.Mod)((0, core_1.ListNode)(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = exports.MobCategorySpawnSettings = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.MobCategorySpawnSettings = (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, core_1.NumberNode)({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n });\r\n schemas.register('biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), exports.MobCategorySpawnSettings),\r\n spawn_costs: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, core_1.NumberNode)()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, core_1.Opt)(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, core_1.Opt)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDensityFunctionSchemas = exports.DensityFunction = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initDensityFunctionSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n exports.DensityFunction = (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)(),\r\n change: () => 0\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/density_function' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('density_function'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'density_function' }), {\r\n default: () => 0\r\n });\r\n const NoiseParameters = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('noise_parameters')\r\n }\r\n ], { choiceContext: 'noise_parameters' });\r\n const NoiseRange = (0, core_1.NumberNode)({ min: -1000000, max: 1000000 });\r\n const YRange = (0, core_1.NumberNode)({ integer: true, min: -2032 * 2, max: 2031 * 2 });\r\n schemas.register('density_function', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/density_function_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:abs': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:add': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:blend_density': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_2d': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_all_in_cell': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_once': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:clamp': {\r\n input: exports.DensityFunction,\r\n min: NoiseRange,\r\n max: NoiseRange,\r\n },\r\n 'minecraft:constant': {\r\n argument: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:cube': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:flat_cache': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:half_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:interpolated': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:max': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:min': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:mul': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:quarter_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:range_choice': {\r\n input: exports.DensityFunction,\r\n min_inclusive: NoiseRange,\r\n max_exclusive: NoiseRange,\r\n when_in_range: exports.DensityFunction,\r\n when_out_of_range: exports.DensityFunction,\r\n },\r\n 'minecraft:shift': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_a': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_b': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shifted_noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n shift_x: exports.DensityFunction,\r\n shift_y: exports.DensityFunction,\r\n shift_z: exports.DensityFunction,\r\n },\r\n 'minecraft:slide': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:spline': {\r\n spline: Reference('cubic_spline'),\r\n min_value: NoiseRange,\r\n max_value: NoiseRange,\r\n },\r\n 'minecraft:square': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:squeeze': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:terrain_shaper_spline': {\r\n spline: StringNode({ enum: ['offset', 'factor', 'jaggedness'] }),\r\n min_value: NoiseRange,\r\n max_value: NoiseRange,\r\n continentalness: exports.DensityFunction,\r\n erosion: exports.DensityFunction,\r\n weirdness: exports.DensityFunction,\r\n },\r\n 'minecraft:weird_scaled_sampler': {\r\n rarity_value_mapper: StringNode({ enum: ['type_1', 'type_2'] }),\r\n noise: NoiseParameters,\r\n input: exports.DensityFunction,\r\n },\r\n 'minecraft:y_clamped_gradient': {\r\n from_y: YRange,\r\n to_y: YRange,\r\n from_value: NoiseRange,\r\n to_value: NoiseRange,\r\n },\r\n }\r\n }, { context: 'density_function', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:noise',\r\n noise: 'minecraft:cave_entrance',\r\n xz_scale: 0.75,\r\n y_scale: 0.5\r\n })\r\n }));\r\n schemas.register('cubic_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: exports.DensityFunction,\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('cubic_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initDensityFunctionSchemas = initDensityFunctionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, core_1.ListNode)(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n },\r\n 'minecraft:rule': {\r\n rules: (0, core_1.ListNode)(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, core_1.Opt)(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, core_1.ObjectNode)({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', (0, core_1.ObjectNode)({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, core_1.ListNode)(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, Common_1.IntProvider)(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, Common_1.IntProvider)({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, Common_1.IntProvider)({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, Common_1.IntProvider)({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: (0, core_1.ObjectNode)({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: (0, core_1.ListNode)(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n }),\r\n layers: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, core_1.NumberNode)({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider')\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: (0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }),\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, core_1.ListNode)(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n const NoiseProvider = {\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:dual_noise_provider': {\r\n ...NoiseProvider,\r\n variety: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, Common_1.IntProvider)(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_predicate_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:all_of': {\r\n predicates: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, Common_1.Tag)({ resource: 'fluid' })\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n noise_router: (0, core_1.ObjectNode)({\r\n barrier: DensityFunction_1.DensityFunction,\r\n fluid_level_floodedness: DensityFunction_1.DensityFunction,\r\n fluid_level_spread: DensityFunction_1.DensityFunction,\r\n lava: DensityFunction_1.DensityFunction,\r\n temperature: DensityFunction_1.DensityFunction,\r\n vegetation: DensityFunction_1.DensityFunction,\r\n continents: DensityFunction_1.DensityFunction,\r\n erosion: DensityFunction_1.DensityFunction,\r\n depth: DensityFunction_1.DensityFunction,\r\n ridges: DensityFunction_1.DensityFunction,\r\n initial_density_without_jaggedness: DensityFunction_1.DensityFunction,\r\n final_density: DensityFunction_1.DensityFunction,\r\n vein_toggle: DensityFunction_1.DensityFunction,\r\n vein_ridged: DensityFunction_1.DensityFunction,\r\n vein_gap: DensityFunction_1.DensityFunction,\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_layer', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: (0, core_1.Mod)(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst Biome_1 = require(\"./Biome\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' }),\r\n adapt_noise: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n spawn_overrides: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), (0, core_1.ObjectNode)({\r\n bounding_box: StringNode({ enum: ['piece', 'full'] }),\r\n spawns: Biome_1.MobCategorySpawnSettings,\r\n })),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureSetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initStructureSetSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('structure_set', (0, core_1.ObjectNode)({\r\n structures: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n structure: (0, Common_1.Tag)({ resource: '$worldgen/configured_structure_feature' }),\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n })),\r\n placement: Reference('structure_placement')\r\n }, { context: 'structure_set' }));\r\n schemas.register('structure_placement', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_placement' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:concentric_rings': {\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: (0, core_1.Opt)(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n locate_offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n }\r\n }\r\n }, { context: 'structure_placement' }), {\r\n default: () => ({\r\n type: 'minecraft:random_spread',\r\n spacing: 10,\r\n separation: 5,\r\n salt: Math.floor(Math.random() * 2147483647)\r\n })\r\n }));\r\n}\r\nexports.initStructureSetSchemas = initStructureSetSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: (0, core_1.ListNode)(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: (0, core_1.NumberNode)(),\r\n max_threshold: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n secondary_depth_range: (0, core_1.NumberNode)({ integer: true }),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, core_1.ListNode)(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: (0, core_1.ListNode)(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst StructureSet_1 = require(\"./StructureSet\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts`, `DensityFunction.ts`, and `Biome.ts` have exports. They should be initialized first. \r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, DensityFunction_1.initDensityFunctionSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, StructureSet_1.initStructureSetSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, TemplatePool_1.initTemplatePoolSchemas)(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, WorldSettings_1.initWorldSettingsSchemas)(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = exports.lootContext = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n (0, Collections_1.initCollections)(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","Common_1","require$$2","ProcessorList_1","DensityFunction_1","Biome_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","this"],"mappings":"+1BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,2BACR,CAAK,EACD,EAAY,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,QACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,OACR,CAAK,EACD,EAAY,SAAS,eAAgB,CACjC,QACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,MACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,IACA,IACA,GACR,CAAK,EACD,EAAY,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,OACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,MACR,CAAK,EA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"} \ No newline at end of file diff --git a/assets/index.html b/assets/index.html index ea5088c1..0b68540d 100644 --- a/assets/index.html +++ b/assets/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/assets/model/index.html b/assets/model/index.html index 6b9cf87a..5e8c2c84 100644 --- a/assets/model/index.html +++ b/assets/model/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/assets/sourcemapped-stacktrace.22d7f20c.js b/assets/sourcemapped-stacktrace.c36ae24f.js similarity index 99% rename from assets/sourcemapped-stacktrace.22d7f20c.js rename to assets/sourcemapped-stacktrace.c36ae24f.js index 352f5a07..73e2760d 100644 --- a/assets/sourcemapped-stacktrace.22d7f20c.js +++ b/assets/sourcemapped-stacktrace.c36ae24f.js @@ -1,3 +1,3 @@ -import{c as U}from"./index.2a99a61a.js";function B(D,I){return I.forEach(function(b){b&&typeof b!="string"&&!Array.isArray(b)&&Object.keys(b).forEach(function(v){if(v!=="default"&&!(v in D)){var y=Object.getOwnPropertyDescriptor(b,v);Object.defineProperty(D,v,y.get?y:{enumerable:!0,get:function(){return b[v]}})}})}),Object.freeze(Object.defineProperty(D,Symbol.toStringTag,{value:"Module"}))}var j={exports:{}};(function(D,I){(function(v,y){D.exports=y()})(U,function(){return function(b){var v={};function y(t){if(v[t])return v[t].exports;var C=v[t]={exports:{},id:t,loaded:!1};return b[t].call(C.exports,C,C.exports,y),C.loaded=!0,C.exports}return y.m=b,y.c=v,y.p="",y(0)}([function(b,v,y){var t,C;t=[y(1)],C=function(f){var m={},d=function(i,o,p){var L,E,w={},S,R,M,T,x,G=new r(p),F=p&&p.traceFormat;if(F!=="chrome"&&F!=="firefox"){if(F)throw new Error('unknown traceFormat "'+F+'" :(');if(u()||O())F="chrome";else if(_()||A())F="firefox";else throw new Error("unknown browser :(")}F==="chrome"?(T=/^ +at.+\((.*):([0-9]+):([0-9]+)/,M=4,x=1):(T=/@(.*):([0-9]+):([0-9]+)/,M=4,x=0),L=i.split(` +import{c as U}from"./index.ece3de28.js";function B(D,I){return I.forEach(function(b){b&&typeof b!="string"&&!Array.isArray(b)&&Object.keys(b).forEach(function(v){if(v!=="default"&&!(v in D)){var y=Object.getOwnPropertyDescriptor(b,v);Object.defineProperty(D,v,y.get?y:{enumerable:!0,get:function(){return b[v]}})}})}),Object.freeze(Object.defineProperty(D,Symbol.toStringTag,{value:"Module"}))}var j={exports:{}};(function(D,I){(function(v,y){D.exports=y()})(U,function(){return function(b){var v={};function y(t){if(v[t])return v[t].exports;var C=v[t]={exports:{},id:t,loaded:!1};return b[t].call(C.exports,C,C.exports,y),C.loaded=!0,C.exports}return y.m=b,y.c=v,y.p="",y(0)}([function(b,v,y){var t,C;t=[y(1)],C=function(f){var m={},d=function(i,o,p){var L,E,w={},S,R,M,T,x,G=new r(p),F=p&&p.traceFormat;if(F!=="chrome"&&F!=="firefox"){if(F)throw new Error('unknown traceFormat "'+F+'" :(');if(u()||O())F="chrome";else if(_()||A())F="firefox";else throw new Error("unknown browser :(")}F==="chrome"?(T=/^ +at.+\((.*):([0-9]+):([0-9]+)/,M=4,x=1):(T=/@(.*):([0-9]+):([0-9]+)/,M=4,x=0),L=i.split(` `).slice(x);for(var P=0;P<L.length;P++)E=L[P],!(p&&p.filter&&!p.filter(E))&&(S=E.match(T),S&&S.length===M&&(w[P]=S,R=S[1],R.match(/<anonymous>/)||G.fetchScript(R)));G.sem.whenReady(function(){var N=l(L,w,G.mapForUri,F);o(N)})},u=function(){return navigator.userAgent.toLowerCase().indexOf("chrome")>-1},_=function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1},A=function(){return navigator.userAgent.toLowerCase().indexOf("safari")>-1},O=function(){return document.documentMode&&document.documentMode>=11},a=function(){this.count=0,this.pending=[]};a.prototype.incr=function(){this.count++},a.prototype.decr=function(){this.count--,this.flush()},a.prototype.whenReady=function(i){this.pending.push(i),this.flush()},a.prototype.flush=function(){this.count===0&&(this.pending.forEach(function(i){i()}),this.pending=[])};var r=function(i){this.sem=new a,this.sync=i&&i.sync,this.mapForUri=i&&i.cacheGlobally?m:{}};r.prototype.ajax=function(i,o){var p=n(),L=this;p.onreadystatechange=function(){p.readyState==4&&o.call(L,p,i)},p.open("GET",i,!this.sync),p.send()},r.prototype.fetchScript=function(i){if(!(i in this.mapForUri))this.sem.incr(),this.mapForUri[i]=null;else return;this.ajax(i,this.onScriptLoad)};var s=new RegExp("^(?:[a-z]+:)?//","i");r.prototype.onScriptLoad=function(i,o){if(i.status===200||o.slice(0,7)==="file://"&&i.status===0){var p=i.responseText.match("//# [s]ourceMappingURL=(.*)[\\s]*$","m");if(p&&p.length===2){var L=p[1],E=L.match("data:application/json;(charset=[^;]+;)?base64,(.*)");if(E&&E[2])this.mapForUri[o]=new f.SourceMapConsumer(atob(E[2])),this.sem.decr();else{if(!s.test(L)){var w,S=o.lastIndexOf("/");S!==-1&&(w=o.slice(0,S+1),L=w+L)}this.ajax(L,function(R){(R.status===200||L.slice(0,7)==="file://"&&R.status===0)&&(this.mapForUri[o]=new f.SourceMapConsumer(R.responseText)),this.sem.decr()})}}else this.sem.decr()}else this.sem.decr()};var l=function(i,o,p,L){for(var E=[],w,S=L==="chrome"?c:h,R=0;R<i.length;R++){var M=o[R];if(M){var T=M[1],x=parseInt(M[2],10),G=parseInt(M[3],10);if(w=p[T],w){var F=w.originalPositionFor({line:x,column:G});E.push(g(F.source,F.line,F.column,F.name||S(i[R])))}else E.push(g(T,x,G,S(i[R])))}else E.push(i[R])}return E};function c(i){var o=/ +at +([^ ]*).*/.exec(i);return o&&o[1]}function h(i){var o=/([^@]*)@.*/.exec(i);return o&&o[1]}var g=function(i,o,p,L){return" at "+(L||"(unknown)")+" ("+i+":"+o+":"+p+")"},e=[function(){return new XMLHttpRequest},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml3.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}];function n(){for(var i=!1,o=0;o<e.length;o++){try{i=e[o]()}catch{continue}break}return i}return{mapStackTrace:d}}.apply(v,t),C!==void 0&&(b.exports=C)},function(b,v,y){var t=y(2),C=y(3),f=y(4).ArraySet,m=y(5),d=y(7).quickSort;function u(a){var r=a;return typeof a=="string"&&(r=JSON.parse(a.replace(/^\)\]\}'/,""))),r.sections!=null?new O(r):new _(r)}u.fromSourceMap=function(a){return _.fromSourceMap(a)},u.prototype._version=3,u.prototype.__generatedMappings=null,Object.defineProperty(u.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),u.prototype.__originalMappings=null,Object.defineProperty(u.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),u.prototype._charIsMappingSeparator=function(r,s){var l=r.charAt(s);return l===";"||l===","},u.prototype._parseMappings=function(r,s){throw new Error("Subclasses must implement _parseMappings")},u.GENERATED_ORDER=1,u.ORIGINAL_ORDER=2,u.GREATEST_LOWER_BOUND=1,u.LEAST_UPPER_BOUND=2,u.prototype.eachMapping=function(r,s,l){var c=s||null,h=l||u.GENERATED_ORDER,g;switch(h){case u.GENERATED_ORDER:g=this._generatedMappings;break;case u.ORIGINAL_ORDER:g=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var e=this.sourceRoot;g.map(function(n){var i=n.source===null?null:this._sources.at(n.source);return i!=null&&e!=null&&(i=t.join(e,i)),{source:i,generatedLine:n.generatedLine,generatedColumn:n.generatedColumn,originalLine:n.originalLine,originalColumn:n.originalColumn,name:n.name===null?null:this._names.at(n.name)}},this).forEach(r,c)},u.prototype.allGeneratedPositionsFor=function(r){var s=t.getArg(r,"line"),l={source:t.getArg(r,"source"),originalLine:s,originalColumn:t.getArg(r,"column",0)};if(this.sourceRoot!=null&&(l.source=t.relative(this.sourceRoot,l.source)),!this._sources.has(l.source))return[];l.source=this._sources.indexOf(l.source);var c=[],h=this._findMapping(l,this._originalMappings,"originalLine","originalColumn",t.compareByOriginalPositions,C.LEAST_UPPER_BOUND);if(h>=0){var g=this._originalMappings[h];if(r.column===void 0)for(var e=g.originalLine;g&&g.originalLine===e;)c.push({line:t.getArg(g,"generatedLine",null),column:t.getArg(g,"generatedColumn",null),lastColumn:t.getArg(g,"lastGeneratedColumn",null)}),g=this._originalMappings[++h];else for(var n=g.originalColumn;g&&g.originalLine===s&&g.originalColumn==n;)c.push({line:t.getArg(g,"generatedLine",null),column:t.getArg(g,"generatedColumn",null),lastColumn:t.getArg(g,"lastGeneratedColumn",null)}),g=this._originalMappings[++h]}return c},v.SourceMapConsumer=u;function _(a){var r=a;typeof a=="string"&&(r=JSON.parse(a.replace(/^\)\]\}'/,"")));var s=t.getArg(r,"version"),l=t.getArg(r,"sources"),c=t.getArg(r,"names",[]),h=t.getArg(r,"sourceRoot",null),g=t.getArg(r,"sourcesContent",null),e=t.getArg(r,"mappings"),n=t.getArg(r,"file",null);if(s!=this._version)throw new Error("Unsupported version: "+s);l=l.map(String).map(t.normalize).map(function(i){return h&&t.isAbsolute(h)&&t.isAbsolute(i)?t.relative(h,i):i}),this._names=f.fromArray(c.map(String),!0),this._sources=f.fromArray(l,!0),this.sourceRoot=h,this.sourcesContent=g,this._mappings=e,this.file=n}_.prototype=Object.create(u.prototype),_.prototype.consumer=u,_.fromSourceMap=function(r){var s=Object.create(_.prototype),l=s._names=f.fromArray(r._names.toArray(),!0),c=s._sources=f.fromArray(r._sources.toArray(),!0);s.sourceRoot=r._sourceRoot,s.sourcesContent=r._generateSourcesContent(s._sources.toArray(),s.sourceRoot),s.file=r._file;for(var h=r._mappings.toArray().slice(),g=s.__generatedMappings=[],e=s.__originalMappings=[],n=0,i=h.length;n<i;n++){var o=h[n],p=new A;p.generatedLine=o.generatedLine,p.generatedColumn=o.generatedColumn,o.source&&(p.source=c.indexOf(o.source),p.originalLine=o.originalLine,p.originalColumn=o.originalColumn,o.name&&(p.name=l.indexOf(o.name)),e.push(p)),g.push(p)}return d(s.__originalMappings,t.compareByOriginalPositions),s},_.prototype._version=3,Object.defineProperty(_.prototype,"sources",{get:function(){return this._sources.toArray().map(function(a){return this.sourceRoot!=null?t.join(this.sourceRoot,a):a},this)}});function A(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}_.prototype._parseMappings=function(r,s){for(var l=1,c=0,h=0,g=0,e=0,n=0,i=r.length,o=0,p={},L={},E=[],w=[],S,R,M,T,x;o<i;)if(r.charAt(o)===";")l++,o++,c=0;else if(r.charAt(o)===",")o++;else{for(S=new A,S.generatedLine=l,T=o;T<i&&!this._charIsMappingSeparator(r,T);T++);if(R=r.slice(o,T),M=p[R],M)o+=R.length;else{for(M=[];o<T;)m.decode(r,o,L),x=L.value,o=L.rest,M.push(x);if(M.length===2)throw new Error("Found a source, but no line and column");if(M.length===3)throw new Error("Found a source and line, but no column");p[R]=M}S.generatedColumn=c+M[0],c=S.generatedColumn,M.length>1&&(S.source=e+M[1],e+=M[1],S.originalLine=h+M[2],h=S.originalLine,S.originalLine+=1,S.originalColumn=g+M[3],g=S.originalColumn,M.length>4&&(S.name=n+M[4],n+=M[4])),w.push(S),typeof S.originalLine=="number"&&E.push(S)}d(w,t.compareByGeneratedPositionsDeflated),this.__generatedMappings=w,d(E,t.compareByOriginalPositions),this.__originalMappings=E},_.prototype._findMapping=function(r,s,l,c,h,g){if(r[l]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+r[l]);if(r[c]<0)throw new TypeError("Column must be greater than or equal to 0, got "+r[c]);return C.search(r,s,h,g)},_.prototype.computeColumnSpans=function(){for(var r=0;r<this._generatedMappings.length;++r){var s=this._generatedMappings[r];if(r+1<this._generatedMappings.length){var l=this._generatedMappings[r+1];if(s.generatedLine===l.generatedLine){s.lastGeneratedColumn=l.generatedColumn-1;continue}}s.lastGeneratedColumn=1/0}},_.prototype.originalPositionFor=function(r){var s={generatedLine:t.getArg(r,"line"),generatedColumn:t.getArg(r,"column")},l=this._findMapping(s,this._generatedMappings,"generatedLine","generatedColumn",t.compareByGeneratedPositionsDeflated,t.getArg(r,"bias",u.GREATEST_LOWER_BOUND));if(l>=0){var c=this._generatedMappings[l];if(c.generatedLine===s.generatedLine){var h=t.getArg(c,"source",null);h!==null&&(h=this._sources.at(h),this.sourceRoot!=null&&(h=t.join(this.sourceRoot,h)));var g=t.getArg(c,"name",null);return g!==null&&(g=this._names.at(g)),{source:h,line:t.getArg(c,"originalLine",null),column:t.getArg(c,"originalColumn",null),name:g}}}return{source:null,line:null,column:null,name:null}},_.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(r){return r==null}):!1},_.prototype.sourceContentFor=function(r,s){if(!this.sourcesContent)return null;if(this.sourceRoot!=null&&(r=t.relative(this.sourceRoot,r)),this._sources.has(r))return this.sourcesContent[this._sources.indexOf(r)];var l;if(this.sourceRoot!=null&&(l=t.urlParse(this.sourceRoot))){var c=r.replace(/^file:\/\//,"");if(l.scheme=="file"&&this._sources.has(c))return this.sourcesContent[this._sources.indexOf(c)];if((!l.path||l.path=="/")&&this._sources.has("/"+r))return this.sourcesContent[this._sources.indexOf("/"+r)]}if(s)return null;throw new Error('"'+r+'" is not in the SourceMap.')},_.prototype.generatedPositionFor=function(r){var s=t.getArg(r,"source");if(this.sourceRoot!=null&&(s=t.relative(this.sourceRoot,s)),!this._sources.has(s))return{line:null,column:null,lastColumn:null};s=this._sources.indexOf(s);var l={source:s,originalLine:t.getArg(r,"line"),originalColumn:t.getArg(r,"column")},c=this._findMapping(l,this._originalMappings,"originalLine","originalColumn",t.compareByOriginalPositions,t.getArg(r,"bias",u.GREATEST_LOWER_BOUND));if(c>=0){var h=this._originalMappings[c];if(h.source===l.source)return{line:t.getArg(h,"generatedLine",null),column:t.getArg(h,"generatedColumn",null),lastColumn:t.getArg(h,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},v.BasicSourceMapConsumer=_;function O(a){var r=a;typeof a=="string"&&(r=JSON.parse(a.replace(/^\)\]\}'/,"")));var s=t.getArg(r,"version"),l=t.getArg(r,"sections");if(s!=this._version)throw new Error("Unsupported version: "+s);this._sources=new f,this._names=new f;var c={line:-1,column:0};this._sections=l.map(function(h){if(h.url)throw new Error("Support for url field in sections not implemented.");var g=t.getArg(h,"offset"),e=t.getArg(g,"line"),n=t.getArg(g,"column");if(e<c.line||e===c.line&&n<c.column)throw new Error("Section offsets must be ordered and non-overlapping.");return c=g,{generatedOffset:{generatedLine:e+1,generatedColumn:n+1},consumer:new u(t.getArg(h,"map"))}})}O.prototype=Object.create(u.prototype),O.prototype.constructor=u,O.prototype._version=3,Object.defineProperty(O.prototype,"sources",{get:function(){for(var a=[],r=0;r<this._sections.length;r++)for(var s=0;s<this._sections[r].consumer.sources.length;s++)a.push(this._sections[r].consumer.sources[s]);return a}}),O.prototype.originalPositionFor=function(r){var s={generatedLine:t.getArg(r,"line"),generatedColumn:t.getArg(r,"column")},l=C.search(s,this._sections,function(h,g){var e=h.generatedLine-g.generatedOffset.generatedLine;return e||h.generatedColumn-g.generatedOffset.generatedColumn}),c=this._sections[l];return c?c.consumer.originalPositionFor({line:s.generatedLine-(c.generatedOffset.generatedLine-1),column:s.generatedColumn-(c.generatedOffset.generatedLine===s.generatedLine?c.generatedOffset.generatedColumn-1:0),bias:r.bias}):{source:null,line:null,column:null,name:null}},O.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(r){return r.consumer.hasContentsOfAllSources()})},O.prototype.sourceContentFor=function(r,s){for(var l=0;l<this._sections.length;l++){var c=this._sections[l],h=c.consumer.sourceContentFor(r,!0);if(h)return h}if(s)return null;throw new Error('"'+r+'" is not in the SourceMap.')},O.prototype.generatedPositionFor=function(r){for(var s=0;s<this._sections.length;s++){var l=this._sections[s];if(l.consumer.sources.indexOf(t.getArg(r,"source"))!==-1){var c=l.consumer.generatedPositionFor(r);if(c){var h={line:c.line+(l.generatedOffset.generatedLine-1),column:c.column+(l.generatedOffset.generatedLine===c.line?l.generatedOffset.generatedColumn-1:0)};return h}}}return{line:null,column:null}},O.prototype._parseMappings=function(r,s){this.__generatedMappings=[],this.__originalMappings=[];for(var l=0;l<this._sections.length;l++)for(var c=this._sections[l],h=c.consumer._generatedMappings,g=0;g<h.length;g++){var e=h[g],n=c.consumer._sources.at(e.source);c.consumer.sourceRoot!==null&&(n=t.join(c.consumer.sourceRoot,n)),this._sources.add(n),n=this._sources.indexOf(n);var i=c.consumer._names.at(e.name);this._names.add(i),i=this._names.indexOf(i);var o={source:n,generatedLine:e.generatedLine+(c.generatedOffset.generatedLine-1),generatedColumn:e.generatedColumn+(c.generatedOffset.generatedLine===e.generatedLine?c.generatedOffset.generatedColumn-1:0),originalLine:e.originalLine,originalColumn:e.originalColumn,name:i};this.__generatedMappings.push(o),typeof o.originalLine=="number"&&this.__originalMappings.push(o)}d(this.__generatedMappings,t.compareByGeneratedPositionsDeflated),d(this.__originalMappings,t.compareByOriginalPositions)},v.IndexedSourceMapConsumer=O},function(b,v){function y(e,n,i){if(n in e)return e[n];if(arguments.length===3)return i;throw new Error('"'+n+'" is a required argument.')}v.getArg=y;var t=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,C=/^data:.+\,.+$/;function f(e){var n=e.match(t);return n?{scheme:n[1],auth:n[2],host:n[3],port:n[4],path:n[5]}:null}v.urlParse=f;function m(e){var n="";return e.scheme&&(n+=e.scheme+":"),n+="//",e.auth&&(n+=e.auth+"@"),e.host&&(n+=e.host),e.port&&(n+=":"+e.port),e.path&&(n+=e.path),n}v.urlGenerate=m;function d(e){var n=e,i=f(e);if(i){if(!i.path)return e;n=i.path}for(var o=v.isAbsolute(n),p=n.split(/\/+/),L,E=0,w=p.length-1;w>=0;w--)L=p[w],L==="."?p.splice(w,1):L===".."?E++:E>0&&(L===""?(p.splice(w+1,E),E=0):(p.splice(w,2),E--));return n=p.join("/"),n===""&&(n=o?"/":"."),i?(i.path=n,m(i)):n}v.normalize=d;function u(e,n){e===""&&(e="."),n===""&&(n=".");var i=f(n),o=f(e);if(o&&(e=o.path||"/"),i&&!i.scheme)return o&&(i.scheme=o.scheme),m(i);if(i||n.match(C))return n;if(o&&!o.host&&!o.path)return o.host=n,m(o);var p=n.charAt(0)==="/"?n:d(e.replace(/\/+$/,"")+"/"+n);return o?(o.path=p,m(o)):p}v.join=u,v.isAbsolute=function(e){return e.charAt(0)==="/"||!!e.match(t)};function _(e,n){e===""&&(e="."),e=e.replace(/\/$/,"");for(var i=0;n.indexOf(e+"/")!==0;){var o=e.lastIndexOf("/");if(o<0||(e=e.slice(0,o),e.match(/^([^\/]+:\/)?\/*$/)))return n;++i}return Array(i+1).join("../")+n.substr(e.length+1)}v.relative=_;var A=function(){var e=Object.create(null);return!("__proto__"in e)}();function O(e){return e}function a(e){return s(e)?"$"+e:e}v.toSetString=A?O:a;function r(e){return s(e)?e.slice(1):e}v.fromSetString=A?O:r;function s(e){if(!e)return!1;var n=e.length;if(n<9||e.charCodeAt(n-1)!==95||e.charCodeAt(n-2)!==95||e.charCodeAt(n-3)!==111||e.charCodeAt(n-4)!==116||e.charCodeAt(n-5)!==111||e.charCodeAt(n-6)!==114||e.charCodeAt(n-7)!==112||e.charCodeAt(n-8)!==95||e.charCodeAt(n-9)!==95)return!1;for(var i=n-10;i>=0;i--)if(e.charCodeAt(i)!==36)return!1;return!0}function l(e,n,i){var o=e.source-n.source;return o!==0||(o=e.originalLine-n.originalLine,o!==0)||(o=e.originalColumn-n.originalColumn,o!==0||i)||(o=e.generatedColumn-n.generatedColumn,o!==0)||(o=e.generatedLine-n.generatedLine,o!==0)?o:e.name-n.name}v.compareByOriginalPositions=l;function c(e,n,i){var o=e.generatedLine-n.generatedLine;return o!==0||(o=e.generatedColumn-n.generatedColumn,o!==0||i)||(o=e.source-n.source,o!==0)||(o=e.originalLine-n.originalLine,o!==0)||(o=e.originalColumn-n.originalColumn,o!==0)?o:e.name-n.name}v.compareByGeneratedPositionsDeflated=c;function h(e,n){return e===n?0:e>n?1:-1}function g(e,n){var i=e.generatedLine-n.generatedLine;return i!==0||(i=e.generatedColumn-n.generatedColumn,i!==0)||(i=h(e.source,n.source),i!==0)||(i=e.originalLine-n.originalLine,i!==0)||(i=e.originalColumn-n.originalColumn,i!==0)?i:h(e.name,n.name)}v.compareByGeneratedPositionsInflated=g},function(b,v){v.GREATEST_LOWER_BOUND=1,v.LEAST_UPPER_BOUND=2;function y(t,C,f,m,d,u){var _=Math.floor((C-t)/2)+t,A=d(f,m[_],!0);return A===0?_:A>0?C-_>1?y(_,C,f,m,d,u):u==v.LEAST_UPPER_BOUND?C<m.length?C:-1:_:_-t>1?y(t,_,f,m,d,u):u==v.LEAST_UPPER_BOUND?_:t<0?-1:t}v.search=function(C,f,m,d){if(f.length===0)return-1;var u=y(-1,f.length,C,f,m,d||v.GREATEST_LOWER_BOUND);if(u<0)return-1;for(;u-1>=0&&m(f[u],f[u-1],!0)===0;)--u;return u}},function(b,v,y){var t=y(2),C=Object.prototype.hasOwnProperty;function f(){this._array=[],this._set=Object.create(null)}f.fromArray=function(d,u){for(var _=new f,A=0,O=d.length;A<O;A++)_.add(d[A],u);return _},f.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},f.prototype.add=function(d,u){var _=t.toSetString(d),A=C.call(this._set,_),O=this._array.length;(!A||u)&&this._array.push(d),A||(this._set[_]=O)},f.prototype.has=function(d){var u=t.toSetString(d);return C.call(this._set,u)},f.prototype.indexOf=function(d){var u=t.toSetString(d);if(C.call(this._set,u))return this._set[u];throw new Error('"'+d+'" is not in the set.')},f.prototype.at=function(d){if(d>=0&&d<this._array.length)return this._array[d];throw new Error("No element indexed by "+d)},f.prototype.toArray=function(){return this._array.slice()},v.ArraySet=f},function(b,v,y){var t=y(6),C=5,f=1<<C,m=f-1,d=f;function u(A){return A<0?(-A<<1)+1:(A<<1)+0}function _(A){var O=(A&1)===1,a=A>>1;return O?-a:a}v.encode=function(O){var a="",r,s=u(O);do r=s&m,s>>>=C,s>0&&(r|=d),a+=t.encode(r);while(s>0);return a},v.decode=function(O,a,r){var s=O.length,l=0,c=0,h,g;do{if(a>=s)throw new Error("Expected more digits in base 64 VLQ value.");if(g=t.decode(O.charCodeAt(a++)),g===-1)throw new Error("Invalid base64 digit: "+O.charAt(a-1));h=!!(g&d),g&=m,l=l+(g<<c),c+=C}while(h);r.value=_(l),r.rest=a}},function(b,v){var y="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");v.encode=function(t){if(0<=t&&t<y.length)return y[t];throw new TypeError("Must be between 0 and 63: "+t)},v.decode=function(t){var C=65,f=90,m=97,d=122,u=48,_=57,A=43,O=47,a=26,r=52;return C<=t&&t<=f?t-C:m<=t&&t<=d?t-m+a:u<=t&&t<=_?t-u+r:t==A?62:t==O?63:-1}},function(b,v){function y(f,m,d){var u=f[m];f[m]=f[d],f[d]=u}function t(f,m){return Math.round(f+Math.random()*(m-f))}function C(f,m,d,u){if(d<u){var _=t(d,u),A=d-1;y(f,_,u);for(var O=f[u],a=d;a<u;a++)m(f[a],O)<=0&&(A+=1,y(f,A,a));y(f,A+1,a);var r=A+1;C(f,m,d,r-1),C(f,m,r+1,u)}}v.quickSort=function(f,m){C(f,m,0,f.length-1)}}])})})(j);var Q=j.exports,X=B({__proto__:null,default:Q},[j.exports]);export{X as s}; -//# sourceMappingURL=sourcemapped-stacktrace.22d7f20c.js.map +//# sourceMappingURL=sourcemapped-stacktrace.c36ae24f.js.map diff --git a/assets/sourcemapped-stacktrace.22d7f20c.js.map b/assets/sourcemapped-stacktrace.c36ae24f.js.map similarity index 99% rename from assets/sourcemapped-stacktrace.22d7f20c.js.map rename to assets/sourcemapped-stacktrace.c36ae24f.js.map index 76f80f96..c202fe7d 100644 --- a/assets/sourcemapped-stacktrace.22d7f20c.js.map +++ b/assets/sourcemapped-stacktrace.c36ae24f.js.map @@ -1 +1 @@ -{"version":3,"file":"sourcemapped-stacktrace.22d7f20c.js","sources":["../../node_modules/sourcemapped-stacktrace/dist/sourcemapped-stacktrace.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMappedStackTrace\"] = factory();\n\telse\n\t\troot[\"sourceMappedStackTrace\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n\t * sourcemapped-stacktrace.js\n\t * created by James Salter <iteration@gmail.com> (2014)\n\t *\n\t * https://github.com/novocaine/sourcemapped-stacktrace\n\t *\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/*global define */\n\n\t// note we only include source-map-consumer, not the whole source-map library,\n\t// which includes gear for generating source maps that we don't need\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_RESULT__ = function(source_map_consumer) {\n\n\t var global_mapForUri = {};\n\n\t /**\n\t * Re-map entries in a stacktrace using sourcemaps if available.\n\t *\n\t * @param {str} stack - The stacktrace from the browser.\n\t * @param {function} done - Callback invoked with the transformed stacktrace\n\t * (an Array of Strings) passed as the first\n\t * argument\n\t * @param {Object} [opts] - Optional options object.\n\t * @param {Function} [opts.filter] - Filter function applied to each stackTrace line.\n\t * Lines which do not pass the filter won't be processesd.\n\t * @param {boolean} [opts.cacheGlobally] - Whether to cache sourcemaps globally across multiple calls.\n\t * @param {boolean} [opts.sync] - Whether to use synchronous ajax to load the sourcemaps.\n\t * @param {string} [opts.traceFormat] - If `error.stack` is formatted according to chrome or\n\t * Firefox's style. Can be either `\"chrome\"`, `\"firefox\"`\n\t * or `undefined` (default). If `undefined`, this library\n\t * will guess based on `navigator.userAgent`.\n\t */\n\t var mapStackTrace = function(stack, done, opts) {\n\t var lines;\n\t var line;\n\t var mapForUri = {};\n\t var rows = {};\n\t var fields;\n\t var uri;\n\t var expected_fields;\n\t var regex;\n\t var skip_lines;\n\n\t var fetcher = new Fetcher(opts);\n\n\t var traceFormat = opts && opts.traceFormat;\n\t if (traceFormat !== \"chrome\" && traceFormat !== \"firefox\") {\n\t if (traceFormat) {\n\t throw new Error(\"unknown traceFormat \\\"\" + traceFormat + \"\\\" :(\");\n\t } else if (isChromeOrEdge() || isIE11Plus()) {\n\t traceFormat = \"chrome\";\n\t } else if (isFirefox() || isSafari()) {\n\t traceFormat = \"firefox\";\n\t } else {\n\t throw new Error(\"unknown browser :(\");\n\t }\n\t }\n\n\t if (traceFormat === \"chrome\") {\n\t regex = /^ +at.+\\((.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t // (skip first line containing exception message)\n\t skip_lines = 1;\n\t } else {\n\t regex = /@(.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t skip_lines = 0;\n\t }\n\n\t lines = stack.split(\"\\n\").slice(skip_lines);\n\n\t for (var i=0; i < lines.length; i++) {\n\t line = lines[i];\n\t if ( opts && opts.filter && !opts.filter(line) ) continue;\n\t \n\t fields = line.match(regex);\n\t if (fields && fields.length === expected_fields) {\n\t rows[i] = fields;\n\t uri = fields[1];\n\t if (!uri.match(/<anonymous>/)) {\n\t fetcher.fetchScript(uri);\n\t }\n\t }\n\t }\n\n\t fetcher.sem.whenReady(function() {\n\t var result = processSourceMaps(lines, rows, fetcher.mapForUri, traceFormat);\n\t done(result);\n\t });\n\t };\n\n\t var isChromeOrEdge = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('chrome') > -1;\n\t };\n\n\t var isFirefox = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\t }; \n\n\t var isSafari = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('safari') > -1;\n\t };\n\t\t\t\n\t var isIE11Plus = function() {\n\t \treturn document.documentMode && document.documentMode >= 11;\n\t };\n\n\n\t var Semaphore = function() {\n\t this.count = 0;\n\t this.pending = [];\n\t };\n\n\t Semaphore.prototype.incr = function() {\n\t this.count++;\n\t };\n\n\t Semaphore.prototype.decr = function() {\n\t this.count--;\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.whenReady = function(fn) {\n\t this.pending.push(fn);\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.flush = function() {\n\t if (this.count === 0) {\n\t this.pending.forEach(function(fn) { fn(); });\n\t this.pending = [];\n\t }\n\t };\n\n\n\t var Fetcher = function(opts) {\n\t this.sem = new Semaphore();\n\t this.sync = opts && opts.sync;\n\t this.mapForUri = opts && opts.cacheGlobally ? global_mapForUri : {};\n\t };\n\n\t Fetcher.prototype.ajax = function(uri, callback) {\n\t var xhr = createXMLHTTPObject();\n\t var that = this;\n\t xhr.onreadystatechange = function() {\n\t if (xhr.readyState == 4) {\n\t callback.call(that, xhr, uri);\n\t }\n\t };\n\t xhr.open(\"GET\", uri, !this.sync);\n\t xhr.send();\n\t }\n\n\t Fetcher.prototype.fetchScript = function(uri) {\n\t if (!(uri in this.mapForUri)) {\n\t this.sem.incr();\n\t this.mapForUri[uri] = null;\n\t } else {\n\t return;\n\t }\n\n\t this.ajax(uri, this.onScriptLoad);\n\t };\n\n\t var absUrlRegex = new RegExp('^(?:[a-z]+:)?//', 'i');\n\n\t Fetcher.prototype.onScriptLoad = function(xhr, uri) {\n\t if (xhr.status === 200 || (uri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t // find .map in file.\n\t //\n\t // attempt to find it at the very end of the file, but tolerate trailing\n\t // whitespace inserted by some packers.\n\t var match = xhr.responseText.match(\"//# [s]ourceMappingURL=(.*)[\\\\s]*$\", \"m\");\n\t if (match && match.length === 2) {\n\t // get the map\n\t var mapUri = match[1];\n\n\t var embeddedSourceMap = mapUri.match(\"data:application/json;(charset=[^;]+;)?base64,(.*)\");\n\n\t if (embeddedSourceMap && embeddedSourceMap[2]) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(atob(embeddedSourceMap[2]));\n\t this.sem.decr();\n\t } else {\n\t if (!absUrlRegex.test(mapUri)) {\n\t // relative url; according to sourcemaps spec is 'source origin'\n\t var origin;\n\t var lastSlash = uri.lastIndexOf('/');\n\t if (lastSlash !== -1) {\n\t origin = uri.slice(0, lastSlash + 1);\n\t mapUri = origin + mapUri;\n\t // note if lastSlash === -1, actual script uri has no slash\n\t // somehow, so no way to use it as a prefix... we give up and try\n\t // as absolute\n\t }\n\t }\n\n\t this.ajax(mapUri, function(xhr) {\n\t if (xhr.status === 200 || (mapUri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(xhr.responseText);\n\t }\n\t this.sem.decr();\n\t });\n\t }\n\t } else {\n\t // no map\n\t this.sem.decr();\n\t }\n\t } else {\n\t // HTTP error fetching uri of the script\n\t this.sem.decr();\n\t }\n\t };\n\n\t var processSourceMaps = function(lines, rows, mapForUri, traceFormat) {\n\t var result = [];\n\t var map;\n\t var origName = traceFormat === \"chrome\" ? origNameChrome : origNameFirefox;\n\t for (var i=0; i < lines.length; i++) {\n\t var row = rows[i];\n\t if (row) {\n\t var uri = row[1];\n\t var line = parseInt(row[2], 10);\n\t var column = parseInt(row[3], 10);\n\t map = mapForUri[uri];\n\n\t if (map) {\n\t // we think we have a map for that uri. call source-map library\n\t var origPos = map.originalPositionFor(\n\t { line: line, column: column });\n\t result.push(formatOriginalPosition(origPos.source,\n\t origPos.line, origPos.column, origPos.name || origName(lines[i])));\n\t } else {\n\t // we can't find a map for that url, but we parsed the row.\n\t // reformat unchanged line for consistency with the sourcemapped\n\t // lines.\n\t result.push(formatOriginalPosition(uri, line, column, origName(lines[i])));\n\t }\n\t } else {\n\t // we weren't able to parse the row, push back what we were given\n\t result.push(lines[i]);\n\t }\n\t }\n\n\t return result;\n\t };\n\n\t function origNameChrome(origLine) {\n\t var match = / +at +([^ ]*).*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t function origNameFirefox(origLine) {\n\t var match = /([^@]*)@.*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t var formatOriginalPosition = function(source, line, column, name) {\n\t // mimic chrome's format\n\t return \" at \" + (name ? name : \"(unknown)\") +\n\t \" (\" + source + \":\" + line + \":\" + column + \")\";\n\t };\n\n\t // xmlhttprequest boilerplate\n\t var XMLHttpFactories = [\n\t\tfunction () {return new XMLHttpRequest();},\n\t\tfunction () {return new ActiveXObject(\"Msxml2.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Msxml3.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Microsoft.XMLHTTP\");}\n\t ];\n\n\t function createXMLHTTPObject() {\n\t var xmlhttp = false;\n\t for (var i=0;i<XMLHttpFactories.length;i++) {\n\t try {\n\t xmlhttp = XMLHttpFactories[i]();\n\t }\n\t catch (e) {\n\t continue;\n\t }\n\t break;\n\t }\n\t return xmlhttp;\n\t }\n\n\t return {\n\t mapStackTrace: mapStackTrace\n\t }\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar util = __webpack_require__(2);\n\tvar binarySearch = __webpack_require__(3);\n\tvar ArraySet = __webpack_require__(4).ArraySet;\n\tvar base64VLQ = __webpack_require__(5);\n\tvar quickSort = __webpack_require__(7).quickSort;\n\n\tfunction SourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t return sourceMap.sections != null\n\t ? new IndexedSourceMapConsumer(sourceMap)\n\t : new BasicSourceMapConsumer(sourceMap);\n\t}\n\n\tSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n\t return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n\t}\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tSourceMapConsumer.prototype._version = 3;\n\n\t// `__generatedMappings` and `__originalMappings` are arrays that hold the\n\t// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n\t// are lazily instantiated, accessed via the `_generatedMappings` and\n\t// `_originalMappings` getters respectively, and we only parse the mappings\n\t// and create these arrays once queried for a source location. We jump through\n\t// these hoops because there can be many thousands of mappings, and parsing\n\t// them is expensive, so we only want to do it if we must.\n\t//\n\t// Each object in the arrays is of the form:\n\t//\n\t// {\n\t// generatedLine: The line number in the generated code,\n\t// generatedColumn: The column number in the generated code,\n\t// source: The path to the original source file that generated this\n\t// chunk of code,\n\t// originalLine: The line number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// originalColumn: The column number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// name: The name of the original symbol which generated this chunk of\n\t// code.\n\t// }\n\t//\n\t// All properties except for `generatedLine` and `generatedColumn` can be\n\t// `null`.\n\t//\n\t// `_generatedMappings` is ordered by the generated positions.\n\t//\n\t// `_originalMappings` is ordered by the original positions.\n\n\tSourceMapConsumer.prototype.__generatedMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n\t get: function () {\n\t if (!this.__generatedMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\n\t return this.__generatedMappings;\n\t }\n\t});\n\n\tSourceMapConsumer.prototype.__originalMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n\t get: function () {\n\t if (!this.__originalMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\n\t return this.__originalMappings;\n\t }\n\t});\n\n\tSourceMapConsumer.prototype._charIsMappingSeparator =\n\t function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n\t var c = aStr.charAt(index);\n\t return c === \";\" || c === \",\";\n\t };\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t throw new Error(\"Subclasses must implement _parseMappings\");\n\t };\n\n\tSourceMapConsumer.GENERATED_ORDER = 1;\n\tSourceMapConsumer.ORIGINAL_ORDER = 2;\n\n\tSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\n\tSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n\t/**\n\t * Iterate over each mapping between an original source/line/column and a\n\t * generated line/column in this source map.\n\t *\n\t * @param Function aCallback\n\t * The function that is called with each mapping.\n\t * @param Object aContext\n\t * Optional. If specified, this object will be the value of `this` every\n\t * time that `aCallback` is called.\n\t * @param aOrder\n\t * Either `SourceMapConsumer.GENERATED_ORDER` or\n\t * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n\t * iterate over the mappings sorted by the generated file's line/column\n\t * order or the original's source/line/column order, respectively. Defaults to\n\t * `SourceMapConsumer.GENERATED_ORDER`.\n\t */\n\tSourceMapConsumer.prototype.eachMapping =\n\t function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n\t var context = aContext || null;\n\t var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n\t var mappings;\n\t switch (order) {\n\t case SourceMapConsumer.GENERATED_ORDER:\n\t mappings = this._generatedMappings;\n\t break;\n\t case SourceMapConsumer.ORIGINAL_ORDER:\n\t mappings = this._originalMappings;\n\t break;\n\t default:\n\t throw new Error(\"Unknown order of iteration.\");\n\t }\n\n\t var sourceRoot = this.sourceRoot;\n\t mappings.map(function (mapping) {\n\t var source = mapping.source === null ? null : this._sources.at(mapping.source);\n\t if (source != null && sourceRoot != null) {\n\t source = util.join(sourceRoot, source);\n\t }\n\t return {\n\t source: source,\n\t generatedLine: mapping.generatedLine,\n\t generatedColumn: mapping.generatedColumn,\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: mapping.name === null ? null : this._names.at(mapping.name)\n\t };\n\t }, this).forEach(aCallback, context);\n\t };\n\n\t/**\n\t * Returns all generated line and column information for the original source,\n\t * line, and column provided. If no column is provided, returns all mappings\n\t * corresponding to a either the line we are searching for or the next\n\t * closest line that has any mappings. Otherwise, returns all mappings\n\t * corresponding to the given line and either the column we are searching for\n\t * or the next closest column that has any offsets.\n\t *\n\t * The only argument is an object with the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: Optional. the column number in the original source.\n\t *\n\t * and an array of objects is returned, each with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tSourceMapConsumer.prototype.allGeneratedPositionsFor =\n\t function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n\t var line = util.getArg(aArgs, 'line');\n\n\t // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n\t // returns the index of the closest mapping less than the needle. By\n\t // setting needle.originalColumn to 0, we thus find the last mapping for\n\t // the given line, provided such a mapping exists.\n\t var needle = {\n\t source: util.getArg(aArgs, 'source'),\n\t originalLine: line,\n\t originalColumn: util.getArg(aArgs, 'column', 0)\n\t };\n\n\t if (this.sourceRoot != null) {\n\t needle.source = util.relative(this.sourceRoot, needle.source);\n\t }\n\t if (!this._sources.has(needle.source)) {\n\t return [];\n\t }\n\t needle.source = this._sources.indexOf(needle.source);\n\n\t var mappings = [];\n\n\t var index = this._findMapping(needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t binarySearch.LEAST_UPPER_BOUND);\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (aArgs.column === undefined) {\n\t var originalLine = mapping.originalLine;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we found. Since\n\t // mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we found.\n\t while (mapping && mapping.originalLine === originalLine) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t } else {\n\t var originalColumn = mapping.originalColumn;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we were searching for.\n\t // Since mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we are searching for.\n\t while (mapping &&\n\t mapping.originalLine === line &&\n\t mapping.originalColumn == originalColumn) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t }\n\t }\n\n\t return mappings;\n\t };\n\n\texports.SourceMapConsumer = SourceMapConsumer;\n\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The only parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - sources: An array of URLs to the original source files.\n\t * - names: An array of identifiers which can be referrenced by individual mappings.\n\t * - sourceRoot: Optional. The URL root from which all sources are relative.\n\t * - sourcesContent: Optional. An array of contents of the original source files.\n\t * - mappings: A string of base64 VLQs which contain the actual mappings.\n\t * - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"out.js\",\n\t * sourceRoot : \"\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AA,AB;;ABCDE;\"\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sources = util.getArg(sourceMap, 'sources');\n\t // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t // requires the array) to play nice here.\n\t var names = util.getArg(sourceMap, 'names', []);\n\t var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t var mappings = util.getArg(sourceMap, 'mappings');\n\t var file = util.getArg(sourceMap, 'file', null);\n\n\t // Once again, Sass deviates from the spec and supplies the version as a\n\t // string rather than a number, so we use loose equality checking here.\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t sources = sources\n\t .map(String)\n\t // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t // \"foo.js\". Normalize these first so that future comparisons will succeed.\n\t // See bugzil.la/1090768.\n\t .map(util.normalize)\n\t // Always ensure that absolute sources are internally stored relative to\n\t // the source root, if the source root is absolute. Not doing this would\n\t // be particularly problematic when the source root is a prefix of the\n\t // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t .map(function (source) {\n\t return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t ? util.relative(sourceRoot, source)\n\t : source;\n\t });\n\n\t // Pass `true` below to allow duplicate names and sources. While source maps\n\t // are intended to be compressed and deduplicated, the TypeScript compiler\n\t // sometimes generates source maps with duplicates in them. See Github issue\n\t // #72 and bugzil.la/889492.\n\t this._names = ArraySet.fromArray(names.map(String), true);\n\t this._sources = ArraySet.fromArray(sources, true);\n\n\t this.sourceRoot = sourceRoot;\n\t this.sourcesContent = sourcesContent;\n\t this._mappings = mappings;\n\t this.file = file;\n\t}\n\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t * The source map that will be consumed.\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t function SourceMapConsumer_fromSourceMap(aSourceMap) {\n\t var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n\t var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t smc.sourceRoot = aSourceMap._sourceRoot;\n\t smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t smc.sourceRoot);\n\t smc.file = aSourceMap._file;\n\n\t // Because we are modifying the entries (by converting string sources and\n\t // names to indices into the sources and names ArraySets), we have to make\n\t // a copy of the entry or else bad things happen. Shared mutable state\n\t // strikes again! See github issue #191.\n\n\t var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t var destGeneratedMappings = smc.__generatedMappings = [];\n\t var destOriginalMappings = smc.__originalMappings = [];\n\n\t for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t var srcMapping = generatedMappings[i];\n\t var destMapping = new Mapping;\n\t destMapping.generatedLine = srcMapping.generatedLine;\n\t destMapping.generatedColumn = srcMapping.generatedColumn;\n\n\t if (srcMapping.source) {\n\t destMapping.source = sources.indexOf(srcMapping.source);\n\t destMapping.originalLine = srcMapping.originalLine;\n\t destMapping.originalColumn = srcMapping.originalColumn;\n\n\t if (srcMapping.name) {\n\t destMapping.name = names.indexOf(srcMapping.name);\n\t }\n\n\t destOriginalMappings.push(destMapping);\n\t }\n\n\t destGeneratedMappings.push(destMapping);\n\t }\n\n\t quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n\t return smc;\n\t };\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t return this._sources.toArray().map(function (s) {\n\t return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n\t }, this);\n\t }\n\t});\n\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t this.generatedLine = 0;\n\t this.generatedColumn = 0;\n\t this.source = null;\n\t this.originalLine = null;\n\t this.originalColumn = null;\n\t this.name = null;\n\t}\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t var generatedLine = 1;\n\t var previousGeneratedColumn = 0;\n\t var previousOriginalLine = 0;\n\t var previousOriginalColumn = 0;\n\t var previousSource = 0;\n\t var previousName = 0;\n\t var length = aStr.length;\n\t var index = 0;\n\t var cachedSegments = {};\n\t var temp = {};\n\t var originalMappings = [];\n\t var generatedMappings = [];\n\t var mapping, str, segment, end, value;\n\n\t while (index < length) {\n\t if (aStr.charAt(index) === ';') {\n\t generatedLine++;\n\t index++;\n\t previousGeneratedColumn = 0;\n\t }\n\t else if (aStr.charAt(index) === ',') {\n\t index++;\n\t }\n\t else {\n\t mapping = new Mapping();\n\t mapping.generatedLine = generatedLine;\n\n\t // Because each offset is encoded relative to the previous one,\n\t // many segments often have the same encoding. We can exploit this\n\t // fact by caching the parsed variable length fields of each segment,\n\t // allowing us to avoid a second parse if we encounter the same\n\t // segment again.\n\t for (end = index; end < length; end++) {\n\t if (this._charIsMappingSeparator(aStr, end)) {\n\t break;\n\t }\n\t }\n\t str = aStr.slice(index, end);\n\n\t segment = cachedSegments[str];\n\t if (segment) {\n\t index += str.length;\n\t } else {\n\t segment = [];\n\t while (index < end) {\n\t base64VLQ.decode(aStr, index, temp);\n\t value = temp.value;\n\t index = temp.rest;\n\t segment.push(value);\n\t }\n\n\t if (segment.length === 2) {\n\t throw new Error('Found a source, but no line and column');\n\t }\n\n\t if (segment.length === 3) {\n\t throw new Error('Found a source and line, but no column');\n\t }\n\n\t cachedSegments[str] = segment;\n\t }\n\n\t // Generated column.\n\t mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t previousGeneratedColumn = mapping.generatedColumn;\n\n\t if (segment.length > 1) {\n\t // Original source.\n\t mapping.source = previousSource + segment[1];\n\t previousSource += segment[1];\n\n\t // Original line.\n\t mapping.originalLine = previousOriginalLine + segment[2];\n\t previousOriginalLine = mapping.originalLine;\n\t // Lines are stored 0-based\n\t mapping.originalLine += 1;\n\n\t // Original column.\n\t mapping.originalColumn = previousOriginalColumn + segment[3];\n\t previousOriginalColumn = mapping.originalColumn;\n\n\t if (segment.length > 4) {\n\t // Original name.\n\t mapping.name = previousName + segment[4];\n\t previousName += segment[4];\n\t }\n\t }\n\n\t generatedMappings.push(mapping);\n\t if (typeof mapping.originalLine === 'number') {\n\t originalMappings.push(mapping);\n\t }\n\t }\n\t }\n\n\t quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t this.__generatedMappings = generatedMappings;\n\n\t quickSort(originalMappings, util.compareByOriginalPositions);\n\t this.__originalMappings = originalMappings;\n\t };\n\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t aColumnName, aComparator, aBias) {\n\t // To return the position we are searching for, we must first find the\n\t // mapping for the given position and then return the opposite position it\n\t // points to. Because the mappings are sorted, we can use binary search to\n\t // find the best mapping.\n\n\t if (aNeedle[aLineName] <= 0) {\n\t throw new TypeError('Line must be greater than or equal to 1, got '\n\t + aNeedle[aLineName]);\n\t }\n\t if (aNeedle[aColumnName] < 0) {\n\t throw new TypeError('Column must be greater than or equal to 0, got '\n\t + aNeedle[aColumnName]);\n\t }\n\n\t return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t };\n\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t function SourceMapConsumer_computeColumnSpans() {\n\t for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t var mapping = this._generatedMappings[index];\n\n\t // Mappings do not contain a field for the last generated columnt. We\n\t // can come up with an optimistic estimate, however, by assuming that\n\t // mappings are contiguous (i.e. given two consecutive mappings, the\n\t // first mapping ends where the second one starts).\n\t if (index + 1 < this._generatedMappings.length) {\n\t var nextMapping = this._generatedMappings[index + 1];\n\n\t if (mapping.generatedLine === nextMapping.generatedLine) {\n\t mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t continue;\n\t }\n\t }\n\n\t // The last mapping for each line spans the entire line.\n\t mapping.lastGeneratedColumn = Infinity;\n\t }\n\t };\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t function SourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._generatedMappings,\n\t \"generatedLine\",\n\t \"generatedColumn\",\n\t util.compareByGeneratedPositionsDeflated,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._generatedMappings[index];\n\n\t if (mapping.generatedLine === needle.generatedLine) {\n\t var source = util.getArg(mapping, 'source', null);\n\t if (source !== null) {\n\t source = this._sources.at(source);\n\t if (this.sourceRoot != null) {\n\t source = util.join(this.sourceRoot, source);\n\t }\n\t }\n\t var name = util.getArg(mapping, 'name', null);\n\t if (name !== null) {\n\t name = this._names.at(name);\n\t }\n\t return {\n\t source: source,\n\t line: util.getArg(mapping, 'originalLine', null),\n\t column: util.getArg(mapping, 'originalColumn', null),\n\t name: name\n\t };\n\t }\n\t }\n\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t if (!this.sourcesContent) {\n\t return false;\n\t }\n\t return this.sourcesContent.length >= this._sources.size() &&\n\t !this.sourcesContent.some(function (sc) { return sc == null; });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t if (!this.sourcesContent) {\n\t return null;\n\t }\n\n\t if (this.sourceRoot != null) {\n\t aSource = util.relative(this.sourceRoot, aSource);\n\t }\n\n\t if (this._sources.has(aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(aSource)];\n\t }\n\n\t var url;\n\t if (this.sourceRoot != null\n\t && (url = util.urlParse(this.sourceRoot))) {\n\t // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t // many users. We can help them out when they expect file:// URIs to\n\t // behave like it would if they were running a local HTTP server. See\n\t // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n\t if (url.scheme == \"file\"\n\t && this._sources.has(fileUriAbsPath)) {\n\t return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t }\n\n\t if ((!url.path || url.path == \"/\")\n\t && this._sources.has(\"/\" + aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n\t }\n\t }\n\n\t // This function is used recursively from\n\t // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t // don't want to throw if we can't find the source - we just want to\n\t // return null, so we provide a flag to exit gracefully.\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t var source = util.getArg(aArgs, 'source');\n\t if (this.sourceRoot != null) {\n\t source = util.relative(this.sourceRoot, source);\n\t }\n\t if (!this._sources.has(source)) {\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t }\n\t source = this._sources.indexOf(source);\n\n\t var needle = {\n\t source: source,\n\t originalLine: util.getArg(aArgs, 'line'),\n\t originalColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (mapping.source === needle.source) {\n\t return {\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t };\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t };\n\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The only parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - file: Optional. The generated file this source map is associated with.\n\t * - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t * - offset: The offset into the original specified at which this section\n\t * begins to apply, defined as an object with a \"line\" and \"column\"\n\t * field.\n\t * - map: A source map definition. This source map could also be indexed,\n\t * but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"app.js\",\n\t * sections: [{\n\t * offset: {line:100, column:10},\n\t * map: {\n\t * version : 3,\n\t * file: \"section.js\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AAAA,E;;ABCDE;\"\n\t * }\n\t * }],\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sections = util.getArg(sourceMap, 'sections');\n\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t this._sources = new ArraySet();\n\t this._names = new ArraySet();\n\n\t var lastOffset = {\n\t line: -1,\n\t column: 0\n\t };\n\t this._sections = sections.map(function (s) {\n\t if (s.url) {\n\t // The url field will require support for asynchronicity.\n\t // See https://github.com/mozilla/source-map/issues/16\n\t throw new Error('Support for url field in sections not implemented.');\n\t }\n\t var offset = util.getArg(s, 'offset');\n\t var offsetLine = util.getArg(offset, 'line');\n\t var offsetColumn = util.getArg(offset, 'column');\n\n\t if (offsetLine < lastOffset.line ||\n\t (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t throw new Error('Section offsets must be ordered and non-overlapping.');\n\t }\n\t lastOffset = offset;\n\n\t return {\n\t generatedOffset: {\n\t // The offset fields are 0-based, but we use 1-based indices when\n\t // encoding/decoding from VLQ.\n\t generatedLine: offsetLine + 1,\n\t generatedColumn: offsetColumn + 1\n\t },\n\t consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n\t }\n\t });\n\t}\n\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t var sources = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t sources.push(this._sections[i].consumer.sources[j]);\n\t }\n\t }\n\t return sources;\n\t }\n\t});\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t // Find the section containing the generated position we're trying to map\n\t // to an original position.\n\t var sectionIndex = binarySearch.search(needle, this._sections,\n\t function(needle, section) {\n\t var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t if (cmp) {\n\t return cmp;\n\t }\n\n\t return (needle.generatedColumn -\n\t section.generatedOffset.generatedColumn);\n\t });\n\t var section = this._sections[sectionIndex];\n\n\t if (!section) {\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t }\n\n\t return section.consumer.originalPositionFor({\n\t line: needle.generatedLine -\n\t (section.generatedOffset.generatedLine - 1),\n\t column: needle.generatedColumn -\n\t (section.generatedOffset.generatedLine === needle.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t bias: aArgs.bias\n\t });\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t return this._sections.every(function (s) {\n\t return s.consumer.hasContentsOfAllSources();\n\t });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t var content = section.consumer.sourceContentFor(aSource, true);\n\t if (content) {\n\t return content;\n\t }\n\t }\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t // Only consider this section if the requested source is in the list of\n\t // sources of the consumer.\n\t if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n\t continue;\n\t }\n\t var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t if (generatedPosition) {\n\t var ret = {\n\t line: generatedPosition.line +\n\t (section.generatedOffset.generatedLine - 1),\n\t column: generatedPosition.column +\n\t (section.generatedOffset.generatedLine === generatedPosition.line\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0)\n\t };\n\t return ret;\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null\n\t };\n\t };\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t this.__generatedMappings = [];\n\t this.__originalMappings = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\t var sectionMappings = section.consumer._generatedMappings;\n\t for (var j = 0; j < sectionMappings.length; j++) {\n\t var mapping = sectionMappings[j];\n\n\t var source = section.consumer._sources.at(mapping.source);\n\t if (section.consumer.sourceRoot !== null) {\n\t source = util.join(section.consumer.sourceRoot, source);\n\t }\n\t this._sources.add(source);\n\t source = this._sources.indexOf(source);\n\n\t var name = section.consumer._names.at(mapping.name);\n\t this._names.add(name);\n\t name = this._names.indexOf(name);\n\n\t // The mappings coming from the consumer for the section have\n\t // generated positions relative to the start of the section, so we\n\t // need to offset them to be relative to the start of the concatenated\n\t // generated file.\n\t var adjustedMapping = {\n\t source: source,\n\t generatedLine: mapping.generatedLine +\n\t (section.generatedOffset.generatedLine - 1),\n\t generatedColumn: mapping.generatedColumn +\n\t (section.generatedOffset.generatedLine === mapping.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: name\n\t };\n\n\t this.__generatedMappings.push(adjustedMapping);\n\t if (typeof adjustedMapping.originalLine === 'number') {\n\t this.__originalMappings.push(adjustedMapping);\n\t }\n\t }\n\t }\n\n\t quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t };\n\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t if (aName in aArgs) {\n\t return aArgs[aName];\n\t } else if (arguments.length === 3) {\n\t return aDefaultValue;\n\t } else {\n\t throw new Error('\"' + aName + '\" is a required argument.');\n\t }\n\t}\n\texports.getArg = getArg;\n\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\n\tfunction urlParse(aUrl) {\n\t var match = aUrl.match(urlRegexp);\n\t if (!match) {\n\t return null;\n\t }\n\t return {\n\t scheme: match[1],\n\t auth: match[2],\n\t host: match[3],\n\t port: match[4],\n\t path: match[5]\n\t };\n\t}\n\texports.urlParse = urlParse;\n\n\tfunction urlGenerate(aParsedUrl) {\n\t var url = '';\n\t if (aParsedUrl.scheme) {\n\t url += aParsedUrl.scheme + ':';\n\t }\n\t url += '//';\n\t if (aParsedUrl.auth) {\n\t url += aParsedUrl.auth + '@';\n\t }\n\t if (aParsedUrl.host) {\n\t url += aParsedUrl.host;\n\t }\n\t if (aParsedUrl.port) {\n\t url += \":\" + aParsedUrl.port\n\t }\n\t if (aParsedUrl.path) {\n\t url += aParsedUrl.path;\n\t }\n\t return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '<dir>/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t var path = aPath;\n\t var url = urlParse(aPath);\n\t if (url) {\n\t if (!url.path) {\n\t return aPath;\n\t }\n\t path = url.path;\n\t }\n\t var isAbsolute = exports.isAbsolute(path);\n\n\t var parts = path.split(/\\/+/);\n\t for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t part = parts[i];\n\t if (part === '.') {\n\t parts.splice(i, 1);\n\t } else if (part === '..') {\n\t up++;\n\t } else if (up > 0) {\n\t if (part === '') {\n\t // The first part is blank if the path is absolute. Trying to go\n\t // above the root is a no-op. Therefore we can remove all '..' parts\n\t // directly after the root.\n\t parts.splice(i + 1, up);\n\t up = 0;\n\t } else {\n\t parts.splice(i, 2);\n\t up--;\n\t }\n\t }\n\t }\n\t path = parts.join('/');\n\n\t if (path === '') {\n\t path = isAbsolute ? '/' : '.';\n\t }\n\n\t if (url) {\n\t url.path = path;\n\t return urlGenerate(url);\n\t }\n\t return path;\n\t}\n\texports.normalize = normalize;\n\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t * first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t * is updated with the result and aRoot is returned. Otherwise the result\n\t * is returned.\n\t * - If aPath is absolute, the result is aPath.\n\t * - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\t if (aPath === \"\") {\n\t aPath = \".\";\n\t }\n\t var aPathUrl = urlParse(aPath);\n\t var aRootUrl = urlParse(aRoot);\n\t if (aRootUrl) {\n\t aRoot = aRootUrl.path || '/';\n\t }\n\n\t // `join(foo, '//www.example.org')`\n\t if (aPathUrl && !aPathUrl.scheme) {\n\t if (aRootUrl) {\n\t aPathUrl.scheme = aRootUrl.scheme;\n\t }\n\t return urlGenerate(aPathUrl);\n\t }\n\n\t if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t return aPath;\n\t }\n\n\t // `join('http://', 'www.example.com')`\n\t if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t aRootUrl.host = aPath;\n\t return urlGenerate(aRootUrl);\n\t }\n\n\t var joined = aPath.charAt(0) === '/'\n\t ? aPath\n\t : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n\t if (aRootUrl) {\n\t aRootUrl.path = joined;\n\t return urlGenerate(aRootUrl);\n\t }\n\t return joined;\n\t}\n\texports.join = join;\n\n\texports.isAbsolute = function (aPath) {\n\t return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n\t};\n\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\n\t aRoot = aRoot.replace(/\\/$/, '');\n\n\t // It is possible for the path to be above the root. In this case, simply\n\t // checking whether the root is a prefix of the path won't work. Instead, we\n\t // need to remove components from the root one by one, until either we find\n\t // a prefix that fits, or we run out of components to remove.\n\t var level = 0;\n\t while (aPath.indexOf(aRoot + '/') !== 0) {\n\t var index = aRoot.lastIndexOf(\"/\");\n\t if (index < 0) {\n\t return aPath;\n\t }\n\n\t // If the only part of the root that is left is the scheme (i.e. http://,\n\t // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t // have exhausted all components, so the path is not relative to the root.\n\t aRoot = aRoot.slice(0, index);\n\t if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t return aPath;\n\t }\n\n\t ++level;\n\t }\n\n\t // Make sure we add a \"../\" for each component we removed from the root.\n\t return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\n\tvar supportsNullProto = (function () {\n\t var obj = Object.create(null);\n\t return !('__proto__' in obj);\n\t}());\n\n\tfunction identity (s) {\n\t return s;\n\t}\n\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return '$' + aStr;\n\t }\n\n\t return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\n\tfunction fromSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return aStr.slice(1);\n\t }\n\n\t return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\n\tfunction isProtoString(s) {\n\t if (!s) {\n\t return false;\n\t }\n\n\t var length = s.length;\n\n\t if (length < 9 /* \"__proto__\".length */) {\n\t return false;\n\t }\n\n\t if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 9) !== 95 /* '_' */) {\n\t return false;\n\t }\n\n\t for (var i = length - 10; i >= 0; i--) {\n\t if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t}\n\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t var cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0 || onlyCompareOriginal) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0 || onlyCompareGenerated) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\n\tfunction strcmp(aStr1, aStr2) {\n\t if (aStr1 === aStr2) {\n\t return 0;\n\t }\n\n\t if (aStr1 > aStr2) {\n\t return 1;\n\t }\n\n\t return -1;\n\t}\n\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = strcmp(mappingA.source, mappingB.source);\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t // This function terminates when one of the following is true:\n\t //\n\t // 1. We find the exact element we are looking for.\n\t //\n\t // 2. We did not find the exact element, but we can return the index of\n\t // the next-closest element.\n\t //\n\t // 3. We did not find the exact element, and there is no next-closest\n\t // element than the one we are searching for, so we return -1.\n\t var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t if (cmp === 0) {\n\t // Found the element we are looking for.\n\t return mid;\n\t }\n\t else if (cmp > 0) {\n\t // Our needle is greater than aHaystack[mid].\n\t if (aHigh - mid > 1) {\n\t // The element is in the upper half.\n\t return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // The exact needle element was not found in this haystack. Determine if\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return aHigh < aHaystack.length ? aHigh : -1;\n\t } else {\n\t return mid;\n\t }\n\t }\n\t else {\n\t // Our needle is less than aHaystack[mid].\n\t if (mid - aLow > 1) {\n\t // The element is in the lower half.\n\t return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return mid;\n\t } else {\n\t return aLow < 0 ? -1 : aLow;\n\t }\n\t }\n\t}\n\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t * array and returns -1, 0, or 1 depending on whether the needle is less\n\t * than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t if (aHaystack.length === 0) {\n\t return -1;\n\t }\n\n\t var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t if (index < 0) {\n\t return -1;\n\t }\n\n\t // We have found either the exact element, or the next-closest element than\n\t // the one we are searching for. However, there may be more than one such\n\t // element. Make sure we always return the smallest of these.\n\t while (index - 1 >= 0) {\n\t if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t break;\n\t }\n\t --index;\n\t }\n\n\t return index;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar util = __webpack_require__(2);\n\tvar has = Object.prototype.hasOwnProperty;\n\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t this._array = [];\n\t this._set = Object.create(null);\n\t}\n\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t var set = new ArraySet();\n\t for (var i = 0, len = aArray.length; i < len; i++) {\n\t set.add(aArray[i], aAllowDuplicates);\n\t }\n\t return set;\n\t};\n\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t return Object.getOwnPropertyNames(this._set).length;\n\t};\n\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t var sStr = util.toSetString(aStr);\n\t var isDuplicate = has.call(this._set, sStr);\n\t var idx = this._array.length;\n\t if (!isDuplicate || aAllowDuplicates) {\n\t this._array.push(aStr);\n\t }\n\t if (!isDuplicate) {\n\t this._set[sStr] = idx;\n\t }\n\t};\n\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t return has.call(this._set, sStr);\n\t};\n\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t if (has.call(this._set, sStr)) {\n\t return this._set[sStr];\n\t }\n\t throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t if (aIdx >= 0 && aIdx < this._array.length) {\n\t return this._array[aIdx];\n\t }\n\t throw new Error('No element indexed by ' + aIdx);\n\t};\n\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t return this._array.slice();\n\t};\n\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\n\t * * Redistributions of source code must retain the above copyright\n\t * notice, this list of conditions and the following disclaimer.\n\t * * Redistributions in binary form must reproduce the above\n\t * copyright notice, this list of conditions and the following\n\t * disclaimer in the documentation and/or other materials provided\n\t * with the distribution.\n\t * * Neither the name of Google Inc. nor the names of its\n\t * contributors may be used to endorse or promote products derived\n\t * from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\n\tvar base64 = __webpack_require__(6);\n\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t// Continuation\n\t// | Sign\n\t// | |\n\t// V V\n\t// 101011\n\n\tvar VLQ_BASE_SHIFT = 5;\n\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t return aValue < 0\n\t ? ((-aValue) << 1) + 1\n\t : (aValue << 1) + 0;\n\t}\n\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t var isNegative = (aValue & 1) === 1;\n\t var shifted = aValue >> 1;\n\t return isNegative\n\t ? -shifted\n\t : shifted;\n\t}\n\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t var encoded = \"\";\n\t var digit;\n\n\t var vlq = toVLQSigned(aValue);\n\n\t do {\n\t digit = vlq & VLQ_BASE_MASK;\n\t vlq >>>= VLQ_BASE_SHIFT;\n\t if (vlq > 0) {\n\t // There are still more digits in this value, so we must make sure the\n\t // continuation bit is marked.\n\t digit |= VLQ_CONTINUATION_BIT;\n\t }\n\t encoded += base64.encode(digit);\n\t } while (vlq > 0);\n\n\t return encoded;\n\t};\n\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t var strLen = aStr.length;\n\t var result = 0;\n\t var shift = 0;\n\t var continuation, digit;\n\n\t do {\n\t if (aIndex >= strLen) {\n\t throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t }\n\n\t digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t if (digit === -1) {\n\t throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t }\n\n\t continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t digit &= VLQ_BASE_MASK;\n\t result = result + (digit << shift);\n\t shift += VLQ_BASE_SHIFT;\n\t } while (continuation);\n\n\t aOutParam.value = fromVLQSigned(result);\n\t aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t if (0 <= number && number < intToCharMap.length) {\n\t return intToCharMap[number];\n\t }\n\t throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t var bigA = 65; // 'A'\n\t var bigZ = 90; // 'Z'\n\n\t var littleA = 97; // 'a'\n\t var littleZ = 122; // 'z'\n\n\t var zero = 48; // '0'\n\t var nine = 57; // '9'\n\n\t var plus = 43; // '+'\n\t var slash = 47; // '/'\n\n\t var littleOffset = 26;\n\t var numberOffset = 52;\n\n\t // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t if (bigA <= charCode && charCode <= bigZ) {\n\t return (charCode - bigA);\n\t }\n\n\t // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t if (littleA <= charCode && charCode <= littleZ) {\n\t return (charCode - littleA + littleOffset);\n\t }\n\n\t // 52 - 61: 0123456789\n\t if (zero <= charCode && charCode <= nine) {\n\t return (charCode - zero + numberOffset);\n\t }\n\n\t // 62: +\n\t if (charCode == plus) {\n\t return 62;\n\t }\n\n\t // 63: /\n\t if (charCode == slash) {\n\t return 63;\n\t }\n\n\t // Invalid base64 digit.\n\t return -1;\n\t};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t * The array.\n\t * @param {Number} x\n\t * The index of the first item.\n\t * @param {Number} y\n\t * The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t var temp = ary[x];\n\t ary[x] = ary[y];\n\t ary[y] = temp;\n\t}\n\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t * The lower bound on the range.\n\t * @param {Number} high\n\t * The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t return Math.round(low + (Math.random() * (high - low)));\n\t}\n\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t * @param {Number} p\n\t * Start index of the array\n\t * @param {Number} r\n\t * End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t // If our lower bound is less than our upper bound, we (1) partition the\n\t // array into two pieces and (2) recurse on each half. If it is not, this is\n\t // the empty array and our base case.\n\n\t if (p < r) {\n\t // (1) Partitioning.\n\t //\n\t // The partitioning chooses a pivot between `p` and `r` and moves all\n\t // elements that are less than or equal to the pivot to the before it, and\n\t // all the elements that are greater than it after it. The effect is that\n\t // once partition is done, the pivot is in the exact place it will be when\n\t // the array is put in sorted order, and it will not need to be moved\n\t // again. This runs in O(n) time.\n\n\t // Always choose a random pivot so that an input array which is reverse\n\t // sorted does not cause O(n^2) running time.\n\t var pivotIndex = randomIntInRange(p, r);\n\t var i = p - 1;\n\n\t swap(ary, pivotIndex, r);\n\t var pivot = ary[r];\n\n\t // Immediately after `j` is incremented in this loop, the following hold\n\t // true:\n\t //\n\t // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t //\n\t // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t for (var j = p; j < r; j++) {\n\t if (comparator(ary[j], pivot) <= 0) {\n\t i += 1;\n\t swap(ary, i, j);\n\t }\n\t }\n\n\t swap(ary, i + 1, j);\n\t var q = i + 1;\n\n\t // (2) Recurse on each half.\n\n\t doQuickSort(ary, comparator, p, q - 1);\n\t doQuickSort(ary, comparator, q + 1, r);\n\t }\n\t}\n\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ })\n/******/ ])\n});\n;"],"names":["this"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"sourcemapped-stacktrace.c36ae24f.js","sources":["../../node_modules/sourcemapped-stacktrace/dist/sourcemapped-stacktrace.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMappedStackTrace\"] = factory();\n\telse\n\t\troot[\"sourceMappedStackTrace\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n\t * sourcemapped-stacktrace.js\n\t * created by James Salter <iteration@gmail.com> (2014)\n\t *\n\t * https://github.com/novocaine/sourcemapped-stacktrace\n\t *\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/*global define */\n\n\t// note we only include source-map-consumer, not the whole source-map library,\n\t// which includes gear for generating source maps that we don't need\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_RESULT__ = function(source_map_consumer) {\n\n\t var global_mapForUri = {};\n\n\t /**\n\t * Re-map entries in a stacktrace using sourcemaps if available.\n\t *\n\t * @param {str} stack - The stacktrace from the browser.\n\t * @param {function} done - Callback invoked with the transformed stacktrace\n\t * (an Array of Strings) passed as the first\n\t * argument\n\t * @param {Object} [opts] - Optional options object.\n\t * @param {Function} [opts.filter] - Filter function applied to each stackTrace line.\n\t * Lines which do not pass the filter won't be processesd.\n\t * @param {boolean} [opts.cacheGlobally] - Whether to cache sourcemaps globally across multiple calls.\n\t * @param {boolean} [opts.sync] - Whether to use synchronous ajax to load the sourcemaps.\n\t * @param {string} [opts.traceFormat] - If `error.stack` is formatted according to chrome or\n\t * Firefox's style. Can be either `\"chrome\"`, `\"firefox\"`\n\t * or `undefined` (default). If `undefined`, this library\n\t * will guess based on `navigator.userAgent`.\n\t */\n\t var mapStackTrace = function(stack, done, opts) {\n\t var lines;\n\t var line;\n\t var mapForUri = {};\n\t var rows = {};\n\t var fields;\n\t var uri;\n\t var expected_fields;\n\t var regex;\n\t var skip_lines;\n\n\t var fetcher = new Fetcher(opts);\n\n\t var traceFormat = opts && opts.traceFormat;\n\t if (traceFormat !== \"chrome\" && traceFormat !== \"firefox\") {\n\t if (traceFormat) {\n\t throw new Error(\"unknown traceFormat \\\"\" + traceFormat + \"\\\" :(\");\n\t } else if (isChromeOrEdge() || isIE11Plus()) {\n\t traceFormat = \"chrome\";\n\t } else if (isFirefox() || isSafari()) {\n\t traceFormat = \"firefox\";\n\t } else {\n\t throw new Error(\"unknown browser :(\");\n\t }\n\t }\n\n\t if (traceFormat === \"chrome\") {\n\t regex = /^ +at.+\\((.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t // (skip first line containing exception message)\n\t skip_lines = 1;\n\t } else {\n\t regex = /@(.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t skip_lines = 0;\n\t }\n\n\t lines = stack.split(\"\\n\").slice(skip_lines);\n\n\t for (var i=0; i < lines.length; i++) {\n\t line = lines[i];\n\t if ( opts && opts.filter && !opts.filter(line) ) continue;\n\t \n\t fields = line.match(regex);\n\t if (fields && fields.length === expected_fields) {\n\t rows[i] = fields;\n\t uri = fields[1];\n\t if (!uri.match(/<anonymous>/)) {\n\t fetcher.fetchScript(uri);\n\t }\n\t }\n\t }\n\n\t fetcher.sem.whenReady(function() {\n\t var result = processSourceMaps(lines, rows, fetcher.mapForUri, traceFormat);\n\t done(result);\n\t });\n\t };\n\n\t var isChromeOrEdge = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('chrome') > -1;\n\t };\n\n\t var isFirefox = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\t }; \n\n\t var isSafari = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('safari') > -1;\n\t };\n\t\t\t\n\t var isIE11Plus = function() {\n\t \treturn document.documentMode && document.documentMode >= 11;\n\t };\n\n\n\t var Semaphore = function() {\n\t this.count = 0;\n\t this.pending = [];\n\t };\n\n\t Semaphore.prototype.incr = function() {\n\t this.count++;\n\t };\n\n\t Semaphore.prototype.decr = function() {\n\t this.count--;\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.whenReady = function(fn) {\n\t this.pending.push(fn);\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.flush = function() {\n\t if (this.count === 0) {\n\t this.pending.forEach(function(fn) { fn(); });\n\t this.pending = [];\n\t }\n\t };\n\n\n\t var Fetcher = function(opts) {\n\t this.sem = new Semaphore();\n\t this.sync = opts && opts.sync;\n\t this.mapForUri = opts && opts.cacheGlobally ? global_mapForUri : {};\n\t };\n\n\t Fetcher.prototype.ajax = function(uri, callback) {\n\t var xhr = createXMLHTTPObject();\n\t var that = this;\n\t xhr.onreadystatechange = function() {\n\t if (xhr.readyState == 4) {\n\t callback.call(that, xhr, uri);\n\t }\n\t };\n\t xhr.open(\"GET\", uri, !this.sync);\n\t xhr.send();\n\t }\n\n\t Fetcher.prototype.fetchScript = function(uri) {\n\t if (!(uri in this.mapForUri)) {\n\t this.sem.incr();\n\t this.mapForUri[uri] = null;\n\t } else {\n\t return;\n\t }\n\n\t this.ajax(uri, this.onScriptLoad);\n\t };\n\n\t var absUrlRegex = new RegExp('^(?:[a-z]+:)?//', 'i');\n\n\t Fetcher.prototype.onScriptLoad = function(xhr, uri) {\n\t if (xhr.status === 200 || (uri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t // find .map in file.\n\t //\n\t // attempt to find it at the very end of the file, but tolerate trailing\n\t // whitespace inserted by some packers.\n\t var match = xhr.responseText.match(\"//# [s]ourceMappingURL=(.*)[\\\\s]*$\", \"m\");\n\t if (match && match.length === 2) {\n\t // get the map\n\t var mapUri = match[1];\n\n\t var embeddedSourceMap = mapUri.match(\"data:application/json;(charset=[^;]+;)?base64,(.*)\");\n\n\t if (embeddedSourceMap && embeddedSourceMap[2]) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(atob(embeddedSourceMap[2]));\n\t this.sem.decr();\n\t } else {\n\t if (!absUrlRegex.test(mapUri)) {\n\t // relative url; according to sourcemaps spec is 'source origin'\n\t var origin;\n\t var lastSlash = uri.lastIndexOf('/');\n\t if (lastSlash !== -1) {\n\t origin = uri.slice(0, lastSlash + 1);\n\t mapUri = origin + mapUri;\n\t // note if lastSlash === -1, actual script uri has no slash\n\t // somehow, so no way to use it as a prefix... we give up and try\n\t // as absolute\n\t }\n\t }\n\n\t this.ajax(mapUri, function(xhr) {\n\t if (xhr.status === 200 || (mapUri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(xhr.responseText);\n\t }\n\t this.sem.decr();\n\t });\n\t }\n\t } else {\n\t // no map\n\t this.sem.decr();\n\t }\n\t } else {\n\t // HTTP error fetching uri of the script\n\t this.sem.decr();\n\t }\n\t };\n\n\t var processSourceMaps = function(lines, rows, mapForUri, traceFormat) {\n\t var result = [];\n\t var map;\n\t var origName = traceFormat === \"chrome\" ? origNameChrome : origNameFirefox;\n\t for (var i=0; i < lines.length; i++) {\n\t var row = rows[i];\n\t if (row) {\n\t var uri = row[1];\n\t var line = parseInt(row[2], 10);\n\t var column = parseInt(row[3], 10);\n\t map = mapForUri[uri];\n\n\t if (map) {\n\t // we think we have a map for that uri. call source-map library\n\t var origPos = map.originalPositionFor(\n\t { line: line, column: column });\n\t result.push(formatOriginalPosition(origPos.source,\n\t origPos.line, origPos.column, origPos.name || origName(lines[i])));\n\t } else {\n\t // we can't find a map for that url, but we parsed the row.\n\t // reformat unchanged line for consistency with the sourcemapped\n\t // lines.\n\t result.push(formatOriginalPosition(uri, line, column, origName(lines[i])));\n\t }\n\t } else {\n\t // we weren't able to parse the row, push back what we were given\n\t result.push(lines[i]);\n\t }\n\t }\n\n\t return result;\n\t };\n\n\t function origNameChrome(origLine) {\n\t var match = / +at +([^ ]*).*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t function origNameFirefox(origLine) {\n\t var match = /([^@]*)@.*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t var formatOriginalPosition = function(source, line, column, name) {\n\t // mimic chrome's format\n\t return \" at \" + (name ? name : \"(unknown)\") +\n\t \" (\" + source + \":\" + line + \":\" + column + \")\";\n\t };\n\n\t // xmlhttprequest boilerplate\n\t var XMLHttpFactories = [\n\t\tfunction () {return new XMLHttpRequest();},\n\t\tfunction () {return new ActiveXObject(\"Msxml2.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Msxml3.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Microsoft.XMLHTTP\");}\n\t ];\n\n\t function createXMLHTTPObject() {\n\t var xmlhttp = false;\n\t for (var i=0;i<XMLHttpFactories.length;i++) {\n\t try {\n\t xmlhttp = XMLHttpFactories[i]();\n\t }\n\t catch (e) {\n\t continue;\n\t }\n\t break;\n\t }\n\t return xmlhttp;\n\t }\n\n\t return {\n\t mapStackTrace: mapStackTrace\n\t }\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar util = __webpack_require__(2);\n\tvar binarySearch = __webpack_require__(3);\n\tvar ArraySet = __webpack_require__(4).ArraySet;\n\tvar base64VLQ = __webpack_require__(5);\n\tvar quickSort = __webpack_require__(7).quickSort;\n\n\tfunction SourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t return sourceMap.sections != null\n\t ? new IndexedSourceMapConsumer(sourceMap)\n\t : new BasicSourceMapConsumer(sourceMap);\n\t}\n\n\tSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n\t return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n\t}\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tSourceMapConsumer.prototype._version = 3;\n\n\t// `__generatedMappings` and `__originalMappings` are arrays that hold the\n\t// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n\t// are lazily instantiated, accessed via the `_generatedMappings` and\n\t// `_originalMappings` getters respectively, and we only parse the mappings\n\t// and create these arrays once queried for a source location. We jump through\n\t// these hoops because there can be many thousands of mappings, and parsing\n\t// them is expensive, so we only want to do it if we must.\n\t//\n\t// Each object in the arrays is of the form:\n\t//\n\t// {\n\t// generatedLine: The line number in the generated code,\n\t// generatedColumn: The column number in the generated code,\n\t// source: The path to the original source file that generated this\n\t// chunk of code,\n\t// originalLine: The line number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// originalColumn: The column number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// name: The name of the original symbol which generated this chunk of\n\t// code.\n\t// }\n\t//\n\t// All properties except for `generatedLine` and `generatedColumn` can be\n\t// `null`.\n\t//\n\t// `_generatedMappings` is ordered by the generated positions.\n\t//\n\t// `_originalMappings` is ordered by the original positions.\n\n\tSourceMapConsumer.prototype.__generatedMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n\t get: function () {\n\t if (!this.__generatedMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\n\t return this.__generatedMappings;\n\t }\n\t});\n\n\tSourceMapConsumer.prototype.__originalMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n\t get: function () {\n\t if (!this.__originalMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\n\t return this.__originalMappings;\n\t }\n\t});\n\n\tSourceMapConsumer.prototype._charIsMappingSeparator =\n\t function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n\t var c = aStr.charAt(index);\n\t return c === \";\" || c === \",\";\n\t };\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t throw new Error(\"Subclasses must implement _parseMappings\");\n\t };\n\n\tSourceMapConsumer.GENERATED_ORDER = 1;\n\tSourceMapConsumer.ORIGINAL_ORDER = 2;\n\n\tSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\n\tSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n\t/**\n\t * Iterate over each mapping between an original source/line/column and a\n\t * generated line/column in this source map.\n\t *\n\t * @param Function aCallback\n\t * The function that is called with each mapping.\n\t * @param Object aContext\n\t * Optional. If specified, this object will be the value of `this` every\n\t * time that `aCallback` is called.\n\t * @param aOrder\n\t * Either `SourceMapConsumer.GENERATED_ORDER` or\n\t * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n\t * iterate over the mappings sorted by the generated file's line/column\n\t * order or the original's source/line/column order, respectively. Defaults to\n\t * `SourceMapConsumer.GENERATED_ORDER`.\n\t */\n\tSourceMapConsumer.prototype.eachMapping =\n\t function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n\t var context = aContext || null;\n\t var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n\t var mappings;\n\t switch (order) {\n\t case SourceMapConsumer.GENERATED_ORDER:\n\t mappings = this._generatedMappings;\n\t break;\n\t case SourceMapConsumer.ORIGINAL_ORDER:\n\t mappings = this._originalMappings;\n\t break;\n\t default:\n\t throw new Error(\"Unknown order of iteration.\");\n\t }\n\n\t var sourceRoot = this.sourceRoot;\n\t mappings.map(function (mapping) {\n\t var source = mapping.source === null ? null : this._sources.at(mapping.source);\n\t if (source != null && sourceRoot != null) {\n\t source = util.join(sourceRoot, source);\n\t }\n\t return {\n\t source: source,\n\t generatedLine: mapping.generatedLine,\n\t generatedColumn: mapping.generatedColumn,\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: mapping.name === null ? null : this._names.at(mapping.name)\n\t };\n\t }, this).forEach(aCallback, context);\n\t };\n\n\t/**\n\t * Returns all generated line and column information for the original source,\n\t * line, and column provided. If no column is provided, returns all mappings\n\t * corresponding to a either the line we are searching for or the next\n\t * closest line that has any mappings. Otherwise, returns all mappings\n\t * corresponding to the given line and either the column we are searching for\n\t * or the next closest column that has any offsets.\n\t *\n\t * The only argument is an object with the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: Optional. the column number in the original source.\n\t *\n\t * and an array of objects is returned, each with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tSourceMapConsumer.prototype.allGeneratedPositionsFor =\n\t function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n\t var line = util.getArg(aArgs, 'line');\n\n\t // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n\t // returns the index of the closest mapping less than the needle. By\n\t // setting needle.originalColumn to 0, we thus find the last mapping for\n\t // the given line, provided such a mapping exists.\n\t var needle = {\n\t source: util.getArg(aArgs, 'source'),\n\t originalLine: line,\n\t originalColumn: util.getArg(aArgs, 'column', 0)\n\t };\n\n\t if (this.sourceRoot != null) {\n\t needle.source = util.relative(this.sourceRoot, needle.source);\n\t }\n\t if (!this._sources.has(needle.source)) {\n\t return [];\n\t }\n\t needle.source = this._sources.indexOf(needle.source);\n\n\t var mappings = [];\n\n\t var index = this._findMapping(needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t binarySearch.LEAST_UPPER_BOUND);\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (aArgs.column === undefined) {\n\t var originalLine = mapping.originalLine;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we found. Since\n\t // mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we found.\n\t while (mapping && mapping.originalLine === originalLine) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t } else {\n\t var originalColumn = mapping.originalColumn;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we were searching for.\n\t // Since mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we are searching for.\n\t while (mapping &&\n\t mapping.originalLine === line &&\n\t mapping.originalColumn == originalColumn) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t }\n\t }\n\n\t return mappings;\n\t };\n\n\texports.SourceMapConsumer = SourceMapConsumer;\n\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The only parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - sources: An array of URLs to the original source files.\n\t * - names: An array of identifiers which can be referrenced by individual mappings.\n\t * - sourceRoot: Optional. The URL root from which all sources are relative.\n\t * - sourcesContent: Optional. An array of contents of the original source files.\n\t * - mappings: A string of base64 VLQs which contain the actual mappings.\n\t * - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"out.js\",\n\t * sourceRoot : \"\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AA,AB;;ABCDE;\"\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sources = util.getArg(sourceMap, 'sources');\n\t // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t // requires the array) to play nice here.\n\t var names = util.getArg(sourceMap, 'names', []);\n\t var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t var mappings = util.getArg(sourceMap, 'mappings');\n\t var file = util.getArg(sourceMap, 'file', null);\n\n\t // Once again, Sass deviates from the spec and supplies the version as a\n\t // string rather than a number, so we use loose equality checking here.\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t sources = sources\n\t .map(String)\n\t // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t // \"foo.js\". Normalize these first so that future comparisons will succeed.\n\t // See bugzil.la/1090768.\n\t .map(util.normalize)\n\t // Always ensure that absolute sources are internally stored relative to\n\t // the source root, if the source root is absolute. Not doing this would\n\t // be particularly problematic when the source root is a prefix of the\n\t // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t .map(function (source) {\n\t return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t ? util.relative(sourceRoot, source)\n\t : source;\n\t });\n\n\t // Pass `true` below to allow duplicate names and sources. While source maps\n\t // are intended to be compressed and deduplicated, the TypeScript compiler\n\t // sometimes generates source maps with duplicates in them. See Github issue\n\t // #72 and bugzil.la/889492.\n\t this._names = ArraySet.fromArray(names.map(String), true);\n\t this._sources = ArraySet.fromArray(sources, true);\n\n\t this.sourceRoot = sourceRoot;\n\t this.sourcesContent = sourcesContent;\n\t this._mappings = mappings;\n\t this.file = file;\n\t}\n\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t * The source map that will be consumed.\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t function SourceMapConsumer_fromSourceMap(aSourceMap) {\n\t var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n\t var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t smc.sourceRoot = aSourceMap._sourceRoot;\n\t smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t smc.sourceRoot);\n\t smc.file = aSourceMap._file;\n\n\t // Because we are modifying the entries (by converting string sources and\n\t // names to indices into the sources and names ArraySets), we have to make\n\t // a copy of the entry or else bad things happen. Shared mutable state\n\t // strikes again! See github issue #191.\n\n\t var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t var destGeneratedMappings = smc.__generatedMappings = [];\n\t var destOriginalMappings = smc.__originalMappings = [];\n\n\t for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t var srcMapping = generatedMappings[i];\n\t var destMapping = new Mapping;\n\t destMapping.generatedLine = srcMapping.generatedLine;\n\t destMapping.generatedColumn = srcMapping.generatedColumn;\n\n\t if (srcMapping.source) {\n\t destMapping.source = sources.indexOf(srcMapping.source);\n\t destMapping.originalLine = srcMapping.originalLine;\n\t destMapping.originalColumn = srcMapping.originalColumn;\n\n\t if (srcMapping.name) {\n\t destMapping.name = names.indexOf(srcMapping.name);\n\t }\n\n\t destOriginalMappings.push(destMapping);\n\t }\n\n\t destGeneratedMappings.push(destMapping);\n\t }\n\n\t quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n\t return smc;\n\t };\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t return this._sources.toArray().map(function (s) {\n\t return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n\t }, this);\n\t }\n\t});\n\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t this.generatedLine = 0;\n\t this.generatedColumn = 0;\n\t this.source = null;\n\t this.originalLine = null;\n\t this.originalColumn = null;\n\t this.name = null;\n\t}\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t var generatedLine = 1;\n\t var previousGeneratedColumn = 0;\n\t var previousOriginalLine = 0;\n\t var previousOriginalColumn = 0;\n\t var previousSource = 0;\n\t var previousName = 0;\n\t var length = aStr.length;\n\t var index = 0;\n\t var cachedSegments = {};\n\t var temp = {};\n\t var originalMappings = [];\n\t var generatedMappings = [];\n\t var mapping, str, segment, end, value;\n\n\t while (index < length) {\n\t if (aStr.charAt(index) === ';') {\n\t generatedLine++;\n\t index++;\n\t previousGeneratedColumn = 0;\n\t }\n\t else if (aStr.charAt(index) === ',') {\n\t index++;\n\t }\n\t else {\n\t mapping = new Mapping();\n\t mapping.generatedLine = generatedLine;\n\n\t // Because each offset is encoded relative to the previous one,\n\t // many segments often have the same encoding. We can exploit this\n\t // fact by caching the parsed variable length fields of each segment,\n\t // allowing us to avoid a second parse if we encounter the same\n\t // segment again.\n\t for (end = index; end < length; end++) {\n\t if (this._charIsMappingSeparator(aStr, end)) {\n\t break;\n\t }\n\t }\n\t str = aStr.slice(index, end);\n\n\t segment = cachedSegments[str];\n\t if (segment) {\n\t index += str.length;\n\t } else {\n\t segment = [];\n\t while (index < end) {\n\t base64VLQ.decode(aStr, index, temp);\n\t value = temp.value;\n\t index = temp.rest;\n\t segment.push(value);\n\t }\n\n\t if (segment.length === 2) {\n\t throw new Error('Found a source, but no line and column');\n\t }\n\n\t if (segment.length === 3) {\n\t throw new Error('Found a source and line, but no column');\n\t }\n\n\t cachedSegments[str] = segment;\n\t }\n\n\t // Generated column.\n\t mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t previousGeneratedColumn = mapping.generatedColumn;\n\n\t if (segment.length > 1) {\n\t // Original source.\n\t mapping.source = previousSource + segment[1];\n\t previousSource += segment[1];\n\n\t // Original line.\n\t mapping.originalLine = previousOriginalLine + segment[2];\n\t previousOriginalLine = mapping.originalLine;\n\t // Lines are stored 0-based\n\t mapping.originalLine += 1;\n\n\t // Original column.\n\t mapping.originalColumn = previousOriginalColumn + segment[3];\n\t previousOriginalColumn = mapping.originalColumn;\n\n\t if (segment.length > 4) {\n\t // Original name.\n\t mapping.name = previousName + segment[4];\n\t previousName += segment[4];\n\t }\n\t }\n\n\t generatedMappings.push(mapping);\n\t if (typeof mapping.originalLine === 'number') {\n\t originalMappings.push(mapping);\n\t }\n\t }\n\t }\n\n\t quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t this.__generatedMappings = generatedMappings;\n\n\t quickSort(originalMappings, util.compareByOriginalPositions);\n\t this.__originalMappings = originalMappings;\n\t };\n\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t aColumnName, aComparator, aBias) {\n\t // To return the position we are searching for, we must first find the\n\t // mapping for the given position and then return the opposite position it\n\t // points to. Because the mappings are sorted, we can use binary search to\n\t // find the best mapping.\n\n\t if (aNeedle[aLineName] <= 0) {\n\t throw new TypeError('Line must be greater than or equal to 1, got '\n\t + aNeedle[aLineName]);\n\t }\n\t if (aNeedle[aColumnName] < 0) {\n\t throw new TypeError('Column must be greater than or equal to 0, got '\n\t + aNeedle[aColumnName]);\n\t }\n\n\t return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t };\n\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t function SourceMapConsumer_computeColumnSpans() {\n\t for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t var mapping = this._generatedMappings[index];\n\n\t // Mappings do not contain a field for the last generated columnt. We\n\t // can come up with an optimistic estimate, however, by assuming that\n\t // mappings are contiguous (i.e. given two consecutive mappings, the\n\t // first mapping ends where the second one starts).\n\t if (index + 1 < this._generatedMappings.length) {\n\t var nextMapping = this._generatedMappings[index + 1];\n\n\t if (mapping.generatedLine === nextMapping.generatedLine) {\n\t mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t continue;\n\t }\n\t }\n\n\t // The last mapping for each line spans the entire line.\n\t mapping.lastGeneratedColumn = Infinity;\n\t }\n\t };\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t function SourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._generatedMappings,\n\t \"generatedLine\",\n\t \"generatedColumn\",\n\t util.compareByGeneratedPositionsDeflated,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._generatedMappings[index];\n\n\t if (mapping.generatedLine === needle.generatedLine) {\n\t var source = util.getArg(mapping, 'source', null);\n\t if (source !== null) {\n\t source = this._sources.at(source);\n\t if (this.sourceRoot != null) {\n\t source = util.join(this.sourceRoot, source);\n\t }\n\t }\n\t var name = util.getArg(mapping, 'name', null);\n\t if (name !== null) {\n\t name = this._names.at(name);\n\t }\n\t return {\n\t source: source,\n\t line: util.getArg(mapping, 'originalLine', null),\n\t column: util.getArg(mapping, 'originalColumn', null),\n\t name: name\n\t };\n\t }\n\t }\n\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t if (!this.sourcesContent) {\n\t return false;\n\t }\n\t return this.sourcesContent.length >= this._sources.size() &&\n\t !this.sourcesContent.some(function (sc) { return sc == null; });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t if (!this.sourcesContent) {\n\t return null;\n\t }\n\n\t if (this.sourceRoot != null) {\n\t aSource = util.relative(this.sourceRoot, aSource);\n\t }\n\n\t if (this._sources.has(aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(aSource)];\n\t }\n\n\t var url;\n\t if (this.sourceRoot != null\n\t && (url = util.urlParse(this.sourceRoot))) {\n\t // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t // many users. We can help them out when they expect file:// URIs to\n\t // behave like it would if they were running a local HTTP server. See\n\t // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n\t if (url.scheme == \"file\"\n\t && this._sources.has(fileUriAbsPath)) {\n\t return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t }\n\n\t if ((!url.path || url.path == \"/\")\n\t && this._sources.has(\"/\" + aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n\t }\n\t }\n\n\t // This function is used recursively from\n\t // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t // don't want to throw if we can't find the source - we just want to\n\t // return null, so we provide a flag to exit gracefully.\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t var source = util.getArg(aArgs, 'source');\n\t if (this.sourceRoot != null) {\n\t source = util.relative(this.sourceRoot, source);\n\t }\n\t if (!this._sources.has(source)) {\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t }\n\t source = this._sources.indexOf(source);\n\n\t var needle = {\n\t source: source,\n\t originalLine: util.getArg(aArgs, 'line'),\n\t originalColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (mapping.source === needle.source) {\n\t return {\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t };\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t };\n\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The only parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - file: Optional. The generated file this source map is associated with.\n\t * - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t * - offset: The offset into the original specified at which this section\n\t * begins to apply, defined as an object with a \"line\" and \"column\"\n\t * field.\n\t * - map: A source map definition. This source map could also be indexed,\n\t * but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"app.js\",\n\t * sections: [{\n\t * offset: {line:100, column:10},\n\t * map: {\n\t * version : 3,\n\t * file: \"section.js\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AAAA,E;;ABCDE;\"\n\t * }\n\t * }],\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sections = util.getArg(sourceMap, 'sections');\n\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t this._sources = new ArraySet();\n\t this._names = new ArraySet();\n\n\t var lastOffset = {\n\t line: -1,\n\t column: 0\n\t };\n\t this._sections = sections.map(function (s) {\n\t if (s.url) {\n\t // The url field will require support for asynchronicity.\n\t // See https://github.com/mozilla/source-map/issues/16\n\t throw new Error('Support for url field in sections not implemented.');\n\t }\n\t var offset = util.getArg(s, 'offset');\n\t var offsetLine = util.getArg(offset, 'line');\n\t var offsetColumn = util.getArg(offset, 'column');\n\n\t if (offsetLine < lastOffset.line ||\n\t (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t throw new Error('Section offsets must be ordered and non-overlapping.');\n\t }\n\t lastOffset = offset;\n\n\t return {\n\t generatedOffset: {\n\t // The offset fields are 0-based, but we use 1-based indices when\n\t // encoding/decoding from VLQ.\n\t generatedLine: offsetLine + 1,\n\t generatedColumn: offsetColumn + 1\n\t },\n\t consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n\t }\n\t });\n\t}\n\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t var sources = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t sources.push(this._sections[i].consumer.sources[j]);\n\t }\n\t }\n\t return sources;\n\t }\n\t});\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t // Find the section containing the generated position we're trying to map\n\t // to an original position.\n\t var sectionIndex = binarySearch.search(needle, this._sections,\n\t function(needle, section) {\n\t var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t if (cmp) {\n\t return cmp;\n\t }\n\n\t return (needle.generatedColumn -\n\t section.generatedOffset.generatedColumn);\n\t });\n\t var section = this._sections[sectionIndex];\n\n\t if (!section) {\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t }\n\n\t return section.consumer.originalPositionFor({\n\t line: needle.generatedLine -\n\t (section.generatedOffset.generatedLine - 1),\n\t column: needle.generatedColumn -\n\t (section.generatedOffset.generatedLine === needle.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t bias: aArgs.bias\n\t });\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t return this._sections.every(function (s) {\n\t return s.consumer.hasContentsOfAllSources();\n\t });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t var content = section.consumer.sourceContentFor(aSource, true);\n\t if (content) {\n\t return content;\n\t }\n\t }\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t // Only consider this section if the requested source is in the list of\n\t // sources of the consumer.\n\t if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n\t continue;\n\t }\n\t var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t if (generatedPosition) {\n\t var ret = {\n\t line: generatedPosition.line +\n\t (section.generatedOffset.generatedLine - 1),\n\t column: generatedPosition.column +\n\t (section.generatedOffset.generatedLine === generatedPosition.line\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0)\n\t };\n\t return ret;\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null\n\t };\n\t };\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t this.__generatedMappings = [];\n\t this.__originalMappings = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\t var sectionMappings = section.consumer._generatedMappings;\n\t for (var j = 0; j < sectionMappings.length; j++) {\n\t var mapping = sectionMappings[j];\n\n\t var source = section.consumer._sources.at(mapping.source);\n\t if (section.consumer.sourceRoot !== null) {\n\t source = util.join(section.consumer.sourceRoot, source);\n\t }\n\t this._sources.add(source);\n\t source = this._sources.indexOf(source);\n\n\t var name = section.consumer._names.at(mapping.name);\n\t this._names.add(name);\n\t name = this._names.indexOf(name);\n\n\t // The mappings coming from the consumer for the section have\n\t // generated positions relative to the start of the section, so we\n\t // need to offset them to be relative to the start of the concatenated\n\t // generated file.\n\t var adjustedMapping = {\n\t source: source,\n\t generatedLine: mapping.generatedLine +\n\t (section.generatedOffset.generatedLine - 1),\n\t generatedColumn: mapping.generatedColumn +\n\t (section.generatedOffset.generatedLine === mapping.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: name\n\t };\n\n\t this.__generatedMappings.push(adjustedMapping);\n\t if (typeof adjustedMapping.originalLine === 'number') {\n\t this.__originalMappings.push(adjustedMapping);\n\t }\n\t }\n\t }\n\n\t quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t };\n\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t if (aName in aArgs) {\n\t return aArgs[aName];\n\t } else if (arguments.length === 3) {\n\t return aDefaultValue;\n\t } else {\n\t throw new Error('\"' + aName + '\" is a required argument.');\n\t }\n\t}\n\texports.getArg = getArg;\n\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\n\tfunction urlParse(aUrl) {\n\t var match = aUrl.match(urlRegexp);\n\t if (!match) {\n\t return null;\n\t }\n\t return {\n\t scheme: match[1],\n\t auth: match[2],\n\t host: match[3],\n\t port: match[4],\n\t path: match[5]\n\t };\n\t}\n\texports.urlParse = urlParse;\n\n\tfunction urlGenerate(aParsedUrl) {\n\t var url = '';\n\t if (aParsedUrl.scheme) {\n\t url += aParsedUrl.scheme + ':';\n\t }\n\t url += '//';\n\t if (aParsedUrl.auth) {\n\t url += aParsedUrl.auth + '@';\n\t }\n\t if (aParsedUrl.host) {\n\t url += aParsedUrl.host;\n\t }\n\t if (aParsedUrl.port) {\n\t url += \":\" + aParsedUrl.port\n\t }\n\t if (aParsedUrl.path) {\n\t url += aParsedUrl.path;\n\t }\n\t return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '<dir>/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t var path = aPath;\n\t var url = urlParse(aPath);\n\t if (url) {\n\t if (!url.path) {\n\t return aPath;\n\t }\n\t path = url.path;\n\t }\n\t var isAbsolute = exports.isAbsolute(path);\n\n\t var parts = path.split(/\\/+/);\n\t for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t part = parts[i];\n\t if (part === '.') {\n\t parts.splice(i, 1);\n\t } else if (part === '..') {\n\t up++;\n\t } else if (up > 0) {\n\t if (part === '') {\n\t // The first part is blank if the path is absolute. Trying to go\n\t // above the root is a no-op. Therefore we can remove all '..' parts\n\t // directly after the root.\n\t parts.splice(i + 1, up);\n\t up = 0;\n\t } else {\n\t parts.splice(i, 2);\n\t up--;\n\t }\n\t }\n\t }\n\t path = parts.join('/');\n\n\t if (path === '') {\n\t path = isAbsolute ? '/' : '.';\n\t }\n\n\t if (url) {\n\t url.path = path;\n\t return urlGenerate(url);\n\t }\n\t return path;\n\t}\n\texports.normalize = normalize;\n\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t * first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t * is updated with the result and aRoot is returned. Otherwise the result\n\t * is returned.\n\t * - If aPath is absolute, the result is aPath.\n\t * - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\t if (aPath === \"\") {\n\t aPath = \".\";\n\t }\n\t var aPathUrl = urlParse(aPath);\n\t var aRootUrl = urlParse(aRoot);\n\t if (aRootUrl) {\n\t aRoot = aRootUrl.path || '/';\n\t }\n\n\t // `join(foo, '//www.example.org')`\n\t if (aPathUrl && !aPathUrl.scheme) {\n\t if (aRootUrl) {\n\t aPathUrl.scheme = aRootUrl.scheme;\n\t }\n\t return urlGenerate(aPathUrl);\n\t }\n\n\t if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t return aPath;\n\t }\n\n\t // `join('http://', 'www.example.com')`\n\t if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t aRootUrl.host = aPath;\n\t return urlGenerate(aRootUrl);\n\t }\n\n\t var joined = aPath.charAt(0) === '/'\n\t ? aPath\n\t : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n\t if (aRootUrl) {\n\t aRootUrl.path = joined;\n\t return urlGenerate(aRootUrl);\n\t }\n\t return joined;\n\t}\n\texports.join = join;\n\n\texports.isAbsolute = function (aPath) {\n\t return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n\t};\n\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\n\t aRoot = aRoot.replace(/\\/$/, '');\n\n\t // It is possible for the path to be above the root. In this case, simply\n\t // checking whether the root is a prefix of the path won't work. Instead, we\n\t // need to remove components from the root one by one, until either we find\n\t // a prefix that fits, or we run out of components to remove.\n\t var level = 0;\n\t while (aPath.indexOf(aRoot + '/') !== 0) {\n\t var index = aRoot.lastIndexOf(\"/\");\n\t if (index < 0) {\n\t return aPath;\n\t }\n\n\t // If the only part of the root that is left is the scheme (i.e. http://,\n\t // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t // have exhausted all components, so the path is not relative to the root.\n\t aRoot = aRoot.slice(0, index);\n\t if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t return aPath;\n\t }\n\n\t ++level;\n\t }\n\n\t // Make sure we add a \"../\" for each component we removed from the root.\n\t return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\n\tvar supportsNullProto = (function () {\n\t var obj = Object.create(null);\n\t return !('__proto__' in obj);\n\t}());\n\n\tfunction identity (s) {\n\t return s;\n\t}\n\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return '$' + aStr;\n\t }\n\n\t return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\n\tfunction fromSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return aStr.slice(1);\n\t }\n\n\t return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\n\tfunction isProtoString(s) {\n\t if (!s) {\n\t return false;\n\t }\n\n\t var length = s.length;\n\n\t if (length < 9 /* \"__proto__\".length */) {\n\t return false;\n\t }\n\n\t if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 9) !== 95 /* '_' */) {\n\t return false;\n\t }\n\n\t for (var i = length - 10; i >= 0; i--) {\n\t if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t}\n\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t var cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0 || onlyCompareOriginal) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0 || onlyCompareGenerated) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\n\tfunction strcmp(aStr1, aStr2) {\n\t if (aStr1 === aStr2) {\n\t return 0;\n\t }\n\n\t if (aStr1 > aStr2) {\n\t return 1;\n\t }\n\n\t return -1;\n\t}\n\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = strcmp(mappingA.source, mappingB.source);\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t // This function terminates when one of the following is true:\n\t //\n\t // 1. We find the exact element we are looking for.\n\t //\n\t // 2. We did not find the exact element, but we can return the index of\n\t // the next-closest element.\n\t //\n\t // 3. We did not find the exact element, and there is no next-closest\n\t // element than the one we are searching for, so we return -1.\n\t var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t if (cmp === 0) {\n\t // Found the element we are looking for.\n\t return mid;\n\t }\n\t else if (cmp > 0) {\n\t // Our needle is greater than aHaystack[mid].\n\t if (aHigh - mid > 1) {\n\t // The element is in the upper half.\n\t return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // The exact needle element was not found in this haystack. Determine if\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return aHigh < aHaystack.length ? aHigh : -1;\n\t } else {\n\t return mid;\n\t }\n\t }\n\t else {\n\t // Our needle is less than aHaystack[mid].\n\t if (mid - aLow > 1) {\n\t // The element is in the lower half.\n\t return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return mid;\n\t } else {\n\t return aLow < 0 ? -1 : aLow;\n\t }\n\t }\n\t}\n\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t * array and returns -1, 0, or 1 depending on whether the needle is less\n\t * than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t if (aHaystack.length === 0) {\n\t return -1;\n\t }\n\n\t var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t if (index < 0) {\n\t return -1;\n\t }\n\n\t // We have found either the exact element, or the next-closest element than\n\t // the one we are searching for. However, there may be more than one such\n\t // element. Make sure we always return the smallest of these.\n\t while (index - 1 >= 0) {\n\t if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t break;\n\t }\n\t --index;\n\t }\n\n\t return index;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar util = __webpack_require__(2);\n\tvar has = Object.prototype.hasOwnProperty;\n\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t this._array = [];\n\t this._set = Object.create(null);\n\t}\n\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t var set = new ArraySet();\n\t for (var i = 0, len = aArray.length; i < len; i++) {\n\t set.add(aArray[i], aAllowDuplicates);\n\t }\n\t return set;\n\t};\n\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t return Object.getOwnPropertyNames(this._set).length;\n\t};\n\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t var sStr = util.toSetString(aStr);\n\t var isDuplicate = has.call(this._set, sStr);\n\t var idx = this._array.length;\n\t if (!isDuplicate || aAllowDuplicates) {\n\t this._array.push(aStr);\n\t }\n\t if (!isDuplicate) {\n\t this._set[sStr] = idx;\n\t }\n\t};\n\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t return has.call(this._set, sStr);\n\t};\n\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t if (has.call(this._set, sStr)) {\n\t return this._set[sStr];\n\t }\n\t throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t if (aIdx >= 0 && aIdx < this._array.length) {\n\t return this._array[aIdx];\n\t }\n\t throw new Error('No element indexed by ' + aIdx);\n\t};\n\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t return this._array.slice();\n\t};\n\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\n\t * * Redistributions of source code must retain the above copyright\n\t * notice, this list of conditions and the following disclaimer.\n\t * * Redistributions in binary form must reproduce the above\n\t * copyright notice, this list of conditions and the following\n\t * disclaimer in the documentation and/or other materials provided\n\t * with the distribution.\n\t * * Neither the name of Google Inc. nor the names of its\n\t * contributors may be used to endorse or promote products derived\n\t * from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\n\tvar base64 = __webpack_require__(6);\n\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t// Continuation\n\t// | Sign\n\t// | |\n\t// V V\n\t// 101011\n\n\tvar VLQ_BASE_SHIFT = 5;\n\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t return aValue < 0\n\t ? ((-aValue) << 1) + 1\n\t : (aValue << 1) + 0;\n\t}\n\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t var isNegative = (aValue & 1) === 1;\n\t var shifted = aValue >> 1;\n\t return isNegative\n\t ? -shifted\n\t : shifted;\n\t}\n\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t var encoded = \"\";\n\t var digit;\n\n\t var vlq = toVLQSigned(aValue);\n\n\t do {\n\t digit = vlq & VLQ_BASE_MASK;\n\t vlq >>>= VLQ_BASE_SHIFT;\n\t if (vlq > 0) {\n\t // There are still more digits in this value, so we must make sure the\n\t // continuation bit is marked.\n\t digit |= VLQ_CONTINUATION_BIT;\n\t }\n\t encoded += base64.encode(digit);\n\t } while (vlq > 0);\n\n\t return encoded;\n\t};\n\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t var strLen = aStr.length;\n\t var result = 0;\n\t var shift = 0;\n\t var continuation, digit;\n\n\t do {\n\t if (aIndex >= strLen) {\n\t throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t }\n\n\t digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t if (digit === -1) {\n\t throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t }\n\n\t continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t digit &= VLQ_BASE_MASK;\n\t result = result + (digit << shift);\n\t shift += VLQ_BASE_SHIFT;\n\t } while (continuation);\n\n\t aOutParam.value = fromVLQSigned(result);\n\t aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t if (0 <= number && number < intToCharMap.length) {\n\t return intToCharMap[number];\n\t }\n\t throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t var bigA = 65; // 'A'\n\t var bigZ = 90; // 'Z'\n\n\t var littleA = 97; // 'a'\n\t var littleZ = 122; // 'z'\n\n\t var zero = 48; // '0'\n\t var nine = 57; // '9'\n\n\t var plus = 43; // '+'\n\t var slash = 47; // '/'\n\n\t var littleOffset = 26;\n\t var numberOffset = 52;\n\n\t // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t if (bigA <= charCode && charCode <= bigZ) {\n\t return (charCode - bigA);\n\t }\n\n\t // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t if (littleA <= charCode && charCode <= littleZ) {\n\t return (charCode - littleA + littleOffset);\n\t }\n\n\t // 52 - 61: 0123456789\n\t if (zero <= charCode && charCode <= nine) {\n\t return (charCode - zero + numberOffset);\n\t }\n\n\t // 62: +\n\t if (charCode == plus) {\n\t return 62;\n\t }\n\n\t // 63: /\n\t if (charCode == slash) {\n\t return 63;\n\t }\n\n\t // Invalid base64 digit.\n\t return -1;\n\t};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t * The array.\n\t * @param {Number} x\n\t * The index of the first item.\n\t * @param {Number} y\n\t * The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t var temp = ary[x];\n\t ary[x] = ary[y];\n\t ary[y] = temp;\n\t}\n\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t * The lower bound on the range.\n\t * @param {Number} high\n\t * The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t return Math.round(low + (Math.random() * (high - low)));\n\t}\n\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t * @param {Number} p\n\t * Start index of the array\n\t * @param {Number} r\n\t * End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t // If our lower bound is less than our upper bound, we (1) partition the\n\t // array into two pieces and (2) recurse on each half. If it is not, this is\n\t // the empty array and our base case.\n\n\t if (p < r) {\n\t // (1) Partitioning.\n\t //\n\t // The partitioning chooses a pivot between `p` and `r` and moves all\n\t // elements that are less than or equal to the pivot to the before it, and\n\t // all the elements that are greater than it after it. The effect is that\n\t // once partition is done, the pivot is in the exact place it will be when\n\t // the array is put in sorted order, and it will not need to be moved\n\t // again. This runs in O(n) time.\n\n\t // Always choose a random pivot so that an input array which is reverse\n\t // sorted does not cause O(n^2) running time.\n\t var pivotIndex = randomIntInRange(p, r);\n\t var i = p - 1;\n\n\t swap(ary, pivotIndex, r);\n\t var pivot = ary[r];\n\n\t // Immediately after `j` is incremented in this loop, the following hold\n\t // true:\n\t //\n\t // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t //\n\t // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t for (var j = p; j < r; j++) {\n\t if (comparator(ary[j], pivot) <= 0) {\n\t i += 1;\n\t swap(ary, i, j);\n\t }\n\t }\n\n\t swap(ary, i + 1, j);\n\t var q = i + 1;\n\n\t // (2) Recurse on each half.\n\n\t doQuickSort(ary, comparator, p, q - 1);\n\t doQuickSort(ary, comparator, q + 1, r);\n\t }\n\t}\n\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ })\n/******/ ])\n});\n;"],"names":["this"],"mappings":"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"} \ No newline at end of file diff --git a/changelog/index.html b/changelog/index.html index 8ebade50..2e510ec4 100644 --- a/changelog/index.html +++ b/changelog/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/chat-type/index.html b/chat-type/index.html index 92e8747a..e3602e71 100644 --- a/chat-type/index.html +++ b/chat-type/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/dimension-type/index.html b/dimension-type/index.html index 694956f3..562a0f2f 100644 --- a/dimension-type/index.html +++ b/dimension-type/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/dimension/index.html b/dimension/index.html index 2b7f2849..e376e0a1 100644 --- a/dimension/index.html +++ b/dimension/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/guides/adding-custom-structures/index.html b/guides/adding-custom-structures/index.html index e591066a..64034982 100644 --- a/guides/adding-custom-structures/index.html +++ b/guides/adding-custom-structures/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/guides/density-functions/index.html b/guides/density-functions/index.html index f6718fc0..cb8de4c7 100644 --- a/guides/density-functions/index.html +++ b/guides/density-functions/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/guides/feature-order-cycle/index.html b/guides/feature-order-cycle/index.html index 9b622659..ea3c7071 100644 --- a/guides/feature-order-cycle/index.html +++ b/guides/feature-order-cycle/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/guides/index.html b/guides/index.html index 824f4f62..52c83b93 100644 --- a/guides/index.html +++ b/guides/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/index.html b/index.html index 33259e32..6fd7c22a 100644 --- a/index.html +++ b/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/item-modifier/index.html b/item-modifier/index.html index f7f4f56c..7f93a967 100644 --- a/item-modifier/index.html +++ b/item-modifier/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/loot-table/index.html b/loot-table/index.html index ceb5343f..2fef0f3a 100644 --- a/loot-table/index.html +++ b/loot-table/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/predicate/index.html b/predicate/index.html index 196c3c69..a889563d 100644 --- a/predicate/index.html +++ b/predicate/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/recipe/index.html b/recipe/index.html index 2969baf3..d1a6d3bc 100644 --- a/recipe/index.html +++ b/recipe/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/sounds/index.html b/sounds/index.html index 05b139ef..18d6414b 100644 --- a/sounds/index.html +++ b/sounds/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/text-component/index.html b/text-component/index.html index f858c2dc..7f98bcd0 100644 --- a/text-component/index.html +++ b/text-component/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/versions/index.html b/versions/index.html index 6950a9e2..7b821acd 100644 --- a/versions/index.html +++ b/versions/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/world/index.html b/world/index.html index 5a3c56d5..edde17d2 100644 --- a/world/index.html +++ b/world/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/worldgen/biome/index.html b/worldgen/biome/index.html index bbeb1317..c5d82657 100644 --- a/worldgen/biome/index.html +++ b/worldgen/biome/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/worldgen/carver/index.html b/worldgen/carver/index.html index f9ea679d..64cf4e54 100644 --- a/worldgen/carver/index.html +++ b/worldgen/carver/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/worldgen/density-function/index.html b/worldgen/density-function/index.html index 70501f43..2482037b 100644 --- a/worldgen/density-function/index.html +++ b/worldgen/density-function/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/worldgen/feature/index.html b/worldgen/feature/index.html index 21f5857a..87a35485 100644 --- a/worldgen/feature/index.html +++ b/worldgen/feature/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/worldgen/flat-world-preset/index.html b/worldgen/flat-world-preset/index.html index 5ac6aa50..7f238c00 100644 --- a/worldgen/flat-world-preset/index.html +++ b/worldgen/flat-world-preset/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/worldgen/index.html b/worldgen/index.html index 9c404db1..521ae6e5 100644 --- a/worldgen/index.html +++ b/worldgen/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/worldgen/noise-settings/index.html b/worldgen/noise-settings/index.html index f643ec9b..43e85a6b 100644 --- a/worldgen/noise-settings/index.html +++ b/worldgen/noise-settings/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/worldgen/noise/index.html b/worldgen/noise/index.html index 21eaa6f6..a9f0f00a 100644 --- a/worldgen/noise/index.html +++ b/worldgen/noise/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/worldgen/placed-feature/index.html b/worldgen/placed-feature/index.html index 09faf69c..314d3a0f 100644 --- a/worldgen/placed-feature/index.html +++ b/worldgen/placed-feature/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/worldgen/processor-list/index.html b/worldgen/processor-list/index.html index e1bd9475..44001719 100644 --- a/worldgen/processor-list/index.html +++ b/worldgen/processor-list/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/worldgen/structure-feature/index.html b/worldgen/structure-feature/index.html index 90aa6368..fda9792f 100644 --- a/worldgen/structure-feature/index.html +++ b/worldgen/structure-feature/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/worldgen/structure-set/index.html b/worldgen/structure-set/index.html index 5e5c6975..988e5f69 100644 --- a/worldgen/structure-set/index.html +++ b/worldgen/structure-set/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/worldgen/structure/index.html b/worldgen/structure/index.html index 8eccd3ac..159bb2b6 100644 --- a/worldgen/structure/index.html +++ b/worldgen/structure/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/worldgen/surface-builder/index.html b/worldgen/surface-builder/index.html index 0f223823..5ecf0286 100644 --- a/worldgen/surface-builder/index.html +++ b/worldgen/surface-builder/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/worldgen/template-pool/index.html b/worldgen/template-pool/index.html index 98777be8..8786a66d 100644 --- a/worldgen/template-pool/index.html +++ b/worldgen/template-pool/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body> diff --git a/worldgen/world-preset/index.html b/worldgen/world-preset/index.html index fd48fa3a..c9ccfab0 100644 --- a/worldgen/world-preset/index.html +++ b/worldgen/world-preset/index.html @@ -42,7 +42,7 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.2a99a61a.js"></script> + <script type="module" crossorigin src="/assets/index.ece3de28.js"></script> <link rel="stylesheet" href="/assets/index.38d09e79.css"> </head> <body>